GitHub Commit Hooks are deleted by WebhookPeriodicalChecker when behind Firewall/VPN

Good day!

We have TeamCity Professional 2022.10.4 (build 117134) behing a firewall and only accessible with company VPN. Also GitHub Commit Hooks 152469 installed. 

The situation is as follows: 
When adding webhook via Actions > Install GitHubWebHook or GitHub Webhooks > add webhook is created within gihub with callback url like https://build.test.com/app/hooks/github/3775 but TeamCity is behind VPN so webhook is pending with “Waiting for ping event”. From github side in Webhook's Recent Deliveries its failed with 502. That makes sense. 

Now we edit Payload URL in GitHub to something like https://build-webhook.test.com/app/hooks/github/3775 which is accessible via internet. 

After that Webhook is ready and vcs is updated immediately. 

What happens is WebhookPeriodicalChecker checks that the hook's URL is present on github. So as URLs are different it deletes it with (teamcity-vcs.log):
[2024-02-12 10:00:28,642]   INFO [uled executor 5] - Hooks.WebhookPeriodicalChecker - Periodical GitHub Webhooks checker started
[2024-02-12 10:00:28,883]   INFO [uled executor 5] - Hooks.WebhookPeriodicalChecker - [HookInfo(url='https://api.github.com/repos/123/456/hooks/460448848', callbackUrl='https://build.test.com/app/hooks/github/7ccaf55f', status=MISSING, lastUsed=Mon Feb 12 09:52:49 CST 2024)] webhook missing on remote server and would be removed locally
[2024-02-12 10:00:28,883]   INFO [uled executor 5] - CS.CommitHooks.WebHooksStorage - Removed auth data [AuthData(user=58, public=7ccaf55f, connection=ConnectionInfo(id=PROJECT_EXT_13, projectExternalId=_Root), repository=GitHubRepositoryInfo(server=github.com, owner=123, name=456))]
 

All the actual data is replaced with gibberish numbers


Now the idea is somehow change the webhook callback URL on TeamCity side without considering upgrades and using native GitHub Apps in 2023. 

Will appreciate any help provided. Thank you!

0

Please sign in to leave a comment.