GitHub Actionsの実行履歴をまとめて削除する / How to delete workflow run histories at once
5166 ワード
TL;DR
owner="Organization名 または User名"
repo="リポジトリ名"
file_name="ファイル名"
gh api repos/${owner}/${repo}/actions/workflows/${file_name}/runs \
| jq -r '.workflow_runs[].id' \
| xargs -P4 -I{} gh api repos/${owner}/${repo}/actions/runs/{} -X DELETE
やりたいこと
owner="Organization名 または User名"
repo="リポジトリ名"
file_name="ファイル名"
gh api repos/${owner}/${repo}/actions/workflows/${file_name}/runs \
| jq -r '.workflow_runs[].id' \
| xargs -P4 -I{} gh api repos/${owner}/${repo}/actions/runs/{} -X DELETE
▼ 左側のWorkflow一覧から不要なWorkflowを削除したい。
▼ ちなみに1回のrunはweb上で消すこともできる。しかし今回はtippy-test-trivy
のrunをまとめて削除したい。
方法
GitHub CLIとjqでいい感じにする。
▼ Homebrewでインストール
brew install gh jq
#1 取得
gh api repos/${owner}/${repo}/actions/workflows/${file_name}/runs
公式リンク: List workflow runs
冒頭に貼ったスクショの画面ではURLが次のようになっている。末尾がファイル名(拡張子はyaml or yml)
https://github.com/${owner}/${repo}/actions/workflows/${file_name}
#2 jqでフィルター
| jq -r '.workflow_runs[].id'
全件なら上記。例えばブランチで絞りたい場合、以下のようにする。
| jq -r '.workflow_runs[] | select(.head_branch = "master") | "\(.id)"'
細かい条件を作りたい場合はjq職人になりましょう。
#3 削除
| xargs -P4 -I{} gh api repos/${owner}/${repo}/actions/runs/{} -X DELETE
公式リンク: Delete a workflow run
-P4は4並列。APIの叩き過ぎで怒られた場合は減らしてください。
まとめ(再掲)
owner="Organization名 または User名"
repo="リポジトリ名"
file_name="ファイル名"
gh api repos/${owner}/${repo}/actions/workflows/${file_name}/runs \
| jq -r '.workflow_runs[].id' \
| xargs -P4 -I{} gh api repos/{owner}/{repo}/actions/runs/{} -X DELETE
Author And Source
この問題について(GitHub Actionsの実行履歴をまとめて削除する / How to delete workflow run histories at once), 我々は、より多くの情報をここで見つけました https://qiita.com/tippy/items/79ca3f7b7bcac1d92136著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .