Jira DVCS 커넥터 문제 해결
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Jira DVCS 커넥터를 사용할 때 다음과 같은 문제가 발생할 수 있습니다. 새 계정 추가 양식을 작성하고 액세스를 승인했는데도 이 오류가 발생하면 Jira와 GitLab이 연결되지 않은 것입니다. GitLab 15.0 이상을 Jira Server와 함께 사용하면 Jira의 세션 토큰 버그가 발생할 수 있습니다.
Jira DVCS 커넥터를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.
Jira가 GitLab 서버에 액세스할 수 없음#
새 계정 추가 양식을 작성하고 액세스를 승인했는데도 이 오류가 발생하면 Jira와 GitLab이 연결되지 않은 것입니다. 로그에는 다른 오류 메시지가 나타나지 않습니다:
Error obtaining access token. Cannot access https://gitlab.example.com from Jira.
Jira의 세션 토큰 버그#
GitLab 15.0 이상을 Jira Server와 함께 사용하면 Jira의 세션 토큰 버그가 발생할 수 있습니다. 이 버그는 Jira Server 8.20.8, 8.22.3, 8.22.4, 9.4.6, 9.4.14에 영향을 미칩니다.
이 문제를 해결하려면 Jira Server 8.20.11 이상 또는 9.1.0 이상을 사용하세요.
SSL 및 TLS 문제#
SSL 및 TLS 문제로 인해 다음 오류 메시지가 발생할 수 있습니다:
Error obtaining access token. Cannot access https://gitlab.example.com from Jira.
- Jira 이슈 통합은 GitLab이 Jira에 연결해야 합니다. 개인 인증 기관이나 자체 서명 인증서로 인한 TLS 문제는 GitLab이 TLS 클라이언트이므로 GitLab 서버에서 해결됩니다.
- Jira 개발 패널은 Jira가 GitLab에 연결해야 하므로 Jira가 TLS 클라이언트가 됩니다. GitLab 서버의 인증서가 공개 인증 기관에서 발급되지 않은 경우 Jira Server의 Java Truststore에 적절한 인증서(예: 조직의 루트 인증서)를 추가합니다.
Jira 설정에 대한 자세한 내용은 Atlassian 설명서와 Atlassian 지원을 참조하세요.
- Truststore에 인증서 추가.
- 가장 간단한 방법은
keytool입니다. - Java의 기본 Truststore(
cacerts)에 추가 루트를 추가하여 Jira가 공개 인증 기관도 신뢰하도록 합니다. - Jira Java 런타임을 업그레이드한 후 통합이 작동하지 않으면 업그레이드 중에
cacertsTruststore가 교체되었을 수 있습니다.
- 가장 간단한 방법은
SSLPokeJava 클래스를 사용하여 TLS 핸드셰이킹까지 포함한 연결 문제 해결.- Atlassian 지식 베이스에서 Jira Server의
/tmp와 같은 디렉터리로 클래스를 다운로드합니다. - Jira와 동일한 Java 런타임을 사용합니다.
- 프록시 설정이나 대체 루트 Truststore(
-Djavax.net.ssl.trustStore)와 같이 Jira가 호출될 때 사용하는 모든 네트워킹 관련 매개변수를 전달합니다:
${JAVA_HOME}/bin/java -Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -classpath /tmp SSLPoke gitlab.example.com 443
Successfully connected 메시지는 TLS 핸드셰이크가 성공했음을 나타냅니다.
문제가 있는 경우 Java TLS 라이브러리에서 자세한 내용을 찾아볼 수 있는 오류를 생성합니다.
DVCS로 Jira에 연결할 때 범위 오류#
The requested scope is invalid, unknown, or malformed.
가능한 해결책:
- Jira DVCS 커넥터 설정에서 Jira로부터 리디렉션된 후 브라우저에 표시되는 URL에 쿼리 문자열에
scope=api가 포함되어 있는지 확인합니다. - URL에
scope=api가 없으면 GitLab 계정 구성을 편집합니다. Scopes 필드를 검토하고api체크박스가 선택되어 있는지 확인합니다.
오류: 410 Gone#
Jira에 연결하고 리포지터리를 동기화할 때 410 Gone 오류가 발생할 수 있습니다.
이 문제는 Jira DVCS 커넥터를 사용하고 통합이 GitHub Enterprise를 사용하도록 구성된 경우에 발생합니다.
자세한 내용은 이슈 340160을 참조하세요.
동기화 문제#
Jira에 삭제된 브랜치와 같은 잘못된 정보가 표시되면 정보를 다시 동기화해야 할 수 있습니다:
- Jira에서 Jira Administration > Applications > DVCS accounts를 선택합니다.
- 계정(그룹 또는 하위 그룹)에서 [ellipsis_h] (줄임표) 메뉴에서 Refresh repositories를 선택합니다.
- 각 프로젝트에서 Last activity 날짜 옆에:
- 소프트 재동기화를 수행하려면 동기화 아이콘을 선택합니다.
- 전체 동기화를 완료하려면
Shift를 누른 상태로 동기화 아이콘을 선택합니다.
자세한 내용은 Atlassian 설명서를 참조하세요.
오류: Sync Failed#
특정 프로젝트에 대해 Jira로 가져온 리포지터리 데이터를 새로 고침할 때 Jira에서 Sync Failed 오류가 발생하면 Jira DVCS 커넥터 로그를 확인하세요. GitLab의 API 리소스에 요청을 실행할 때 발생하는 오류를 찾습니다. 예를 들면:
Failed to execute request [https://gitlab.com/api/v4/projects/:id/merge_requests?page=1&per_page=100 GET https://gitlab.com/api/v4/projects/:id/merge_requests?page=1&per_page=100 returned a response status of 403 Forbidden] errors:
{"message":"403 Forbidden"}
403 Forbidden 오류가 발생하면 이 프로젝트에 일부 GitLab 기능이 비활성화되어 있을 수 있습니다.
이전 예시에서는 머지 리퀘스트 기능이 비활성화되어 있습니다.
이 문제를 해결하려면 관련 기능을 활성화합니다:
- 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Visibility, project features, permissions를 펼칩니다.
- 토글을 사용하여 필요한 기능을 활성화합니다.
DVCS 연결 프로젝트에서 웹훅 로그 찾기#
DVCS 연결 프로젝트에서 웹훅 로그를 찾으려면:
- 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Webhooks를 선택합니다.
- Project hooks로 스크롤합니다.
- Jira 인스턴스를 가리키는 로그 옆에서 Edit을 선택합니다.
- Recent events로 스크롤합니다.
프로젝트에서 웹훅 로그를 찾을 수 없으면 DVCS 설정에서 문제를 확인하세요.
