Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

lint-gitlab-ci

1.1.1 • Public • Published

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.

Install

npm i lint-gitlab-ci

DownloadsWeekly Downloads

21

Version

1.1.1

License

GPL-3.0-only

Unpacked Size

95.7 kB

Total Files

48

Last publish

Collaborators

  • avatar