@@ -15,35 +15,27 @@ echo ""
1515
1616while true ; do
1717 # Get PR status
18- STATUS=$( gh pr view " $PR_NUMBER " --json mergeable,mergeStateStatus,state 2> /dev/null || echo " error" )
19-
18+ STATUS=$( gh pr view " $PR_NUMBER " --json mergeable,mergeStateStatus 2> /dev/null || echo " error" )
19+
2020 if [ " $STATUS " = " error" ]; then
2121 echo " ❌ Failed to get PR status. Does PR #$PR_NUMBER exist?"
2222 exit 1
2323 fi
24-
25- PR_STATE=$( echo " $STATUS " | jq -r ' .state' )
26-
27- # Check if PR is already merged
28- if [ " $PR_STATE " = " MERGED" ]; then
29- echo " ✅ PR #$PR_NUMBER has been merged!"
30- exit 0
31- fi
32-
24+
3325 MERGEABLE=$( echo " $STATUS " | jq -r ' .mergeable' )
3426 MERGE_STATE=$( echo " $STATUS " | jq -r ' .mergeStateStatus' )
35-
27+
3628 # Check for bad merge status
3729 if [ " $MERGEABLE " = " CONFLICTING" ]; then
3830 echo " ❌ PR has merge conflicts!"
3931 exit 1
4032 fi
41-
33+
4234 if [ " $MERGE_STATE " = " DIRTY" ]; then
4335 echo " ❌ PR has merge conflicts!"
4436 exit 1
4537 fi
46-
38+
4739 if [ " $MERGE_STATE " = " BEHIND" ]; then
4840 echo " ❌ PR is behind base branch. Rebase needed."
4941 echo " "
@@ -53,18 +45,18 @@ while true; do
5345 echo " git push --force-with-lease"
5446 exit 1
5547 fi
56-
48+
5749 # Get check status
5850 CHECKS=$( gh pr checks " $PR_NUMBER " 2>&1 || echo " pending" )
59-
51+
6052 # Check for failures
6153 if echo " $CHECKS " | grep -q " fail" ; then
6254 echo " ❌ Some checks failed:"
6355 echo " "
6456 gh pr checks " $PR_NUMBER "
6557 exit 1
6658 fi
67-
59+
6860 # Check if all checks passed and merge state is clean
6961 if echo " $CHECKS " | grep -q " pass" && ! echo " $CHECKS " | grep -qE " pending|fail" ; then
7062 if [ " $MERGE_STATE " = " CLEAN" ]; then
@@ -79,6 +71,6 @@ while true; do
7971 # Show current status
8072 echo -ne " \r⏳ Checks in progress... (${MERGE_STATE} ) "
8173 fi
82-
74+
8375 sleep 5
8476done
0 commit comments