Skip to content

Instantly share code, notes, and snippets.

@hayderimran7
Last active June 7, 2021 14:24
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save hayderimran7/dec6a655ba671fa5b3c3 to your computer and use it in GitHub Desktop.
Save hayderimran7/dec6a655ba671fa5b3c3 to your computer and use it in GitHub Desktop.
jenkins groovy get API token of a user

This is pretty simple snippet to get API Token of a user , lets say "MYUser" in jenkins.
its pretty useful when you are working with 'jenkins-job-builder' to update jobs in jenkins, and you need to get the api token which JJB needs inorder to update jobs to ..
run this code in either jenkins script console , or as i prefer, in form of init.groovy.
so when jenkins master starts, i create a user for JJb.
after that i get the token right away and pass it to my JJB jobs folder to file 'jenkins_jobs.ini' :)_ .

///////////////////////////////////////////////////////////////////////
import jenkins.security.*
//j.jenkins.setSecurityRealm(j.createDummySecurityRealm());        
User u = User.get("Myuser")  
ApiTokenProperty t = u.getProperty(ApiTokenProperty.class)  
def token = t.getApiToken()
//token.getClass()
println "token is $token "
////////////////////////////////////////////////////////////////////////
@boaz0
Copy link

boaz0 commented Sep 2, 2015

I might be wrong, but I had to import hudson.model.* too to resolve the "unable to resolve class User" error.

@rjohnst
Copy link

rjohnst commented Feb 22, 2016

@ripcurld00d depends how you run it - from the script console hudson.model.* is imported for you. if you run via the CLI you have to import everything yourself

@dadreggors
Copy link

Sadly this returns 'Token is Hidden' (same as the Show API Token in user/config) for me.

@hayderimran7
Copy link
Author

you guys are right, this is masked in jenkins version above 1.596.2 . i was testing this with jenkins version 1.596.2

@gezerk
Copy link

gezerk commented Oct 4, 2016

This works...def token = t.getApiTokenInsecure()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment