The ownCloud GitHub organization has 108 public, non-archived repositories.
I know, because I mapped every single one last week.
When you’ve been building open source since 2010, sixteen years (!), your GitHub org becomes an archaeological dig:
- Active projects, next to repos untouched since 2017.
- Experimental forks from five years ago in search results.
The first thing a potential contributor sees is confusion. So, we mapped it.
Every repo categorized into six groups:
- oCIS (15 repos),
- Classic (40 repos),
- Clients (15 repos),
- Documentation (10 repos),
- LibreGraph API (5 repos), and Infrastructure (23 repos).
The map is going into the GitHub org profile README.
What we found:
- Seven repos are forks of upstream project;
These carry the upstream license and can’t be relicensed. We’re tagging them clearly. - Several repos haven’t been pushed to in over two years.
We’re reviewing each one:- archive the dead ones (moved to ownCloud-archive),
- mark the stable ones clearly.
- Ten documentation repos:
docs is the Antora framework that ties them together, with per-product repos underneath, but if you didn’t know that, you’d have no idea where to contribute a docs fix. Now it’s in the map.
We’re setting up a .github repo with org-wide defaults:
- CONTRIBUTING.md,
- CODE_OF_CONDUCT.md,
- SECURITY.md,
- SUPPORT.md,
- and a PR template with a DCO sign-off reminder.
One set of defaults instead of 108 copies.
Repo hygiene might not be glamorous, but it’s the difference between a GitHub org that says “we’re serious” and one that says “we threw some code on the internet.”
Tomorrow: I’m a script kid running an OSPO.
This is part 3 of this blog post series.
See the earlier posts:



