diff --git a/tools/WebhookProcessor/github_webhook_processor.php b/tools/WebhookProcessor/github_webhook_processor.php index 03d0e6e8c45..10be0342f9d 100644 --- a/tools/WebhookProcessor/github_webhook_processor.php +++ b/tools/WebhookProcessor/github_webhook_processor.php @@ -40,6 +40,17 @@ $tracked_branch = 'master'; $require_changelogs = false; $discordWebHooks = array(); +// Only these repositories will announce in game. +// Any repository that players actually care about. +$game_announce_whitelist = array( + "Skyrat-tg", +); + +// Any repository that matches in this blacklist will not appear on Discord. +$discord_announce_blacklist = array( + "/^event-.*$/", +); + require_once 'secret.php'; //CONFIG END @@ -310,6 +321,16 @@ function check_dismiss_changelog_review($payload){ dismiss_review($payload, $R['id'], 'Changelog added/fixed.'); } +function is_blacklisted($blacklist, $name) { + foreach ($blacklist as $pattern) { + if (preg_match($pattern, $name)) { + return true; + } + } + + return false; +} + function handle_pr($payload) { global $no_changelog; $action = 'opened'; @@ -352,9 +373,16 @@ function handle_pr($payload) { if (!$validated) { $pr_flags |= F_UNVALIDATED_USER; } - discord_announce($action, $payload, $pr_flags); - game_announce($action, $payload, $pr_flags); + $repo_name = $payload['repository']['name']; + + if (in_array($repo_name, $game_announce_whitelist)) { + game_announce($action, $payload, $pr_flags); + } + + if (!is_blacklisted($discord_announce_blacklist, $repo_name)) { + discord_announce($action, $payload, $pr_flags); + } } function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) {