InfoGrab DocsInfoGrab Docs

Slack용 GitLab 앱

요약

관리자 문서는 Slack용 GitLab 앱 관리를 참고합니다. Slack용 GitLab 앱은 Slack 워크스페이스에서 슬래시 명령어, 알림, GitLab Duo 통합을 제공하는 네이티브 Slack 앱입니다. Slack용 GitLab 앱은 세분화된 권한을 사용합니다.

Note

관리자 문서는 Slack용 GitLab 앱 관리를 참고합니다.

Slack용 GitLab 앱은 Slack 워크스페이스에서 슬래시 명령어, 알림, GitLab Duo 통합을 제공하는 네이티브 Slack 앱입니다. GitLab은 Slack 사용자를 GitLab 사용자와 연결하므로, Slack에서 실행하는 모든 명령어는 연결된 GitLab 사용자가 실행합니다.

Slack용 GitLab 앱 설치#

사전 요구 사항:

Slack용 GitLab 앱은 세분화된 권한을 사용합니다. 기능은 변경되지 않았지만 앱을 재설치하는 편이 좋습니다.

프로젝트 또는 그룹 설정에서 설치#

히스토리
  • GitLab 17.8에서 일반적으로 사용 가능합니다. 피처 플래그 gitlab_for_slack_app_instance_and_group_level이 제거되었습니다.

프로젝트 또는 그룹 설정에서 Slack용 GitLab 앱을 설치하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
  3. GitLab for Slack app을 선택합니다.
  4. Install GitLab for Slack app을 선택합니다. Slack 확인 페이지로 리디렉션됩니다.
  5. Slack 확인 페이지에서 다음을 수행합니다:
    1. 선택 사항. 두 개 이상의 Slack 워크스페이스에 로그인한 경우, 오른쪽 상단의 드롭다운 목록에서 앱을 설치할 워크스페이스를 선택합니다. GitLab Self-Managed 및 GitLab Dedicated에서는 관리자가 먼저 여러 워크스페이스 지원을 활성화해야 드롭다운 목록이 나타납니다.
    2. Allow를 선택합니다.

그룹에 앱을 설치하면 아직 통합을 구성하지 않은 그룹 내 모든 하위 그룹과 프로젝트에서도 통합이 켜집니다. 이미 통합을 구성한 하위 그룹과 프로젝트는 영향을 받지 않지만, 언제든지 상속된 설정을 사용할 수 있습니다. 자세한 내용은 프로젝트 통합의 그룹 기본 설정 관리를 참고합니다. 각 프로젝트는 프로젝트 경로를 기반으로 한 프로젝트 전용 별칭을 받으며, 이 별칭은 슬래시 명령어에서 사용할 수 있습니다.

Slack App Directory에서 설치#

GitLab.com에서는 Slack용 GitLab 앱을 Slack App Directory에서 설치할 수도 있습니다.

Slack App Directory에서 Slack용 GitLab 앱을 설치하려면 다음 단계를 수행합니다:

  1. GitLab for Slack 페이지로 이동합니다.
  2. Slack 워크스페이스와 연결할 GitLab 프로젝트를 선택합니다.

Slack 알림 통합에 미치는 영향#

지원 중단된 Slack 알림 통합은 다음 조건이 모두 참이면 프로젝트 설정의 통합 목록에서 숨겨집니다:

  • Slack용 GitLab 앱을 인스턴스에서 사용할 수 있습니다.
  • 프로젝트에 Slack 알림 통합이 없습니다. 꺼져 있거나 그룹에서 상속된 통합도 없는 경우를 포함합니다.
  • 인스턴스에 Slack 알림 통합이 없습니다.

숨김은 목록에만 영향을 줍니다. Slack 알림이 구성된 프로젝트는 여전히 목록에서 해당 통합을 볼 수 있으며 알림도 계속 받습니다.

Slack용 GitLab 앱 재설치#

GitLab이 Slack용 GitLab 앱의 새 기능을 릴리스하면 해당 기능을 사용하기 위해 앱을 재설치해야 할 수 있습니다.

Slack용 GitLab 앱을 재설치하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
  3. GitLab for Slack app을 선택합니다.
  4. Install GitLab for Slack app을 선택합니다. Slack 확인 페이지로 리디렉션됩니다.
  5. Slack 확인 페이지에서 다음을 수행합니다:
    1. 선택 사항. 두 개 이상의 Slack 워크스페이스에 로그인한 경우, 오른쪽 상단의 드롭다운 목록에서 앱을 재설치할 워크스페이스를 선택합니다. GitLab Self-Managed 및 GitLab Dedicated에서는 관리자가 먼저 여러 워크스페이스 지원을 활성화해야 드롭다운 목록이 나타납니다.
    2. Allow를 선택합니다.

통합을 사용하는 모든 프로젝트에서 Slack용 GitLab 앱이 업데이트됩니다.

또는 통합을 다시 구성할 수 있습니다.

GitLab Duo#

히스토리
Feature flag

이 기능의 가용성은 피처 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다. 이 기능은 테스트용으로 사용할 수 있지만 프로덕션 환경에서 사용할 준비는 되지 않았습니다.

Note

Slack Enterprise Grid 없이 여러 Slack 설치를 사용하는 경우, Slack은 GitLab Duo를 1분당 대화 객체 15개로 제한합니다. 한 번의 호출이 컨텍스트로 사용할 메시지 50개를 채널 히스토리에서 요청하므로, 이 제한 때문에 통합이 동작하지 않습니다. Slack에서 GitLab Duo의 속도 제한을 피하려면 모든 Slack 워크스페이스를 하나의 Enterprise Grid 조직에 둡니다.

봇이 있는 채널이나 스레드에서 GitLab 봇을 멘션하여 Slack에서 직접 GitLab Duo와 상호작용할 수 있습니다. GitLab Duo는 전체 대화 스레드와 최근 채널 히스토리를 컨텍스트로 읽고, CI/CD 러너에서 플로를 실행한 다음 그 결과를 Slack 스레드에 다시 게시합니다.

예를 들어 GitLab Duo에 다음을 요청할 수 있습니다:

  • 대화를 GitLab 이슈로 전환합니다.
  • 기존 이슈나 머지 리퀘스트를 검색합니다.
  • 토론 스레드를 요약합니다.
  • 프로젝트에 대한 질문에 답변합니다.

각 상호작용은 GitLab Duo Agent 세션을 실행하고 GitLab Credits를 소비합니다. 세션은 호출한 사용자의 기본 Duo 네임스페이스에 있는 CI/CD 러너에서 실행되며, 처음 사용할 때 해당 네임스페이스에 duo-workspace 프로젝트가 자동으로 생성됩니다. 다른 최상위 그룹에 있는 프로젝트에 대해 질문하면 Slack의 GitLab Duo는 실패합니다.

채널에서 멘션되면 에이전트는 해당 채널의 최근 메시지를 응답의 컨텍스트로 읽습니다. 응답 대상 메시지 이후에 게시된 메시지는 포함되지 않습니다. 사용자가 GitLab Duo와 상호작용하면 에이전트 세션이 생성되며, 이 세션은 duo-workspace 프로젝트에 접근할 수 있는 모든 사람이 아니라 호출한 사람에게만 표시됩니다.

Note

스레드에서 GitLab 봇을 멘션하면 전체 대화 내용 (모든 참여자의 메시지 포함)이 응답 생성을 위해 대형 언어 모델(LLM)로 전송됩니다. GitLab Duo를 멘션하는 스레드에서는 민감한 정보를 공유하지 않습니다.

사전 요구 사항#

Slack에서 GitLab Duo 사용#

Slack에서 GitLab Duo를 사용하려면 다음 단계를 수행합니다:

  1. /invite @GitLab으로 채널에 앱을 초대합니다.
  2. Slack 채널이나 채널 내 스레드에서 @GitLab 뒤에 요청을 입력합니다 (예: @GitLab create an issue to track this bug).
  3. @GitLab을 처음 입력하면 GitLab이 Slack 계정과 GitLab 계정을 연결하는 링크가 담긴 메시지를 보냅니다.
  4. GitLab Duo가 요청을 확인하고 작업을 시작합니다.
  5. 작업이 완료되면 GitLab Duo가 스레드 답글로 결과를 게시합니다.

오류가 발생하면 GitLab Duo가 잠긴 자물쇠 이모지로 메시지에 반응하고, 문제에 대한 세부 정보가 담긴 메시지를 보냅니다. 이 메시지는 본인에게만 표시됩니다.

이 기능의 동작에 대한 피드백을 남기려면 응답에 좋아요 또는 싫어요를 사용합니다.

Slack의 GitLab Duo는 다음 위치에서 동작합니다:

  • 에이전트가 채널의 멤버로 있는 공개 및 비공개 채널. 시작하려면 @GitLab을 멘션합니다.
  • 에이전트가 포함된 그룹 다이렉트 메시지. GitLab Duo는 멘션 여부와 관계없이 모든 메시지에 응답합니다.
  • 에이전트와의 일대일 다이렉트 메시지. Slack 상단 바에서 에이전트를 여는 경우를 포함합니다.

다이렉트 메시지에서 GitLab Duo는 대화의 이전 메시지를 컨텍스트로 사용합니다.

다이렉트 메시지에는 assistant:write, im:history, mpim:history 권한이 필요합니다. 이러한 권한이 추가되기 전에 Slack용 GitLab 앱을 설치했다면 GitLab Duo가 이러한 위치에서 응답하기 전에 앱을 재설치해야 합니다.

워크스페이스 프로젝트#

Slack에서 GitLab Duo를 처음 사용하면 기본 GitLab Duo 네임스페이스에 duo-workspace라는 워크스페이스 프로젝트가 자동으로 생성됩니다. 이 프로젝트는 Slack에서 트리거된 모든 플로의 실행 환경 역할을 합니다.

워크스페이스 프로젝트에서 에이전트 동작을 사용자 지정할 수 있습니다. 자세한 내용은 Developer Flow를 참고합니다.

Slack용 GitLab 앱 권한#

GitLab Duo에는 다음과 같은 추가 Slack용 GitLab 앱 권한이 필요합니다:

스코프 목적
app_mentions:read 사용자가 채널에서 봇을 멘션할 때 이벤트를 수신합니다.
assistant:write 앱을 Slack 상단 바에 표시되는 에이전트로 지정하고 작업하는 동안 상태를 표시합니다.
channels:history 에이전트에 스레드 및 채널 컨텍스트를 제공하기 위해 공개 채널의 대화 히스토리를 읽습니다.
groups:history 에이전트에 스레드 및 채널 컨텍스트를 제공하기 위해 비공개 채널의 대화 히스토리를 읽습니다.
im:history 에이전트와의 다이렉트 메시지의 대화 히스토리를 읽습니다.
mpim:history 에이전트가 포함된 그룹 다이렉트 메시지의 대화 히스토리를 읽습니다.
reactions:write 에이전트 수명 주기 상태를 나타내기 위해 메시지에 이모지 반응을 추가합니다.

신규 설치는 GitLab 인스턴스에서 사용할 수 있는 권한을 자동으로 받습니다. assistant:write, im:history, mpim:history 권한은 slack_duo_agent_app 기능 플래그가 활성화된 경우에만 사용할 수 있습니다. 자세한 내용은 히스토리를 참고합니다. 기존 설치는 Slack용 GitLab 앱을 재설치한 후에만 새 권한을 받습니다.

슬래시 명령어#

슬래시 명령어를 사용하여 일반적인 GitLab 작업을 실행할 수 있습니다.

Slack용 GitLab 앱의 경우:

  • 첫 슬래시 명령어를 실행할 때 Slack 사용자를 인가해야 합니다.
  • <project>를 프로젝트 전체 경로로 바꾸거나 슬래시 명령어용 프로젝트 별칭을 생성할 수 있습니다.

Mattermost 슬래시 명령어를 대신 사용하는 경우:

  • /gitlab을 이 통합에 대해 구성한 트리거 이름으로 바꿉니다.
  • <project>를 제거합니다.

GitLab에서 사용할 수 있는 슬래시 명령어는 다음과 같습니다:

명령어 설명
/gitlab help 사용 가능한 모든 슬래시 명령어를 표시합니다.
/gitlab <project> issue show <id> ID가 <id>인 이슈를 표시합니다.
/gitlab <project> issue new <title> Shift+Enter <description> 제목이 <title>이고 설명이 <description>인 이슈를 생성합니다.
/gitlab <project> issue search <query> <query>와 일치하는 이슈를 최대 5개까지 표시합니다.
/gitlab <project> issue move <id> to <project> ID가 <id>인 이슈를 <project>로 이동합니다.
/gitlab <project> issue close <id> ID가 <id>인 이슈를 닫습니다.
/gitlab <project> issue comment <id> Shift+Enter <comment> ID가 <id>인 이슈에 본문이 <comment>인 댓글을 추가합니다.
/gitlab <project> deploy <from> to <to> <from> 환경에서 <to> 환경으로 배포합니다.
/gitlab <project> run <job name> <arguments> 기본 브랜치에서 ChatOps job <job name>을 실행합니다.
/gitlab incident declare Slack에서 인시던트를 생성하는 다이얼로그를 엽니다.

deploy 명령어#

환경에 배포할 때 GitLab은 파이프라인에서 수동 배포 액션을 찾습니다.

환경에 대해 배포 액션이 하나만 정의되어 있으면 해당 액션이 트리거됩니다. 배포 액션이 두 개 이상 정의되어 있으면 GitLab은 환경 이름과 일치하는 액션 이름을 찾습니다.

GitLab이 일치하는 배포 액션을 찾지 못하면 명령어는 오류를 반환합니다.

프로젝트 별칭 생성#

Slack용 GitLab 앱에서 슬래시 명령어는 기본적으로 프로젝트 전체 경로를 사용합니다. 대신 프로젝트 별칭을 사용할 수 있습니다.

Slack용 GitLab 앱에서 슬래시 명령어용 프로젝트 별칭을 생성하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
  3. GitLab for Slack app을 선택합니다.
  4. 프로젝트 경로 또는 별칭 옆의 Edit을 선택합니다.
  5. 새 별칭을 입력하고 Save changes를 선택합니다.

Slack 워크스페이스에서 별칭 충돌이 발생하면(예: 여러 프로젝트나 그룹이 같은 별칭을 사용하려는 경우) GitLab은 다음 형식으로 대체 별칭을 자동으로 할당합니다:

  • 프로젝트: p-<project_id>(예: p-12345)
  • 그룹: g-<group_id>(예: g-67890)

선호하는 별칭을 사용할 수 없을 때 슬래시 명령어에서 이러한 대체 별칭을 사용할 수 있습니다.

Slack 알림#

특정 GitLab 이벤트에 대해 Slack 채널로 알림을 받을 수 있습니다.

알림 구성#

Slack 알림을 구성하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.

  3. GitLab for Slack app을 선택합니다.

  4. Trigger 섹션에서 다음을 수행합니다:

    • Slack에서 알림을 받으려는 GitLab 이벤트마다 체크박스를 선택합니다.

    • 선택한 체크박스마다 알림을 받을 Slack 채널 이름을 입력합니다. 쉼표로 구분하여 채널 이름을 최대 10개까지 입력할 수 있습니다(예: #channel-one, #channel-two).

      [!note] Slack 채널이 비공개이면 채널에 Slack용 GitLab 앱을 추가해야 합니다.

  5. 선택 사항. Notification settings 섹션에서 다음을 수행합니다:

    • 실패한 파이프라인에 대해서만 알림을 받으려면 Notify only broken pipelines 체크박스를 선택합니다.

    • ref의 파이프라인 상태가 변경될 때만 알림을 받으려면 Notify only when status changes 체크박스를 선택합니다.

    • Branches for which notifications are to be sent 드롭다운 목록에서 알림을 받을 브랜치를 선택합니다.

      이러한 브랜치에서 생성된 태그가 트리거한 파이프라인에 대해서도 알림이 전송됩니다.

      취약점 알림은 선택한 브랜치와 관계없이 기본 브랜치에서만 트리거됩니다. 자세한 내용은 이슈 469373을 참고합니다.

    • Labels to be notified에는 알림을 받기 위해 GitLab 이슈, 머지 리퀘스트 또는 댓글이 가져야 하는 레이블을 일부 또는 전부 입력합니다. 모든 이벤트에 대해 알림을 받으려면 비워 둡니다.

  6. 선택 사항. Test settings를 선택합니다.

  7. Save changes를 선택합니다.

비공개 채널로 알림 받기#

비공개 Slack 채널로 알림을 받으려면 해당 채널에 Slack용 GitLab 앱을 추가해야 합니다:

  1. @GitLab을 입력하여 채널에서 앱을 멘션합니다.
  2. Add to Channel을 선택합니다.

알림 이벤트#

Slack에서 알림을 트리거할 수 있는 GitLab 이벤트는 다음과 같습니다:

이벤트 설명
Push 리포지터리에 푸시가 발생합니다.
Issue 작업 항목이 생성, 종료 또는 재개됩니다.
Confidential issue 기밀 작업 항목이 생성, 종료 또는 재개됩니다.
Merge request 머지 리퀘스트가 생성, 머지, 승인, 종료 또는 재개됩니다.
Note 댓글이 추가됩니다.
Confidential note 기밀 작업 항목에 내부 노트 또는 댓글이 추가됩니다.
Tag push 리포지터리에 태그가 푸시되거나 제거됩니다.
Pipeline 파이프라인 상태가 변경됩니다.
Wiki page 위키 페이지가 생성되거나 업데이트됩니다.
Deployment 배포가 시작되거나 완료됩니다.
공개 채널의 Group mention 공개 채널에서 그룹이 멘션됩니다.
비공개 채널의 Group mention 비공개 채널에서 그룹이 멘션됩니다.
Incident 인시던트가 생성, 종료 또는 재개됩니다.
Vulnerability 기본 브랜치에 새로운 고유 취약점이 기록됩니다.
Alert 새로운 고유 알림이 기록됩니다.

그룹 멘션에 대한 알림 트리거#

히스토리
  • GitLab 17.8에서 일반적으로 사용 가능합니다. 피처 플래그 gitlab_for_slack_app_instance_and_group_level이 제거되었습니다.

그룹 멘션에 대한 알림 이벤트를 트리거하려면 다음에서 @<group_name>을 사용합니다:

  • 이슈 및 머지 리퀘스트 설명
  • 이슈, 머지 리퀘스트, 커밋의 댓글

Slack용 GitLab 앱

GitLab v19.5
Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

관리자 문서는 Slack용 GitLab 앱 관리를 참고합니다. Slack용 GitLab 앱은 Slack 워크스페이스에서 슬래시 명령어, 알림, GitLab Duo 통합을 제공하는 네이티브 Slack 앱입니다. Slack용 GitLab 앱은 세분화된 권한을 사용합니다.

Note

관리자 문서는 Slack용 GitLab 앱 관리를 참고합니다.

Slack용 GitLab 앱은 Slack 워크스페이스에서 슬래시 명령어, 알림, GitLab Duo 통합을 제공하는 네이티브 Slack 앱입니다. GitLab은 Slack 사용자를 GitLab 사용자와 연결하므로, Slack에서 실행하는 모든 명령어는 연결된 GitLab 사용자가 실행합니다.

Slack용 GitLab 앱 설치#

사전 요구 사항:

Slack용 GitLab 앱은 세분화된 권한을 사용합니다. 기능은 변경되지 않았지만 앱을 재설치하는 편이 좋습니다.

프로젝트 또는 그룹 설정에서 설치#

히스토리
  • GitLab 17.8에서 일반적으로 사용 가능합니다. 피처 플래그 gitlab_for_slack_app_instance_and_group_level이 제거되었습니다.

프로젝트 또는 그룹 설정에서 Slack용 GitLab 앱을 설치하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
  3. GitLab for Slack app을 선택합니다.
  4. Install GitLab for Slack app을 선택합니다. Slack 확인 페이지로 리디렉션됩니다.
  5. Slack 확인 페이지에서 다음을 수행합니다:
    1. 선택 사항. 두 개 이상의 Slack 워크스페이스에 로그인한 경우, 오른쪽 상단의 드롭다운 목록에서 앱을 설치할 워크스페이스를 선택합니다. GitLab Self-Managed 및 GitLab Dedicated에서는 관리자가 먼저 여러 워크스페이스 지원을 활성화해야 드롭다운 목록이 나타납니다.
    2. Allow를 선택합니다.

그룹에 앱을 설치하면 아직 통합을 구성하지 않은 그룹 내 모든 하위 그룹과 프로젝트에서도 통합이 켜집니다. 이미 통합을 구성한 하위 그룹과 프로젝트는 영향을 받지 않지만, 언제든지 상속된 설정을 사용할 수 있습니다. 자세한 내용은 프로젝트 통합의 그룹 기본 설정 관리를 참고합니다. 각 프로젝트는 프로젝트 경로를 기반으로 한 프로젝트 전용 별칭을 받으며, 이 별칭은 슬래시 명령어에서 사용할 수 있습니다.

Slack App Directory에서 설치#

GitLab.com에서는 Slack용 GitLab 앱을 Slack App Directory에서 설치할 수도 있습니다.

Slack App Directory에서 Slack용 GitLab 앱을 설치하려면 다음 단계를 수행합니다:

  1. GitLab for Slack 페이지로 이동합니다.
  2. Slack 워크스페이스와 연결할 GitLab 프로젝트를 선택합니다.

Slack 알림 통합에 미치는 영향#

지원 중단된 Slack 알림 통합은 다음 조건이 모두 참이면 프로젝트 설정의 통합 목록에서 숨겨집니다:

  • Slack용 GitLab 앱을 인스턴스에서 사용할 수 있습니다.
  • 프로젝트에 Slack 알림 통합이 없습니다. 꺼져 있거나 그룹에서 상속된 통합도 없는 경우를 포함합니다.
  • 인스턴스에 Slack 알림 통합이 없습니다.

숨김은 목록에만 영향을 줍니다. Slack 알림이 구성된 프로젝트는 여전히 목록에서 해당 통합을 볼 수 있으며 알림도 계속 받습니다.

Slack용 GitLab 앱 재설치#

GitLab이 Slack용 GitLab 앱의 새 기능을 릴리스하면 해당 기능을 사용하기 위해 앱을 재설치해야 할 수 있습니다.

Slack용 GitLab 앱을 재설치하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
  3. GitLab for Slack app을 선택합니다.
  4. Install GitLab for Slack app을 선택합니다. Slack 확인 페이지로 리디렉션됩니다.
  5. Slack 확인 페이지에서 다음을 수행합니다:
    1. 선택 사항. 두 개 이상의 Slack 워크스페이스에 로그인한 경우, 오른쪽 상단의 드롭다운 목록에서 앱을 재설치할 워크스페이스를 선택합니다. GitLab Self-Managed 및 GitLab Dedicated에서는 관리자가 먼저 여러 워크스페이스 지원을 활성화해야 드롭다운 목록이 나타납니다.
    2. Allow를 선택합니다.

통합을 사용하는 모든 프로젝트에서 Slack용 GitLab 앱이 업데이트됩니다.

또는 통합을 다시 구성할 수 있습니다.

GitLab Duo#

히스토리
Feature flag

이 기능의 가용성은 피처 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다. 이 기능은 테스트용으로 사용할 수 있지만 프로덕션 환경에서 사용할 준비는 되지 않았습니다.

Note

Slack Enterprise Grid 없이 여러 Slack 설치를 사용하는 경우, Slack은 GitLab Duo를 1분당 대화 객체 15개로 제한합니다. 한 번의 호출이 컨텍스트로 사용할 메시지 50개를 채널 히스토리에서 요청하므로, 이 제한 때문에 통합이 동작하지 않습니다. Slack에서 GitLab Duo의 속도 제한을 피하려면 모든 Slack 워크스페이스를 하나의 Enterprise Grid 조직에 둡니다.

봇이 있는 채널이나 스레드에서 GitLab 봇을 멘션하여 Slack에서 직접 GitLab Duo와 상호작용할 수 있습니다. GitLab Duo는 전체 대화 스레드와 최근 채널 히스토리를 컨텍스트로 읽고, CI/CD 러너에서 플로를 실행한 다음 그 결과를 Slack 스레드에 다시 게시합니다.

예를 들어 GitLab Duo에 다음을 요청할 수 있습니다:

  • 대화를 GitLab 이슈로 전환합니다.
  • 기존 이슈나 머지 리퀘스트를 검색합니다.
  • 토론 스레드를 요약합니다.
  • 프로젝트에 대한 질문에 답변합니다.

각 상호작용은 GitLab Duo Agent 세션을 실행하고 GitLab Credits를 소비합니다. 세션은 호출한 사용자의 기본 Duo 네임스페이스에 있는 CI/CD 러너에서 실행되며, 처음 사용할 때 해당 네임스페이스에 duo-workspace 프로젝트가 자동으로 생성됩니다. 다른 최상위 그룹에 있는 프로젝트에 대해 질문하면 Slack의 GitLab Duo는 실패합니다.

채널에서 멘션되면 에이전트는 해당 채널의 최근 메시지를 응답의 컨텍스트로 읽습니다. 응답 대상 메시지 이후에 게시된 메시지는 포함되지 않습니다. 사용자가 GitLab Duo와 상호작용하면 에이전트 세션이 생성되며, 이 세션은 duo-workspace 프로젝트에 접근할 수 있는 모든 사람이 아니라 호출한 사람에게만 표시됩니다.

Note

스레드에서 GitLab 봇을 멘션하면 전체 대화 내용 (모든 참여자의 메시지 포함)이 응답 생성을 위해 대형 언어 모델(LLM)로 전송됩니다. GitLab Duo를 멘션하는 스레드에서는 민감한 정보를 공유하지 않습니다.

사전 요구 사항#

Slack에서 GitLab Duo 사용#

Slack에서 GitLab Duo를 사용하려면 다음 단계를 수행합니다:

  1. /invite @GitLab으로 채널에 앱을 초대합니다.
  2. Slack 채널이나 채널 내 스레드에서 @GitLab 뒤에 요청을 입력합니다 (예: @GitLab create an issue to track this bug).
  3. @GitLab을 처음 입력하면 GitLab이 Slack 계정과 GitLab 계정을 연결하는 링크가 담긴 메시지를 보냅니다.
  4. GitLab Duo가 요청을 확인하고 작업을 시작합니다.
  5. 작업이 완료되면 GitLab Duo가 스레드 답글로 결과를 게시합니다.

오류가 발생하면 GitLab Duo가 잠긴 자물쇠 이모지로 메시지에 반응하고, 문제에 대한 세부 정보가 담긴 메시지를 보냅니다. 이 메시지는 본인에게만 표시됩니다.

이 기능의 동작에 대한 피드백을 남기려면 응답에 좋아요 또는 싫어요를 사용합니다.

Slack의 GitLab Duo는 다음 위치에서 동작합니다:

  • 에이전트가 채널의 멤버로 있는 공개 및 비공개 채널. 시작하려면 @GitLab을 멘션합니다.
  • 에이전트가 포함된 그룹 다이렉트 메시지. GitLab Duo는 멘션 여부와 관계없이 모든 메시지에 응답합니다.
  • 에이전트와의 일대일 다이렉트 메시지. Slack 상단 바에서 에이전트를 여는 경우를 포함합니다.

다이렉트 메시지에서 GitLab Duo는 대화의 이전 메시지를 컨텍스트로 사용합니다.

다이렉트 메시지에는 assistant:write, im:history, mpim:history 권한이 필요합니다. 이러한 권한이 추가되기 전에 Slack용 GitLab 앱을 설치했다면 GitLab Duo가 이러한 위치에서 응답하기 전에 앱을 재설치해야 합니다.

워크스페이스 프로젝트#

Slack에서 GitLab Duo를 처음 사용하면 기본 GitLab Duo 네임스페이스에 duo-workspace라는 워크스페이스 프로젝트가 자동으로 생성됩니다. 이 프로젝트는 Slack에서 트리거된 모든 플로의 실행 환경 역할을 합니다.

워크스페이스 프로젝트에서 에이전트 동작을 사용자 지정할 수 있습니다. 자세한 내용은 Developer Flow를 참고합니다.

Slack용 GitLab 앱 권한#

GitLab Duo에는 다음과 같은 추가 Slack용 GitLab 앱 권한이 필요합니다:

스코프 목적
app_mentions:read 사용자가 채널에서 봇을 멘션할 때 이벤트를 수신합니다.
assistant:write 앱을 Slack 상단 바에 표시되는 에이전트로 지정하고 작업하는 동안 상태를 표시합니다.
channels:history 에이전트에 스레드 및 채널 컨텍스트를 제공하기 위해 공개 채널의 대화 히스토리를 읽습니다.
groups:history 에이전트에 스레드 및 채널 컨텍스트를 제공하기 위해 비공개 채널의 대화 히스토리를 읽습니다.
im:history 에이전트와의 다이렉트 메시지의 대화 히스토리를 읽습니다.
mpim:history 에이전트가 포함된 그룹 다이렉트 메시지의 대화 히스토리를 읽습니다.
reactions:write 에이전트 수명 주기 상태를 나타내기 위해 메시지에 이모지 반응을 추가합니다.

신규 설치는 GitLab 인스턴스에서 사용할 수 있는 권한을 자동으로 받습니다. assistant:write, im:history, mpim:history 권한은 slack_duo_agent_app 기능 플래그가 활성화된 경우에만 사용할 수 있습니다. 자세한 내용은 히스토리를 참고합니다. 기존 설치는 Slack용 GitLab 앱을 재설치한 후에만 새 권한을 받습니다.

슬래시 명령어#

슬래시 명령어를 사용하여 일반적인 GitLab 작업을 실행할 수 있습니다.

Slack용 GitLab 앱의 경우:

  • 첫 슬래시 명령어를 실행할 때 Slack 사용자를 인가해야 합니다.
  • <project>를 프로젝트 전체 경로로 바꾸거나 슬래시 명령어용 프로젝트 별칭을 생성할 수 있습니다.

Mattermost 슬래시 명령어를 대신 사용하는 경우:

  • /gitlab을 이 통합에 대해 구성한 트리거 이름으로 바꿉니다.
  • <project>를 제거합니다.

GitLab에서 사용할 수 있는 슬래시 명령어는 다음과 같습니다:

명령어 설명
/gitlab help 사용 가능한 모든 슬래시 명령어를 표시합니다.
/gitlab <project> issue show <id> ID가 <id>인 이슈를 표시합니다.
/gitlab <project> issue new <title> Shift+Enter <description> 제목이 <title>이고 설명이 <description>인 이슈를 생성합니다.
/gitlab <project> issue search <query> <query>와 일치하는 이슈를 최대 5개까지 표시합니다.
/gitlab <project> issue move <id> to <project> ID가 <id>인 이슈를 <project>로 이동합니다.
/gitlab <project> issue close <id> ID가 <id>인 이슈를 닫습니다.
/gitlab <project> issue comment <id> Shift+Enter <comment> ID가 <id>인 이슈에 본문이 <comment>인 댓글을 추가합니다.
/gitlab <project> deploy <from> to <to> <from> 환경에서 <to> 환경으로 배포합니다.
/gitlab <project> run <job name> <arguments> 기본 브랜치에서 ChatOps job <job name>을 실행합니다.
/gitlab incident declare Slack에서 인시던트를 생성하는 다이얼로그를 엽니다.

deploy 명령어#

환경에 배포할 때 GitLab은 파이프라인에서 수동 배포 액션을 찾습니다.

환경에 대해 배포 액션이 하나만 정의되어 있으면 해당 액션이 트리거됩니다. 배포 액션이 두 개 이상 정의되어 있으면 GitLab은 환경 이름과 일치하는 액션 이름을 찾습니다.

GitLab이 일치하는 배포 액션을 찾지 못하면 명령어는 오류를 반환합니다.

프로젝트 별칭 생성#

Slack용 GitLab 앱에서 슬래시 명령어는 기본적으로 프로젝트 전체 경로를 사용합니다. 대신 프로젝트 별칭을 사용할 수 있습니다.

Slack용 GitLab 앱에서 슬래시 명령어용 프로젝트 별칭을 생성하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
  3. GitLab for Slack app을 선택합니다.
  4. 프로젝트 경로 또는 별칭 옆의 Edit을 선택합니다.
  5. 새 별칭을 입력하고 Save changes를 선택합니다.

Slack 워크스페이스에서 별칭 충돌이 발생하면(예: 여러 프로젝트나 그룹이 같은 별칭을 사용하려는 경우) GitLab은 다음 형식으로 대체 별칭을 자동으로 할당합니다:

  • 프로젝트: p-<project_id>(예: p-12345)
  • 그룹: g-<group_id>(예: g-67890)

선호하는 별칭을 사용할 수 없을 때 슬래시 명령어에서 이러한 대체 별칭을 사용할 수 있습니다.

Slack 알림#

특정 GitLab 이벤트에 대해 Slack 채널로 알림을 받을 수 있습니다.

알림 구성#

Slack 알림을 구성하려면 다음 단계를 수행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.

  3. GitLab for Slack app을 선택합니다.

  4. Trigger 섹션에서 다음을 수행합니다:

    • Slack에서 알림을 받으려는 GitLab 이벤트마다 체크박스를 선택합니다.

    • 선택한 체크박스마다 알림을 받을 Slack 채널 이름을 입력합니다. 쉼표로 구분하여 채널 이름을 최대 10개까지 입력할 수 있습니다(예: #channel-one, #channel-two).

      [!note] Slack 채널이 비공개이면 채널에 Slack용 GitLab 앱을 추가해야 합니다.

  5. 선택 사항. Notification settings 섹션에서 다음을 수행합니다:

    • 실패한 파이프라인에 대해서만 알림을 받으려면 Notify only broken pipelines 체크박스를 선택합니다.

    • ref의 파이프라인 상태가 변경될 때만 알림을 받으려면 Notify only when status changes 체크박스를 선택합니다.

    • Branches for which notifications are to be sent 드롭다운 목록에서 알림을 받을 브랜치를 선택합니다.

      이러한 브랜치에서 생성된 태그가 트리거한 파이프라인에 대해서도 알림이 전송됩니다.

      취약점 알림은 선택한 브랜치와 관계없이 기본 브랜치에서만 트리거됩니다. 자세한 내용은 이슈 469373을 참고합니다.

    • Labels to be notified에는 알림을 받기 위해 GitLab 이슈, 머지 리퀘스트 또는 댓글이 가져야 하는 레이블을 일부 또는 전부 입력합니다. 모든 이벤트에 대해 알림을 받으려면 비워 둡니다.

  6. 선택 사항. Test settings를 선택합니다.

  7. Save changes를 선택합니다.

비공개 채널로 알림 받기#

비공개 Slack 채널로 알림을 받으려면 해당 채널에 Slack용 GitLab 앱을 추가해야 합니다:

  1. @GitLab을 입력하여 채널에서 앱을 멘션합니다.
  2. Add to Channel을 선택합니다.

알림 이벤트#

Slack에서 알림을 트리거할 수 있는 GitLab 이벤트는 다음과 같습니다:

이벤트 설명
Push 리포지터리에 푸시가 발생합니다.
Issue 작업 항목이 생성, 종료 또는 재개됩니다.
Confidential issue 기밀 작업 항목이 생성, 종료 또는 재개됩니다.
Merge request 머지 리퀘스트가 생성, 머지, 승인, 종료 또는 재개됩니다.
Note 댓글이 추가됩니다.
Confidential note 기밀 작업 항목에 내부 노트 또는 댓글이 추가됩니다.
Tag push 리포지터리에 태그가 푸시되거나 제거됩니다.
Pipeline 파이프라인 상태가 변경됩니다.
Wiki page 위키 페이지가 생성되거나 업데이트됩니다.
Deployment 배포가 시작되거나 완료됩니다.
공개 채널의 Group mention 공개 채널에서 그룹이 멘션됩니다.
비공개 채널의 Group mention 비공개 채널에서 그룹이 멘션됩니다.
Incident 인시던트가 생성, 종료 또는 재개됩니다.
Vulnerability 기본 브랜치에 새로운 고유 취약점이 기록됩니다.
Alert 새로운 고유 알림이 기록됩니다.

그룹 멘션에 대한 알림 트리거#

히스토리
  • GitLab 17.8에서 일반적으로 사용 가능합니다. 피처 플래그 gitlab_for_slack_app_instance_and_group_level이 제거되었습니다.

그룹 멘션에 대한 알림 이벤트를 트리거하려면 다음에서 @<group_name>을 사용합니다:

  • 이슈 및 머지 리퀘스트 설명
  • 이슈, 머지 리퀘스트, 커밋의 댓글