org.tangled.ci.defs

tangled.org

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "externalSource": {
      "properties": {
        "link": {
          "format": "uri",
          "type": "string"
        },
        "name": {
          "description": "human-readable name of external source",
          "type": "string"
        }
      },
      "required": [
        "link"
      ],
      "type": "object"
    },
    "fileSource": {
      "properties": {
        "commit": {
          "maxLength": 128,
          "minLength": 40,
          "type": "string"
        },
        "lines": {
          "ref": "#lineRange",
          "type": "ref"
        },
        "path": {
          "minLength": 1,
          "type": "string"
        },
        "repo": {
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "repo",
        "commit",
        "path"
      ],
      "type": "object"
    },
    "lineRange": {
      "properties": {
        "end": {
          "minimum": 1,
          "type": "integer"
        },
        "start": {
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "start",
        "end"
      ],
      "type": "object"
    },
    "pipeline": {
      "description": "A CI pipeline. Record-like, but owned by the spindle rather than a PDS.",
      "properties": {
        "commit": {
          "description": "Commit Id this pipeline is running on",
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "id": {
          "description": "Spindle-local pipeline id",
          "format": "record-key",
          "type": "string"
        },
        "repo": {
          "description": "Repository DID",
          "format": "did",
          "type": "string"
        },
        "sourceRepo": {
          "description": "Repository DID that the commit was checked out from, if different from repo (e.g. a fork for a fork-based pull request)",
          "format": "did",
          "type": "string"
        },
        "trigger": {
          "closed": false,
          "description": "Trigger event that triggered this pipeline.",
          "refs": [
            "org.tangled.event.push",
            "org.tangled.event.pullRequest",
            "org.tangled.ci.trigger.manual",
            "org.tangled.ci.trigger.schedule"
          ],
          "type": "union"
        },
        "workflows": {
          "description": "Triggered workflows",
          "items": {
            "ref": "#workflowRun",
            "type": "ref"
          },
          "maxLength": 50,
          "minLength": 1,
          "type": "array"
        }
      },
      "required": [
        "id",
        "repo",
        "trigger",
        "commit",
        "workflows"
      ],
      "type": "object"
    },
    "workflow": {
      "description": "A workflow definition",
      "properties": {
        "hash": {
          "description": "Fingerprint of the workflow definition as resolved by the spindle.",
          "type": "string"
        },
        "id": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        },
        "name": {
          "description": "Human-readable name of the workflow",
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        },
        "source": {
          "refs": [
            "#fileSource",
            "#externalSource"
          ],
          "type": "union"
        },
        "triggers": {
          "description": "Event types that triggers this workflow.",
          "items": {
            "knownValues": [
              "org.tangled.event.push",
              "org.tangled.event.pullRequest",
              "org.tangled.ci.trigger.manual",
              "org.tangled.ci.trigger.schedule"
            ],
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "source",
        "triggers"
      ],
      "type": "object"
    },
    "workflowRun": {
      "properties": {
        "definition": {
          "description": "Workflow definition where this workflow run is originated from.",
          "ref": "#workflow",
          "type": "ref"
        },
        "error": {
          "type": "string"
        },
        "finishedAt": {
          "format": "datetime",
          "type": "string"
        },
        "id": {
          "description": "Pipeline-local workflow id, usually same as name.",
          "maxLength": 128,
          "minLength": 1,
          "type": "string"
        },
        "name": {
          "description": "Human-readable name of the workflow",
          "maxLength": 128,
          "type": "string"
        },
        "startedAt": {
          "format": "datetime",
          "type": "string"
        },
        "status": {
          "description": "Workflow status",
          "enum": [
            "pending",
            "blocked",
            "running",
            "failed",
            "timeout",
            "cancelled",
            "success"
          ],
          "type": "string"
        }
      },
      "required": [
        "definition",
        "id",
        "status"
      ],
      "type": "object"
    }
  },
  "id": "org.tangled.ci.defs",
  "lexicon": 1
}

Validate Record

Validate a record against org.tangled.ci.defs

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:wshs7t2adsemcrrd4snkeqli
CID
bafyreifdgsa5sfvbwxxqdvsiiskgv7w6clvk6tgpermitz5ciabv4vch2m
Indexed At
2026-10-28 14:06 UTC
AT-URI
at://did:plc:wshs7t2adsemcrrd4snkeqli/com.atproto.lexicon.schema/org.tangled.ci.defs

Referenced Schemas (4)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@