# repo-manager - [ ] store repositories keyed by name - [ ] repositories have a ~~source~~ origin url and optional mirror URLs - [ ] optional "name" key for handling name conflicts in the main list - [ ] have to specify what is being restored or changed or copied - [ ] right now I just need to get it able to set up a new Gitea instance - [ ] in the future, it needs to be able to push to a new GitHub - [ ] need to be able to recognize/use local repos vs pulled ones ## JSON format ```json { "mirrors": { "https://github.com/": { "TangentFoxy": { "lua-sandbox": { "private": false, "target": "https://gitea.tangentfox.com/forks/lua-sandbox" } } } }, "repositories": { "https://github.com/": { "TangentFoxy": { "github.io-podcasts": { "description": "A Lua script to partially automate publishing a podcast on GitHub Pages." } } } } } ``` The idea is to make a tree based on the *source* of a repo, with special keys for what to do with that source, and optional `target` URLs for mirroring. - `description`: Short description typically displayed in lists on hosting services. - `private`: If a repo needs to be created, it will be private only if this is true. - `redundant`: This repo really doesn't need to exist, but hasn't been removed yet. (This is essentially for my own notes.) - `target`: A repo URL to force-push to for mirroring. - `website`: URL, usually displayed clickable on hosting services. I'm probably going to remove the artificial separation between mirros and repositories.