One GitHub organization per project (for projects hosted at GitHub)
We currently have 434 repositories under https://github.com/eclipse and over 1,300 members in the organization.
We have mandated that all new projects be created in a dedicated organization for some time now, and we should begin enforcing a division of this large eclipse
organization.
Using separate GitHub organizations for different projects offers several benefits:
- Clarity and separation: Each organization focuses on a singular project (or working group). This clarity makes it easier to comprehend the purpose and scope of each organization instantly.
- Branding: Each organization can establish its unique identity, logo, and description.
- Notifications: Members can manage notifications more easily on a per-organization basis.
- Avoiding repository clutter: A single organization with numerous repositories can become messy. Distributing projects across different organizations ensures each has a manageable and easily searchable number of repositories.
- Default policies and workflows: Default policies and workflows can be defined in the
.github
repository of each organization. This differentiation is unfeasible in the shared eclipse organization, as policies would need to cater to all hosted projects universally. - Self-service: with a dedicated organization, a project can have self-service enabled. This captures the existing configuration as code in a separate repo (
.eclipsefdn
) and committers can then create PRs against this repo to change the organization/repositories configuration to fit their needs.
There are also several security advantages:
- Limit blast radius: If an attacker compromises an account or infiltrates one organization, they won't necessarily gain access to projects in other organizations. The potential damage is constrained to a single entity.
- Isolation: Mistakes or misconfigurations in one organization won't jeopardize projects in separate organizations. Moreover, permissions for GitHub apps are restricted to the specific organization they are installed in.
- Audit and monitoring: Activity is easier to audit when confined to a single organization. Detecting anomalies or suspicious behaviors might become more straightforward.
Certainly, there are instances where a GitHub organization hosts repositories for multiple projects, such as LocationTech, JakartaEE, Eclipse EE4J, or Adoptium. In such cases, there is a strong motivation to consolidate related projects within a single organization, and we do not intend to change this.