forked from imgbot/Imgbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PullRequest.cs
34 lines (28 loc) · 1.29 KB
/
PullRequest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Threading.Tasks;
using Common;
using Octokit;
using Octokit.Internal;
namespace OpenPrFunction
{
public class PullRequest : IPullRequest
{
public async Task<long> OpenAsync(GitHubClientParameters parameters)
{
var inMemoryCredentialStore = new InMemoryCredentialStore(new Credentials(KnownGitHubs.Username, parameters.Password));
var githubClient = new GitHubClient(new ProductHeaderValue("ImgBot"), inMemoryCredentialStore);
var repo = await githubClient.Repository.Get(parameters.RepoOwner, parameters.RepoName);
var branch = await githubClient.Repository.Branch.Get(parameters.RepoOwner, parameters.RepoName, KnownGitHubs.BranchName);
var commit = await githubClient.Repository.Commit.Get(parameters.RepoOwner, parameters.RepoName, branch.Commit.Sha);
if (branch == null)
{
return 0;
}
var pr = new NewPullRequest(KnownGitHubs.CommitMessageTitle, KnownGitHubs.BranchName, repo.DefaultBranch)
{
Body = PullRequestBody.Generate(commit.Commit.Message),
};
var result = await githubClient.PullRequest.Create(parameters.RepoOwner, parameters.RepoName, pr);
return result.Id;
}
}
}