Bird
Raised Fist0
Jenkinsdevops~20 mins

Webhook triggers from GitHub/GitLab in Jenkins - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Webhook Trigger Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How does a webhook trigger Jenkins from GitHub?

Which statement best describes how a webhook triggers a Jenkins job from GitHub?

AGitHub sends an HTTP POST request to Jenkins when an event occurs, and Jenkins starts the job based on that request.
BJenkins polls GitHub every minute to check for new commits and triggers the job if changes are found.
CGitHub pushes the entire repository to Jenkins, which then runs the job automatically.
DJenkins sends a request to GitHub to start the webhook when a build is needed.
Attempts:
2 left
💡 Hint

Think about who initiates the communication when code changes happen.

💻 Command Output
intermediate
2:00remaining
Jenkins webhook payload validation

What will Jenkins log show if it receives a webhook payload from GitLab with an invalid secret token?

Jenkins
Started by GitLab push webhook.
Secret token does not match. Ignoring the request.
AStarted by GitLab push webhook. Secret token does not match. Ignoring the request.
BBuild started successfully for the push event.
CError: Unable to parse webhook payload.
DWebhook received but no matching job found.
Attempts:
2 left
💡 Hint

Check what happens when the secret token is wrong.

❓ Configuration
advanced
2:00remaining
Configuring Jenkins to trigger on GitHub pull request events

Which Jenkinsfile snippet correctly configures a pipeline to trigger only on GitHub pull request events using a webhook?

Jenkins
pipeline {
  agent any
  triggers {
    githubPullRequest()
  }
  stages {
    stage('Build') {
      steps {
        echo 'Building pull request...'
      }
    }
  }
}
Atriggers { pollSCM('H/5 * * * *') }
Btriggers { githubPullRequest() }
Ctriggers { cron('H/5 * * * *') }
Dtriggers { githubPush() }
Attempts:
2 left
💡 Hint

Look for the trigger that listens specifically to pull requests.

❓ Troubleshoot
advanced
2:00remaining
Why does Jenkins not trigger on GitLab webhook despite correct URL?

You configured a GitLab webhook to trigger Jenkins on push events. The webhook URL is correct, but Jenkins does not start the job. What is the most likely cause?

AThe Jenkins server is offline and cannot receive webhooks.
BThe GitLab webhook is set to trigger on merge requests instead of push events.
CThe secret token configured in Jenkins does not match the token set in GitLab webhook settings.
DThe Jenkins job is disabled.
Attempts:
2 left
💡 Hint

Check the security settings that validate webhook authenticity.

🔀 Workflow
expert
3:00remaining
Order of steps for setting up GitHub webhook to trigger Jenkins pipeline

Arrange the steps in the correct order to set up a GitHub webhook that triggers a Jenkins pipeline on push events.

A1,3,2,4
B1,2,3,4
C3,2,1,4
D3,1,2,4
Attempts:
2 left
💡 Hint

Think about setting security before adding webhook and testing.

Practice

(1/5)
1. What is the main purpose of setting up a webhook trigger in Jenkins for GitHub or GitLab?
easy
A. To manually run Jenkins jobs from the Jenkins dashboard
B. To automatically start Jenkins jobs when code is pushed or pull requests are created
C. To send email notifications after a Jenkins job completes
D. To backup Jenkins configuration files to GitHub or GitLab

Solution

  1. Step 1: Understand webhook triggers

    Webhook triggers connect GitHub/GitLab events to Jenkins jobs, starting them automatically.
  2. Step 2: Identify the main use case

    The main use is to start Jenkins jobs automatically on code pushes or pull requests.
  3. Final Answer:

    To automatically start Jenkins jobs when code is pushed or pull requests are created -> Option B
  4. Quick Check:

    Webhook triggers = automatic job start [OK]
Hint: Webhook triggers start jobs automatically on code changes [OK]
Common Mistakes:
  • Confusing webhook triggers with manual job runs
  • Thinking webhooks send emails
  • Assuming webhooks backup Jenkins files
2. Which Jenkins pipeline syntax correctly sets up a GitHub webhook trigger to start a job on push events?
easy
A. triggers { cron('H/5 * * * *') }
B. triggers { gitlabPush() }
C. triggers { githubPush() }
D. triggers { genericWebhook() }

Solution

  1. Step 1: Recall GitHub webhook trigger syntax

    Jenkins uses genericWebhook() inside triggers block for generic webhook triggers, including GitHub.
  2. Step 2: Eliminate incorrect options

    gitlabPush() is not a valid Jenkins trigger; githubPush() is not a standard Jenkins trigger; cron() is for scheduled jobs.
  3. Final Answer:

    triggers { genericWebhook() } -> Option D
  4. Quick Check:

    Generic webhook trigger = genericWebhook() [OK]
Hint: Use genericWebhook() for GitHub webhook triggers in Jenkinsfile [OK]
Common Mistakes:
  • Using gitlabPush() which does not exist
  • Confusing genericWebhook() with GitHub trigger
  • Using cron for webhook triggers
3. Given this Jenkins pipeline snippet, what will happen when a push is made to the GitHub repository?
pipeline {
  agent any
  triggers {
    genericWebhook()
  }
  stages {
    stage('Build') {
      steps {
        echo 'Building project'
      }
    }
  }
}
medium
A. The job will start automatically and print 'Building project'
B. The job will not start automatically; manual trigger needed
C. The job will fail due to syntax error in triggers
D. The job will start but skip the Build stage

Solution

  1. Step 1: Analyze the triggers block

    The genericWebhook() trigger means the job starts automatically on webhook events.
  2. Step 2: Check the pipeline stages

    The Build stage prints 'Building project' when the job runs.
  3. Final Answer:

    The job will start automatically and print 'Building project' -> Option A
  4. Quick Check:

    genericWebhook() triggers automatic build [OK]
Hint: genericWebhook() triggers auto build on webhook event [OK]
Common Mistakes:
  • Assuming manual trigger is needed
  • Thinking triggers block causes syntax error
  • Believing Build stage is skipped
4. A Jenkins job configured with GitLab webhook trigger does not start when code is pushed. Which is the most likely cause?
medium
A. The webhook URL in GitLab is incorrect or missing
B. The Jenkinsfile uses githubPush() trigger instead of GitLab webhook plugin
C. The Jenkins server is offline
D. The GitLab repository has no commits

Solution

  1. Step 1: Check webhook configuration in GitLab

    If the webhook URL is wrong or missing, GitLab cannot notify Jenkins to start the job.
  2. Step 2: Consider other causes

    Using githubPush() in Jenkinsfile won't trigger GitLab events; Jenkins offline stops all jobs; no commits means no push events.
  3. Final Answer:

    The webhook URL in GitLab is incorrect or missing -> Option A
  4. Quick Check:

    Webhook URL correct = trigger works [OK]
Hint: Verify webhook URL in GitLab settings first [OK]
Common Mistakes:
  • Ignoring webhook URL correctness
  • Confusing GitHub and GitLab triggers
  • Not checking Jenkins server status
5. You want to trigger a Jenkins job from GitLab using the Generic Webhook Trigger plugin. Which configuration step is essential to ensure the job starts only on push events?
hard
A. Use githubPush() trigger in Jenkinsfile and set GitLab webhook URL
B. Schedule the Jenkins job with cron to poll GitLab every 5 minutes
C. Configure the webhook in GitLab to send push event payloads and set the Generic Webhook Trigger to filter on push event type
D. Add a post-commit hook in GitLab that manually starts Jenkins jobs

Solution

  1. Step 1: Set GitLab webhook to send push event payloads

    GitLab must be configured to send push event data to Jenkins webhook URL.
  2. Step 2: Configure Generic Webhook Trigger plugin filters

    In Jenkins, set the plugin to trigger only when the payload indicates a push event.
  3. Final Answer:

    Configure the webhook in GitLab to send push event payloads and set the Generic Webhook Trigger to filter on push event type -> Option C
  4. Quick Check:

    Webhook + filter on push event = correct trigger [OK]
Hint: Filter webhook payload for push events in Jenkins plugin [OK]
Common Mistakes:
  • Using githubPush() for GitLab triggers
  • Relying on polling instead of webhooks
  • Manually triggering jobs instead of webhook automation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard