MINARA
Minara 사용하기

Coding의 GitHub 접근 설정

GitHub App을 등록하고 설치한 뒤 Client ID를 설정하여 HTTPS Git과 Pull Request를 사용합니다

이 가이드는 저장소 범위 GitHub App으로 Coding을 GitHub에 연결합니다. 설정을 마치면 Minara가 승인된 GitHub 계정으로 HTTPS Git 작업을 인증하고 Pull Request를 만들 수 있습니다.

GitHub remote를 확인합니다

저장소가 GitHub를 가리키는지 확인합니다.

git remote -v

[email protected]:owner/repo.githttps://github.com/owner/repo.git을 모두 지원합니다. Minara는 승인된 GitHub 계정을 사용하고 인증이 필요한 네트워크 작업을 HTTPS로 수행합니다. checkout에 설정된 remote는 변경하지 않습니다.

사전 요구 사항

  • 개인 계정 또는 조직에서 GitHub App을 만들 수 있어야 합니다.
  • 대상 저장소에 App을 설치할 수 있어야 합니다. 조직 Owner의 승인이 필요할 수 있습니다.
  • 개발 빌드를 설정할 때는 Minara Agent 소스 checkout이 필요합니다.

1. GitHub App을 등록합니다

  1. GitHub Settings를 엽니다.
  2. Developer settings를 선택합니다.
  3. GitHub Apps를 선택합니다.
  4. New GitHub App을 선택합니다.
  5. 대상 저장소를 소유한 계정을 선택합니다. 조직 저장소라면 가능하면 같은 조직에서 App을 만듭니다.

등록 양식을 다음과 같이 설정합니다.

설정
GitHub App nameMinara Coding과 같은 고유한 이름
Homepage URL제품, 조직 또는 저장소 URL
Callback URL비워 둡니다. Device Flow는 사용하지 않습니다
Expire user authorization tokens활성화 상태 유지
Request user authorization during installation비활성화 상태 유지
Enable Device Flow활성화
Webhook Active비활성화
Where can this GitHub App be installed?소유자가 하나면 Only on this account, 여러 계정이면 Any account

Minara Desktop은 로컬에서 인증을 시작하고 브라우저에서 확인하므로 Device Flow를 사용합니다.

2. 저장소 권한을 설정합니다

Repository permissions에서 다음 권한만 설정합니다.

권한접근 수준용도
ContentsRead and writeHTTPS를 통한 Git 객체 fetch와 push
Pull requestsRead and writePull Request 조회와 생성
MetadataRead-only저장소 ID와 메타데이터 조회

나머지 저장소, 조직, 계정 권한은 No access로 둡니다. 설정이 끝나면 Create GitHub App을 선택합니다.

3. App을 저장소에 설치합니다

  1. 새 GitHub App의 설정 페이지를 엽니다.
  2. Install App을 선택합니다.
  3. 대상 저장소를 소유한 개인 계정 또는 조직을 선택합니다.
  4. Only select repositories를 선택합니다.
  5. Minara가 접근할 저장소를 선택합니다.
  6. Install을 선택합니다. Request가 표시되면 조직 Owner의 승인을 기다립니다.

설치는 저장소 접근 범위를 부여합니다. 이후 Minara 로그인은 해당 설치를 통해 작업할 사용자를 인증합니다. 두 단계가 모두 필요합니다.

4. Client ID를 복사합니다

GitHub App 설정 페이지로 돌아가 Client ID를 복사합니다. App ID를 복사하지 마십시오.

Iv1.8a61f9b3a7aba766

Client ID는 공개 애플리케이션 정보입니다. Minara Device Flow에는 Client Secret과 GitHub App private key가 필요하지 않습니다.

5. Minara 개발 빌드를 설정합니다

저장소 루트의 .env에 Client ID를 추가합니다.

MINARA_GITHUB_APP_CLIENT_ID=Iv1.8a61f9b3a7aba766

예시를 GitHub에서 복사한 값으로 바꿉니다. Minara Desktop을 완전히 종료한 뒤 다시 시작합니다.

pnpm dev:desktop

제품 배포본은 공개 Client ID를 제품 설정으로 제공해야 합니다. 최종 사용자가 App을 따로 등록할 필요가 없어야 합니다.

6. Minara에서 GitHub를 연결합니다

  1. Minara Settings를 엽니다.
  2. Git 접근 권한을 선택합니다.
  3. Connect GitHub에서 Connect GitHub를 선택합니다.
  4. GitHub 기기 인증 페이지에 일회용 코드를 입력합니다.
  5. GitHub 계정을 확인하고 App을 승인합니다.
  6. Minara로 돌아와 계정이 Ready 상태인지 확인합니다.

확인

  1. Git 접근 권한에서 GitHub 계정이 Ready인지 확인합니다.
  2. 대상 remote가 SSH 또는 HTTPS로 github.com을 가리키는지 확인합니다.
  3. Coding에 branch fetch 또는 push를 요청합니다.
  4. Pull Request를 만들 때 App 설치와 Pull requests: Read and write 권한을 확인합니다.

문제 해결

증상해결 방법
Connect GitHub를 사용할 수 없음MINARA_GITHUB_APP_CLIENT_ID를 설정한 뒤 Desktop을 완전히 다시 시작합니다
Client ID가 잘못되었다고 표시됨App ID나 Client Secret이 아닌 Client ID를 복사합니다
기기 인증 페이지가 표시되지 않음GitHub App에서 Device Flow를 활성화합니다
인증 후 저장소에서 403 또는 404를 반환함App을 대상 저장소에 설치하고 보류 중인 조직 승인을 완료합니다
Push가 거부됨ContentsRead and write로 바꾸고 권한 변경을 승인합니다
Pull Request를 만들 수 없음Pull requestsRead and write로 설정합니다

보안 모델

  • Minara는 사용자 access token을 암호화된 자격 증명 저장소에 보관합니다. SQLite나 대화에는 기록하지 않습니다.
  • Device code는 만료되며 한 번만 사용할 수 있습니다.
  • App은 설치할 때 선택한 저장소에만 접근할 수 있습니다.
  • 사용자의 저장소 권한과 App 권한이 함께 적용됩니다.
  • GitHub profile 연결을 해제하면 Minara가 저장된 자격 증명을 삭제합니다.

GitHub 공식 문서

목차