この記事で削除するもの
GitHubのActionsタブを開いたときに左側に表示されるワークフローを消します。
ワークフローは実行された記録が1つでも残っていると左側に常に名前が表示されてしまい、もう不要になったワークフローであっても簡単に消すことができません。
今回はGitHub CLIを使って、サクッと削除していきます。
必要なもの
- gh (GitHub CLIをインストール)
- jq (jq インストールとかで検索すると各OSごとのインストール方法が見つかる)
ワークフローの実行結果を一発で削除する方法
変数を書き換えてコマンドを叩くとワークフロー名がActionsタブから消えます。
多少強引だけど、ワンライナー。
OWNER=me
REPO=myRepo
WORKFLOW_FILE_NAME=my_workflow.yml
gh api \
-H "Accept: application/vnd.github+json" \
/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_FILENAME/runs \
| jq '.workflow_runs[].id' \
| xargs -I RUN_ID \
gh api \
--method DELETE \
-H "Accept: application/vnd.github+json" \
/repos/spine-lab/codmon/actions/runs/RUN_ID
参考: List workflow runs for a workflow
参考: Delete workflow run logs
解説
準備: 必要な情報をshell変数に入れる
削除するために必要な情報はOWNER
, REPO
,WORKFLOW_FILE_NAME
の3つです。
もしActionsタブから削除したいワークフローがme/myRepo/.github/workflows/my_workflow.yml
というファイル名だった場合は、下記のような値を入れます。
$ OWNER=me
$ REPO=myRepo
$ WORKFLOW_FILE_NAME=my_workflow.yml
ワークフローのRUN_IDを取得する
Actionsタブからワークフローを削除するには、対象のワークフローの実行結果をすべて削除する必要があります。実行結果を削除するにはRUN_IDを指定しなくてはいけません。
まずは、GitHub CLIを使って、RUN_IDを取得していきましょう。
$ gh api \
-H "Accept: application/vnd.github+json" \
/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_FILENAME/runs \
json形式のレスポンスが得られたら成功です。
しかし、json形式のままだと扱いづらいので必要な情報だけを抽出していきます。
先程と同じコマンドでjsonを取得したあと、パイプ(|)を使ってjqの標準入力にjsonを流し込みます。
$ gh api \
-H "Accept: application/vnd.github+json" \
/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_FILENAME/runs \
| jq '.workflow_runs[].id'
すると今度はRUN_IDだけが表示されるはずです。
実行結果を削除する
まずは安全のために、RUN_IDの部分を任意のIDに書き換えて実行してみます。
GitHubのActionsタブで消したいワークフローを開いておき、コマンド実行後に実行結果が1つ消えることを確認しましょう。
gh api \
--method DELETE \
-H "Accept: application/vnd.github+json" \
/repos/spine-lab/codmon/actions/runs/RUN_ID
次に、複数の実行結果をまとめて一気に消すにはxargsを使います。
-I
オプションで適当な名前を決めたら、ghコマンドの一致する部分に標準入力で受け取った値を流し込んでくれる便利なコマンドです。
準備でshell変数を設定していたら、$OWNER
, $REPO
, $WORKFLOW_FILENAME
は勝手に値が入るのでそのまま実行して大丈夫です。
$ gh api \
-H "Accept: application/vnd.github+json" \
/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_FILENAME/runs \
| jq '.workflow_runs[].id'
| xargs -I RUN_ID \
gh api \
--method DELETE \
-H "Accept: application/vnd.github+json" \
/repos/spine-lab/codmon/actions/runs/RUN_ID
最後にGitHubのActionsタブを見に行きましょう。
左側に表示されるワークフロー名の一覧から消えているはずです。