개요
조직을 위해 GitHub Enterprise 앱 템플릿을 설정하는 ChatGPT 워크스페이스 관리자인 경우 이 가이드를 사용하세요. 템플릿은 멤버가 사용하는 최종 앱이 아닙니다. 필수 GitHub Enterprise 구성을 제공하면 워크스페이스별 초안 앱을 만드는 설정 흐름입니다.
GitHub Enterprise의 경우, 설정을 통해 ChatGPT를 조직의 GitHub Enterprise 호스트에 연결합니다. GitHub App을 만들고, ChatGPT 콜백 URL을 등록하고, 자격 증명을 생성한 다음, 해당 값을 ChatGPT 템플릿 설정 흐름에 붙여넣습니다. ChatGPT가 초안 앱을 만든 후에는 다른 워크스페이스 앱처럼 게시하고 관리할 수 있습니다.
설정하는 항목
ChatGPT에서 워크스페이스별 GitHub Enterprise 앱을 만들고 있습니다. 앱은 다음을 사용합니다.
GitHub Enterprise 호스트에 등록된 GitHub App.
사용자 OAuth 승인을 위한 GitHub App 클라이언트 ID 및 클라이언트 시크릿.
ChatGPT가 리포지터리 작업용 설치 토큰을 발급할 수 있도록 하는 GitHub App 비공개 키.
GitHub Enterprise가 설치 및 리포지터리 이벤트를 ChatGPT로 다시 보낼 수 있도록 하는 웹훅 시크릿 및 웹훅 URL.
github.example.com과 같은 GitHub Enterprise 호스트 이름.
독립 실행형 GitHub OAuth App이 아니라 GitHub App을 만듭니다. ChatGPT 템플릿 설정에는 GitHub App 자격 증명, 비공개 키, 웹훅 설정이 필요합니다.
시작하기 전에
필요한 항목:
ChatGPT 워크스페이스 관리자 또는 소유자 액세스.
GitHub Apps를 만들고 설치할 수 있는 GitHub Enterprise 관리자 또는 조직 소유자 액세스.
https://또는 경로가 없는 GitHub Enterprise 호스트 이름만.읽기 전용 리포지터리 검색, 풀 리퀘스트 워크플로, 이슈 워크플로, 파일 편집, GitHub Actions 또는 더 광범위한 Codex 워크플로 등 ChatGPT가 지원해야 하는 리포지터리 작업에 대한 결정.
GitHub App 비공개 키와 클라이언트 시크릿을 처리할 안전한 장소.
ChatGPT와 GitHub Enterprise를 별도 탭에 열어 둡니다. 콜백 URL을 임의로 만들지 마세요. ChatGPT에 표시된 정확한 콜백 URL을 복사합니다.
준비할 값
GitHub Enterprise 호스트 이름: 예:
github.example.com.콜백 URL: ChatGPT 템플릿 설정 흐름에서 복사합니다.
GitHub App 클라이언트 ID.
GitHub App 클라이언트 시크릿.
GitHub App 비공개 키 PEM.
ChatGPT에서 생성한 웹훅 시크릿.
ChatGPT에서 초안 앱이 생성된 후 생성되는 웹훅 URL.
ChatGPT에서 템플릿 설정 시작
ChatGPT에서 앱을 사용할 수 있어야 하는 워크스페이스로 전환합니다.
워크스페이스 설정 > 앱을 엽니다.
디렉터리를 선택합니다.
GitHub Enterprise를 검색합니다.
GitHub Enterprise 앱 템플릿을 선택하고 설정을 시작합니다.
GitHub Enterprise 또는 GitHub Enterprise - Engineering처럼 명확한 앱 이름과 설명을 입력합니다.
github.example.com과 같은 GitHub Enterprise 호스트 이름을 입력합니다.ChatGPT에 표시된 콜백 URL을 복사합니다. 이 탭을 열어 둡니다.
설정 중에 생성된 웹훅 시크릿이 표시되면 복사합니다.
콜백 URL 예시: https://chatgpt.com/connector/oauth/<callback_id>
콜백 ID를 제거하거나, 끝에 슬래시를 추가하거나, 일반 ChatGPT URL로 바꾸지 마세요.
GitHub Enterprise에서 GitHub App 만들기
https://github.example.com과 같은 GitHub Enterprise 호스트를 엽니다.앱을 소유할 조직 또는 계정으로 이동합니다.
Settings > Developer settings > GitHub Apps를 엽니다.
New GitHub App을 선택합니다.
ChatGPT GitHub Enterprise Connector와 같은 명확한 앱 이름을 입력합니다.
홈페이지 URL을 입력합니다. 전용 내부 페이지가 없으면 GitHub Enterprise 조직 URL을 사용합니다.
Callback URL에 ChatGPT에서 복사한 정확한 콜백 URL을 붙여넣습니다.
보안 팀에서 변경할 특별한 이유가 없는 한 Expire user authorization tokens를 사용 설정된 상태로 둡니다.
사용자가 설치 또는 연결 흐름 중에 앱을 승인할 수 있도록 Request user authorization during installation을 사용 설정합니다.
Where can this GitHub App be installed?에서, 배포 계획에 맞는 가장 제한적인 옵션을 선택합니다.
GitHub App을 만듭니다.
권한 및 이벤트 구성
사용 설정하려는 ChatGPT 작업에 필요한 최소 권한을 선택합니다.
읽기 전용 리포지터리 검색 및 Q&A의 경우 다음과 같은 읽기 권한으로 시작합니다.
Metadata: 읽기 전용. GitHub Apps에는 GitHub에서 메타데이터를 요구합니다.
Contents: 파일 및 리포지터리 콘텐츠 액세스용 읽기 전용.
Issues: 이슈 검색 또는 이슈 읽기가 필요한 경우 읽기 전용.
Pull requests: 풀 리퀘스트 검색 또는 검토 컨텍스트가 필요한 경우 읽기 전용.
Actions: 워크플로 실행 상태, 작업, 로그 또는 아티팩트가 필요한 경우 읽기 전용.
쓰기 워크플로의 경우 Contents, Pull requests, Issues, Actions 또는 Workflows처럼 필요한 곳에만 쓰기 권한을 추가합니다. 의도한 ChatGPT 작업을 지원하는 가장 제한적인 권한을 사용합니다.
웹훅 이벤트는 지원하는 워크플로와 일치해야 합니다. 일반적인 이벤트에는 Installation, Installation repositories, Push, Pull request, Issues, Issue comment, Workflow run, Workflow job이 포함됩니다.
GitHub App 자격 증명 생성 및 복사
GitHub App 설정에서 Client ID를 복사합니다.
Client secret을 생성하고 즉시 복사합니다.
Private keys에서 비공개 키를 생성합니다.
.pem 파일을 다운로드하고 안전하게 보관합니다.
.pem 파일을 로컬에서 열고 시작 및 끝 줄을 포함한 전체 PEM 텍스트를 복사합니다.
비공개 키는 민감한 정보입니다. 자격 증명처럼 취급하세요. 노출된 경우 새 비공개 키를 생성하고 ChatGPT 앱 설정을 업데이트한 다음 GitHub Enterprise에서 손상된 키를 삭제합니다.
ChatGPT에서 설정 완료
ChatGPT 템플릿 설정 탭으로 돌아갑니다.
GitHub App Client ID를 OAuth client ID에 붙여넣습니다.
GitHub App Client secret을 OAuth client secret에 붙여넣습니다.
조직에서 의도적으로 템플릿 기본값을 재정의해야 하는 경우가 아니라면 Scopes를 변경하지 않습니다.
GitHub Enterprise 호스트 이름이
github.example.com처럼 호스트 이름만인지 확인합니다.GitHub App 비공개 키 PEM을 GitHub App private key에 붙여넣거나 업로드합니다.
생성된 웹훅 시크릿이 있는지 확인합니다.
초안 앱을 만듭니다.
ChatGPT에서 생성된 초안 앱 세부 정보를 열고 생성된 웹훅 URL을 복사합니다.
웹훅 URL은 다음과 같아야 합니다: https://connectors.api.openai.org/connectors/<connector_id>/webhook
GitHub Enterprise에서 웹훅 설정 완료
GitHub Enterprise의 GitHub App 설정으로 돌아갑니다.
GitHub App General 설정을 엽니다.
Active webhooks가 아직 사용 설정되어 있지 않다면 사용 설정합니다.
ChatGPT 웹훅 URL을 Webhook URL에 붙여넣습니다.
ChatGPT 웹훅 시크릿을 Webhook secret에 붙여넣습니다.
SSL 검증을 사용 설정된 상태로 둡니다.
구독한 웹훅 이벤트가 사용 설정한 권한 및 작업과 일치하는지 확인합니다.
변경 사항을 저장합니다.
ChatGPT에서 앱 게시 및 관리
초안 앱을 만든다고 해서 멤버가 자동으로 사용할 수 있게 되는 것은 아닙니다. 초안을 검토한 후:
초안 앱을 게시합니다.
앱이 워크스페이스 설정 > 앱 > 사용 설정됨에 표시되는지 확인합니다.
이 앱을 사용해야 하는 역할에 대해 사용자 액세스를 구성합니다.
읽기 및 쓰기 작업에 대한 작업 제어를 검토합니다.
ChatGPT가 앱을 사용하기 전에 멤버에게 묻는 시점을 선택하려면 앱 권한을 검토합니다.
허용된 테스트 사용자에게 ChatGPT의 앱을 열어 앱이 표시되는지 확인해 달라고 요청합니다.
이러한 앱 권한은 ChatGPT 대화에 적용됩니다. 워크스페이스 에이전트는 에이전트 빌더가 설정한 에이전트별 제어를 사용하여 어떤 앱 작업을 사용할 수 있는지와 최종 사용자에게 언제 승인을 요청할지를 결정합니다. 에이전트 동작은 다음을 참조하세요: Enterprise 및 Business용 ChatGPT 워크스페이스 에이전트.
GitHub App 설치 및 테스트
GitHub Enterprise에서 조직 또는 계정에 GitHub 앱을 설치합니다.
워크스페이스 정책에 따라 모든 리포지터리 또는 선택한 리포지터리를 선택합니다.
허용된 사용자로 ChatGPT에서 연결 흐름을 시작합니다.
메시지가 표시되면 GitHub 앱을 승인합니다.
먼저 액세스 가능한 리포지터리 나열 또는 알려진 풀 리퀘스트 가져오기와 같은 작은 읽기 작업을 실행합니다.
쓰기 작업을 사용 설정한 경우 더 광범위하게 배포하기 전에 위험이 낮은 리포지터리로 테스트합니다.
호스트 이름 및 OAuth 동작
ChatGPT는 호스트 이름을 사용하여 GitHub Enterprise 엔드포인트를 도출합니다. github.example.com 또는 octocorp.ghe.com처럼 호스트만 입력합니다.
이 앱의 정확한 GitHub Enterprise 호스트가 아닌 한 API 경로, 리포지터리 경로 또는 github.com을 입력하지 마세요.
문제 해결
리디렉션 URI 불일치: GitHub App 콜백 URL이 ChatGPT에 표시된 콜백 URL과 정확히 일치하는지 확인합니다.
ChatGPT가 초안 앱을 만들거나 저장할 수 없음: 호스트 이름, OAuth client ID, OAuth client secret, 비공개 키, 웹훅 시크릿을 포함하여 모든 필수 필드가 있는지 확인합니다.
인증은 성공하지만 리포지터리 호출이 실패함: GitHub App이 설치되어 있고 리포지터리에 액세스할 수 있는지 확인합니다.
API가 403 또는 권한 부족을 반환함: 누락된 GitHub App 권한을 추가하고, 메시지가 표시되면 설치 소유자가 업데이트된 권한을 승인하도록 합니다.
리포지터리가 표시되지 않음: 앱 설치에 예상 리포지터리가 포함되어 있고 ChatGPT에서 승인하는 사용자가 해당 리포지터리에 액세스할 수 있는지 확인합니다.
웹훅 전달 실패: 웹훅 URL과 웹훅 시크릿이 ChatGPT의 값과 일치하는지 확인하고, SSL 검증을 사용 설정된 상태로 유지하며, GitHub Enterprise 호스트가
connectors.api.openai.org에 연결할 수 있는지 확인합니다.비공개 키 오류: 시작 및 끝 줄을 포함한 전체 PEM 콘텐츠가 복사되었는지 확인합니다.
