문서 둘러보기

OpenConnector용 GitHub OAuth 앱 생성

OpenConnector에 사용자 승인 GitHub 연결이 필요할 때 GitHub OAuth 앱을 사용하세요. OAuth 앱은 브라우저 승인 흐름을 제공하며, 개인 액세스 토큰은 관리자 관리 토큰 구성을 지원합니다.

OpenConnector 서비스

서비스 ID공급자인증 유형
githubGitHubOAuth2

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에서:

  1. Settings를 여세요.
  2. Developer settings를 여세요.
  3. OAuth Apps를 여세요.
  4. New OAuth App을 선택하세요.
  5. 앱 이름과 홈페이지 URL을 입력하세요.
  6. Authorization callback URL을 정확한 OpenConnector 콜백 URL로 설정하세요.
  7. 앱을 등록하세요.

GitHub의 공식 가이드는 Creating an OAuth app입니다. GitHub OAuth 앱에는 승인 콜백 URL이 하나만 있으므로, 각 환경의 콜백 URL이 다르면 로컬, 스테이징, 프로덕션용 앱을 별도로 생성하세요.

3단계: 클라이언트 자격 증명 복사

GitHub OAuth 앱 페이지에서 복사하세요:

GitHub 값OpenConnector 필드
Client IDclientId
Client secretclientSecret

4단계: OpenConnector에 GitHub 클라이언트 저장

OpenConnector 웹 콘솔을 사용하세요:

  1. OpenConnector 웹 콘솔(예: http://localhost:3000)을 여세요.
  2. Providers를 열고 GitHub를 선택하세요.
  3. Configure OAuth Client 또는 Edit OAuth Client를 선택하세요.
  4. GitHub 클라이언트 ID와 클라이언트 시크릿을 붙여넣으세요.
  5. 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을(를) 피하세요.