Repository Structure & Permissions
Repository Types
RMC maintains multiple repositories for different purposes:
- Web applications (React frontend, ASP.NET backend)
- Desktop tools (WPF applications)
- Libraries/packages (C# models, shared utilities)
- Data science tools (Python, R scripts)
- Documentation (Docusaurus sites)
USACE-RMC GitHub Enterprise Structure
Organization Overview:
- Total Members: 31 organization members
- Teams: 4 teams for organizing group access
- Repositories: 38 repositories
- Outside Collaborators: 10 external contributors
Access Model: RMC uses a centralized administrative model where repository administration is handled by Organization Owners, with Write access delegated to developers as needed.
Roles and Permissions
| GitHub Role | Who Has It | Permissions | Responsibilities |
|---|---|---|---|
| Organization Owner | 6 owners: Adam Gohs, Gerald Lebel, Haden Smith, Shannon Ewing-Sudds, Woody Fields | Full admin access to all repositories, organization settings, approve/merge PRs | Review and approve PRs, merge to main, manage repository settings, organization administration |
| Member (Write) | Developers assigned to specific repositories | Create branches, push commits, create PRs, review code | Develop features, create pull requests, review peer code |
| Member (Read) | All 31 organization members (base permission) | View and clone all repositories | Read code, observe development, learn from codebase |
| Outside Collaborator | 10 external contributors on specific repos | Read or Write access to assigned repositories | Contribute to specific projects as assigned |
Permission Rules
Organization Owners (6 people):
- Have implicit admin access to all 38 repositories
- Are the only ones who can approve and merge PRs to protected branches
- May approve and merge their own PRs when necessary (use discretion - get a second review when possible)
- Can modify repository settings and branch protection rules
- Can override branch protection in emergencies (use sparingly)
Members with Write Access:
- Can create feature branches and push commits
- Can create pull requests
- Cannot merge to protected main branch without owner approval
- Can review and comment on pull requests
- Should have Write access on repositories they actively contribute to
All Members (Base Read Permission):
- Can view and clone all organization repositories
- Can observe development across all projects
- Promotes transparency and learning across the team
Protected Branch Rules:
- Main branch requires 1 approval from an Organization Owner before merge
- Direct commits to main prohibited for all users (owners can override in emergencies)
- All changes must go through pull request workflow