https://github.com/vvscode/gitlab-mr-require-checkboxes
[CLI] Require checkboxes in GitLab MR description to be checked
https://github.com/vvscode/gitlab-mr-require-checkboxes
Last synced: 6 months ago
JSON representation
[CLI] Require checkboxes in GitLab MR description to be checked
- Host: GitHub
- URL: https://github.com/vvscode/gitlab-mr-require-checkboxes
- Owner: vvscode
- License: mit
- Created: 2024-08-07T07:50:57.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-22T07:34:19.000Z (almost 2 years ago)
- Last Synced: 2025-03-20T17:41:56.106Z (over 1 year ago)
- Language: TypeScript
- Size: 235 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gitlab-mr-require-checkboxes
[](https://www.npmjs.com/package/gitlab-mr-require-checkboxes)
[](https://github.com/vvscode/gitlab-mr-require-checkboxes/actions)
## [CLI] Require checkboxes in GitLab MR description to be checked
A simple CLI tool to check that all checkboxes in a merge request description are checked is designed as follows:
- Fetch Merge Request Data: The tool connects to the Git repository hosting service (e.g., GitHub, GitLab) and retrieves the merge request description.
- Parse Checkboxes: It parses the description to identify all checkboxes.
- Check Checkbox Status: It verifies that all checkboxes are marked as checked.
- Exit with status code 1 if there are non ticked checkboxes.
Related links:
- [How Can We Check All Checkbox Are Checked in Gitlab Merge Request Template](https://stackoverflow.com/questions/73302452/how-can-we-check-all-checkbox-are-checked-in-gitlab-merge-request-template)
- [Can I require a "sign-off" checkbox to be checked before a merge can be done?](https://stackoverflow.com/questions/68802300/can-i-require-a-sign-off-checkbox-to-be-checked-before-a-merge-can-be-done)
The cli uses environment variables to pass settings:
- `GITLAB_API_TOKEN` - this one you need to create, it's used to access gitlab API
- `CI_PROJECT_ID`, `CI_MERGE_REQUEST_IID`, `CI_SERVER_URL` are passed to pipeline by Gitlab
## How to use in ci config:
```yml
# Define GITLAB_API_TOKEN on the job/project level
check-mr-description:
image: 'some-image-with-npx'
stage: install
env
only:
- merge_requests
script:
- npx -y gitlab-mr-require-checkboxes@latest check
```
### Extra configuration
You can mark part of checkboxes as required (by default it's applicable to the whole description) with wrapping them into wrappers:
```md
- [x] required 1
- [ ] required 2
- [x] optional 1
- [ ] optional 2
```
Wrapper can be used multiple times.
### Note
It will add MR note with a fail message as well. If you want to customize message - set `NOTE_ERROR_MESSAGE` environment variable. It you don't need it - put it to `""` (empty string)