{"ref":"artifact:miyasuta-cap-github-action","page":"/artifacts/miyasuta-cap-github-action","json":"/artifacts/miyasuta-cap-github-action.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"miyasuta-cap-github-action","name":"cap-github-action","artifact_type":"sample","ecosystem":"cap","domain":"developer-experience","secondary_domains":["operations-and-runtime"],"origin_ring":"independent","description":{"one_line":"A CAP project whose MTA build and Cloud Foundry deploy run as two jobs of one [GitHub](external:github) Actions workflow, with the Cloud Foundry credentials read from repository secrets.","short":"CAP project built and deployed to Cloud Foundry by GitHub Actions","what_it_solves":"What gets deployed is an ordinary CAP project, a Node.js service module, an approuter, an `hdb` deployer, xsuaa and a HANA HDI container in `mta.yaml`; the workflow is the subject, and the repository description reads \"GitHub Action demo\". The build job installs `mbt` globally, runs `mbt build -p cf` and uploads `./mta_archives/github-action_1.0.0.mtar`, the name the descriptor's own `ID` and `version` make, written out in both jobs rather than derived. The deploy job downloads that artifact and calls the third-party `guerric-p/cf-cli-action` with `deploy ./github-action_1.0.0.mtar -f`, taking `CF_API`, `CF_USERNAME`, `CF_PASSWORD`, `CF_ORG` and `CF_SPACE` from secrets. It triggers on push and pull request against main and on manual dispatch, sets up Node 18.x and `actions/checkout@v3`, runs no test step, and passes nothing between the jobs but the archive."},"links":{"repo":"https://github.com/miyasuta/cap-github-action"},"identity":{"license":"UNLICENSED"},"compat":{"runtimes":["node"],"cds_range":"^7","deployment":["cf"]},"demonstrates":["capability:ci-cd","capability:deployment"],"maintainers":["actor:mio-yasutake"],"provenance":{"discovered_via":[{"source":"source:github","channel":"miyasuta"}],"first_seen":"2026-10-08"},"use_as":"reference","contributors":["actor:mio-yasutake"],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"poor","evidence":"pushed 2023-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"poor","evidence":"^7 — stops before cds 9"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"workflows present, no completed run on the default branch"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"poor","evidence":"README 1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":0,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2023-09-12","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2023-09-11T20:25:15Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":675,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2023-09-11","last_commit":"2023-09-12","commits":5,"contributors":1,"readme_path":"README.md","readme_sha":"d18474235339ae351787f5d911596633cb257612","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:mio-yasutake","name":"Mio Yasutake","json":"/actors/mio-yasutake.json"}],"contributors":[{"ref":"actor:mio-yasutake","name":"Mio Yasutake","json":"/actors/mio-yasutake.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}