Esempio n. 1
0
        static bool GetIssueInfo(
            RestApi restApi,
            string taskNumber,
            TrunkBotConfiguration.IssueTracker issuesConfig,
            out string taskTittle,
            out string taskUrl)
        {
            taskTittle = null;
            taskUrl    = null;

            if (issuesConfig == null)
            {
                return(false);
            }

            mLog.InfoFormat("Obtaining task {0} title...", taskNumber);
            taskTittle = TrunkMergebotApi.Issues.GetIssueField(
                restApi, issuesConfig.Plug, issuesConfig.ProjectKey,
                taskNumber, issuesConfig.TitleField);

            mLog.InfoFormat("Obtaining task {0} URL...", taskNumber);
            taskUrl = TrunkMergebotApi.Issues.GetIssueUrl(
                restApi, issuesConfig.Plug, issuesConfig.ProjectKey,
                taskNumber);

            return(true);
        }
Esempio n. 2
0
        static bool IsTaskReady(
            RestApi restApi,
            string taskNumber,
            TrunkBotConfiguration.IssueTracker issuesConfig,
            bool bIsApprovedCodeReviewFilterEnabled,
            string branchRepository,
            string branchId,
            string codeReviewsStorageFile)
        {
            if (taskNumber == null)
            {
                return(false);
            }

            if (issuesConfig == null && !bIsApprovedCodeReviewFilterEnabled)
            {
                return(true);
            }

            if (bIsApprovedCodeReviewFilterEnabled &&
                !AreAllCodeReviewsApprovedAtLeastOne(
                    branchRepository, branchId, codeReviewsStorageFile))
            {
                return(false);
            }

            if (issuesConfig == null)
            {
                return(true);
            }

            mLog.InfoFormat("Checking if issue tracker [{0}] is available...", issuesConfig.Plug);
            if (!TrunkMergebotApi.Issues.Connected(restApi, issuesConfig.Plug))
            {
                mLog.WarnFormat("Issue tracker [{0}] is NOT available...", issuesConfig.Plug);
                return(false);
            }

            mLog.InfoFormat("Checking if task {0} is ready in the issue tracker [{1}].",
                            taskNumber, issuesConfig.Plug);

            string status = TrunkMergebotApi.Issues.GetIssueField(
                restApi, issuesConfig.Plug, issuesConfig.ProjectKey,
                taskNumber, issuesConfig.StatusField.Name);

            mLog.DebugFormat("Issue tracker status for task [{0}]: expected [{1}], was [{2}]",
                             taskNumber, issuesConfig.StatusField.ResolvedValue, status);

            return(status == issuesConfig.StatusField.ResolvedValue);
        }