public async Task CanCreateApprovedReviewWithRepositoryId() { using (var context = await _github.CreateRepositoryContext("test-repo")) { await _github.CreateTheWorld(context.Repository); var pullRequest = await _github2.CreatePullRequest(context.Repository); const string body = "A review comment message"; var review = new PullRequestReviewCreate() { CommitId = pullRequest.Head.Sha, Body = body, Event = PullRequestReviewEvent.Approve, Comments = new List <DraftPullRequestReviewComment> { new DraftPullRequestReviewComment("comment 1", "README.md", 1), new DraftPullRequestReviewComment("comment 2", "README.md", 2) } }; var createdReview = await _client.Create(context.RepositoryId, pullRequest.Number, review); Assert.NotNull(createdReview); Assert.Equal(body, createdReview.Body); Assert.Equal(PullRequestReviewState.Approved, createdReview.State); Assert.Equal(pullRequest.Head.Sha, createdReview.CommitId); } }
public async Task EnsuresNonNullArguments() { var connection = Substitute.For <IApiConnection>(); var client = new PullRequestReviewsClient(connection); string body = "Comment content"; string path = "file.css"; int position = 7; var comment = new DraftPullRequestReviewComment(body, path, position); var review = new PullRequestReviewCreate() { CommitId = "commit", Body = "body", Event = PullRequestReviewEvent.Approve }; review.Comments.Add(comment); await Assert.ThrowsAsync <ArgumentNullException>(() => client.Create(null, "fakeRepoName", 1, review)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.Create("fakeOwner", null, 1, review)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.Create("fakeOwner", "fakeRepoName", 1, null)); await Assert.ThrowsAsync <ArgumentException>(() => client.Create("", "fakeRepoName", 1, review)); await Assert.ThrowsAsync <ArgumentException>(() => client.Create("fakeOwner", "", 1, review)); }
public static async Task <PullRequestReview> CreatePullRequestReview(this IGitHubClient client, Repository repository, int number, string body, PullRequestReviewEvent? @event = null, string commitId = null, List <DraftPullRequestReviewComment> comments = null) { var review = new PullRequestReviewCreate() { CommitId = commitId, Body = body, Event = @event, Comments = comments }; var createdReview = await client.PullRequest.Review.Create(repository.Owner.Login, repository.Name, number, review); return(createdReview); }
public void PostsToCorrectUrlWithRepositoryId() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservablePullRequestReviewsClient(gitHubClient); var comment = new DraftPullRequestReviewComment("Comment content", "file.css", 7); var review = new PullRequestReviewCreate() { CommitId = "commit", Body = "body", Event = PullRequestReviewEvent.Approve }; review.Comments.Add(comment); client.Create(1, 13, review); gitHubClient.Received().PullRequest.Review.Create(1, 53, review); }
public IObservable<PullRequestReview> PostPullRequestReview( string owner, string name, int number, string commitId, string body, PullRequestReviewEvent e) { Guard.ArgumentNotEmptyString(owner, nameof(owner)); Guard.ArgumentNotEmptyString(name, nameof(name)); var review = new PullRequestReviewCreate { Body = body, CommitId = commitId, Event = e, }; return gitHubClient.PullRequest.Review.Create(owner, name, number, review); }
public void PostsToCorrectUrlWithRepositoryId() { var connection = Substitute.For <IApiConnection>(); var client = new PullRequestReviewsClient(connection); var comment = new DraftPullRequestReviewComment("Comment content", "file.css", 7); var review = new PullRequestReviewCreate() { CommitId = "commit", Body = "body", Event = PullRequestReviewEvent.Approve }; review.Comments.Add(comment); client.Create(1, 13, review); connection.Received().Post <PullRequestReview>(Arg.Is <Uri>(u => u.ToString() == "repositories/1/pulls/13/reviews"), review, null, null); }
public void PullRequestReviewCreateEnsuresArgumentsValue() { string body = "body"; string path = "path"; PullRequestReviewEvent evt = PullRequestReviewEvent.Approve; int position = 1; var comment = new DraftPullRequestReviewComment(body, path, position); var review = new PullRequestReviewCreate() { Body = body, Event = evt }; review.Comments.Add(comment); Assert.Equal(body, review.Body); Assert.Equal(evt, review.Event); Assert.NotEmpty(review.Comments); }
/// <summary> /// Creates a pull request review. /// </summary> /// <remarks>https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review</remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="number">The Pull Request number</param> /// <param name="review">The review</param> public IObservable <PullRequestReview> Create(long repositoryId, int number, PullRequestReviewCreate review) { Ensure.ArgumentNotNull(review, nameof(review)); return(_client.Create(repositoryId, number, review).ToObservable()); }
/// <summary> /// Creates a pull request review. /// </summary> /// <remarks>https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review</remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="number">The Pull Request number</param> /// <param name="review">The review</param> public IObservable <PullRequestReview> Create(string owner, string name, int number, PullRequestReviewCreate review) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(review, nameof(review)); return(_client.Create(owner, name, number, review).ToObservable()); }