Claude Code GitLab CI/CD
Claude Code ã GitLab CI/CD ã§éçºã¯ãŒã¯ãããŒã«çµ±åããæ¹æ³ãåŠã³ãŸã
Claude Code for GitLab CI/CD ã¯çŸåšããŒã¿çã§ããæ©èœãšæ©èœæ§ã¯ããšã¯ã¹ããªãšã³ã¹ãæ¹åããéã«é²åããå¯èœæ§ããããŸãã
ãã®çµ±å㯠GitLab ã«ãã£ãŠä¿å®ãããŠããŸãããµããŒãã«ã€ããŠã¯ã以äžã® GitLab issue ãåç §ããŠãã ããã
ãã®çµ±å㯠Claude Code CLI and Agent SDK ã®äžã«æ§ç¯ãããŠãããCI/CD ãžã§ããšã«ã¹ã¿ã èªååã¯ãŒã¯ãããŒã§ Claude ãããã°ã©ã çã«äœ¿çšã§ããŸãã
GitLab ã§ Claude Code ã䜿çšããçç±
- ã€ã³ã¹ã¿ã³ã MR äœæ: å¿ èŠãªããšã説æãããšãClaude ã¯å€æŽãšèª¬æãå«ãå®å šãª MR ãææ¡ããŸã
- èªåå®è£ : åäžã®ã³ãã³ããŸãã¯ã¡ã³ã·ã§ã³ã§ issue ãå®è¡å¯èœãªã³ãŒãã«å€æããŸã
- ãããžã§ã¯ã察å¿: Claude ã¯
CLAUDE.mdã¬ã€ãã©ã€ã³ãšæ¢åã®ã³ãŒããã¿ãŒã³ã«åŸããŸã - ã·ã³ãã«ãªã»ããã¢ãã:
.gitlab-ci.ymlã« 1 ã€ã®ãžã§ããšãã¹ã¯ããã CI/CD 倿°ã远å ããŸã - ãšã³ã¿ãŒãã©ã€ãºå¯Ÿå¿: Claude APIãAmazon BedrockããŸã㯠Google Vertex AI ãéžæããŠãããŒã¿ã¬ãžãã³ã·ãŒãšèª¿éã®ããŒãºãæºãããŸã
- ããã©ã«ãã§ã»ãã¥ã¢: GitLab ã©ã³ããŒã§å®è¡ããããã©ã³ãä¿è·ãšæ¿èªãé©çšãããŸã
ä»çµã¿
Claude Code 㯠GitLab CI/CD ã䜿çšã㊠AI ã¿ã¹ã¯ãåé¢ããããžã§ãã§å®è¡ããMR çµç±ã§çµæãã³ãããããã¯ããŸãã
-
ã€ãã³ãé§ååãªãŒã±ã¹ãã¬ãŒã·ã§ã³: GitLab ã¯éžæããããªã¬ãŒïŒäŸãã°ãissueãMRããŸãã¯ã¬ãã¥ãŒã¹ã¬ããã§
@claudeãã¡ã³ã·ã§ã³ããã³ã¡ã³ãïŒããªãã¹ã³ããŸãããžã§ãã¯ã¹ã¬ãããšãªããžããªããã³ã³ããã¹ããåéãããã®å ¥åããããã³ãããæ§ç¯ããClaude Code ãå®è¡ããŸãã -
ãããã€ããŒæœè±¡å: ç°å¢ã«é©ãããããã€ããŒã䜿çšããŸãã
- Claude APIïŒSaaSïŒ
- Amazon BedrockïŒIAM ããŒã¹ã®ã¢ã¯ã»ã¹ãã¯ãã¹ãªãŒãžã§ã³ãªãã·ã§ã³ïŒ
- Google Vertex AIïŒGCP ãã€ãã£ããWorkload Identity FederationïŒ
-
ãµã³ãããã¯ã¹å®è¡: åã€ã³ã¿ã©ã¯ã·ã§ã³ã¯å³å¯ãªãããã¯ãŒã¯ãšãã¡ã€ã«ã·ã¹ãã ã«ãŒã«ãæã€ã³ã³ããã§å®è¡ãããŸããClaude Code ã¯ã¯ãŒã¯ã¹ããŒã¹ã¹ã³ãŒãã®æš©éãé©çšããŠæžã蟌ã¿ãå¶éããŸãããã¹ãŠã®å€æŽã¯ MR ãéããŠãããŒãããããã¬ãã¥ã¢ãŒã¯ diff ã確èªã§ããæ¿èªãåŒãç¶ãé©çšãããŸãã
å°åãšã³ããã€ã³ããéžæããŠãæ¢åã®ã¯ã©ãŠãå¥çŽã䜿çšããªããã¬ã€ãã³ã·ãŒãåæžããããŒã¿ãœããªã³ãã£èŠä»¶ãæºãããŸãã
Claude ã¯äœãã§ããŸããïŒ
Claude Code ã¯ãã³ãŒãã®æäœæ¹æ³ãå€ãã匷å㪠CI/CD ã¯ãŒã¯ãããŒãå®çŸããŸãã
- issue ã®èª¬æãŸãã¯ã³ã¡ã³ããã MR ãäœæããã³æŽæ°ããŸã
- ããã©ãŒãã³ã¹äœäžãåæããæé©åãææ¡ããŸã
- ãã©ã³ãã«çŽæ¥æ©èœãå®è£ ããMR ãéããŸã
- ãã¹ããŸãã¯ã³ã¡ã³ãã§ç¹å®ããããã°ãšäœäžãä¿®æ£ããŸã
- ãã©ããŒã¢ããã³ã¡ã³ãã«å¿çããŠããªã¯ãšã¹ãããã倿Žãå埩åŠçããŸã
ã»ããã¢ãã
ã¯ã€ãã¯ã»ããã¢ãã
æéã§éå§ããæ¹æ³ã¯ã.gitlab-ci.yml ã«æå°éã®ãžã§ãã远å ããAPI ããŒããã¹ã¯ããã倿°ãšããŠèšå®ããããšã§ãã
-
ãã¹ã¯ããã CI/CD 倿°ã远å ããŸã
- Settings â CI/CD â Variables ã«ç§»åããŸã
ANTHROPIC_API_KEYã远å ããŸãïŒãã¹ã¯ãå¿ èŠã«å¿ããŠä¿è·ïŒ
-
Claude ãžã§ãã
.gitlab-ci.ymlã«è¿œå ããŸã
stages:
- ai
claude:
stage: ai
image: node:24-alpine3.21
# ãžã§ããããªã¬ãŒããæ¹æ³ã«åãããŠã«ãŒã«ã調æŽããŸãã
# - æåå®è¡
# - ããŒãžãªã¯ãšã¹ãã€ãã³ã
# - '@claude' ãå«ãã³ã¡ã³ãæã® web/API ããªã¬ãŒ
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
variables:
GIT_STRATEGY: fetch
before_script:
- apk update
- apk add --no-cache git curl bash
- curl -fsSL https://claude.ai/install.sh | bash
script:
# ãªãã·ã§ã³: ã»ããã¢ãããæäŸããå Žå㯠GitLab MCP ãµãŒããŒãéå§ããŸã
- /bin/gitlab-mcp-server || true
# web/API ããªã¬ãŒã§ã³ã³ããã¹ããã€ããŒãã䜿çšããŠåŒã³åºãå Žå㯠AI_FLOW_* 倿°ã䜿çšããŸã
- echo "$AI_FLOW_INPUT for $AI_FLOW_CONTEXT on $AI_FLOW_EVENT"
- >
claude
-p "${AI_FLOW_INPUT:-'Review this MR and implement the requested changes'}"
--permission-mode acceptEdits
--allowedTools "Bash Read Edit Write mcp__gitlab"
--debug
ãžã§ããš ANTHROPIC_API_KEY 倿°ã远å ããåŸãCI/CD â Pipelines ãããžã§ããæåã§å®è¡ããŠãã¹ãããããMR ããããªã¬ãŒã㊠Claude ã倿Žãææ¡ããå¿
èŠã«å¿ã㊠MR ãéãããã«ããŸãã
Claude API ã®ä»£ããã« Amazon Bedrock ãŸã㯠Google Vertex AI ã§å®è¡ããã«ã¯ã以äžã® Using with Amazon Bedrock & Google Vertex AI ã»ã¯ã·ã§ã³ãåç §ããŠãèªèšŒãšç°å¢ã»ããã¢ããã確èªããŠãã ããã
æåã»ããã¢ããïŒæ¬çªç°å¢ã«æšå¥šïŒ
ããå¶åŸ¡ãããã»ããã¢ãããå¿ èŠãªå ŽåããŸãã¯ãšã³ã¿ãŒãã©ã€ãºãããã€ããŒãå¿ èŠãªå ŽåïŒ
-
ãããã€ããŒã¢ã¯ã»ã¹ãæ§æããŸãã
- Claude API:
ANTHROPIC_API_KEYãäœæããŠãã¹ã¯ããã CI/CD 倿°ãšããŠä¿åããŸã - Amazon Bedrock: Configure GitLab â AWS OIDC ãå®è¡ããBedrock çšã® IAM ããŒã«ãäœæããŸã
- Google Vertex AI: Configure Workload Identity Federation for GitLab â GCP ãå®è¡ããŸã
- Claude API:
-
GitLab API æäœçšã®ãããžã§ã¯ãèªèšŒæ å ±ã远å ããŸãã
- ããã©ã«ãã§
CI_JOB_TOKENã䜿çšããããapiã¹ã³ãŒããæã€ Project Access Token ãäœæããŸã - PAT ã䜿çšããå Žåã¯
GITLAB_ACCESS_TOKENïŒãã¹ã¯ïŒãšããŠä¿åããŸã
- ããã©ã«ãã§
-
Claude ãžã§ãã
.gitlab-ci.ymlã«è¿œå ããŸãïŒä»¥äžã®äŸãåç §ïŒ -
ïŒãªãã·ã§ã³ïŒã¡ã³ã·ã§ã³é§ååããªã¬ãŒãæå¹ã«ããŸãã
- ãããžã§ã¯ã webhook ããCommentsïŒnotesïŒãã«è¿œå ããŠãã€ãã³ããªã¹ããŒã«è¿œå ããŸãïŒäœ¿çšããå ŽåïŒ
- ã³ã¡ã³ãã«
@claudeãå«ãŸããŠããå Žåããªã¹ããŒããã€ãã©ã€ã³ããªã¬ãŒ API ãAI_FLOW_INPUTãAI_FLOW_CONTEXTãªã©ã®å€æ°ã§åŒã³åºãããã«ããŸã
䜿çšäŸ
issue ã MR ã«å€æãã
issue ã³ã¡ã³ãå ïŒ
@claude implement this feature based on the issue description
Claude 㯠issue ãšã³ãŒãããŒã¹ãåæãããã©ã³ãã«å€æŽãæžã蟌ã¿ãã¬ãã¥ãŒçšã« MR ãéããŸãã
å®è£ ãã«ããååŸãã
MR ãã£ã¹ã«ãã·ã§ã³å ïŒ
@claude suggest a concrete approach to cache the results of this API call
Claude ã¯å€æŽãææ¡ããé©åãªãã£ãã·ã³ã°ã䜿çšããŠã³ãŒãã远å ããMR ãæŽæ°ããŸãã
ãã°ãçŽ æ©ãä¿®æ£ãã
issue ãŸã㯠MR ã³ã¡ã³ãå ïŒ
@claude fix the TypeError in the user dashboard component
Claude ã¯ãã°ãç¹å®ããä¿®æ£ãå®è£ ãããã©ã³ããæŽæ°ãããæ°ãã MR ãéããŸãã
Amazon Bedrock & Google Vertex AI ã§ã®äœ¿çš
ãšã³ã¿ãŒãã©ã€ãºç°å¢ã§ã¯ãåãéçºè ãšã¯ã¹ããªãšã³ã¹ã§ Claude Code ãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã§å®è¡ã§ããŸãã
åææ¡ä»¶
Amazon Bedrock ã§ Claude Code ãã»ããã¢ããããåã«ã以äžãå¿ èŠã§ãã
- ç®çã® Claude ã¢ãã«ãžã®ã¢ã¯ã»ã¹æš©ãæã€ Amazon Bedrock ãåãã AWS ã¢ã«ãŠã³ã
- AWS IAM ã§ OIDC ID ãããã€ããŒãšããŠæ§æããã GitLab
- Bedrock æš©éãš GitLab ãããžã§ã¯ã/refs ã«å¶éãããä¿¡é Œããªã·ãŒãæã€ IAM ããŒã«
- ããŒã«ä»®å®çšã® GitLab CI/CD 倿°ïŒ
AWS_ROLE_TO_ASSUMEïŒããŒã« ARNïŒAWS_REGIONïŒBedrock ãªãŒãžã§ã³ïŒ
ã»ããã¢ããæé
GitLab CI ãžã§ãã OIDC çµç±ã§ IAM ããŒã«ãä»®å®ã§ããããã« AWS ãæ§æããŸãïŒéçããŒãªãïŒã
å¿ é ã»ããã¢ããïŒ
- Amazon Bedrock ãæå¹ã«ããã¿ãŒã²ãã Claude ã¢ãã«ãžã®ã¢ã¯ã»ã¹ããªã¯ãšã¹ãããŸã
- GitLab çšã® IAM OIDC ãããã€ããŒãäœæããŸãïŒãŸã ååšããªãå ŽåïŒ
- GitLab OIDC ãããã€ããŒã«ãã£ãŠä¿¡é Œããããããžã§ã¯ããšä¿è·ããã refs ã«å¶éããã IAM ããŒã«ãäœæããŸã
- Bedrock invoke API ã«å¯Ÿããæå°æš©éæš©éãä»äžããŸã
CI/CD 倿°ã«ä¿åããå¿ é å€ïŒ
AWS_ROLE_TO_ASSUMEAWS_REGION
Settings â CI/CD â Variables ã§å€æ°ã远å ããŸãã
# Amazon Bedrock ã®å ŽåïŒ
- AWS_ROLE_TO_ASSUME
- AWS_REGION
äžèšã® Amazon Bedrock ãžã§ãã®äŸã䜿çšããŠãGitLab ãžã§ãããŒã¯ã³ãå®è¡æã«äžæç㪠AWS èªèšŒæ å ±ãšäº€æããŸãã
åææ¡ä»¶
Google Vertex AI ã§ Claude Code ãã»ããã¢ããããåã«ã以äžãå¿ èŠã§ãã
- 以äžãåãã Google Cloud ãããžã§ã¯ãïŒ
- Vertex AI API ãæå¹
- GitLab OIDC ãä¿¡é Œããããã«æ§æããã Workload Identity Federation
- å¿ èŠãª Vertex AI ããŒã«ã®ã¿ãæã€å°çšãµãŒãã¹ã¢ã«ãŠã³ã
- WIF çšã® GitLab CI/CD 倿°ïŒ
GCP_WORKLOAD_IDENTITY_PROVIDERïŒå®å šãªãªãœãŒã¹åïŒGCP_SERVICE_ACCOUNTïŒãµãŒãã¹ã¢ã«ãŠã³ãã¡ãŒã«ïŒ
ã»ããã¢ããæé
GitLab CI ãžã§ãã Workload Identity Federation çµç±ã§ãµãŒãã¹ã¢ã«ãŠã³ããåœè£ ã§ããããã« Google Cloud ãæ§æããŸãã
å¿ é ã»ããã¢ããïŒ
- IAM Credentials APIãSTS APIãããã³ Vertex AI API ãæå¹ã«ããŸã
- GitLab OIDC çšã® Workload Identity Pool ãšãããã€ããŒãäœæããŸã
- Vertex AI ããŒã«ãæã€å°çšãµãŒãã¹ã¢ã«ãŠã³ããäœæããŸã
- WIF ããªã³ã·ãã«ã«ãµãŒãã¹ã¢ã«ãŠã³ããåœè£ ããæš©éãä»äžããŸã
CI/CD 倿°ã«ä¿åããå¿ é å€ïŒ
GCP_WORKLOAD_IDENTITY_PROVIDERGCP_SERVICE_ACCOUNT
Settings â CI/CD â Variables ã§å€æ°ã远å ããŸãã
# Google Vertex AI ã®å ŽåïŒ
- GCP_WORKLOAD_IDENTITY_PROVIDER
- GCP_SERVICE_ACCOUNT
- CLOUD_ML_REGIONïŒäŸïŒus-east5ïŒ
äžèšã® Google Vertex AI ãžã§ãã®äŸã䜿çšããŠãããŒãä¿åããã«èªèšŒããŸãã
æ§æäŸ
以äžã¯ããã€ãã©ã€ã³ã«é©å¿ãããããšãã§ãã䜿çšå¯èœãªã¹ããããã§ãã
åºæ¬ç㪠.gitlab-ci.ymlïŒClaude APIïŒ
stages:
- ai
claude:
stage: ai
image: node:24-alpine3.21
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
variables:
GIT_STRATEGY: fetch
before_script:
- apk update
- apk add --no-cache git curl bash
- curl -fsSL https://claude.ai/install.sh | bash
script:
- /bin/gitlab-mcp-server || true
- >
claude
-p "${AI_FLOW_INPUT:-'Summarize recent changes and suggest improvements'}"
--permission-mode acceptEdits
--allowedTools "Bash Read Edit Write mcp__gitlab"
--debug
# Claude Code 㯠CI/CD 倿°ãã ANTHROPIC_API_KEY ã䜿çšããŸã
Amazon Bedrock ãžã§ãã®äŸïŒOIDCïŒ
åææ¡ä»¶ïŒ
- Amazon Bedrock ãæå¹ã§ãéžæãã Claude ã¢ãã«ãžã®ã¢ã¯ã»ã¹æš©ããã
- GitLab OIDC ã AWS ã§æ§æãããGitLab ãããžã§ã¯ããš refs ãä¿¡é ŒããããŒã«ããã
- Bedrock æš©éãæã€ IAM ããŒã«ïŒæå°æš©éãæšå¥šïŒ
å¿ é CI/CD 倿°ïŒ
AWS_ROLE_TO_ASSUME: Bedrock ã¢ã¯ã»ã¹çšã® IAM ããŒã«ã® ARNAWS_REGION: Bedrock ãªãŒãžã§ã³ïŒäŸïŒus-west-2ïŒ
claude-bedrock:
stage: ai
image: node:24-alpine3.21
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
before_script:
- apk add --no-cache bash curl jq git python3 py3-pip
- pip install --no-cache-dir awscli
- curl -fsSL https://claude.ai/install.sh | bash
# GitLab OIDC ããŒã¯ã³ã AWS èªèšŒæ
å ±ãšäº€æããŸã
- export AWS_WEB_IDENTITY_TOKEN_FILE="${CI_JOB_JWT_FILE:-/tmp/oidc_token}"
- if [ -n "${CI_JOB_JWT_V2}" ]; then printf "%s" "$CI_JOB_JWT_V2" > "$AWS_WEB_IDENTITY_TOKEN_FILE"; fi
- >
aws sts assume-role-with-web-identity
--role-arn "$AWS_ROLE_TO_ASSUME"
--role-session-name "gitlab-claude-$(date +%s)"
--web-identity-token "file://$AWS_WEB_IDENTITY_TOKEN_FILE"
--duration-seconds 3600 > /tmp/aws_creds.json
- export AWS_ACCESS_KEY_ID="$(jq -r .Credentials.AccessKeyId /tmp/aws_creds.json)"
- export AWS_SECRET_ACCESS_KEY="$(jq -r .Credentials.SecretAccessKey /tmp/aws_creds.json)"
- export AWS_SESSION_TOKEN="$(jq -r .Credentials.SessionToken /tmp/aws_creds.json)"
script:
- /bin/gitlab-mcp-server || true
- >
claude
-p "${AI_FLOW_INPUT:-'Implement the requested changes and open an MR'}"
--permission-mode acceptEdits
--allowedTools "Bash Read Edit Write mcp__gitlab"
--debug
variables:
AWS_REGION: "us-west-2"
Bedrock ã®ã¢ãã« ID ã«ã¯ãªãŒãžã§ã³åºæã®ãã¬ãã£ãã¯ã¹ãå«ãŸããŸãïŒäŸïŒus.anthropic.claude-sonnet-4-6ïŒãã¯ãŒã¯ãããŒããµããŒãããŠããå Žåã¯ããžã§ãæ§æãŸãã¯ããã³ããçµç±ã§ç®çã®ã¢ãã«ãæž¡ããŸãã
Google Vertex AI ãžã§ãã®äŸïŒWorkload Identity FederationïŒ
åææ¡ä»¶ïŒ
- GCP ãããžã§ã¯ãã§ Vertex AI API ãæå¹
- GitLab OIDC ãä¿¡é Œããããã«æ§æããã Workload Identity Federation
- Vertex AI æš©éãæã€ãµãŒãã¹ã¢ã«ãŠã³ã
å¿ é CI/CD 倿°ïŒ
GCP_WORKLOAD_IDENTITY_PROVIDER: å®å šãªãããã€ããŒãªãœãŒã¹åGCP_SERVICE_ACCOUNT: ãµãŒãã¹ã¢ã«ãŠã³ãã¡ãŒã«CLOUD_ML_REGION: Vertex ãªãŒãžã§ã³ïŒäŸïŒus-east5ïŒ
claude-vertex:
stage: ai
image: gcr.io/google.com/cloudsdktool/google-cloud-cli:slim
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
before_script:
- apt-get update && apt-get install -y git && apt-get clean
- curl -fsSL https://claude.ai/install.sh | bash
# WIF çµç±ã§ Google Cloud ã«èªèšŒããŸãïŒããŠã³ããŒããããããŒãªãïŒ
- >
gcloud auth login --cred-file=<(cat <<EOF
{
"type": "external_account",
"audience": "${GCP_WORKLOAD_IDENTITY_PROVIDER}",
"subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
"service_account_impersonation_url": "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${GCP_SERVICE_ACCOUNT}:generateAccessToken",
"token_url": "https://sts.googleapis.com/v1/token"
}
EOF
)
- gcloud config set project "$(gcloud projects list --format='value(projectId)' --filter="name:${CI_PROJECT_NAMESPACE}" | head -n1)" || true
script:
- /bin/gitlab-mcp-server || true
- >
CLOUD_ML_REGION="${CLOUD_ML_REGION:-us-east5}"
claude
-p "${AI_FLOW_INPUT:-'Review and update code as requested'}"
--permission-mode acceptEdits
--allowedTools "Bash Read Edit Write mcp__gitlab"
--debug
variables:
CLOUD_ML_REGION: "us-east5"
Workload Identity Federation ã§ã¯ããµãŒãã¹ã¢ã«ãŠã³ãããŒãä¿åããå¿ èŠã¯ãããŸããããªããžããªåºæã®ä¿¡é Œæ¡ä»¶ãšæå°æš©éãµãŒãã¹ã¢ã«ãŠã³ãã䜿çšããŸãã
ãã¹ããã©ã¯ãã£ã¹
CLAUDE.md æ§æ
ãªããžããªã«ãŒãã« CLAUDE.md ãã¡ã€ã«ãäœæããŠãã³ãŒãã£ã³ã°æšæºãã¬ãã¥ãŒåºæºãããã³ãããžã§ã¯ãåºæã®ã«ãŒã«ãå®çŸ©ããŸããClaude ã¯å®è¡äžã«ãã®ãã¡ã€ã«ãèªã¿åãã倿Žãææ¡ããéã«ããªãã®èŠçŽã«åŸããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
API ããŒãã¯ã©ãŠãèªèšŒæ å ±ããªããžããªã«ã³ãããããªãã§ãã ãããåžžã« GitLab CI/CD 倿°ã䜿çšããŸãã
ANTHROPIC_API_KEYããã¹ã¯ããã倿°ãšããŠè¿œå ããŸãïŒå¿ èŠã«å¿ããŠä¿è·ïŒ- å¯èœãªéããããã€ããŒåºæã® OIDC ã䜿çšããŸãïŒé·æããŒãªãïŒ
- ãžã§ãæš©éãšãããã¯ãŒã¯åºåãå¶éããŸã
- ä»ã®è²¢ç®è ãšåãããã« Claude ã® MR ãã¬ãã¥ãŒããŸã
ããã©ãŒãã³ã¹ã®æé©å
CLAUDE.mdãçŠç¹ãçµã£ãç°¡æœãªãã®ã«ä¿ã¡ãŸã- issue/MR ã®èª¬æãæç¢ºã«ããŠãååŸ©ãæžãããŸã
- å®è¡äžå¯èœãªå®è¡ãé¿ããããã«ãé©åãªãžã§ãã¿ã€ã ã¢ãŠããæ§æããŸã
- ã©ã³ããŒã§ npm ãšããã±ãŒãžã®ã€ã³ã¹ããŒã«ããã£ãã·ã¥ããŸãïŒå¯èœãªå ŽåïŒ
CI ã³ã¹ã
GitLab CI/CD ã§ Claude Code ã䜿çšããå Žåãé¢é£ããã³ã¹ãã«æ³šæããŠãã ããã
-
GitLab Runner æéïŒ
- Claude 㯠GitLab ã©ã³ããŒã§å®è¡ãããã³ã³ãã¥ãŒãåãæ¶è²»ããŸã
- GitLab ãã©ã³ã®ã©ã³ããŒè«æ±ã®è©³çްã«ã€ããŠã¯ããã©ã³ãåç §ããŠãã ãã
-
API ã³ã¹ãïŒ
- å Claude ã€ã³ã¿ã©ã¯ã·ã§ã³ã¯ãããã³ãããšå¿çãµã€ãºã«åºã¥ããŠããŒã¯ã³ãæ¶è²»ããŸã
- ããŒã¯ã³äœ¿çšéã¯ã¿ã¹ã¯ã®è€éããšã³ãŒãããŒã¹ã®ãµã€ãºã«ãã£ãŠç°ãªããŸã
- 詳现ã«ã€ããŠã¯ Anthropic pricing ãåç §ããŠãã ãã
-
ã³ã¹ãæé©åã®ãã³ãïŒ
- ç¹å®ã®
@claudeã³ãã³ãã䜿çšããŠãäžèŠãªã¿ãŒã³ãæžãããŸã - é©åãª
max_turnsãšãžã§ãã¿ã€ã ã¢ãŠãå€ãèšå®ããŸã - 䞊åå®è¡ãå¶éããŠã䞊è¡å®è¡ãå¶åŸ¡ããŸã
- ç¹å®ã®
ã»ãã¥ãªãã£ãšã¬ããã³ã¹
- åãžã§ãã¯ããããã¯ãŒã¯ã¢ã¯ã»ã¹ãå¶éãããåé¢ãããã³ã³ããã§å®è¡ãããŸã
- Claude ã®å€æŽã¯ MR ãéããŠãããŒãããããã¬ãã¥ã¢ãŒã¯ãã¹ãŠã® diff ã確èªã§ããŸã
- ãã©ã³ãä¿è·ãšæ¿èªã«ãŒã«ã AI çæã³ãŒãã«é©çšãããŸã
- Claude Code ã¯ã¯ãŒã¯ã¹ããŒã¹ã¹ã³ãŒãã®æš©éã䜿çšããŠæžã蟌ã¿ãå¶éããŸã
- ç¬èªã®ãããã€ããŒèªèšŒæ å ±ãæã¡èŸŒããããã³ã¹ãã¯å¶åŸ¡äžã«çœ®ãããŸã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
Claude ã @claude ã³ãã³ãã«å¿çããªã
- ãã€ãã©ã€ã³ãããªã¬ãŒãããŠããããšã確èªããŸãïŒæåãMR ã€ãã³ãããŸãã¯ã¡ã¢ã€ãã³ããªã¹ããŒ/webhook çµç±ïŒ
- CI/CD 倿°ïŒ
ANTHROPIC_API_KEYãŸãã¯ã¯ã©ãŠããããã€ããŒèšå®ïŒãååšãããã¹ã¯è§£é€ãããŠããããšã確èªããŸã - ã³ã¡ã³ãã«
@claudeïŒ/claudeã§ã¯ãªãïŒãå«ãŸããŠãããã¡ã³ã·ã§ã³ããªã¬ãŒãæ§æãããŠããããšã確èªããŸã
ãžã§ããã³ã¡ã³ããæžã蟌ããªãããŸã㯠MR ãéããªã
CI_JOB_TOKENããããžã§ã¯ãã«å¯ŸããŠååãªæš©éãæã£ãŠããããšã確èªããããapiã¹ã³ãŒããæã€ Project Access Token ã䜿çšããŸãmcp__gitlabããŒã«ã--allowedToolsã§æå¹ã«ãªã£ãŠããããšã確èªããŸã- ãžã§ãã MR ã®ã³ã³ããã¹ãã§å®è¡ãããŠãããã
AI_FLOW_*倿°çµç±ã§ååãªã³ã³ããã¹ããæã£ãŠããããšã確èªããŸã
èªèšŒãšã©ãŒ
- Claude API ã®å Žå:
ANTHROPIC_API_KEYãæå¹ã§æéåãã§ãªãããšã確èªããŸã - Bedrock/Vertex ã®å Žå: OIDC/WIF æ§æãããŒã«åœè£ ãã·ãŒã¯ã¬ããåã確èªããŸãããªãŒãžã§ã³ãšã¢ãã«ã®å¯çšæ§ã確èªããŸã
é«åºŠãªæ§æ
äžè¬çãªãã©ã¡ãŒã¿ãšå€æ°
Claude Code ã¯ä»¥äžã®äžè¬çã«äœ¿çšãããå ¥åããµããŒãããŠããŸãã
prompt/prompt_file: ã€ã³ã©ã€ã³ïŒ-pïŒãŸãã¯ãã¡ã€ã«çµç±ã§æç€ºãæäŸããŸãmax_turns: ããã¯ã¢ã³ããã©ãŒã¹ååŸ©ã®æ°ãå¶éããŸãtimeout_minutes: ç·å®è¡æéãå¶éããŸãANTHROPIC_API_KEY: Claude API ã«å¿ é ïŒBedrock/Vertex ã§ã¯äœ¿çšãããŸããïŒ- ãããã€ããŒåºæã®ç°å¢:
AWS_REGIONãVertex ã®ãããžã§ã¯ã/ãªãŒãžã§ã³å€æ°
æ£ç¢ºãªãã©ã°ãšãã©ã¡ãŒã¿ã¯ @anthropic-ai/claude-code ã®ããŒãžã§ã³ã«ãã£ãŠç°ãªãå ŽåããããŸãããžã§ãã§ claude --help ãå®è¡ããŠããµããŒããããŠãããªãã·ã§ã³ã確èªããŠãã ããã
Claude ã®åäœãã«ã¹ã¿ãã€ãºãã
Claude ãã¬ã€ãããã«ã¯ã䞻㫠2 ã€ã®æ¹æ³ããããŸãã
- CLAUDE.md: ã³ãŒãã£ã³ã°æšæºãã»ãã¥ãªãã£èŠä»¶ãããã³ãããžã§ã¯ãèŠçŽãå®çŸ©ããŸããClaude ã¯å®è¡äžã«ãããèªã¿åããã«ãŒã«ã«åŸããŸãã
- ã«ã¹ã¿ã ããã³ãã: ãžã§ãã§
prompt/prompt_fileçµç±ããŠã¿ã¹ã¯åºæã®æç€ºãæž¡ããŸããç°ãªããžã§ãã«ç°ãªãããã³ããã䜿çšããŸãïŒäŸïŒã¬ãã¥ãŒãå®è£ ããªãã¡ã¯ã¿ãªã³ã°ïŒã