Monorepo for Tangled
tangled.org
1{
2 "lexicon": 1,
3 "id": "sh.tangled.git.refUpdate",
4 "defs": {
5 "main": {
6 "type": "record",
7 "description": "An event record representing git-push operation to git repository, emitted by knots.",
8 "key": "tid",
9 "record": {
10 "type": "object",
11 "required": [
12 "ref",
13 "committerDid",
14 "repo",
15 "oldSha",
16 "newSha",
17 "meta"
18 ],
19 "properties": {
20 "ref": {
21 "type": "string",
22 "description": "Ref being updated",
23 "maxGraphemes": 256,
24 "maxLength": 2560
25 },
26 "committerDid": {
27 "type": "string",
28 "description": "did of the user that pushed this ref",
29 "format": "did"
30 },
31 "ownerDid": {
32 "type": "string",
33 "description": "did of the owner of the repo",
34 "format": "did"
35 },
36 "repo": {
37 "type": "string",
38 "description": "DID of the repo itself",
39 "format": "did"
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 "changedFiles": {
54 "type": "array",
55 "description": "files changed between commits",
56 "items": { "type": "string" }
57 },
58 "pushOptions": {
59 "type": "array",
60 "description": "push options passed on git-push",
61 "maxLength": 50,
62 "items": {
63 "type": "string",
64 "maxLength": 1024,
65 "knownValues": [
66 "ci-skip",
67 "ci-verbose",
68 "skip-ci",
69 "verbose-ci"
70 ]
71 }
72 },
73 "meta": {
74 "type": "ref",
75 "ref": "#meta"
76 }
77 }
78 }
79 },
80 "meta": {
81 "type": "object",
82 "required": ["isDefaultRef", "commitCount"],
83 "properties": {
84 "isDefaultRef": {
85 "type": "boolean",
86 "default": false
87 },
88 "langBreakdown": {
89 "type": "ref",
90 "ref": "#langBreakdown"
91 },
92 "commitCount": {
93 "type": "ref",
94 "ref": "#commitCountBreakdown"
95 }
96 }
97 },
98 "langBreakdown": {
99 "type": "object",
100 "properties": {
101 "inputs": {
102 "type": "array",
103 "items": {
104 "type": "ref",
105 "ref": "#individualLanguageSize"
106 }
107 }
108 }
109 },
110 "individualLanguageSize": {
111 "type": "object",
112 "required": ["lang", "size"],
113 "properties": {
114 "lang": {
115 "type": "string"
116 },
117 "size": {
118 "type": "integer"
119 }
120 }
121 },
122 "commitCountBreakdown": {
123 "type": "object",
124 "required": [],
125 "properties": {
126 "byEmail": {
127 "type": "array",
128 "items": {
129 "type": "ref",
130 "ref": "#individualEmailCommitCount"
131 }
132 }
133 }
134 },
135 "individualEmailCommitCount": {
136 "type": "object",
137 "required": ["email", "count"],
138 "properties": {
139 "email": {
140 "type": "string"
141 },
142 "count": {
143 "type": "integer"
144 }
145 }
146 }
147 }
148}