[python] Private git hub, zkusenosti?

Vladimír Macek macek na sandbox.cz
Čtvrtek Březen 25 15:23:02 CET 2021


Tady OP. Koukám, že nejsem sám, kdo řeší lokální github. :-) Tak na oplátku 
moje čerstvé zkušenosti s Gitea:

Podle tipu od admina s letitou zkušeností s Gitea jsem tuhle self-contained 
binárku podle fajn docky https://docs.gitea.io/ nainstaloval. Vyrobil 
službu pro systemd (taky dle docky), přidal reverzní proxy do Apache, 
spáchal postgresí db, projel web config, upravil ini soubor v /etc kvůli 
mailování, otestoval a během chvíle to fičelo. Líbí se mi, jak to pracuje 
se soubory a databází.

$ ps xu
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
gitea     6224  1.0  0.7 1808768 112364 ?      Ssl  bře18 103:39 
/opt/gitea/bin/gitea web --config /etc/gitea/app.ini

Jsem velmi spokojený s jednoduchostí té instalace, nebordelu na 
filesystému. Jest to velmi svižný a server o tom neví. Vzhledově je to 
super a má to funkce, co potřebuju, i ty, které zatím nepotřebuju a 
vyhlídku na údajně malé a lehké CI: 
https://readme.drone.io/server/provider/gitea/

Zádrhel 1:

Potřebuje to exec pro hooky v repozitářích, ale já mám záměrně celý /var 
noexec. Jako nejjednodušší se mi vyjevil shell skript, který projede repa a 
nasymlinkuje všechny nové hooks adresáře na exec parcelu. Spouštět to budu 
patrně jako CGI iniciované globálním webhookem v Gitea při vytvoření repa. 
Skript můžu když tak poskytnout.

Zádrhel 2:

Náš server má zcela oddělené týmy vývojářů a chci, aby měl vedoucí každé 
organizace v Gitea možnost uživatele přidávat bez toho, aby se na mě musel 
obracet. Slabina Gitea je v tom, že to zřejmě neumí - registrace je buď 
otevřená (s možnou captcha), nebo registrace funguje, ale bez tlačítka, 
které na ní vede (moje současná volba) nebo je samoregistrace vypnutá a 
uživatele musím přidávat já jako admin celé Gitea. Asi by šlo vymyslet 
ještě nějaké řešení přes API, pro teď moc složité.

Jsme malí, takže seznam uživatelů a repozitářů si pro každotýdenní kontrolu 
nechávám posílat cronem z postgresu, pro kontrolu jestli tam nemám nevítané 
hosty. Pro zájemce přikládám.

V.


On 25. 03. 21 11:27, Ondrej Beranek wrote:
> To by bylo super.
>
> Dne čt 25. 3. 2021 10:01 uživatel ZdPo Ster <zdposter na gmail.com 
> <mailto:zdposter na gmail.com>> napsal:
>
> Ake to ma naroky? Lebo skusal som giltab na jednom (starsom) hw a
> nedalo sa na tom stroji nic robit...
> + posli ten config do systemd, nech nemusime spekulovat
>
> On Wed, 24 Mar 2021 at 16:54, Pavel Schön <pavel na schon.cz
> <mailto:pavel na schon.cz>> wrote:
>
> Za sebe doporučuji https://gitbucket.github.io/
>
> Jednou jsem nainstaloval, od té doby to prostě funguje.
> Všechno to má v sobě: HTTP, SSH i git, vše implementované v javě
> (nelekej se).
> Je to jeden soubor který prostě funguje. Mohu poslat config pro
> spuštění ze systemd.
>
>
>
> On Monday, March 15, 2021 at 4:17:00 PM UTC+1, Vladimír Macek wrote:
> > Zdar,
> >
> > mam radu git repozitaru na serveru Debian 10 pomoci gitolite.
> >
> > Bude dobre povysit to na webove rozhrani, abychom si mohli s
> kolegy
> > minimalne browsit, davat odkazy na mista ve zdrojacich,
> pripadne i pro
> > dalsi featury, ktere nabizi napriklad GitHub/GitLab.
> >
> > Casem budu chtit treba i podporu prohledavani, wiki, issues,
> code review,
> > webhooky, podporu CI/CD atp...
> >
> > Vidim casto odkazy na Gitea nebo GitLab.
> >
> > Zde https://about.gitlab.com/devops-tools/gitea-vs-gitlab/
> pomochopitelne
> > konkurenta vykresluje po svem.
> >
> > Zde https://docs.gitea.io/en-us/comparison/ je to zase naopak. ;-)
> >
> > S cim jste spokojeni? Ktery sw zpusobuje mene potizi
> (instalace, provoz, ...)?
> >
> > Diky,
> >
> > V.

------------- další část ---------------
#!/bin/bash

su -c 'psql gitea' postgres <<<'

select 
	type, name as user_name, full_name, email, to_timestamp(created_unix) as created, to_timestamp(last_login_unix) as last_login 
from "user"
order by type, created_unix desc;

select
	owner_name, name as repository_name, pg_size_pretty(size) as size, to_timestamp(created_unix) as created, to_timestamp(updated_unix) as updated
from repository
order by updated, created;
'



Další informace o konferenci Python