# Slack에서 GitHub 대한 알림 사용자 지정

Slack에서 GitHub 대한 알림을 사용자 지정하는 방법을 알아봅니다.

Slack 채널과 관련된 활동을 구독하고 프로젝트에 덜 도움이 되는 활동에서 구독을 취소하여 알림을 사용자 지정할 수 있습니다.

### 기본적으로 사용하도록 설정된 알림

다음 알림은 기본적으로 사용하도록 설정되지만 `/github unsubscribe owner/repo [event]` 명령을 사용하여 사용하지 않도록 설정할 수 있습니다.

| Event         | Description                                                 |
| ------------- | ----------------------------------------------------------- |
| `issues`      | 열린, 닫힌, 혹은 재개된 문제.                                          |
| `pulls`       | 새 끌어오기 요청 또는 병합된 끌어오기 요청 및 초안 끌어오기 요청은 검토할 준비가 된 것으로 표시됩니다. |
| `commits`     | 기본 브랜치의 새 커밋입니다.                                            |
| `releases`    | 게시된 릴리스.                                                    |
| `deployments` | 배포 상태 업데이트.                                                 |

### 기본적으로 사용하지 않도록 설정된 알림

다음 알림은 기본적으로 사용하지 않도록 설정되지만 `/github subscribe owner/repo [event]` 명령을 사용하여 사용할 수 있습니다.

| Event                 | Description                       |
| --------------------- | --------------------------------- |
| `reviews`             | 끌어오기 요청 검토                        |
| `workflows`           | 작업 워크플로가 실행됩니다.                   |
| `branches`            | 분기를 만들거나 삭제했습니다.                  |
| `comments`            | 문제 및 끌어오기 요청에 대한 새로운 댓글.          |
| `commits`             | 모든 브랜치에 커밋합니다.                    |
| `discussions`         | 토론을 만들거나 응답했습니다.                  |
| `+label:"your label"` | 레이블을 기반으로 하는 문제, 끌어오기 요청 및 주석입니다. |

한 번에 여러 설정에서 구독하거나 구독을 취소할 수 있습니다. 다음은 그 예입니다.

* 끌어오기 요청 검토 및 댓글 활동을 활성화하려면 `/github subscribe owner/repo reviews comments`을 사용하세요.
* 문제에 대한 작업을 해제하고 요청을 끌어오려면 `/github unsubscribe owner/repo issues pulls` 사용합니다.

## 알림 필터링

분기 및 레이블 필터를 사용하여 알림을 추가로 사용자 지정할 수 있습니다. 분기 필터를 사용하면 분기 이름을 기반으로 커밋 알림을 필터링할 수 있으며, 레이블 필터를 사용하면 적용된 레이블에 따라 문제를 필터링하고 요청 알림을 끌어올 수 있습니다.

### 커밋 알림에 대한 분기 필터

분기 필터를 사용하면 분기 이름을 기반으로 커밋 알림을 필터링할 수 있습니다. 기본적으로 이벤트를 구독하면 `commits` 기본 분기에 대한 알림이 표시됩니다. 특정 분기, 분기 패턴, 또는 모든 분기를 필터링하도록 선택할 수 있습니다.

| 구성 예                                             | Description             |
| ------------------------------------------------ | ----------------------- |
| `/github subscribe owner/repo commits`           | 기본 분기에 대한 커밋 알림을 받습니다.  |
| `/github subscribe owner/repo commits:main`      |                         |
| `main` 브랜치에 대한 커밋 알림만 수신합니다.                     |                         |
| `/github subscribe owner/repo commits:feature/*` |                         |
| `feature/`로 시작하는 모든 브랜치에 대한 커밋 알림을 받습니다.         |                         |
| `/github subscribe owner/repo commits:*`         | 모든 브랜치에 대한 커밋 알림을 받습니다. |

> \[!NOTE] 이전에 필터를 `commits:all` 사용하여 모든 분기에 대한 커밋 알림을 수신했을 수 있습니다. 이 필터는 닫기입니다. 모든 분기에 대한 커밋 알림을 받으려면 필터를 `commits:*` 대신 사용합니다. 이전에 필터를 설정한 경우 필터를 `commits:all` 사용하도록 `commits:*` 구성을 업데이트할 때까지 계속 작동합니다.

### 문제 및 끌어오기 요청 알림에 대한 레이블 필터

레이블 필터를 사용하면 문제에 적용된 레이블 및 끌어오기 요청에 따라 알림을 필터링할 수 있습니다. 레이블 필터가 설정되면 지정된 레이블을 포함한 이벤트에 대한 알림만 전송됩니다. 레이블에 대한 자세한 내용은 [AUTOTITLE 및 AUTOTITLE](/ko/issues/using-labels-and-milestones-to-track-work/managing-labels) 을 참조 [하세요](/ko/issues/tracking-your-work-with-issues/using-issues/filtering-and-searching-issues-and-pull-requests).

현재 리포지토리당 하나의 필수 레이블 필터만 사용할 수 있습니다. 아래 표에서는 레이블 필터의 영향을 받는 이벤트 유형을 보여 줍니다.

| 이벤트 유형  | 레이블로 필터링됨                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 끌어오기 요청 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="check icon" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                    |
| 문제      | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="check icon" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                    |
| 코멘트     | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="check icon" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                    |
| Reviews | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="check icon" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                                                                    |
| 커밋/푸시   | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="x icon" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |
| 분기      | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="x icon" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |

#### 레이블 필터 만들기

레이블 필터를 만들려면 다음 명령 형식을 사용합니다.

```text copy
/github subscribe [owner/repo] +label:"your label"
```

이렇게 하면 값 `your label`이 있는 필수 레이블 필터가 만들어집니다. 필터를 지원하는 들어오는 이벤트는 해당 레이블이 없는 한 삭제됩니다.

#### 레이블 필터 업데이트

새 레이블 값을 지정하여 기존 레이블 필터를 업데이트할 수 있습니다.

```text copy
/github subscribe [owner/repo] +label:"new label"
```

그러면 "사용자 레이블" 필터가 "새로운 사용자 레이블" 필터로 바뀝니다.

#### 레이블 필터 제거

다음 옵션과 함께 구독 취소 명령을 사용하여 기존 레이블 필터를 `+label` 제거할 수 있습니다.

```text copy
/github unsubscribe [owner/repo] +label:"new label"
```

이렇게 하면 "새 레이블" 필터가 제거되고 채널은 레이블 필터링 없이 구독된 이벤트에 대한 모든 알림을 받습니다.

#### 활성 레이블 필터 보기

채널에 대한 현재 활성 레이블 필터를 보려면 다음 명령을 사용합니다.

```text copy
/github subscribe list features
```

#### 유효한 필터

Slack의 GitHub 앱은 Slack 및 GitHub가 표준으로 제공하는 모든 이모지 등 레이블 필터에 대한 가장 일반적인 특수 문자를 지원합니다. 지원되지 않는 특수 문자가 포함된 레이블이 발생하는 경우는 거의 없습니다. 예를 들어 `:foo:`로 인코딩되지 않은 멀티바이트 문자나 `,` 문자를 사용하는 레이블은 예상대로 작동하지 않을 수 있습니다.

## 작업 워크플로 알림

워크플로 기능을 사용하여 형식 `/github subscribe owner/repo workflows`에 따라, 채널이나 개인 앱에서 GitHub Actions 워크플로 실행 알림을 구독할 수 있습니다.

"워크플로"를 구독하는 경우 다음 기능을 사용할 수 있습니다.

* 새 워크플로 실행이 트리거되면 알림이 표시됩니다.

* 승인 알림을 스레드에서 회신으로 추적할 수 있으며 채널/개인 앱에서 직접 알림을 승인할 수 있습니다.

* 워크플로가 완료되면 워크플로 실행에 대한 컨텍스트 및 기록을 완료할 수 있도록 스레드에서 회신으로 업데이트를 받게 됩니다.

* 문제가 발생하면 워크플로를 다시 실행하도록 선택할 수 있으며 필요한 경우 디버그 로그를 사용하도록 설정할 수도 있습니다.

> \[!NOTE] 2025-03-10(GHES 버전 3.17) 후에는 개별 워크플로 작업의 진행 상황에 대한 알림이 더 이상 표시되지 않습니다. 자세한 내용은 [GitHub 변경 로그](https://github.blog/changelog/2025-02-03-deprecation-of-real-time-github-actions-workflow-job-events-in-slack-and-microsoft-teams-apps/) 를 참조하세요.

### 워크플로 알림 필터

다음 옵션을 사용하여 워크플로 알림을 필터링할 수 있습니다.

| Filter   | Description                                                                            |
| -------- | -------------------------------------------------------------------------------------- |
| `name`   | 워크플로의 이름으로 필터링합니다.                                                                     |
| `actor`  | 워크플로를 트리거한 사용자별로 필터링합니다.                                                               |
| `branch` | 워크플로가 실행 중인 분기를 기준으로 필터링합니다. 이벤트가 포함된 경우 `pull_request` 분기는 끌어오기 요청이 만들어지는 대상 분기가 됩니다. |
| `event`  | 워크플로를 트리거한 이벤트(예: 푸시, pull\_request)를 필터링합니다.                                          |

다음 형식으로 워크플로 알림 필터를 구성할 수 있습니다.

```text copy
/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"username"}
```

각 필터에 대해 여러 값을 쉼표로 구분하여 전달할 수도 있습니다. 다음은 그 예입니다.

```text copy
/github subscribe owner/repo workflows:{name:"your workflow name","another workflow name" event:"workflow event","another workflow event" branch:"branch name","another branch name" actor:"username","another-username"}
```

기본적으로 필터를 전달하지 않고 워크플로 알림을 구성하는 경우 기본 분기를 대상으로 하는 끌어오기 요청을 통해 트리거되는 워크플로에 대해 구성됩니다. 하나 이상의 항목을 전달할 수 있습니다.

`/github unsubscribe owner/repo workflows` 명령을 사용하여 워크플로 알림에서 구독을 취소할 수 있습니다.

> \[!NOTE] Slack에서 GitHub Actions 알림을 받으려면 GitHub 앱에 추가 권한이 필요합니다. 워크플로를 처음 구독하려고 하면 이러한 사용 권한을 부여하라는 메시지가 표시됩니다.

## 배포 알림

별도의 배포 알림을 구성할 수도 있습니다. 이러한 배포는 GitHub Actions 또는 배포 API를 사용하는 외부 원본에서 발생할 수 있습니다.
[배포에 대한 REST API 엔드포인트](/ko/rest/deployments/deployments?apiVersion=2022-11-28)을(를) 참조하세요.

다음 명령을 `/github subscribe/unsubscribe owner/repo deployments`사용하여 배포 알림을 구독/구독 취소할 수 있습니다.

> \[!NOTE] GitHub Actions을(를) 사용하고 환경에 대한 배포를 추적하려는 경우, `workflows` 기능을 사용하는 것이 좋습니다. 이 기능은 보다 완전한 전반적인 상황 파악을 제공하며, Slack에서 직접 배포를 승인할 수 있는 기능도 제공합니다.