pre-commit Usage#

check-jsonschema is designed to seamlessly integrate into your workflow as a pre-commit hook.

Supported Hooks#

check-jsonschema#

Validate JSON or YAML files against a jsonschema on disk or fetched via HTTP(S). You must specify a schema using pre-commit args configuration.

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-jsonschema
      files: ^data/.*\.json$
      args: ["--schemafile", "schemas/foo.json"]

check-metaschema#

Validate JSON Schema files against their matching metaschema, as specified in their "$schema" key.

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-metaschema
      files: ^schemas/.*\.json$

check-azure-pipelines#

Validate Azure Pipelines config against the schema provided by Microsoft

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-azure-pipelines

check-bamboo-spec#

Validate Bamboo Specs against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-bamboo-spec

check-bitbucket-pipelines#

Validate Bitbucket Pipelines against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-bitbucket-pipelines

check-buildkite#

Validate Buildkite Pipelines against the schema provided by Buildkite

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-buildkite

check-cloudbuild#

Validate Google Cloud Build config against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-cloudbuild

check-dependabot#

Validate Dependabot Config (v2) against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-dependabot

check-drone-ci#

Validate Drone-CI Config against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-drone-ci

check-github-actions#

Validate GitHub Actions against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-github-actions

check-github-workflows#

Validate GitHub Workflows against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-github-workflows

check-gitlab-ci#

Validate GitLab CI config against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-gitlab-ci

check-readthedocs#

Validate ReadTheDocs config against the schema provided by ReadTheDocs

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-readthedocs

check-renovate#

Validate Renovate config against the schema provided by Renovate (does not support renovate config in package.json)

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-renovate

check-travis#

Validate Travis Config against the schema provided by SchemaStore

example config#
- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-travis

Example Usages#

Reimplement check-github-workflows#

Note

This behaves slightly differently from check-github-workflows and is not recommended. It is here only to demonstrate how --schemafile can be used.

The check-jsonschema hook can run any JSON Schema against a file or set of files. For example, to implement the GitHub workflow check manually, you could do this:

- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-jsonschema
      name: "Check GitHub Workflows"
      files: ^\.github/workflows/[^/]+$
      types: [yaml]
      args: ["--schemafile", "https://json.schemastore.org/github-workflow"]

Check a builtin schema#

check-jsonschema packages some builtin schemas for implementing checks.

To check with the builtin schema that a GitHub workflow sets timeout-minutes on all jobs:

- repo: https://github.com/python-jsonschema/check-jsonschema
  rev: 0.27.2
  hooks:
    - id: check-jsonschema
      name: "Check GitHub Workflows set timeout-minutes"
      files: ^\.github/workflows/[^/]+$
      types: [yaml]
      args: ["--builtin-schema", "github-workflows-require-timeout"]