diff --git a/lexicons/org/tangled/embed/commit.json b/lexicons/org/tangled/embed/commit.json index b9184ca4..157edb8b 100644 --- a/lexicons/org/tangled/embed/commit.json +++ b/lexicons/org/tangled/embed/commit.json @@ -10,7 +10,7 @@ ], "properties": { "repo": { "type": "string", "format": "did" }, - "commit": { "type": "ref", "ref": "org.tangled.git.object" } + "commit": { "type": "ref", "ref": "org.tangled.git.oid" } } } } diff --git a/lexicons/org/tangled/git/oid.json b/lexicons/org/tangled/git/oid.json new file mode 100644 index 00000000..6deeaa43 --- /dev/null +++ b/lexicons/org/tangled/git/oid.json @@ -0,0 +1,40 @@ +{ + "lexicon": 1, + "id": "org.tangled.git.oid", + "description": "Git object-id", + "defs": { + "main": { + "type": "object", + "required": ["oid"], + "properties": { + "oid": { + "type": "union", + "closed": true, + "refs": ["#sha1", "#sha256"] + } + } + }, + "sha1": { + "type": "object", + "required": ["hash"], + "properties": { + "hash": { + "type": "string", + "minLength": 40, + "maxLength": 40 + } + } + }, + "sha256": { + "type": "object", + "required": ["hash"], + "properties": { + "hash": { + "type": "string", + "minLength": 64, + "maxLength": 64 + } + } + } + } +} diff --git a/lexicons/org/tangled/git/oid1.json b/lexicons/org/tangled/git/oid1.json new file mode 100644 index 00000000..be0182be --- /dev/null +++ b/lexicons/org/tangled/git/oid1.json @@ -0,0 +1,18 @@ +{ + "lexicon": 1, + "id": "org.tangled.git.oid1", + "description": "Git object-id using SHA-1 hash.", + "defs": { + "main": { + "type": "object", + "required": ["hash"], + "properties": { + "hash": { + "type": "string", + "minLength": 40, + "maxLength": 40 + } + } + } + } +} diff --git a/lexicons/org/tangled/git/oid256.json b/lexicons/org/tangled/git/oid256.json new file mode 100644 index 00000000..0564b499 --- /dev/null +++ b/lexicons/org/tangled/git/oid256.json @@ -0,0 +1,18 @@ +{ + "lexicon": 1, + "id": "org.tangled.git.oid256", + "description": "Git object-id using SHA-256 hash.", + "defs": { + "main": { + "type": "object", + "required": ["hash"], + "properties": { + "hash": { + "type": "string", + "minLength": 64, + "maxLength": 64 + } + } + } + } +}