Gitea issue #5917 rozoberá, ako prinútiť viacerých používateľov prestať sledovať repozitár. Inšpiroval ma k tomu, aby som si kroky zapísal, keďže mi neboli hneď zrejmé.
Cez PR #5852 bola pridaná
možnosť AUTO_WATCH_NEW_REPOS do konfiguračného súboru Gitea, avšak jej
predvolená hodnota je true.
Dôsledok tohto správania je, že ak nepoužívate Gitea aspoň vo verzii
1.8.0, kde bola táto konfigurácia zavedená, a následne ste nenastavili
AUTO_WATCH_NEW_REPOS na false vopred, vytvorenie repozitára (najmä v
Organizácii) a priradenie tímu k nemu spôsobí, že všetci používatelia v tom
tíme začnú repozitár sledovať, čo generuje veľa šumu.
Tento návod ukazuje, ako tento šum znížiť. Dá sa prispôsobiť aj pre iné účely, ktoré vyžadujú spustenie raw SQL príkazov na PostgreSQL vo vnútri Dockeru.
- Návod predpokladá, že súbor
docker-compose.ymlje identický s dokumentáciou Gitea
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.13.3
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
+ - DB_TYPE=postgres
+ - DB_HOST=db:5432
+ - DB_NAME=gitea
+ - DB_USER=gitea
+ - DB_PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
+ depends_on:
+ - db
+
+ db:
+ image: postgres:9.6
+ restart: always
+ environment:
+ - POSTGRES_USER=gitea
+ - POSTGRES_PASSWORD=gitea
+ - POSTGRES_DB=gitea
+ networks:
+ - gitea
+ volumes:
+ - ./postgres:/var/lib/postgresql/data
Nasledujúce kroky je potrebné upraviť, ak boli zmenené riadky zvýraznené farbou, konkrétne host, user, password a DB.
- Ak inštancia ešte nebeží, spustite ju (za predpokladu, že ostatná konfigurácia je hotová podľa dokumentácie)
docker-compose up -d
- Pripojte sa k
psqlvo vnútri kontajnera a zadajte postgres heslo z vyššie uvedeného
docker-compose run --rm db psql -h db -U gitea gitea
Príkaz môže byť trochu mätúci, tu sú zástupné symboly
docker-compose run --rm SERVICE psql -h HOST -U USER DB
- Teraz môžete používať štandardné
psqlpríkazy, použite databázugitea
\c gitea
Potom napríklad zobrazte všetky tabuľky
\dt
- Vyhľadajte ID repozitára
SELECT id,name FROM repository ORDER BY name;
Upozornenie: nasledujúce príkazy môžu viesť k STRATE DÁT! Pred ďalším postupom si prosím vytvorte správne zálohy.
- Odstráňte všetkých sledovateľov daného repozitára, dosaďte správne ID
DELETE FROM watch WHERE repo_id=ID;
Hotovo!
Toto je 14. príspevok z #100daystooffload.