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 앱을 확장합니다.
    4. Jira Connect Proxy URL 텍스트 상자를 지웁니다.
    5. 변경 사항 저장을 선택합니다.

문제가 지속되는 경우, 자체 관리형 GitLab 인스턴스가 Atlassian으로부터 공개 키를 가져오기 위해 connect-install-keys.atlassian.com에 연결할 수 있는지 확인하십시오. 연결을 테스트하려면 다음 명령을 실행하십시오.

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

Invalid JWT로 데이터 동기화 실패

GitLab for Jira Cloud 앱이 자체 관리형 GitLab 인스턴스에서 지속적으로 데이터 동기화에 실패한다면, 비밀 토큰이 오래된 것일 수 있습니다. Atlassian은 새로운 비밀 토큰을 GitLab에 보낼 수 있습니다. GitLab이 이러한 토큰을 처리하거나 저장하지 못하면 Invalid JWT 오류가 발생합니다.

이 문제를 해결하려면 자체 관리형 GitLab 인스턴스에서 다음을 확인하십시오:

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

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

이 방법이 작동하지 않는 경우, 프리미엄 또는 얼티메이트 고객이라면 지원 티켓을 제출하십시오. 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 앱을 설정하는 경우, 자체 관리형 인스턴스 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/installationsGET 요청이 있는지 확인해야 합니다.

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

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

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

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

GitLab 지원팀

참고: 이러한 단계는 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는 자체 관리형 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에는 자체 관리형 인스턴스나 인스턴스 앞에 있는 프록시에서 받은 응답이 포함될 수 있습니다.
    • 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에는 자체 관리형 인스턴스에 연락하는 중에 발생한 문제가 포함될 수 있습니다.

그룹 연결 실패

그룹을 연결할 때 다음과 같은 오류 메시지를 받을 수 있습니다:

그룹을 연결하지 못했습니다. 다시 시도하세요.

사용자 정보가 부족한 권한 때문에 Jira에서 가져올 수 없는 경우 403 금지됨 오류가 발생합니다.

이 문제를 해결하려면, 앱을 설치하고 구성하는 Jira 사용자가 특정 요구 사항을 충족시켜야 합니다.

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

자체 관리되는 인스턴스를 가리키는 후 GitLab for Jira Cloud 앱에 로그인하면 다음과 같은 오류 메시지가 발생할 수 있습니다:

Jira Connect 애플리케이션 ID를 로드하지 못했습니다. 다시 시도하세요.

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

Cross-Origin Request Blocked: 동일 출처 정책이 원격 리소스 읽기를 금지했습니다. https://gitlab.example.com/-/jira_connect/oauth_application_id에서 (이유: CORS 헤더 'Access-Control-Allow-Origin' 누락). 상태 코드: 403.

이 문제를 해결하려면:

  1. /-/jira_connect/oauth_application_id이(가) 공개적으로 접근 가능하고 JSON 응답을 반환하는지 확인하세요.

    curl --include "https://gitlab.example.com/-/jira_connect/oauth_application_id"
    
  2. Atlassian Marketplace에서 공식 GitLab for Jira Cloud 앱을 설치한 경우, Jira Connect Proxy URL/ 슬래시 없이 https://gitlab.com로 설정되었는지 확인하세요.