{"ref":"artifact:rayatus-abapgit-commitlint","page":"/artifacts/rayatus-abapgit-commitlint","json":"/artifacts/rayatus-abapgit-commitlint.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"rayatus-abapgit-commitlint","name":"abapgit-commitlint","artifact_type":"package","ecosystem":"abap","domain":"developer-experience","origin_ring":"independent","description":{"one_line":"A set of abapGit user exits that checks a commit message against the rules a repository defines and can block the push when it fails, with the rules validated by a separate linter service.","short":"abapGit user exits checking commit messages against repository rules","what_it_solves":"Implements three of [abapGit](artifact:abapgit-abapgit)'s user exits: VALIDATE_BEFORE_PUSH runs the check just before changes go to the remote repository, and ENHANCE_REPO_TOOLBAR and ON_EVENT add a settings page per repository for choosing which rules to check and how to behave when one fails. A failing message raises a popup that cancels the push, unless that repository's settings allow a push with errors. Which linter runs is a setting too: an ABAP class implementing ZIF_ABAPGIT_COMMIT_LINTER, and a URL where the linter service runs. By default that is ZCL_ABAPGIT_COMMITLINT_SRV, which calls the [Node.js](external:nodejs) application [abap-srv-commitlint](https://github.com/rayatus/abap-srv-commitlint), where the [Conventional Commits](https://www.conventionalcommits.org/) rules are validated; the rule validation stops there, and this wires the abapGit hooks around it."},"links":{"repo":"https://github.com/rayatus/abapgit-commitlint"},"type_properties":{"placement":{"value":"in-host","sources":[{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README, Installation","checked":"2026-10-19","quote":"Use [abapgit](https://github.com/abapGit/abapGit) for installing this repo and then implement described userExits."}]},"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README, Installation","checked":"2026-10-19","quote":"Use [abapgit](https://github.com/abapGit/abapGit) for installing this repo and then implement described userExits."}]}},"source_available":true,"provides":[{"capability":"capability:abap-source-control","what_it_does":"Adds a commit-message check to the [abapGit](artifact:abapgit-abapgit) push flow, blocking a push whose message fails the rules configured for that repository.","sources":[{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README","checked":"2026-10-19","quote":"This repo allows abapGit to check if commit message complies with the commit rules defined per each repo."},{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README, Considerations","checked":"2026-10-19","quote":"**VALIDATE_BEFORE_PUSH**: just before pushing changes into remote repo, it executes ZCL_ABAPGIT_COMMITLINT and if errors a popup is shown while canceling that Push."},{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README, Considerations","checked":"2026-10-19","quote":"**ENHANCE_REPO_TOOLBAR**: adds a new abapGit page in repo settings so that you could decide per each repo which rules to check and how to behave if any is not correct."}]}],"requires":[{"ref":"artifact:abapgit-abapgit","requirement":"required","basis":"binding","role":"installation","for":"Installed through [abapGit](artifact:abapgit-abapgit), whose VALIDATE_BEFORE_PUSH, ENHANCE_REPO_TOOLBAR and ON_EVENT exits this repository implements; the README lists it first under Dependencies.","sources":[{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README, Installation","checked":"2026-10-19","quote":"Use [abapgit](https://github.com/abapGit/abapGit) for installing this repo and then implement described userExits."},{"url":"https://github.com/rayatus/abapgit-commitlint","title":"rayatus/abapgit-commitlint — README, Dependencies","checked":"2026-10-19","quote":"## Dependencies\n* [abapgit](https://github.com/abapGit/abapGit)\n* [abap-srv-commitlint](https://github.com/rayatus/abap-srv-commitlint)"}]}],"maintainers":["actor:rayatus"],"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-13"},"drafted_with_ai":true,"contributors":["actor:larshp","actor:rayatus"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors"},{"label":"Repository","tier":"poor","evidence":"pushed 2023-11, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"SAP_BASIS 755 and up, in its abaplint config: not 750 (SAP Business Suite 7 on SAP NetWeaver 7.50, maintained to 2027-12)"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 5 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":2,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":2,"forks":1,"open_issues":1,"archived":false,"pushed_at":"2023-11-06","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2023-01-06T19:45:00Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":4641,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2023-01-06","last_commit":"2023-11-06","commits":30,"contributors":2,"readme_path":"README.md","readme_sha":"bcb030b34905b811b020ba3c6bcdafa98b6c5932","repo_read":"2026-10-26","abap_syntax":{"repo":"rayatus/abapgit-commitlint","file":"abaplint.jsonc","url":"https://github.com/rayatus/abapgit-commitlint/blob/HEAD/abaplint.jsonc","version":"v755","floor":"755","checked":"2026-10-26"}},"edges":{"maintainers":[{"ref":"actor:rayatus","name":"Jorge Sancho","json":"/actors/rayatus.json"}],"contributors":[{"ref":"actor:rayatus","name":"Jorge Sancho","json":"/actors/rayatus.json"},{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}