mirror of
https://github.com/wahyd4/passkey-auth.git
synced 2026-08-09 04:15:55 +10:00
- Complete WebAuthn/FIDO2 authentication implementation - SQLite database with user and credential management - Email-based user identification with allowlist support - Admin approval workflow for new users - Session management with secure cookies - Docker containerization with Debian base for SQLite compatibility - Kubernetes deployment manifests with nginx ingress support - Web-based admin interface for user management - Comprehensive documentation and deployment guides - Standard open source project structure with CI/CD
130 lines
3.0 KiB
Markdown
130 lines
3.0 KiB
Markdown
# Contributing to Passkey Auth
|
|
|
|
Thank you for your interest in contributing to Passkey Auth! This document provides guidelines for contributing to the project.
|
|
|
|
## 🚀 Getting Started
|
|
|
|
1. Fork the repository
|
|
2. Clone your fork: `git clone https://github.com/yourusername/passkey-auth.git`
|
|
3. Create a feature branch: `git checkout -b feature/your-feature-name`
|
|
4. Make your changes
|
|
5. Test your changes
|
|
6. Commit and push to your fork
|
|
7. Create a Pull Request
|
|
|
|
## 🛠️ Development Setup
|
|
|
|
### Prerequisites
|
|
- Go 1.21 or later
|
|
- Docker (for containerized testing)
|
|
- Make (optional, for build scripts)
|
|
|
|
### Local Development
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/yourusername/passkey-auth.git
|
|
cd passkey-auth
|
|
|
|
# Install dependencies
|
|
go mod download
|
|
|
|
# Run the application
|
|
go run .
|
|
|
|
# Run tests
|
|
go test ./...
|
|
```
|
|
|
|
### Docker Development
|
|
```bash
|
|
# Build Docker image
|
|
./scripts/build.sh
|
|
|
|
# Run with Docker
|
|
docker run -p 8080:8080 passkey-auth
|
|
```
|
|
|
|
## 📋 Guidelines
|
|
|
|
### Code Style
|
|
- Follow standard Go formatting (`gofmt`)
|
|
- Use meaningful variable and function names
|
|
- Add comments for exported functions and complex logic
|
|
- Keep functions focused and small
|
|
|
|
### Commit Messages
|
|
- Use clear, descriptive commit messages
|
|
- Start with a verb in present tense ("Add", "Fix", "Update")
|
|
- Include context for why the change was made
|
|
|
|
Example:
|
|
```
|
|
Add email allowlist support for user registration
|
|
|
|
- Allows administrators to restrict registration to specific email domains
|
|
- Configurable via config.yaml or environment variables
|
|
- Backwards compatible (empty list allows all emails)
|
|
```
|
|
|
|
### Testing
|
|
- Write tests for new features
|
|
- Ensure existing tests pass
|
|
- Test both success and error cases
|
|
- Include integration tests for new endpoints
|
|
|
|
### Documentation
|
|
- Update README.md for new features
|
|
- Add inline code comments
|
|
- Update API documentation if endpoints change
|
|
- Include examples in documentation
|
|
|
|
## 🐛 Bug Reports
|
|
|
|
When reporting bugs, please include:
|
|
- Go version
|
|
- Operating system
|
|
- Steps to reproduce
|
|
- Expected vs actual behavior
|
|
- Relevant logs or error messages
|
|
|
|
## 💡 Feature Requests
|
|
|
|
When requesting features:
|
|
- Describe the use case
|
|
- Explain why it would be valuable
|
|
- Consider backwards compatibility
|
|
- Provide examples if possible
|
|
|
|
## 🔐 Security
|
|
|
|
For security vulnerabilities:
|
|
- Do not open public issues
|
|
- Contact maintainers directly
|
|
- Provide detailed reproduction steps
|
|
- Allow time for fixes before disclosure
|
|
|
|
## 📜 Code of Conduct
|
|
|
|
- Be respectful and inclusive
|
|
- Welcome newcomers and help them learn
|
|
- Focus on constructive feedback
|
|
- Respect different viewpoints and experiences
|
|
|
|
## 🏷️ Release Process
|
|
|
|
1. Update version in relevant files
|
|
2. Update CHANGELOG.md
|
|
3. Create release PR
|
|
4. Tag release after merge
|
|
5. Build and publish Docker images
|
|
6. Create GitHub release with notes
|
|
|
|
## 📞 Getting Help
|
|
|
|
- Check existing issues and documentation first
|
|
- Open an issue for bugs or feature requests
|
|
- Join discussions in existing issues
|
|
- Ask questions in issues (we're happy to help!)
|
|
|
|
Thank you for contributing! 🎉
|