wrolpi/alembic/versions
Roland d0ea6ab313
repos: a clone is owned by a random token, not its URL
The ownership marker held the Repo's URL key, which anyone can write, so
a copied clone, an extracted archive or a hand-made `.git` passed the
check and was reset and cleaned.  Each Repo now has a random clone_token
(repository column and repos.yaml, so a Repo restored from the config
still owns its clone); the marker holds it, and only a clone holding the
Repo's token is updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 18:58:18 -06:00
..
2026_07_10_1350_sqlite_baseline.py Postgres -> SQLite hard cutover: the database moves into the media directory. 2026-07-12 14:09:37 -06:00
2026_07_14_0900_browse_covering_index.py SQLite: make the browse pages index-only. 2026-07-14 07:46:29 -06:00
2026_09_16_1200_file_group_stem.py files: SQL FileGroup compare, stem column, drop unused discovery path (#713) 2026-09-18 08:57:56 -06:00
2026_09_18_1200_unique_directory_stem.py files: unique (directory, stem) after collapsing duplicate FileGroups (#715) 2026-09-19 21:03:49 -06:00
2026_09_20_1200_drop_file_group_idempotency.py files: extract refresh compare into its own module; drop file_group.idempotency (#717) 2026-09-20 20:58:19 -06:00
2026_09_27_1200_domain_collection_summary.py collections: channel and domain listings read trigger-maintained summary columns (#739) 2026-09-27 11:36:08 -06:00
2026_09_28_1200_collection_listing_indexes.py collections: listing answers channel and download queries from covering indexes (#740) 2026-09-27 12:53:40 -06:00
2026_10_05_1200_markdown_mimetype.py Preview markdown files formatted, with a raw toggle (#780) 2026-10-05 13:26:42 -06:00
2026_10_06_1200_repository.py Add a Repos module that mirrors git repositories (backend) 2026-10-06 16:56:09 -06:00
2026_10_06_1300_repository_search.py repos: search Repos by name and README 2026-10-06 16:56:09 -06:00
2026_10_06_1400_repository_submodules.py repos: history, Download ZIP, and submodules 2026-10-06 16:56:09 -06:00
2026_10_06_1500_repository_clone_token.py repos: a clone is owned by a random token, not its URL 2026-10-06 18:58:18 -06:00