[JIRA] (JENKINS-62116) Organization Scan recreates hooks for all repository

10 views
Skip to first unread message

aburdajewicz@cloudbees.com (JIRA)

unread,
Apr 29, 2020, 9:06:02 PM4/29/20
to jenkinsc...@googlegroups.com
Allan BURDAJEWICZ created an issue
 
Jenkins / Bug JENKINS-62116
Organization Scan recreates hooks for all repository
Issue Type: Bug Bug
Assignee: Kirill Merkushev
Components: github-branch-source-plugin, github-plugin
Created: 2020-04-30 01:05
Environment: github-branch-source:2.6.0
core:2.222.2
Priority: Major Major
Reporter: Allan BURDAJEWICZ

The organization scan recreates a hook for all repositories for which there is an item. We can see that A WebHook is created / updated with events "[PULL_REQUEST, PUSH]" and then the webhook is replaced with events "[PULL_REQUEST, PUSH, REPOSITORY]".

Apr 30, 2020 12:42:08 AM FINE com.cloudbees.jenkins.GitHubWebHook$1 apply
Calling registerHooks() for dse-team-apac/aburdajewicz/testOrg/public-repo
Apr 30, 2020 12:42:08 AM INFO org.jenkinsci.plugins.github.webhook.WebhookManager$1 run
GitHub webhooks activated for job dse-team-apac/aburdajewicz/testOrg/public-repo with [GitHubRepositoryName[host=github.example.com,username=test-org,repository=public-repo]] (events: [PULL_REQUEST, PUSH])
Apr 30, 2020 12:42:09 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Replaced hook https://github.example.com/api/v3/repos/test-org/public-repo/hooks/32392 (events: [PULL_REQUEST, PUSH, REPOSITORY])
Apr 30, 2020 12:42:09 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Created hook https://github.example.com/api/v3/repos/test-org/public-repo/hooks/32394 (events: [PULL_REQUEST, PUSH, REPOSITORY])
Apr 30, 2020 12:42:10 AM FINE com.cloudbees.jenkins.GitHubWebHook$1 apply
Calling registerHooks() for dse-team-apac/aburdajewicz/testOrg/private-repo
Apr 30, 2020 12:42:10 AM INFO org.jenkinsci.plugins.github.webhook.WebhookManager$1 run
GitHub webhooks activated for job dse-team-apac/aburdajewicz/testOrg/private-repo with [GitHubRepositoryName[host=github.example.com,username=test-org,repository=private-repo]] (events: [PULL_REQUEST, PUSH])
Apr 30, 2020 12:42:10 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Replaced hook https://github.example.com/api/v3/repos/test-org/private-repo/hooks/32393 (events: [PULL_REQUEST, PUSH, REPOSITORY])
Apr 30, 2020 12:42:10 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Created hook https://github.example.com/api/v3/repos/test-org/private-repo/hooks/32395 (events: [PULL_REQUEST, PUSH, REPOSITORY])

The GitHub audit log is then showing a "hook.destroy" / "hook.create" for each repository. API rate seems to be wasted and those recreation seem unnecessary. The differenc eof events

h3 How to Reproduce

  • Configure a GitHub Server under *Manage Jenkins > Configure System > GitHub* and enabled "Manage Hooks"
  • Create a log recorder in *Manage Jenkins > System Logs* for org.jenkinsci.plugins.github.webhook.WebhookManager, com.cloudbees.jenkins.GitHubWebHook
  • Create an GitHub Organization item that match at least one repo
  • Run the Organization Scan a few times

Check the log recorder and also the Audit log at $GITHUB_ORG_URL/settings/audit-log, You shell see that hooks are replaced on Organization Scan.

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

aburdajewicz@cloudbees.com (JIRA)

unread,
Apr 29, 2020, 9:09:03 PM4/29/20
to jenkinsc...@googlegroups.com
Allan BURDAJEWICZ updated an issue
Change By: Allan BURDAJEWICZ
The organization scan recreates a hook for all repositories for which there is an item. We can see that A the WebHook of each repository is created / updated with events "[PULL_REQUEST, PUSH]" and then the webhook is *replaced* with events "[PULL_REQUEST, PUSH, REPOSITORY]". recreated:

{code}

Apr 30, 2020 12:42:08 AM FINE com.cloudbees.jenkins.GitHubWebHook$1 apply
Calling registerHooks() for dse-team-apac/aburdajewicz/testOrg/public-repo
Apr 30, 2020 12:42:08 AM INFO org.jenkinsci.plugins.github.webhook.WebhookManager$1 run
GitHub webhooks activated for job dse-team-apac/aburdajewicz/testOrg/public-repo with [GitHubRepositoryName[host=github.example.com,username=test-org,repository=public-repo]] (events: [PULL_REQUEST, PUSH])
Apr 30, 2020 12:42:09 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Replaced hook https://github.example.com/api/v3/repos/test-org/public-repo/hooks/32392 (events: [PULL_REQUEST, PUSH, REPOSITORY])
Apr 30, 2020 12:42:09 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Created hook https://github.example.com/api/v3/repos/test-org/public-repo/hooks/32394 (events: [PULL_REQUEST, PUSH, REPOSITORY])
Apr 30, 2020 12:42:10 AM FINE com.cloudbees.jenkins.GitHubWebHook$1 apply
Calling registerHooks() for dse-team-apac/aburdajewicz/testOrg/private-repo
Apr 30, 2020 12:42:10 AM INFO org.jenkinsci.plugins.github.webhook.WebhookManager$1 run
GitHub webhooks activated for job dse-team-apac/aburdajewicz/testOrg/private-repo with [GitHubRepositoryName[host=github.example.com,username=test-org,repository=private-repo]] (events: [PULL_REQUEST, PUSH])
Apr 30, 2020 12:42:10 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Replaced hook https://github.example.com/api/v3/repos/test-org/private-repo/hooks/32393 (events: [PULL_REQUEST, PUSH, REPOSITORY])
Apr 30, 2020 12:42:10 AM FINE org.jenkinsci.plugins.github.webhook.WebhookManager$3 applyNullSafe
Created hook https://github.example.com/api/v3/repos/test-org/private-repo/hooks/32395 (events: [PULL_REQUEST, PUSH, REPOSITORY])
{code}

The GitHub audit log is then showing a "hook.destroy" / "hook.create" for each repository. API rate seems to be wasted and those recreation seem unnecessary. The
differenc eof difference of events is odd too: {{[PULL_REQUEST, PUSH]}} vs {{[PULL_REQUEST, PUSH, REPOSITORY]}}. It seems related to how GitHub Plugin and GitHub Branch Source work together.


h3 How to Reproduce

* Configure a GitHub Server under **Manage Jenkins > Configure System > GitHub** and enabled "Manage Hooks"
* Create a log recorder in **Manage Jenkins > System Logs** for {{org.jenkinsci.plugins.github.webhook.WebhookManager}}, {{com.cloudbees.jenkins.GitHubWebHook}}
* Create an GitHub Organization item that match at least one repo
* Run the Organization Scan a few times

Check the log recorder and also the Audit log at {{$GITHUB_ORG_URL/settings/audit-log}}, You shell see that hooks are replaced on Organization Scan.

aburdajewicz@cloudbees.com (JIRA)

unread,
Apr 29, 2020, 9:28:02 PM4/29/20
to jenkinsc...@googlegroups.com
Allan BURDAJEWICZ commented on Bug JENKINS-62116
 
Re: Organization Scan recreates hooks for all repository

I can actually still see this when disabling the "Manage Webhooks" under Manage Jenkins > Configure System > GitHub. The creation / deletion of webhooks in that case is still triggered. But fails with credentials issues.

olamy@apache.org (JIRA)

unread,
May 1, 2020, 6:39:02 AM5/1/20
to jenkinsc...@googlegroups.com

olamy@apache.org (JIRA)

unread,
May 6, 2020, 5:56:03 AM5/6/20
to jenkinsc...@googlegroups.com
Change By: Olivier Lamy
Status: Open Fixed but Unreleased
Resolution: Fixed
Reply all
Reply to author
Forward
0 new messages