/// <summary> /// Invites a new collaborator to the repo /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The id of the repository.</param> /// <param name="user">The name of the user to invite.</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public Task <RepositoryInvitation> Invite(long repositoryId, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(user, nameof(user)); Ensure.ArgumentNotNull(permission, nameof(permission)); return(ApiConnection.Put <RepositoryInvitation>(ApiUrls.RepoCollaborator(repositoryId, user), permission, null, AcceptHeaders.InvitationsApiPreview)); }
public async Task CanGetAllInvitations() { var github = Helper.GetAuthenticatedClient(); var repoName = Helper.MakeNameWithTimestamp("public-repo"); using (var context = await github.CreateRepositoryContext(new NewRepository(repoName))) { var fixture = github.Repository.Collaborator; var permission = new CollaboratorRequest(Permission.Push); // invite a collaborator var response = await fixture.Invite(context.RepositoryOwner, context.RepositoryName, context.RepositoryOwner, permission); Assert.Equal(context.RepositoryOwner, response.Invitee.Login); Assert.Equal(InvitationPermissionType.Write, response.Permissions); var invitations = await github.Repository.Invitation.GetAllForCurrent(); Assert.True(invitations.Count >= 1); Assert.NotNull(invitations.FirstOrDefault(i => i.CreatedAt == response.CreatedAt)); Assert.NotNull(invitations.FirstOrDefault(i => i.Id == response.Id)); Assert.NotNull(invitations.FirstOrDefault(i => i.Inviter.Login == response.Inviter.Login)); Assert.NotNull(invitations.FirstOrDefault(i => i.Invitee.Login == response.Invitee.Login)); Assert.NotNull(invitations.FirstOrDefault(i => i.Permissions == response.Permissions)); Assert.NotNull(invitations.FirstOrDefault(i => i.Repository.Id == response.Repository.Id)); } }
public async Task CanGetAllInvitations() { var github = Helper.GetAuthenticatedClient(); var repoName = Helper.MakeNameWithTimestamp("public-repo"); using (var context = await github.CreateRepositoryContext(new NewRepository(repoName))) { var fixture = github.Repository.Collaborator; var permission = new CollaboratorRequest(Permission.Push); // invite a collaborator var response = await fixture.Invite(context.RepositoryOwner, context.RepositoryName, owner, permission); Assert.Equal(owner, response.Invitee.Login); Assert.Equal(InvitationPermissionType.Write, response.Permissions); var invitations = await github.Repository.Invitation.GetAllForRepository(context.Repository.Id); Assert.Equal(1, invitations.Count); Assert.Equal(invitations[0].CreatedAt, response.CreatedAt); Assert.Equal(invitations[0].Id, response.Id); Assert.Equal(invitations[0].Invitee.Login, response.Invitee.Login); Assert.Equal(invitations[0].Inviter.Login, response.Inviter.Login); Assert.Equal(invitations[0].Permissions, response.Permissions); Assert.Equal(invitations[0].Repository.Id, response.Repository.Id); } }
/// <summary> /// Adds a new collaborator to the repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The id of the repository</param> /// <param name="user">Username of the new collaborator</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public async Task <bool> Add(long repositoryId, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(user, nameof(user)); try { var response = await Connection.Put <object>(ApiUrls.RepoCollaborator(repositoryId, user), permission).ConfigureAwait(false); return(response.HttpResponse.IsTrue()); } catch (NotFoundException) { return(false); } }
/// <summary> /// Adds a new collaborator to the repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The id of the repository</param> /// <param name="user">Username of the new collaborator</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public async Task <bool> Add(int repositoryId, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(user, "user"); try { var response = await Connection.Put <object>(ApiUrls.RepoCollaborator(repositoryId, user), permission); return(response.HttpResponse.IsTrue()); } catch { return(false); } }
/// <summary> /// Adds a new collaborator to the repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="user">Username of the new collaborator</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public async Task <bool> Add(string owner, string name, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(user, "user"); try { var response = await Connection.Put <object>(ApiUrls.RepoCollaborator(owner, name, user), permission).ConfigureAwait(false); return(response.HttpResponse.IsTrue()); } catch { return(false); } }
/// <summary> /// Invites a new collaborator to the repo /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="owner">The owner of the repository.</param> /// <param name="name">The name of the repository.</param> /// <param name="user">The name of the user to invite.</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public Task <RepositoryInvitation> Invite(string owner, string name, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(user, "user"); Ensure.ArgumentNotNull(permission, "permission"); return(ApiConnection.Put <RepositoryInvitation>(ApiUrls.RepoCollaborator(owner, name, user), permission, null, AcceptHeaders.InvitationsApiPreview)); }
/// <summary> /// Invites a new collaborator to the repo /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The id of the repository.</param> /// <param name="user">The name of the user to invite.</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public Task<RepositoryInvitation> Invite(int repositoryId, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(user, "user"); Ensure.ArgumentNotNull(permission, "permission"); return ApiConnection.Put<RepositoryInvitation>(ApiUrls.RepoCollaborator(repositoryId, user), permission, null, AcceptHeaders.InvitationsApiPreview); }
/// <summary> /// Adds a new collaborator to the repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="repositoryId">The id of the repository</param> /// <param name="user">Username of the new collaborator</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public async Task<bool> Add(int repositoryId, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(user, "user"); try { var response = await Connection.Put<object>(ApiUrls.RepoCollaborator(repositoryId, user), permission); return response.HttpResponse.IsTrue(); } catch { return false; } }
/// <summary> /// Adds a new collaborator to the repository. /// </summary> /// <remarks> /// See the <a href="http://developer.github.com/v3/repos/collaborators/#add-collaborator">API documentation</a> for more information. /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="user">Username of the new collaborator</param> /// <param name="permission">The permission to set. Only valid on organization-owned repositories.</param> /// <exception cref="ApiException">Thrown when a general API error occurs.</exception> public async Task<bool> Add(string owner, string name, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(user, "user"); try { var response = await Connection.Put<object>(ApiUrls.RepoCollaborator(owner, name, user), permission).ConfigureAwait(false); return response.HttpResponse.IsTrue(); } catch { return false; } }
public async Task CanAcceptInvitation() { var github = Helper.GetAuthenticatedClient(); var repoName = Helper.MakeNameWithTimestamp("public-repo"); using (var context = await github.CreateRepositoryContext(new NewRepository(repoName))) { var fixture = github.Repository.Collaborator; var permission = new CollaboratorRequest(Permission.Push); // invite a collaborator var response = await fixture.Invite(context.RepositoryOwner, context.RepositoryName, context.RepositoryOwner, permission); Assert.Equal(context.RepositoryOwner, response.Invitee.Login); Assert.Equal(InvitationPermissionType.Write, response.Permissions); // Accept the invitation var accepted = await github.Repository.Invitation.Accept(response.Id); Assert.True(accepted); } }
public Task <RepositoryInvitation> Invite(string owner, string name, string user, CollaboratorRequest permission) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNullOrEmptyString(user, nameof(user)); Ensure.ArgumentNotNull(permission, nameof(permission)); return(ApiConnection.Put <RepositoryInvitation>(ApiUrls.RepoCollaborator(owner, name, user), permission)); }