We maintain an org in the GitHub Enterprise Cloud with ~400 developers and a growing number of repositories. The longer the company exists, we inevitably have repos that we don’t actively use anymore. Those might be hackathon projects, other experiments, or products/repos that got discontinued.
Which options do we have clean up repos in a safe manner? For use safe means, that w don’t want to completely delete them, because we might need them again in the future. Also for compliance reasons we sometimes need to keep source code around for some time.
Current Solution: Archiving
What we have done so far is to archive repos). Through archiving, the repos are turned into a read-only mode and on the repo page it is indicated visually (with a yellow bar at the top) that those repos are archived, which means deprecated/unused in our interpretation.
There is one drawback to archiving though:
By default, when searching for anything within all repos in our org, these archived repos will still show up too. While that behavior can be modified with the flag archived:false in the search, this is not a good experience for our developers because they will simply forget this.
Proposal: Dedicated "archive org"
Here one idea for an approach that would hide the repos from the default search, while still keeping the repos around for archive purposes.
- create a new org (e.g. my-org-name-archive) below our Enterprise account.
- move archived repos into my-org-name-archive (so e.g. from my-org-name/sample-repo to my-org-name-archive/sample-repo)
The advantage of that approach is that the users in my-org-name can just search and will see only unarchived (i.e. active) source code. At the same time all archived code is still available and fully searchable in my-org-name-archive if ever require for anything.
Have others here run into this problem?
What do you think about the proposal above?
Also what other solutions have you found to this?
Looking forward to an interesting discussion