Skip to content

Commit 86f2cc6

Browse files
rafaelctzRafael Teodoro
andauthored
Docs: Update README and CONTRIBUTING for open-source project (#1)
Changes: - README.md: - Add CI/CD, License, and PRs Welcome badges - Add detailed Contributing section with branch protection notes - Add CI/CD Pipeline section explaining GitHub Actions - Add Community & Support section with links - Improve project description and formatting - CONTRIBUTING.md: - Update workflow to reflect branch protection (no direct pushes) - Add detailed 11-step contribution process - Add conventional commit guidelines - Update project structure to show all files - Expand Code Review Process with automated checks - Add Code of Conduct section - Add enforcement policies and reporting guidelines - Update questions section with multiple contact methods These changes reflect the project's transformation to a professional open-source project with CI/CD, branch protection, and community guidelines. Co-authored-by: Rafael Teodoro <rafael@example.com>
1 parent f1dd97e commit 86f2cc6

File tree

2 files changed

+192
-29
lines changed

2 files changed

+192
-29
lines changed

CONTRIBUTING.md

Lines changed: 143 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,37 +27,81 @@ We welcome feature suggestions! Please create an issue with:
2727

2828
### Code Contributions
2929

30+
**Important:** The `main` branch is protected. Direct pushes are not allowed. All changes must go through Pull Requests with review approval.
31+
32+
#### Step-by-Step Process:
33+
3034
1. **Fork the repository**
35+
- Click "Fork" at the top of the repository page
36+
- Clone your fork: `git clone https://github.com/YOUR_USERNAME/GWorkspace-toolbox.git`
3137

32-
2. **Create a feature branch**
38+
2. **Set up development environment**
39+
```bash
40+
# Option 1: Local development
41+
cd backend && pip install -r requirements.txt
42+
cd ../frontend && npm install
43+
44+
# Option 2: Docker development
45+
docker-compose -f docker-compose.dev.yml up
46+
```
47+
48+
3. **Create a feature branch**
3349
```bash
3450
git checkout -b feature/your-feature-name
3551
```
3652

37-
3. **Make your changes**
53+
4. **Make your changes**
3854
- Follow the existing code style
3955
- Add comments for complex logic
4056
- Update documentation as needed
57+
- Write meaningful commit messages
4158

42-
4. **Test your changes**
59+
5. **Test your changes**
4360
- Test locally before submitting
4461
- Ensure both backend and frontend work correctly
4562
- Test in both development and Docker environments
63+
- Verify CI/CD will pass (Docker builds)
4664

47-
5. **Commit your changes**
65+
6. **Commit your changes**
4866
```bash
67+
git add .
4968
git commit -m "Add: Brief description of your changes"
5069
```
5170

52-
6. **Push to your fork**
71+
Use conventional commit prefixes:
72+
- `Add:` for new features
73+
- `Fix:` for bug fixes
74+
- `Update:` for improvements to existing features
75+
- `Docs:` for documentation changes
76+
- `Refactor:` for code restructuring
77+
78+
7. **Push to your fork**
5379
```bash
5480
git push origin feature/your-feature-name
5581
```
5682

57-
7. **Create a Pull Request**
58-
- Provide a clear description of the changes
59-
- Reference any related issues
60-
- Include screenshots for UI changes
83+
8. **Create a Pull Request**
84+
- Go to the [repository](https://github.com/rafaelctz/GWorkspace-toolbox)
85+
- Click "Compare & pull request"
86+
- Fill out the PR template with:
87+
- Clear description of changes
88+
- Reference to related issues (`Fixes #123`)
89+
- Screenshots for UI changes
90+
- Test results/evidence
91+
92+
9. **Wait for CI/CD checks**
93+
- GitHub Actions will automatically build Docker images
94+
- Ensure all checks pass (green ✅)
95+
- Fix any issues if checks fail (red ❌)
96+
97+
10. **Code Review**
98+
- A maintainer will review your PR
99+
- Address any feedback or requested changes
100+
- Once approved, your PR will be merged!
101+
102+
11. **Celebrate!** 🎉
103+
- Your contribution is now part of the project
104+
- It will be automatically deployed via Watchtower
61105

62106
## Development Guidelines
63107

@@ -93,18 +137,27 @@ When adding new text:
93137
## Project Structure
94138

95139
```
96-
DEA-toolbox/
97-
├── backend/ # FastAPI backend
98-
│ ├── main.py # Main application
99-
│ ├── services/ # Business logic
100-
│ └── requirements.txt # Python dependencies
101-
├── frontend/ # React frontend
140+
GWorkspace-toolbox/
141+
├── .github/
142+
│ └── workflows/
143+
│ └── docker-publish.yml # CI/CD pipeline
144+
├── backend/ # FastAPI backend
145+
│ ├── main.py # Main application
146+
│ ├── services/ # Business logic
147+
│ ├── requirements.txt # Python dependencies
148+
│ └── Dockerfile # Backend container
149+
├── frontend/ # React frontend
102150
│ ├── src/
103-
│ │ ├── components/ # React components
104-
│ │ ├── locales/ # i18n translations
105-
│ │ └── App.jsx # Main app component
106-
│ └── package.json # Node dependencies
107-
└── docker-compose.yml # Docker configuration
151+
│ │ ├── components/ # React components
152+
│ │ ├── locales/ # i18n translations (en, es, pt)
153+
│ │ └── App.jsx # Main app component
154+
│ ├── package.json # Node dependencies
155+
│ └── Dockerfile # Frontend container
156+
├── docker-compose.yml # Production (pre-built images + Watchtower)
157+
├── docker-compose.dev.yml # Development (build from source)
158+
├── README.md # Main documentation
159+
├── CONTRIBUTING.md # This file
160+
└── LICENSE # MIT License
108161
```
109162

110163
## Adding New Tools
@@ -128,11 +181,44 @@ When adding a new tool to the toolbox:
128181

129182
## Code Review Process
130183

131-
All submissions require review. We'll:
132-
- Review code quality and style
133-
- Test functionality
134-
- Check documentation
135-
- Provide constructive feedback
184+
All submissions require review and approval before merging. This is enforced by branch protection rules.
185+
186+
### What We Review:
187+
188+
-**Code Quality**: Clean, readable, well-structured code
189+
-**Style Compliance**: Follows project conventions (PEP 8, React best practices)
190+
-**Functionality**: Works as intended, no regressions
191+
-**Tests**: Changes are tested and don't break existing features
192+
-**Documentation**: README, comments, and docstrings updated
193+
-**Security**: No credential leaks, proper input validation
194+
-**CI/CD**: GitHub Actions checks pass (Docker builds)
195+
196+
### Review Timeline:
197+
198+
- Most PRs reviewed within **1-3 days**
199+
- Simple fixes: often same day
200+
- Large features: may take longer
201+
202+
### Automated Checks:
203+
204+
All PRs trigger automatic checks:
205+
1. **Docker Backend Build**: Ensures backend Dockerfile builds successfully
206+
2. **Docker Frontend Build**: Ensures frontend Dockerfile builds successfully
207+
208+
If checks fail:
209+
- ❌ PR cannot be merged
210+
- Review the GitHub Actions logs
211+
- Fix issues and push updates
212+
- Checks will run again automatically
213+
214+
### Getting Your PR Merged:
215+
216+
1. All CI/CD checks must pass ✅
217+
2. At least 1 approval from a maintainer ✅
218+
3. All review comments addressed ✅
219+
4. No merge conflicts ✅
220+
221+
Once approved, a maintainer will merge using **squash merge** to keep history clean.
136222

137223
## Future Tools Roadmap
138224

@@ -144,9 +230,40 @@ Ideas for future tools (contributions welcome!):
144230
- **Group Membership Analyzer**: Analyze group hierarchies
145231
- **Multi-provider Support**: Azure AD, Okta, OneLogin, etc.
146232

233+
## Code of Conduct
234+
235+
### Our Standards
236+
237+
We are committed to providing a welcoming and inclusive environment for everyone. We expect:
238+
239+
-**Respectful communication**: Be kind and professional
240+
-**Constructive feedback**: Focus on code, not people
241+
-**Collaboration**: Work together to solve problems
242+
-**Patience**: Remember that everyone was a beginner once
243+
-**Inclusivity**: Welcome contributors of all skill levels
244+
245+
### Unacceptable Behavior
246+
247+
- ❌ Harassment, discrimination, or offensive comments
248+
- ❌ Personal attacks or trolling
249+
- ❌ Spam or off-topic discussions
250+
- ❌ Sharing others' private information
251+
252+
### Enforcement
253+
254+
Violations may result in:
255+
1. Warning
256+
2. Temporary ban from the project
257+
3. Permanent ban for serious or repeated violations
258+
259+
Report issues to the project maintainer via GitHub issues or email.
260+
147261
## Questions?
148262

149-
Feel free to create an issue for questions or discussions about contributing.
263+
Feel free to:
264+
- Create an [issue](https://github.com/rafaelctz/GWorkspace-toolbox/issues) for questions
265+
- Start a [discussion](https://github.com/rafaelctz/GWorkspace-toolbox/discussions)
266+
- Ask in your Pull Request
150267

151268
## License
152269

README.md

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# GWorkspace Toolbox
22

3-
A comprehensive toolkit for Google Workspace administrators with tools for user management, group synchronization, and attribute injection.
3+
[![Docker Build](https://github.com/rafaelctz/GWorkspace-toolbox/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/rafaelctz/GWorkspace-toolbox/actions/workflows/docker-publish.yml)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5+
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
6+
7+
A comprehensive, open-source toolkit for Google Workspace administrators with tools for user management, group synchronization, and attribute injection.
8+
9+
**🚀 Features automatic updates • 🌍 Multi-language support • 🐳 Docker-ready • 🔒 Branch-protected**
410

511
## Features
612

@@ -108,8 +114,48 @@ Once running, access the interactive API documentation at:
108114

109115
## Contributing
110116

111-
This is an open-source project. Contributions are welcome!
117+
We welcome contributions from the community! 🎉
118+
119+
### 🐛 Found a Bug?
120+
[Open an issue](https://github.com/rafaelctz/GWorkspace-toolbox/issues/new) with details about the problem.
121+
122+
### 💡 Have an idea?
123+
[Submit a feature request](https://github.com/rafaelctz/GWorkspace-toolbox/issues/new) or start a discussion.
124+
125+
### 🔨 Want to contribute code?
126+
1. Fork the repository
127+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
128+
3. Make your changes
129+
4. Push to your branch (`git push origin feature/amazing-feature`)
130+
5. [Open a Pull Request](https://github.com/rafaelctz/GWorkspace-toolbox/compare)
131+
132+
**Note:** The `main` branch is protected and requires:
133+
- ✅ Pull Request review and approval
134+
- ✅ CI/CD checks to pass (Docker builds)
135+
- ✅ No direct pushes allowed
136+
137+
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
138+
139+
## CI/CD Pipeline
140+
141+
This project uses GitHub Actions for continuous integration:
142+
- ✅ Automatic Docker image builds on every push to `main`
143+
- ✅ Images published to GitHub Container Registry
144+
- ✅ Watchtower automatically updates running instances
145+
- ✅ Branch protection ensures code quality
146+
147+
View builds: [GitHub Actions](https://github.com/rafaelctz/GWorkspace-toolbox/actions)
148+
149+
## Community & Support
150+
151+
- 📫 [Report Issues](https://github.com/rafaelctz/GWorkspace-toolbox/issues)
152+
- 💬 [Discussions](https://github.com/rafaelctz/GWorkspace-toolbox/discussions)
153+
- 📖 [Documentation](https://github.com/rafaelctz/GWorkspace-toolbox/wiki)
112154

113155
## License
114156

115-
MIT License
157+
MIT License - see [LICENSE](LICENSE) for details
158+
159+
---
160+
161+
**Made with ❤️ for Google Workspace administrators**

0 commit comments

Comments
 (0)