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