gitlab-org--gitlab-foss/spec/fixtures/api/schemas/conflicts.json
2016-10-13 14:16:34 -05:00

137 lines
3.2 KiB
JSON

{
"type": "object",
"required": [
"commit_message",
"commit_sha",
"source_branch",
"target_branch",
"files"
],
"properties": {
"commit_message": {"type": "string"},
"commit_sha": {"type": "string", "pattern": "^[0-9a-f]{40}$"},
"source_branch": {"type": "string"},
"target_branch": {"type": "string"},
"files": {
"type": "array",
"items": {
"oneOf": [
{ "$ref": "#/definitions/conflict-text-with-sections" },
{ "$ref": "#/definitions/conflict-text-for-editor" }
]
}
}
},
"definitions": {
"conflict-base": {
"type": "object",
"required": [
"old_path",
"new_path",
"blob_icon",
"blob_path"
],
"properties": {
"old_path": {"type": "string"},
"new_path": {"type": "string"},
"blob_icon": {"type": "string"},
"blob_path": {"type": "string"}
}
},
"conflict-text-for-editor": {
"allOf": [
{"$ref": "#/definitions/conflict-base"},
{
"type": "object",
"required": [
"type",
"content_path"
],
"properties": {
"type": {"type": {"enum": ["text-editor"]}},
"content_path": {"type": "string"}
}
}
]
},
"conflict-text-with-sections": {
"allOf": [
{"$ref": "#/definitions/conflict-base"},
{
"type": "object",
"required": [
"type",
"content_path",
"sections"
],
"properties": {
"type": {"type": {"enum": ["text"]}},
"content_path": {"type": "string"},
"sections": {
"type": "array",
"items": {
"oneOf": [
{ "$ref": "#/definitions/section-context" },
{ "$ref": "#/definitions/section-conflict" }
]
}
}
}
}
]
},
"section-base": {
"type": "object",
"required": [
"conflict",
"lines"
],
"properties": {
"conflict": {"type": "boolean"},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"old_line",
"new_line",
"text",
"rich_text"
],
"properties": {
"type": {"type": "string"},
"old_line": {"type": "string"},
"new_line": {"type": "string"},
"text": {"type": "string"},
"rich_text": {"type": "string"}
}
}
}
}
},
"section-context": {
"allOf": [
{"$ref": "#/definitions/section-base"},
{
"type": "object",
"properties": {
"conflict": {"enum": [false]}
}
}
]
},
"section-conflict": {
"allOf": [
{"$ref": "#/definitions/section-base"},
{
"type": "object",
"required": ["id"],
"properties": {
"conflict": {"enum": [true]},
"id": {"type": "string"}
}
}
]
}
}
}