GitHub Webhook: Pipeline Multibranch

Article ID:115003019232
2 minute readKnowledge base

Issue

Resolution

On Jenkins

A. Plugin Configuration

For GitHub Branch Source in case you wish to integrate with a GitHub Enterprise, it needs to be added in Manage Jenkins > Configure System > GitHub Enterprise Servers in order to fetch repositories from that endpoint.

GHE-apiEndpoints.png

B. Job Configuration

We are going to create a Multibranch Pipeline job/item which will scan the repository for creating a job for each branch found in the repository. You will need to follow these steps to create this Multibranch Pipeline:

  1. Create a Multibranch Pipeline and go into its configuration.

  2. Add a source in Branch Sourcessection selecting a GitHub option.

  3. For Credential use Username and Password, typing as password the personal access token. Note: This Credentials field is required only if you want to provide a private repository.

  4. Choose one of the two method for specifying the repository: Repository HTTPS URL and Repository Scan.

Repository HTTPS URL

GH_multibranch_configuration.png

This is the default and recommended method. Here, you will put the repository URL in the Repository HTTPS URL field. You can use the Validate button to check if your Jenkins instance has access to the provided URL.

Repository Scan

This method is deprecated for performance reasons. You could want to use it if you don’t know the repository URL but you know the account owner of the repository. To use this method you will need to follow the following steps:

  1. Select Respository Scan - Deprecated Visualization.

  2. For Owner use the GitHub user/organization.

  3. Select on of the fetched Repository from the Owner.

For both method (Repository HTTPS URL and Repository Scan) and if you are using SCM API 2.2.4 or higher, please check the Behaviors section and ensure Filter by name is removed unless you only want to discover a subset of branches. If it is configured, please recall to include PR-* to Discover Pull Requests.

Suppress Automatic SCM trigger property

It disables any automatic triggering, not only coming from push / pull request / repository notification but also from branch indexing.

After saving the job, two views area created: one for Branches (Push events) and another for Pull Request.

GH_webhook_MultiBranch.png

On GitHub

C. Validate GitHub WebHook

Make sure post-receive hooks has been created on GitHub at the Repository specify in the SCM configuration of the job as follows:

  • <JENKINS_URL>/github-webhook/ for Pull request and Push events.

GH_webhook_MultiBranch.png

Troubleshooting

If the post-receive hooks are not there, please review Troubleshooting

Tested products/plugins version

The latest update of this article has been tested with: