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);
        }
示例#2
0
        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));
 }