Class JiraIssueUtils

    • Field Detail

      • RESTRICTIVE_ISSUE_KEY_BOUNDARY_REGEX

        public static final Pattern RESTRICTIVE_ISSUE_KEY_BOUNDARY_REGEX
      • LENIENT_ISSUE_KEY_BOUNDARY_REGEX

        public static final Pattern LENIENT_ISSUE_KEY_BOUNDARY_REGEX
    • Method Detail

      • getFreemarkerInstance

        public static JiraIssueUtils getFreemarkerInstance()
      • findAndSaveJiraIssueKeys

        public void findAndSaveJiraIssueKeys​(@NotNull
                                             @NotNull String string,
                                             @NotNull
                                             @NotNull ResultsSummary buildResultsSummary)
        Finds any jira issue keys in the given input string, and saves them against the given build result summary.
        Parameters:
        string -
        buildResultsSummary -
      • isValidIssueKey

        public boolean isValidIssueKey​(@NotNull
                                       @NotNull String string)
        Description copied from interface: JiraIssueHelper
        Checks whether a given string could be a valid issue key.
        Specified by:
        isValidIssueKey in interface JiraIssueHelper
      • getFixedJiraIssues

        @NotNull
        public @NotNull Set<LinkedJiraIssue> getFixedJiraIssues​(@NotNull
                                                                @NotNull Iterable<LinkedJiraIssue> allIssues)
        returns a set of all jira issues with link type 'fixed'
        Parameters:
        allIssues -
        Returns:
      • getRelatedJiraIssues

        @NotNull
        public @NotNull Set<LinkedJiraIssue> getRelatedJiraIssues​(@NotNull
                                                                  @NotNull Iterable<LinkedJiraIssue> allIssues)
        returns a set of all jira issues with link type 'related'
        Parameters:
        allIssues -
        Returns:
      • findIssueKeysInText

        @NotNull
        public @NotNull Set<String> findIssueKeysInText​(@NotNull
                                                        @NotNull String string)
        Description copied from interface: JiraIssueHelper
        Find the JIRA issue keys within the given string.
        Specified by:
        findIssueKeysInText in interface JiraIssueHelper
        Parameters:
        string - text to search
        Returns:
        JIRA issue keys in order of appearance in the string
      • findIssueKeysInText

        @NotNull
        public @NotNull Set<String> findIssueKeysInText​(@NotNull
                                                        @NotNull String string,
                                                        boolean ignoreIfInUrl)
        Description copied from interface: JiraIssueHelper
        Find the JIRA issue keys within the given string.
        Specified by:
        findIssueKeysInText in interface JiraIssueHelper
        Parameters:
        string - text to search
        ignoreIfInUrl - whether to ignore found keys if they're part of URLs
        Returns:
        JIRA issue keys in order of appearance in the string
      • findIssueKeysInTextAsList

        @NotNull
        public @NotNull List<String> findIssueKeysInTextAsList​(@NotNull
                                                               @NotNull String string,
                                                               boolean ignoreIfInUrl)
        Description copied from interface: JiraIssueHelper
        Find the JIRA issue keys within the given string. Maintains the order they were found in. Does not contain duplicates.
        Specified by:
        findIssueKeysInTextAsList in interface JiraIssueHelper
        Parameters:
        string - text to search
        ignoreIfInUrl - whether to ignore found keys if they're part of URLs
        Returns:
        A list of JIRA issue keys
      • findIssueKeysInTextAsList

        @NotNull
        public @NotNull List<String> findIssueKeysInTextAsList​(@NotNull
                                                               @NotNull String string,
                                                               boolean ignoreIfInUrl,
                                                               @NotNull
                                                               @NotNull Pattern issueKeyBoundaryRegex)
        Description copied from interface: JiraIssueHelper
        Find the JIRA issue keys within the given string. Maintains the order they were found in. Does not contain duplicates.

        This method accepts a Pattern as a parameter to test characters before and after discovered issue key, in order to adjust sensitivity of the search. As an example, for text "CR-BAM-1534", if the character "-" is disallowed by the boundary regex, the key "BAM-1534" will not be returned (as the "-" character is present in the text just before the key).

        Specified by:
        findIssueKeysInTextAsList in interface JiraIssueHelper
        Parameters:
        string - text to search
        ignoreIfInUrl - whether to ignore found keys if they're part of URLs
        issueKeyBoundaryRegex - regular expression which has to match characters before and after discovered issue key, for example "[^a-zA-Z0-9-]"
        Returns:
        A list of JIRA issue keys
      • getRenderedString

        @Nullable
        public @Nullable String getRenderedString​(@Nullable
                                                  @Nullable String inputString,
                                                  @NotNull
                                                  @NotNull String buildKey,
                                                  @NotNull
                                                  @NotNull Integer buildNumber)
        Renders valid jira issues in the input string, valid issues are determined by what is stored in the BuildResultSummary
        Parameters:
        inputString -
        buildKey -
        buildNumber -
        Returns:
      • getRenderedString

        @Nullable
        public @Nullable String getRenderedString​(@Nullable
                                                  @Nullable String inputString,
                                                  @NotNull
                                                  @NotNull ImmutableResultsSummary resultsSummary)
        Renders valid jira issues in the input string, valid issues are determined by what is stored in the BuildResultSummary
        Parameters:
        inputString -
        resultsSummary -
        Returns:
      • getRenderedString

        @Nullable
        public @Nullable String getRenderedString​(@Nullable
                                                  @Nullable String inputString,
                                                  @NotNull
                                                  @NotNull DeploymentVersion deploymentVersion)
        Renders valid jira issues in the input string, valid issues are determined by what is stored in the DeploymentVersion
        Parameters:
        inputString -
        Returns:
      • getRenderedString

        @Nullable
        public @Nullable String getRenderedString​(@Nullable
                                                  @Nullable String inputString)
        Renders any jira links within the input string
        Parameters:
        inputString -
        Returns:
      • getJiraUrl

        @Nullable
        public static @Nullable String getJiraUrl​(@NotNull
                                                  @NotNull com.atlassian.applinks.api.ApplicationLink applicationLink,
                                                  @NotNull
                                                  @NotNull String issueKey)
      • getJiraDisplayUrl

        @Nullable
        public static @Nullable String getJiraDisplayUrl​(@NotNull
                                                         @NotNull com.atlassian.applinks.api.ApplicationLink applicationLink,
                                                         @NotNull
                                                         @NotNull String issueKey)
      • getJiraIssueTitleText

        protected String getJiraIssueTitleText()
      • getFilteredJiraIssues

        @NotNull
        public @NotNull List<LinkedJiraIssue> getFilteredJiraIssues​(@Nullable
                                                                    @Nullable Collection<LinkedJiraIssue> possibleIssues,
                                                                    int numberNeeded)
        Returns a required length list of jira issues and controls logic behind which are shown * Fixed issues are given preference

        This is needed so that only the required number of JIRA Issues will be retrieved from the jira server

        Parameters:
        possibleIssues -
        numberNeeded -
        Returns:
      • isJiraServerSetup

        public boolean isJiraServerSetup()
        Description copied from interface: JiraIssueHelper
        Whether any JIRA server is linked with this instance of Bamboo.
        Specified by:
        isJiraServerSetup in interface JiraIssueHelper