Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including lint-gitlab-ci with all npm packages installed. Try it out:

var lintGitlabCi = require("lint-gitlab-ci")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

lint-gitlab-ci v1.1.1

GitLab-ci script to lint .gitlab-ci.yml files.

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.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free