¿Cómo accedes a una api de jenkins que usa Github OAuth usando CURL?

Tengo un server jenkins usando el plugin Github OAuth y autorizado en la sección "Aplicaciones autorizadas" de github, funciona bien desde mi browser, puedo acceder al server jenkins siempre que esté autenticado con github.

¿Hay alguna manera de acceder a la api del server jenkins usando oauth cnetworkingentials / token de CURL o un cliente de ruby?

He generado un token en https://github.com/settings/applications -> tokens de acceso personal -> Generar token nuevo (no hay opción para aplicarlo a una aplicación de terceros)

ese token funciona bien para acceder a github:

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

sin embargo, ese token no es válido para jenkins-server:

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

Genera este error:

 <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 requinetworking <!-- 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> 

“ `

el server jenkins ha instalado el complemento API GitHub 1.58 y el complemento de authentication Github 0.19

Probablemente me faltan algunos fundamentos de oauth b / ci, he buscado esto en Google por un time y no he encontrado nada

No estoy seguro de si alguna vez llegaste al background de esto, pero después de probar varias routes finalmente obtuve una compilation con guiones utilizando Github OAuth en Jenkins. El truco es que el token API no es uno para GitHub, sino uno de Jenkins.

Para mi configuration, tengo un usuario de máquina en github, me conecté normalmente a través de la web con ese usuario y luego hice clic en el nombre de usuario en la esquina superior derecha. Desde allí, hice clic en "Configurar" en el menu de la izquierda y, finalmente, en "Mostrar Token API" en el área de contenido principal.

Una vez que tuve eso, pude correr:

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

Más información.

Solo debes usar un token de la API de Jenkins . Esto es configurable por usuario. Ver $JENKINS_URL/me

Esto permitirá que su cliente con script acceda a Jenkins independientemente de la estrategia de authentication que se utilice.

Debe usar "Básico" en lugar de "token"

Por ejemplo:

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