2014-09-04 19 views
8

Ich habe einen Jenkins Server mit dem Github OAuth Plugin und autorisiert im Abschnitt "Authorized Applications" von Github, funktioniert es gut von meinem Browser, ich kann auf die zugreifen Jenkins Server, solange ich mit Github authentifiziert bin.Wie Zugriff auf eine Jenkins API, die Github OAuth mit CURL verwendet

Gibt es eine Möglichkeit, mit Hilfe von OAUTH Credentials/Token von CURL oder einem Ruby-Client auf den Jenkins Server API zuzugreifen?

Ich habe ein Token generiert in https://github.com/settings/applications -> Persönliche Zugriffstoken -> neues Token generieren (es gibt keine Möglichkeit, Umfang es an einen Dritten Anwendung)

das funktioniert gut für den Zugriff auf Github Token:

curl -H "Authorization: token cfbcff42e6a8a52a1076dd9fcxxxxxxxxxxxxxxx" https://api.github.com/user

jedoch, dass Token nicht gültig für jenkins-Server:

curl -H "Authorization: token cfbcff42e6a8a52a1076dd9fcxxxxxxxxxxxxxxx" https://jenkins-server/user/restebanez/api/json/\?pretty\=true

Es erzeugt diesen Fehler:

<html><head><meta http-equiv='refresh' content='1;url=/securityRealm/commenceLogin?from=%2Fuser%2Frestebanez%2Fapi%2Fjson%2F%3Fpretty%3Dtrue'/><script>window.location.replace('/securityRealm/commenceLogin?from=%2Fuser%2Frestebanez%2Fapi%2Fjson%2F%3Fpretty%3Dtrue');</script></head><body style='background-color:white; color:white;'> 


    Authentication required 
<!-- 
You are authenticated as: anonymous 
Groups that you are in: 

         Permission you need to have (but didn't): hudson.model.Hudson.Read 
... which is implied by: hudson.security.Permission.GenericRead 
... which is implied by: hudson.model.Hudson.Administer 
--> 

</body></html>  

`` `

der jenkins Server GitHub API Plugin 1.58 und Github Authentication Plugin 0,19

ich wahrscheinlich einige Grundlagen der oauth b fehlt bin/installiert ci habe das schon eine Weile gegoogelt und ich habe nichts gefunden

+0

Das gleiche Problem hier. Ich habe sogar versucht, 'GET (' https: // jenkins/securityRealm/finishLogin? Code = xxxx ') 'und es hat nicht funktioniert ... –

Antwort

12

Ich bin mir nicht sicher, ob du jemals auf den Grund gekommen bist, aber nachdem ich mehrere Routen ausprobiert habe, bekam ich endlich einen Skript-Build mit Github OAuth auf J enkins. Der Trick ist, dass das API-Token nicht eins für GitHub sondern eher eines von Jenkins ist.

Für meine Einrichtung habe ich einen Maschinenbenutzer auf Github, ich loggte mich normalerweise über das Web mit diesem Benutzer ein, dann klickte auf den Benutzernamen in der oberen rechten Ecke. Von dort aus klickte ich auf "Konfigurieren" im linken Menü und schließlich "Zeige API-Token" im Hauptinhaltsbereich.

Einmal hatte ich, dass ich laufen konnte:

curl --user <username>:<api_token> https://jenkins-server/user/<username>/api/json/?pretty=true 

More information.

2

Sie sollten nur einen Jenkins API token verwenden. Dies ist pro Benutzer konfigurierbar. Siehe $JENKINS_URL/me

Dadurch kann Ihr skriptgesteuerter Client unabhängig von der verwendeten Authentifizierungsstrategie auf Jenkins zugreifen.

0

Sie sollten "Basic" und nicht als "Token"

Zum Beispiel verwenden:

curl -H "Authorization: Basic cfbcff42e6a8a52a1076dd9fcxx" 
https://jenkins-server/user/restebanez/api/json 
Verwandte Themen