using System.Collections.Generic; using System.Net; using System.Threading.Tasks; namespace Octokit { /// /// A client for GitHub's Pull Request Review Requests API. /// /// /// See the Review Requests API documentation for more information. /// public class PullRequestReviewRequestsClient : ApiClient, IPullRequestReviewRequestsClient { public PullRequestReviewRequestsClient(IApiConnection apiConnection) : base(apiConnection) { } /// /// Gets review requests for a specified pull request. /// /// https://developer.github.com/v3/pulls/review_requests/#list-review-requests /// The owner of the repository /// The name of the repository /// The pull request number [ManualRoute("GET", "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers")] public Task Get(string owner, string name, int number) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); return ApiConnection.Get(ApiUrls.PullRequestReviewRequests(owner, name, number)); } /// /// Gets review requests for a specified pull request. /// /// https://developer.github.com/v3/pulls/review_requests/#list-review-requests /// The Id of the repository /// The pull request number [ManualRoute("GET", "/repositories/{id}/pulls/{number}/requested_reviewers")] public Task Get(long repositoryId, int number) { return ApiConnection.Get(ApiUrls.PullRequestReviewRequests(repositoryId, number)); } /// /// Creates review requests on a pull request for specified users. /// /// https://developer.github.com/v3/pulls/review_requests/#create-a-review-request /// The owner of the repository /// The name of the repository /// The Pull Request number /// List of logins of user will be requested for review [ManualRoute("POST", "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers")] public Task Create(string owner, string name, int number, PullRequestReviewRequest users) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(users, nameof(users)); var endpoint = ApiUrls.PullRequestReviewRequests(owner, name, number); return ApiConnection.Post(endpoint, users); } /// /// Creates review requests on a pull request for specified users. /// /// https://developer.github.com/v3/pulls/review_requests/#create-a-review-request /// The Id of the repository /// The Pull Request number /// List of logins of user will be requested for review [ManualRoute("POST", "/repositories/{id}/pulls/{number}/requested_reviewers")] public Task Create(long repositoryId, int number, PullRequestReviewRequest users) { Ensure.ArgumentNotNull(users, nameof(users)); var endpoint = ApiUrls.PullRequestReviewRequests(repositoryId, number); return ApiConnection.Post(endpoint, users); } /// /// Deletes review request for given users on a pull request. /// /// https://developer.github.com/v3/pulls/review_requests/#delete-a-review-request /// The owner of the repository /// The name of the repository /// The pull request review comment number /// List of logins of users that will be not longer requested for review [ManualRoute("DELETE", "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers")] public Task Delete(string owner, string name, int number, PullRequestReviewRequest users) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(users, nameof(users)); return ApiConnection.Delete(ApiUrls.PullRequestReviewRequests(owner, name, number), users); } /// /// Deletes review request for given users on a pull request. /// /// https://developer.github.com/v3/pulls/review_requests/#delete-a-review-request /// The Id of the repository /// The pull request review comment number /// List of logins of users that will be not longer requested for review [ManualRoute("DELETE", "/repositories/{id}/pulls/{number}/requested_reviewers")] public Task Delete(long repositoryId, int number, PullRequestReviewRequest users) { Ensure.ArgumentNotNull(users, nameof(users)); return ApiConnection.Delete(ApiUrls.PullRequestReviewRequests(repositoryId, number), users); } } }