github actions で ci が通ったら reviewers を自動でアサインできるようにしてみた

PR のレビュー依頼したいけど CI 通ってない。CIが通ったら依頼を出そうと思って忘れることがそこそこあります。
そのため github のラベルを付けといたら、CIが通ったタイミングでレビュー依頼を出してくれる君を作りました。

name: auto-assign

on:
  schedule:
    - cron: "*/10 1-10 * * 1-5"

jobs:
  init-echo:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: checkout2
        run: |
          ${{ github.workspace }}/script/ci/cron-auto-assign.sh
        env:
          GITHUB_TOKEN: ${{ secrets.XXX_GITHUB_TOKEN }}

cron-auto-assign.sh

#!/bin/bash

set -x

for number in `gh pr list --search "label:auto-assign" --json number  --jq ".[]|.number"`; do
    gh pr checks ${number} && gh pr edit ${number} --remove-label auto-assign  --add-reviewer ここを書き換える
done

もし Auto assignment を利用していた場合には add-reviewer に team を入れたらランダムにアサインされます.
Managing code review settings for your team - GitHub Docs

悩んだ点は、1つはCIが通ったタイミングで発火するちょうど良いトリガーが見つからなかったので cron で定期実行していることです。
これは何かいい方法があったら変えたいです。

もう一つはgithub cliの不具合でsecrets.GITHUB_TOKENでは権限が足りずに動かないこと。
既に issue になっていますが、不必要に強い権限を要求するようになっているようです。
github.com そのため、暫定的に personal access token を利用して回避しております。

対象のPRを絞る条件は何か甘いかもしれないんですが、今のところは動いていそうな感じです