Thank you for your interest in contributing to Slack GitHub Threads! This document provides guidelines and information for contributors.
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/slack-github-threads.git cd slack-github-threads - Install dependencies:
bundle install
- Set up your environment variables by copying
.env.exampleto.envand filling in your tokens
-
Start the server:
bundle exec rake serverOr directly:
bundle exec ruby app.rb -
Use ngrok to expose your local server for Slack webhook testing:
ngrok http 3000
# Run all CI checks locally (recommended before submitting PR)
bundle exec rake ci
# Individual commands
bundle exec rake rubocop # Run RuboCop linter
bundle exec rake test # Run all tests
bundle exec rake syntax # Check syntax only
# Run specific test groups
bundle exec rake test_services
bundle exec rake test_app💡 Pro tip: Always run bundle exec rake ci before submitting a PR to ensure your changes pass the same checks as our CI system!
- Follow Ruby community conventions
- Use meaningful variable and method names
- Add comments for complex logic
- Keep methods small and focused
- Write tests for new functionality
- All new features should include tests
- Tests use Minitest with WebMock for API stubbing
- Maintain test coverage for critical paths
- Test both success and error scenarios
-
Create a feature branch from
main:git checkout -b feature/your-feature-name
-
Make your changes with descriptive commit messages:
git commit -m "Add feature: description of what you added" -
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request with:
- Clear description of changes
- Why the change is needed
- Any breaking changes
- Screenshots/examples if applicable
- All submissions require review before merging
- We may ask for changes or improvements
- Be patient and responsive to feedback
- Discussions should be constructive and respectful
- Dependabot automatically creates PRs for dependency updates
- Patch updates and security fixes are auto-merged after CI passes
- Major/minor updates require manual review
- All PRs must pass CI checks (tests, linting, security)
- GitHub Actions runs tests on multiple Ruby versions
- Security scanning is performed on all changes
When reporting bugs or requesting features:
- Check if the issue already exists
- Use the issue template (if available)
- Provide clear steps to reproduce (for bugs)
- Include relevant error messages and logs
- Describe your environment (Ruby version, OS, etc.)
- Never commit tokens, secrets, or credentials
- Report security vulnerabilities privately
- Use environment variables for sensitive data
Feel free to open an issue for questions about contributing or the codebase.
Thank you for contributing! 🎉