Skip to content

Commit 81709d4

Browse files
committed
ci: Vendor remote YAML schemas
This is necessary because pre-commit CI doesn't have Internet access and thus cannot download schemas itself.
1 parent c03bd13 commit 81709d4

11 files changed

+4486
-11
lines changed

.pre-commit-config.yaml

+18-11
Original file line numberDiff line numberDiff line change
@@ -85,31 +85,38 @@ repos:
8585
# - id: check-azure-pipelines
8686
- id: check-dependabot
8787
- id: check-github-workflows
88+
# NOTE: If any of the below schema files need to be changed, be sure to
89+
# update the `ci/vendor_schemas.py` script.
8890
- id: check-jsonschema
91+
name: "Validate AppVeyor config"
8992
files: ^\.appveyor\.yml$
90-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/appveyor.json"]
93+
args: ["--verbose", "--schemafile", "ci/schemas/appveyor.json"]
9194
- id: check-jsonschema
95+
name: "Validate CircleCI config"
9296
files: ^\.circleci/config\.yml$
93-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/circleciconfig.json"]
97+
args: ["--verbose", "--schemafile", "ci/schemas/circleciconfig.json"]
9498
- id: check-jsonschema
99+
name: "Validate GitHub funding file"
95100
files: ^\.github/FUNDING\.yml$
96-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/github-funding.json"]
101+
args: ["--verbose", "--schemafile", "ci/schemas/github-funding.json"]
97102
- id: check-jsonschema
103+
name: "Validate GitHub issue config"
98104
files: ^\.github/ISSUE_TEMPLATE/config\.yml$
99-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/github-issue-config.json"]
105+
args: ["--verbose", "--schemafile", "ci/schemas/github-issue-config.json"]
100106
- id: check-jsonschema
107+
name: "Validate GitHub issue templates"
101108
files: ^\.github/ISSUE_TEMPLATE/.*\.yml$
102109
exclude: ^\.github/ISSUE_TEMPLATE/config\.yml$
103-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/github-issue-forms.json"]
110+
args: ["--verbose", "--schemafile", "ci/schemas/github-issue-forms.json"]
104111
- id: check-jsonschema
112+
name: "Validate CodeCov config"
105113
files: ^\.github/codecov\.yml$
106-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/codecov.json"]
114+
args: ["--verbose", "--schemafile", "ci/schemas/codecov.json"]
107115
- id: check-jsonschema
116+
name: "Validate GitHub labeler config"
108117
files: ^\.github/labeler\.yml$
109-
args: ["--verbose", "--schemafile", "https://json.schemastore.org/pull-request-labeler-5.json"]
118+
args: ["--verbose", "--schemafile", "ci/schemas/pull-request-labeler-5.json"]
110119
- id: check-jsonschema
120+
name: "Validate Conda environment file"
111121
files: ^environment\.yml$
112-
args:
113-
- "--verbose"
114-
- "--schemafile"
115-
- "https://github.com/microsoft/vscode-python/raw/main/schemas/conda-environment.json"
122+
args: ["--verbose", "--schemafile", "ci/schemas/conda-environment.json"]

ci/schemas/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
YAML Schemas for linting and validation
2+
=======================================
3+
4+
Since pre-commit CI doesn't have Internet access, we need to bundle these files
5+
in the repo. The schemas can be updated using `vendor_schemas.py`.

0 commit comments

Comments
 (0)