name: Workflow Bot Cleanup
on:
  workflow_dispatch: # Allows for manual triggering if needed
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron: "0 9 * * *" # Run every day
permissions:
  contents: write
  pull-requests: write


jobs:
  clean-up-branches:
    if: ${{ github.repository == 'flutter/devtools' }}
    name: Clean up closed DartDevtoolWorkflowBot Branches
    runs-on: ubuntu-latest
    steps:
      - name: Sparse checkout of the repository
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
        with:
          sparse-checkout: |
            README.md
      - name: Clean up closed DartDevtoolWorkflowBot branches
        run: |
          set -e

          # Get list of branches that exist on the remote, then filter for the workflow bot branches
          EXISTING_BRANCHES=$(git ls-remote --heads | grep refs/heads | awk  '{print $2}' |sed 's|refs/heads/\(.*\)$|\1|')
          for EXISTING_BRANCH in $EXISTING_BRANCHES; do
            set +e # Turn off exit on error, since "gh pr view" may fail if branch doesn't exist
            PR_INFO=$(gh pr view --json closed,author "$EXISTING_BRANCH")
            if [[ $? -ne 0 ]]; then
              # If getting PR_INFO fails assume the PR does not exist
              echo "SKIP: No PR exists for $EXISTING_BRANCH"
              continue
            fi
            set -e # Turn exit on error back on

            PR_IS_CLOSED=$(echo $PR_INFO | jq -r '.closed')
            PR_AUTHOR=$(echo $PR_INFO | jq -r '.author.login')
            if [[ "$PR_IS_CLOSED" == "true" ]] && [[ "$PR_AUTHOR" == "DartDevtoolWorkflowBot" ]]; then
              # Delete branches where:
              # - DartDevtoolWorkflowBot is the author 
              # - the PR is closed
              echo "Deleting $EXISTING_BRANCH"
              gh api /repos/flutter/devtools/git/refs/heads/$EXISTING_BRANCH -X DELETE
            else
              echo "SKIP: Avoiding $EXISTING_BRANCH { is_closed:$PR_IS_CLOSED, author:$PR_AUTHOR }"
            fi
          done

        env:
          GH_TOKEN: ${{ secrets.DEVTOOLS_WORKFLOW_BOT_TOKEN }}
