Commit Graph

2331 Commits

Author SHA1 Message Date
Linus Gasser f230f89dcb feat(app): support git-URL recipes in 'abra app new'
Allow `abra app new <git-url>` to use a recipe from outside the
catalogue. On clone, a `.abra-source` sidecar records the canonical
host/path name (the on-disk directory escapes "/" and "." lossily), and
IsClean ignores it. When templating the app's .env, a `RECIPE=<canonical
name>` line is injected so a later `abra app deploy`, possibly on another
machine, re-fetches the recipe from the same git source. `recipe ls` now
shows a source column listing these external recipes alongside catalogue
ones.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 22:40:10 +02:00
Linus Gasser 95220049e8 feat(recipe): normalize git URLs to canonical host/path names
Add NormalizeRecipeName to canonicalize the various ways a recipe can be
referenced - https/http/ssh URLs, SCP-style git@host:path, already-
canonical host/path, and short catalogue names - to a single stable
"host/path" form, preserving any ":version" suffix. Wire it into
recipe.Get and ValidateRecipe so every entry point accepts git URLs, and
add Recipe.ShortName to recover the bare recipe name from a prefixed one.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 22:39:53 +02:00
Linus Gasser 056a6be38d fix(recipe): reject branch names as :version with a clear error
Passing a branch as the ":version" suffix previously failed with an
opaque "unable to resolve" error from go-git. Detect when the requested
revision matches a branch on a configured remote and fail with a message
explaining that ":<version>" only supports tags or commit hashes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 22:39:36 +02:00
Linus Gasser 3c24ae8111 fix(formatter): guard ShortenID/SmallSHA against short input
ShortenID and SmallSHA sliced their input to a fixed length without
checking it was long enough, panicking on shorter strings. Return the
input unchanged when it is already shorter than the cut. Also replace the
blank Commit placeholder with an explicit "unknown-commit" sentinel.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 22:39:16 +02:00
renovate-bot e5c65b8fa0 chore(deps): update alpine docker tag to v3.24 2026-06-09 21:00:57 +00:00
Weblate e1b10f6020 chore: update translation files
Updated by "Update PO files to match POT (msgmerge)" add-on in Weblate.

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/
2026-06-09 14:36:32 +00:00
moritz 8e4ed7b689 chore: make i18n 2026-06-09 16:30:08 +02:00
moritz a44fde2df2 fix(new): checkout given recipeVersion before generating env closes #862 2026-06-09 16:09:58 +02:00
renovate-bot e623f55852 chore(deps): update golang docker tag 2026-06-08 17:01:04 +00:00
renovate-bot 11e6f28a60 chore(deps): update module golang.org/x/term to v0.44.0 2026-06-08 16:01:46 +00:00
renovate-bot acec067d76 chore(deps): update golang docker tag 2026-06-08 14:01:12 +00:00
renovate-bot f50a57af7a chore(deps): update module golang.org/x/sys to v0.46.0 2026-06-08 13:01:32 +00:00
renovate-bot 776693acc0 chore(deps): update golang docker tag 2026-05-22 23:01:07 +00:00
renovate-bot 5dea5f7746 chore(deps): update module golang.org/x/sys to v0.45.0 2026-05-22 22:01:49 +00:00
renovate-bot 1d9a289888 chore(deps): update nginx docker tag to v1.31.1 2026-05-22 21:00:50 +00:00
devydave c7bd55e371 feat: adds nix flake 2026-05-20 22:29:47 +00:00
renovate-bot 4276337b0f chore(deps): update golang docker tag 2026-05-18 22:01:06 +00:00
renovate-bot 90ca856b64 chore(deps): update module github.com/go-git/go-git/v5 to v5.19.1 2026-05-18 21:01:33 +00:00
renovate-bot f2dd65491d chore(deps): update golang docker tag 2026-05-15 16:01:27 +00:00
renovate-bot 0e902ed897 chore(deps): update coopcloud.tech/tagcmp digest to c26951b 2026-05-15 14:01:42 +00:00
renovate-bot db001c1ba4 chore(deps): update tonistiigi/xx docker tag to v1.9.0 2026-05-15 00:00:59 +00:00
renovate-bot e4215c09aa chore(deps): update nginx docker tag to v1.31.0 2026-05-14 23:04:17 +00:00
renovate-bot e0e6dcb710 chore(deps): update otel/weaver docker tag to v0.23.0 2026-05-14 23:00:58 +00:00
renovate-bot e7ddb74a08 chore(deps): update module golang.org/x/term to v0.43.0 2026-05-14 22:04:37 +00:00
renovate-bot 24a5e6334f chore(deps): update golang docker tag 2026-05-14 22:00:58 +00:00
renovate-bot 9d8eb2317e chore(deps): update module golang.org/x/sys to v0.44.0 2026-05-14 21:01:45 +00:00
renovate-bot 5945ea8e1b chore(deps): update module github.com/go-git/go-git/v5 to v5.19.0 2026-05-14 20:01:30 +00:00
renovate-bot e170d1c971 chore(deps): update alpine docker tag to v3.23 2026-05-14 19:04:12 +00:00
renovate-bot 5eba3abb1b chore(deps): update golang docker tag 2026-05-14 19:01:12 +00:00
renovate-bot df5a38e887 chore(deps): update module github.com/decentral1se/cobra to v1.10.2 2026-05-14 18:01:50 +00:00
decentral1se 1e80d111e6 test: less flaky test 2026-05-02 09:56:40 +02:00
Weblate 7a079b78de chore: update translation files
Updated by "Update PO files to match POT (msgmerge)" add-on in Weblate.

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/
2026-04-11 13:54:52 +00:00
iexos 7524a785ce chore: make i18n 2026-04-11 11:36:14 +02:00
iexos 1013f669bb fix: i18n & clarify no release notes msg 2026-04-10 23:22:40 +02:00
decentral1se aae20f07cc fix: general golang path [ci skip] 2026-04-03 22:59:21 +02:00
decentral1se 6ef8e1ff52 test: temporarily skip flaky test
See toolshed/abra#814
2026-04-01 11:37:07 +02:00
decentral1se 7fb9675b1e chore: golang 1.26 && make deps 2026-04-01 11:25:57 +02:00
decentral1se d88b478503 test: unit tests clean up themselves
See toolshed/abra#792
2026-04-01 10:47:32 +02:00
decentral1se 7a735043cd fix: unbork json [ci skip] 2026-03-30 09:40:13 +02:00
decentral1se e610f32c35 fix: ignore new forked deps [ci skip] 2026-03-29 18:15:47 +02:00
p4u1 e04a1e15c4 feat: add filename to error message when yaml file is invalid
Before:
FATA <internal/validate.go:84> unable to validate recipe: yaml: line 3: did not find expected key

After:
FATA <internal/validate.go:84> unable to validate recipe: <redacted>/recipes/monitoring-ng/compose.grafana-oidc.yml: yaml: line 3: did not find expected key
2026-03-20 14:42:14 +01:00
decentral1se 9d401202b4 test: ensure "release, fail, release" works
See toolshed/abra#794
2026-03-05 11:28:34 +01:00
decentral1se 6504be6403 test: ensure reproducible version 2026-03-05 11:28:33 +01:00
Weblate d4944dbf35 chore: update translation files
Updated by "Update PO files to match POT (msgmerge)" add-on in Weblate.

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/
2026-03-03 00:03:00 +00:00
decentral1se 8d8d4f799d chore: i18n 2026-03-03 01:02:49 +01:00
iexos 0633f24d1b feat: recipe release reverts completely on failure 2026-03-03 00:02:15 +00:00
decentral1se 2e062899c7 feat: release make target 2026-03-01 09:42:59 +01:00
decentral1se fbd7275f03 build: remove broken goreleaser automagic
See toolshed/abra#780
2026-03-01 09:40:29 +01:00
ChasquiLabo cedf185e97 chore: translation using Weblate (Spanish)
Currently translated at 91.1% (1048 of 1150 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-28 13:52:56 +00:00
decentral1se 06a57ded02 chore: 0.13.0-beta 0.13.0-beta 2026-02-23 17:26:42 +01:00