2017-07-25 1 views
1

Ce que je suis en train de réaliserBitbucket et Jenkins de déclenchement à distance build

Trigger une accumulation de bitbucket lorsqu'un PR est créé en utilisant l'option de déclenchement à distance dans jenkins. J'ai donc créé un job dans jenkins et configuré pour déclencher une build avec une API distante. enter image description here

En bitbucket j'ai créé un webhooks pour déclencher la construction avec l'URL suivante Structure

http://jenkins_server_ip:port/job/job-name/build?token=<t1> 

Je reçois l'erreur suivante

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 
     <title>Error 403 No valid crumb was included in the request</title> 
    </head> 
    <body> 
     <h2>HTTP ERROR 403</h2> 
     <p>Problem accessing /job/android-sample/build. Reason: 

      <pre> No valid crumb was included in the request</pre> 
     </p> 
     <hr> 
     <a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a> 
     <hr/> 
    </body> 
</html> 

creusa dans l'Internet et certains dit que nous besoin d'utiliser l'API crumbIssuer dans jenkins qui est fait avec wget. Comment puis-je l'utiliser dans bitbucket?

Répondre

0

Vous pouvez fermer le contrôle de sécurité CSRF dans: configuration système -> Configurer la sécurité globale -> Protection CSRF et décochez la case.

0

Vous devez d'abord obtenir la clé de démarrage de Jenkins et l'insérer dans l'en-tête HTTP de votre requête de construction. La miette sert à protéger contre les attaques CSRF.

Les commandes bash suivant utilise une boucle pour envoyer la demande de construction, et fonctionne bien:

CRUMB=`curl -u $USER:$PASS 'http://$SERVER:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'` 
curl -H $CRUMB -u $USER:PASS 'http://$SERVER:8080/job/$PROJECT/build?token=$UR_TOKEN'