Files
octokit.net/Octokit/Models/Request/NewTeam.cs
notauserx 891015c39f update models with updated permission enum (#2633)
* update models with updated permission enum

* add suppress message attribute

* update integration tests

* refactor: new and legacy update teams endpint

* refactor: add new delete team endpoint

* use TeamPermission on NewTeam

* use updated delete on team context dispose

* add permission enum for team response object

* refactor: remove legacy suffix from method names

* introduce permissions object on Team

* refactor: rename enum to TeamRepositoryPermission

* fix formatting

* change Permission to string to match api specs

* add TeamRepository

* add CheckTeamPermission endpoint support

* fix convention tests

* update comments on TeamRepository props

* add two new endpoints in TeamsClient

* refactor: rename ApiUrl for TeamPermission

* fix test

* implement methods for new endpoints

* add the integration tests

* fix spelling

* update comments

* refactor: rename method name

* fix: add end tag for remarks

* refactor: remove unused method param

* fix docstring comment

* the unit tests are in finally

* add docs for teams api

* split CheckTeamPermissions into two methods

* Update ObservableTeamsClientTests.cs based on review

Co-authored-by: Keegan Campbell <me@kfcampbell.com>

* add cref to legacy update and delete endpoints

* remove editorconfig file

* Update Octokit.Tests/Clients/TeamsClientTests.cs

Co-authored-by: Keegan Campbell <me@kfcampbell.com>

* remove unused line

* rename variable based on review

* rename prop to match constructor param

* add comment to explain TeamPermission enum values on update

Co-authored-by: notauserx <notauserx@users.noreply.github.com>
Co-authored-by: Keegan Campbell <me@kfcampbell.com>
2023-01-20 10:48:00 -08:00

73 lines
2.3 KiB
C#

using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Globalization;
namespace Octokit
{
/// <summary>
/// Used to create a team.
/// </summary>
/// <remarks>
/// <para>
/// In order to create a team, the authenticated user must be a member of :org.
/// </para>
/// <para>API: https://developer.github.com/v3/orgs/teams/#create-team</para>
/// </remarks>
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class NewTeam
{
/// <summary>
/// Initializes a new instance of the <see cref="NewTeam"/> class.
/// </summary>
/// <param name="name">The name.</param>
public NewTeam(string name)
{
Name = name;
Maintainers = new Collection<string>();
RepoNames = new Collection<string>();
}
/// <summary>
/// The name of the team (required).
/// </summary>
public string Name { get; private set; }
/// <summary>
/// The description of the team.
/// </summary>
public string Description { get; set; }
/// <summary>
/// The logins of organization members to add as maintainers of the team
/// </summary>
public Collection<string> Maintainers { get; protected set; }
/// <summary>
/// The full name (e.g., "organization-name/repository-name") of repositories to add the team to
/// </summary>
public Collection<string> RepoNames { get; protected set; }
/// <summary>
/// The level of privacy this team should have (default: Secret)
/// </summary>
public TeamPrivacy? Privacy { get; set; }
/// <summary>
/// The permission that new repositories will be added to the team with when none is specified (default: Pull)
/// </summary>
public TeamPermission? Permission { get; set; }
/// <summary>
/// Id of a team to set as the parent team
/// </summary>
public int? ParentTeamId { get; set; }
internal string DebuggerDisplay
{
get
{
return string.Format(CultureInfo.InvariantCulture, "Name: {0} Privacy: {1} Permission: {2}", Name, Privacy?.ToString() ?? "Default", Permission?.ToString() ?? "Default");
}
}
}
}