Ţĥé ļööþ îñ ÇÎ
ÇÎ îš ŵĥéŕé đŕîƒţ îš ḿàđé: éṽéŕý ḿéŕĝé çĥàñĝéš šöüŕçé çöñţéñţ àñđ ļéàṽéš îţš ţŕàñšļàţîöñš, ţéŕḿš, àñđ ṽöîçé çöñƒöŕḿàñçé ƃéĥîñđ. Îţ îš àļšö ţĥé ñàţüŕàļ þļàçé ţö çàţçĥ üþ. Ţĥé kapi ļööþ ŕüñš öñ éṽéŕý çĥàñĝé öŕ öñ à šçĥéđüļé; ŵĥàţ à ḿàçĥîñé çàññöţ đéçîđé þàŕķš îñţö ţĥé ţéàḿ'š ŕéṽîéŵ šéššîöñ öñ ţĥé šéŕṽéŕ; àñđ ţĥé šĥîþ ĝàţé þŕöţéçţš ŕéļéàšéš ŵîţĥöüţ éṽéŕ ƒàîļîñĝ àñ öŕđîñàŕý ƃüîļđ öñ ţàŕĝéţ-ļàñĝüàĝé đŕîƒţ.
Öñ à þŕöĵéçţ çöññéçţéđ ţö à Bowrain šéŕṽéŕ, à ÇÎ ŕüñ öƒ kapi up éẋéçüţéš öñ
ţĥé šéŕṽéŕ ṽéñüé: ţĥé ĵöƃ þüšĥéš ţĥé đŕîƒţ, ţĥé šéŕṽéŕ ŕüñš ţĥé ļööþ öñ
ţĥé öŕĝàñîžàţîöñ'š ÀÎ ķéýš, šĥàŕéđ çöñţéñţ ḿéḿöŕý, àñđ ţéŕḿš, àñđ
ţĥé ŕéšüļţš çöḿé ƃàçķ ţö ţĥé ŵöŕķîñĝ ţŕéé. Ţĥé ŕüññéŕ ĥöļđš à šéŕṽéŕ ţöķéñ
àñđ ñö þŕöṽîđéŕ ķéýš.
Ţĥîš þàĝé ḿàþš ţĥé šüŕƒàçéš àñđ ţĥé çöñţŕàçţ ţĥéý šĥàŕé. Ţĥé šţéþ-ƃý-šţéþ ĝéñéŕîç ŵàļķţĥŕöüĝĥš (šçĥéđüļîñĝ, ĝàţîñĝ, çöšţ ŕéþöŕţîñĝ öñ ĜîţĤüƃ àñđ ĜîţĻàƃ) ļîṽé öñ ţĥé kapi šîţé: Ţĥé kapi ļööþ îñ ÇÎ.
Þŕöđüçé àñđ ĝàţé ƒŕöḿ ýöüŕ öŵñ ÇÎ, öŕ ļéţ ţĥé šéŕṽéŕ đö ƃöţĥ ŵîţĥ ñö þîþéļîñé àţ àļļ.
Ţĥé çöñţŕàçţ
Ţĥŕéé çöḿḿàñđš đîṽîđé ţĥé ŵöŕķ, àñđ ţĥéîŕ éẋîţ çöđéš àŕé ţĥé ŵĥöļé îñţéŕƒàçé à þîþéļîñé ñééđš:
| Çöḿḿàñđ | Ŕöļé | Éẋîţ ƃéĥàṽîöŕ |
|---|---|---|
kapi status | Öƃšéŕṽé: þéŕ-ļöçàļé çöṽéŕàĝé àñđ ĝàţé šţàñđîñĝ | Àļŵàýš 0: ƃéĥîñđ îš þéñđîñĝ ŵöŕķ, ñöţ àñ éŕŕöŕ |
kapi up | Þŕöđüçé: ŕüñš ţĥé kapi ļööþ | 0 ŵĥéţĥéŕ ţĥé ŕüñ çàüĝĥţ éṽéŕýţĥîñĝ üþ, þàŕķéđ ŵöŕķ ƒöŕ ŕéṽîéŵ, öŕ ŵéñţ öñ àƒţéŕ ţĥé éṽéñţ šţŕéàḿ éñđéđ éàŕļý; ñöñ-žéŕö ŵĥéñ ţĥé ŕüñ ƃŕöķé öŕ îţš öüţçöḿé îš üñķñöŵñ |
kapi check --ship | Éñƒöŕçé: ţĥé ŕéļéàšé ƃàŕ | 0 þàšš, 3 ĝàţé üñḿéţ, 4 à ĝàţé đîđ ñöţ ŕüñ, 1 öþéŕàţîöñàļ éŕŕöŕ |
Þàŕķéđ ŵöŕķ îš þéñđîñĝ ŕéṽîéŵ, ñöţ àñ éŕŕöŕ. Ţĥé ĝàţé îš ţĥé éẋþļîçîţ, öþţ-îñ éñƒöŕçéḿéñţ þöîñţ: ŵîŕé îţ îñţö ḿéŕĝé-ŕéǫüéšţ þîþéļîñéš àñđ à ǫüàļîţý ŕéĝŕéššîöñ çàññöţ ḿéŕĝé, ŵĥîļé đàý-ţö-đàý đŕîƒţ ƒļöŵš ţĥŕöüĝĥ ŕéṽîéŵ îñšţéàđ öƒ ƃŕéàķîñĝ ƃüîļđš.
Ţĥé šüŕƒàçéš
| Šüŕƒàçé | Ĥöŵ îţ ŕüñš | Ĝüîđé |
|---|---|---|
| ĜîţĤüƃ Àçţîöñš | setup-kapi îñšţàļļš ţĥé ÇĻÎ (ţĥé bowrain þļüĝîñ îñçļüđéđ ƃý đéƒàüļţ); kapi-action ŕüñš kapi up àñđ ŕéþöŕţš ŵĥàţ çĥàñĝéđ, àñđ à šţéþ öƒ ýöüŕ öŵñ çöḿḿîţš îţ öŕ öþéñš à þüļļ ŕéǫüéšţ. Ţĥé ŕéüšàƃļé kapi-workflows (up.yml@v1, gate.yml@v1) çöḿþöšé ƃöţĥ îñţö öñé-ļîñé ĵöƃš | ĜîţĤüƃ Àçţîöñš |
| ĜîţĻàƃ ÇÎ | kapi-components ƒŕöḿ ţĥé ÇÎ/ÇĐ Çàţàļöĝ: up đéļîṽéŕš à ḿéŕĝé ŕéǫüéšţ, check ĝàţéš ḿéŕĝé-ŕéǫüéšţ þîþéļîñéš | ĜîţĻàƃ ÇÎ |
| Àñý çöñţàîñéŕ ŕüññéŕ | ghcr.io/neokapi/kapi (çöšîĝñ-šîĝñéđ; ţĥé šéŕṽéŕ-šýñç þļüĝîñ îš þŕéîñšţàļļéđ, šö kapi up / push / pull ŵöŕķ öüţ öƒ ţĥé ƃöẋ) àñđ ţĥé ÇĻÎ đîŕéçţļý; ţĥé éẋîţ çöđéš àƃöṽé àŕé ţĥé çöñţŕàçţ | ţĥîš þàĝé |
| Ñö þîþéļîñé | Ţĥé ƒöŕĝé çöññéçţöŕ / Bowrain ĜîţĤüƃ Àþþ: ţĥé šéŕṽéŕ çöñṽéŕĝéš öñ éṽéŕý þüšĥ ţö ţĥé ţŕàçķéđ ƃŕàñçĥ àñđ đéļîṽéŕš ţĥé ŕéšüļţš ƃàçķ àš öñé ÞŔ/ḾŔ | Ţĥé Bowrain ĜîţĤüƃ Àþþ |
Ŵĥîçĥ ţö üšé ŵĥéñ
΃ ýöü öŵñ ţĥé ŕéþöšîţöŕý'š ÇÎ àñđ ŵàñţ çöñţŕöļ öṽéŕ ţŕîĝĝéŕš, đéļîṽéŕý, àñđ
ĝàţîñĝ, üšé kapi-action öñ ĜîţĤüƃ öŕ kapi-components öñ ĜîţĻàƃ; éàçĥ ĵöƃ
îš àñ öŕđîñàŕý þîþéļîñé šţéþ ýöü çàñ šĥàþé. Ƒöŕ ḿîñîḿàļ šéţüþ öñ ĜîţĤüƃ, ţĥé
ŕéüšàƃļé ŵöŕķƒļöŵš ĝîṽé ýöü ţĥé ŵĥöļé þŕöđüçé-àñđ-đéļîṽéŕ öŕ ĝàţé ĵöƃ àš à
šîñĝļé uses: ļîñé. Ŵĥéñ ñöƃöđý öŵñš ţĥé ŕéþöšîţöŕý'š ÇÎ (à đöçš,
ḿàŕķéţîñĝ, öŕ çöñţéñţ ŕéþöšîţöŕý) öŕ ýöü ŵàñţ žéŕö çöñƒîĝüŕàţîöñ îñ ţĥé
ŕéþöšîţöŕý àţ àļļ, çöññéçţ îţ šéŕṽéŕ-šîđé ŵîţĥ ţĥé
ƒöŕĝé çöññéçţöŕ öŕ ţĥé Bowrain ĜîţĤüƃ Àþþ: ţĥé šéŕṽéŕ
çöñṽéŕĝéš öñ éṽéŕý þüšĥ àñđ đéļîṽéŕš à þüļļ ŕéǫüéšţ ƃàçķ öñ îţš öŵñ.
Àüţĥéñţîçàţîñĝ à ŕüññéŕ
Ḿîñţ à ÇÎ ţöķéñ öñçé, ƒŕöḿ àñ àüţĥéñţîçàţéđ ḿàçĥîñé:
kapi auth login
kapi auth token create --name "ci" --expire-days 90
Ţĥé ţöķéñ (bwt_…) îš šĥöŵñ öñçé; šţöŕé îţ àš à ÇÎ šéçŕéţ îḿḿéđîàţéļý. Öñ
ţĥé ŕüññéŕ, BOWRAIN_AUTH_TOKEN çàŕŕîéš ţĥé çŕéđéñţîàļ, àñđ ţĥé ÇĻÎ çĥéçķš
îţ ƃéƒöŕé àñý šţöŕéđ ļöĝîñ:
BOWRAIN_AUTH_TOKEN=bwt_...
BOWRAIN_SERVER_URL=https://bowrain.example.com # self-hosted only
BOWRAIN_SERVER_URL îš öñļý ñééđéđ ƒöŕ à šéļƒ-ĥöšţéđ šéŕṽéŕ: ţĥé ĥöšţéđ
šéŕṽîçé (https://app.bowrain.cloud) îš ţĥé ƃüîļţ-îñ đéƒàüļţ, àñđ þŕöĵéçţ
çöḿḿàñđš (kapi up, push, pull, check) ŕéàđ ţĥé šéŕṽéŕ ƒŕöḿ ţĥé
çĥéçķéđ-öüţ ŕéçîþé'š bowrain: ƃļöçķ îñ àñý çàšé. Öñ ĜîţĤüƃ Àçţîöñš,
setup-kapi'š auth-token àñđ server îñþüţš éẋþöŕţ éẋàçţļý ţĥéšé ţŵö
ṽàŕîàƃļéš. Öñ ĜîţĻàƃ, šéţ ţĥéḿ àš ḿàšķéđ ÇÎ/ÇĐ ṽàŕîàƃļéš. Ļîšţ àñđ ŕéṽöķé
ţöķéñš ŵîţĥ kapi auth token list àñđ kapi auth token delete.
Ŵĥàţ à ĵöƃ ñééđš ƃéýöñđ ţĥé šéŕṽéŕ ţöķéñ đéþéñđš öñ îţš ṽéñüé:
- Šéŕṽéŕ ṽéñüé (à çöññéçţéđ þŕöĵéçţ): ñöţĥîñĝ. Ţĥé šéŕṽéŕ ĥöļđš ţĥé ÀÎ ķéýš; ţĥé ĵöƃ öñļý þüšĥéš, ŵàţçĥéš, àñđ þüļļš.
- Ļöçàļ ṽéñüé (
kapi up --local, öŕ à þŕöĵéçţ ŵîţĥ ñöbowrain:ƃļöçķ): ţĥé ļööþ ŕüñš îñšîđé ţĥé ĵöƃ àñđ ñééđš à þŕöṽîđéŕ ķéý, ƒöŕ éẋàḿþļéANTHROPIC_API_KEY, àš à ÇÎ šéçŕéţ. - Ĝàţé-öñļý ĵöƃš:
kapi check --shipŕéàđš ţĥé ŵöŕķîñĝ ţŕéé àñđ ñééđš ñö ÀÎ ķéýš; ŵĥéñ ţĥé ĝàţé éñƒöŕçéš ĝöṽéŕñéđ ţéŕḿš, ţĥé ĵöƃ ŕüñškapi pullƒîŕšţ àñđ ñééđš ţĥé šéŕṽéŕ ţöķéñ. Šéé Ĝàţé ĝöṽéŕñéđ ţéŕḿš îñ ÇÎ.
Ñéẋţ
- ĜîţĤüƃ Àçţîöñš: ţĥé đééþ ĝüîđé: šéţüþ, çàţçĥ-üþ, ĝàţéš, šýñç, ŕéüšàƃļé ŵöŕķƒļöŵš
- ĜîţĻàƃ ÇÎ: ţĥé
upàñđcheckçöḿþöñéñţš àĝàîñšţ à Bowrain šéŕṽéŕ - Ţĥé Bowrain ĜîţĤüƃ Àþþ: ƒöŕĝé đéļîṽéŕý ŵîţĥ ñö þîþéļîñé, ĜîţĻàƃ îñçļüđéđ
- Ĝàţé ĝöṽéŕñéđ ţéŕḿš îñ ÇÎ: ĝöṽéŕñéđ ţéŕḿš àš à ḿéŕĝé ĝàţé
- Ķééþîñĝ çöñţéñţ çàüĝĥţ üþ: ţĥé ḿöđéļ ƃéĥîñđ þŕöđüçé, þŕöḿöţé, ŕéļéàšé
- Ţĥé kapi ļööþ îñ ÇÎ: ţĥé ƒüļļ ĝéñéŕîç ŵàļķţĥŕöüĝĥš öñ ţĥé kapi šîţé