mirror of
https://gitverse.ru/kpa39l/git-forge-management.git
synced 2026-09-29 21:25:07 +00:00
2.6 KiB
2.6 KiB
name, title, description
| name | title | description |
|---|---|---|
| git-forge-management | Git Forge Management (Self-Hosted) | Управление проектами на self-hosted forges (Gitea, GitLab CE) — создание репозиториев, push, mirroring между форджами. Дополняет github-repo-management для не-GitHub платформ. |
Общий шаблон
Самодельный forge (Gitea, GitLab CE) даёт REST API, совместимый с GitHub по структуре эндпоинтов, но требует Basic Auth (user:password) вместо Bearer-токена.
AUTH="-u username:password"
BASE="https://gitea.example.com/api/v1"
Шаг 1: Создать репозиторий через API
curl -s -X POST "${BASE}/user/repos" \
${AUTH} \
-H "Content-Type: application/json" \
-d '{
"name": "repo-name",
"description": "Описание",
"private": false,
"auto_init": false
}'
HTTP 201 = создан. HTTP 409 = уже существует.
Шаг 2: Push локального проекта
cd /path/to/project
git init
git config user.name "username"
git config user.email "user@example.com"
git remote add origin "https://user:password@gitea.example.com/user/repo-name.git"
git add -A
git commit -m "Initial commit"
git push -u origin master
Важно: Gitea по умолчанию использует ветку master. Если forge создал main — переименовать локальную.
Шаг 3: Push mirror на другой forge
Push mirror настраивается в Settings → Git Hooks/Mirrors → Add Push Mirror в UI Gitea.
Через API:
curl -s -X PATCH "${BASE}/repos/user/repo-name" \
${AUTH} \
-H "Content-Type: application/json" \
-d '{
"mirror_interval": "8h",
"mirror_address": "https://token@gitverse.ru/user/repo-name.git"
}'
Требуется: репозиторий на целевом forge уже существует.
Критические правила
- НИКОГДА не удалять cronjob, когда пользователь говорит "stop reminder" — только
deliver: local. - НИКОГДА не удалять файлы пользователя без явного подтверждения.
- Пароли и токены не сохранять в коде, только передавать через переменные или одноразовый
-u.
Связанные навыки
github-repo-management— для GitHub (gh CLI, GitHub API)