
GitHub Action에서 Gemini CLI를 호출합니다.
run-gemini-cli는 Gemini CLI를 통해 Gemini를 개발 워크플로우에 통합하는 GitHub Action입니다. 이는 중요한 일상적인 코딩 작업을 위한 자율 에이전트이자, 작업을 빠르게 위임할 수 있는 주문형 협력자 역할을 합니다.
GitHub 저장소 내에서 Gemini와 대화형으로(예: @gemini-cli 이 이슈 수정) GitHub Pull Request 리뷰 수행, 이슈 분류, 코드 분석 및 수정 등을 수행하는 데 사용합니다.
@gemini-cli /review).gh)와 같은 다른 CLI와 상호 작용.GEMINI.md 파일을 사용하여 Gemini CLI에 프로젝트별 지침 및 컨텍스트 제공.몇 분 만에 저장소에서 Gemini CLI를 시작하세요:
Google AI Studio에서 API 키를 받으세요. 관대한 무료 할당량이 제공됩니다.
API 키를 GEMINI_API_KEY라는 이름의 시크릿으로 저장소에 저장하세요:
GEMINI_API_KEY, Value: API 키 입력.gitignore 파일에 다음 항목을 추가하세요:
# gemini-cli 설정
.gemini/
# GitHub App 자격 증명
gha-creds-*.json
워크플로우 설정에는 두 가지 옵션이 있습니다:
옵션 A: setup 명령 사용 (권장)
터미널에서 Gemini CLI 시작:
gemini
터미널의 Gemini CLI에서 다음 입력:
/setup-github
옵션 B: 수동으로 워크플로우 복사
examples/workflows 디렉토리에서 사전 빌드된 워크플로우를 저장소의 .github/workflows 디렉토리로 복사합니다. 참고: gemini-dispatch.yml 워크플로우도 복사해야 워크플로우가 실행되도록 트리거됩니다.Pull Request 리뷰:
@gemini-cli /review 댓글을 달아 수동으로 리뷰를 트리거합니다.Issue Triage (이슈 분류):
@gemini-cli /triage 댓글을 달아 수동으로 분류를 트리거합니다.일반 AI 지원:
@gemini-cli 뒤에 요청을 멘션합니다.@gemini-cli 이 코드 변경 설명해줘@gemini-cli 이 함수에 대한 개선 제안@gemini-cli 이 오류 디버깅 도와줘@gemini-cli 이 컴포넌트에 대한 단위 테스트 작성해줘이 액션은 다양한 사용 사례를 위한 여러 사전 빌드된 워크플로우를 제공합니다. 각 워크플로우는 저장소의 .github/workflows 디렉토리에 복사하여 필요에 따라 커스터마이징할 수 있습니다.
이 워크플로우는 Gemini CLI의 중앙 디스패처 역할을 하며, 트리거 이벤트와 댓글에 제공된 명령에 따라 적절한 워크플로우로 요청을 라우팅합니다. 디스패치 워크플로우 설정에 대한 자세한 가이드는 Gemini Dispatch 워크플로우 문서를 참조하세요.
이 액션은 GitHub Issues를 자동으로 또는 일정에 따라 분류하는 데 사용할 수 있습니다. 이슈 분류 시스템 설정에 대한 자세한 가이드는 GitHub Issue Triage 워크플로우 문서를 참조하세요.
이 액션은 Pull Request가 열릴 때 자동으로 리뷰하는 데 사용할 수 있습니다. Pull Request 리뷰 시스템 설정에 대한 자세한 가이드는 GitHub PR Review 워크플로우 문서를 참조하세요.
이러한 유형의 액션은 Pull Request 및 이슈 내에서 범용 대화형 Gemini AI 어시스턴트를 호출하여 다양한 작업을 수행하는 데 사용할 수 있습니다. 일반 목적 Gemini CLI 워크플로우 설정에 대한 자세한 가이드는 Gemini Assistant 워크플로우 문서를 참조하세요.
gcp_location: (선택 사항) Google Cloud 위치.
gcp_project_id: (선택 사항) Google Cloud 프로젝트 ID.
gcp_service_account: (선택 사항) Google Cloud 서비스 계정 이메일.
gcp_workload_identity_provider: (선택 사항) Google Cloud Workload Identity Provider.
gcp_token_format: (선택 사항, 기본값: access_token) 인증을 위한 토큰 형식. "access_token"으로 설정하면 액세스 토큰을 생성합니다(서비스 계정 필요). 빈 문자열로 설정하면 직접 WIF를 사용합니다. "access_token" 또는 "id_token"이 될 수 있습니다.
gcp_access_token_scopes: (선택 사항, 기본값: https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/userinfo.profile) token_format이 "access_token"인 경우의 액세스 토큰 범위. 쉼표로 구분된 OAuth 2.0 범위 목록.
다음 값을 저장소 변수로 설정하여 모든 워크플로우에서 재사용하는 것을 권장합니다. 또는 개별 워크플로우의 액션 입력값으로 인라인 설정하거나 저장소 수준 값을 재정의할 수 있습니다.
[!WARNING]
DEBUG환경 변수를 사용하지 마십시오. 이 변수는 Gemini CLI가 노드 디버거가 연결될 때까지 대기하면서 중단되게 만듭니다.
저장소 변수를 추가하려면:
저장소 변수에 대한 자세한 내용은 GitHub 변수 문서를 참조하세요.
저장소에 다음 시크릿을 설정할 수 있습니다:
시크릿을 추가하려면:
자세한 내용은 암호화된 시크릿 생성 및 사용에 대한 공식 GitHub 문서를 참조하세요.
이 액션은 Google 서비스(Gemini AI용)와 GitHub API 모두에 대한 인증이 필요합니다.
사용 사례에 가장 적합한 인증 방법을 선택하세요:
두 가지 방법으로 GitHub에 인증할 수 있습니다:
GITHUB_TOKEN: 간단한 사용 사례의 경우, 액션은 워크플로우에서 제공하는 기본 GITHUB_TOKEN을 사용할 수 있습니다.Google 및 GitHub 인증에 대한 자세한 설정 지침은 인증 문서를 참조하세요.
이 액션은 원격 측정 데이터(추적, 메트릭, 로그)를 사용자 Google Cloud 프로젝트로 보내도록 구성할 수 있습니다. 이를 통해 워크플로우 내에서 Gemini CLI의 성능과 동작을 모니터링하여 디버깅 및 최적화에 유용한 통찰력을 제공합니다.
관측 가능성 설정 및 구성에 대한 자세한 지침은 관측 가능성 문서를 참조하세요.
Gemini CLI는 확장 기능을 통해 추가 기능으로 확장할 수 있습니다. 이러한 확장 기능은 GitHub 저장소의 소스에서 설치됩니다.
확장 기능 설정 및 구성에 대한 자세한 지침은 확장 기능 문서를 참조하세요.
자동화된 워크플로우의 보안, 신뢰성 및 효율성을 보장하려면 모범 사례를 따르는 것이 좋습니다. 이러한 지침은 저장소 보안, 워크플로우 구성, 모니터링 등 주요 영역을 다룹니다.
주요 권장 사항은 다음과 같습니다:
저장소 및 워크플로우 보안을 위한 종합 가이드는 모범 사례 문서를 참조하세요.
저장소 루트에 GEMINI.md 파일을 생성하여 Gemini CLI에 프로젝트별 컨텍스트 및 지침을 제공합니다. 이는 특정 저장소에 대해 모델이 따라야 할 코딩 규칙, 아키텍처 패턴 또는 기타 지침을 정의하는 데 유용합니다.
기여를 환영합니다! 시작하는 방법에 대한 자세한 내용은 Gemini CLI 기여 가이드를 확인하세요.
gemini_api_key: (선택 사항) Gemini API용 API 키.
gemini_cli_version: (선택 사항, 기본값: latest) 설치할 Gemini CLI 버전. "latest", "preview", "nightly", 특정 버전 번호, 또는 git 브랜치, 태그, 커밋이 될 수 있습니다. 자세한 내용은 Gemini CLI 릴리스를 참조하세요.
gemini_debug: (선택 사항) 디버그 로깅 및 출력 스트리밍을 활성화합니다.
gemini_model: (선택 사항) Gemini와 함께 사용할 모델.
google_api_key: (선택 사항) Gemini와 함께 사용할 Vertex AI API 키.
prompt: (선택 사항, 기본값: You are a helpful assistant.) Gemini CLI의 --prompt 인수에 전달되는 문자열입니다.
settings: (선택 사항) CLI의 프로젝트 설정을 구성하기 위해 .gemini/settings.json에 기록되는 JSON 문자열입니다.
자세한 내용은 설정 파일 문서를 참조하세요.
use_gemini_code_assist: (선택 사항, 기본값: false) 기본 Gemini API 키 대신 Gemini 모델 액세스에 Code Assist를 사용할지 여부.
자세한 내용은 Gemini CLI 문서를 참조하세요.
use_vertex_ai: (선택 사항, 기본값: false) 기본 Gemini API 키 대신 Gemini 모델 액세스에 Vertex AI를 사용할지 여부.
자세한 내용은 Gemini CLI 문서를 참조하세요.
extensions: (선택 사항) 설치할 Gemini CLI 확장 기능 목록.
upload_artifacts: (선택 사항, 기본값: false) GitHub Action에 아티팩트를 업로드할지 여부.
use_pnpm: (선택 사항, 기본값: false) gemini-cli 설치 시 npm 대신 pnpm을 사용할지 여부.
workflow_name: (선택 사항, 기본값: ${{ github.workflow }}) GitHub 워크플로우 이름, 원격 측정 목적으로 사용됩니다.
github_pr_number: (선택 사항, 기본값: ${{ github.event.pull_request.number }}) CLI가 작업 중인 Pull Request 번호. 기본값은 이벤트 페이로드입니다.
github_issue_number: (선택 사항, 기본값: ${{ github.event.issue.number }}) CLI가 작업 중인 이슈 번호(또는 쉼표로 구분된 이슈 번호 목록). 기본값은 이벤트 페이로드입니다.
| 이름 | 설명 | 유형 | 필수 | 필수 조건 |
|---|
GEMINI_DEBUG | Gemini CLI의 디버그 로깅을 활성화합니다. | Variable | 아니요 | 해당 없음 |
GEMINI_CLI_VERSION | 설치할 Gemini CLI의 버전을 제어합니다. | Variable | 아니요 | CLI 버전 고정 시 |
GCP_WIF_PROVIDER | Workload Identity Provider의 전체 리소스 이름. | Variable | 아니요 | Google Cloud 사용 시 |
GOOGLE_CLOUD_PROJECT | 추론 및 관측 가능성을 위한 Google Cloud 프로젝트. | Variable | 아니요 | Google Cloud 사용 시 |
SERVICE_ACCOUNT_EMAIL | Google Cloud 서비스 계정 이메일 주소. 선택 사항 - 서비스 계정이 있는 WIF에만 필요 (직접 WIF에는 필요하지 않음). | Variable | 아니요 | 서비스 계정과 함께 WIF 사용 시 |
GOOGLE_CLOUD_LOCATION | Google Cloud 프로젝트의 리전. | Variable | 아니요 | Google Cloud 사용 시 |
GOOGLE_GENAI_USE_VERTEXAI | Vertex AI를 사용하려면 true로 설정합니다. | Variable | 아니요 | Vertex AI 사용 시 |
GOOGLE_GENAI_USE_GCA | Gemini Code Assist를 사용하려면 true로 설정합니다. | Variable | 아니요 | Gemini Code Assist 사용 시 |
APP_ID | 사용자 지정 인증을 위한 GitHub App ID. | Variable | 아니요 | 사용자 지정 GitHub App 사용 시 |
| 이름 | 설명 | 필수 | 필수 조건 |
|---|
GEMINI_API_KEY | Google AI Studio의 Gemini API 키. | 아니요 | GCP 프로젝트가 없는 경우. |
APP_PRIVATE_KEY | GitHub App의 개인 키 (PEM 형식). | 아니요 | 사용자 지정 GitHub App을 사용하는 경우. |
GOOGLE_API_KEY | Vertex AI와 함께 사용할 Google API 키. | 아니요 | Express Vertex AI 계정이 있는 경우. |