mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-04 03:16:11 +00:00
Added GetMembers to retrieve all team members.
This commit is contained in:
@@ -31,6 +31,17 @@ namespace Octokit.Reactive
|
||||
/// <returns>A list of the orgs's teams <see cref="Team"/>s.</returns>
|
||||
IObservable<Team> GetAll(string org);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all members of the given team.
|
||||
/// </summary>
|
||||
/// <param name="id">The team identifier</param>
|
||||
/// <remarks>
|
||||
/// https://developer.github.com/v3/orgs/teams/#list-team-members
|
||||
/// </remarks>
|
||||
/// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
|
||||
/// <returns>A list of the team's member <see cref="User"/>s.</returns>
|
||||
IObservable<User> GetMembers(int id);
|
||||
|
||||
/// <summary>
|
||||
/// Returns newly created <see cref="Team" /> for the current org.
|
||||
/// </summary>
|
||||
|
||||
@@ -51,6 +51,20 @@ namespace Octokit.Reactive
|
||||
return _connection.GetAndFlattenAllPages<Team>(ApiUrls.OrganizationTeams(org));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns all members of the given team.
|
||||
/// </summary>
|
||||
/// <param name="id">The team identifier</param>
|
||||
/// <remarks>
|
||||
/// https://developer.github.com/v3/orgs/teams/#list-team-members
|
||||
/// </remarks>
|
||||
/// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
|
||||
/// <returns>A list of the team's member <see cref="User"/>s.</returns>
|
||||
public IObservable<User> GetMembers(int id)
|
||||
{
|
||||
return _connection.GetAndFlattenAllPages<User>(ApiUrls.TeamMembers(id));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns newly created <see cref="Team" /> for the current org.
|
||||
/// </summary>
|
||||
|
||||
@@ -120,4 +120,29 @@ public class TeamsClientTests
|
||||
Assert.False(isMember);
|
||||
}
|
||||
}
|
||||
|
||||
public class TheGetMembersMethod
|
||||
{
|
||||
readonly Team team;
|
||||
|
||||
public TheGetMembersMethod()
|
||||
{
|
||||
var github = new GitHubClient(new ProductHeaderValue("OctokitTests")) { Credentials = Helper.Credentials };
|
||||
|
||||
team = github.Organization.Team.GetAll(Helper.Organization).Result.First();
|
||||
}
|
||||
|
||||
[OrganizationTest]
|
||||
public async Task GetsAllMembersWhenAuthenticated()
|
||||
{
|
||||
var github = new GitHubClient(new ProductHeaderValue("OctokitTests"))
|
||||
{
|
||||
Credentials = Helper.Credentials
|
||||
};
|
||||
|
||||
var members = await github.Organization.Team.GetMembers(team.Id);
|
||||
|
||||
Assert.Contains(Helper.UserName, members.Select(u => u.Login));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,20 @@ namespace Octokit.Tests.Clients
|
||||
}
|
||||
}
|
||||
|
||||
public class TheGetMembersMethod
|
||||
{
|
||||
[Fact]
|
||||
public void RequestsTheCorrectUrl()
|
||||
{
|
||||
var connection = Substitute.For<IApiConnection>();
|
||||
var client = new TeamsClient(connection);
|
||||
|
||||
client.GetMembers(1);
|
||||
|
||||
connection.Received().GetAll<User>(Arg.Is<Uri>(u => u.ToString() == "teams/1/members"));
|
||||
}
|
||||
}
|
||||
|
||||
public class TheCreateTeamMethod
|
||||
{
|
||||
[Fact]
|
||||
|
||||
@@ -33,6 +33,16 @@ namespace Octokit
|
||||
/// <returns>A list of the orgs's teams <see cref="Team"/>s.</returns>
|
||||
Task<IReadOnlyList<Team>> GetAll(string org);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all members of the given team.
|
||||
/// </summary>
|
||||
/// <param name="id">The team identifier</param>
|
||||
/// <remarks>
|
||||
/// https://developer.github.com/v3/orgs/teams/#list-team-members
|
||||
/// </remarks>
|
||||
/// <returns>A list of the team's member <see cref="User"/>s.</returns>
|
||||
Task<IReadOnlyList<User>> GetMembers(int id);
|
||||
|
||||
/// <summary>
|
||||
/// Returns newly created <see cref="Team" /> for the current org.
|
||||
/// </summary>
|
||||
|
||||
@@ -52,6 +52,20 @@ namespace Octokit
|
||||
return ApiConnection.GetAll<Team>(endpoint);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns all members of the given team.
|
||||
/// </summary>
|
||||
/// <param name="id">The team identifier</param>
|
||||
/// <remarks>
|
||||
/// https://developer.github.com/v3/orgs/teams/#list-team-members
|
||||
/// </remarks>
|
||||
/// <returns>A list of the team's member <see cref="User"/>s.</returns>
|
||||
public Task<IReadOnlyList<User>> GetMembers(int id)
|
||||
{
|
||||
var endpoint = ApiUrls.TeamMembers(id);
|
||||
|
||||
return ApiConnection.GetAll<User>(endpoint);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns newly created <see cref="Team" /> for the current org.
|
||||
|
||||
@@ -946,7 +946,7 @@ namespace Octokit
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns the <see cref="Uri"/> for team members
|
||||
/// returns the <see cref="Uri"/> for team member
|
||||
/// </summary>
|
||||
/// <param name="id">The team id</param>
|
||||
/// <param name="login">The user login.</param>
|
||||
@@ -955,6 +955,15 @@ namespace Octokit
|
||||
return "teams/{0}/members/{1}".FormatUri(id, login);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns the <see cref="Uri"/> for team members list
|
||||
/// </summary>
|
||||
/// <param name="id">The team id</param>
|
||||
public static Uri TeamMembers(int id)
|
||||
{
|
||||
return "teams/{0}/members".FormatUri(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// returns the <see cref="Uri"/> for teams
|
||||
/// use for update or deleting a team
|
||||
|
||||
Reference in New Issue
Block a user