public static AzureDevOpsPullRequest AzureDevOpsPullRequestUsingAzurePipelinesOAuthToken(
            this ICakeContext context)
        {
            context.NotNull(nameof(context));

            var settings = AzureDevOpsPullRequestSettings.UsingAzurePipelinesOAuthToken();

            return(AzureDevOpsPullRequest(context, settings));
        }
        public static void AzureDevOpsVotePullRequest(
            this ICakeContext context,
            AzureDevOpsPullRequestSettings settings,
            AzureDevOpsPullRequestVote vote)
        {
            context.NotNull(nameof(context));
            settings.NotNull(nameof(settings));

            new AzureDevOpsPullRequest(context.Log, settings, new GitClientFactory()).Vote(vote);
        }
Exemple #3
0
            public void Should_Throw_If_Settings_Are_Null()
            {
                // Given
                AzureDevOpsPullRequestSettings settings = null;

                // When
                var result = Record.Exception(() => new AzureDevOpsPullRequestSettings(settings));

                // Then
                result.IsArgumentNullException("settings");
            }
        public static void AzureDevOpsSetPullRequestStatus(
            this ICakeContext context,
            AzureDevOpsPullRequestSettings settings,
            AzureDevOpsPullRequestStatus status)
        {
            context.NotNull(nameof(context));
            settings.NotNull(nameof(settings));
            status.NotNull(nameof(status));

            new AzureDevOpsPullRequest(context.Log, settings, new GitClientFactory()).SetStatus(status);
        }
Exemple #5
0
        public static IEnumerable <AzureDevOpsCommit> AzureDevOpsGetPullRequestCommits(
            this ICakeContext context,
            AzureDevOpsPullRequestSettings settings)
        {
            context.NotNull(nameof(context));
            settings.NotNull(nameof(settings));

            return
                (new AzureDevOpsPullRequest(context.Log, settings, new GitClientFactory())
                 .GetCommits());
        }
Exemple #6
0
            public void Should_Set_PullRequestId(int pullRequestId)
            {
                // Given
                var repositoryUrl = new Uri("http://example.com");
                var credentials   = AuthenticationProvider.AuthenticationNtlm();

                // When
                var result = new AzureDevOpsPullRequestSettings(repositoryUrl, pullRequestId, credentials);

                // Then
                result.PullRequestId.ShouldBe(pullRequestId);
            }
Exemple #7
0
            public void Should_Throw_If_System_Access_Token_Env_Var_Is_Not_Set()
            {
                // Given
                Environment.SetEnvironmentVariable("BUILD_REPOSITORY_URI", "http://example.com");
                Environment.SetEnvironmentVariable("SYSTEM_PULLREQUEST_PULLREQUESTID", "42");

                // When
                var result = Record.Exception(() => AzureDevOpsPullRequestSettings.UsingAzurePipelinesOAuthToken());

                // Then
                result.IsInvalidOperationException();
            }
Exemple #8
0
            public void Should_Throw_If_Repository_Url_Env_Var_Is_Not_Set()
            {
                // Given
                Environment.SetEnvironmentVariable("SYSTEM_PULLREQUEST_PULLREQUESTID", "42");
                Environment.SetEnvironmentVariable("SYSTEM_ACCESSTOKEN", "foo");

                // When
                var result = Record.Exception(() => AzureDevOpsPullRequestSettings.UsingAzurePipelinesOAuthToken());

                // Then
                result.IsInvalidOperationException();
            }
        public static void AzureDevOpsAddCommentToPullRequest(
            this ICakeContext context,
            AzureDevOpsPullRequestSettings settings,
            string comment)
        {
            context.NotNull(nameof(context));
            settings.NotNull(nameof(settings));
            comment.NotNullOrWhiteSpace(nameof(comment));

            new AzureDevOpsPullRequest(context.Log, settings, new GitClientFactory())
            .CreateComment(comment);
        }
Exemple #10
0
            public void Should_Throw_If_Pull_Request_Id_Env_Var_Is_Not_Set()
            {
                // Given
                Environment.SetEnvironmentVariable("BUILD_REPOSITORY_URI", "http://example.com");
                Environment.SetEnvironmentVariable("SYSTEM_ACCESSTOKEN", "foo");

                // When
                var result = Record.Exception(() => AzureDevOpsPullRequestSettings.UsingAzurePipelinesOAuthToken());

                // Then
                result.IsInvalidOperationException();
            }
Exemple #11
0
            public void Should_Set_Repository_Url()
            {
                // Given
                var repositoryUrl = new Uri("http://example.com");
                var sourceBranch  = "foo";
                var credentials   = AuthenticationProvider.AuthenticationNtlm();

                // When
                var result = new AzureDevOpsPullRequestSettings(repositoryUrl, sourceBranch, credentials);

                // Then
                result.RepositoryUrl.ShouldBe(repositoryUrl);
            }
Exemple #12
0
            public void Should_Set_SourceRefName()
            {
                // Given
                var repositoryUrl = new Uri("http://example.com");
                var sourceRefName = "foo";
                var credentials   = AuthenticationProvider.AuthenticationNtlm();

                // When
                var result = new AzureDevOpsPullRequestSettings(repositoryUrl, sourceRefName, credentials);

                // Then
                result.SourceRefName.ShouldBe(sourceRefName);
            }
Exemple #13
0
            public void Should_Set_Pull_Request_Id()
            {
                // Given
                Environment.SetEnvironmentVariable("BUILD_REPOSITORY_URI", "http://example.com");
                Environment.SetEnvironmentVariable("SYSTEM_PULLREQUEST_PULLREQUESTID", "42");
                Environment.SetEnvironmentVariable("SYSTEM_ACCESSTOKEN", "foo");

                // When
                var settings = AzureDevOpsPullRequestSettings.UsingAzurePipelinesOAuthToken();

                // Then
                settings.PullRequestId.ShouldBe(42);
            }
Exemple #14
0
            public void Should_Set_Pull_Request_Id()
            {
                // Given
                var creds = new AzureDevOpsNtlmCredentials();

                Environment.SetEnvironmentVariable("BUILD_REPOSITORY_URI", "http://example.com");
                Environment.SetEnvironmentVariable("SYSTEM_PULLREQUEST_PULLREQUESTID", "42");

                // When
                var settings = new AzureDevOpsPullRequestSettings(creds);

                // Then
                settings.PullRequestId.ShouldBe(42);
            }
        public static AzureDevOpsPullRequest AzureDevOpsPullRequest(
            this ICakeContext context,
            AzureDevOpsPullRequestSettings settings)
        {
            context.NotNull(nameof(context));
            settings.NotNull(nameof(settings));

            var pullRequest = new AzureDevOpsPullRequest(context.Log, settings, new GitClientFactory());

            if (pullRequest.HasPullRequestLoaded)
            {
                return(pullRequest);
            }

            return(null);
        }
Exemple #16
0
            public void Should_Set_ThrowExceptionIfPullRequestCouldNotBeFound(bool value)
            {
                // Given
                var repositoryUrl = new Uri("http://example.com");
                var pullRequestId = 41;
                var credentials   = AuthenticationProvider.AuthenticationNtlm();
                var settings      = new AzureDevOpsPullRequestSettings(repositoryUrl, pullRequestId, credentials)
                {
                    ThrowExceptionIfPullRequestCouldNotBeFound = value,
                };

                // When
                var result = new AzureDevOpsPullRequestSettings(settings);

                // Then
                result.ThrowExceptionIfPullRequestCouldNotBeFound.ShouldBe(value);
            }
Exemple #17
0
        public static AzureDevOpsPullRequest AzureDevOpsPullRequestUsingAzurePipelinesOAuthToken(
            this ICakeContext context,
            bool throwExceptionIfPullRequestCouldNotBeFound)
        {
            context.NotNull(nameof(context));

            var settings = AzureDevOpsPullRequestSettings.UsingAzurePipelinesOAuthToken(throwExceptionIfPullRequestCouldNotBeFound);

            if (settings == null)
            {
                return(null);
            }

            settings.ThrowExceptionIfPullRequestCouldNotBeFound = throwExceptionIfPullRequestCouldNotBeFound;

            return(AzureDevOpsPullRequest(context, settings));
        }
Exemple #18
0
        /// <inheritdoc />
        public override void SetPullRequestIssuesState(IssuesContext context)
        {
            context.NotNull(nameof(context));

#pragma warning disable SA1123 // Do not place regions within elements
            #region DupFinder Exclusion
#pragma warning restore SA1123 // Do not place regions within elements
            if (string.IsNullOrWhiteSpace(context.EnvironmentVariable("SYSTEM_ACCESSTOKEN")))
            {
                context.Warning("SYSTEM_ACCESSTOKEN environment variable not set. Make sure the 'Allow Scripts to access OAuth token' option is enabled on the build definition.");
                return;
            }

            var pullRequestSettings =
                new AzureDevOpsPullRequestSettings(
                    context.State.BuildServer.DetermineRepositoryRemoteUrl(context, context.State.RepositoryRootDirectory),
                    context.State.BuildServer.DeterminePullRequestId(context).Value,
                    context.AzureDevOpsAuthenticationOAuth(context.EnvironmentVariable("SYSTEM_ACCESSTOKEN")));
            #endregion

            var pullRequestStatusName            = "Issues";
            var pullRequestDescriptionIfIssues   = $"Found {context.State.Issues.Count()} issues";
            var pullRequestDescriptionIfNoIssues = "No issues found";
            if (!string.IsNullOrWhiteSpace(context.Parameters.BuildIdentifier))
            {
                pullRequestStatusName            += $"-{context.Parameters.BuildIdentifier}";
                pullRequestDescriptionIfIssues   += $" for build {context.Parameters.BuildIdentifier}";
                pullRequestDescriptionIfNoIssues += $" for build {context.Parameters.BuildIdentifier}";
            }

            var pullRequestStatus =
                new AzureDevOpsPullRequestStatus(pullRequestStatusName)
            {
                Genre       = "Cake.Issues.Recipe",
                State       = context.State.Issues.Any() ? AzureDevOpsPullRequestStatusState.Failed : AzureDevOpsPullRequestStatusState.Succeeded,
                Description = context.State.Issues.Any() ? pullRequestDescriptionIfIssues : pullRequestDescriptionIfNoIssues
            };

            context.AzureDevOpsSetPullRequestStatus(
                pullRequestSettings,
                pullRequestStatus);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="AzureDevOpsPullRequestSystemSettings"/> class
 /// based on the instance of a <see cref="AzureDevOpsPullRequestSettings"/> class.
 /// </summary>
 /// <param name="settings">Settings containing the parameters.</param>
 public AzureDevOpsPullRequestSystemSettings(AzureDevOpsPullRequestSettings settings)
     : base(settings)
 {
 }