eslint-formatter-gitlab
Version:
Show ESLint results directly in the GitLab code quality results
94 lines (66 loc) • 3.32 kB
Markdown
# ESLint Formatter for GitLab
[](https://gitlab.com/remcohaszing/eslint-formatter-gitlab/-/pipelines)
[](https://gitlab.com/remcohaszing/eslint-formatter-gitlab/-/pipelines)
[](https://github.com/sponsors/remcohaszing)
[](https://www.npmjs.com/package/eslint-formatter-gitlab)
[](https://www.npmjs.com/package/eslint-formatter-gitlab)
<img alt="" height="256" src="https://gitlab.com/remcohaszing/eslint-formatter-gitlab/-/avatar">
Show ESLint results directly in the
[GitLab code quality](https://docs.gitlab.com/ee/ci/testing/code_quality.html) results.
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Programmatic usage](#programmatic-usage)
- [Example](#example)
- [Configuration](#configuration)
- [Compatibility](#compatibility)
- [License](#license)
## Installation
Install `eslint` and `eslint-formatter-gitlab` using your package manager.
```sh
npm install --save-dev eslint eslint-formatter-gitlab
```
## Usage
Define a GitLab job to run `eslint`.
`.gitlab-ci.yml`:
```yaml
eslint:
image: node:22-alpine
script:
- npm ci
- npx eslint --format gitlab
artifacts:
reports:
codequality: gl-codequality.json
```
The formatter automatically detects a GitLab CI environment. It detects where to output the code
quality report based on the GitLab configuration file. It also prints ESLint issues to the GitLab
job console with links.
### Programmatic usage
The formatter can be used programmatically using ESLint.
```js
import { ESLint } from 'eslint'
const eslint = new ESLint()
const formatter = await eslint.loadFormatter('gitlab')
const results = await eslint.lintFiles([])
const formatted = await formatter.format(results)
```
## Example
An example of the results can be seen in
[Merge Request !1](https://gitlab.com/remcohaszing/eslint-formatter-gitlab/merge_requests/1) of
`eslint-formatter-gitlab` itself.
## Configuration
ESLint formatters don’t take any configuration options. `eslint-formatter-gitlab` uses GitLab’s
[predefined environment variables](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)
to configure the output. The following predefined environment variables are used:
- `CI_COMMIT_SHORT_SHA` to generate a link in the console output.
- `CI_CONFIG_PATH` to determine the GitLab CI configuration file to use. (Default: `.gitlab-ci.yml`)
- `CI_JOB_NAME` to determine which job configuration to read the code quality report path from.
- `CI_PROJECT_DIR` To determine relative paths. (Default: current working directory)
- `CI_PROJECT_URL` to generate a link in the console output.
In addition, the environment variable `ESLINT_CODE_QUALITY_REPORT` is used to override the location
to store the code quality report.
## Compatibility
This package is compatible with Node.js 20 or greater and ESLint 9 or greater.
## License
[MIT](LICENSE.md) © [Remco Haszing](https://gitlab.com/remcohaszing)