Skip to content

Instantly share code, notes, and snippets.

@rawlingsj
Created May 12, 2023 11:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rawlingsj/e3af83803015615e2c2ba78930854be2 to your computer and use it in GitHub Desktop.
Save rawlingsj/e3af83803015615e2c2ba78930854be2 to your computer and use it in GitHub Desktop.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://chainguard.dev/melange/pkg/build/configuration",
"$ref": "#/$defs/Configuration",
"$defs": {
"Advisories": {
"patternProperties": {
".*": {
"items": {
"$ref": "#/$defs/AdvisoryContent"
},
"type": "array"
}
},
"type": "object"
},
"AdvisoryContent": {
"properties": {
"timestamp": {
"type": "string",
"format": "date-time"
},
"status": {
"type": "string"
},
"justification": {
"type": "string"
},
"impact": {
"type": "string"
},
"action": {
"type": "string"
},
"fixed-version": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"timestamp",
"status"
]
},
"Architecture": {
"properties": {},
"additionalProperties": false,
"type": "object"
},
"Configuration": {
"properties": {
"package": {
"$ref": "#/$defs/Package"
},
"environment": {
"$ref": "#/$defs/ImageConfiguration"
},
"pipeline": {
"items": {
"$ref": "#/$defs/Pipeline"
},
"type": "array"
},
"subpackages": {
"items": {
"$ref": "#/$defs/Subpackage"
},
"type": "array"
},
"data": {
"items": {
"$ref": "#/$defs/RangeData"
},
"type": "array"
},
"secfixes": {
"$ref": "#/$defs/Secfixes"
},
"advisories": {
"$ref": "#/$defs/Advisories"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"package"
]
},
"Copyright": {
"properties": {
"paths": {
"items": {
"type": "string"
},
"type": "array"
},
"attestation": {
"type": "string"
},
"license": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"paths",
"attestation",
"license"
]
},
"DataItem": {
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object"
},
"DataItemList": {
"items": {
"$ref": "#/$defs/DataItem"
},
"type": "array"
},
"Dependencies": {
"properties": {
"runtime": {
"items": {
"type": "string"
},
"type": "array"
},
"provides": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object"
},
"Group": {
"properties": {
"GroupName": {
"type": "string"
},
"GID": {
"type": "integer"
},
"Members": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"GroupName",
"GID",
"Members"
]
},
"ImageConfiguration": {
"properties": {
"contents": {
"properties": {
"repositories": {
"items": {
"type": "string"
},
"type": "array"
},
"keyring": {
"items": {
"type": "string"
},
"type": "array"
},
"packages": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object"
},
"entrypoint": {
"properties": {
"Type": {
"type": "string"
},
"Command": {
"type": "string"
},
"shell-fragment": {
"type": "string"
},
"Services": {
"type": "object"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"Type",
"Command",
"shell-fragment",
"Services"
]
},
"cmd": {
"type": "string"
},
"work-dir": {
"type": "string"
},
"accounts": {
"properties": {
"run-as": {
"type": "string"
},
"Users": {
"items": {
"$ref": "#/$defs/User"
},
"type": "array"
},
"Groups": {
"items": {
"$ref": "#/$defs/Group"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"run-as",
"Users",
"Groups"
]
},
"archs": {
"items": {
"$ref": "#/$defs/Architecture"
},
"type": "array"
},
"environment": {
"patternProperties": {
".*": {
"type": "string"
}
},
"type": "object"
},
"paths": {
"items": {
"$ref": "#/$defs/PathMutation"
},
"type": "array"
},
"os-release": {
"$ref": "#/$defs/OSRelease"
},
"vcs-url": {
"type": "string"
},
"annotations": {
"patternProperties": {
".*": {
"type": "string"
}
},
"type": "object"
},
"include": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object"
},
"Input": {
"properties": {
"description": {
"type": "string"
},
"default": {
"type": "string"
},
"required": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"description",
"default",
"required"
]
},
"Needs": {
"properties": {
"Packages": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"Packages"
]
},
"OSRelease": {
"properties": {
"Name": {
"type": "string"
},
"ID": {
"type": "string"
},
"version-id": {
"type": "string"
},
"pretty-name": {
"type": "string"
},
"home-url": {
"type": "string"
},
"bug-report-url": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"Name",
"ID",
"version-id",
"pretty-name",
"home-url",
"bug-report-url"
]
},
"Package": {
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"epoch": {
"type": "integer"
},
"description": {
"type": "string"
},
"url": {
"type": "string"
},
"commit": {
"type": "string"
},
"target-architecture": {
"items": {
"type": "string"
},
"type": "array"
},
"copyright": {
"items": {
"$ref": "#/$defs/Copyright"
},
"type": "array"
},
"dependencies": {
"$ref": "#/$defs/Dependencies"
},
"options": {
"$ref": "#/$defs/PackageOption"
},
"scriptlets": {
"$ref": "#/$defs/Scriptlets"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"version",
"epoch",
"target-architecture"
]
},
"PackageOption": {
"properties": {
"no-provides": {
"type": "boolean"
},
"no-depends": {
"type": "boolean"
},
"no-commands": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"no-provides",
"no-depends",
"no-commands"
]
},
"PathMutation": {
"properties": {
"Path": {
"type": "string"
},
"Type": {
"type": "string"
},
"UID": {
"type": "integer"
},
"GID": {
"type": "integer"
},
"Permissions": {
"type": "integer"
},
"Source": {
"type": "string"
},
"Recursive": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"Path",
"Type",
"UID",
"GID",
"Permissions",
"Source",
"Recursive"
]
},
"Pipeline": {
"properties": {
"name": {
"type": "string"
},
"uses": {
"type": "string"
},
"with": {
"patternProperties": {
".*": {
"type": "string"
}
},
"type": "object"
},
"runs": {
"type": "string"
},
"pipeline": {
"items": {
"$ref": "#/$defs/Pipeline"
},
"type": "array"
},
"inputs": {
"patternProperties": {
".*": {
"$ref": "#/$defs/Input"
}
},
"type": "object"
},
"needs": {
"$ref": "#/$defs/Needs"
},
"label": {
"type": "string"
},
"if": {
"type": "string"
},
"assertions": {
"$ref": "#/$defs/PipelineAssertions"
},
"sbom": {
"$ref": "#/$defs/SBOM"
}
},
"additionalProperties": false,
"type": "object"
},
"PipelineAssertions": {
"properties": {
"required-steps": {
"type": "integer"
}
},
"additionalProperties": false,
"type": "object"
},
"RangeData": {
"properties": {
"name": {
"type": "string"
},
"items": {
"$ref": "#/$defs/DataItemList"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"items"
]
},
"SBOM": {
"properties": {
"language": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"language"
]
},
"Scriptlets": {
"properties": {
"trigger": {
"properties": {
"Script": {
"type": "string"
},
"Paths": {
"items": {
"type": "string"
},
"type": "array"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"Script",
"Paths"
]
},
"pre-install": {
"type": "string"
},
"post-install": {
"type": "string"
},
"pre-deinstall": {
"type": "string"
},
"post-deinstall": {
"type": "string"
},
"pre-upgrade": {
"type": "string"
},
"post-upgrade": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object"
},
"Secfixes": {
"patternProperties": {
".*": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"Subpackage": {
"properties": {
"range": {
"type": "string"
},
"name": {
"type": "string"
},
"pipeline": {
"items": {
"$ref": "#/$defs/Pipeline"
},
"type": "array"
},
"dependencies": {
"$ref": "#/$defs/Dependencies"
},
"options": {
"$ref": "#/$defs/PackageOption"
},
"scriptlets": {
"$ref": "#/$defs/Scriptlets"
},
"description": {
"type": "string"
},
"url": {
"type": "string"
},
"commit": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name"
]
},
"User": {
"properties": {
"UserName": {
"type": "string"
},
"UID": {
"type": "integer"
},
"GID": {
"type": "integer"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"UserName",
"UID",
"GID"
]
}
}
}%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment