public async Task <string> Create() { // PullRequest opts.GitHubPRTitle = TemplateUtil.Apply(opts, opts.GitHubPRTitleTemplate); opts.GitHubPRBody = TemplateUtil.Apply(opts, opts.GitHubPRBodyTemplate); var newPr = new NewPullRequest( opts.GitHubPRTitle, opts.ManifestDeployBranch, opts.ManifestBaseBranch) { Body = opts.GitHubPRBody }; var pr = await client.PullRequest.Create( opts.ManifestRepoOwner, opts.ManifestRepoName, newPr); // Add Reviewers var reviewers = new PullRequestReviewRequest(opts.GitHubReviewers.ToList()); var pr1 = await client.PullRequest.ReviewRequest.Create( opts.ManifestRepoOwner, opts.ManifestRepoName, pr.Number, reviewers); // Add Assignees var assignees = new AssigneesUpdate(opts.GitHubAssignees.ToList()); var pr2 = await aClient.AddAssignees( opts.ManifestRepoOwner, opts.ManifestRepoName, pr.Number, assignees); return($"Created deploy request: {pr.HtmlUrl}"); }
public async Task CanAddAndRemoveAssignees() { var newAssignees = new AssigneesUpdate(new List <string>() { _context.RepositoryOwner }); var newIssue = new NewIssue("a test issue") { Body = "A new unassigned issue" }; var issuesClient = _github.Issue; var issue = await issuesClient.Create(_context.RepositoryOwner, _context.RepositoryName, newIssue); Assert.NotNull(issue); var addAssignees = await _github.Issue.Assignee.AddAssignees(_context.RepositoryOwner, _context.RepositoryName, issue.Number, newAssignees); Assert.IsType <Issue>(addAssignees); //Check if assignee was added to issue Assert.True(addAssignees.Assignees.Any(x => x.Login == _context.RepositoryOwner)); //Test to remove assignees var removeAssignees = await _github.Issue.Assignee.RemoveAssignees(_context.RepositoryOwner, _context.RepositoryName, issue.Number, newAssignees); //Check if assignee was removed Assert.False(removeAssignees.Assignees.Any(x => x.Login == _context.RepositoryOwner)); }
public void AssignUsersToPullRequest(int pullRequestNumber, string[] userNames) { _logger.LogDebug("Adding assignee to pull request {pullRequestNumber}, user names: {userNames}", pullRequestNumber, userNames); var assigneesUpdateModel = new AssigneesUpdate(userNames); CreateGitHubClient().Issue.Assignee.AddAssignees(_repositoryOwner, _repositoryName, pullRequestNumber, assigneesUpdateModel); }
public void RequestsCorrectUrl() { var newAssignees = new AssigneesUpdate(new List <string>() { "assignee1", "assignee2" }); var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableAssigneesClient(gitHubClient); client.RemoveAssignees("fake", "repo", 2, newAssignees); gitHubClient.Issue.Assignee.Received().RemoveAssignees("fake", "repo", 2, newAssignees); }
public async Task PostsToCorrectUrl() { var removeAssignees = new AssigneesUpdate(new List <string>() { "assignee1", "assignee2" }); var connection = Substitute.For <IApiConnection>(); var client = new AssigneesClient(connection); await client.RemoveAssignees("fake", "repo", 2, removeAssignees); connection.Received().Delete <Issue>(Arg.Is <Uri>(u => u.ToString() == "repos/fake/repo/issues/2/assignees"), Arg.Any <object>()); }
public void EnsuresNonNullArguments() { var githubClient = Substitute.For <IGitHubClient>(); var client = new ObservableAssigneesClient(githubClient); var newAssignees = new AssigneesUpdate(new List <string>() { "assignee1", "assignee2" }); Assert.Throws <ArgumentNullException>(() => client.RemoveAssignees(null, "name", 2, newAssignees)); Assert.Throws <ArgumentNullException>(() => client.RemoveAssignees("owner", null, 2, newAssignees)); Assert.Throws <ArgumentNullException>(() => client.RemoveAssignees("owner", "name", 2, null)); Assert.Throws <ArgumentException>(() => client.RemoveAssignees("owner", "", 2, newAssignees)); Assert.Throws <ArgumentException>(() => client.RemoveAssignees("", "name", 2, newAssignees)); }
public async Task EnsuresNonNullArguments() { var client = new AssigneesClient(Substitute.For <IApiConnection>()); var newAssignees = new AssigneesUpdate(new List <string>() { "assignee1", "assignee2" }); await Assert.ThrowsAsync <ArgumentException>(() => client.RemoveAssignees("", "name", 2, newAssignees)); await Assert.ThrowsAsync <ArgumentException>(() => client.RemoveAssignees("owner", "", 2, newAssignees)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.RemoveAssignees("owner", "name", 2, null)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.RemoveAssignees(null, "name", 2, newAssignees)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.RemoveAssignees("owner", null, 2, newAssignees)); }
/// <summary> /// Add assignees to a specified Issue. /// </summary> /// <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="assignees">List of names of assignees to add</param> public IObservable <Issue> AddAssignees(string owner, string name, int number, AssigneesUpdate assignees) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(assignees, "assignees"); return(_client.AddAssignees(owner, name, number, assignees).ToObservable()); }
/// <summary> /// Remove assignees from a specified Issue. /// </summary> /// <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="assignees">List of assignees to remove </param> /// <returns></returns> public IObservable <Issue> RemoveAssignees(string owner, string name, int number, AssigneesUpdate assignees) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(assignees, nameof(assignees)); return(_client.RemoveAssignees(owner, name, number, assignees).ToObservable()); }
public async Task <Issue> RemoveAssigneesFromIssue(string owner, string name, int number, AssigneesUpdate assigneesUpdate, GitHubClient authorizedGitHubClient) { if (_issuesClient == null) { _issuesClient = new IssuesClient(new ApiConnection(authorizedGitHubClient.Connection)); } return(await _issuesClient.Assignee.RemoveAssignees(owner, name, number, assigneesUpdate)); }