# repo-manager - [x] store repositories keyed by name (tree-style is better for avoiding conflicts while being specific and easy to follow) - [x] repositories have a ~~source~~ origin url and optional mirror URLs (just one for now, called `target`) - [x] optional "name" key for handling name conflicts in the main list (due to tree structure, unnecessary) - [ ] 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. - `issues`: Like `redundant` below, this is a temporary tag for helping me sort things out. - `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.