2026-08-16 16:25:17 -06:00
2026-08-16 18:56:27 -06:00

repo-manager

  • store repositories keyed by name (tree-style is better for avoiding conflicts while being specific and easy to follow)
    • repositories have a source origin url and optional mirror URLs (just one for now, called target)
    • 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

{
  "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.

S
Description
Script to automate mirroring and copying of git repos.
Readme
46 KiB
Languages
Lua 100%