feat(rules): bootstrap SSH/Gitea/GitHub/LAN при отсутствии подключений
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
---
|
---
|
||||||
description: Перед работой — прочитай все применимые rules
|
description: Перед работой — прочитай все применимые rules
|
||||||
alwaysApply: true
|
alwaysApply: true
|
||||||
---
|
---
|
||||||
@@ -15,6 +15,7 @@ alwaysApply: true
|
|||||||
|
|
||||||
| Задача | Перед действием прочитай / проверь |
|
| Задача | Перед действием прочитай / проверь |
|
||||||
|--------|-------------------------------------|
|
|--------|-------------------------------------|
|
||||||
|
| Начало работы / новый ПК | `machine-connectivity-bootstrap` — SSH, Gitea, GitHub, LAN; при отсутствии — `install.ps1` / bootstrap |
|
||||||
| `git commit` / `push` | `no-cursor-in-repositories` — нет `.cursor/` в staged; `.gitignore` содержит `.cursor/` |
|
| `git commit` / `push` | `no-cursor-in-repositories` — нет `.cursor/` в staged; `.gitignore` содержит `.cursor/` |
|
||||||
| Push в `home` | `gitea-home-api` — сначала API, потом SSH push |
|
| Push в `home` | `gitea-home-api` — сначала API, потом SSH push |
|
||||||
| Создание/правка .ps1, .sh, runtime JSON | ile-encoding — UTF-8 BOM+CRLF (PS), UTF-8+LF (sh), spool без BOM |
|
| Создание/правка .ps1, .sh, runtime JSON | ile-encoding — UTF-8 BOM+CRLF (PS), UTF-8+LF (sh), spool без BOM |
|
||||||
@@ -26,4 +27,4 @@ alwaysApply: true
|
|||||||
- **Не push**, не «доделывай быстрее».
|
- **Не push**, не «доделывай быстрее».
|
||||||
- Исправь (amend / filter / commit-tree), затем снова проверь лог.
|
- Исправь (amend / filter / commit-tree), затем снова проверь лог.
|
||||||
|
|
||||||
Правила важнее скорости выполнения задачи.
|
Правила важнее скорости выполнения задачи.
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
description: Новый или «голый» ПК — сначала SSH, Gitea, GitHub и LAN
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Подключения: Gitea, GitHub, LAN
|
||||||
|
|
||||||
|
Если на компьютере **нет** рабочих SSH/HTTPS-доступов к git и LAN — **настрой их до начала задачи** (clone, push, deploy, API Gitea).
|
||||||
|
|
||||||
|
## Когда проверять
|
||||||
|
|
||||||
|
В **начале сессии** или **перед** git push, deploy, clone, работой с `$HOME/CursorRules`:
|
||||||
|
|
||||||
|
- `git remote -v`; пробный `git fetch` / `git ls-remote` по каждому нужному remote
|
||||||
|
- SSH: `git@github.com`, Gitea (`git.kalinamall.ru`, `git.papatramp.ru` / LAN IP), хосты деплоя (например `192.168.128.77`)
|
||||||
|
- наличие `~/CursorRules` (Windows: `%USERPROFILE%\CursorRules`) и `local/*.conf`
|
||||||
|
|
||||||
|
**Не начинай** push, deploy или clone «вслепую», если проверка не прошла.
|
||||||
|
|
||||||
|
## Что считается «нет подключений»
|
||||||
|
|
||||||
|
| Симптом | Значит |
|
||||||
|
|---------|--------|
|
||||||
|
| `Permission denied (publickey)` | нет SSH-ключа или записи в `~/.ssh/config` |
|
||||||
|
| `Could not resolve host` / timeout на Gitea/GitHub | нет сети/VPN или неверный HostName |
|
||||||
|
| нет `$HOME/CursorRules` | репозиторий Rules не развёрнут |
|
||||||
|
| нет ключей из `local/git-ssh-hosts.conf` в `~/.ssh/` | не запускали Setup-GitSsh |
|
||||||
|
| нет `local/papatramp-gitea.conf`, `kalinamall-gitea.conf` | API Gitea не настроен |
|
||||||
|
| deploy: нет `deploy/secrets.env` | локальный деплой по паролю не настроен |
|
||||||
|
|
||||||
|
## Что делать (по порядку)
|
||||||
|
|
||||||
|
### 1. Новый компьютер (ничего нет)
|
||||||
|
|
||||||
|
Из каталога **рабочего проекта**:
|
||||||
|
|
||||||
|
| ОС | Действие |
|
||||||
|
|----|----------|
|
||||||
|
| Windows | скопировать `install.ps1` с рабочего ПК → запустить в каталоге проекта |
|
||||||
|
| Mac / Linux | то же с `install.sh` |
|
||||||
|
|
||||||
|
Скрипт клонирует Rules в `~/CursorRules`, создаёт ключи, `~/.ssh/config`, remotes, `init-cursor`.
|
||||||
|
|
||||||
|
### 2. CursorRules уже есть, но доступы сломаны или неполные
|
||||||
|
|
||||||
|
Windows:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
& $HOME\CursorRules\scripts\Invoke-MachineBootstrap.ps1 -Root $HOME\CursorRules
|
||||||
|
& $HOME\CursorRules\scripts\Setup-GitSsh.ps1
|
||||||
|
& $HOME\CursorRules\scripts\Set-GitRemotes.ps1 -RepoPath (Get-Location)
|
||||||
|
init-cursor -Update
|
||||||
|
```
|
||||||
|
|
||||||
|
Mac / Linux:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
~/CursorRules/scripts/invoke-machine-bootstrap.sh
|
||||||
|
~/CursorRules/scripts/setup-git-ssh.sh
|
||||||
|
~/CursorRules/scripts/Set-GitRemotes.sh "$(pwd)"
|
||||||
|
init-cursor --update
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Проект с удалённым деплоем
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp deploy/secrets.env.example deploy/secrets.env
|
||||||
|
# DEPLOY_HOST, DEPLOY_PASSWORD; при входе по паролю — DEPLOY_SSH_KEY=0
|
||||||
|
```
|
||||||
|
|
||||||
|
На Windows без `sshpass`: `python scripts/deploy-remote.py` (если скрипт есть в проекте).
|
||||||
|
|
||||||
|
## Remotes (эталон)
|
||||||
|
|
||||||
|
| Remote | Куда |
|
||||||
|
|--------|------|
|
||||||
|
| `kalinamall` | git.kalinamall.ru |
|
||||||
|
| `home` | git.papatramp.ru |
|
||||||
|
| `github` | github.com/PTah |
|
||||||
|
|
||||||
|
На **сервере деплоя** `origin` должен быть **достижим из LAN** (часто `https://github.com/PTah/<repo>.git`, а не публичный HTTPS `git.papatramp.ru`).
|
||||||
|
|
||||||
|
## Агент
|
||||||
|
|
||||||
|
1. При первом `git fetch` / `push` / deploy в сессии — **проверь** remotes и SSH.
|
||||||
|
2. При ошибке доступа — **сначала bootstrap** (скрипты выше), затем повтори операцию.
|
||||||
|
3. **Не** проси «создай репо вручную», пока не пробовал API/скрипты из `gitea-home-api`.
|
||||||
|
4. `deploy/secrets.env`, `local/*.conf` — **не коммитить**.
|
||||||
@@ -128,3 +128,7 @@ Push: `git push kalinamall`
|
|||||||
| `git-user.conf` | git user.name / email |
|
| `git-user.conf` | git user.name / email |
|
||||||
| `kalinamall-gitea.conf` | API kalinamall |
|
| `kalinamall-gitea.conf` | API kalinamall |
|
||||||
| `papatramp-gitea.conf` | API home Gitea |
|
| `papatramp-gitea.conf` | API home Gitea |
|
||||||
|
|
||||||
|
## Подключения на новом ПК
|
||||||
|
|
||||||
|
Если SSH/Gitea/GitHub/LAN ещё не настроены — см. rule **`machine-connectivity-bootstrap`** и `install.ps1` / `install.sh`.
|
||||||
|
|||||||
Reference in New Issue
Block a user