name: Cleanup Decision Graph PNGs on: pull_request: types: [closed] jobs: cleanup: # Only run if PR was merged (not just closed) if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} - name: Find and remove decision graph PNGs id: find-pngs run: | # Find decision graph PNGs (in docs/ or root) PNGS=$(find . -name "decision-graph*.png" -o -name "deciduous-graph*.png" 2>/dev/null | grep -v node_modules || true) if [ -z "$PNGS" ]; then echo "No decision graph PNGs found" echo "found=false" >> $GITHUB_OUTPUT else echo "Found PNGs to clean up:" echo "$PNGS" echo "found=true" >> $GITHUB_OUTPUT # Remove the files echo "$PNGS" | xargs rm -f # Also remove corresponding .dot files for png in $PNGS; do dot_file="${png%.png}.dot" if [ -f "$dot_file" ]; then rm -f "$dot_file" echo "Also removed: $dot_file" fi done fi - name: Create cleanup PR if: steps.find-pngs.outputs.found == 'true' run: | # Check if there are changes to commit if git diff --quiet && git diff --staged --quiet; then echo "No changes to commit" exit 0 fi # Configure git git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" # Create branch and commit BRANCH="cleanup/decision-graphs-pr-${{ github.event.pull_request.number }}" git checkout -b "$BRANCH" git add -A git commit -m "chore: cleanup decision graph assets from PR #${{ github.event.pull_request.number }}" git push origin "$BRANCH" # Create and auto-merge PR gh pr create \ --title "chore: cleanup decision graph assets from PR #${{ github.event.pull_request.number }}" \ --body "Automated cleanup of decision graph PNG/DOT files that were used in PR #${{ github.event.pull_request.number }}. These files served their purpose for PR review and are no longer needed." \ --head "$BRANCH" \ --base main # Auto-merge (requires auto-merge enabled on repo) gh pr merge "$BRANCH" --auto --squash --delete-branch || echo "Auto-merge not enabled, PR created for manual merge" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}