github-bot-sdk 0.1.0

A comprehensive Rust SDK for GitHub App integration with authentication, webhooks, and API client
Documentation
# Contributing to github-bot-sdk


Thank you for your interest in contributing to github-bot-sdk!

## Development Setup


### Prerequisites


- **Rust**: 1.70 or later
- **Cargo**: Latest stable version
- **Git**: For version control

### Building the Project


```bash
# Clone the repository

git clone https://github.com/pvandervelde/github-bot-sdk.git
cd github-bot-sdk

# Build the crate

cargo build

# Run tests

cargo test

# Run linters

cargo clippy -- -D warnings
cargo fmt -- --check
```

## Commit Message Conventions


This project uses [Conventional Commits](https://www.conventionalcommits.org/) for automated changelog generation and semantic versioning.

### Commit Message Format


```
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
```

### Commit Types


| Type | Description | Version Bump |
|------|-------------|--------------|
| `feat` | New feature | **Minor** |
| `fix` | Bug fix | **Patch** |
| `perf` | Performance improvement | Patch |
| `refactor` | Code refactoring | Patch |
| `docs` | Documentation changes | None |
| `test` | Test additions/changes | None |
| `chore` | Build/tooling changes | None |
| `ci` | CI/CD changes | None |
| `style` | Code style changes | None |

### Breaking Changes


To trigger a **major version bump**, add `BREAKING CHANGE:` in the commit footer or use `!` after the type:

```bash
feat(auth)!: change authentication interface

BREAKING CHANGE: Authentication now requires async/await pattern
```

## Code Quality


All code must:
- Pass `cargo test`
- Pass `cargo clippy -- -D warnings`
- Be formatted with `cargo fmt`
- Include rustdoc comments for public APIs
- Include tests for new functionality

## Pull Request Process


1. Create a feature branch from `main`
2. Make your changes with clear commit messages
3. Ensure all tests pass and code is formatted
4. Update documentation as needed
5. Submit a pull request with description of changes

## License


By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.