mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-08 20:45:51 +00:00
feat: Add create organization invitation via email (#2895)
* Add API request to create org invitation * Add tests for create org invitation * Add IObservable API request to create org invitation * Add tests for IObservable create org invitation
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using Octokit.Internal;
|
||||
|
||||
namespace Octokit
|
||||
{
|
||||
/// <summary>
|
||||
/// Used as part of the request to invite a user to an organization.
|
||||
/// </summary>
|
||||
[DebuggerDisplay("{DebuggerDisplay,nq}")]
|
||||
public class OrganizationInvitationRequest
|
||||
{
|
||||
public OrganizationInvitationRequest(int inviteeId)
|
||||
{
|
||||
InviteeId = inviteeId;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(string email)
|
||||
{
|
||||
Email = email;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(int inviteeId, OrganizationMembershipRole role)
|
||||
{
|
||||
InviteeId = inviteeId;
|
||||
Role = role;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(string email, OrganizationMembershipRole role)
|
||||
{
|
||||
Email = email;
|
||||
Role = role;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(int inviteeId, int[] teamIds)
|
||||
{
|
||||
InviteeId = inviteeId;
|
||||
TeamIds = teamIds;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(string email, int[] teamIds)
|
||||
{
|
||||
Email = email;
|
||||
TeamIds = teamIds;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(int inviteeId, OrganizationMembershipRole role, int[] teamIds)
|
||||
{
|
||||
InviteeId = inviteeId;
|
||||
Role = role;
|
||||
TeamIds = teamIds;
|
||||
}
|
||||
|
||||
public OrganizationInvitationRequest(string email, OrganizationMembershipRole role, int[] teamIds)
|
||||
{
|
||||
Email = email;
|
||||
Role = role;
|
||||
TeamIds = teamIds;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The user ID of the person being invited. Required if Email is not specified.
|
||||
/// </summary>
|
||||
[Parameter(Key = "invitee_id")]
|
||||
public int? InviteeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The email address of the person being invited. Required if InviteeId is not specified.
|
||||
/// </summary>
|
||||
[Parameter(Key = "email")]
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The role to give the user in the organization. The default is <see cref="OrganizationMembershipRole.DirectMember"/>.
|
||||
/// </summary>
|
||||
[Parameter(Key = "role")]
|
||||
public OrganizationMembershipRole Role { get; set; } = OrganizationMembershipRole.DirectMember;
|
||||
|
||||
/// <summary>
|
||||
/// The IDs for the team(s) to invite new members to
|
||||
/// </summary>
|
||||
[Parameter(Key = "team_ids")]
|
||||
public int[] TeamIds { get; set; }
|
||||
|
||||
internal string DebuggerDisplay => $"InviteeId: {InviteeId}; Email: {Email}; Role: {Role}; Team IDs: {(TeamIds != null ? string.Join(", ", TeamIds) : "")}";
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ namespace Octokit
|
||||
{
|
||||
}
|
||||
|
||||
public OrganizationMembershipInvitation(int id, string nodeId, string login, string email, OrganizationMembershipRole role, DateTimeOffset createdAt, User inviter)
|
||||
public OrganizationMembershipInvitation(int id, string nodeId, string login, string email, OrganizationMembershipRole role, DateTimeOffset createdAt, User inviter, int teamCount)
|
||||
{
|
||||
Id = id;
|
||||
NodeId = nodeId;
|
||||
@@ -21,6 +21,7 @@ namespace Octokit
|
||||
Role = role;
|
||||
CreatedAt = createdAt;
|
||||
Inviter = inviter;
|
||||
TeamCount = teamCount;
|
||||
}
|
||||
|
||||
public int Id { get; private set; }
|
||||
@@ -35,6 +36,7 @@ namespace Octokit
|
||||
public StringEnum<OrganizationMembershipRole> Role { get; private set; }
|
||||
public DateTimeOffset CreatedAt { get; private set; }
|
||||
public User Inviter { get; private set; }
|
||||
public int TeamCount { get; private set; }
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode",
|
||||
Justification = "Used by DebuggerDisplayAttribute")]
|
||||
|
||||
Reference in New Issue
Block a user