예제 #1
0
        public async Task <PullRequestDetailModel> SubmitPendingReview(
            LocalRepositoryModel localRepository,
            string pendingReviewId,
            string body,
            PullRequestReviewEvent e)
        {
            var address = HostAddress.Create(localRepository.CloneUrl.Host);
            var graphql = await graphqlFactory.CreateConnection(address);

            var submit = new SubmitPullRequestReviewInput
            {
                Body  = body,
                Event = ToGraphQl(e),
                PullRequestReviewId = new ID(pendingReviewId),
            };

            var mutation = new Mutation()
                           .SubmitPullRequestReview(submit)
                           .Select(x => new
            {
                x.PullRequestReview.Repository.Owner.Login,
                x.PullRequestReview.PullRequest.Number
            });

            var result = await graphql.Run(mutation);

            await usageTracker.IncrementCounter(x => x.NumberOfPRReviewPosts);

            return(await ReadPullRequestDetail(address, result.Login, localRepository.Name, result.Number));
        }
        public async Task <IPullRequestReviewModel> SubmitPendingReview(
            ILocalRepositoryModel localRepository,
            IAccount user,
            string pendingReviewId,
            string body,
            PullRequestReviewEvent e)
        {
            var address = HostAddress.Create(localRepository.CloneUrl.Host);
            var graphql = await graphqlFactory.CreateConnection(address);

            var submit = new SubmitPullRequestReviewInput
            {
                Body  = body,
                Event = ToGraphQl(e),
                PullRequestReviewId = pendingReviewId,
            };

            var mutation = new Mutation()
                           .SubmitPullRequestReview(submit)
                           .Select(x => new PullRequestReviewModel
            {
                Body     = body,
                CommitId = x.PullRequestReview.Commit.Oid,
                Id       = x.PullRequestReview.DatabaseId.Value,
                NodeId   = x.PullRequestReview.Id,
                State    = (GitHub.Models.PullRequestReviewState)x.PullRequestReview.State,
                User     = user,
            });

            var result = await graphql.Run(mutation);

            await usageTracker.IncrementCounter(x => x.NumberOfPRReviewPosts);

            return(result);
        }