GitLab Duo with Amazon Q
GitLab v19.2Offering: GitLab Self-Managed
GitLab Duo with Amazon Q는 다른 GitLab Duo 애드온과 결합할 수 없습니다. re:Invent 2024에서 Amazon은 GitLab Duo with Amazon Q 통합을 발표했습니다. GitLab Duo with Amazon Q:
히스토리
- GitLab 17.7에서
amazon_q_integration이라는 기능 플래그와 함께 베타로 도입됨. 기본적으로 비활성화됩니다. - GitLab 17.8에서 기능 플래그
amazon_q_integration제거됨. - GitLab 17.11에서 추가적인 GitLab Duo 기능 지원과 함께 일반 공개됨.
GitLab Duo with Amazon Q는 다른 GitLab Duo 애드온과 결합할 수 없습니다.
re:Invent 2024에서 Amazon은 GitLab Duo with Amazon Q 통합을 발표했습니다. 이 통합으로 작업을 자동화하고 생산성을 높일 수 있습니다.
GitLab Duo with Amazon Q:
- 이슈 및 머지 리퀘스트에서 다양한 작업을 수행할 수 있습니다.
- 다른 많은 GitLab Duo 기능을 포함합니다.
클릭스루 데모는 GitLab Duo with Amazon Q 제품 투어를 참조하세요.
GitLab Duo with Amazon Q 구독을 얻으려면 Account Executive에 문의하세요.
또는 트라이얼을 요청하려면 이 양식을 작성하세요.
GitLab Duo with Amazon Q 설정#
GitLab Duo with Amazon Q 구독과 GitLab 17.11 이상이 있으면 인스턴스에서 GitLab Duo with Amazon Q를 설정할 수 있습니다.
이슈에서 GitLab Duo with Amazon Q 사용#
이슈에 대해 GitLab Duo with Amazon Q를 호출하려면 빠른 액션을 사용합니다.
아이디어를 머지 리퀘스트로 전환#
이슈의 아이디어를 제안된 구현이 포함된 머지 리퀘스트로 전환합니다.
Amazon Q는 이슈 제목, 설명과 프로젝트 컨텍스트를 사용하여 이슈를 해결하는 코드가 포함된 머지 리퀘스트를 생성합니다.
이슈 설명에서#
- 새 이슈를 만들거나 기존 이슈를 열고 오른쪽 상단 모서리에서 Edit를 선택합니다.
- 설명 상자에
/q dev를 입력합니다. - Save changes를 선택합니다.
댓글에서#
- 이슈의 댓글에
/q dev를 입력합니다. - Comment를 선택합니다.
Java 업그레이드#
Amazon Q는 Java 8 또는 11 코드를 분석하고 코드를 Java 17로 업데이트하는 데 필요한 Java 변경 사항을 결정할 수 있습니다.
사전 요구 사항:
- 프로젝트에 러너와 CI/CD 파이프라인이 구성되어 있어야 합니다.
pom.xml파일에 source 및 target이 있어야 합니다.
Java를 업그레이드하려면:
- 이슈를 만듭니다.
- 이슈 제목과 설명에 Java를 업그레이드하고 싶다는 것을 설명합니다. 버전 세부 정보를 입력할 필요가 없습니다. Amazon Q가 버전을 결정할 수 있습니다.
- 이슈를 저장합니다. 그런 다음 댓글에
/q transform을 입력합니다. - Comment를 선택합니다.
CI/CD job이 시작됩니다. 세부 정보와 job 링크가 포함된 댓글이 표시됩니다.
- job이 성공하면 업그레이드에 필요한 코드 변경 사항이 포함된 머지 리퀘스트가 생성됩니다.
- job이 실패하면 댓글에 잠재적인 수정 사항에 대한 세부 정보가 제공됩니다.
머지 리퀘스트에서 GitLab Duo with Amazon Q 사용#
머지 리퀘스트에 대해 GitLab Duo with Amazon Q를 호출하려면 빠른 액션을 사용합니다.
머지 리퀘스트 검토#
Amazon Q는 머지 리퀘스트를 분석하고 코드에 대한 개선 사항을 제안할 수 있습니다. 보안 문제, 품질 문제, 비효율성 및 기타 오류를 찾을 수 있습니다.
머지 리퀘스트를 열거나 다시 열 때 Amazon Q가 자동으로 검토하도록 설정하거나 수동으로 검토를 시작할 수 있습니다.
수동으로 시작하려면:
- 머지 리퀘스트를 엽니다.
- Overview 탭의 댓글에
/q review를 입력합니다. - Comment를 선택합니다.
Amazon Q가 머지 리퀘스트 변경 사항을 검토하고 댓글에 결과를 표시합니다.
피드백을 기반으로 코드 변경#
Amazon Q는 리뷰어 피드백을 기반으로 코드를 변경할 수 있습니다.
- 리뷰어 피드백이 있는 머지 리퀘스트를 엽니다.
- Overview 탭에서 해결하려는 댓글로 이동합니다.
- 댓글 아래의 Reply 상자에
/q dev를 입력합니다. - Add comment now를 선택합니다.
Amazon Q는 리뷰어의 댓글과 피드백을 기반으로 머지 리퀘스트에 대한 변경 사항을 제안합니다.
유닛 테스트 생성#
Amazon Q를 사용하여 코드에 대한 새 유닛 테스트를 생성합니다.
이슈에서#
- 이슈를 만듭니다.
- 다음 옵션 중 하나를 사용하여 코드에 대한 테스트 생성을 요청합니다:
- 이슈 설명에 요청을 설명하고 Save changes를 선택합니다.
- 댓글에
/q dev를 입력하고 Comment를 선택합니다.
Amazon Q는 제안된 테스트가 포함된 머지 리퀘스트를 만듭니다.
머지 리퀘스트에서#
- 머지 리퀘스트를 엽니다.
- Changes 탭에서 테스트를 추가하려는 위치에 인라인 댓글을 남깁니다. 파일 이름, 클래스 이름 및 줄 번호와 같이 피드백에 최대한 많은 세부 정보를 포함합니다.
- 댓글에 새 줄에
/q dev를 입력하고 Add comment now를 선택합니다.
Amazon Q는 제안된 테스트로 머지 리퀘스트를 업데이트합니다.
인증 및 권한 부여#
히스토리
- GitLab 17.9에서 도입됨.
GitLab Duo with Amazon Q는 컴포지트 아이덴티티(composite identity)를 사용하여 요청을 인증합니다.
제품의 다른 영역에서 컴포지트 아이덴티티를 지원하는 것은 이슈 511373에서 제안되었습니다.
요청을 인증하는 토큰은 두 아이덴티티의 컴포지트입니다:
- 기본 작성자(primary author)로, Amazon Q 서비스 계정입니다. 이 서비스 계정은 인스턴스 전체에 적용되며 Amazon Q 빠른 액션이 사용된 프로젝트에서 Developer 역할을 갖습니다. 서비스 계정은 토큰의 소유자입니다.
- 보조 작성자(secondary author)로, 빠른 액션을 제출한 사람 사용자입니다. 이 사용자의
id는 토큰의 범위에 포함됩니다.
이 컴포지트 아이덴티티는 Amazon Q가 작성한 모든 활동이 Amazon Q 서비스 계정에 올바르게 귀속되도록 보장합니다. 동시에 컴포지트 아이덴티티는 사람 사용자에 대한 권한 상승이 발생하지 않도록 보장합니다.
이 동적 범위는 API 요청의 권한 부여 중에 확인됩니다. 권한 부여가 요청되면 GitLab은 서비스 계정과 빠른 액션을 시작한 사용자 모두 충분한 권한을 가지고 있는지 검증합니다.
소스 코드 보기
flowchart TD
accTitle: Authentication flow for GitLab Duo
accDescr: API requests are checked against user permissions first, then service account permissions, with access denied if either check fails.
A[API Request] --> B{Human user has access?}
B -->|No| D[Access denied]
B -->|Yes| C{Service account has access?}
C -->|No| D
C -->|Yes| E[API request succeeds]</code></pre></details></div>
관련 주제#