CIでGitHubにIssueを作るのに便利なワンライナー

GitHub Actionsではscheduleを使って定期実行する事ができる。定期的に何かをチェックするような業務があるとき、Googleカレンダーなどに予定を入れておくのもいいのだけど、一般的なプラクティスとしてIssueなどに記録を残すことが求められることがある。棚卸しや月次の処理など。

人間の時間は有限なのでIssueも自動で作って欲しいし、もっと言えば予定を管理するリソースを割くよりIssue作成の通知が着たら対応、みたいな感じで思考停止するほうが効率的である。なので、GitHub Actionsで定期的にIssueを作ってほしい。Actionsを使ってもいいのだけど、簡単にできそうなので調べてみたらやっぱり簡単にできた。

jobs:
  dry-run:
    name: CreateIssue
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
    - name: Install gh Command
        run: |
          apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
          apt-add-repository -u https://cli.github.com/packages
          apt install -y gh
      - name: Issue Create
        env:
          GH_TOKEN: ${{ secrets.TOKEN }}
          ISSUE_TITLE: "定期的なお仕事"
        run: gh issue create --title "${ISSUE_TITLE}" --body "$(cat ./.github/ISSUE_TEMPLATE/template.md)"

ghコマンドというのがあって、これでIssueを作ることが出来る。GH_TOKEN の部分を GH_ENTERPRISE_TOKEN に、GH_HOST を設定すればGithub Enterprise Serverでも使えるようになっている。$(date "+%Y/%m/%d") などをtitleの引数に渡すと日付も設定できる。

--body に文字列を渡せばそれを本文にしたIssueを作ってくれる。ただ改行などめんどくさいのでテンプレートを渡している。

--assignee にusernameをカンマ区切りで渡してあげることでアサインも出来る。適当にランダムに渡すようにしてもいいし担当者全員を入れてもいいだろう。

こういうピッとやりたいことが出来る感じのtipsのようなものを貯めていけるといい。

コメント

タイトルとURLをコピーしました