Write a script to generate abra-apps.json #121
Labels
No Label
breaking-change
bug
CI/CD
design
documentation
duplicate
enhancement
help wanted
invalid
plugin
question
secrets
shell-completion
versioning
wontfix
No Milestone
No Assignees
2 Participants
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: coop-cloud/abra#121
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of coop-cloud/organising#51.
We discussed Python for this. We can re-use the installer logic to host this at https://abra-apps.cloud.autonomic.zone. This will be downloaded by
abra
to learn about what apps, versions and other metadata are available.The script needs to read the
~/.abra/apps/...
contents and generate something that looks like the JSON example in coop-cloud/organising#51 (comment). It needs to read tags andcompose.yml
files to get the version listings as well as theREADME.md
metdata values for each app.Here is a script to pull all the apps down btw.
FYI here is the useful output of
skopeo
when inspecting an image:Ok, here is the status:
Remaining things to do are:
The script should be assumed to largely broken / missing edge case coverage :)
Will go slow adding to it. It's modelled off the Gitea app README and setup.
Where things could be improved:
Given that #125 might be the repeating generation logic, it would be great if we could pass a specific app name to the script to generate only the values needed for that app and then it could read and update the existing JSON file. This would allow us to update specific apps on the fly when we need and we're in a rush.
Also wondering if we can easily make this output the Markdown for the app catalogue page, and drop the separate
app-catalogue.sh
?OK, this is probably good enough for now. If we wanna do further work, we can make tickets for that. I've released a new version which shows that the README parsing works across all the app repos. Also, I've fixed the versioning handling to match what we first imagined (
versions
contains a dict where all the keys are version values, not lists of service versions, those are now nested).