mirror of
https://github.com/zen-browser/desktop.git
synced 2025-07-07 20:39:59 +02:00
45 lines
1.2 KiB
Bash
45 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
gh_bulk_delete_workflow_runs() {
|
|
local repo=zen-browser/$1
|
|
|
|
# Ensure the repo argument is provided
|
|
if [[ -z "$repo" ]]; then
|
|
echo "Usage: gh_bulk_delete_workflow_runs <repo>"
|
|
return 1
|
|
fi
|
|
|
|
# Fetch workflow runs that are cancelled, failed, or timed out
|
|
local runs
|
|
runs=$(gh api repos/$repo/actions/runs --paginate \
|
|
| jq -r '.workflow_runs[] |
|
|
select(.conclusion == "cancelled" or
|
|
.conclusion == "failure" or
|
|
.conclusion == "timed_out") |
|
|
.id')
|
|
|
|
if [[ -z "$runs" ]]; then
|
|
echo "No workflow runs found for $repo with the specified conclusions."
|
|
return 0
|
|
fi
|
|
|
|
# Loop through each run and delete it
|
|
while IFS= read -r run; do
|
|
echo "Attempting to delete run: https://github.com/$repo/actions/runs/$run"
|
|
|
|
# Perform the deletion
|
|
if gh api -X DELETE repos/$repo/actions/runs/$run --silent; then
|
|
echo "Successfully deleted run: $run"
|
|
else
|
|
echo "Error deleting run: $run" >&2
|
|
fi
|
|
|
|
# Optional delay to avoid hitting API rate limits
|
|
sleep 1
|
|
done <<< "$runs"
|
|
|
|
echo "Completed deletion process for workflow runs in $repo."
|
|
}
|
|
|
|
# Execute the function with the provided argument
|
|
gh_bulk_delete_workflow_runs "$1"
|