Adding a GitHub Webhook in Your Jenkins Pipeline
Learn how to add GitHub webhooks to Jenkins pipelines to trigger the build when a developer commits code to the master branch.
Join the DZone community and get the full member experience.Join For Free
Have you ever tried adding a GitHub webhook in Jenkins? In this blog, I will be demonstrating the easiest way to add a webhook to your pipeline.
What Is a Webhook?
The concept of a webhook is simple. A webhook is an HTTP callback, an HTTP POST that occurs when something happens through a simple event notification via HTTP POST.
Let’s see how to add build a webhook in GitHub and then add this webhook in Jenkins.
- Go to your project repository.
- Go to "settings" in the right corner.
- Click on "webhooks".
- Click "Add webhooks".
- Write the Payload URL as:
Here, Payload URL is the URL where our Jenkins is running. Add "github-webhook" to tell GitHub that it is a webhook.
- Content type: What kind of data we want in our webhook; I have selected JSON data
- Secret: Used to secure our webhook; we can provide a secret in our webhook and ensure that only applications having this webhook can use it
- SSL verification: This SSL checker will help you diagnose problems with your SSL certificate installation. You can verify the SSL certificate on your web server to make sure it is correctly installed, valid, trusted, and doesn’t give any errors to any of your users.
Related Tutorial: How to Use JSON Web Encryption (JWE).
Which Events Would You Like To Trigger This Webhook?
- Just the push event: Only send data when someone pushes into my repository.
- Send me everything: If there is any pull or push event in our repository we will get notified.
- Let me select individual events: We can configure for what events we want our data.
Click Create and a webhook will be created.
Here, https://228b9f82.ngrok.io/ is the port or IP where my Jenkins is running.
Here is a problem you have to take care of: if you are running Jenkins on
localhost, then writing
https://localhost:8080/github-webhook/ will not work because webhooks can only work when they are exposed to the internet.
So if you want to make your localhost:8080, expose to the internet. Then we can use the tool. To write GitHub-webhook to the
ngrok tool, refer to this link.
How To Add a GitHub Webhook in Jenkins:
- Go to Manage Jenkins -> Configure System.
- Scroll down and you will find the GitHub Pull Requests checkbox. In the Published Jenkins URL, add the repository link.
- Click on "Save."
- Now go to the Jenkins pipeline and select "GitHub hook trigger for GITScm polling".
In this way, we can add a webhook to our job and ensure that every time a developer commits a code to GitHub, our build will be triggered.
Gitlab VS Jenkins: Which CI/CD tool should you use?
Incorporating a GitHub webhook in your Jenkins pipeline is a fundamental step toward achieving a streamlined and automated software development process. This integration not only enhances the speed and efficiency of your CI/CD pipeline but also ensures that your development team receives immediate feedback on code changes. Mastering GitHub webhooks in Jenkins empowers teams to establish seamless and efficient integration between version control and automation, fostering a modern and automated software development environment.
Opinions expressed by DZone contributors are their own.