lint-gitlab-ci
v1.1.1
Published
GitLab-ci script to lint .gitlab-ci.yml files.
Downloads
24
Maintainers
Readme
Lint GitLab CI
A module and cli that lints a .gitlab-ci.yml
file, using the GitLab ci lint api.
Installing
npm install -g lint-gitlab-ci
Module
Basic usage
import lintGitlabCi from "lint-gitlab-ci";
lintGitlabCi().then((result) => {
if (result.isValid) {
console.log("Yay!");
} else {
console.log("Nay!");
}
});
Options
import lintGitlabCi, { ILintGitlabCiOptions } from "lint-gitlab-ci";
const options: ILintGitlabCiOptions = {
filePath: "example-ci.yml",
api: {
baseUrl: "https://example.com/api",
version: "exampleVersion",
paths: {
lintCiYml: "example/path",
},
},
};
lintGitlabCi(options).then((result) => {
if (result.isValid) {
console.log("Yay!");
} else {
console.log("Nay!");
}
});
Cli
Cli basic usage
lint-gitlab-ci
This will lint a .gitlab-ci.yml
file and output any errors.
Specify file
To specify a different ci file, pass the filename as an argument.
lint-gitlab-ci example-ci.yml
Cli options
-u, --url
Specifies the GitLab api url to use - defaults to https://gitlab.com/api
.
lint-gitlab-ci --url https://example.com/api
-a, --api-version
Specifies the GitLab api version to use - defaults to v4
.
lint-gitlab-ci --api-version exampleVersion
-p, --ci-lint-path
Specifies the GitLab api ci linting path to use - defaults to ci/lint
.
lint-gitlab-ci --ci-lint-path example/path
Integration with husky
Install lint-gitlab-ci
and husky
.
npm install -D lint-gitlab-ci husky
Configure husky
to run the lint-gitlab-ci
cli before committing.
{
"husky": {
"hooks": {
"pre-commit": "lint-gitlab-ci"
}
}
}
This will validate the current .gitlab-ci.yml
and block the commit if the file is invalid.
Credit
This project started as a TypeScript
implementation of this project, but is now a completely new implementation.