1.1.1 • Published 4 years ago

lint-gitlab-ci v1.1.1

Weekly downloads
81
License
GPL-3.0-only
Repository
gitlab
Last release
4 years ago

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.

1.1.1

4 years ago

1.1.0

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago