2022-03-07 [GitHub Actions]特定のラベルで発火 / gh コマンドでアサイン
GitHub Actions で特定のラベルで発火
下記のような if 条件を書けばいける。 some-defined-label
が付与されているとActionが発火する。
if: contains(github.event.pull_request.labels.*.name, 'some-defined-label')
Do something if a particular label is set - Code to Cloud / GitHub Actions - GitHub Community
contains とは?
contains( search, item )
searchがitem を含む場合、true を返します。 searchが配列の場合、itemが配列の要素であれば、この関数はtrueを返します。 searchが文字列の場合、itemがsearchの部分文字列であれば、この関数はtrueを返します。
https://docs.github.com/ja/actions/learn-github-actions/expressions#contains
GitHub Actions で gh コマンドでアサイン
gh
コマンドはデフォルトで使えるようになっているようなので、環境変数で token や repo, pr number などを渡してやるといい感じに動く。
jobs:
assign:
runs-on: ubuntu-20.04
timeout-minutes: 1
steps:
- run: cat $GITHUB_EVENT_PATH
- run: gh pr edit $NUMBER --add-assignee $ASSIGNEE
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.pull_request.number }}
ASSIGNEE: ${{ github.event.pull_request.user.login }}
if: ${{ toJSON(github.event.pull_request.assignees) == '[]' }}
gh コマンド実行のために GH_TOKEN が必要
GitHub CLI is preinstalled on all GitHub-hosted runners. For each step that uses GitHub CLI, you must set an environment variable called GH_TOKEN to a token with the required scopes.
Using GitHub CLI in workflows - GitHub Docs
GitHubのトークンは下記の2つで方法でアクセスができる。
${{ secrets.GITHUB_TOKEN }}
${{ github.token }}