Metadata-Version: 2.1
Name: pre-commit-gitlabci-lint
Version: 1.1.3
Summary: Validate your GitLab CI with GitLab's API endpoint.
Home-page: https://github.com/bjd2385/pre-commit-gitlabci-lint
Author: Emma Doyle
Author-email: bjd2385.linux@gmail.com
Project-URL: Bug Reports, https://github.com/bjd2385/pre-commit-gitlabci-lint/issues
Project-URL: Source, https://github.com/bjd2385/pre-commit-gitlabci-lint
Keywords: pre-commit,GitLab,CI,continuous integration
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8, <4
Description-Content-Type: text/markdown
License-File: LICENSE.txt

GitLab CI validation pre-commit-hook
------------------------------------

This is a [pre-commit hook](https://pre-commit.com/) that uses GitLab's `/api/v4/ci/lint` lint endpoint to validate the contents of `.gitlab-ci.yml` files. This is similar in fashion to how CircleCI pre-commit hooks validate that product's required configs, which is by uploading your config to an endpoint.

By default, this tool sends your configuration to https://gitlab.com, though this can be overridden (see below).

This tool has been extended and adapted from [kadrach's](https://github.com/kadrach/pre-commit-gitlabci-lint) implementation (cf. the [license](LICENSE.txt)).

## Usage

### Requirements

GitLab Lint API now [requires authorization](https://gitlab.com/gitlab-org/gitlab/-/issues/321290).

1. [Create Access Token](https://gitlab.com/-/profile/personal_access_tokens) with `api` scope.
2. Set access token value as `GITLAB_TOKEN` environment variable.
3. Ensure Python version available is 3.8 or later.

**Warning** Please note the token should not be shared and if leaked can cause significant harm.

### Example

An example `.pre-commit-config.yaml`:

```yaml
---
repos:
  - repo: https://github.com/bjd2385/pre-commit-gitlabci-lint
    rev: <latest release>
    hooks:
      - id: gitlabci-lint
      # args: ["https://custom.gitlab.host.com"]
```

## Development

Install dependencies by running `./scripts/dependencies.sh`. Or, if you already have `yarn` in your path, `yarn install:deps`.

### Releases

Update `src/gitlabci_lint/validate.py/__version__`, `setup.py/version`-string, and tag this repo's master branch with the same version string (prefixed by '`v`.)

## TODOs:

[ ] Allow passing multiple config files for validation in template repositories.
[ ]
