public IResultFromExtension <WorkItemLink[]> Map(OctopusBuildInformation buildInformation) { if (!IsEnabled) { return(ResultFromExtension <WorkItemLink[]> .ExtensionDisabled()); } if (string.IsNullOrEmpty(store.GetJiraUsername()) || string.IsNullOrEmpty(store.GetJiraPassword()?.Value)) { return(FailureWithLog("Username/password not configured")); } var baseUrl = store.GetBaseUrl(); if (string.IsNullOrWhiteSpace(baseUrl)) { return(FailureWithLog("No BaseUrl configured")); } var releaseNotePrefix = store.GetReleaseNotePrefix(); var workItemIds = commentParser.ParseWorkItemIds(buildInformation).Distinct().ToArray(); if (workItemIds.Length == 0) { return(ResultFromExtension <WorkItemLink[]> .Success(Array.Empty <WorkItemLink>())); } return(TryConvertWorkItemLinks(workItemIds, releaseNotePrefix, baseUrl)); }
public IResultFromExtension <WorkItemLink[]> Map(OctopusBuildInformation buildInformation) { // For ADO, we should ignore anything that wasn't built by ADO because we get work items from the build if (!IsEnabled) { return(ResultFromExtension <WorkItemLink[]> .ExtensionDisabled()); } if (buildInformation?.BuildEnvironment != "Azure DevOps" || string.IsNullOrWhiteSpace(buildInformation?.BuildUrl)) { return(ResultFromExtension <WorkItemLink[]> .Success(Array.Empty <WorkItemLink>())); } return(client.GetBuildWorkItemLinks(AdoBuildUrls.ParseBrowserUrl(buildInformation.BuildUrl))); }
public IResultFromExtension <WorkItemLink[]> Map(OctopusBuildInformation buildInformation) { if (!IsEnabled) { return(ResultFromExtension <WorkItemLink[]> .ExtensionDisabled()); } var baseUrl = store.GetBaseUrl(); if (string.IsNullOrWhiteSpace(baseUrl)) { return(ResultFromExtension <WorkItemLink[]> .Failed("Base Url is not configured")); } if (buildInformation.VcsRoot == null) { return(ResultFromExtension <WorkItemLink[]> .Failed("No VCS root configured")); } const string pathComponentIndicatingAzureDevOpsVcs = @"/_git/"; if (buildInformation.VcsRoot.Contains(pathComponentIndicatingAzureDevOpsVcs)) { systemLog.WarnFormat("The VCS Root '{0}' indicates this build information is Azure DevOps related so GitHub comment references will be ignored", buildInformation.VcsRoot); return(ResultFromExtension <WorkItemLink[]> .Success(new WorkItemLink[0])); } var releaseNotePrefix = store.GetReleaseNotePrefix(); var workItemReferences = commentParser.ParseWorkItemReferences(buildInformation); return(ResultFromExtension <WorkItemLink[]> .Success(workItemReferences.Select(wir => new WorkItemLink { Id = wir.IssueNumber, Description = GetReleaseNote(buildInformation.VcsRoot, wir.IssueNumber, wir.LinkData, releaseNotePrefix), LinkUrl = NormalizeLinkData(baseUrl, buildInformation.VcsRoot, wir.LinkData), Source = GitHubConfigurationStore.CommentParser }) .Distinct() .ToArray())); }
public OctopusPackageVersionBuildInformationMappedResource Push(string packageId, string version, OctopusBuildInformation octopusMetadata, OverwriteMode overwriteMode) { if (string.IsNullOrWhiteSpace(packageId)) { throw new ArgumentException("A package Id must be supplied", nameof(packageId)); } if (string.IsNullOrWhiteSpace(version)) { throw new ArgumentException("A version must be supplied", nameof(version)); } if (!repository.HasLink("BuildInformation")) { throw new OperationNotSupportedByOctopusServerException( OctopusBuildInformation.BuildInformationRequiresOctopusVersionMessage, OctopusBuildInformation.BuildInformationRequiresOctopusVersion); } var link = repository.Link("BuildInformation"); var resource = new OctopusPackageVersionBuildInformationResource { PackageId = packageId, Version = version, OctopusBuildInformation = octopusMetadata, }; return(repository.Client.Post <OctopusPackageVersionBuildInformationResource, OctopusPackageVersionBuildInformationMappedResource>(link, resource, new { overwriteMode = overwriteMode })); }
public OctopusPackageVersionBuildInformationMappedResource Push(string packageId, string version, OctopusBuildInformation octopusMetadata) { return(Push(packageId, version, octopusMetadata, OverwriteMode.FailIfExists)); }
public Task <OctopusPackageVersionBuildInformationMappedResource> Push(string packageId, string version, OctopusBuildInformation octopusMetadata, bool replaceExisting) { return(Push(packageId, version, octopusMetadata, replaceExisting ? OverwriteMode.OverwriteExisting : OverwriteMode.FailIfExists)); }
public WorkItemReference[] ParseWorkItemReferences(OctopusBuildInformation buildInformation) { return(buildInformation.Commits.SelectMany(c => ParseReferences(c.Comment)) .ToArray()); }