3

There is a Java maven project with its source code managed by Gitbucket. Having configured a maven item in jenkins for the project.

And, now want to trigger auto build in jenkins when gitbucket receive a new commit, according to: https://plugins.jenkins.io/gitbucket

Here is what I have done:

  • Install jenkins & gitbucket.
  • Install plugins for jenkins, include git plugin & Gitbucket plugin.
  • In githucket, add a webhook of jenkins.
  • In jenkins, create a maven project, and checked the option Build when a change is pushed to GitBucket within Build Triggers section.

Current status:

  • Could build the project in jenkins by hand successfully.

  • But, when push a new commit to gitbucket, jenkins can't trigger a new build.

  • In gitbucket's webhook config page, when click test hook, would get a 403 response.

Questions:

  • When push from gitbucket to jenkins on commit, what is the mechanism to do authentication? How to config it in details. (I have googled a while, didn't get a clear working solution)
  • In gitbucket, when create webhook, there is a security token field, where should the value from, is that relevant to this task?

Thanks.

9
  • What url do you specify as a webhook url on GitBucket? Commented Apr 1, 2018 at 5:38
  • @NaokiTakezoe It's http://localhost:8282/jenkins/gitbucket-webhook/, with localhost:8282 as jenkins's home. Commented Apr 1, 2018 at 7:54
  • 1
    If your Jenkins is working at http://localhost:8282/, try to set http://localhost:8282/gitbucket-webhook/ as a webhook url. Maybe /jenkins/ is unnecessary. Commented Apr 1, 2018 at 8:29
  • @NaokiTakezoe Yes, after changing it to http://localhost:8282/gitbucket-webhook/, click test hook would return 200, thanks. Commented Apr 1, 2018 at 8:51
  • @NaokiTakezoe Though the test hook would get http 200, but when I push a new commit to gitbucket, the jenkins project didn't trigger a build automatically, while build by hand is ok. I am using Gitbucket plugin in jenkins, I already checked Build when a change is pushed to GitBucket option for the project, do you know what I am missing? Commented Apr 1, 2018 at 13:26

1 Answer 1

3

(With the help in comment, and trying out, kind of figured out the mechanism and could built automatically via webhook now.)

Mechanism - Jenkins's Gitbucket plugin

  • The plugin determine which job to trigger by comparaing following 2 values:
    1. Jenkins job's repository url under Source Code Management.
    2. Gitbucket repo's git clone url of http protocol.

Tips:

  • So can't use ssh protocol in jenkins job's repository url under Source Code Management.
    Because it won't match the url used by gitbucket's webhook, thus can't trigger build. Use http protocol instead.

  • In jenkins's job, the url under Gitbucket section.
    It specify the home page url of the repo in gitbucket (not for git clone), it's mainly for link usage.
    It's optional, if set, then there will be a link to the url in the job's page.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.