Skip to content

Commit e51e799

Browse files
committed
fix: adding more logging for automerge action
Signed-off-by: Lukas Hankeln <lukashankeln@googlemail.com>
1 parent e04511d commit e51e799

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

.github/workflows/automerge-approved.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ jobs:
8888
MERGE_METHOD: ${{ inputs.merge_method }}
8989
DELETE_BRANCH: ${{ inputs.delete_branch }}
9090
run: |
91+
echo "Fetching open PRs with label '${LABEL}'..."
9192
PR_LIST=$(gh pr list \
9293
--label "${LABEL}" \
9394
--state open \
@@ -99,11 +100,12 @@ jobs:
99100
echo "" >> $GITHUB_STEP_SUMMARY
100101
101102
if [ "${PR_COUNT}" -eq 0 ]; then
103+
echo "No open PRs found with label '${LABEL}'."
102104
echo "No open PRs found with label \`${LABEL}\`." >> $GITHUB_STEP_SUMMARY
103-
echo "No PRs to merge."
104105
exit 0
105106
fi
106107
108+
echo "Found ${PR_COUNT} PR(s) with label '${LABEL}'."
107109
echo "Found ${PR_COUNT} PR(s) with label \`${LABEL}\`." >> $GITHUB_STEP_SUMMARY
108110
echo "" >> $GITHUB_STEP_SUMMARY
109111
echo "| PR | Title | Status |" >> $GITHUB_STEP_SUMMARY
@@ -118,23 +120,45 @@ jobs:
118120
MERGEABLE=$(echo "${PR_LIST}" | jq -r ".[] | select(.number == ${NUMBER}) | .mergeable")
119121
STATE=$(echo "${PR_LIST}" | jq -r ".[] | select(.number == ${NUMBER}) | .mergeStateStatus")
120122
123+
echo "---"
124+
echo "PR #${NUMBER}: ${TITLE}"
125+
echo " mergeable=${MERGEABLE} state=${STATE}"
126+
127+
# GitHub may not have computed the merge state yet — retry up to 5 times
128+
RETRIES=0
129+
while [ "${STATE}" == "UNKNOWN" ] && [ "${RETRIES}" -lt 5 ]; do
130+
RETRIES=$((RETRIES + 1))
131+
echo " State is UNKNOWN, retrying in 10s... (${RETRIES}/5)"
132+
sleep 10
133+
PR_DATA=$(gh pr view "${NUMBER}" --json mergeable,mergeStateStatus)
134+
MERGEABLE=$(echo "${PR_DATA}" | jq -r '.mergeable')
135+
STATE=$(echo "${PR_DATA}" | jq -r '.mergeStateStatus')
136+
echo " mergeable=${MERGEABLE} state=${STATE}"
137+
done
138+
121139
MERGE_ARGS=("${NUMBER}" "--${MERGE_METHOD}")
122140
[ "${DELETE_BRANCH}" == "true" ] && MERGE_ARGS+=(--delete-branch)
123141
124142
if [ "${MERGEABLE}" == "MERGEABLE" ] && [ "${STATE}" == "CLEAN" ]; then
143+
echo " Merging with method '${MERGE_METHOD}'..."
125144
if gh pr merge "${MERGE_ARGS[@]}"; then
145+
echo " Merged successfully."
126146
echo "| [#${NUMBER}](${GITHUB_SERVER_URL}/${GH_REPO}/pull/${NUMBER}) | ${TITLE} | Merged |" >> $GITHUB_STEP_SUMMARY
127147
MERGED=$((MERGED + 1))
128148
else
149+
echo " ::error::Failed to merge PR #${NUMBER}."
129150
echo "| [#${NUMBER}](${GITHUB_SERVER_URL}/${GH_REPO}/pull/${NUMBER}) | ${TITLE} | Failed |" >> $GITHUB_STEP_SUMMARY
130151
FAILED=$((FAILED + 1))
131152
fi
132153
else
154+
echo " Skipping — not ready (mergeable=${MERGEABLE}, state=${STATE})."
133155
echo "| [#${NUMBER}](${GITHUB_SERVER_URL}/${GH_REPO}/pull/${NUMBER}) | ${TITLE} | Skipped (${STATE}) |" >> $GITHUB_STEP_SUMMARY
134156
SKIPPED=$((SKIPPED + 1))
135157
fi
136158
done
137159
160+
echo "---"
161+
echo "Done. Merged=${MERGED} Skipped=${SKIPPED} Failed=${FAILED}"
138162
echo "" >> $GITHUB_STEP_SUMMARY
139163
echo "**Merged:** ${MERGED} | **Skipped:** ${SKIPPED} | **Failed:** ${FAILED}" >> $GITHUB_STEP_SUMMARY
140164

0 commit comments

Comments
 (0)