> ## Content Index
> Fetch the complete content index at: https://devopscube.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to Create GitHub App For Jenkins Status Checks
- URL: https://devopscube.com/enable-jenkins-status-checks-github/
- Published: 2024-08-20T14:07:17.000Z
- Updated: 2025-03-12T16:25:46.000Z
- Author: Bibin Wilson
- Tags: CI/CD, JENKINS, #Migrated-1741795015845, #wp, #wp-post, #Import 2025-03-12 15:57, #blog

When you use [Jenkins multi-branch pipelines](https://devopscube.com/jenkins-multibranch-pipeline-tutorial/), you can integrate status checks with GitHub Pull Requests.

Here is an example of status checks.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-30-13.png)

To implement these types of status checks, you need to create a GitHub App that integrates with the Jenkins controller instance.

In this blog, we will look at how to create a GitHub app for enabling status checks in the pipeline.

## Creating Github App

To create a GitHub App, select your GitHub profile and go to **Settings** as shown below.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-12-17.png)

Scroll down and select the **Developer settings**

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-13-18.png)

Then click the **New GitHub App** button to create a new GitHub app

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-14-26.png)

You need to fill out the following details in the configurations.

1. **GitHub App name:** This name has to be unique. For example, jenkins-techiescamp-app. Replace it with the required name.
2. **Homepage URL:** Enter your Jenkins URL.
3. **Webhook URL:** Jenkins URLs with the webhook path (http://64.227.177.136:30000/github-webhook/)

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-15-16.png)

Under **Repository permissions**, choose the following permissions from the drop-down menu.

1. **Administration:** Read-only
2. **Checks:** Read & write
3. **Commit statuses**: Read & write
4. **Contents:** Read-only (to read the `Jenkinsfile` and the repository content during `git fetch`).
5. **Metadata:** Read-only
6. **Pull requests:** Read-only

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-20.png)

Under **Subscribe to events**, select the following events:

1. Check run
2. Check suite
3. Pull request
4. Push
5. Repository

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-16.png)

Now, click the **Create Github app** button.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-18-22.png)

After creating the app, you will see a notification to generate the private key as shown below.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-19-15.png)

Click on the **generate the private key** option and click **Generate a private key** button as given below.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-20-19.png)

It will download a private key.

Now, you need to convert the key to a format that can be used with Jenkins using the following command. Replace**` key-in-your-downloads-folder.pem`** with your downloaded private key.

```
openssl pkcs8 -topk8 -inform PEM -outform PEM -in key-in-your-downloads-folder.pem -out converted-github-app.pem -nocrypt
```

We need to add the converted key to Jenkins credentials.

## Install Github App

Now, on the app configuration page, you will see an option called **Install app**, as given below. Click that option to enable this app for all the repositories.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-21-14.png)

Click **Install**  

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-22-16.png)

You can choose all or individual repositories you need and then click Install.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-23-15.png)

## Add Private Key to Jenkins Credentials

Now, we need to add the converted PEM key to the Jenkins credentials.

Go to **Jenkins Home --> manage jenkins --> Credentials**.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-24-14.png)

Under credentials, select the **global** option

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-26-14.png)

Then, choose the **Add Credentials** Option to add a new credential

.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-27-15.png)

Now you need to choose the Kind as GitHub App.

Also we need the **Github App ID**. You can get it from the Github App configuration as shown below.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-28-12.png)

In the key field, add the **converted-github-app.pem** private file contents we converted before, and then click the **Create** button as shown below.

![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-29-16.png)

That's pretty much it.

Now, you can use this credential in the multi-branch pipeline to enable checks during PR.