public void ValidBuildBrowserUrlsAreParsedCorrectly(string browserUrl, string expectedOrgUrl, string expectedProjUrl, int expectedBuildId) { var abu = AdoBuildUrls.ParseBrowserUrl(browserUrl); Assert.AreEqual(expectedOrgUrl, abu.OrganizationUrl); Assert.AreEqual(expectedProjUrl, abu.ProjectUrl); Assert.AreEqual(expectedBuildId, abu.BuildId); }
IResultFromExtension <(int id, string url)[]> GetBuildWorkItemsRefs(AdoBuildUrls adoBuildUrls) { // ReSharper disable once StringLiteralTypo var workItemsUrl = $"{adoBuildUrls.ProjectUrl}/_apis/build/builds/{adoBuildUrls.BuildId}/workitems?api-version=4.1"; var(status, jObject) = client.Get(workItemsUrl, GetPersonalAccessToken(adoBuildUrls)); if (status.HttpStatusCode == HttpStatusCode.NotFound) { return(ResultFromExtension <(int id, string url)[]> .Success(Array.Empty <(int, string)>()));
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 void InvalidBuildBrowserUrlsThrow(string browserUrl) { Assert.Throws <ArgumentException>(() => AdoBuildUrls.ParseBrowserUrl(browserUrl)); }