示例#1
0
        public static DevOpsBuild PollBuild([ActivityTrigger] string buildUrl, ILogger log)
        {
            log.LogInformation($"Polling the build URL: {buildUrl}...");
            DevOpsBuild build = DevOpsHelper.GetBuildStatus(buildUrl, log).Result;

            return(build);
        }
示例#2
0
        public static DevOpsBuild QueueBuild([ActivityTrigger] DevOpsBuildContext buildContext, ILogger log)
        {
            log.LogInformation($"Kicking off a build for {buildContext.BuildTaskName}...");
            string      authToken = EnvironmentHelper.GetAuthToken();
            DevOpsBuild build     = DevOpsHelper.QueueDevOpsBuild(buildContext, authToken, log).Result;

            return(build);
        }
        public async Task <string> SetItemToClosed(int workItemId)
        {
            string json = "[" + DevOpsHelper.WorkItemData("add", "/fields/System.State", "Closed") + "]";

            var content  = new StringContent(json, Encoding.UTF8, "application/json-patch+json");
            var response = await _client.PatchAsync($"{_options.Uri}/{_projectId}/_apis/wit/workitems/{workItemId}?api-version=5.1", content);

            response.EnsureSuccessStatusCode();

            return($"{_options.Uri}/{_projectId}/_workitems/edit/{workItemId}");
        }
示例#4
0
 public static DevOpsArtifact GetBuildArtifact([ActivityTrigger] DevOpsArtifactContext artifactContext, ILogger log)
 {
     log.LogInformation($"Getting the build artifact info for {artifactContext.Agent}...");
     try
     {
         DevOpsArtifact artifact = DevOpsHelper.GetBuildArtifact(artifactContext, log).Result;
         return(artifact);
     }
     catch (Exception)
     {
         // TODO: create a failed test series artifact and return it
         return(null);
     }
 }
        public static void SetDirectoryPermission(string downloadDirectory)
        {
            var os = DevOpsHelper.GetOsPlatform();

            if (os == OSPlatform.Windows)
            {
                var directoryInfo = new DirectoryInfo(downloadDirectory);
                var security      = directoryInfo.GetAccessControl();

                var domain   = Environment.UserDomainName;
                var username = Environment.UserName;
                security.AddAccessRule(new FileSystemAccessRule($@"{domain}\{username}", FileSystemRights.FullControl, AccessControlType.Allow));

                directoryInfo.SetAccessControl(security);
            }
            else if (new[] { OSPlatform.OSX, OSPlatform.Linux }.Contains(os))
            {
                ShellHelper.Bash($"sudo chown {Environment.UserName} {downloadDirectory}");
            }
        }
示例#6
0
 public WorkItemController(IOptions <AzureSettings> azureSettings, ConcurrentDictionary <string, ReleaseManagementTask> taskDetails)
 {
     this.graphHelper  = new(azureSettings);
     this.devOpsHelper = new(azureSettings);
     this.taskDetails  = taskDetails;
 }