Doho&开源 | 如何自动化展示我们的Sponsors | GitHub

613 阅读2分钟

Hi!~

可以叫我Doho,我是一名前端开发,开源社区的爱好者。

前言

作为一名长期混迹GitHub的开源萌新,由于厚着脸皮开通了属于自己的GitHub赞助计划,所以也混来了几位金主大佬,那给金主大佬们摆在自己最得意的项目中,想必也是顺理成章的事。

sponsors-1.png 整个过程是通过GitHub CI自动更新的,那其中我都做了什么呢?今天和大家一起分享下~

思路

首先我们来梳理一下期望的样子,我们希望有一个仓库能完成产出金主信息图片的工作,然后每当我们新建一个仓库时,仅需要在README中链接此仓库产出的图片链接就好了,大概看起来是这样子。

Sponsors.png

开始

  1. 创建产出金主信息的仓库

Untitled.png

  1. 对CI进行配置,在根目录中创建.github/workflows目录,并在目录中添加一份配置文件,这里我起名叫做sponsors.yml,接着开始进行配置。
# 工作流名称
name: sponsors

on:
  # 增加一份定时任务,具体时间可任意指定
  schedule:
      # 这里指定为每天早晨7:00更新
    - cron: '0 0 7 * *'

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

      - name: Update sponsors
	# 使用sponsorkit工具生成Sponsors图片到根目录
        run: npx sponsorkit -f -w 800 --dir . && npx sponsorkit -f -w 1300 --name sponsors.wide --dir .
        env:
	  # 使用仓库内配置好的Token
          SPONSORKIT_GITHUB_TOKEN: ${{ secrets.SPONSORS_TOKEN }}
          SPONSORKIT_GITHUB_LOGIN: dohooo

      - name: Commit
        uses: EndBug/add-and-commit@v4
        with:
	  # 提交信息
          message: "chore: update sponsors.svg"
	  # 提交内容
          add: "."
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

其中sponsorkitantfu制作的小工具,它主要做的事情是通过node向GitHub的开放api去获得Sponsors信息,并将其简单排版输出。

对于用到的 ${{ secrets.SPONSORS_TOKEN }},具体的配置方式如下。 Untitled 1.png

Untitled 2.png

Untitled 3.png

创建时我们注意选中这四种权限即可。

gist, public_repo, read:org, read:user

再将生成的TOKEN保存起来,粘贴到我们创建的Sponsors项目中。 Untitled 4.png

名字为 SPONSORS_TOKEN,再将Token写入。 Untitled 5.png

  1. 链接生成的图片

现在我们将代码提交至仓库便可以看到任务开始执行。 Untitled 6.png

短暂的等待后回到Code栏,便可以看到生成的Sponsors图片,✌️。 Untitled 7.png

现在我们可以通过链接 github.com/dohooo/spon… 来使用我们生成的图片。

链接的替换方式为 github.com/[用户名]/[仓库名]…

结尾

我是Doho,关注我GitHub和我一起参与各种有意思的开源项目。

sponsors: github.com/dohooo/spon…

Github: github.com/dohooo

Twitter:twitter.com/doho_1016

Email:zhaodonghao586@outlook.com