Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Jenkins + GitHub Commit Status API
if [[ $BUILD_STATUS == "success" ]]
then
export STATUS="success"
else
export STATUS="failure"
fi
curl "https://api.github.com/repos/justincampbell/my_repo/statuses/$GIT_COMMIT?access_token=abc123" \
-H "Content-Type: application/json" \
-X POST \
-d "{\"state\": \"$STATUS\", \"description\": \"Jenkins\", \"target_url\": \"http://my.jenkins.box.com/job/dividata/$BUILD_NUMBER/console\"}"
curl "https://api.github.com/repos/justincampbell/my_repo/statuses/$GIT_COMMIT?access_token=abc123" \
-H "Content-Type: application/json" \
-X POST \
-d "{\"state\": \"pending\", \"description\": \"Jenkins\", \"target_url\": \"http://my.jenkins.box.com/job/dividata/$BUILD_NUMBER/console\"}"
@daspecster

This comment has been minimized.

Copy link

@daspecster daspecster commented Jan 8, 2016

You can set the context in the message payload to designate the different services that you might depend on for protection.
\"context\": \"continuous-integration/jenkins\",

@sentient-wsaglime

This comment has been minimized.

Copy link

@sentient-wsaglime sentient-wsaglime commented Aug 2, 2016

Very helpful... thank you!!!

@p00j4

This comment has been minimized.

Copy link

@p00j4 p00j4 commented Feb 23, 2017

thank you guys 👍

@HSarode-Compumatrice

This comment has been minimized.

Copy link

@HSarode-Compumatrice HSarode-Compumatrice commented Mar 9, 2017

hi thanks,
but i dont undertsand this url : "https://api.github.com/repos/justincampbell/my_repo/statuses/$GIT_COMMIT?access_token=abc123"
here you mentioned repo name,then what is statuses and $GIT_COMMIT variable value comes from? and what is targeturl in -d Section and $BUILD_NUMBER value carries what?
pls reply
thank you

@ismith78

This comment has been minimized.

Copy link

@ismith78 ismith78 commented Sep 13, 2017

$GIT_COMMIT and $BUILD_NUMBER are Jenkins environment variables. The first is the git commit reference of the version of the branch that is being built - so unique reference to the exact commit being tested. The build number is the iteration of the jenkins job that was started in order to build the code.
See https://wiki.jenkins.io/display/JENKINS/Building+a+software+project for more information.

@jholovacs

This comment has been minimized.

Copy link

@jholovacs jholovacs commented Feb 6, 2018

the after.sh is always coming back with a status of "failure" even when the build succeeds. Maybe the status isn't set by the point I'm running this? Where is this supposed to go?

@jurosh

This comment has been minimized.

Copy link

@jurosh jurosh commented Jun 20, 2018

@jholovacs I had same issue. Just tried this plugin and it works fine. https://wiki.jenkins.io/display/JENKINS/Conditional+BuildStep+Plugin

@jason-evt

This comment has been minimized.

Copy link

@jason-evt jason-evt commented Jul 29, 2019

I got this error: "message" : "Not found". Anyone has any idea?
Note: Replaced valid values for user_name, repo_name, token_value when I executed the command

Running script : curl "https://api.GitHub.com/repos/user_name/repo_name/statuses/$GIT_COMMIT?access_token=token_value"
-H "Content-Type: application/json"
-X POST
-d "{"state": "success","context": "continuous-integration/jenkins", "description": "Jenkins", "target_url": "http://jenkins-mobile-01.example.net:8080/job/github-status-test/$BUILD_NUMBER/console\"}"
[github-status-test] $ /bin/sh -xe /var/folders/5f/f_9_4ncj4550bzyrg0vmzw8h00008b/T/jenkins131952762425065348.sh

@sperry

This comment has been minimized.

Copy link

@sperry sperry commented Jun 9, 2020

Please note upcoming (November 13, 2020 at 4:00 PM UTC) deprecation of API authentication using query parameters

https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/

Future users of this info will want to make following modifications to this gist:

  • Remove "?access_token=token_value" from URL
  • Add instead "-H 'Authorization: token token_value' "
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment