Github Branch Source -> GitHub Organization project - only organization scan indexes a newly created repository (even with webhooks in-place)

Hi Jenkins Community,

We’re using the GitHub Branch Source Plugin with a GitHub Organization Folder, configured to use a GitHub App for increased API token limits and webhooks (per-repo and organization-level repository events).

However, when a new repository is created, it still requires a full organization scan to be discovered by Jenkins.

Is this expected behavior?

From inspecting the logs and the code, it seems so: github-branch-source-plugin/src/main/java/org/jenkinsci/plugins/github_branch_source/GitHubRepositoryEventSubscriber.java at 77b6542df5a8b10fe7d0ed6aa2b9a56dce8059ee · jenkinsci/github-branch-source-plugin · GitHub (I see "Repository {0} was created but it is empty, will be ignored" line in the logs when I create a new repository and webhook is processed at Jenkins controller).

The new repository is not a fork. But, … we use a repository creation pipeline, that automatically commits a Jenkinsfile right away—so in theory, it should be discoverable immediately.

But since it isn’t and our organization scan takes several hours due to API rate limits, I’m wondering:

  • Is it really expected that a full org scan is required for the repository to appear in the GitHub Organization Folder?
  • Or is there a way to make webhook events trigger discovery without relying on the scan?

Thanks!

Jenkins setup:

Jenkins: 2.462.3
OS: Linux - 6.1.0-26-amd64
Java: 17.0.12 - Eclipse Adoptium (OpenJDK 64-Bit Server VM)
---
Office-365-Connector:5.0.0
Parameterized-Remote-Trigger:3.2.0
ace-editor:1.1
android-signing:2.2.5
ansible:307.va_1f3ef06575a_
ansicolor:1.0.5
ant:511.v0a_a_1a_334f41b_
antisamy-markup-formatter:162.v0e6ec0fcfcf6
apache-httpcomponents-client-4-api:4.5.14-208.v438351942757
artifactory:4.0.8
asm-api:9.7.1-97.v4cc844130d97
atlassian-bitbucket-server-integration:4.1.4
authentication-tokens:1.119.v50285141b_7e1
aws-credentials:231.v08a_59f17d742
aws-java-sdk:1.12.772-477.v650d756dcf6d
aws-java-sdk-api-gateway:1.12.772-477.v650d756dcf6d
aws-java-sdk-autoscaling:1.12.772-477.v650d756dcf6d
aws-java-sdk-cloudformation:1.12.772-477.v650d756dcf6d
aws-java-sdk-cloudfront:1.12.772-477.v650d756dcf6d
aws-java-sdk-cloudwatch:1.12.772-477.v650d756dcf6d
aws-java-sdk-codebuild:1.12.772-477.v650d756dcf6d
aws-java-sdk-codedeploy:1.12.772-477.v650d756dcf6d
aws-java-sdk-ec2:1.12.772-477.v650d756dcf6d
aws-java-sdk-ecr:1.12.772-477.v650d756dcf6d
aws-java-sdk-ecs:1.12.772-477.v650d756dcf6d
aws-java-sdk-efs:1.12.772-477.v650d756dcf6d
aws-java-sdk-elasticbeanstalk:1.12.772-477.v650d756dcf6d
aws-java-sdk-elasticloadbalancingv2:1.12.772-477.v650d756dcf6d
aws-java-sdk-iam:1.12.772-477.v650d756dcf6d
aws-java-sdk-kinesis:1.12.772-477.v650d756dcf6d
aws-java-sdk-lambda:1.12.772-477.v650d756dcf6d
aws-java-sdk-logs:1.12.772-477.v650d756dcf6d
aws-java-sdk-minimal:1.12.772-477.v650d756dcf6d
aws-java-sdk-organizations:1.12.772-477.v650d756dcf6d
aws-java-sdk-secretsmanager:1.12.772-477.v650d756dcf6d
aws-java-sdk-sns:1.12.772-477.v650d756dcf6d
aws-java-sdk-sqs:1.12.772-477.v650d756dcf6d
aws-java-sdk-ssm:1.12.772-477.v650d756dcf6d
basic-branch-build-strategies:81.v05e333931c7d
blueocean:1.27.11
blueocean-autofavorite:1.2.5
blueocean-bitbucket-pipeline:1.27.11
blueocean-commons:1.27.16
blueocean-config:1.27.16
blueocean-core-js:1.27.16
blueocean-dashboard:1.27.16
blueocean-display-url:2.4.3
blueocean-events:1.27.11
blueocean-git-pipeline:1.27.11
blueocean-github-pipeline:1.27.11
blueocean-i18n:1.27.16
blueocean-jwt:1.27.16
blueocean-personalization:1.27.16
blueocean-pipeline-api-impl:1.27.11
blueocean-pipeline-editor:1.27.11
blueocean-pipeline-scm-api:1.27.16
blueocean-rest:1.27.16
blueocean-rest-impl:1.27.16
blueocean-web:1.27.16
bootstrap4-api:4.6.0-6
bootstrap5-api:5.3.3-1
bouncycastle-api:2.30.1.78.1-248.ve27176eb_46cb_
branch-api:2.1197.vfa_d0c47c267d
build-failure-analyzer:2.5.2
build-monitor-plugin:1.14-908.vd91a_186b_9121
build-user-vars-plugin:176.vb_9c7907fd524
caffeine-api:3.2.0-161.v691ef352cee1
checks-api:2.2.3
cloudbees-bitbucket-branch-source:888.v8e6d479a_1730
cloudbees-folder:6.901.vb_4c7a_da_75da_3
cobertura:1.17
code-coverage-api:4.99.0
command-launcher:116.vd85919c54a_d6
commons-compress-api:1.26.1-2
commons-httpclient3-api:3.1-3
commons-lang3-api:3.17.0-84.vb_b_938040b_078
commons-text-api:1.13.0-150.vfc0d7966fc38
conditional-buildstep:1.4.3
config-file-provider:968.ve1ca_eb_913f8c
copyartifact:757.v05365583a_455
coverage:1.2.0
cppcheck:1.26
credentials:1337.v60b_d7b_c7b_c9f
credentials-binding:657.v2b_19db_7d6e6d
dark-theme:514.va_3ea_73d65dc1
data-tables-api:2.1.8-1
display-url-api:2.204.vf6fddd8a_8b_e9
docker-commons:445.v6b_646c962a_94
docker-custom-build-environment:1.7.3
docker-workflow:580.vc0c340686b_54
dtkit-api:3.0.3
durable-task:581.v299a_5609d767
echarts-api:5.5.1-4
eddsa-api:0.3.0-4.v84c6f0f4969e
email-ext:2.104
envinject:2.919.v009a_a_1067cd0
envinject-api:1.199.v3ce31253ed13
extended-read-permission:61.vf24570ff3b_e9
external-monitor-job:215.v2e88e894db_f8
favorite:2.221.v19ca_666b_62f5
font-awesome-api:6.6.0-2
forensics-api:2.7.0
git:5.2.1
git-client:4.6.0
git-server:126.v0d945d8d2b_39
github:1.40.0
github-api:1.321-468.v6a_9f5f2d5a_7e
github-branch-source:1793.v1831e9c68d77
gitlab-api:5.6.0-97.v6603a_83f8690
gitlab-branch-source:704.vc7f1202d7e14
gitlab-plugin:1.8.0
google-oauth-plugin:1.330.vf5e86021cb_ec
google-play-android-publisher:4.2
gradle:2.13.1
gson-api:2.11.0-85.v1f4e87273c33
handlebars:3.0.8
handy-uri-templates-2-api:2.1.8-30.v7e777411b_148
hashicorp-vault-pipeline:1.4
hashicorp-vault-plugin:371.v884a_4dd60fb_6
htmlpublisher:1.37
http_request:1.18
influxdb:2.5
instance-identity:201.vd2a_b_5a_468a_a_6
ionicons-api:74.v93d5eb_813d5f
ivy:2.5
jackson2-api:2.18.3-396.v93cc2d00b_b_7b_
jakarta-activation-api:2.1.3-1
jakarta-mail-api:2.1.3-1
javadoc:280.v050b_5c849f69
javax-activation-api:1.2.0-7
javax-mail-api:1.6.2-10
jaxb:2.3.9-1
jdk-tool:80.v8a_dee33ed6f0
jenkins-design-language:1.27.16
jersey2-api:2.44-151.v6df377fff741
jfrog:1.5.5
jjwt-api:0.11.5-112.ve82dfb_224b_a_d
jnr-posix-api:3.1.20-125.vb_6ec4b_21b_15e
job-restrictions:212.vc34d63a_6704b_
jobConfigHistory:1294.v961a_b_707546a_
joda-time-api:2.13.0-93.v9934da_29b_a_e9
jquery:1.12.4-3
jquery-detached:1.2.1
jquery3-api:3.7.1-2
jsch:0.2.16-86.v42e010d9484b_
json-api:20241224-119.va_dca_a_b_ea_7da_5
json-path-api:2.9.0-118.v7f23ed82a_8b_8
junit:1312.v1a_235a_b_94a_31
ldap:725.v3cb_b_711b_1a_ef
leastload:62.vfa_8830902733
lockable-resources:1327.ved786b_a_197e0
mail-watcher-plugin:1.19
mailer:488.v0c9639c1a_eb_3
mapdb-api:1.0.9-40.v58107308b_7a_7
matrix-auth:3.2.3
matrix-project:839.vff91cd7e3a_b_2
maven-plugin:3.24
metrics:4.2.21-458.vcf496cb_839e4
mina-sshd-api-common:2.14.0-143.v2b_362fc39576
mina-sshd-api-core:2.12.0-90.v9f7fb_9fa_3d3b_
momentjs:1.1.1
monitoring:1.99.0
next-build-number:1.8
next-executions:392.v1d10c1b_5926f
nodelabelparameter:1.13.0
oauth-credentials:0.653.v14cf2088e950
okhttp-api:4.11.0-172.vda_da_1feeb_c6e
opentelemetry:3.1215.vc9db_a_0b_34c2a_
pam-auth:1.11
parameterized-trigger:806.vf6fff3e28c3e
pipeline-aws:1.43
pipeline-build-step:540.vb_e8849e1a_b_d8
pipeline-graph-analysis:231.v56354571a_da_0
pipeline-graph-view:243.vc9e11fec486a_
pipeline-groovy-lib:744.v5b_556ee7c253
pipeline-input-step:508.v584c0e9a_2177
pipeline-milestone-step:119.vdfdc43fc3b_9a_
pipeline-model-api:2.2218.v56d0cda_37c72
pipeline-model-definition:2.2205.vc9522a_9d5711
pipeline-model-extensions:2.2205.vc9522a_9d5711
pipeline-rest-api:2.34
pipeline-stage-step:312.v8cd10304c27a_
pipeline-stage-tags-metadata:2.2218.v56d0cda_37c72
pipeline-stage-view:2.34
pipeline-utility-steps:2.18.0
plain-credentials:177.vb_231f25527e7
plugin-util-api:5.1.0
popper-api:1.16.1-3
popper2-api:2.11.6-5
prism-api:1.29.0-8
prometheus:2.3.3
pubsub-light:1.18
rebuild:332.va_1ee476d8f6d
resource-disposer:0.24
role-strategy:633.v836e5b_3e80a_5
run-condition:1.7
saml:4.464.vea_cb_75d7f5e0
scm-api:696.v778d637b_a_762
script-security:1369.v9b_98a_4e95b_2d
snakeyaml-api:2.3-123.v13484c65210a_
sonar:2.17.2
sse-gateway:1.27
ssh-credentials:308.ve4497b_ccd8f4
ssh-slaves:2.948.vb_8050d697fec
sshd:3.330.vc866a_8389b_58
structs:338.v848422169819
subversion:1268.v0581f58a_b_3cd
theme-manager:262.vc57ee4a_eda_5d
thinBackup:1.18
throttle-concurrents:2.14
timestamper:1.27
token-macro:400.v35420b_922dcb_
trilead-api:2.147.vb_73cc728a_32e
variant:60.v7290fc0eb_b_cd
workflow-aggregator:600.vb_57cdd26fdd7
workflow-api:1358.vfb_5780da_64cb_
workflow-basic-steps:1058.vcb_fc1e3a_21a_9
workflow-cps:4009.v0089238351a_9
workflow-durable-task-step:1378.v6a_3e903058a_3
workflow-job:1436.vfa_244484591f
workflow-multibranch:773.vc4fe1378f1d5
workflow-scm-step:427.v4ca_6512e7df1
workflow-step-api:678.v3ee58b_469476
workflow-support:943.v8b_0d01a_7b_a_08
ws-cleanup:0.47
xunit:3.1.5