🎃
GithubActionsでissueの作成を自動化する
はじめに
Githubで定期的にissueを作成したいケースがあり、やり方を調べたのでそのまとめになります。
Github Actionsでissue作成のワークフローを生成する
こちらのGithub Actionsを使わせて頂きます。
ワークフローを作成する
以下がワークフローの設定例になります。
name: Create an issue
on:
schedule:
- cron: '0 8 1 * *'
permissions:
contents: read
issues: write
jobs:
createPullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Create an Issue
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
生成するissueの詳細はデフォルトでは.github/ISSUE_TEMPLATE.md
をワークフローから読みにいきますが、別のテンプレートを設定することも可能です。
- name: Create an Issue
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
filename: .github/other-template.md
作成するissueの内容を設定する
以下がテンプレートで設定した場合の例です。
title: 対応してください!{{ date | date('dddd, MMMM Do') }}
assignees: kanoemon
labels: bug, fuga
---
問題が起きているかもしれません。
もっとリッチなissueを作成することも可能なので、詳細は公式ドキュメントを参照して頂くと良いかと思います。
既に同じissueが存在する場合に、既存issueを更新したい
同じタイトルのissueが存在するときに、update_existing
をtrue
にすることで既存のissueを更新することができます。
- name: Create an Issue
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
update_existing: true
search_existing: all
update_existing
をfalse
にすると既存のissueの更新は行いません。
search_existing
ではどの状態のissueが対象なのかを設定することができます。
open
、closed
、all
を設定することができ、デフォルトはopen
になっているのでオープンしているissueが対象となります。
まとめ
ついつい忘れてしまいがちな定期的な作業を、こうして仕組みを作ることで忘れることも防げるし、作業のコストも削減できますね。
自分が意識して覚えておく!ではなくツールに任せたり、仕組みを作るって大事だなと思いました。
Discussion