@Override
  public JiraClient newJiraClient() {
    Config.PluginDescriptor config = Config.getGlobalConfig();
    String jiraUrl = config.getJiraBaseUrl();
    String username = config.getUsername();
    String password = config.getPassword();

    BasicCredentials creds = new BasicCredentials(username, password);
    JiraClient client = new JiraClient(jiraUrl, creds);

    return client;
  }
  /**
   * Parse Jira ticket numbers, ie SSD-101, out of the given ChangeLogSet.Entry.
   *
   * <p>Ticket number should be somewhere in the commit message
   *
   * @param change
   * @return
   */
  @Override
  public List<JiraCommit> getJiraIssuesFromChangeSet(final ChangeLogSet.Entry change) {
    final List<JiraCommit> result = new ArrayList<>();
    final List<String> foundTickets = new ArrayList<>();

    for (String validJiraPrefix : Config.getGlobalConfig().getJiraTickets()) {
      String msg = change.getMsg();

      while (StringUtils.isNotEmpty(msg)) {
        final int foundPos = StringUtils.indexOf(msg, validJiraPrefix);

        if (foundPos == -1) {
          break;
        }

        final String firstOccurrence = msg.substring(foundPos + validJiraPrefix.length());
        final String regex = "^([0-9]*).*$";
        final Pattern pattern = Pattern.compile(regex);
        final Matcher matcher = pattern.matcher(firstOccurrence);
        matcher.matches();

        final String ticketNumber = matcher.group(1);

        if (StringUtils.isEmpty(ticketNumber)) {
          break;
        }

        final String resultingTicket = validJiraPrefix + ticketNumber;

        if (!foundTickets.contains(resultingTicket)) {
          foundTickets.add(resultingTicket);
          result.add(new JiraCommit(resultingTicket, change));
        }

        msg = firstOccurrence;
      }
    }

    return result;
  }
 /** TODO DOCUMENT ME! */
 @Before
 public void setUp() {
   Config.getGlobalConfig().setPattern("FOO-,BAR-");
 }