1{
2 "lexicon": 1,
3 "id": "sh.tangled.git.refUpdate",
4 "defs": {
5 "main": {
6 "type": "record",
7 "description": "An update to a git repository, emitted by knots.",
8 "key": "tid",
9 "record": {
10 "type": "object",
11 "required": [
12 "ref",
13 "committerDid",
14 "repoDid",
15 "repoName",
16 "oldSha",
17 "newSha",
18 "meta"
19 ],
20 "properties": {
21 "ref": {
22 "type": "string",
23 "description": "Ref being updated",
24 "maxGraphemes": 256,
25 "maxLength": 2560
26 },
27 "committerDid": {
28 "type": "string",
29 "description": "did of the user that pushed this ref",
30 "format": "did"
31 },
32 "repoDid": {
33 "type": "string",
34 "description": "did of the owner of the repo",
35 "format": "did"
36 },
37 "repoName": {
38 "type": "string",
39 "description": "name of the repo"
40 },
41 "oldSha": {
42 "type": "string",
43 "description": "old SHA of this ref",
44 "minLength": 40,
45 "maxLength": 40
46 },
47 "newSha": {
48 "type": "string",
49 "description": "new SHA of this ref",
50 "minLength": 40,
51 "maxLength": 40
52 },
53 "meta": {
54 "type": "object",
55 "required": [
56 "isDefaultRef",
57 "commitCount"
58 ],
59 "properties": {
60 "isDefaultRef": {
61 "type": "boolean",
62 "default": "false"
63 },
64 "langBreakdown": {
65 "type": "object",
66 "properties": {
67 "inputs": {
68 "type": "array",
69 "items": {
70 "type": "ref",
71 "ref": "#pair"
72 }
73 }
74 }
75 },
76 "commitCount": {
77 "type": "object",
78 "required": [],
79 "properties": {
80 "byEmail": {
81 "type": "array",
82 "items": {
83 "type": "object",
84 "required": [
85 "email",
86 "count"
87 ],
88 "properties": {
89 "email": {
90 "type": "string"
91 },
92 "count": {
93 "type": "integer"
94 }
95 }
96 }
97 }
98 }
99 }
100 }
101 }
102 }
103 }
104 },
105 "pair": {
106 "type": "object",
107 "required": [
108 "lang",
109 "size"
110 ],
111 "properties": {
112 "lang": {
113 "type": "string"
114 },
115 "size": {
116 "type": "integer"
117 }
118 }
119 }
120 }
121}