Доступ по git
Каждый список — git-репозиторий: клонируйте, правьте list.json, пушьте, ветвитесь.
За каждым списком SetFork стоит настоящий git-репозиторий, доступный по smart HTTP. Всё, что умеет git — CLI, VS Code, CI — работает со списками напрямую.
Клонирование
Публичные списки клонируются анонимно:
git clone https://setfork.com/{owner}/{slug}.gitДля приватных списков и черновиков нужен API-токен в качестве пароля (имя пользователя — любое):
git clone https://anything:sf_YOUR_TOKEN@setfork.com/you/private-list.gitЧто внутри
В репозитории лежит list.json — каноническое представление списка
(заголовок, описание, теги, тип и блоки: шаги, текст, опросы, тесты и другие).
Каждая опубликованная версия — это один коммит,
поэтому git log показывает историю версий, а git diff — что изменилось
между версиями.
Push
Для push нужен токен со скоупом write; вы должны быть владельцем или коллаборатором.
# edit list.json, then:
git commit -am "tighten the rollback steps"
git pushPush в ветку по умолчанию проецируется обратно в платформу: создаётся новая версия списка — ровно так же, как если бы вы отредактировали и опубликовали её в интерфейсе.
Ветки и правки
Отправьте ветку, чтобы предложить изменения, не трогая основную линию:
git switch -c sharper-steps
git push -u origin sharper-stepsВетку можно превратить в предложение (аналог pull request), и владелец сможет её влить — вместе с разрешением конфликтов, если список ушёл вперёд с момента, когда ваша ветка отделилась. Ветки, вкладки предложения и слияние в интерфейсе — в разделе Совместная работа.
Предложить правку не открывая браузер
Обычный push создаёт ветку — черновик, который никому не предъявлен. Чтобы сразу
предъявить правку, пушьте в refs/for/main:
git switch -c sharper-steps
# правите list.json, коммитите
git push origin HEAD:refs/for/mainremote: SetFork: change accepted, the suggestion will appear on the list pageПредложение появится на странице списка, владелец получит уведомление. Ветка черновика вам для этого не нужна: коммиты уедут в вашу личную ветку внутри списка.
Повторный push в refs/for/main — новая ревизия того же предложения, а не
второе предложение. Поправили по замечаниям, отправили снова — обсуждение
продолжается на том же месте.
Отсюда одно ограничение: одновременно предъявленное предложение к списку у вас одно. Нужно второе — отправьте обычную ветку и откройте предложение в интерфейсе.
Приём знаком тем, кто работал с Gerrit; main — единственная поддерживаемая база.
Что можно из терминала, а что нет
| Можно | Только в интерфейсе или через MCP |
|---|---|
| Клонировать, тянуть, смотреть историю и диффы | Ревью и вердикты по предложению |
| Пушить версии и ветки | Слияние предложения, разрешение конфликтов |
Предъявлять правку (refs/for/main) | Релизы и их описания |
Ставить локальные теги, ветвиться, rebase у себя | Настройки списка и зеркала |
| Скачивать список одним файлом (bundle) | Обсуждения, задачи, звёзды |
Всё, что живёт в git-объектах, доступно из терминала. Всё, что вокруг них, — надстройки: они хранятся в базе, а не в репозитории, и работают через интерфейс или MCP-сервер.
Рецепты
История версий. Каждая версия — коммит с тегом vN:
git log --oneline --decorate # что менялось и когда
git show v3 # версия целиком
git diff v3 v4 -- list.json # что изменилось между версиямиПроверка перед отправкой — то же, что проверит сервер:
git ls-tree -r --name-only HEAD # только README.md, list.json, .gitattributes
python -m json.tool list.json # канон обязан быть валидным JSONCI. Кэшируйте клон между прогонами: git-эндпоинты ограничены по частоте запросов на IP, и агрессивный CI упрётся в лимит.
git clone --depth 1 https://anything:$SF_TOKEN@setfork.com/you/list.gitГраницы
- Только HTTPS. Доступа по SSH нет: токен покрывает те же сценарии, включая VS Code и CI.
- В дереве ровно три файла —
README.md,list.jsonи.gitattributes. Лишний файл push не примет и назовёт его: содержимое списка живёт вlist.json,README.mdгенерируется из него и правится только через него. mainзащищена от удаления и переписывания истории. Ветки-черновики можно перезаписывать свободно.- Пушить в список могут владелец и соавторы. Предложить правку со стороны сейчас можно через интерфейс или MCP.
- Размер. Есть потолок на один push и на репозиторий целиком; для списков из текста они недостижимы, но большие вложения туда класть не нужно — картинки живут отдельно.
Зеркало на внешней фордже
Список можно автоматически пушить в репозиторий на GitHub или GitLab — как витрину и резервную копию. Настройка и токены — в разделе Зеркало в GitHub/GitLab.