wrolpi/modules/repos
Roland 4b034ae3ee
repos: submodule links must stay in the repo; import checks before it moves
* A submodule's working-tree `.git` names the git directory git uses for
  it.  Before any submodule command (update, or deinit when submodules
  are turned off), and before an import, every `.git` below the top of
  the working tree must be a file pointing inside the repo's own
  .git/modules; a link, a directory, or a file pointing elsewhere could
  make git use a config that was never checked.
* Import validates and sanitizes the clone where it is, then moves it,
  and moves it back if marking it fails, so a refused or failed import
  never leaves a clone moved without a Repo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 19:03:07 -06:00
..
test repos: submodule links must stay in the repo; import checks before it moves 2026-10-06 19:03:07 -06:00
__init__.py Add a Repos module that mirrors git repositories (backend) 2026-10-06 16:56:09 -06:00
api.py repos: import an existing git clone as a Repo 2026-10-06 18:09:52 -06:00
conftest.py repos: pin the repo's host once, and only exempt its own host and port 2026-10-06 17:38:45 -06:00
downloader.py repos: submodule links must stay in the repo; import checks before it moves 2026-10-06 19:03:07 -06:00
errors.py Add a Repos module that mirrors git repositories (backend) 2026-10-06 16:56:09 -06:00
lib.py repos: submodule links must stay in the repo; import checks before it moves 2026-10-06 19:03:07 -06:00
models.py repos: a clone is owned by a random token, not its URL 2026-10-06 18:58:18 -06:00
schema.py repos: import an existing git clone as a Repo 2026-10-06 18:09:52 -06:00