Skip to content

Latest commit

 

History

History
225 lines (171 loc) · 5.42 KB

File metadata and controls

225 lines (171 loc) · 5.42 KB

🤝 Contributing to Gmail Unsubscribe Agent

Thank you for your interest in contributing to this project! This is a BETA project in active development, and we welcome contributions from the community.

🚀 Getting Started

Prerequisites

  • Python 3.8 or higher
  • Git
  • Gmail account with API access

Setup Development Environment

# Fork and clone the repository
git clone https://github.com/Dfcrespi/Gmail-Unsubscribe-Agent.git
cd Gmail-Unsubscribe-Agent

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run setup
python setup.py

🎯 How to Contribute

1. Report Issues

  • Use GitHub Issues to report bugs or suggest features
  • Include detailed information about your environment
  • Provide steps to reproduce bugs

2. Suggest Features

  • Open a GitHub Issue with the "enhancement" label
  • Describe the feature and its benefits
  • Consider the project's scope and goals

3. Submit Code Changes

  • Fork the repository
  • Create a feature branch: git checkout -b feature/amazing-feature
  • Make your changes
  • Test thoroughly
  • Commit with clear messages: git commit -m "Add amazing feature"
  • Push to your fork: git push origin feature/amazing-feature
  • Open a Pull Request

📋 Development Guidelines

Code Style

  • Follow PEP 8 Python style guide
  • Use meaningful variable and function names
  • Add docstrings to functions and classes
  • Keep functions small and focused

Testing

  • Test your changes thoroughly
  • Use the dry-run mode to verify functionality
  • Check logs for proper operation
  • Test with different email types

Documentation

  • Update README.md if needed
  • Add comments for complex logic
  • Update docstrings for new functions
  • Consider adding examples

🛡️ Security Considerations

Important Notes

  • Never commit credentials.json or token.json
  • Test with a test Gmail account when possible
  • Be careful with whitelist modifications
  • Ensure rate limiting is respected

Testing Safely

# Always use dry-run first
python main.py analisar --dias 1 --max-emails 5

# Test with small batches
python main.py executar --dias 1 --max-emails 2

🎯 Areas for Contribution

High Priority

  • Improve email detection algorithms
  • Add support for more email providers
  • Enhance error handling and recovery
  • Add unit tests
  • Improve documentation

Medium Priority

  • Add GUI interface
  • Implement scheduling features
  • Add email templates
  • Improve logging and monitoring
  • Add configuration validation

Low Priority

  • Add Docker support
  • Create installation packages
  • Add internationalization
  • Create video tutorials
  • Add performance metrics

📝 Pull Request Process

Before Submitting

  1. Test your changes thoroughly
  2. Update documentation if needed
  3. Check code style and formatting
  4. Ensure no sensitive data is included
  5. Test with different scenarios

PR Description Template

## Description
Brief description of changes

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Code refactoring

## Testing
- [ ] Tested with dry-run
- [ ] Tested with real emails
- [ ] Checked logs
- [ ] No sensitive data exposed

## Screenshots (if applicable)
Add screenshots to help explain your changes

## Additional Notes
Any additional information about the changes

🐛 Bug Reports

Bug Report Template

**Describe the bug**
A clear description of what the bug is

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. See error

**Expected behavior**
What you expected to happen

**Screenshots**
If applicable, add screenshots

**Environment:**
- OS: [e.g. Ubuntu 20.04]
- Python version: [e.g. 3.9.7]
- Gmail API version: [e.g. v1]

**Additional context**
Add any other context about the problem

💡 Feature Requests

Feature Request Template

**Is your feature request related to a problem?**
A clear description of what the problem is

**Describe the solution you'd like**
A clear description of what you want to happen

**Describe alternatives you've considered**
A clear description of any alternative solutions

**Additional context**
Add any other context or screenshots about the feature request

📞 Getting Help

  • GitHub Issues: For bugs and feature requests
  • GitHub Discussions: For questions and general discussion
  • Email: [Your email] for private matters

📄 Code of Conduct

Our Pledge

We are committed to providing a welcoming and inspiring community for all. Please be respectful and constructive in all interactions.

Expected Behavior

  • Use welcoming and inclusive language
  • Be respectful of differing viewpoints
  • Accept constructive criticism gracefully
  • Focus on what is best for the community
  • Show empathy towards other community members

Unacceptable Behavior

  • Harassment, trolling, or discrimination
  • Personal attacks or political discussions
  • Spam or off-topic discussions
  • Sharing private information without permission

🏆 Recognition

Contributors will be recognized in:

  • README.md contributors section
  • Release notes
  • GitHub contributors page

📜 License

By contributing, you agree that your contributions will be licensed under the MIT License.


Thank you for contributing to Gmail Unsubscribe Agent! 🎉