/// <summary> /// Gets all <see cref="Release"/>s for the specified repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/releases/#list-releases-for-a-repository">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public Task<IReadOnlyList<Release>> GetAll(int repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); var endpoint = ApiUrls.Releases(repositoryId); return ApiConnection.GetAll<Release>(endpoint, null, AcceptHeaders.StableVersion, options); }
/// <summary> /// Gets all verified public keys for a user. /// </summary> /// <remarks> /// https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user /// </remarks> /// <param name="userName">The @ handle of the user.</param> /// <param name="options">Options to change API's behavior.</param> /// <returns>Lists the verified public keys for a user.</returns> public Task<IReadOnlyList<PublicKey>> GetAll(string userName, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(userName, "userName"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<PublicKey>(ApiUrls.Keys(userName), options); }
public async Task ReturnsCorrectCountOfIssueLabelsWithoutStartForAnIssue() { var newIssue = new NewIssue("A test issue") { Body = "A new unassigned issue" }; var newLabel = new NewLabel("test label", "FFFFFF"); var label = await _issuesLabelsClient.Create(_context.RepositoryOwner, _context.RepositoryName, newLabel); var issue = await _issuesClient.Create(_context.RepositoryOwner, _context.RepositoryName, newIssue); var issueLabelsInfo = await _issuesLabelsClient.GetAllForIssue(_context.RepositoryOwner, _context.RepositoryName, issue.Number); Assert.Empty(issueLabelsInfo); var issueUpdate = new IssueUpdate(); issueUpdate.AddLabel(label.Name); var updated = await _issuesClient.Update(_context.RepositoryOwner, _context.RepositoryName, issue.Number, issueUpdate); Assert.NotNull(updated); var options = new ApiOptions { PageCount = 1, PageSize = 1 }; issueLabelsInfo = await _issuesLabelsClient.GetAllForIssue(_context.RepositoryOwner, _context.RepositoryName, issue.Number, options); Assert.Equal(1, issueLabelsInfo.Count); Assert.Equal(newLabel.Color, issueLabelsInfo[0].Color); }
/// <summary> /// Gets all commits for a given repository /// </summary> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns></returns> public Task<IReadOnlyList<GitHubCommit>> GetAll(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); return GetAll(owner, name, new CommitRequest(), options); }
/// <summary> /// List a user’s followers /// </summary> /// <param name="login">The login name for the user</param> /// <param name="options">Options for changing the API response</param> /// <remarks> /// See the <a href="http://developer.github.com/v3/users/followers/#list-followers-of-a-user">API documentation</a> for more information. /// </remarks> /// <returns>A <see cref="IReadOnlyList{User}"/> of <see cref="User"/>s that follow the passed user.</returns> public Task<IReadOnlyList<User>> GetAll(string login, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(login, "login"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<User>(ApiUrls.Followers(login), options); }
/// <summary> /// Retrieves all of the <see cref="Notification"/>s for the current user. /// </summary> /// <param name="request">Specifies the parameters to filter notifications by</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception> public Task<IReadOnlyList<Notification>> GetAllForCurrent(NotificationsRequest request, ApiOptions options) { Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<Notification>(ApiUrls.Notifications(), request.ToParametersDictionary(), options); }
public async Task EnsuresArgumentsNotNull() { var client = new ObservableIssuesClient(Substitute.For<IGitHubClient>()); var options = new ApiOptions(); var request = new RepositoryIssueRequest(); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository(null, "name").ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository(null, "name", options).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository(null, "name", request).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository(null, "name", request, options).ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("", "name").ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("", "name", options).ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("", "name", request).ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("", "name", request, options).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", null).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", null, options).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", null, request).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", null, request, options).ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("owner", "").ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("owner", "", options).ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("owner", "", request).ToTask()); await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForRepository("owner", "", request, options).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", (ApiOptions)null).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", (RepositoryIssueRequest)null).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", null, options).ToTask()); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", request, null).ToTask()); }
public async Task ReturnsPageOfIssuesFromStartForARepository() { var first = new ApiOptions { PageSize = 5, PageCount = 1 }; var firstPage = await _issuesClient.GetAllForRepository("libgit2", "libgit2sharp", first); var second = new ApiOptions { PageSize = 5, PageCount = 1, StartPage = 2 }; var secondPage = await _issuesClient.GetAllForRepository("libgit2", "libgit2sharp", second); Assert.Equal(5, firstPage.Count); Assert.Equal(5, secondPage.Count); Assert.NotEqual(firstPage[0].Id, secondPage[0].Id); Assert.NotEqual(firstPage[1].Id, secondPage[1].Id); Assert.NotEqual(firstPage[2].Id, secondPage[2].Id); Assert.NotEqual(firstPage[3].Id, secondPage[3].Id); Assert.NotEqual(firstPage[4].Id, secondPage[4].Id); }
internal static bool ShouldContinue( Uri uri, ApiOptions options) { if (uri == null) { return false; } if (uri.Query.Contains("page=") && options.PageCount.HasValue) { var allValues = ToQueryStringDictionary(uri); string pageValue; if (allValues.TryGetValue("page", out pageValue)) { var startPage = options.StartPage ?? 1; var pageCount = options.PageCount.Value; var endPage = startPage + pageCount; if (pageValue.Equals(endPage.ToString(CultureInfo.InvariantCulture), StringComparison.OrdinalIgnoreCase)) { return false; } } } return true; }
public void EnsuresNonNullArguments() { var client = new ObservableIssuesClient(Substitute.For<IGitHubClient>()); var options = new ApiOptions(); var request = new RepositoryIssueRequest(); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(null, "name")); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", null)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(null, "name", options)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", null, options)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", (ApiOptions)null)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(null, "name", request)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", null, request)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", (RepositoryIssueRequest)null)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(null, "name", request, options)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", null, request, options)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", null, options)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository("owner", "name", request, null)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(1, (ApiOptions)null)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(1, (RepositoryIssueRequest)null)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(1, null, options)); Assert.Throws<ArgumentNullException>(() => client.GetAllForRepository(1, request, null)); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("", "name")); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("owner", "")); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("", "name", options)); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("owner", "", options)); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("", "name", request)); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("owner", "", request)); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("", "name", request, options)); Assert.Throws<ArgumentException>(() => client.GetAllForRepository("owner", "", request, options)); }
/// <summary> /// Gets all comments for the gist with the specified id. /// </summary> /// <remarks>http://developer.github.com/v3/gists/comments/#list-comments-on-a-gist</remarks> /// <param name="gistId">The id of the gist</param> /// <param name="options">Options for changing the API response</param> /// <returns>Task{IReadOnlyList{GistComment}}.</returns> public Task<IReadOnlyList<GistComment>> GetAllForGist(string gistId, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(gistId, "gistId"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<GistComment>(ApiUrls.GistComments(gistId), options); }
public async Task <string> Get(int repositoryId) { int MergedPRs = 0; double TotalDuration = 0; List <MergedPullRequest> DurationsOpened = new List <MergedPullRequest>(); PullRequestRequest request = new Octokit.PullRequestRequest { State = ItemStateFilter.All, SortDirection = SortDirection.Descending }; ApiOptions apiOptions = new Octokit.ApiOptions { PageSize = 100, PageCount = 1, StartPage = 1 }; try { var PullRequests = await this.Client.PullRequest.GetAllForRepository(repositoryId, request, apiOptions); foreach (PullRequest PullRequest in PullRequests) { if (PullRequest.MergedAt.HasValue && (PullRequest.Base.Ref == "development" || PullRequest.Base.Ref == "develop")) { var DurationOpened = PullRequest.MergedAt.Value.DateTime.Subtract(PullRequest.CreatedAt.DateTime); DurationsOpened.Add(new MergedPullRequest { id = PullRequest.Number, pr = PullRequest.HtmlUrl, sourceBranch = PullRequest.Head.Ref, author = PullRequest.User.Login, durationOpened = DurationOpened.TotalSeconds, additions = PullRequest.Additions, deletions = PullRequest.Deletions, merger = PullRequest.MergedBy != null ? PullRequest.MergedBy.Login : null }); TotalDuration += DurationOpened.TotalSeconds; } } DurationsOpened.Sort(delegate(MergedPullRequest c1, MergedPullRequest c2) { return(c1.durationOpened.CompareTo(c2.durationOpened)); }); return(JsonSerializer.Serialize(new MetricsResponse { averageDuration = TotalDuration / DurationsOpened.Count() / 3600, mergedRequests = DurationsOpened, numberMerged = DurationsOpened.Count(), nintiethPercentile = DurationsOpened.ElementAt(Convert.ToInt32(DurationsOpened.Count * .9)).durationOpened / 3600 })); } catch (Exception e) { System.Console.WriteLine(e.Message); return(JsonSerializer.Serialize("There was an error processing your request")); } }
/// <summary> /// Retrieves all of the watchers for the passed repository. /// </summary> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing API's response.</param> /// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception> /// <returns>A <see cref="IReadOnlyPagedCollection{User}"/> of <see cref="User"/>s watching the passed repository.</returns> public Task<IReadOnlyList<User>> GetAllWatchers(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<User>(ApiUrls.Watchers(owner, name), options); }
/// <summary> /// Gets all the collaborators on a repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#list">API documentation</a> for more information. /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="repo">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>A <see cref="IReadOnlyPagedCollection{User}"/> of <see cref="User"/>.</returns> public Task<IReadOnlyList<User>> GetAll(string owner, string repo, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repo, "repo"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<User>(ApiUrls.RepoCollaborators(owner, repo), null, AcceptHeaders.OrganizationPermissionsPreview, options); }
/// <summary> /// Gets all the statuses for the given deployment. Any user with pull access to a repository can /// view deployments. /// </summary> /// <remarks> /// http://developer.github.com/v3/repos/deployments/#list-deployment-statuses /// </remarks> /// <param name="owner">The owner of the repository.</param> /// <param name="name">The name of the repository.</param> /// <param name="deploymentId">The id of the deployment.</param> /// <param name="options">Options for changing the API response</param> /// <returns>All deployment statuses for the given deployment.</returns> public Task<IReadOnlyList<DeploymentStatus>> GetAll(string owner, string name, int deploymentId, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<DeploymentStatus>(ApiUrls.DeploymentStatuses(owner, name, deploymentId), options); }
/// <summary> /// Gets the list of hooks defined for a repository /// </summary> /// <remarks>See <a href="http://developer.github.com/v3/repos/hooks/#list">API documentation</a> for more information.</remarks> /// <param name="owner">The repository's owner</param> /// <param name="repositoryName">The repository's name</param> /// <param name="options">Options for changing the API response</param> /// <returns></returns> public Task<IReadOnlyList<RepositoryHook>> GetAll(string owner, string repositoryName, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<RepositoryHook>(ApiUrls.RepositoryHooks(owner, repositoryName), options); }
/// <summary> /// Gets all the various events that have occurred around an issue or pull request. /// </summary> /// <remarks> /// https://developer.github.com/v3/issues/timeline/#list-events-for-an-issue /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="repo">The name of the repository</param> /// <param name="number">The issue number</param> /// <param name="options">Options for changing the API repsonse</param> public Task<IReadOnlyList<TimelineEventInfo>> GetAllForIssue(string owner, string repo, int number, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repo, "repo"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<TimelineEventInfo>(ApiUrls.IssueTimeline(owner, repo, number), null, AcceptHeaders.IssueTimelineApiPreview, options); }
/// <summary> /// Gets all the available assignees (owner + collaborators) to which issues may be assigned. /// </summary> /// <param name="repositoryId">The Id of the repository</param> /// <param name="options">The options to change API's response.</param> public Task<IReadOnlyList<User>> GetAllForRepository(long repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); var endpoint = ApiUrls.Assignees(repositoryId); return ApiConnection.GetAll<User>(endpoint, null, AcceptHeaders.StableVersion, options); }
/// <summary> /// Gets a list of the pull request review comments in a specified repository. /// </summary> /// <remarks>http://developer.github.com/v3/pulls/comments/#list-comments-in-a-repository</remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>The list of <see cref="PullRequestReviewComment"/>s for the specified repository</returns> public Task<IReadOnlyList<PullRequestReviewComment>> GetAllForRepository(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return GetAllForRepository(owner, name, new PullRequestReviewCommentRequest(), options); }
/// <summary> /// Gets all the branches for the specified repository. /// </summary> /// <remarks> /// See the <a href="https://developer.github.com/v3/repos/branches/#list-branches">API documentation</a> for more details /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public Task<IReadOnlyList<Branch>> GetAll(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<Branch>(ApiUrls.RepoBranches(owner, name), null, AcceptHeaders.ProtectedBranchesApiPreview, options); }
/// <summary> /// Gets review comments for a specified pull request. /// </summary> /// <remarks>http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request</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="options">Options for changing the API response</param> public Task<IReadOnlyList<PullRequestReviewComment>> GetAll(string owner, string name, int number, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<PullRequestReviewComment>(ApiUrls.PullRequestReviewComments(owner, name, number), null, AcceptHeaders.ReactionsPreview, options); }
/// <summary> /// Gets all events for the issue. /// </summary> /// <remarks> /// http://developer.github.com/v3/issues/events/#list-events-for-an-issue /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="number">The issue number</param> /// <param name="options">Options for changing the API response</param> public Task<IReadOnlyList<EventInfo>> GetAllForIssue(string owner, string name, int number, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<EventInfo>(ApiUrls.IssuesEvents(owner, name, number), options); }
/// <summary> /// Returns all <see cref="Team" />s for the current org. /// </summary> /// <param name="org">Organization to list teams of.</param> /// <param name="options">Options to change API behaviour.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>A list of the orgs's teams <see cref="Team"/>s.</returns> public Task<IReadOnlyList<Team>> GetAll(string org, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(org, "org"); Ensure.ArgumentNotNull(options, "options"); var endpoint = ApiUrls.OrganizationTeams(org); return ApiConnection.GetAll<Team>(endpoint, options); }
/// <summary> /// Returns all <see cref="Team" />s for the current user. /// </summary> /// <param name="options">Options to change API behaviour.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>A list of the user's <see cref="Team"/>s.</returns> public Task<IReadOnlyList<Team>> GetAllForCurrent(ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); var endpoint = ApiUrls.UserTeams(); return ApiConnection.GetAll<Team>(endpoint, options); }
/// <summary> /// Gets all the events for a given repository /// </summary> /// <remarks> /// https://developer.github.com/v3/activity/events/#list-repository-events /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>All the <see cref="Activity"/>s for the particular repository.</returns> public Task<IReadOnlyList<Activity>> GetAllForRepository(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<Activity>(ApiUrls.Events(owner, name), options); }
/// <summary> /// Retrieves all of the stargazers for the passed repository with star creation timestamps. /// </summary> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception> /// <returns>A <see cref="IReadOnlyPagedCollection{UserStar}"/> of <see cref="User"/>s starring the passed repository with star creation timestamps.</returns> public Task<IReadOnlyList<UserStar>> GetAllStargazersWithTimestamps(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<UserStar>(ApiUrls.Stargazers(owner, name), null, AcceptHeaders.StarCreationTimestamps, options); }
/// <summary> /// Gets Commit Comments for a repository. /// </summary> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options to change the API response</param> /// <remarks>http://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository</remarks> public Task<IReadOnlyList<CommitComment>> GetAllForRepository(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<CommitComment>(ApiUrls.CommitComments(owner, name), null, AcceptHeaders.ReactionsPreview, options); }
/// <summary> /// Gets all <see cref="Release"/>s for the specified repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/releases/#list-releases-for-a-repository">API documentation</a> for more information. /// </remarks> /// <param name="owner">The repository's owner</param> /// <param name="name">The repository's name</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>The list of <see cref="Release"/>s for the specified repository.</returns> public Task<IReadOnlyList<Release>> GetAll(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); var endpoint = ApiUrls.Releases(owner, name); return ApiConnection.GetAll<Release>(endpoint, null, AcceptHeaders.StableVersion, options); }
/// <summary> /// Gets all build metadata for a given repository /// </summary> /// <param name="owner">The owner of the repository</param> /// <param name="repositoryName">The name of the repository</param> /// <param name="options">Options to change the API response</param> /// <remarks> /// See the <a href="https://developer.github.com/v3/repos/pages/#list-pages-builds">API documentation</a> for more information. /// </remarks> /// <returns></returns> public Task<IReadOnlyList<PagesBuild>> GetAll(string owner, string repositoryName, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); Ensure.ArgumentNotNull(options, "options"); var endpoint = ApiUrls.RepositoryPageBuilds(owner, repositoryName); return ApiConnection.GetAll<PagesBuild>(endpoint, options); }
/// <summary> /// Retrieves commit statuses for the specified reference. A reference can be a commit SHA, a branch name, or /// a tag name. /// </summary> /// <remarks> /// https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="reference">The reference (SHA, branch name, or tag name) to list commits for</param> /// <param name="options">Options for changing the API response</param> /// <returns></returns> public Task<IReadOnlyList<CommitStatus>> GetAll(string owner, string name, string reference, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(reference, "reference"); Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll<CommitStatus>(ApiUrls.CommitStatuses(owner, name, reference),options); }
public async Task CanGetCorrectCountOfCommentsWithoutStart() { var options = new ApiOptions { PageSize = 5, PageCount = 1 }; var commits = await _fixture.GetAllForRepository(owner, name, options); Assert.Equal(5, commits.Count); }
/// <summary> /// Retrieves commit statuses for the specified reference. A reference can be a commit SHA, a branch name, or /// a tag name. /// </summary> /// <remarks> /// https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="reference">The reference (SHA, branch name, or tag name) to list commits for</param> /// <param name="options">Options for changing the API response</param> /// <returns></returns> public Task <IReadOnlyList <CommitStatus> > GetAll(string owner, string name, string reference, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(reference, "reference"); Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <CommitStatus>(ApiUrls.CommitStatuses(owner, name, reference), options)); }
/// <summary> /// Get all open pull requests for the repository. /// </summary> /// <remarks> /// http://developer.github.com/v3/pulls/#list-pull-requests /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="options">Options for changing the API response</param> public Task <IReadOnlyList <PullRequest> > GetAllForRepository(long repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(GetAllForRepository(repositoryId, new PullRequestRequest(), options)); }
/// <summary> /// Gets all contributors for the specified repository. Does not include anonymous contributors. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-contributors">API documentation</a> for more details /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>All contributors of the repository.</returns> public Task <IReadOnlyList <RepositoryContributor> > GetAllContributors(int repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(GetAllContributors(repositoryId, false, options)); }
/// <summary> /// Gets all contributors for the specified repository. With the option to include anonymous contributors. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-contributors">API documentation</a> for more details /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="includeAnonymous">True if anonymous contributors should be included in result; Otherwise false</param> /// <param name="options">Options for changing the API response</param> /// <returns>All contributors of the repository.</returns> public Task <IReadOnlyList <RepositoryContributor> > GetAllContributors(int repositoryId, bool includeAnonymous, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); var parameters = new Dictionary <string, string>(); if (includeAnonymous) { parameters.Add("anon", "1"); } return(ApiConnection.GetAll <RepositoryContributor>(ApiUrls.RepositoryContributors(repositoryId), parameters, options)); }
/// <summary> /// Gets all API resources in the list at the specified URI. /// </summary> /// <typeparam name="T">Type of the API resource in the list.</typeparam> /// <param name="uri">URI of the API resource to get</param> /// <param name="options">Options for changing the API response</param> /// <returns><see cref="IReadOnlyList{T}"/> of the The API resources in the list.</returns> /// <exception cref="ApiException">Thrown when an API error occurs.</exception> public Task <IReadOnlyList <T> > GetAll <T>(Uri uri, ApiOptions options) { return(GetAll <T>(uri, null, null, options)); }
/// <summary> /// Retrieves all of the watchers for the passed repository. /// </summary> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing API's response.</param> /// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception> /// <returns>A <see cref="IReadOnlyPagedCollection{User}"/> of <see cref="User"/>s watching the passed repository.</returns> public Task <IReadOnlyList <User> > GetAllWatchers(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <User>(ApiUrls.Watchers(owner, name), options)); }
/// <summary> /// Query pull requests for the repository based on criteria /// </summary> /// <remarks> /// http://developer.github.com/v3/pulls/#list-pull-requests /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="request">Used to filter and sort the list of pull requests returned</param> /// <param name="options">Options for changing the API response</param> public Task <IReadOnlyList <PullRequest> > GetAllForRepository(long repositoryId, PullRequestRequest request, ApiOptions options) { Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <PullRequest>(ApiUrls.PullRequests(repositoryId), request.ToParametersDictionary(), options)); }
public Task <IReadOnlyList <T> > GetAll <T>(Uri uri, IDictionary <string, string> parameters, string accepts, ApiOptions options) { Ensure.ArgumentNotNull(uri, nameof(uri)); Ensure.ArgumentNotNull(options, nameof(options)); parameters = Pagination.Setup(parameters, options); return(_pagination.GetAllPages(async() => await GetPage <T>(uri, parameters, accepts, options).ConfigureAwait(false), uri)); }
public Task <IReadOnlyList <Reaction> > GetAll(long repositoryId, int number, ApiOptions options) { Ensure.ArgumentNotNull(options, nameof(options)); return(ApiConnection.GetAll <Reaction>(ApiUrls.IssueReactions(repositoryId, number), null, AcceptHeaders.ReactionsPreview, options)); }
public Task <IReadOnlyList <Branch> > GetAllBranches(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return(Branch.GetAll(owner, name, options)); }
public Task <IReadOnlyList <Branch> > GetAllBranches(int repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(Branch.GetAll(repositoryId, options)); }
/// <summary> /// Returns all <see cref="Organization" />s for the current user. /// </summary> /// <param name="options">Options for changing the API response</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>A list of the current user's <see cref="Organization"/>s.</returns> public Task <IReadOnlyList <Organization> > GetAllForCurrent(ApiOptions options) { Ensure.ArgumentNotNull(options, nameof(options)); return(ApiConnection.GetAll <Organization>(ApiUrls.UserOrganizations(), options)); }
/// <summary> /// Gets all contributors for the specified repository. Does not include anonymous contributors. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-contributors">API documentation</a> for more details /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>All contributors of the repository.</returns> public Task <IReadOnlyList <RepositoryContributor> > GetAllContributors(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return(GetAllContributors(owner, name, false, options)); }
/// <summary> /// Gets all tags for the specified repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-tags">API documentation</a> for more details /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>All of the repositories tags.</returns> public Task <IReadOnlyList <RepositoryTag> > GetAllTags(long repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <RepositoryTag>(ApiUrls.RepositoryTags(repositoryId), options)); }
/// <summary> /// Query pull requests for the repository based on criteria /// </summary> /// <remarks> /// http://developer.github.com/v3/pulls/#list-pull-requests /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="request">Used to filter and sort the list of pull requests returned</param> /// <param name="options">Options for changing the API response</param> public Task <IReadOnlyList <PullRequest> > GetAllForRepository(string owner, string name, PullRequestRequest request, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <PullRequest>(ApiUrls.PullRequests(owner, name), request.ToParametersDictionary(), options)); }
/// <summary> /// Gets all <see cref="Authorization"/>s for the authenticated user. /// </summary> /// <remarks> /// This method requires authentication. /// See the <a href="http://developer.github.com/v3/oauth/#list-your-authorizations">API documentation</a> for more information. /// </remarks> /// <param name="options">Options for changing the API response</param> /// <exception cref="AuthorizationException"> /// Thrown when the current user does not have permission to make the request. /// </exception> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>A list of <see cref="Authorization"/>s for the authenticated user.</returns> public Task <IReadOnlyList <Authorization> > GetAll(ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <Authorization>(ApiUrls.Authorizations(), options)); }
public Task <IReadOnlyList <RepositoryInvitation> > GetAllForRepository(long repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, nameof(options)); return(ApiConnection.GetAll <RepositoryInvitation>(ApiUrls.RepositoryInvitations(repositoryId), options)); }
/// <summary> /// Gets all API resources in the list at the specified URI. /// </summary> /// <typeparam name="T">Type of the API resource in the list.</typeparam> /// <param name="uri">URI of the API resource to get</param> /// <param name="parameters">Parameters to add to the API request</param> /// <param name="options">Options for changing the API response</param> /// <returns><see cref="IReadOnlyList{T}"/> of the The API resources in the list.</returns> /// <exception cref="ApiException">Thrown when an API error occurs.</exception> public Task <IReadOnlyList <T> > GetAll <T>(Uri uri, IDictionary <string, string> parameters, ApiOptions options) { return(GetAll <T>(uri, parameters, null, options)); }
/// <summary> /// Retrieves all of the <see cref="Notification"/>s for the current user specific to the specified repository. /// </summary> /// <param name="owner">The owner of the repository.</param> /// <param name="name">The name of the repository.</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception> public Task <IReadOnlyList <Notification> > GetAllForRepository(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(options, nameof(options)); return(ApiConnection.GetAll <Notification>(ApiUrls.Notifications(owner, name), options)); }
public Task <IReadOnlyList <Repository> > GetAllForCurrent(RepositoryRequest request, ApiOptions options) { Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <Repository>(ApiUrls.Repositories(), request.ToParametersDictionary(), options)); }
/// <summary> /// Gets all tags for the specified repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-tags">API documentation</a> for more details /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>All of the repositories tags.</returns> public Task <IReadOnlyList <RepositoryTag> > GetAllTags(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <RepositoryTag>(ApiUrls.RepositoryTags(owner, name), options)); }
/// <summary> /// Gets all email addresses for the authenticated user. /// </summary> /// <remarks> /// http://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user /// </remarks> /// <returns>The <see cref="EmailAddress"/>es for the authenticated user.</returns> public Task <IReadOnlyList <EmailAddress> > GetAll(ApiOptions options) { Ensure.ArgumentNotNull(options, nameof(options)); return(ApiConnection.GetAll <EmailAddress>(ApiUrls.Emails(), options)); }
/// <summary> /// Gets all repositories owned by the current user. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-your-repositories">API documentation</a> for more information. /// </remarks> /// <param name="options">Options for changing the API response</param> /// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> /// <returns>A <see cref="IReadOnlyPagedCollection{Repository}"/> of <see cref="Repository"/>.</returns> public Task <IReadOnlyList <Repository> > GetAllForCurrent(ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <Repository>(ApiUrls.Repositories(), options)); }
public async Task <CheckSuitesResponse> GetAllForReference(long repositoryId, string reference, CheckSuiteRequest request, ApiOptions options) { Ensure.ArgumentNotNull(request, nameof(request)); Ensure.ArgumentNotNull(options, nameof(options)); Ensure.ArgumentNotNullOrEmptyString(reference, nameof(reference)); var results = await ApiConnection.GetAll <CheckSuitesResponse>(ApiUrls.CheckSuitesForReference(repositoryId, reference), request.ToParametersDictionary(), AcceptHeaders.ChecksApiPreview, options).ConfigureAwait(false); return(new CheckSuitesResponse( results.Count > 0 ? results.Max(x => x.TotalCount) : 0, results.SelectMany(x => x.CheckSuites).ToList())); }
/// <summary> /// Gets all the collaborators on a repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#list">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The id of the repository</param> /// <param name="options">Options for changing the API response</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public Task <IReadOnlyList <User> > GetAll(long repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <User>(ApiUrls.RepoCollaborators(repositoryId), options)); }
/// <summary> /// Get all open pull requests for the repository. /// </summary> /// <remarks> /// http://developer.github.com/v3/pulls/#list-pull-requests /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="options">Options for changing the API response</param> public Task <IReadOnlyList <PullRequest> > GetAllForRepository(string owner, string name, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); return(GetAllForRepository(owner, name, new PullRequestRequest(), options)); }
/// <summary> /// Gets all contributors for the specified repository. With the option to include anonymous contributors. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-contributors">API documentation</a> for more details /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="includeAnonymous">True if anonymous contributors should be included in result; Otherwise false</param> /// <param name="options">Options for changing the API response</param> /// <returns>All contributors of the repository.</returns> public Task <IReadOnlyList <RepositoryContributor> > GetAllContributors(string owner, string name, bool includeAnonymous, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(options, "options"); var parameters = new Dictionary <string, string>(); if (includeAnonymous) { parameters.Add("anon", "1"); } return(ApiConnection.GetAll <RepositoryContributor>(ApiUrls.RepositoryContributors(owner, name), parameters, options)); }
/// <summary> /// Gets all teams for the specified repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/#list-teams">API documentation</a> for more details /// </remarks> /// <param name="repositoryId">The Id of the repository</param> /// <param name="options">Options for changing the API response</param> /// <returns>All <see cref="T:Octokit.Team"/>s associated with the repository</returns> public Task <IReadOnlyList <Team> > GetAllTeams(int repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return(ApiConnection.GetAll <Team>(ApiUrls.RepositoryTeams(repositoryId), options)); }
public Task <IReadOnlyList <Reaction> > GetAll(string owner, string name, int number, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(options, nameof(options)); return(ApiConnection.GetAll <Reaction>(ApiUrls.IssueReactions(owner, name, number), null, AcceptHeaders.ReactionsPreview, options)); }