Jira Cloud 앱용 GitLab 개발 환경 설정
GitLab v19.4요약
개발자가 GitLab for Jira Cloud 앱의 개발 환경을 구성하는 방법은 다음과 같이 여러 가지가 있습니다. Jira Cloud 인스턴스. 인터넷으로 접근할 수 있는 GitLab 인스턴스. GitLab 팀원은 Serveo 나 ngrok과 같은 터널링 도구를 사용하지 않아야 합니다.
개발자가 GitLab for Jira Cloud 앱의 개발 환경을 구성하는 방법은 다음과 같이 여러 가지가 있습니다.
- Jira를 사용하는 전체 환경입니다. Jira와의 상호작용을 테스트해야 할 때 사용합니다.
- Jira Connect 프록시를 사용하는 전체 환경입니다. 여러 GitLab 인스턴스가 Jira Connect 프록시를 통해 Jira에 연결되는 상황을 테스트하거나 Jira Connect 프록시 자체의 변경 사항을 테스트할 때 사용합니다.
- Jira 없이 구성하는 로컬 환경입니다. 예를 들어 GitLab 프론트엔드를 테스트할 때처럼 Jira가 필요하지 않다면 이 빠른 구성을 사용할 수 있습니다.
Jira를 사용하여 설정#
앱을 설치하려면 다음이 필요합니다.
-
Jira Cloud 인스턴스. Atlassian은 개발 및 테스트용 무료 인스턴스를 제공합니다.
-
인터넷으로 접근할 수 있는 GitLab 인스턴스. 앱이 동작하려면 Jira Cloud가 인터넷을 통해 GitLab 인스턴스에 연결할 수 있어야 합니다. 이를 위해 Gitpod 또는 유사한 클라우드 개발 환경을 사용하는 방법을 권장합니다. GDK와 함께 Gitpod를 사용하는 방법에 대한 자세한 내용은 다음을 참고합니다.
- GDK with Gitpod 문서.
- GDK in Gitpod 영상.
GitLab 팀원은 Serveo 나
ngrok과 같은 터널링 도구를 사용하지 않아야 합니다. 이러한 도구는 보안 위험이며 GitLab 개발자 노트북에서 실행해서는 안 됩니다.Jira는 앱 호스트로 향하는 모든 연결이 SSL 이어야 합니다. 직접 환경을 구성한다면 SSL과 적절한 인증서를 활성화해야 합니다.
GitPod 설정#
Gitpod를 사용한다면
포트 3000을 공개로 설정해야 합니다.
Jira에 앱 설치#
Jira에 앱을 설치하는 방법은 다음과 같습니다.
-
Atlassian Marketplace에서 제공하지 않는 앱을 설치할 수 있도록 Jira 개발 모드를 활성화합니다.
- Jira에서 Jira settings > Apps > Manage apps로 이동합니다.
- Manage apps 페이지 하단으로 스크롤해 Settings를 선택합니다.
- Enable development mode를 선택한 뒤 Apply를 선택합니다.
-
앱을 설치합니다.
-
Jira에서 Jira settings > Apps > Manage apps로 이동합니다.
-
Upload app을 선택합니다.
-
From this URL 필드에 앱 디스크립터 링크를 입력합니다. 호스트와 포트는 사용 중인 GitLab 인스턴스를 가리켜야 합니다.
예를 들면 다음과 같습니다.
https://xxxx.gitpod.io/-/jira_connect/app_descriptor.json -
Upload를 선택합니다.
설치에 성공하면 Manage apps 아래에 GitLab for Jira Cloud 앱이 표시됩니다. Getting Started를 선택하면 GitLab 인스턴스에서 렌더링된 구성 페이지를 열 수도 있습니다.
[!note] 앱 디스크립터를 변경하면 앱을 제거한 뒤 다시 설치해야 합니다.
-
-
Installed and ready to go! 대화 상자가 열리면서 Get started를 권하더라도 아직 시작하지 말고 Close를 선택합니다.
-
이제 OAuth 인증 플로를 설정해야 합니다.
GitLab OAuth 인증 플로 설정#
GitLab for Jira 사용자는 GitLab OAuth를 사용해 GitLab에 인증합니다.
이 단계를 진행하기 전에 Jira에 앱을 설치했는지 확인합니다. 그렇지 않으면 Jira의 앱 설치가 실패합니다.
GitLab OAuth 플로를 테스트할 환경을 구성하는 단계는 다음과 같습니다.
- Gitpod 세션을 시작합니다.
- GitLab 인스턴스에서 Admin > Applications로 이동합니다.
- 다음 설정으로 새 애플리케이션을 만듭니다.
- Name:
GitLab for Jira - Redirect URI:
YOUR_GITPOD_INSTANCE/-/jira_connect/oauth_callbacks - Trusted: No
- Confidential: No
- Scopes:
api
- Name:
- Application ID 값을 복사합니다.
- Admin > Settings > General로 이동합니다.
- GitLab for Jira App을 확장합니다.
- 복사한 Application ID 값을 Jira Connect Application ID에 붙여 넣습니다.
- Jira Connect Proxy URL에
YOUR_GITPOD_INSTANCE를 입력합니다(예:https://xxxx.gitpod.io). - 공개 키 저장 활성화: Leave unchecked.
- Save changes를 선택합니다.
Jira에서 앱 설정#
이 단계를 진행하기 전에 OAuth를 설정했는지 확인합니다. 그렇지 않으면 이 단계가 실패합니다.
- Jira에서 Jira settings > Apps > Manage apps로 이동합니다.
- User-installed apps로 스크롤해 GitLab for Jira Cloud 앱을 찾아 확장합니다.
- Get started를 선택합니다.
이제 GitLab 인스턴스로 인증하고 그룹 연결을 시작할 수 있습니다.
문제 해결#
앱 설치 실패#
앱 설치가 실패하면 데이터베이스에서 jira_connect_installations를 삭제해야 할 수 있습니다.
- 데이터베이스 콘솔을 엽니다.
TRUNCATE TABLE jira_connect_installations CASCADE;를 실행합니다.
파일에 액세스할 권한이 없음#
Gitpod를 사용하는 중에 Jira가 디스크립터 파일에 접근하지 못한다는 오류가 발생하면 GitPod 포트를 공개로 설정해야 합니다.
Jira Connect 프록시 설정#
GitLab Self-Managed 인스턴스가 Atlassian Marketplace에서 GitLab for Jira 앱을 설치하면, 해당 인스턴스는 GitLab.com을 Jira Connect 프록시로 사용해야 합니다. Jira 수명 주기 이벤트 처리나 브랜치 생성과 같은 기능을 개발하거나 테스트해야 한다면 이 구성을 재현할 수 있습니다.
개발용 Jira Connect 프록시를 구성하려면 다음이 필요합니다.
- Jira Cloud 인스턴스. Atlassian은 개발 및 테스트용 무료 인스턴스를 제공합니다.
- 인터넷으로 접근할 수 있는 GitLab 인스턴스 두 개.
-
하나는 Jira Connect proxy 역할을 합니다(GitLab.com을 모사).
-
다른 하나는 Jira Connect 프록시를 통해 Jira에 연결하는 GitLab instance 역할을 합니다.
-
앱이 동작하려면 Jira Cloud가 인터넷을 통해 Jira Connect proxy 인스턴스에 연결할 수 있어야 합니다. 이를 위해 Gitpod 또는 유사한 클라우드 개발 환경을 사용하는 방법을 권장합니다. GDK와 함께 Gitpod를 사용하는 방법에 대한 자세한 내용은 다음을 참고합니다.
- GDK with Gitpod 문서.
- GDK in Gitpod 영상.
GitLab 팀원은 Serveo 나
ngrok과 같은 터널링 도구를 사용하지 않아야 합니다. 이러한 도구는 보안 위험이며 GitLab 개발자 노트북에서 실행해서는 안 됩니다.Jira는 앱 호스트로 향하는 모든 연결이 SSL 이어야 합니다. 직접 환경을 구성한다면 SSL과 적절한 인증서를 활성화해야 합니다.
-
GitPod 설정#
Gitpod를 사용한다면
포트 3000을 공개로 설정해야 합니다.
Jira Connect 프록시 인스턴스 설정#
- Jira Connect proxy 인스턴스는 GDK with Gitpod 안내에 따라 새 Gitpod 워크스페이스를 시작합니다.
- GitLab OAuth 인증 플로 설정 절을 따라 Jira Connect proxy에서 OAuth 인증을 설정합니다.
- Jira Connect proxy를 프록시 역할을 하도록 구성합니다.
Jira에 GitLab for Jira Cloud 앱 설치#
Jira에 앱 설치 절을 따르되, 앱 디스크립터에는 Jira Connect proxy 인스턴스의 URL을 사용합니다.
https://JIRA_CONNECT_PROXY_INSTANCE/-/jira_connect/app_descriptor.json
Installed and ready to go! 대화 상자가 열리면 Close를 선택합니다(아직 Get started를 선택하지 않습니다).
보조 GitLab 인스턴스 설정#
-
프록시 인스턴스와 동일한 GDK with Gitpod 안내에 따라 Gitpod로 두 번째 GitLab 인스턴스를 구성합니다
-
GitLab OAuth 인증 플로 설정과 동일한 단계로 이 인스턴스에서 OAuth 인증을 설정하되, 다음 한 가지가 다릅니다.
-
Redirect URI를 설정할 때 이 보조 인스턴스가 아니라 Jira Connect proxy 인스턴스의 URL을 사용합니다.
https://JIRA_CONNECT_PROXY_INSTANCE/-/jira_connect/oauth_callbacks
-
-
이 GitLab 인스턴스가 프록시를 사용하도록 구성합니다.
- Admin > Settings > General로 이동합니다
- GitLab for Jira App을 확장합니다
- 복사한 Application ID 값을 Jira Connect Application ID에 붙여 넣습니다
- Jira Connect Proxy URL에
JIRA_CONNECT_PROXY_INSTANCE를 입력합니다(예:https://xxxx.gitpod.io) - Save changes를 선택합니다
Jira에서 설정 완료#
- Jira에서 Jira settings > Apps > Manage apps로 이동합니다.
- User-installed apps로 스크롤해 GitLab for Jira Cloud 앱을 찾아 확장합니다.
- Get started를 선택합니다.
- 앱을 보조 GitLab 인스턴스에 연결하려면 Change GitLab version을 선택합니다.
- 모든 체크박스를 선택한 뒤 Next를 선택합니다.
- GitLab instance URL에
GITLAB_INSTANCE를 입력한 다음(예:https://xxxx.gitpod.io) Save를 선택합니다. - Sign in to GitLab을 선택합니다.
- Authorize를 선택합니다. 이제 그룹 목록이 표시됩니다.
- Link groups를 선택합니다.
- 그룹에 연결하려면 Link를 선택합니다.
Jira 없이 설정#
테스트에 Jira가 필요하지 않다면 Jira connect test tool과 로컬 GDK를 사용할 수 있습니다.
-
Jira-connect-test-tool을
git clone git@gitlab.com:gitlab-org/manage/integrations/jira-connect-test-tool.git로 복제합니다. -
bundle exec rackup으로 앱을 시작합니다. (이 앱은 GDK GitLab 이http://127.0.0.1:3000에서 동작해야 합니다.) -
config/gitlab.yml을 열고jira_connect구성의 주석을 해제합니다. -
localhost가 아닌 도메인에서 GDK를 실행한다면 해당 도메인을additional_iframe_ancestors에 추가해야 합니다. 예를 들면 다음과 같습니다.additional_iframe_ancestors: ['localhost:*', '127.0.0.1:*', 'gdk.test:*'] -
GDK를 재시작합니다.
-
http://127.0.0.1:3000/-/user_settings/personal_access_tokens로 이동합니다. -
api스코프로 새 토큰을 만들고 토큰을 복사합니다. -
http://localhost:9292로 이동합니다. -
토큰을 붙여 넣고 Install GitLab.com Jira Cloud app을 선택합니다.