Initial commit
This commit is contained in:
136
CONTRIBUTING.md
Normal file
136
CONTRIBUTING.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# Contributing to Claude Code Action
|
||||
|
||||
Thank you for your interest in contributing to Claude Code Action! This document provides guidelines and instructions for contributing to the project.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Bun](https://bun.sh/) runtime
|
||||
- [Docker](https://www.docker.com/) (for running GitHub Actions locally)
|
||||
- [act](https://github.com/nektos/act) (installed automatically by our test script)
|
||||
- An Anthropic API key (for testing)
|
||||
|
||||
### Setup
|
||||
|
||||
1. Fork the repository on GitHub and clone your fork:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-username/claude-code-action.git
|
||||
cd claude-code-action
|
||||
```
|
||||
|
||||
2. Install dependencies:
|
||||
|
||||
```bash
|
||||
bun install
|
||||
```
|
||||
|
||||
3. Set up your Anthropic API key:
|
||||
```bash
|
||||
export ANTHROPIC_API_KEY="your-api-key-here"
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
### Available Scripts
|
||||
|
||||
- `bun test` - Run all tests
|
||||
- `bun run typecheck` - Type check the code
|
||||
- `bun run format` - Format code with Prettier
|
||||
- `bun run format:check` - Check code formatting
|
||||
|
||||
## Testing
|
||||
|
||||
### Running Tests Locally
|
||||
|
||||
1. **Unit Tests**:
|
||||
|
||||
```bash
|
||||
bun test
|
||||
```
|
||||
|
||||
2. **Integration Tests** (using GitHub Actions locally):
|
||||
|
||||
```bash
|
||||
./test-local.sh
|
||||
```
|
||||
|
||||
This script:
|
||||
|
||||
- Installs `act` if not present (requires Homebrew on macOS)
|
||||
- Runs the GitHub Action workflow locally using Docker
|
||||
- Requires your `ANTHROPIC_API_KEY` to be set
|
||||
|
||||
On Apple Silicon Macs, the script automatically adds the `--container-architecture linux/amd64` flag to avoid compatibility issues.
|
||||
|
||||
## Pull Request Process
|
||||
|
||||
1. Create a new branch from `main`:
|
||||
|
||||
```bash
|
||||
git checkout -b feature/your-feature-name
|
||||
```
|
||||
|
||||
2. Make your changes and commit them:
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat: add new feature"
|
||||
```
|
||||
|
||||
3. Run tests and formatting:
|
||||
|
||||
```bash
|
||||
bun test
|
||||
bun run typecheck
|
||||
bun run format:check
|
||||
```
|
||||
|
||||
4. Push your branch and create a Pull Request:
|
||||
|
||||
```bash
|
||||
git push origin feature/your-feature-name
|
||||
```
|
||||
|
||||
5. Ensure all CI checks pass
|
||||
|
||||
6. Request review from maintainers
|
||||
|
||||
## Action Development
|
||||
|
||||
### Testing Your Changes
|
||||
|
||||
When modifying the action:
|
||||
|
||||
1. Test locally with the test script:
|
||||
|
||||
```bash
|
||||
./test-local.sh
|
||||
```
|
||||
|
||||
2. Test in a real GitHub Actions workflow by:
|
||||
- Creating a test repository
|
||||
- Using your branch as the action source:
|
||||
```yaml
|
||||
uses: your-username/claude-code-action@your-branch
|
||||
```
|
||||
|
||||
### Debugging
|
||||
|
||||
- Use `console.log` for debugging in development
|
||||
- Check GitHub Actions logs for runtime issues
|
||||
- Use `act` with `-v` flag for verbose output:
|
||||
```bash
|
||||
act push -v --secret ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY"
|
||||
```
|
||||
|
||||
## Common Issues
|
||||
|
||||
### Docker Issues
|
||||
|
||||
Make sure Docker is running before using `act`. You can check with:
|
||||
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
Reference in New Issue
Block a user