|
1 | 1 | using System; |
| 2 | +using System.Collections.Generic; |
2 | 3 | using System.IO; |
3 | 4 | using System.Linq; |
4 | 5 | using System.Threading.Tasks; |
@@ -43,20 +44,35 @@ static async Task AsyncMain(IConfigurationRoot config) |
43 | 44 | var query = new Query(gitHubConfig["token"]); |
44 | 45 |
|
45 | 46 | var members = await query.GetTeamMembers(gitHubConfig["organization"], gitHubConfig["team"]); |
46 | | - Console.WriteLine($"Org '{gitHubConfig["organization"]}' team '{gitHubConfig["team"]}' members"); |
| 47 | + Console.WriteLine($"Org '{gitHubConfig["organization"]}' team '{gitHubConfig["team"]}' members ({members.Count})"); |
47 | 48 | foreach (var member in members) |
48 | 49 | { |
49 | 50 | Console.WriteLine($" {member.Login}"); |
50 | 51 | } |
| 52 | + var memberLogins = members.Select(member => member.Login).ToHashSet(); |
51 | 53 |
|
52 | 54 | var pullRequests = await query.GetOpenPullRequests(gitHubConfig["organization"], gitHubConfig["repository"]); |
53 | | - Console.WriteLine($"Org '{gitHubConfig["organization"]}' repo '{gitHubConfig["repository"]}' open pull requests"); |
| 55 | + var autoMergePullRequests = new List<GraphPullRequest>(); |
| 56 | + Console.WriteLine($"Org '{gitHubConfig["organization"]}' repo '{gitHubConfig["repository"]}' open pull requests ({pullRequests.Count})"); |
54 | 57 | foreach (var pullRequest in pullRequests) |
55 | 58 | { |
| 59 | + var autoMerge = memberLogins.Contains(pullRequest.Author.Login) |
| 60 | + && !pullRequest.Labels.Nodes.Any(label => label.Name == gitHubConfig["excludeLabel"]); |
56 | 61 | Console.WriteLine($" #{pullRequest.Number} {pullRequest.Title}"); |
57 | 62 | Console.WriteLine($" By: {pullRequest.Author.Login}"); |
58 | 63 | Console.WriteLine($" Branch: {pullRequest.HeadRef.Name}"); |
59 | 64 | Console.WriteLine($" Labels: {String.Join(' ', pullRequest.Labels.Nodes.Select(label => label.Name))}"); |
| 65 | + Console.WriteLine($" Allowed to auto-merge? {autoMerge}"); |
| 66 | + if (autoMerge) |
| 67 | + { |
| 68 | + autoMergePullRequests.Add(pullRequest); |
| 69 | + } |
| 70 | + } |
| 71 | + |
| 72 | + Console.WriteLine($"Org '{gitHubConfig["organization"]}' repo '{gitHubConfig["repository"]}' auto-merge pull requests ({autoMergePullRequests.Count})"); |
| 73 | + foreach (var pullRequest in autoMergePullRequests) |
| 74 | + { |
| 75 | + Console.WriteLine($" #{pullRequest.Number} {pullRequest.Title}"); |
60 | 76 | } |
61 | 77 | } |
62 | 78 | } |
|
0 commit comments