web-dev-qa-db-fra.com

Bitbucket: Envoyer une demande de tirage via la ligne de commande?

Je dois envoyer beaucoup de demandes d'extraction. Je préfère utiliser la ligne de commande bash que l'interface Web de bitbucket.

Exemple d'utilisation: $ git-req username

Voici un tel script pour Github: http://Pastebin.com/F9n3nPuu

Y a-t-il un pour Bitbucket?

40
Nicolas Raoul

Bitbucket avec son RESTful API 2.0 supporte la gestion des requêtes pull sans interface. Dans CLI, vous pouvez le demander avec CURL. Cette ancienne version de la documentation présente de meilleurs détails d’interface.

Obtenir des données de demande d'extraction avec CURL

Pour obtenir des données complètes sur une demande d'extraction spécifique:

$ curl --user s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests/4

En retour, j'obtiens JSON avec toutes les informations sur ma demande d'extraction n ° 4 (indiquez votre nom d'utilisateur deux fois, votre mot de passe et votre nom de serveur en ordre).

Créer une nouvelle demande d'extraction avec RESTClient

Pour créer une nouvelle demande d'extraction, nous devons fournir beaucoup de données avec la commande POST, ci-dessous à quoi cela ressemble dans mon RESTClient:

RESTClient Firefox

Après le lancement, Bitbucket affiche immédiatement la demande de tirage:

Bitbucket screenshot

Créer une nouvelle demande d'extraction avec CURL

Vous pouvez toujours créer la même demande de tirage avec une seule doublure:

$ curl -X POST -H "Content-Type: application/json" -u s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests -d '{ "title": "Merge some branches", "description": "stackoverflow example", "source": { "branch": { "name": "choose branch to merge with" }, "repository": { "full_name": "s3m3n/reponame" } }, "destination": { "branch": { "name": "choose branch that is getting changes" } }, "reviewers": [ { "username": "some other user needed to review changes" } ], "close_source_branch": false }'

Outil de navigation REST (discontinué)

Si vous souhaitez tester toutes les méthodes possibles de l'API, passez à l'outil de navigation REST de Bitbucket. Il vous montrera toutes les requêtes possibles tout en renvoyant les données de votre référentiel réel.

40
s3m3n

Il y a 2 dépôts sur bitbucket qui pourraient aider:

l'équipe Attlassian a stash (Ruby): https://bitbucket.org/atlassian/bitbucket-server-cli

Zhemao a bitbucket-cli (python): https://bitbucket.org/zhemao/bitbucket-cli

les deux ont la fonctionnalité de demande de traction de la ligne de commande.

7
karojosh

Je n'étais pas trop satisfait des réponses dans ce fil de discussion, alors j'ai créé un paquet pour cela: 

https://www.npmjs.com/package/bitbucket-pr

Instructions:

npm i -g bitbucket-pr

... Allez dans le dossier où vous voulez créer une demande de pull ...

bitbucket-pr

2
Karamell

Essayé et testé : 

  1. Générez un jeton d'accès personnel en cliquant sur ici

  2. Enregistrez l'identifiant de jeton unique, ajoutez-le après "Le porteur dans l'en-tête". 

Par exemple: "Autorisation: porteur MDg4MzA4NTcfhtrhththyt/Thyythyh"

Échantillon JSON complet ici

Étape 1 pour entrer les détails et les en-têtes nécessaires

  1. Essayez de le lancer Étape 2

  2. Sortie sur BitBucket, vous pourrez voir la demande d'extraction Sortie finale

Syntaxe de ligne de commande: 

curl -i -X POST    -H "Authorization:Bearer MDg4MzA4NTk/TlMSS6Ea"    -H "X-Atlassian-Token:no-check"    -H "Content-Type:application/json"    -d '{"description":"1. Changes made 2. Changes made 3. Hello hanges","closed":false,"fromRef":{"id":"refs\/heads\/branch","repository":{"name":"From Repository ","project":{"key":"ProjectName"},"slug":"From Repository "}},"state":"OPEN","title":"Merge changes from branch to master","locked":false,"reviewers":[],"open":true,"toRef":{"id":"refs\/heads\/master","repository":{"name":"RepoName","project":{"key":"ProjectName"},"slug":"RepoName"}}}'  'https://bitbucket.agile.com/rest/api/1.0/projects/projectName/repos/repoName/pull-requests'