2013-03-08 2 views
8

J'utilise git pour gérer un projet de collaboration.Ouverture automatique d'une requête pull sur github par la ligne de commande

Et j'ai deux télécommandes. fourche est une fourche d'un projet, et origine est le projet d'origine.

Donc, est-ce que je pourrais quand j'envoie un push (git push fork maître) créer automatiquement une demande de tirage disponible en origine pour la fusionner?

Je ne peux pas m'engager directement à origine (Je sais que c'est possible). J'ai besoin de pousser d'abord fourche et si l'administrateur l'accepte, accepter origine. Je voudrais automatiser ce processus, m'évitant d'aller manuellement à github et d'ouvrir une fourchette.

Comment est-ce que je pourrais faire ceci?

Edit:

Organisation privée:

name: Org 
repository: main 
branch: master 

Fork privé:

name: OrgFork (A organization of mine with forks from **Org**) 
repository: main 
branch: testing 

J'ai essayé l'approche suivante, mais il n'a pas encore travaillé:

qu'est-ce qui ne va pas? Comment puis-je réparer cela?

Edit 2

Une autre tentative:

hub pull-request "Testing" -b OrgFork:main:testing -h OrgFork:main:master 
+0

Github a [une API pour créer des demandes d'extraction] (http://developer.github.com/v3/pulls/#create-a-pull- demande) qui peut être utile. – cjc343

+0

@ cjc343, j'avais jeté un coup d'oeil là-dessus, mais je ne pouvais pas mettre au travail. – GarouDan

+0

Une grande partie de l'utilisation de l'API est l'authentification. Vous aurez besoin d'une [application] (https://github.com/settings/applications) et de générer des jetons OAuth via une [autorisation] (http://developer.github.com/v3/oauth/#create-a -new-autorisation). Il y a une belle introduction [en utilisant curl] (https://gist.github.com/caspyin/2288960). – cjc343

Répondre

9

Enfin le succès

Le premier problème est que j'utilisais le mot de passe clé et mon mot de passe GitHub.

Avec cette structure:

Organisation privée:

name: Org 
repository: main 
branch: master 

Fork privé:

name: OrgFork (A organization of mine with forks from **Org**) 
repository: main 
branch: testing 

Et l'autre problème est que j'avais besoin d'accepter les Corrige paramètres, la commande finale ressemble celui-ci:

hub pull-request "Testing pull-request" -b Org:master -h OrgFork:testing 

Thx pour l'aide @ cjc343, @StevenPenny, @ desert69 =)

1

Peut-être comme celui-ci

curl -X POST -u garoudan -k \ 
    -d '{"title": "new feature","head": "octocat:new-feature","base": "master"}' \ 
    https://api.github.com/repos/garoudan/foo/pulls 

ref

+0

Steve, je voudrais essayer votre chemin. Mais pouvez-vous expliquer un peu plus les paramètres? Mon référentiel github est dans une organisation nommée Fork et le référentiel pourrait être repo, donc Fork: repo. Et le projet original est en Org et un dépôt nommé repo aussi, donc Org: repo. Quel est le lien https://api.github.com/repos/garoudan/foo/pulls? – GarouDan

8

Vous devriez vérifier hub, un outil de ligne de commande dans ter avec GitHub.

Its README parle de faire des demandes de traction.

+1

Malheureusement, le hub ne fonctionne pas correctement pour moi. J'ai l'erreur suivante: Erreur lors de la création de la requête de tirage: non autorisé (HTTP 401). J'ai essayé de voir pourquoi cette erreur et la meilleure chose que j'ai rencontrée est d'utiliser 'git config github.token', mais cela n'a pas fonctionné aussi. Je travaille avec un dépôt privé. – GarouDan

+0

S'il vous plaît voir ma tentative 2, quel est le problème? – GarouDan

Questions connexes