|
25 | 25 | id: sync |
26 | 26 | uses: actions/github-script@v7 |
27 | 27 | env: |
28 | | - DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_PR_FORUM_WEBHOOK }} |
| 28 | + DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} |
| 29 | + DISCORD_PR_FORUM_WEBHOOK: ${{ secrets.DISCORD_PR_FORUM_WEBHOOK }} |
29 | 30 | DISCORD_WEBHOOK_USERNAME: ${{ secrets.DISCORD_WEBHOOK_USERNAME }} |
30 | 31 | DISCORD_WEBHOOK_AVATAR_URL: ${{ secrets.DISCORD_WEBHOOK_AVATAR_URL }} |
31 | 32 | DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }} |
|
37 | 38 | const WEBHOOK_AVATAR = (process.env.DISCORD_WEBHOOK_AVATAR_URL || "").trim(); |
38 | 39 |
|
39 | 40 | const THREAD_MARKER_REGEX = /<!--\s*discord-thread-id:(\d+)\s*-->/i; |
40 | | - const webhookUrl = (process.env.DISCORD_WEBHOOK_URL || "").trim(); |
| 41 | + const webhookUrl = (process.env.DISCORD_WEBHOOK_URL || process.env.DISCORD_PR_FORUM_WEBHOOK || "").trim(); |
41 | 42 | const botToken = (process.env.DISCORD_BOT_TOKEN || "").trim(); |
42 | 43 | const reviewerRoleId = (process.env.DISCORD_REVIEWER_ROLE_ID || "").trim(); |
43 | 44 | const alertWebhookUrl = (process.env.DISCORD_ALERT_WEBHOOK_URL || "").trim(); |
@@ -193,17 +194,24 @@ jobs: |
193 | 194 | } |
194 | 195 |
|
195 | 196 | try { |
196 | | - if (!webhookUrl) { |
197 | | - core.setFailed("Missing webhook URL (DISCORD_PR_FORUM_WEBHOOK)."); |
198 | | - return; |
199 | | - } |
200 | | -
|
201 | 197 | const pr = await getPullRequest(); |
202 | 198 | if (!pr) { |
203 | 199 | core.info("No PR context found. Skipping."); |
204 | 200 | return; |
205 | 201 | } |
206 | 202 |
|
| 203 | + const isForkPr = !!pr.head?.repo?.fork; |
| 204 | + if (!webhookUrl) { |
| 205 | + if (isForkPr) { |
| 206 | + core.info("Skipping Discord sync: webhook secret is unavailable for fork PR events."); |
| 207 | + return; |
| 208 | + } |
| 209 | + core.setFailed( |
| 210 | + "Missing Discord webhook secret. Set either DISCORD_WEBHOOK_URL or DISCORD_PR_FORUM_WEBHOOK in repository secrets, or pass it explicitly if using reusable workflows." |
| 211 | + ); |
| 212 | + return; |
| 213 | + } |
| 214 | +
|
207 | 215 | const action = context.payload.action || ""; |
208 | 216 | const owner = context.repo.owner; |
209 | 217 | const repo = context.repo.repo; |
|
0 commit comments