Thank you for your interest in contributing to github-secrets! This document provides guidelines and instructions for contributing.
- Be respectful and considerate of others
- Welcome newcomers and help them get started
- Focus on constructive feedback
- Respect different viewpoints and experiences
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/github-secrets.git - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test your changes:
cargo test && cargo build - Commit your changes:
git commit -m "Add feature: description" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
- Ensure you have Rust installed (1.91.1 or later)
- Clone the repository
- Run
cargo buildto fetch dependencies - Copy
.env.exampleto.envand add your GitHub token - Copy
config.example.tomltoconfig.tomland configure repositories
cargo test- Follow Rust standard formatting:
cargo fmt - Run clippy for linting:
cargo clippy - Ensure all tests pass before submitting
- Use imperative mood ("Add feature" not "Added feature")
- Keep the first line under 72 characters
- Provide context in the body if needed
- Reference issue numbers if applicable
Example:
Add support for environment variable secrets
This change allows users to reference environment variables
in the config file instead of hardcoding values.
Fixes #123
- Update Documentation: If you're adding features, update the README.md
- Add Tests: Include tests for new functionality
- Ensure Tests Pass: All existing and new tests should pass
- Update CHANGELOG: Document your changes (if applicable)
- Request Review: Assign reviewers and wait for feedback
- Code follows the project's style guidelines
- Self-review completed
- Comments added for complex logic
- Documentation updated
- Tests added/updated
- All tests pass
- No new warnings introduced
- Fix issues reported in the issue tracker
- Include tests that demonstrate the bug and verify the fix
- Reference the issue number in your PR
- Discuss major features in an issue first
- Ensure the feature aligns with the project's goals
- Include comprehensive tests
- Update documentation
- Improve clarity of existing documentation
- Add examples for complex features
- Fix typos and grammatical errors
- Add code comments where needed
- Add tests for uncovered code paths
- Improve test coverage
- Add integration tests for new features
- Be open to feedback and suggestions
- Respond to review comments promptly
- Make requested changes or explain why they might not be necessary
- Keep PRs focused and reasonably sized
- Be constructive and respectful
- Explain the reasoning behind suggestions
- Approve when satisfied, or request changes with clear guidance
- Test the changes locally when possible
Include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Rust version)
- Relevant error messages or logs
Include:
- Clear description of the feature
- Use cases and motivation
- Potential implementation approach (if you have ideas)
Feel free to:
- Open an issue for discussion
- Contact the maintainer: perfectsudh@gmail.com
- Check existing issues and discussions
Thank you for contributing to github-secrets!