Exemple #1
0
        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}");
        }
Exemple #2
0
    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));
    }
Exemple #3
0
        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));
 }