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のようなものを貯めていけるといい。
コメント