Jira Cloud 앱 관리의 GitLab 문제 해결

Tier: Free, Premium, Ultimate Offering: Self-managed

GitLab for Jira Cloud 앱을 관리하는 중 다음과 같은 문제가 발생할 수 있습니다.

사용자 설명서는 GitLab for Jira Cloud 앱을 참조하세요.

이미 로그인한 상태에서 로그인 메시지가 표시됨

이미 로그인한 상태에서 다음 메시지를 받을 수 있습니다:

계속하기 전에 로그인하거나 가입하셔야 합니다.

GitLab for Jira Cloud 앱은 설정 페이지에 그룹을 추가하기 위해 iframe을 사용합니다. 일부 브라우저는 교차 사이트 쿠키를 차단할 수 있으며, 이로 인해 이러한 문제가 발생할 수 있습니다.

이 문제를 해결하려면 OAuth 인증을 설정하세요.

매뉴얼 설치 실패

공식 마켓플레이스 디렉터리에서 GitLab for Jira Cloud 앱을 설치하고 매뉴얼으로 설치한 경우 다음 오류 중 하나가 발생할 수 있습니다:

앱 "gitlab-jira-connect-gitlab.com"은 Atlassian Marketplace에서 이전에 설치되었으므로 로컬 앱으로 설치할 수 없습니다.
앱 호스트가 설치 중에 연락하려고 시도했을 때 HTTP 응답 코드 401을 반환했습니다. 나중에 다시 시도하거나 앱 공급자에게 문의하세요.

이 문제를 해결하려면 Jira Connect Proxy URL 설정을 해제하세요.

  • GitLab 15.7에서:

    1. 레일 콘솔을 엽니다.
    2. ApplicationSetting.current_without_cache.update(jira_connect_proxy_url: nil)을 실행합니다.
  • GitLab 15.8 및 이후:

    1. 왼쪽 사이드바에서 가장 아래에서 관리 영역을 선택합니다.
    2. 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
    3. GitLab for Jira App을 확장합니다.
    4. Jira Connect Proxy URL 텍스트 상자를 지웁니다.
    5. 변경 사항 저장을 선택합니다.

문제가 지속되는 경우, 자체 호스팅하는 GitLab 인스턴스가 Atlassian에서 공개 키를 가져오기 위해 connect-install-keys.atlassian.com에 연결할 수 있는지 확인합니다. 연결성을 테스트하려면 다음 명령을 실행하세요:

# 토큰을 전달하지 않았으므로 `404 Not Found`가 예상됩니다
curl --head "https://connect-install-keys.atlassian.com"

잘못된 JWT로 데이터 동기화 실패

GitLab for Jira Cloud 앱이 자체 호스팅 GitLab 인스턴스에서 데이터를 지속적으로 동기화하지 못하는 경우 비밀 토큰이 오래되었을 수 있습니다. Atlassian은 새로운 비밀 토큰을 GitLab로 보낼 수 있습니다. GitLab이 이러한 토큰을 처리하거나 저장하지 못하면 잘못된 JWT 오류가 발생합니다.

이 문제를 해결하려면 자체 호스팅 GitLab 인스턴스에서 다음을 확인하세요:

  • 공식 Atlassian Marketplace 디렉터리에서 앱을 설치했을 경우 GitLab.com에
    • 설치했을 경우 Jira Cloud에 액세스할 수 있는지 확인합니다. 앱을 설치할 때 /-/jira_connect/events/installed 엔드포인트로 보낸 토큰 요청이 Jira에서 액세스할 수 있는지 확인합니다. 다음 명령어는401 Unauthorized를 반환해야 합니다:
    curl --include --request POST "https://gitlab.example.com/-/jira_connect/events/installed"
    
  • 자체 호스팅 GitLab 인스턴스에 SSL을 구성했는지 확인하고 인증서가 유효하고 공개적으로 신뢰받는지 확인합니다.

앱을 설치한 방법에 따라 다음을 확인할 수 있습니다:

  1. Jira에서 상단 바에서 앱 > 앱 관리를 선택합니다.
  2. GitLab for Jira (gitlab.com)을 확장합니다.
  3. 시작하기를 선택합니다.
  4. GitLab 버전 변경을 선택합니다.
  5. GitLab.com (SaaS)를 선택하고 저장을 선택합니다.
  6. GitLab 버전 변경을 다시 선택합니다.
  7. GitLab (자체 호스팅)를 선택하고 다음을 선택합니다.
  8. 모든 확인란을 선택하고 다음을 선택합니다.
  9. GitLab 인스턴스 URL을 입력하고 저장을 선택합니다.

이 방법이 작동하지 않는 경우 Premium 또는 Ultimate 고객이라면 지원 티켓을 제출하세요. GitLab 지원팀은 문제를 해결하기 위해 다음 스크립트를 실행해 볼 수 있습니다:

  # GitLab.com이 자체 호스트 인스턴스에 연결할 수 있는지 확인
  checker = Gitlab::TcpChecker.new("gitlab.example.com", 443)
  
  # 성공하면 `true`를 반환
  checker.check
  
  # 확인에 실패하면 오류를 반환
  checker.error
  # 자체 호스팅 인스턴스에 대한 설치 기록 찾기
  installation = JiraConnectInstallation.find_by_instance_url("https://gitlab.example.com")
  
  # GitLab.com에서 자체 호스팅 인스턴스로 토큰을 다시 전송하는 시도
  ProxyLifecycleEventService.execute(installation, :installed, installation.instance_url)

GitLab 인스턴스 업데이트 실패

GitLab for Jira Cloud 앱을 설정할 때, Self-managed 인스턴스 URL을 입력한 후 GitLab 인스턴스 업데이트 실패 오류가 발생할 수 있습니다.

이 문제를 해결하려면 설치 방법의 모든 전제 조건이 충족되었는지 확인하세요:

Jira Connect Proxy URL을 구성한 경우에도 전제 조건을 확인한 후에도 문제가 지속된다면, Jira Connect Proxy 문제 해결을 검토하세요.

GitLab 15.8 이전을 사용하고 있으며 이전에 jira_connect_oauth_self_managedjira_connect_oauth 피처 플래그를 모두 활성화한 경우, 알려진 문제로 인해 jira_connect_oauth_self_managed 플래그를 비활성화해야 합니다. 이러한 플래그를 확인하려면:

  1. Rails 콘솔을 엽니다.
  2. 다음 코드를 실행합니다:

    # 두 피처 플래그가 활성화되어 있는지 확인합니다.
    # 플래그가 활성화된 경우, 이 명령은 'true'를 반환합니다.
    Feature.enabled?(:jira_connect_oauth)
    Feature.enabled?(:jira_connect_oauth_self_managed)
       
    # 두 플래그가 활성화된 경우, `jira_connect_oauth_self_managed` 플래그를 비활성화합니다.
    Feature.disable(:jira_connect_oauth_self_managed)
    

Jira Connect Proxy 문제 해결

Jira Connect Proxy URLhttps://gitlab.com으로 설정했다면, 인스턴스 설정시 브라우저 개발 도구에서 네트워크 트래픽을 검사하고, 더 많은 정보를 위해 GitLab 인스턴스 업데이트 실패 오류를 복제하세요.

https://gitlab.com/-/jira_connect/installations로의 GET 요청을 찾아야 합니다.

이 요청은 200 OK를 반환해아 하지만, 문제가 있으면 422 Unprocessable Entity가 반환될 수 있습니다. 오류를 확인하기 위해 응답 본문을 확인할 수 있습니다.

문제를 해결할 수 없다면, GitLab 고객인 경우 GitLab 지원팀에 문의하여 지원을 받으세요. 지원을 위해 GitLab 지원팀에 다음 정보를 제공하세요:

  • Self-managed 인스턴스 URL.
  • GitLab.com 사용자 이름.
  • 선택 사항. https://gitlab.com/-/jira_connect/installations로의 실패한 GET 요청에 대한 X-Request-Id 응답 헤더.
  • 선택 사항. 문제를 캡처한 harcleaner로 처리한 HAR 파일.

그럼 GitLab 지원팀이 GitLab.com 서버 로그에서 문제를 조사할 수 있습니다.

GitLab 지원

note
이러한 단계는 GitLab 지원팀에서만 완료할 수 있습니다.

Kibana에서 로그를 필터링하여 json.meta.caller_id: JiraConnect::InstallationsController#updateNOT json.status: 200로 필터링해야 합니다. X-Request-Id 값이 제공된 경우, 해당 값을 사용하여 json.correlation_id를 통해 결과를 좁힐 수 있습니다.

https://gitlab.com/-/jira_connect/installations로의 각 GET 요청은 두 개의 로그 항목을 생성합니다.

첫 번째 로그의 경우:

  • json.status422 Unprocessable Entity입니다.
  • json.params.value는 Self-managed GitLab URL에 일치해야 합니다 [[FILTERED], {"instance_url"=>"https://gitlab.example.com"}].

두 번째 로그의 경우, 다음 중 하나를 가질 수 있습니다:

  • 시나리오 1:
    • json.message, json.jira_status_code, 및 json.jira_body가 있습니다.
    • json.messageProxy lifecycle event received error response와 유사합니다.
    • json.jira_status_codejson.jira_body에 Self-managed 인스턴스나 인스턴스 앞에 있는 프록시로부터 받은 응답이 포함될 수 있습니다.
    • 만약 json.jira_status_code401 Unauthorized이고 json.jira_body가 비어 있다면, Jira Connect Proxy URLhttps://gitlab.com으로 설정되지 않았을 수 있습니다.
  • 시나리오 2:
    • json.exception.classjson.exception.message가 있습니다.
    • json.exception.classjson.exception.message는 Self-managed 인스턴스에 연락하는 동안 문제가 발생했는지를 나타냅니다.

그룹 링크 실패

그룹을 링크할 때 다음 오류가 발생할 수 있습니다:

그룹 링크 실패. 다시 시도하세요.

사용자 정보가 충분한 권한으로 인해 Jira에서 가져올 수 없는 경우 403 Forbidden이 반환됩니다.

이 문제를 해결하려면, 앱을 설치 및 구성하는 Jira 사용자가 특정 요구 사항을 충족하는지 확인하세요.

Jira Connect 애플리케이션 ID 로드 실패

Self-managed 인스턴스를 가리킨 후 GitLab for Jira Cloud 앱에 로그인하면 다음과 같은 오류가 발생할 수 있습니다:

Jira Connect 애플리케이션 ID 로드 실패. 다시 시도하세요.

브라우저 콘솔을 확인하면 다음 메시지도 표시될 수 있습니다:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://gitlab.example.com/-/jira_connect/oauth_application_id. (Reason: CORS header 'Access-Control-Allow-Origin' missing). Status code: 403.

이 문제를 해결하려면:

  1. /-/jira_connect/oauth_application_id가 공개적으로 접근 가능하도록 되어 있으며 JSON 응답을 반환하는지 확인하세요:

    curl --include "https://gitlab.example.com/-/jira_connect/oauth_application_id"
    
  2. 공식 Atlassian Marketplace 디렉터리에서 앱을 설치한 경우 leading 슬래시 없이 https://gitlab.com으로 Jira Connect Proxy URL이 설정되어 있는지 확인하세요.