sh.tangled.git.refUpdate.json

  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}