Skip to content

SchemaStore copy

Datasetreferencedatasets/schemastore-copy

Checked by automation only

still a draft

Written 2026-10-28 by ktl-librarian (automation). Last checked 2026-10-28 by ktl-librarian (automation).

The full record
Checks
  • 2026-10-28 by ktl-librarian (automation)
Sources
Pointed to by
Graph
Open this concept in the knowledge graph
IRI
https://w3id.org/lmodel/github-actions/knowledge/datasets/schemastore-copy
Licence
Apache-2.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

NOTICE says that src/github_actions/schema/schemastore/ holds a copy of two files from JSON Schema Store, retrieved from SchemaStore’s tree at commit f7c2f3bcb512651bd980ed6896639ea8ded9ddf0.1 github-workflow.json is the schema of a GitHub Actions workflow file, and github-action.json is the schema of an action’s metadata file. SchemaStore’s own LICENSE and NOTICE sit beside them, copied from the root of the same commit. NOTICE says that every file is identical to its counterpart there, and that the files are licensed under the Apache License 2.0 and carry the notice “JSON Schema Store, Copyright 2015-Current Mads Kristensen and Contributors”.

The two schemas give their $id as https://json.schemastore.org/github-workflow.json and https://json.schemastore.org/github-action.json, and are written in JSON Schema draft-07. The README says that the schema header pins the SchemaStore commit they were copied from.

CONTRIBUTING.md says to leave the folder as upstream wrote it, and to replace both files from one SchemaStore commit instead.2 The pre-commit configuration excludes the folder, so that no hook rewrites a file that the upstream watch matches by git object hash.

tests/test_schema_rules.py compares the schema with the copy:3

  • the gha_permission pattern admits every scope and level that SchemaStore’s workflow schema lists, refuses the level admin, and admits SchemaStore’s shorthands;
  • the GhaActionRuntime enum differs from SchemaStore’s runtimes only by node12 and node16, which SchemaStore still accepts and GitHub’s metadata syntax page no longer lists;
  • the GhaWorkflowInputType enum holds the input types that SchemaStore lists;
  • the triggers pattern admits every event that SchemaStore names;
  • the key pattern for a job, an input, an output or a secret, and the uses pattern of a calling job, are SchemaStore’s.

scripts/check_upstream_release.py pins the commit as PINNED_COMMIT, with each copied file’s path in SchemaStore’s tree.4 It compares every copied file with its blob at that commit by git object hash, so it downloads only listings. It reports when SchemaStore’s default branch has changed either schema, and when a copied file differs in a way that KNOWN_DIFFERENCES does not list. That set is empty, because the copy is exact. Upstream watch runs the script weekly, and Move the upstream pins says what to do when it reports.

  1. NOTICE, the section SchemaStore’s GitHub Actions schemas, by JSON Schema Store ↩

  2. CONTRIBUTING.md, the Before opening a pull request checklist ↩

  3. tests/test_schema_rules.py, the first six tests ↩

  4. scripts/check_upstream_release.py, the docstring, PINNED_COMMIT, FILES and KNOWN_DIFFERENCES ↩