GitHub Organization Workflow
This document defines the standard operating procedures for managing repositories, permissions, and external collaborations within the Fly4Future GitHub organization.
The Team-Based Access Model
To ensure security and scalability, we have transitioned from individual permissions to a Team-based workflow.
Key Principles
- Inheritance over Individualism: Access is granted to Teams, not users.
- Controlled Creation: Repository lifecycle is managed by Team Leaders.
- Secure Collaboration: External partners are segmented into specific Project Teams.
Access Rules & Workflow
1. Repository Creation
To maintain organization standards and ensure all collaborators have the right level of access, repository creation is now a coordinated process.
- Action: If you require a new repository (Public or Private), please coordinate with your Team Leader.
- Naming: Your Team Leader will help ensure the new project follows our Internal Naming Conventions.
2. Visibility & Permissions
- Public Repos: Visible to all members and the public.
- Private Repos: Only visible to members assigned to the specific Team linked to that repository.
- Inheritance: When you are added to a Team, you instantly gain access to all repositories associated with that group.
External Collaborators (Research Partners)
Our Team-based structure simplifies how we work with external partners while maintaining security:
- Targeted Access: Partners are invited to the GitHub Org and placed into a specific Project Team.
- Restricted View: They can see all public work but are restricted only to the specific private repos assigned to their Project Team.
- Simple Offboarding: Once a cooperation ends, removing the partner from the Team instantly revokes all their private access, keeping our maintenance clean.
Troubleshooting & Requests
| Issue | Resolution |
|---|---|
| Lost access to a repo | Contact your Team Leader to verify your Team membership. |
| Need a new repository | Coordinate with your Team Leader for creation and setup. |
| Partner onboarding | Submit a request to the Team Leader with the partner's GitHub username. |