47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# 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.
|