GitLab for Jira Cloud 앱 관리

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

노트: 이 페이지에는 GitLab for Jira Cloud 앱에 대한 관리자 설명서가 포함되어 있습니다. 사용자 설명서는 GitLab for Jira Cloud 앱을 참조하십시오.

GitLab for Jira Cloud 앱을 사용하면 GitLab과 Jira Cloud를 연결하여 실시간으로 개발 정보를 동기화할 수 있습니다. 이 정보는 Jira 개발 패널에서 확인할 수 있습니다.

GitLab for Jira Cloud 앱을 사용하여 최상위 그룹 또는 하위 그룹을 링크할 수 있습니다. 프로젝트 또는 개인 네임스페이스를 직접 링크할 수는 없습니다.

Self-Managed형 인스턴스에 GitLab for Jira Cloud 앱을 설정하려면 다음 중 하나를 수행하십시오:

앱을 설정한 후에는 Atlassian이 유지보수하는 프로젝트 도구 체인을 사용하여 GitLab 리포지터리를 Jira 프로젝트에 링크할 수 있습니다. 프로젝트 도구 체인은 GitLab과 Jira Cloud 간의 개발 정보 동기화에 영향을 미치지 않습니다.

Jira Data Center 또는 Jira Server의 경우 Atlassian이 개발 및 유지 관리하는 Jira DVCS 커넥터를 사용하십시오.

OAuth 인증 설정

다음을 위해 OAuth 인증을 설정해야 합니다:

Self-Managed형 인스턴스에서 OAuth 애플리케이션을 생성하려면:

  1. 왼쪽 사이드바에서 아래쪽으로 스크롤하여 관리 영역을 선택하십시오.
  2. 응용프로그램을 선택하십시오.
  3. 새 응용프로그램을 선택하십시오.
  4. 리디렉션 URI에서:
    • 공식 마켓플레이스 디렉터리에서 앱을 설치하는 경우 https://gitlab.com/-/jira_connect/oauth_callbacks를 입력하십시오.
    • 앱을 매뉴얼으로 설치하는 경우 <instance_url>/-/jira_connect/oauth_callbacks을 입력한 다음 <instance_url>을 인스턴스의 URL로 대체하십시오.
  5. 신뢰됨기밀 확인란을 체크해제하십시오.

    노트: 오류를 피하려면 이 확인란을 해제해야 합니다.

  6. 스코프에서 api 확인란만 선택하십시오.
  7. 응용프로그램 저장을 선택하십시오.
  8. 설정 > 일반을 선택하십시오.
  9. GitLab for Jira App을 확장하십시오.
  10. Jira Connect 애플리케이션 ID응용프로그램 ID 값을 붙여넣으십시오.
  11. 변경 사항 저장을 선택하십시오.

Jira 사용자 요구 사항

  • GitLab 16.6에서 도입된 org-admins 그룹 지원.

Atlassian 조직에서는 GitLab for Jira Cloud 앱 설정에 사용되는 Jira 사용자가 다음 중 하나의 멤버임을 보장해야 합니다:

  • 조직 관리자(org-admins) 그룹. 최신 Atlassian 조직은 중앙 집중식 사용자 관리를 사용하고 있으며 이 그룹에 org-admins 그룹을 포함하고 있습니다. 기존 Atlassian 조직은 중앙 집중식 사용자 관리로 마이그레이션되고 있습니다. 가능한 경우 org-admins 그룹을 사용하여 Jira 사용자가 GitLab for Jira 앱을 관리할 수 있는지를 나타내십시오. 또는 site-admins 그룹을 사용할 수도 있습니다.
  • 사이트 관리자(site-admins) 그룹. site-admins 그룹은 원래 사용자 관리에서 사용되었습니다.

필요한 경우:

  1. 선호하는 그룹 생성하기.
  2. 그룹을 편집하여 Jira 사용자를 해당 그룹의 멤버로 추가하십시오.
  3. Jira에서 전역 권한을 사용자 정의한 경우 Jira 사용자에게 사용자 및 그룹 찾아보기 권한을 부여해야 할 수도 있습니다.

GitLab for Jira Cloud 앱 연결

  • GitLab 15.7에서 도입됨.

GitLab for Jira Cloud 앱을 마켓플레이스에서 설치한 후에 Self-Managed형 인스턴스를 링크할 수 있습니다. Jira 앱은 마켓플레이스 디렉터리 당 하나의 URL에만 링크할 수 있습니다. 공식 디렉터리은 GitLab.com에 링크됩니다.

이 방법으로는:

  • GitLab.com은 인스턴스에서 Jira 트래픽의 프록시로 작동합니다.
  • Jira Cloud에서 브랜치를 직접 만들 수 없습니다. 관련 자세한 정보는 issue 391432를 참조하십시오.

다음의 경우 GitLab for Jira Cloud 앱 매뉴얼 설치를 수행하십시오:

  • 인스턴스가 준비 조건을 충족하지 않습니다.
  • 공식 마켓플레이스 디렉터리을 사용하지 않으려는 경우.
  • Jira Cloud에서 브랜치를 만드려는 경우.

준비 조건

  • 인스턴스는 공개적으로 사용 가능해야 합니다.
  • 인스턴스는 GitLab 버전 15.7 이상이어야 합니다.
  • OAuth 인증을 설정해야 합니다.
  • 인스턴스가 HTTPS를 사용하는 경우 GitLab 인증서가 공개적으로 신뢰되거나 전체 체인 인증서를 포함해야 합니다.
  • 네트워크가 GitLab과 Jira 간의 입출력 연결을 허용해야 합니다. 인터넷에서 직접 액세스할 수 없는 방화벽 뒤에 있는 Self-Managed형 인스턴스인 경우:
    • 방화벽을 열고 Atlassian IP 주소로부터의 입력 트래픽을 허용해야 합니다.
    • Self-Managed형 인스턴스 앞에 인터넷에 직접 액세스할 수 없는 리버스 프록시를 설정해야 합니다.
    • 방화벽의 허용 디렉터리에 GitLab IP 주소를 추가해야 합니다.
  • 앱을 설치하고 구성하는 Jira 사용자는 특정 요구 사항을 충족해야 합니다.

인스턴스 설정

준비 조건

GitLab 15.7 이상의 경우 Self-Managed형 인스턴스를 GitLab for Jira Cloud 앱에 설정하려면:

  1. 왼쪽 사이드바에서 아래쪽으로 스크롤하여 관리 영역을 선택하십시오.
  2. 설정 > 일반을 선택하십시오.
  3. GitLab for Jira App을 확장하십시오.
  4. Jira Connect Proxy URL에서 https://gitlab.com을 입력하십시오.
  5. 변경 사항 저장을 선택하십시오.

인스턴스 링크

준비 조건

Self-Managed형 인스턴스를 GitLab for Jira Cloud 앱에 링크하려면:

  1. GitLab for Jira Cloud 앱을 설치하십시오.
  2. GitLab for Jira Cloud 앱 설정을 수행하십시오.
  3. 선택 사항. Jira Cloud이 현재 링크되었는지 확인하십시오.

Jira Cloud 연동 확인

Rails 콘솔을 사용하여 Jira Cloud가 다음에 연동되어 있는지 확인할 수 있습니다:

  • 특정 그룹: ruby JiraConnectSubscription.where(namespace: Namespace.by_path('group/subgroup'))

  • 특정 프로젝트: ruby Project.find_by_full_path('path/to/project').jira_subscription_exists?

  • 모든 그룹: ruby installation = JiraConnectInstallation.find_by_base_url("https://customer_name.atlassian.net") installation.subscriptions

GitLab for Jira Cloud 앱 매뉴얼으로 설치

공식 마켓플레이스 디렉터리 사용을 원치 않는 경우 GitLab for Jira Cloud 앱을 매뉴얼으로 설치하세요.

각 Jira Cloud 앱을 단일 위치에서 설치해야 합니다. Jira는 제공한 위치에서 manifest file을 불러옵니다. Manifest file은 시스템에 앱을 설명합니다.

Self-Managed형 인스턴스를 Jira Cloud와 연동하려면 다음 중 하나를 수행하세요:

사전 요구 사항

  • 인스턴스는 공개적으로 사용 가능해야 합니다.
  • OAuth 인증 설정해야 합니다.
  • 네트워크는 GitLab과 Jira 간의 수신 및 발신 연결을 허용해야 합니다. 인터넷에서 직접 액세스할 수 없는 방화벽 뒤에 있는 Self-Managed형 인스턴스의 경우:
  • 앱을 설치하고 구성하는 Jira 사용자는 특정한 요구 사항을 충족해야 합니다.

개발 모드에서 앱 설치

사전 요구 사항

Jira 인스턴스를 구성하여 마켓플레이스 외부에서 앱을 설치할 수 있도록하세요:

  1. 관리자로서 Jira 인스턴스에 로그인합니다.
  2. Jira 인스턴스에서 개발 모드 활성화를 선택합니다.
  3. 관리자로서 GitLab에 로그인합니다.
  4. Jira 인스턴스에서 GitLab 설치:
    1. Jira 인스턴스에서 앱 > 앱 관리로 이동한 후 앱 업로드를 선택합니다.
    2. 앱 설명자 URL에 인스턴스 구성에 기반한 manifest file의 전체 URL을 제공하세요. 기본적으로 manifest file은 /-/jira_connect/app_descriptor.json에 위치합니다. 예를 들어, GitLab Self-Managed형 인스턴스 도메인이 app.pet-store.cloud인 경우, manifest file은 https://app.pet-store.cloud/-/jira_connect/app_descriptor.json에 위치합니다.
    3. 업로드를 선택합니다.
    4. 시작하기를 선택하여 통합을 구성합니다.
  5. Jira 인스턴스에서 개발 모드 비활성화를 선택합니다.

앱 > 앱 관리에서 GitLab for Jira Cloud이 이제 표시됩니다. GitLab for Jira Cloud 앱 구성를 위해 시작하기를 선택할 수도 있습니다.

GitLab 업그레이드로 앱 설명자에 변경이 생기면 앱을 다시 설치해야 합니다.

마켓플레이스 디렉터리 생성

사전 요구 사항

개발 모드 사용을 원치 않는 경우, 고유한 마켓플레이스 디렉터리을 생성할 수 있습니다. 이 방법으로 Atlassian 마켓플레이스에서 GitLab for Jira Cloud 앱을 설치할 수 있습니다.

마켓플레이스 디렉터리을 생성하려면:

  1. Atlassian 마켓플레이스 벤더로 등록하세요.
  2. 앱 설명자 URL을 사용하여 애플리케이션을 나열하세요.
    • manifest file은 다음에 위치합니다: https://your.domain/your-path/-/jira_connect/app_descriptor.json
    • 공용 애플리케이션은 모든 사용자가 볼 수 있고 설치할 수 있기 때문에 애플리케이션을 private으로 나열해야 합니다.
  3. 애플리케이션에 대한 테스트 라이선스 토큰을 생성하세요.

GitLab.com 마켓플레이스 디렉터리과 같이 이 방법은 자동 업데이트를 사용합니다.

마켓플레이스 디렉터리 생성에 대한 자세한 내용은 Atlassian 문서를 참조하세요.

GitLab 인스턴스를 프록시로 사용하도록 GitLab 업로드

GitLab for Jira Cloud 앱을 통해 다른 GitLab 인스턴스에 대한 프록시로 GitLab 인스턴스를 구성할 수 있습니다. 여러 GitLab 인스턴스를 관리하지만 앱을 한 번만 매뉴얼으로 설치하려는 경우 프록시를 사용할 수 있습니다.

GitLab 인스턴스를 프록시로 사용하도록 구성하려면 다음을 수행하세요:

  1. 왼쪽 사이드바에서 하단에 위치한 관리 영역을 선택하세요.
  2. 설정 > 일반을 선택하세요.
  3. GitLab for Jira App을 확장합니다.
  4. 공개 키 저장 활성화를 선택하세요.
  5. 변경 사항 저장을 선택하세요.
  6. GitLab for Jira Cloud 앱을 매뉴얼으로 설치하세요.

프록시를 사용하는 다른 GitLab 인스턴스는 다음 설정을 구성하여 프록시 인스턴스를 가리켜야 합니다:

보안 고려 사항

GitLab for Jira Cloud 앱은 GitLab과 Jira를 연결합니다. 데이터는 두 애플리케이션 사이에서 공유되어야 하며 양쪽에서 액세스가 허용되어야 합니다.

GitLab.com을 프록시로 사용하는 경우

GitLab.com을 프록시로 사용할 때 Jira 액세스 토큰이 GitLab.com과 공유됩니다.

Jira 액세스 토큰은 요청이 Self-Managed형 인스턴스로 전송되기 전에 Jira로부터 수신되는 것을 확인하기 위해 GitLab.com에 저장됩니다. 이 토큰은 암호화되며 Jira의 데이터에 액세스하는 데 사용되지 않습니다. Self-Managed형 인스턴스에서의 데이터는 직접적으로 Jira로 전송됩니다.

OAuth를 통한 GitLab 액세스

GitLab은 Jira와 액세스 토큰을 공유하지 않습니다. 그러나 사용자는 앱을 구성하기 위해 OAuth를 통해 인증해야 합니다.

액세스 토큰은 PKCE OAuth 플로우를 통해 검색되며 클라이언트 측에만 저장됩니다. OAuth 플로우를 초기화하는 앱 프론트엔드는 Jira의 iframe을 통해 GitLab에서 로드되는 JavaScript 애플리케이션입니다.

OAuth를 통한 액세스는 다음을 위해만 필요합니다:

  • 연결할 그룹 표시
  • 그룹 연결

인증을 위한 OAuth를 사용하는 액세스는 사용자가 GitLab for Jira Cloud 앱 구성하는 동안에만 필요합니다. 자세한 내용은 액세스 토큰 만료를 참조하세요.

Reverse Proxy 사용

인터넷에서 액세스할 수 없는 Self-Managed형 인스턴스에서 Jira Cloud용 GitLab 앱을 사용하려면 해당 Self-Managed형 인스턴스에 Jira Cloud에서 액세스할 수 있어야 합니다. 리버스 프록시를 사용할 수 있지만 다음 사항을 명심해야 합니다.

외부 NGINX

이 서버 블록은 Jira Cloud와 함께 작동하는 GitLab용 리버스 프록시를 구성하는 예시입니다.

server {
  listen *:80;
  server_name gitlab.mycompany.com;
  server_tokens off;
  location /.well-known/acme-challenge/ {
    root /var/www/;
  }
  location / {
    return 301 https://gitlab.mycompany.com:443$request_uri;
  }
}
server {
  listen *:443 ssl;
  server_tokens off;
  server_name gitlab.mycompany.com;
  ssl_certificate /etc/letsencrypt/live/gitlab.mycompany.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/gitlab.mycompany.com/privkey.pem;
  ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
  ssl_protocols  TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers off;
  ssl_session_cache  shared:SSL:10m;
  ssl_session_tickets off;
  ssl_session_timeout  1d;
  access_log "/var/log/nginx/proxy_access.log";
  error_log "/var/log/nginx/proxy_error.log";
  location / {
    proxy_pass https://gitlab.internal;
    proxy_hide_header upgrade;
    proxy_set_header Host             gitlab.mycompany.com:443;
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
  }
}

이 예시에서:

  • gitlab.mycompany.com을 리버스 프록시 FQDN으로, gitlab.internal을 내부 GitLab FQDN으로 대체하세요.
  • ssl_certificatessl_certificate_key를 유효한 인증서로 설정하세요(예시에서는 Certbot를 사용합니다).
  • Host 프록시 헤더를 리버스 프록시 FQDN으로 설정하여 GitLab과 Jira Cloud가 성공적으로 연결되도록 합니다.

Jira Cloud를 GitLab과 연결할 때 리버스 프록시 FQDN만을 사용해야 합니다. GitLab에 대한 액세스는 계속해서 내부 GitLab FQDN에서 이루어져야 합니다. 리버스 프록시 FQDN에서 GitLab에 액세스하면 GitLab이 예상대로 작동하지 않을 수 있습니다. 더 자세한 내용은 이슈 21319을 참조하세요.