Skip to content

Commit 64a957f

Browse files
committed
fix(ci): fallback to github token when PAT PR edit fails
1 parent 8fa0a5e commit 64a957f

1 file changed

Lines changed: 54 additions & 3 deletions

File tree

.github/workflows/release-pr.yml

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,31 @@ jobs:
101101
102102
if [ -n "$PR_NUMBER" ]; then
103103
echo "Updating existing PR #$PR_NUMBER"
104-
gh pr edit "$PR_NUMBER" \
105-
--title "$PR_TITLE" \
106-
--body-file "$BODY_FILE"
104+
set +e
105+
EDIT_OUTPUT="$(
106+
gh pr edit "$PR_NUMBER" \
107+
--title "$PR_TITLE" \
108+
--body-file "$BODY_FILE" 2>&1
109+
)"
110+
EDIT_EXIT=$?
111+
set -e
112+
113+
if [ "$EDIT_EXIT" -eq 0 ]; then
114+
echo "$EDIT_OUTPUT"
115+
exit 0
116+
fi
117+
118+
if echo "$EDIT_OUTPUT" | grep -q "Resource not accessible by personal access token"; then
119+
echo "::warning::RELEASE_PR_TOKEN could not edit PR. Falling back to GITHUB_TOKEN."
120+
export GH_TOKEN="$DEFAULT_GH_TOKEN"
121+
gh pr edit "$PR_NUMBER" \
122+
--title "$PR_TITLE" \
123+
--body-file "$BODY_FILE"
124+
exit 0
125+
fi
126+
127+
echo "$EDIT_OUTPUT"
128+
exit "$EDIT_EXIT"
107129
else
108130
echo "Creating new release PR"
109131
set +e
@@ -133,6 +155,35 @@ jobs:
133155
exit 0
134156
fi
135157
158+
if echo "$CREATE_OUTPUT" | grep -q "Resource not accessible by personal access token"; then
159+
echo "::warning::RELEASE_PR_TOKEN could not create PR. Falling back to GITHUB_TOKEN."
160+
export GH_TOKEN="$DEFAULT_GH_TOKEN"
161+
set +e
162+
CREATE_OUTPUT_FALLBACK="$(
163+
gh pr create \
164+
--base main \
165+
--head develop \
166+
--title "$PR_TITLE" \
167+
--body-file "$BODY_FILE" 2>&1
168+
)"
169+
CREATE_EXIT_FALLBACK=$?
170+
set -e
171+
172+
if [ "$CREATE_EXIT_FALLBACK" -eq 0 ]; then
173+
echo "$CREATE_OUTPUT_FALLBACK"
174+
exit 0
175+
fi
176+
177+
if echo "$CREATE_OUTPUT_FALLBACK" | grep -q "Resource not accessible by integration"; then
178+
echo "::warning::Unable to create release PR with fallback GITHUB_TOKEN."
179+
echo "$CREATE_OUTPUT_FALLBACK"
180+
exit 0
181+
fi
182+
183+
echo "$CREATE_OUTPUT_FALLBACK"
184+
exit "$CREATE_EXIT_FALLBACK"
185+
fi
186+
136187
echo "$CREATE_OUTPUT"
137188
exit "$CREATE_EXIT"
138189
fi

0 commit comments

Comments
 (0)