# Teams에서 GitHub 알림 사용자 지정

GitHub Teams 내에서 작업을 관리하도록 알림을 사용자 지정합니다.

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

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

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

| 특징            | 설명                               |
| ------------- | -------------------------------- |
| `issues`      | 열린, 닫힌, 혹은 재개된 문제.               |
| `pulls`       | 새로운, 병합된, 닫힌 또는 재오픈된 끌어오기 요청     |
| `commits`     | 기본 분기(일반적으로 `main`)에 대한 새 커밋입니다. |
| `comments`    | 문제 및 끌어오기 요청에 대한 새로운 댓글.         |
| `deployments` | 배포 상태 업데이트.                      |
| `releases`    | 새 릴리스 및 시험판이 게시되었습니다.            |

> \[!NOTE]
> 리포지토리 알림도 기본적으로 사용하도록 설정됩니다. 리포지토리가 공개되거나 삭제되면 알림이 표시됩니다. 리포지토리 업데이트는 파괴적인 활동이므로 이 알림을 사용하지 않도록 설정할 수 없습니다.

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

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

| 특징                             | 설명                                |
| ------------------------------ | --------------------------------- |
| `reviews`                      | 끌어오기 요청 검토                        |
| `workflows`                    |                                   |
| GitHub Actions 워크플로 실행 및 승인 알림 |                                   |
| `branches`                     | 분기 만들기 및 삭제                       |
| `discussions`                  | 토론을 만들거나 응답했습니다.                  |
| `+label:"YOUR-LABEL"`          | 레이블에 따라 문제, 끌어오기 요청 및 주석을 필터링합니다. |

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

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

## 알림 필터링

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

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

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

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

`@GitHub unsubscribe 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="Included" 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="Included" 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="Included" 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="Included" 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="Not included" 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="Not included" 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`이 있는 필수 레이블 필터가 만들어집니다. 필터를 지원하는 들어오는 이벤트는 해당 레이블이 없는 한 삭제됩니다.

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

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

```text copy
@GitHub subscribe [OWNER/REPO] +label:"NEW-LABEL"
```

그러면 "YOUR-LABEL" 필터가 "NEW-LABEL" 필터로 바뀝니다.

#### 레이블 필터 제거

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

```text copy
@GitHub unsubscribe [OWNER/REPO] +label:"NEW-LABEL"
```

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

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

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

```text copy
@GitHub subscribe list features
```

#### 유효한 필터

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

## GitHub Actions 워크플로 알림

채널이나 개인 앱에서 "workflows" 기능을 사용해 `@GitHub Actions subscribe OWNER/REPO workflows` 워크플로 실행 알림을 구독할 수 있으며, 형식은 GitHub입니다.

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

* 새 워크플로 실행이 트리거되면 알림이 표시됩니다.
* 승인 알림을 스레드에서 회신으로 추적할 수 있으며 채널 또는 개인 앱에서 직접 알림을 승인할 수 있습니다.
* 워크플로가 완료되면 워크플로 실행의 전체 컨텍스트 및 기록을 볼 수 있도록 스레드에서 회신으로 업데이트를 받게 됩니다.
* 문제가 발생하면 워크플로를 다시 실행하도록 선택할 수 있으며 필요한 경우 디버그 로그를 사용하도록 설정할 수도 있습니다.

> \[!NOTE] 2025년 3월 10일 이후 버전 GitHub Enterprise Server 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   | 설명                                                                                     |
| -------- | -------------------------------------------------------------------------------------- |
| `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] Teams에서 GitHub Actions 알림을 받으려면 GitHub 앱에는 추가 권한이 필요합니다. 워크플로를 처음 구독하려고 하면 이러한 사용 권한을 부여하라는 메시지가 표시됩니다.

## 배포 알림

별도의 배포 알림을 구성할 수도 있습니다. 이러한 배포는 GitHub Actions 또는 배포 API를 사용하는 외부 소스에서 이루어질 수 있습니다.
[배포에 대한 REST API 엔드포인트](/ko/rest/deployments/deployments)을(를) 참조하세요.

다음 명령을 사용하여 배포 알림을 구독하거나 구독 취소할 수 있습니다.

```text copy
@GitHub subscribe OWNER/REPO deployments
@GitHub unsubscribe OWNER/REPO deployments
```

> \[!NOTE]
> GitHub Actions를 사용 중이고 환경에 대한 배포를 추적하려는 경우, 더 완전한 전체 현황을 제공하고 Teams에서 직접 배포를 승인할 수 있으므로 `workflows` 기능을 사용하는 것이 좋습니다.