> For the complete documentation index, see [llms.txt](https://help.genesis.autify.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.genesis.autify.com/features-ko/resources-context/github-integration.md).

# GitHub 연동

이 문서에서는 **GitHub 연동** 기능을 설명합니다. GitHub 리포지토리를 연결하면 선택한 리포지토리의 코드를 자동 또는 수동으로 동기화할 수 있으며, AI가 코드 내용을 참조하면서 질문에 답변하거나 워크플로를 실행할 수 있게 됩니다.

## 사전 조건

| 작업                                   | 필요한 권한                 |
| ------------------------------------ | ---------------------- |
| 조직의 GitHub 계정을 연결하거나 해제하기            | 관리자 / 소유자              |
| 이 워크스페이스에서 사용할 GitHub 계정을 선택하거나 변경하기 | 관리자 / 소유자              |
| 승인된 리포지토리를 선택하거나 변경하기                | 워크스페이스 매니저 / 관리자 / 소유자 |
| 동기화 대상 브랜치를 변경하기                     | 워크스페이스 매니저 / 관리자 / 소유자 |
| 수동 동기화를 실행하기                         | 워크스페이스 매니저 / 관리자 / 소유자 |
| 동기화 설정을 변경하기                         | 워크스페이스 매니저 / 관리자 / 소유자 |

GitHub 계정 연결은 **설정** > **앱** 에서 수행합니다. 관리자 또는 소유자가 계정을 연결하고 GitHub에서 리포지토리를 승인하면, 각 워크스페이스는 그 승인된 목록에서 선택할 수 있습니다.

## GitHub 리포지토리 연결하기

<figure><img src="/files/tpnp9MSYHmiy8As8D5zT" alt="GitHub 리포지토리 연결 화면 스크린샷"><figcaption><p>GitHub 리포지토리 연결 화면</p></figcaption></figure>

1. 조직에서 아직 GitHub를 연결하지 않았다면, 관리자 또는 소유자에게 **설정** > **앱** 에서 GitHub 계정을 연결해 달라고 요청하십시오.
2. 워크스페이스 페이지에서 **리소스**를 선택하십시오.
3. **코드베이스**를 선택하십시오.
4. 사용할 수 있는 연결된 계정이 여러 개 있고, 당신이 관리자 또는 소유자인 경우 **GitHub 계정**에서 사용할 계정을 선택하십시오.
5. **리포지토리 선택**을 클릭하십시오.
6. 승인된 목록에서 동기화할 리포지토리를 선택하십시오.
7. **변경사항 저장**을 클릭하십시오.

## 리포지토리 선택·변경하기

관리자 또는 소유자가 워크스페이스의 **GitHub 계정**을 선택한 뒤에는, 워크스페이스 매니저도 승인된 리포지토리를 추가하거나 변경할 수 있습니다. 리포지토리 선택을 해제하면 그 리포지토리에 해당하는 코드베이스는 자동으로 삭제됩니다.

<figure><img src="/files/iFmWFbTbtrseXqVfdeRC" alt="리포지토리 선택 화면 스크린샷"><figcaption><p>리포지토리 선택 화면</p></figcaption></figure>

1. 워크스페이스 페이지에서 **리소스**를 선택하십시오.
2. **코드베이스**를 선택하십시오.
3. 이 워크스페이스에 다른 GitHub 계정이 필요하다면, 먼저 관리자 또는 소유자에게 **GitHub 계정**을 변경해 달라고 요청하십시오.
4. **선택된 리포지토리** 섹션에서 **편집**을 클릭하십시오.
5. 승인된 목록에서 동기화할 리포지토리를 선택하거나 선택 해제하십시오.
6. **변경사항 저장**을 클릭하십시오.

필요한 리포지토리가 목록에 보이지 않으면, 관리자 또는 소유자에게 **설정** > **Apps** 에서 추가해 달라고 요청하십시오.

## 동기화 대상 브랜치 변경하기

연결된 리포지토리별로 동기화할 브랜치를 변경할 수 있습니다. 지정하지 않은 경우 리포지토리의 기본 브랜치가 동기화됩니다.

<figure><img src="/files/Pvnfr5qHoo5aI5Lzip2s" alt="브랜치 선택기 스크린샷"><figcaption><p>브랜치 선택기</p></figcaption></figure>

1. 워크스페이스 페이지에서 **리소스**를 선택하십시오.
2. **코드베이스**를 선택하십시오.
3. **선택된 리포지토리** 섹션에서 대상 리포지토리 행에 표시된 현재 브랜치 이름 버튼을 클릭하십시오.
4. 목록에서 동기화할 브랜치를 선택하십시오. 검색 상자에 브랜치 이름을 입력하여 좁힐 수 있습니다.

## 수동으로 동기화하기

GitHub 리포지토리의 내용을 수동으로 최신 상태로 갱신합니다.

<figure><img src="/files/57Wa7f0fsQWKv1MjlNJA" alt="수동 동기화 버튼 스크린샷"><figcaption><p>수동 동기화 버튼</p></figcaption></figure>

1. 워크스페이스 페이지에서 **리소스**를 선택하십시오.
2. **코드베이스**를 선택하십시오.
3. GitHub 카드의 **동기화**를 클릭하십시오.

## 동기화 설정 변경하기

수동 동기화에 더해, 푸시 / 커밋 이벤트에 연동한 동기화나 일정에 따른 정기 동기화를 설정할 수 있습니다.

<figure><img src="/files/cFFbBOa8K5eca4RiuHWo" alt="동기화 설정 대화 상자 스크린샷"><figcaption><p>동기화 설정 대화 상자</p></figcaption></figure>

1. 워크스페이스 페이지에서 **리소스**를 선택하십시오.
2. **코드베이스**를 선택하십시오.
3. **동기화 설정** 섹션의 **설정**을 클릭하십시오.
4. 동기화 타이밍을 선택하십시오.
   * **수동 동기화**: 수동으로 트리거한 경우에만 동기화합니다.
   * **푸시 / 커밋 시 동기화 트리거**: 선택한 브랜치에 코드가 푸시되었을 때 자동으로 동기화합니다.
   * **자동 동기화 활성화**: 지정한 빈도와 시각으로 정기적으로 동기화합니다. **빈도**(매일 / 매주 / 매월)와 **시각**을 지정하고, **매주**인 경우에는 **요일**, **매월**인 경우에는 **날짜**도 함께 지정합니다.
5. **저장**을 클릭하십시오.

## GitHub 연결 해제하기

GitHub 연결을 해제하면 조직에 연결된 GitHub 계정이 제거됩니다. 그 계정을 사용하는 모든 워크스페이스는 선택한 리포지토리에 대한 액세스를 잃고, 동기화된 코드베이스도 삭제됩니다. 특정 워크스페이스에서만 사용을 중지하려면 **선택된 리포지토리**에서 해당 리포지토리를 제거하십시오.

1. **설정** > **앱** 를 여십시오.
2. 연결을 해제할 GitHub 계정을 여십시오.
3. **연결 해제**를 클릭하십시오.
4. 확인한 후 실행하십시오.

## 문제 해결

### GitHub 연동 오류

| 상황                                         | 원인                                                  | 해결 방법                                                                                                                             |
| ------------------------------------------ | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 워크스페이스에 GitHub가 연결되지 않았다고 표시됨              | 조직 수준에서 GitHub 계정이 연결되지 않음                          | 관리자 또는 소유자에게 **설정** > **앱** 에서 GitHub를 연결해 달라고 요청하십시오                                                                             |
| 코드베이스에 **GitHub 액세스가 취소되었습니다** 라고 표시됨      | GitHub App이 제거되었거나 중지되었거나, 연결된 계정을 더 이상 볼 수 없음      | 마지막으로 성공한 동기화 내용은 **오래된 가능성** 라벨과 함께 계속 표시됩니다. 관리자 또는 소유자에게 **설정** > **앱** 에서 다시 연결해 달라고 요청한 뒤 **동기화**를 다시 실행하십시오                 |
| **이 리포지토리에 대한 GitHub 액세스가 취소되었습니다** 라고 표시됨 | 리포지토리가 이름 변경, 이전, 삭제되었거나 GitHub App 또는 승인된 목록에서 제거됨 | 마지막으로 성공한 동기화 내용은 **오래된 가능성** 라벨과 함께 계속 읽을 수 있습니다. 관리자 또는 소유자에게 리포지토리를 다시 승인하거나 계정을 점검해 달라고 요청한 뒤, 리포지토리를 다시 선택하고 **동기화**를 실행하십시오 |
| **GitHub 연결**에서 인증 오류가 발생함                 | GitHub 계정 권한이 부족하거나 액세스가 거부됨                        | GitHub 계정 권한을 확인한 후 다시 연결을 시도하십시오                                                                                                 |
| **요청이 GitHub에 도달하지 못했습니다** 라고 표시됨          | 프록시나 방화벽 등의 네트워크 장비가 GitHub API 대신 응답함              | 액세스가 취소된 것이 아닐 수 있습니다. GitHub API로의 아웃바운드 접근을 확인하고 네트워크 설정을 점검한 뒤 **동기화**를 다시 실행하십시오                                              |
| "저장소 동기화에 실패했습니다"라고 표시됨                    | 네트워크 오류 또는 GitHub API의 일시적인 장애                      | **동기화**를 다시 클릭하여 수동 동기화를 시도하십시오                                                                                                   |
| 동기화가 이미 진행 중이라는 메시지가 표시됨                   | 다른 동기화 처리가 실행 중                                     | 현재 동기화가 완료될 때까지 기다린 후 다시 시도하십시오                                                                                                   |
| "GitHub 설치를 불러오는 데 실패했습니다"라고 표시됨           | GitHub 연동 정보 가져오기에 실패함                              | 페이지를 새로 고침하십시오. 해소되지 않으면 관리자 또는 소유자에게 **설정** > **앱** 에서 GitHub를 다시 연결해 달라고 요청하십시오                                                 |
| "코드 아카이브 삭제에 실패했습니다"라고 표시됨                 | 삭제 처리 중에 오류가 발생함                                    | 페이지를 새로 고침한 후 다시 시도하십시오                                                                                                           |
| "브랜치를 불러오지 못했습니다"라고 표시됨                    | 리포지토리의 브랜치 목록 가져오기에 실패함                             | 페이지를 새로 고침하십시오. 해소되지 않으면 GitHub를 한 번 연결 해제한 후 다시 연결하십시오                                                                           |
| "브랜치 업데이트에 실패했습니다"라고 표시됨                   | 네트워크 오류 또는 서버의 일시적인 장애                              | 잠시 기다린 후 다시 시도하십시오                                                                                                                |
