dependabot 结合 GitHub Actions 实现自动化更新依赖

在这里先提一下 dependabot 是什么

dependabot是 GitHub 推出的一个提醒依赖更新机器人,当你项目的依赖有更新的时候就会自动推送一个 Pull requests

至于使用 Github Action ,只要在项目根目录下的 .github/workflows文件夹下建一个 yml 文件即可。

因此,结合上述两者,我的做法是:

新建一个 auto-merge.yml 文件,文件内容如下:

name: Dependabot Auto Merge
on:
  pull_request:
    types: [labeled, edited]

jobs:
  merge:
    if: github.event.label.name == 'dependencies' #为了防止不必要的执行,限定只有 `dependencies` 标签的 PR 才会进入自动审批流程
    name: Dependabot Auto Merge
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup Node.js environment
        uses: actions/setup-node@v2.1.2
        with:
          node-version: "14"
      - name: Cache multiple paths
        uses: actions/cache@v2
        with:
          path: |
            ~/.npm
            ~/cache
            !~/cache/exclude
            **/node_modules
          key: npm-${{ runner.os }}-${{ hashFiles('package.json') }}
      - run: yarn # 这几行就写下自己的 test 就行了,我这里就测试下能不能通过编译,如果能通过一般是没有兼容性问题的,最好的加点 test 
      - run: npm run lint
      - run: npm run build
      - uses: ahmadnassri/action-dependabot-auto-merge@v2 #这里调用这个 action,具体原理是自动用你的账号发一条`dependabot merge` 命令。其实我觉得有更好的方案,那就是自动 rebase PR,但暂时没找到,日后会继续找下有没有这样的方案
        with:
          command: merge
          target: minor
          github-token: ${{ secrets.GH_TOKEN }} #这里填写你的 GitHub Token ,申请方式自己搜一下即可


评论

发表回复