Commit Graph

679 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
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
renovate-bot 1d9a289888 chore(deps): update nginx docker tag to v1.31.1 2026-05-22 21:00:50 +00:00
renovate-bot e4215c09aa chore(deps): update nginx docker tag to v1.31.0 2026-05-14 23:04:17 +00: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
decentral1se 6ef8e1ff52 test: temporarily skip flaky test
See toolshed/abra#814
2026-04-01 11:37:07 +02:00
decentral1se d88b478503 test: unit tests clean up themselves
See toolshed/abra#792
2026-04-01 10:47:32 +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
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
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
ChasquiLabo 6f92ba0deb 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-21 20:37:47 +00:00
ChasquiLabo dcd830e3f8 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-21 01:44:54 +00:00
Weblate 8056703d59 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-02-20 16:25:39 +00:00
decentral1se 566bdf2bd8 Merge remote-tracking branch 'weblate/main' 2026-02-20 17:25:15 +01:00
decentral1se 24288c81d3 fix: missing i18n 2026-02-20 14:49:02 +01:00
ChasquiLabo a18f57488f chore: translation using Weblate (Spanish)
Currently translated at 91.2% (1043 of 1143 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-20 09:50:31 +00:00
decentral1se b2e691265a fix: consistent i18n usage on rootCmd 2026-02-20 10:49:04 +01:00
decentral1se bff23f0ae6 fix: translated help
Follows toolshed/abra#785
2026-02-20 10:46:52 +01:00
Weblate 403c7a3e5b 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-02-19 13:36:14 +00:00
3wordchant 66b932a553 Merge remote-tracking branch 'weblate/main' 2026-02-19 08:35:59 -05:00
3wordchant f64e4b62cf chore: Re-run make i18n 2026-02-19 08:28:14 -05:00
ChasquiLabo e80ecbc332 chore: translation using Weblate (Spanish)
Currently translated at 90.9% (1041 of 1144 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-19 08:27:33 -05:00
decentral1se 78899f173c fix: remove double help flag 2026-02-19 00:42:56 +01:00
ChasquiLabo 90142cb783 chore: translation using Weblate (Spanish)
Currently translated at 90.9% (1041 of 1144 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-18 23:08:37 +00:00
decentral1se 8dbde3d158 fix: wrap string (i18n) 2026-02-19 00:07:18 +01:00
Apfelwurm 8f42e36302 feat: bytes/base64 secret generation 2026-02-18 20:41:45 +01:00
ChasquiLabo c2552ec2f6 chore: translation using Weblate (Spanish)
Currently translated at 90.9% (1041 of 1144 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-18 13:52:56 +00:00
ChasquiLabo 728f873a3e chore: translation using Weblate (Spanish)
Currently translated at 90.0% (1030 of 1144 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-17 10:40:21 +00:00
Weblate 32bb05abba 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-02-16 11:06:33 +00:00
decentral1se 3d2006a696 chore: i18n 2026-02-16 12:06:24 +01:00
decentral1se 4e0eb739b4 feat: ls requires --chaos due to Ensure logic
Follows toolshed/abra#771
2026-02-15 17:57:31 +00:00
Weblate 6b661dd7a7 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-02-15 17:57:28 +00:00
decentral1se 39102752c0 fix: more graceful bailing if borked .env.sample 2026-02-15 18:26:05 +01:00
decentral1se 5cfc1c076c fix: remove timeout 2026-02-15 16:34:18 +00:00
Weblate 10f7ed74b0 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-02-15 16:34:05 +00:00
decentral1se 227d37dc26 chore: i18n 2026-02-15 17:08:14 +01:00
Weblate 4349ee82bc 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-02-15 13:47:09 +00:00
decentral1se 1fe2d0421b chore: i18n 2026-02-15 14:41:03 +01:00
Weblate 2c5a273fa7 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-02-15 13:08:19 +00:00
decentral1se c54fe3ef85 chore: i18n 2026-02-15 14:08:08 +01:00
ChasquiLabo bda0d23d39 chore: translation using Weblate (Spanish)
Currently translated at 87.8% (1002 of 1141 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-15 09:40:56 +00:00
ChasquiLabo b9dc7b8437 chore: translation using Weblate (Spanish)
Currently translated at 87.7% (1001 of 1141 strings)

Translation: Co-op Cloud/abra
Translate-URL: https://translate.coopcloud.tech/projects/co-op-cloud/abra/es/
2026-02-14 13:52:56 +00:00
Apfelwurm 064c9f5d65 fix: breaking GetRecipeVersions when an invalid recipe version exists 2026-02-13 21:51:46 +00:00
iexos 98e48c95c7 fix: duplicate R015 rule number 2026-02-13 15:57:21 +01:00