OpenConnector용 GitHub OAuth 앱 생성
OpenConnector에 사용자 승인 GitHub 연결이 필요할 때 GitHub OAuth 앱을 사용하세요. OAuth 앱은 브라우저 승인 흐름을 제공하며, 개인 액세스 토큰은 관리자 관리 토큰 구성을 지원합니다.
OpenConnector 서비스
| 서비스 ID | 공급자 | 인증 유형 |
|---|---|---|
github | GitHub | OAuth2 |
OpenConnector의 GitHub OAuth 공급자는 read:user, user:email, repo, workflow, delete_repo와 같은 스코프를 요청할 수 있습니다. 실행하려는 작업에 필요한 스코프만 부여하세요.
사전 요구 사항
- 실행 중인 OpenConnector 런타임.
- OAuth 앱을 생성할 수 있는 GitHub 계정 또는 조직.
- 사용자가 브라우저에서 여는 OpenConnector 오리진(예:
http://localhost:3000또는https://connect.example.com).
1단계: OpenConnector 콜백 URL 설정
OpenConnector 오리진에 /oauth/callback을(를) 추가하여 콜백 URL을 만드세요. 로컬 테스트에는 http://localhost:3000/oauth/callback을(를) 사용하세요. 공개 배포에서는 OOMOL_CONNECT_ORIGIN을(를) 설정하고 OpenConnector를 다시 시작한 뒤 https://connect.example.com/oauth/callback과 같은 공개 콜백 URL을 사용하세요.
2단계: GitHub OAuth 앱 등록
GitHub에서:
- Settings를 여세요.
- Developer settings를 여세요.
- OAuth Apps를 여세요.
- New OAuth App을 선택하세요.
- 앱 이름과 홈페이지 URL을 입력하세요.
- Authorization callback URL을 정확한 OpenConnector 콜백 URL로 설정하세요.
- 앱을 등록하세요.
GitHub의 공식 가이드는 Creating an OAuth app입니다. GitHub OAuth 앱에는 승인 콜백 URL이 하나만 있으므로, 각 환경의 콜백 URL이 다르면 로컬, 스테이징, 프로덕션용 앱을 별도로 생성하세요.
3단계: 클라이언트 자격 증명 복사
GitHub OAuth 앱 페이지에서 복사하세요:
| GitHub 값 | OpenConnector 필드 |
|---|---|
| Client ID | clientId |
| Client secret | clientSecret |
4단계: OpenConnector에 GitHub 클라이언트 저장
OpenConnector 웹 콘솔을 사용하세요:
- OpenConnector 웹 콘솔(예:
http://localhost:3000)을 여세요. - Providers를 열고 GitHub를 선택하세요.
- Configure OAuth Client 또는 Edit OAuth Client를 선택하세요.
- GitHub 클라이언트 ID와 클라이언트 시크릿을 붙여넣으세요.
- Save OAuth Client를 선택하세요.
5단계: 연결 및 테스트
OAuth 클라이언트를 저장한 후 GitHub 공급자 페이지에서 Connect를 선택하세요. GitHub OAuth 앱을 승인하고 OpenConnector로 돌아와 공급자 페이지에 계정이 연결됨으로 표시되는지 확인하세요.
콘솔 작업 목록에서 github.get_current_user을(를) 위험 부담이 낮은 테스트 작업으로 사용하세요.
문제 해결
| 증상 | 확인할 사항 |
|---|---|
| Redirect URI 불일치 | GitHub의 승인 콜백 URL이 <openconnector-origin>/oauth/callback과(와) 정확히 일치해야 합니다. |
| 잘못된 계정이 앱을 승인함 | 승인을 시작하기 전에 GitHub에서 로그아웃하거나 깨끗한 브라우저 프로필을 사용하세요. |
| Repo 작업 실패 | 연결에 repo 스코프가 없거나 사용자가 대상 리포지토리에 대한 액세스 권한이 없을 수 있습니다. |
| Workflow 작업 실패 | 연결에 workflow 스코프가 없을 수 있습니다. 요청한 스코프를 조정한 후 다시 연결하세요. |
| Delete 작업 실패 | 의도적으로 파괴적인 리포지토리 작업이 필요하지 않다면 delete_repo을(를) 피하세요. |
Wanta