Skip to content

Commit e85d07b

Browse files
Merge pull request #461 from imAaryash/discord-actions
Refactor Discord webhook URL handling in workflow
2 parents 6d449a4 + 7264b99 commit e85d07b

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

.github/workflows/discord.yaml

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ jobs:
2525
id: sync
2626
uses: actions/github-script@v7
2727
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 }}
2930
DISCORD_WEBHOOK_USERNAME: ${{ secrets.DISCORD_WEBHOOK_USERNAME }}
3031
DISCORD_WEBHOOK_AVATAR_URL: ${{ secrets.DISCORD_WEBHOOK_AVATAR_URL }}
3132
DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }}
@@ -37,7 +38,7 @@ jobs:
3738
const WEBHOOK_AVATAR = (process.env.DISCORD_WEBHOOK_AVATAR_URL || "").trim();
3839
3940
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();
4142
const botToken = (process.env.DISCORD_BOT_TOKEN || "").trim();
4243
const reviewerRoleId = (process.env.DISCORD_REVIEWER_ROLE_ID || "").trim();
4344
const alertWebhookUrl = (process.env.DISCORD_ALERT_WEBHOOK_URL || "").trim();
@@ -193,17 +194,24 @@ jobs:
193194
}
194195
195196
try {
196-
if (!webhookUrl) {
197-
core.setFailed("Missing webhook URL (DISCORD_PR_FORUM_WEBHOOK).");
198-
return;
199-
}
200-
201197
const pr = await getPullRequest();
202198
if (!pr) {
203199
core.info("No PR context found. Skipping.");
204200
return;
205201
}
206202
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+
207215
const action = context.payload.action || "";
208216
const owner = context.repo.owner;
209217
const repo = context.repo.repo;

0 commit comments

Comments
 (0)