Wie greife ich auf eine jenkins API zu, die Github OAuth mit CURL verwendet?

8

Ich habe einen jenkins-Server, der das Github OAuth-Plugin verwendet und im Abschnitt "Authorized applications" von github autorisiert ist. Es funktioniert in meinem Browser, ich kann auf den jenkins-Server zugreifen, solange ich mit github authentifiziert bin / p>

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 in Ссылка generiert - & gt; Persönliche Zugangsmarken - & gt; Neues Token generieren (es gibt keine Option, um es auf eine Drittanbieteranwendung zu beschränken)

Dieses Token funktioniert gut, um auf github zuzugreifen:

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

Dieses Token gilt jedoch nicht für den jenkins-Server:

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

Erzeugt diesen Fehler:

%Vor%

'' '

Der jenkins-Server hat das GitHub API Plugin 1.58 und das Github Authentication Plugin 0.19 installiert

Ich vermisse wahrscheinlich einige Grundlagen von oauth b / c Ich habe dies eine Weile gegooglet und ich habe nichts gefunden

    
Rodrigo Estebanez 04.09.2014, 20:43
quelle

3 Antworten

12

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

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

Sobald ich das hatte, konnte ich rennen:

%Vor%

Weitere Informationen

    
mjschultz 13.11.2014 02:28
quelle
3

Sie sollten nur ein Jenkins-API-Token verwenden. Dies ist pro Benutzer konfigurierbar. Siehe $JENKINS_URL/me

Dies ermöglicht Ihrem skriptbasierten Client den Zugriff auf Jenkins unabhängig von der verwendeten Authentifizierungsstrategie.

    
recampbell 21.11.2014 16:23
quelle
0

Sie sollten "Basic" statt "token"

verwenden

Zum Beispiel:

%Vor%     
Sahar Menashe 30.03.2017 13:59
quelle

Tags und Links