Github-Sponsorkit使用说明

第一步:在需要添加sponsor模块的repo根目录下新建文件sponsorkit.config.js 该文件会自动输出svg,png和json格式的sponsor信息

import { defineConfig, presets } from 'sponsorkit'

export default defineConfig({
  // Rendering configs
  width: 800,
  formats: ['svg', 'png','json'],
  tiers: [
    // Past sponsors, currently only supports GitHub
    {
      title: 'Past Sponsors',
      monthlyDollars: -1,
      preset: presets.xs,
    },
    // Default tier
    {
      title: 'Backers',
      preset: presets.base,
    },
    {
      title: 'Sponsors',
      monthlyDollars: 0.5,
      preset: presets.medium,
    },
    {
      title: 'Silver Sponsors',
      monthlyDollars: 1,
      preset: presets.large,
    },
    {
      title: 'Gold Sponsors',
      monthlyDollars: 5,
      preset: presets.xl,
    },
  ],
})

第二步:目录添加package.json文件

{
  "private": true,
  "scripts": {
    "build": "sponsorkit"
  },
  "devDependencies": {
    "sponsorkit": "latest"
  }
}

第三步:获取token SPONSORKIT_GITHUB_TOKEN在头像->Settings->Developer settings->Personal->Tokens添加,需要有read:user and read:org权限 其它Token的获取地址如下:

; Patreon provider.
; Create v2 API key at https://www.patreon.com/portal/registration/register-clients
; and use the "Creator’s Access Token".
SPONSORKIT_PATREON_TOKEN=

; OpenCollective provider.
; Create an API key at https://opencollective.com/applications
SPONSORKIT_OPENCOLLECTIVE_KEY=
; and provide the ID, slug or GitHub handle of your account.
SPONSORKIT_OPENCOLLECTIVE_ID=
; or
SPONSORKIT_OPENCOLLECTIVE_SLUG=
; or
SPONSORKIT_OPENCOLLECTIVE_GH_HANDLE=
; If it is a personal account, set it to `person`. Otherwise not set or set to `collective`
SPONSORKIT_OPENCOLLECTIVE_TYPE=

; Afdian provider.
; Get user_id at https://afdian.net/dashboard/dev
SPONSORKIT_AFDIAN_USER_ID=
; Create token at https://afdian.net/dashboard/dev
SPONSORKIT_AFDIAN_TOKEN=

第四步:添加Token 打开repo -> Settings -> Secrets and variables -> Actions, 点击New repository secret 添加你需要的token: 第五步:添加Github action,也就是在.github/workflows文件夹下新建scheduler.yml文件 注意,要修改成你的设置的token名称

name: Scheduler

on:
  workflow_dispatch:
  schedule:
    - cron: '0 16 * * *'
  push:
    branches: [ main ]

jobs:
  update-sponsors:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set node
        uses: actions/setup-node@v3
        with:
          node-version: lts/*

      - run: npx pnpm i

      - name: Update sponsors
        run: npm run build
        env:
          SPONSORKIT_GITHUB_TOKEN: ${{ secrets.SPONSORKIT_GITHUB_TOKEN }}
          SPONSORKIT_GITHUB_LOGIN: versun
          SPONSORKIT_AFDIAN_USER_ID: 2cd194b2ae9f11edabcb5254001e7c00
          SPONSORKIT_AFDIAN_TOKEN: ${{ secrets.SPONSORKIT_AFDIAN_TOKEN }}
          SPONSORKIT_PATREON_TOKEN: ${{ secrets.SPONSORKIT_PATREON_TOKEN }}

      - name: Commit
        uses: EndBug/add-and-commit@v4
        with:
          message: "chore: update sponsors.svg"
          add: "./sponsorkit/sponsors.*"
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

完成,你现在可以去Actions运行workflow,正常情况下会把输出的svg等文件提交到根目录的sponsorkit文件夹下