Co-authored-by: Cursor <cursoragent@cursor.com>
6.5 KiB
name, description
| name | description |
|---|---|
| gitea-skill-expert-it | Połączenie z Gitea Expert-IT (gitea.expert-it.agency-ai.dev): credentials, clone, pull, push, API. Używaj na początku nowej sesji agenta przy pracy z repozytoriami na tym hoście Gitea. |
Gitea Expert-IT — skill operacyjny
Instancja: https://gitea.expert-it.agency-ai.dev
API base: https://gitea.expert-it.agency-ai.dev/api/v1/
Wersja Gitea: 1.26.x
Właściciel repozytoriów (user/org): tomasz-syn-grzegorza
Credentials (lokalna maszyna dev)
| Pole | Wartość |
|---|---|
| Gitea user | tomasz-syn-grzegorza |
| Gitea PAT | z ~/.git-credentials (lokalnie; nie commituj do git) |
| Plik zapisu | ~/.git-credentials (chmod 600) |
| Git credential helper | store |
Szybki export (każda nowa sesja terminala / agenta)
export GITEA_USER="tomasz-syn-grzegorza"
export GITEA_PAT="$(python3 - <<'PY'
import re, pathlib
c = pathlib.Path.home() / ".git-credentials"
for line in c.read_text().splitlines():
m = re.search(r"gitea\.expert-it\.agency-ai\.dev.*:([^@]+)@", line)
if m:
print(m.group(1))
break
PY
)"
export GITEA_BASE="https://gitea.expert-it.agency-ai.dev"
export GITEA_API="$GITEA_BASE/api/v1"
Nigdy nie commituj PAT do git. Ten plik leży poza repozytoriami projektów (Pulpit/cursor/).
Nagłówek API (obowiązkowy format)
Authorization: token $GITEA_PAT
NIE używaj Bearer — Gitea zwróci 401.
Znane repozytoria
| Projekt | Repo | Lokalna ścieżka (dev) |
|---|---|---|
| One Gateway | tomasz-syn-grzegorza/one-gateway |
/home/tomasz-syn-grzegorza/Pulpit/cursor/one-gateway |
| Site Slavic Pulse | tomasz-syn-grzegorza/site-slavic-pulse-com |
/home/tomasz-syn-grzegorza/Pulpit/cursor/site-slavic-pulse-com |
| Site Agencja AI | tomasz-syn-grzegorza/site-agencja-ai-com |
/home/tomasz-syn-grzegorza/Pulpit/cursor/site-agencja-ai-com |
| Cursor Deploy Appwrite | tomasz-syn-grzegorza/cursor-deploy-appwrite |
/home/tomasz-syn-grzegorza/Pulpit/docker/cursor-deploy-appwrite |
URL klonowania (HTTPS):
https://gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/<repo>.git
Procedura agenta — nowa sesja
- Załaduj credentials
export GITEA_USER="tomasz-syn-grzegorza" export GITEA_PAT="$(python3 - <<'PY'
import re, pathlib c = pathlib.Path.home() / ".git-credentials" for line in c.read_text().splitlines(): m = re.search(r"gitea.expert-it.agency-ai.dev.*:([^@]+)@", line) if m: print(m.group(1)) break PY )" export GITEA_BASE="https://gitea.expert-it.agency-ai.dev"
2. **Wejdź do projektu**
```bash
cd /home/tomasz-syn-grzegorza/Pulpit/cursor/one-gateway # lub inny projekt z tabeli
-
Sprawdź stan
git status -sb git fetch origin git log origin/main..HEAD --oneline # lokalne commity nie na serwerze -
Pobierz zmiany (pull)
git pull --rebase origin mainDla repo ze gałęzią
master:git pull --rebase origin master -
Wypchnij zmiany (push) — tylko gdy użytkownik poprosi o commit/push
git add <pliki> git commit -m "opis zmian" git push -u origin main -
Jeśli push wisi (brak promptu hasła)
git remote set-url origin "https://$GITEA_USER:$GITEA_PAT@gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/one-gateway.git" git push -u origin main git remote set-url origin "https://gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/one-gateway.git"
Clone (pierwszy raz)
cd /home/tomasz-syn-grzegorza/Pulpit/cursor
git clone "https://$GITEA_USER:$GITEA_PAT@gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/one-gateway.git"
cd one-gateway
git remote set-url origin "https://gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/one-gateway.git"
Publiczne repo można klonować bez tokenu; prywatne wymagają PAT w URL lub credential.helper store.
API — typowe operacje
Sprawdź repo
curl -sS "$GITEA_API/repos/tomasz-syn-grzegorza/one-gateway" \
-H "Authorization: token $GITEA_PAT" | python3 -m json.tool
Utwórz repo
curl -sS -X POST "$GITEA_API/user/repos" \
-H "Authorization: token $GITEA_PAT" \
-H "Content-Type: application/json" \
-d '{"name":"nowy-projekt","description":"...","private":false}'
Endpoint /api/v1/user/repos — nie /repos/create (404).
Zmień nazwę repo
curl -sS -X PATCH "$GITEA_API/repos/tomasz-syn-grzegorza/stara-nazwa" \
-H "Authorization: token $GITEA_PAT" \
-H "Content-Type: application/json" \
-d '{"name":"nowa-nazwa"}'
Container registry (obrazy Docker)
gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/<image>:latest
Logowanie (CI / lokalnie):
echo "$GITEA_PAT" | docker login gitea.expert-it.agency-ai.dev -u "$GITEA_USER" --password-stdin
Sekrety CI w repo (Gitea Actions): GITEA_USER, GITEA_TOKEN — ustawiane w ustawieniach repo, nie w git.
Gałęzie i konwencja
| Gałąź | Zastosowanie |
|---|---|
main |
One Gateway, większość projektów |
master |
site-slavic-pulse-com, site-agencja-ai-com |
feature/* |
nowe funkcje |
fix/* |
poprawki |
infra/* |
docker, deploy, CI |
Przed pracą: git pull. Po pracy: commit + push tylko na prośbę użytkownika.
Pułapki
- Auth:
Authorization: token <PAT>— nieBearer - Create repo:
POST /api/v1/user/repos— nie/repos/create - SSH: na niektórych hostach zablokowany — używaj HTTPS
- LRC hook (Hermes): przed pierwszym commitem w nowym repo:
mkdir -p .git/lrc && touch .git/lrc/disabled-git - Nie commituj:
.envz sekretami, PAT, RTX API keys - Stara nazwa:
one-gateway-cursorzostała przemianowana naone-gateway
Checklist push (agent)
git status— świadomie wybrane pliki (bez.env, bez sekretów)git diff— sensowny zakres zmian- commit message opisuje dlaczego
git push origin <branch>- po pushu:
git status -sb→ bezahead
Powiązane pliki w projektach
| Plik | Opis |
|---|---|
cursor/one-gateway/GITEA.md |
Push one-gateway |
cursor/one-gateway/packages/agency-gitea-collaboration/SKILL.md |
Protokół Hermes + Cursor |
cursor/one-gateway/deploy/docs/INSTALL.md |
Instalacja produkcyjna |
Skill lokalny — credentials z ~/.git-credentials. Nie commituj tego pliku do publicznych repo.