diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f26f572..232be36 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,10 +3,10 @@ name: CI on: push: branches: - - "main" + - 'main' pull_request: branches: - - "main" + - 'main' jobs: build: @@ -17,12 +17,12 @@ jobs: - name: Set up Go uses: actions/setup-go@v5.5.0 with: - go-version: "1.24" + go-version: '1.24' cache: true - name: Install Task run: | - curl -s https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin v3.43.3 + curl -s https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin v3.44.1 - name: Install golangci-lint run: | diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml new file mode 100644 index 0000000..da186c6 --- /dev/null +++ b/.github/workflows/claude-code-review.yml @@ -0,0 +1,56 @@ +name: Claude Code Review + +on: + issue_comment: + types: + - created + +jobs: + claude-review: + if: | + github.event_name == 'issue_comment' && + github.event.issue.pull_request && + contains(github.event.comment.body, '@claude /review') + runs-on: ubuntu-24.04 + permissions: + contents: write + pull-requests: write + issues: write + id-token: write + actions: read + + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + with: + fetch-depth: 1 + + - name: Run Claude Code Review + id: claude-review + uses: anthropics/claude-code-action@beta + with: + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + additional_permissions: | + actions: read + use_commit_signing: true + base_branch: main + branch_prefix: 'claude/' + mcp_config: | + { + "mcpServers": { + "context7": { + "command": "npx", + "args": ["-y", "@upstash/context7-mcp@latest"], + "env": {} + } + } + } + direct_prompt: | + Please review this pull request and provide feedback on: + - Code quality and best practices + - Potential bugs or issues + - Performance considerations + - Security concerns + - Test coverage + + Be constructive and helpful in your feedback. diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml new file mode 100644 index 0000000..ab6881d --- /dev/null +++ b/.github/workflows/claude.yml @@ -0,0 +1,82 @@ +name: Claude Code + +on: + issue_comment: + types: + - created + pull_request_review_comment: + types: + - created + issues: + types: + - opened + - assigned + pull_request_review: + types: + - submitted + +jobs: + claude: + if: | + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude') && !contains(github.event.comment.body, '@claude /review')) || + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude') && !contains(github.event.comment.body, '@claude /review')) || + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude') && !contains(github.event.review.body, '@claude /review')) || + (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) + runs-on: ubuntu-24.04 + permissions: + contents: write + pull-requests: write + issues: write + id-token: write + actions: read + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + with: + fetch-depth: 1 + + - name: Install golangci-lint + run: | + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /usr/local/bin v2.1.6 + + - name: Install task + run: | + curl -s https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin v3.43.3 + + - name: Run Claude Code + id: claude + uses: anthropics/claude-code-action@beta + with: + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + additional_permissions: | + actions: read + use_commit_signing: true + base_branch: main + branch_prefix: 'claude/' + allowed_tools: | + Bash(task:*) + Bash(go:*) + Bash(gh:*) + Bash(git:*) + custom_instructions: | + IMPORTANT: You must NEVER push directly to the main branch. Always: + 1. Create a new feature branch (claude/feature-name) + 2. Make your changes on the feature branch + 3. Open a pull request to main + 4. Wait for review and approval before merging + + COMMIT MESSAGE FORMAT: Always use conventional commits with capital letters. + Follow the format: "type(scope): Description" where the description starts with a capital letter. + Examples: "feat(a2a): Add retry mechanism for agent connections", "fix(auth): Resolve token validation issue" + + Follow the development workflow specified in the coding instructions. + mcp_config: | + { + "mcpServers": { + "context7": { + "command": "npx", + "args": ["-y", "@upstash/context7-mcp@latest"], + "env": {} + } + } + }