New Pattern: Add Centralised InnerSource Repository Governance pattern - #919
New Pattern: Add Centralised InnerSource Repository Governance pattern#919amburi wants to merge 2 commits into
Conversation
8c3a01e to
105d98c
Compare
spier
left a comment
There was a problem hiding this comment.
@amburi this pattern looks great already! I left some minor comments.
Just curious:
The pattern sounds like you already have a reference implementation of this. If you want you could share more in the Solution section about the stack that you used to implement this.
Or if you have open sourced that work, you can of course also link to that (although I am assuming that this is an internal project at your org rather?).
|
|
||
| ## Solution | ||
|
|
||
| Create a **central InnerSource governance repository** that defines contributor-readiness expectations as policy-as-code and audits repositories in scope. Treat it as an internal product with clear roles, review rules, actionable reports, and an exception process. |
There was a problem hiding this comment.
| Create a **central InnerSource governance repository** that defines contributor-readiness expectations as policy-as-code and audits repositories in scope. Treat it as an internal product with clear roles, review rules, actionable reports, and an exception process. | |
| Create a **central InnerSource governance repository** that defines contributor-readiness expectations as policy-as-code. Run audits of these policies across all repositories in scope. | |
| Treat it as an internal product with clear roles, review rules, actionable reports, and an exception process. |
|
|
||
| ### Repository Inventory | ||
|
|
||
| Maintain the audit scope in `repository-inventory.yml`, or import it from an InnerSource Portal or source code inventory. |
There was a problem hiding this comment.
| Maintain the audit scope in `repository-inventory.yml`, or import it from an InnerSource Portal or source code inventory. | |
| Maintain the audit scope in `repository-inventory.yml`, or import it from an [InnerSource Portal](../2-structured/innersource-portal.md) or [Unified Source Code Inventory](../1-initial/source-code-inventory.md). |
| * [Assisted Compliance](assisted_compliance.md) — helps Trusted Committers and repository maintainers add missing contribution guidance. | ||
| * [Communication Tooling](../2-structured/communication-tooling.md) — describes communication channels that readiness checks can require. | ||
| * [Issue Tracker Use Cases](../2-structured/issue-tracker.md) — supports checks for issue templates and transparent planning. | ||
| * [Unified Source Code Inventory](source-code-inventory.md) — can provide audit scope and repository metadata. |
There was a problem hiding this comment.
| * [Unified Source Code Inventory](source-code-inventory.md) — can provide audit scope and repository metadata. | |
| * [Unified Source Code Inventory](../1-initial/source-code-inventory.md) — can provide audit scope and repository metadata. |
Even if the files are in the same folder, I like to include the folder name in the link, as that clearly shows which maturity this pattern is at. This also makes it simple to copy the links to different patterns.
| ## Use This Pattern When | ||
|
|
||
| * You have many InnerSource repositories owned by different teams. | ||
| * Contributors struggle to identify how to use or contribute to projects. | ||
| * InnerSource Portal quality depends on repository metadata and project hygiene. | ||
| * Manual readiness checks are too slow or incomplete. | ||
| * You want transparent policy-as-code instead of undocumented central checks. | ||
| * Poor contributor experience costs more than maintaining the governance process. | ||
|
|
||
| ## Don’t Use This Pattern When | ||
|
|
||
| * Only a few InnerSource repositories exist and manual support is enough. | ||
| * You need hard enforcement at merge time rather than periodic guidance. | ||
| * You cannot maintain repository ownership or lifecycle metadata. | ||
| * You cannot protect the governance repository and its credentials. | ||
| * Most projects require unique contribution models that do not fit a small set of profiles. | ||
|
|
There was a problem hiding this comment.
I am moving this content to Context, as the purpose of that section is to allow a reader to decide whether the pattern is applicable for them. So this context here fits that purpose perfectly.
| ## Use This Pattern When | |
| * You have many InnerSource repositories owned by different teams. | |
| * Contributors struggle to identify how to use or contribute to projects. | |
| * InnerSource Portal quality depends on repository metadata and project hygiene. | |
| * Manual readiness checks are too slow or incomplete. | |
| * You want transparent policy-as-code instead of undocumented central checks. | |
| * Poor contributor experience costs more than maintaining the governance process. | |
| ## Don’t Use This Pattern When | |
| * Only a few InnerSource repositories exist and manual support is enough. | |
| * You need hard enforcement at merge time rather than periodic guidance. | |
| * You cannot maintain repository ownership or lifecycle metadata. | |
| * You cannot protect the governance repository and its credentials. | |
| * Most projects require unique contribution models that do not fit a small set of profiles. |
| * An InnerSource Program Office, platform team, or community group stewards shared readiness expectations. | ||
| * An InnerSource Portal, source code inventory, or repository catalogue may already exist. | ||
| * GitHub Actions, GitHub APIs, or similar automation tooling is available. | ||
|
|
There was a problem hiding this comment.
| ### Use This Pattern When | |
| * You have many InnerSource repositories owned by different teams. | |
| * Contributors struggle to identify how to use or contribute to projects. | |
| * InnerSource Portal quality depends on repository metadata and project hygiene. | |
| * Manual readiness checks are too slow or incomplete. | |
| * You want transparent policy-as-code instead of undocumented central checks. | |
| * Poor contributor experience costs more than maintaining the governance process. | |
| ### Don’t Use This Pattern When | |
| * Only a few InnerSource repositories exist and manual support is enough. | |
| * You need hard enforcement at merge time rather than periodic guidance. | |
| * You cannot maintain repository ownership or lifecycle metadata. | |
| * You cannot protect the governance repository and its credentials. | |
| * Most projects require unique contribution models that do not fit a small set of profiles. |
Summary
Adds a new InnerSource pattern for maintaining repository contributor readiness at scale through a central
governance repository, policy-as-code, and scheduled readiness audits.
Changes
and contribution paths.
boundaries.
platform/security partners, and Product Owners.
metrics.