はじめに
GitHubの新しいProjects機能、めちゃめちゃいい感じです。
まだベータ版なので一般公開されてないですが、誰でも申し込めば使えるようになるのでお試しあれ。
まだまだ挙動怪しいけどベータだししょうがない。それでも便利。
そんなProjectsですが、特定のリポジトリでIssueを作った時に自動登録してほしいなーと思ってたら、もんりぃ先生が作ってました。なんだ神か。。。
試してみます。
やってみる
テストリポジトリを作って試してみます。
TL;DRに書かれてるymlをそのまま使ってみる。
<PROJECT_OWNER>
と <PROJECT_NUMBER>
はこの時点で書き換えるのね。
<SECRET_KEY>
は PERSONAL_ACCESS_TOKEN_DEMO
に変えた。
secretの保存ってユーザースコープにはないのかな?
Encrypted secrets - GitHub Docs
ユーザー単位にはなさそうだった・・・リポジトリに設定する。
name: Issue の Label 操作時に Projects (Beta) に登録・削除 on: issues: types: - labeled - unlabeled env: PROJECT_OWNER: naichilab PROJECT_NUMBER: 2 TARGET_LABEL: 'Project' GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN_DEMO }} jobs: manage_project: name: 「Project」ラベルの付け外しに対応して、Issue を Projects (Beta) に出し入れする runs-on: ubuntu-latest steps: - name: Add Issue to Project if: ${{ github.event.action == 'labeled' && contains(github.event.issue.labels.*.name, env.TARGET_LABEL) }} id: add-issue-to-project uses: monry/actions-add-issue-to-project@v1 with: github-token: ${{ env.GITHUB_TOKEN }} project-owner: ${{ env.PROJECT_OWNER }} project-number: ${{ env.PROJECT_NUMBER }} issue-id: ${{ github.event.issue.node_id }} - name: Delete Issue from Project if: ${{ github.event.action == 'unlabeled' && !contains(github.event.issue.labels.*.name, env.TARGET_LABEL) }} id: delete-issue-from-project uses: monry/actions-delete-issue-from-project@v1 with: github-token: ${{ env.GITHUB_TOKEN }} project-owner: ${{ env.PROJECT_OWNER }} project-number: ${{ env.PROJECT_NUMBER }} issue-id: ${{ github.event.issue.node_id }}
Issue作ってProjectってラベルをつけてから、Actionsタブみてみると。
うごいた〜〜〜
すごい。めちゃ簡単だ。
ラベル不要にする
個人的には全Issueを自動的に放り込みたいので、ラベル関係なくIssue作成時に突っ込むように書き換えてみよう
トリガーイベント探してみる
ワークフローをトリガーするイベント - GitHub Docs
issues
の opened
で良さそう
on: issues: types: [opened]
deleteもいらないので削除。
こんな感じかな
name: Issue 作成時に Projects (Beta) に登録する ワークフロー on: issues: types: [opened] env: PROJECT_OWNER: naichilab PROJECT_NUMBER: 2 TARGET_LABEL: 'Project' GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN_DEMO }} jobs: manage_project: name: Projects (Beta) に登録する ジョブ runs-on: ubuntu-latest steps: - name: Add Issue to Project id: add-issue-to-project uses: monry/actions-add-issue-to-project@v1 with: github-token: ${{ env.GITHUB_TOKEN }} project-owner: ${{ env.PROJECT_OWNER }} project-number: ${{ env.PROJECT_NUMBER }} issue-id: ${{ github.event.issue.node_id }}
問題なく動きました。
うまく動いた〜これは便利だ。
もんりぃ先生ありがとう。