... Liste toutes les demandes de traction ......
Tout d'abord, « pull requests » sont une méthode de workflow DVCS, et ne sont pas une caractéristique de git
. La plupart des gens par nature, et à tort, pense que c'est une partie de git
. Github.com (et autres) ont un système de workflow pull request
qui inclut des éléments tels qu'un git merge
, une discussion de sujet, des crochets d'intégration continue (CI), un référencement de question, des permissions utilisateur, etc. avec SEULEMENT le git merge
étant réellement du git
DVCS.
Cela dit, dans un dépôt git, les demandes de traction Github de style sont des fusions entre deux commit-ishs (fusion habituellement de branche sujet à une branche maîtresse, mais ce n'est pas une exigence) et ainsi la « demande de tirage » engagement ont deux parents.
Pour votre information: Pour les fusions qui ont trois (+) les parents, voir ce answer
Pour en revenir à votre question:
liste
les auteurs de toutes les demandes de traction sur la branche principale d'un repo
Cette déclaration devient les git
cmd suivantes:
git log master --merges --pretty=format:"%an %s"
devient:
En traduisant que pour libgit2sharp
:
// find the master branch in the repo
var masterBranch = repo.Branches.Single (branch => branch.FriendlyName == "master");
// Filter the branch's commits to ones that are merges
var mergeList = masterBranch.Commits.Where (p => p.Parents.Count() >= 2);
// Display the merge commits (pull requests)
foreach (Commit commit in mergeList)
{
Console.WriteLine("{0}\t{1}", commit.Author.Name, commit.MessageShort);
}
Exemple de sortie d'un repo github qui utilise tirer les demandes:
João Matos Merge pull request #1966 from angeloc/master
Zoltan Varga Merge pull request #1965 from akoeplinger/fix-flaky-test
João Matos Merge pull request #1963 from angeloc/patch-1
Rodrigo Kumpera Merge pull request #1912 from ludovic-henry/threadpool-managed-asyncresult
Zoltan Varga Merge pull request #1959 from alexrp/master
Zoltan Varga Merge pull request #1958 from rolfbjarne/aot-error-reporting
Marek Safar Merge pull request #1955 from LogosBible/servicepoint_nre
...
Mise à jour:
Based sur le commentaire, libgit2sharp
ne va pas donner à l'utilisateur ce qu'ils veulent, vous devez utiliser l'API Github.
Utiliser Api Github via la bibliothèque Octokit (. Vous pouvez directement faire le Github REST appelle ou utiliser un autre lib), vous pouvez demander à toutes les demandes de traction ouvertes assez facilement:
public static async Task getPullRequests()
{
var client = new GitHubClient (new ProductHeaderValue ("PlayScript"));
// Login Credentials if you need them for an enterprise acct/repo
// client.Credentials = GithubHelper.Credentials;
var connection = new Connection (new ProductHeaderValue ("PlayScript"));
var api = new ApiConnection (connection);
var pullrequests = new PullRequestsClient (api);
pulls = await pullrequests.GetAllForRepository ("PlayScriptRedux", "playscript");
}
....
Task.WaitAll(getPullRequests());
foreach (var pullrequest in pulls) {
Console.WriteLine (pullrequest.IssueUrl);
}
qui dresserait une liste d'une ouverture Tirez une requête pour mon repérage PlayScript sous l'organisation PlayScriptRedux, c'est-à-diresortie de la console:
https://api.github.com/repos/PlayScriptRedux/playscript/issues/89
Voir la réponse (balle un point) @ http://stackoverflow.com/questions/20185412/how-to-connect-to-a-github-repo-using-libgit2 – SushiHangover
@RobertN Merci. J'ai édité ma question pour refléter la bonne solution. Je voudrais obtenir un diplôme et énumérer toutes les demandes de traction sur la branche principale d'un repo. Je ne vois rien dans les docs, intellisense, ou par la recherche qui a un exemple de ceci. Des pointeurs? Merci encore!! – DBS