jenkinsci / jenkinsci/github-branch-source-plugin

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

Open
#1,304 5 comments 0 reactions 0 assignees View on GitHub
component:github-branch-source-plugin component:github-plugin imported-jira-issue priority:major resolution:unresolved
Dominant language
Java
Stars
217
Forks
398
Avg merge
30m
Merged PRs (30d)
1

Description

The organization scan recreates a hook for all repositories for which there is an item. We can see that the WebHook of each repository is recreated:

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 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.

---
Originally reported by allan_burdajewicz, imported from: Organization Scan recreates hooks for all repository


  • assignee: lanwen
  • status: Reopened
  • priority: Major
  • component(s): github-branch-source-plugin, github-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 3
  • imported: 2025-12-02

Raw content of original issue

The organization scan recreates a hook for all repositories for which there is an item. We can see that the WebHook of each repository is recreated:


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 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.

environment

```
github-branch-source:2.6.0

core:2.222.2
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.