{"ref":"artifact:abaplint-abaplint","page":"/artifacts/abaplint-abaplint","json":"/artifacts/abaplint-abaplint.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abaplint-abaplint","name":"abaplint","artifact_type":"cli","ecosystem":"abap","domain":"developer-experience","origin_ring":"community-org","description":{"one_line":"Static analysis for ABAP that runs outside a system on serialised source in a repository, so ABAP checks run in a pull request and in CI before the code ever reaches a system.","short":"Static analysis for ABAP source outside a system","what_it_solves":"Puts ABAP checks in a pull request. ATC needs a system; this reads files, so it runs in CI before the code ever reaches one."},"links":{"repo":"https://github.com/abaplint/abaplint"},"compat":{"runtimes":["node","build-time"]},"source_available":true,"provides":[{"capability":"capability:abap-static-analysis","what_it_does":"Lints serialised ABAP source in CI, outside any system, so a pull request can be gated.","sources":[{"url":"https://github.com/abaplint/abaplint","title":"abaplint/abaplint — repository","checked":"2026-08-31"}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-08-31"},"maintainers":["actor:abaplint"],"contributors":["actor:abhisheksinha1601","actor:agoeb","actor:alexrhein","actor:andreaborgia-abo","actor:bigld","actor:boommaker17","actor:cohomology","actor:cwildt","actor:dgrhicron","actor:fabianlupa","actor:fdupret","actor:fossabot","actor:frehu","actor:g-back","actor:henrikgraugaard","actor:hhelibeb","actor:jan-jezek","actor:johanneskonings","actor:kaszub09","actor:larshp","actor:lucasborin","actor:magpasulke","actor:marcellourbani","actor:mbtools","actor:normanre","actor:oblomov-dev","actor:palimkarakshay","actor:pcf0","actor:pg-skoll","actor:pokrakam","actor:sbcgua","actor:schmelto","actor:smb","actor:stefan-riedel-seifert","actor:t0biii","actor:tjgurwara99","actor:zeatynis"],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"48 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"unknown","evidence":"last run skipped, 2026-10-22"}],"practice":[{"label":"Tests","tier":"good","evidence":"679 test files"},{"label":"Docs","tier":"good","evidence":"docs/ with 5 pages, README 2 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":319,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","majors":{},"license":null,"first_release":null,"last_release":null,"releases":0,"cadence_days":null,"maintainers":null,"repository":null,"peer_cds":null,"test_script":false,"types":false,"downloads_weekly":null,"stars":319,"forks":107,"open_issues":430,"archived":false,"pushed_at":"2026-10-23","license_spdx":"MIT","org_owned":true,"default_branch":"main","contributors":48,"tree_truncated":false,"test_files":679,"workflows":7,"other_ci":false,"readme_bytes":1635,"docs_files":5,"changelog":false,"license_file":true,"dts_files":1,"ci_status":"skipped","ci_run_at":"2026-10-22","ci_workflow":"syntax.abaplint.org","ci_event":"push","readme_path":"README.md","readme_sha":"383af37ea860020b579f830e8f0f5e921573470e","repository_directory":null,"dependencies":0,"node_engine":null,"downloads_monthly":null,"created_at":"2015-12-20T17:32:04Z","open_prs":6,"first_commit":"2015-12-20","last_commit":"2026-10-22","commits":3994,"repo_read":"2026-10-24"},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"github-releases","url":"https://github.com/abaplint/abaplint/releases"},"format":"github-releases","releases":[{"version":"2.20.4","date":"2019-12-31","date_source":"github","heading":"v2.20.4","url":"https://github.com/abaplint/abaplint/releases/tag/v2.20.4","sections":[],"hash":"e3b0c44298fc1c14"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:abaplint","name":"abaplint","json":"/actors/abaplint.json"}],"contributors":[{"ref":"actor:abhisheksinha1601","name":"Abhishek Sinha","json":"/actors/abhisheksinha1601.json"},{"ref":"actor:andreaborgia-abo","name":"Abo","json":"/actors/andreaborgia-abo.json"},{"ref":"actor:sbcgua","name":"Alexander Tsybulsky","json":"/actors/sbcgua.json"},{"ref":"actor:alexrhein","name":"alexrhein","json":"/actors/alexrhein.json"},{"ref":"actor:agoeb","name":"Andreas Goeb","json":"/actors/agoeb.json"},{"ref":"actor:boommaker17","name":"boommaker17","json":"/actors/boommaker17.json"},{"ref":"actor:cwildt","name":"Christian Wildt","json":"/actors/cwildt.json"},{"ref":"actor:henrikgraugaard","name":"Cykelmyggen","json":"/actors/henrikgraugaard.json"},{"ref":"actor:dgrhicron","name":"Dawid Gracek","json":"/actors/dgrhicron.json"},{"ref":"actor:bigld","name":"Domi Bigl","json":"/actors/bigld.json"},{"ref":"actor:fabianlupa","name":"Fabian Lupa","json":"/actors/fabianlupa.json"},{"ref":"actor:fdupret","name":"Florian Dupret","json":"/actors/fdupret.json"},{"ref":"actor:fossabot","name":"fossabot","json":"/actors/fossabot.json"},{"ref":"actor:frehu","name":"Frederik Hudák","json":"/actors/frehu.json"},{"ref":"actor:g-back","name":"Goran Back","json":"/actors/g-back.json"},{"ref":"actor:hhelibeb","name":"He H","json":"/actors/hhelibeb.json"},{"ref":"actor:jan-jezek","name":"Jan Ježek","json":"/actors/jan-jezek.json"},{"ref":"actor:johanneskonings","name":"Johannes Konings","json":"/actors/johanneskonings.json"},{"ref":"actor:cohomology","name":"Kilian Kilger","json":"/actors/cohomology.json"},{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"},{"ref":"actor:lucasborin","name":"Lucas Borin","json":"/actors/lucasborin.json"},{"ref":"actor:mbtools","name":"Marc Bernard","json":"/actors/mbtools.json"},{"ref":"actor:marcellourbani","name":"Marcello Urbani","json":"/actors/marcellourbani.json"},{"ref":"actor:kaszub09","name":"Marcin Kaszuba","json":"/actors/kaszub09.json"},{"ref":"actor:pokrakam","name":"Mike Pokraka","json":"/actors/pokrakam.json"},{"ref":"actor:normanre","name":"Norman","json":"/actors/normanre.json"},{"ref":"actor:oblomov-dev","name":"oblomov-dev","json":"/actors/oblomov-dev.json"},{"ref":"actor:palimkarakshay","name":"palimkarakshay","json":"/actors/palimkarakshay.json"},{"ref":"actor:pcf0","name":"PCF","json":"/actors/pcf0.json"},{"ref":"actor:pg-skoll","name":"pg-skoll","json":"/actors/pg-skoll.json"},{"ref":"actor:magpasulke","name":"Philipp Dölker","json":"/actors/magpasulke.json"},{"ref":"actor:stefan-riedel-seifert","name":"stefan-riedel-seifert","json":"/actors/stefan-riedel-seifert.json"},{"ref":"actor:smb","name":"Steffen","json":"/actors/smb.json"},{"ref":"actor:tjgurwara99","name":"Taj","json":"/actors/tjgurwara99.json"},{"ref":"actor:t0biii","name":"Tobias","json":"/actors/t0biii.json"},{"ref":"actor:schmelto","name":"Tom Schmelzer","json":"/actors/schmelto.json"},{"ref":"actor:zeatynis","name":"Zeatynis","json":"/actors/zeatynis.json"}],"explained_by":[{"ref":"content:patterns-for-using-llms-in-abap-development","name":"Patterns for using LLMs in ABAP development","json":"/content/patterns-for-using-llms-in-abap-development.json"}],"alternative_to_this":[],"needed_by":[{"ref":"artifact:alokm3hta-star-abap-offstack-testing","name":"abap-offstack-aunit","json":"/artifacts/alokm3hta-star-abap-offstack-testing.json","requirement":"required"},{"ref":"artifact:likweitan-abap-skills","name":"abap-skills","json":"/artifacts/likweitan-abap-skills.json","requirement":"required","role":"static-analysis"},{"ref":"artifact:catafeidi-abap-transport-review","name":"abap-transport-review","json":"/artifacts/catafeidi-abap-transport-review.json","requirement":"conditional","role":"quality-check","condition":"the abaplint GitHub Actions check is turned on for the repository"},{"ref":"artifact:abap2ui5-playground","name":"abap2UI5 Playground","json":"/artifacts/abap2ui5-playground.json","requirement":"required","role":"syntax-check"},{"ref":"artifact:arc-mcp-arc-1","name":"arc-1","json":"/artifacts/arc-mcp-arc-1.json"},{"ref":"artifact:coveles-claude-abap-dev","name":"claude-abap-dev","json":"/artifacts/coveles-claude-abap-dev.json","requirement":"conditional","role":"lint","condition":"the abap-review skill's lint step, as an abaplint MCP server exposing LintAbap and FixAbap or as the public CLI through npx @abaplint/cli"},{"ref":"artifact:tobiashofmann-off-stack-abap","name":"off-stack-abap","json":"/artifacts/tobiashofmann-off-stack-abap.json","requirement":"required"},{"ref":"artifact:abap2ui5-web-abap2ui5","name":"web-abap2UI5","json":"/artifacts/abap2ui5-web-abap2ui5.json","requirement":"required","role":"downporter"}],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}