{"id":19174289,"url":"https://github.com/marc-bernard-tools/abaplint-ext-for-abapgit","last_synced_at":"2025-05-07T18:11:04.435Z","repository":{"id":103430840,"uuid":"360984343","full_name":"Marc-Bernard-Tools/abaplint-Ext-for-abapGit","owner":"Marc-Bernard-Tools","description":"abaplint Extension for abapGit","archived":false,"fork":false,"pushed_at":"2025-04-08T14:23:26.000Z","size":487,"stargazers_count":13,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-20T01:32:59.812Z","etag":null,"topics":["abap","abapgit","abaplint","extension","sap"],"latest_commit_sha":null,"homepage":"https://abapgit.marcbernardtools.com","language":"ABAP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Marc-Bernard-Tools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"mbtools"}},"created_at":"2021-04-23T19:20:18.000Z","updated_at":"2025-01-19T13:54:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"b42fcf65-8c58-43ba-9d91-a39f24bcea9a","html_url":"https://github.com/Marc-Bernard-Tools/abaplint-Ext-for-abapGit","commit_stats":null,"previous_names":["marc-bernard-tools/abaplint-ext-for-abapgit"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc-Bernard-Tools%2Fabaplint-Ext-for-abapGit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc-Bernard-Tools%2Fabaplint-Ext-for-abapGit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc-Bernard-Tools%2Fabaplint-Ext-for-abapGit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc-Bernard-Tools%2Fabaplint-Ext-for-abapGit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Marc-Bernard-Tools","download_url":"https://codeload.github.com/Marc-Bernard-Tools/abaplint-Ext-for-abapGit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931555,"owners_count":21827112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abap","abapgit","abaplint","extension","sap"],"created_at":"2024-11-09T10:17:07.498Z","updated_at":"2025-05-07T18:11:04.412Z","avatar_url":"https://github.com/Marc-Bernard-Tools.png","language":"ABAP","funding_links":["https://github.com/sponsors/mbtools"],"categories":[],"sub_categories":[],"readme":"![Version](https://img.shields.io/endpoint?url=https://shield.abappm.com/github/Marc-Bernard-Tools/abaplint-Ext-for-abapGit/src/zif_abaplint_abapgit_ext.intf.abap/c_version\u0026label=Version\u0026color=blue)\n\n[![License](https://img.shields.io/github/license/Marc-Bernard-Tools/abaplint-Ext-for-abapGit?label=License\u0026color=success)](LICENSE)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?color=success)](https://github.com/Marc-Bernard-Tools/.github/blob/main/CODE_OF_CONDUCT.md)\n[![REUSE Status](https://api.reuse.software/badge/github.com/Marc-Bernard-Tools/abaplint-Ext-for-abapGit)](https://api.reuse.software/info/github.com/Marc-Bernard-Tools/abaplint-Ext-for-abapGit)\n[![ClearlyDefined Score](https://img.shields.io/clearlydefined/score/git/github/marc-bernard-tools/abap-lint-ext-for-abapgit/e7046746c18809e14f129c1644b2c2bf537e58ac?label=ClearlyDefined%20Score)](https://clearlydefined.io/definitions/git/github/marc-bernard-tools/abap-lint-ext-for-abapgit/e7046746c18809e14f129c1644b2c2bf537e58ac)\n\n# abaplint Extension for abapGit\n\nView [abaplint](https://abaplint.org/) results and detailed findings directly in [abapGit](https://github.com/abapGit/abapGit). \n\nMade by [Marc Bernard Tools](https://marcbernardtools.com/) giving back to the [SAP Community](https://community.sap.com/).\n\nNO WARRANTIES, [MIT License](LICENSE)\n\n## The Problem\n\nAfter committing changes from abapGit to your repository and running abaplint there, you have to switch to GitHub or another tool to view the abaplint results. If the abaplint check fails, the detailed findings are hard to process since they don't link back to your SAP system where you want to fix the issues.\n\n![github2](img/github_2.png)\n\nNote: VSCode with [abaplint extension](https://marketplace.visualstudio.com/items?itemName=larshp.vscode-abaplint) is an exception showing lint results within your ABAP code. But then you are not using abapGit in the first place.\n\n## The Solution\n\nThis repository provides an extension for abapGit integrating the abaplint results (as [user exits](https://docs.abapgit.org/ref-exits.html)). A summary of the results is displayed in the abapGit repository view and details are shown on a separate page with a code preview and an option to jump directly to the code in question. \n\n### Repository View\n\nUnder the name of the repository, the status and summary of the last abaplint check will be displayed. \n\n![check1](img/check_success.png)\n\n![check2](img/check_in_progress.png)\n\n![check3](img/check_failure.png)\n\nYou can click on the status icon to open the corresponding page on GitHub. If you click on the result summary, the detailed issues will be shown.\n\n### Issue View\n\nThe issues are listed similarly to syntax and ATC checks in abapGit. For each finding, the view shows the object type, name, and line number. Below, it prints the abaplint message. A link on the error code opens the corresponding definition on [rules.abaplint.org](https://rules.abaplint.org/). \n\n![findings1](img/findings_error_1.png)\n\nOptionally, you can sort the results by object, location, or error code. You can also hide the source code preview.\n\n![findings1](img/findings_error_2.png)\n\n## Installation\n\n### Prerequisites\n\n1. SAP Basis 7.02 or higher\n\n2. abapGit needs to be installed\n\n3. abaplint must be installed and given access to your GitHub repository.\n\n   - Install abaplint\n\n     https://github.com/apps/abaplint/installations/new\n\n   - Give abaplint access to your repos \n\n     https://github.com/settings/installations\n\n   - Add abaplint.json to your repo\n\n     Get the latest default from [schema.abapgit.org](https://schema.abaplint.org/default.json)\n\n### Repository\n\nYou can install the repository using [abapGit](https://github.com/abapGit/abapGit) creating a new online repository for https://github.com/Marc-Bernard-Tools/ABAP-Lint-Ext-for-abapGit. We recommend using package `$ABAPGIT-EXT-ABAPLINT`.\n\n### User Exits\n\nImplement abapGit [user exits](https://docs.abapgit.org/ref-exits.html) [`wall_message_repo`](https://docs.abapgit.org/ref-exits.html#wall_message_repo) and [`on_event`](https://docs.abapgit.org/ref-exits.html#on_event) as follows:\n\n```abap\n  METHOD zif_abapgit_exit~wall_message_repo.\n\n    zcl_abaplint_abapgit_ext_exit=\u003eget_instance( )-\u003ewall_message_repo(\n      is_repo_meta = is_repo_meta\n      ii_html      = ii_html ).\n\n  ENDMETHOD.\n```\n\n```abap\n  METHOD zif_abapgit_exit~on_event.\n\n    IF rs_handled IS INITIAL.\n      rs_handled = zcl_abaplint_abapgit_ext_exit=\u003eget_instance( )-\u003eon_event( ii_event ).\n    ENDIF.\n\n  ENDMETHOD.\n```\n\n### SSL and Certificates\n\nThe abaplint status is retrieved via `https://api.github.com/`. Therefore, a proper SSL configuration and certificates for `api.github.com` are required. See [SSL setup](https://docs.abapgit.org/guide-ssl-setup.html) for details.\n\n## Contributions\n\nAll contributions are welcome! Read our [Contribution Guidelines](CONTRIBUTING.md), fork this repo, and create a pull request.\n\n## About\n\nMade with ❤️ in Canada\n\nCopyright 2025 Marc Bernard \u003chttps://marcbernardtools.com/\u003e\n\nFollow [@marcf.be](https://bsky.app/profile/marcf.be) on Bluesky and [@marcfbe](https://linkedin.com/in/marcfbe) on LinkedIn\n\n\u003cp\u003e\u003ca href=\"https://marcbernardtools.com/\"\u003e\u003cimg width=\"160\" height=\"65\" src=\"https://marcbernardtools.com/info/MBT_Logo_640x250_on_Gray.png\" alt=\"MBT Logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarc-bernard-tools%2Fabaplint-ext-for-abapgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarc-bernard-tools%2Fabaplint-ext-for-abapgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarc-bernard-tools%2Fabaplint-ext-for-abapgit/lists"}