private void patchPropertiesWithToken()

in TeamCity.GitHubIssues-server/src/main/java/jetbrains/buildServer/issueTracker/github/GitHubIssueProvider.java [159:184]


  private void patchPropertiesWithToken() {
    final String token = myProperties.get(PARAM_ACCESS_TOKEN);
    if (!StringUtil.isEmptyOrSpaces(token)) {
      if (token.startsWith(TOKEN_PREFIX_OAUTH)) {
        // oauth token
        final Matcher m = OAUTH_PATTERN.matcher(token);
        if (m.matches() && m.groupCount() == 3) {
          final SUser tokenUser = myUserModel.findUserById(Long.parseLong(m.group(1)));
          if (tokenUser != null) {
            final String providerId = m.group(2);
            final String oauthUserId = m.group(3);
            final Set<OAuthToken> tokens = myStorage.getUserTokens(providerId, tokenUser, myProject, false);
            OAuthToken result = null;
            for (OAuthToken t: tokens) {
              if (t.getOauthLogin().equals(oauthUserId)) {
                result = t;
              }
            }
            if (result != null) {
              myProperties.put(PARAM_ACCESS_TOKEN, result.getAccessToken());
            }
          }
        }
      }
    }
  }