1- name : Delete All Merged Branches
1+ name : Delete All Merged Branches Except Main
22
33on :
44 workflow_call :
1010 - name : Checkout repository
1111 uses : actions/checkout@v4
1212 with :
13- fetch-depth : 0
13+ fetch-depth : 0 # Нужно видеть всю историю веток
1414
15- - name : Delete merged branches
15+ - name : Delete merged branches except main
1616 run : |
1717 git config --global user.name "github-actions"
1818 git config --global user.email "github-actions@github.com"
@@ -21,18 +21,25 @@ jobs:
2121 echo "Fetching all remote branches..."
2222 git fetch --all --prune
2323
24- echo "Looking for merged branches..."
25- MERGED_BRANCHES=$(git branch -r --merged origin/main | grep -v 'origin/main' | grep -v 'origin/release/' | sed 's|origin/||')
24+ echo "Finding merged branches (excluding main)..."
25+
26+ # Ищем все ветки, смёрженные в main, но не сам main
27+ MERGED_BRANCHES=$(git branch -r --merged origin/main | grep -v 'origin/main$' | sed 's|origin/||')
2628
2729 if [[ -z "$MERGED_BRANCHES" ]]; then
28- echo "No merged branches found ."
30+ echo "No merged branches to delete ."
2931 exit 0
3032 fi
3133
3234 echo "Merged branches to delete:"
3335 echo "$MERGED_BRANCHES"
3436
37+ COUNT=0
38+
3539 for branch in $MERGED_BRANCHES; do
3640 echo "Deleting branch: $branch"
3741 git push origin --delete "$branch"
42+ COUNT=$((COUNT+1))
3843 done
44+
45+ echo "Deleted $COUNT branches."
0 commit comments