| #!/bin/bash | |
| # | |
| # This script helps with deleting old workflows on github. | |
| OP=$1 | |
| REPO=repos/project-chip/zap | |
| if [ -z "$OP" ]; then | |
| echo "Usage: workflow-ops [ list [xxxxx] | delete xxxxx ]" | |
| echo "" | |
| echo " list : lists all workflows" | |
| echo " list ID : lists all runs under a given workflow" | |
| echo " delete ID : DELETES all runs under a given workflow" | |
| echo "" | |
| echo "WARNING: If you run 'delete' this WILL DELETE all the workflow runs under a given workflow." | |
| echo "Make sure you know what you're doing! Really!!" | |
| exit | |
| fi | |
| if [ "$OP" == "list" ]; then | |
| ID=$2 | |
| if [ -z "$ID" ]; then | |
| gh api $REPO/actions/workflows | jq -cM '.workflows[] | [.id, .name, .path]' | |
| else | |
| gh api $REPO/actions/workflows/$ID/runs --paginate | jq '.workflow_runs[] | .id' | |
| fi | |
| elif [ "$OP" == "delete" ]; then | |
| ID=$2 | |
| if [ -z "$ID" ]; then | |
| echo "You need to provide ID." | |
| exit | |
| fi | |
| echo "Deleting workflow runs for workflow $ID. Please wait. This might take a while...." | |
| gh api $REPO/actions/workflows/$ID/runs --paginate | jq '.workflow_runs[] | .id' | xargs -n1 -I% gh api $REPO/actions/runs/% -X DELETE | |
| else | |
| echo "Unknown command: $OP" | |
| fi |