Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/fixtures')
-rw-r--r--spec/fixtures/api/schemas/branch.json15
-rw-r--r--spec/fixtures/api/schemas/cluster_status.json131
-rw-r--r--spec/fixtures/api/schemas/conflicts.json130
-rw-r--r--spec/fixtures/api/schemas/entities/discussion.json231
-rw-r--r--spec/fixtures/api/schemas/entities/issue.json163
-rw-r--r--spec/fixtures/api/schemas/entities/member.json125
-rw-r--r--spec/fixtures/api/schemas/entities/merge_request_metrics.json43
-rw-r--r--spec/fixtures/api/schemas/entities/merge_request_poll_widget.json223
-rw-r--r--spec/fixtures/api/schemas/entities/test_case.json57
-rw-r--r--spec/fixtures/api/schemas/entities/trigger.json13
-rw-r--r--spec/fixtures/api/schemas/environment.json138
-rw-r--r--spec/fixtures/api/schemas/group_link/group_link.json84
-rw-r--r--spec/fixtures/api/schemas/issue.json135
-rw-r--r--spec/fixtures/api/schemas/jira_connect/author.json29
-rw-r--r--spec/fixtures/api/schemas/jira_connect/branch.json37
-rw-r--r--spec/fixtures/api/schemas/jira_connect/commit.json58
-rw-r--r--spec/fixtures/api/schemas/jira_connect/file.json29
-rw-r--r--spec/fixtures/api/schemas/jira_connect/pull_request.json69
-rw-r--r--spec/fixtures/api/schemas/jira_connect/repository.json45
-rw-r--r--spec/fixtures/api/schemas/job/build_trace_line.json22
-rw-r--r--spec/fixtures/api/schemas/merge_request.json15
-rw-r--r--spec/fixtures/api/schemas/ml/get_experiment.json27
-rw-r--r--spec/fixtures/api/schemas/ml/list_experiments.json11
-rw-r--r--spec/fixtures/api/schemas/ml/run.json30
-rw-r--r--spec/fixtures/api/schemas/ml/update_run.json48
-rw-r--r--spec/fixtures/api/schemas/pipeline_schedule.json153
-rw-r--r--spec/fixtures/api/schemas/prometheus/additional_metrics_query_result.json64
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/basic_environment.json34
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/basic_environments.json6
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/branch.json43
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/deploy_key.json48
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/deploy_token.json4
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/environments.json7
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/feature_flag_scopes.json7
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/feature_flags.json7
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/integration.json76
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/issue.json326
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/issues.json7
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/labels/label_with_counts.json30
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/labels/project_label.json29
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/labels/project_label_with_counts.json16
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/merge_request.json261
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json73
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/milestone.json89
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/milestone_with_stats.json105
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/notes.json139
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/packages/package.json7
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/pages_domain/basic.json61
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/pages_domain/detail.json63
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/project_hooks.json8
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/snippets.json111
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/system_hooks.json7
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/user/admin.json146
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/user/login.json35
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/user/public.json138
-rw-r--r--spec/fixtures/api/schemas/registry/repository.json35
-rw-r--r--spec/fixtures/api/schemas/release.json58
-rw-r--r--spec/fixtures/api/schemas/variable.json34
-rw-r--r--spec/fixtures/ce_sample_schema.json1
-rw-r--r--spec/fixtures/clusters/chain_certificates.pem136
-rw-r--r--spec/fixtures/clusters/intermediate_certificate.pem44
-rw-r--r--spec/fixtures/clusters/leaf_certificate.pem54
-rw-r--r--spec/fixtures/clusters/root_certificate.pem38
-rw-r--r--spec/fixtures/config/redis_cluster_format_host.yml29
-rw-r--r--spec/fixtures/gitlab/database/structure_example.sql14
-rw-r--r--spec/fixtures/gitlab/database/structure_example_cleaned.sql13
-rw-r--r--spec/fixtures/lib/gitlab/import_export/complex/tree/project/services.ndjson1
-rw-r--r--spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_full_syntax.json19
-rw-r--r--spec/fixtures/markdown.md.erb4
-rw-r--r--spec/fixtures/markdown/markdown_golden_master_examples.yml10
-rw-r--r--spec/fixtures/pager_duty/webhook_incident_trigger.json284
71 files changed, 3443 insertions, 1339 deletions
diff --git a/spec/fixtures/api/schemas/branch.json b/spec/fixtures/api/schemas/branch.json
index 0bb74577010..02389a1b979 100644
--- a/spec/fixtures/api/schemas/branch.json
+++ b/spec/fixtures/api/schemas/branch.json
@@ -1,12 +1,17 @@
{
"type": "object",
- "required" : [
+ "required": [
"name",
"url"
],
- "properties" : {
- "name": { "type": "string" },
- "url": { "type": "uri" }
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/cluster_status.json b/spec/fixtures/api/schemas/cluster_status.json
index 6f9535286ed..efc609b3c3f 100644
--- a/spec/fixtures/api/schemas/cluster_status.json
+++ b/spec/fixtures/api/schemas/cluster_status.json
@@ -1,55 +1,118 @@
{
"type": "object",
- "required" : [
+ "required": [
"status",
"applications"
],
- "properties" : {
- "status": { "type": "string" },
- "status_reason": { "type": ["string", "null"] },
+ "properties": {
+ "status": {
+ "type": "string"
+ },
+ "status_reason": {
+ "$ref": "types/nullable_string.json"
+ },
"applications": {
"type": "array",
- "items": { "$ref": "#/definitions/application_status" }
+ "items": {
+ "$ref": "#/definitions/application_status"
+ }
}
},
"additionalProperties": false,
"definitions": {
"application_status": {
"type": "object",
+ "required": [
+ "name",
+ "status"
+ ],
"additionalProperties": false,
- "properties" : {
- "name": { "type": "string" },
+ "properties": {
+ "name": {
+ "type": "string"
+ },
"status": {
- "type": {
- "enum": [
- "installable",
- "scheduled",
- "installing",
- "installed",
- "errored"
- ]
- }
+ "type": "string",
+ "enum": [
+ "installable",
+ "scheduled",
+ "installing",
+ "installed",
+ "errored",
+ "not_installable"
+ ]
+ },
+ "version": {
+ "type": "string"
+ },
+ "status_reason": {
+ "$ref": "types/nullable_string.json"
+ },
+ "external_ip": {
+ "$ref": "types/nullable_string.json"
+ },
+ "external_hostname": {
+ "$ref": "types/nullable_string.json"
+ },
+ "hostname": {
+ "$ref": "types/nullable_string.json"
+ },
+ "email": {
+ "$ref": "types/nullable_string.json"
+ },
+ "stack": {
+ "$ref": "types/nullable_string.json"
+ },
+ "host": {
+ "$ref": "types/nullable_string.json"
+ },
+ "port": {
+ "type": "integer"
+ },
+ "protocol": {
+ "type": "integer"
+ },
+ "update_available": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "can_uninstall": {
+ "type": "boolean"
},
- "version": { "type": "string" },
- "status_reason": { "type": ["string", "null"] },
- "external_ip": { "type": ["string", "null"] },
- "external_hostname": { "type": ["string", "null"] },
- "hostname": { "type": ["string", "null"] },
- "email": { "type": ["string", "null"] },
- "stack": { "type": ["string", "null"] },
- "host": {"type": ["string", "null"]},
- "port": {"type": ["integer", "514"]},
- "protocol": {"type": ["integer", "0"]},
- "update_available": { "type": ["boolean", "null"] },
- "can_uninstall": { "type": "boolean" },
"available_domains": {
"type": "array",
- "items": { "$ref": "#/definitions/domain" }
+ "items": {
+ "$ref": "#/definitions/domain"
+ }
},
- "pages_domain": { "type": [ { "$ref": "#/definitions/domain" }, "null"] }
- },
- "required" : [ "name", "status" ]
+ "pages_domain": {
+ "oneOf": [
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "#/definitions/domain"
+ }
+ ]
+ }
+ }
},
- "domain": { "id": "integer", "domain": "string" }
+ "domain": {
+ "type": "object",
+ "required": [
+ "id",
+ "domain"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "domain": {
+ "type": "string"
+ }
+ }
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/conflicts.json b/spec/fixtures/api/schemas/conflicts.json
index a947783d505..f8acac9f074 100644
--- a/spec/fixtures/api/schemas/conflicts.json
+++ b/spec/fixtures/api/schemas/conflicts.json
@@ -8,16 +8,29 @@
"files"
],
"properties": {
- "commit_message": {"type": "string"},
- "commit_sha": {"type": "string", "pattern": "^[0-9a-f]{40}$"},
- "source_branch": {"type": "string"},
- "target_branch": {"type": "string"},
+ "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" }
+ {
+ "$ref": "#/definitions/conflict-text-with-sections"
+ },
+ {
+ "$ref": "#/definitions/conflict-text-for-editor"
+ }
]
}
}
@@ -32,15 +45,25 @@
"blob_path"
],
"properties": {
- "old_path": {"type": "string"},
- "new_path": {"type": "string"},
- "blob_icon": {"type": "string"},
- "blob_path": {"type": "string"}
+ "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"},
+ {
+ "$ref": "#/definitions/conflict-base"
+ },
{
"type": "object",
"required": [
@@ -48,15 +71,25 @@
"content_path"
],
"properties": {
- "type": {"type": {"enum": ["text-editor"]}},
- "content_path": {"type": "string"}
+ "type": {
+ "type": "string",
+ "enum": [
+ "text",
+ "text-editor"
+ ]
+ },
+ "content_path": {
+ "type": "string"
+ }
}
}
]
},
"conflict-text-with-sections": {
"allOf": [
- {"$ref": "#/definitions/conflict-base"},
+ {
+ "$ref": "#/definitions/conflict-base"
+ },
{
"type": "object",
"required": [
@@ -65,14 +98,25 @@
"sections"
],
"properties": {
- "type": {"type": {"enum": ["text"]}},
- "content_path": {"type": "string"},
+ "type": {
+ "type": "string",
+ "enum": [
+ "text"
+ ]
+ },
+ "content_path": {
+ "type": "string"
+ },
"sections": {
"type": "array",
"items": {
"oneOf": [
- { "$ref": "#/definitions/section-context" },
- { "$ref": "#/definitions/section-conflict" }
+ {
+ "$ref": "#/definitions/section-context"
+ },
+ {
+ "$ref": "#/definitions/section-conflict"
+ }
]
}
}
@@ -87,7 +131,9 @@
"lines"
],
"properties": {
- "conflict": {"type": "boolean"},
+ "conflict": {
+ "type": "boolean"
+ },
"lines": {
"type": "array",
"items": {
@@ -99,11 +145,21 @@
"rich_text"
],
"properties": {
- "type": {"type": "string"},
- "old_line": {"type": "string"},
- "new_line": {"type": "string"},
- "text": {"type": "string"},
- "rich_text": {"type": "string"}
+ "type": {
+ "type": "string"
+ },
+ "old_line": {
+ "type": "string"
+ },
+ "new_line": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "rich_text": {
+ "type": "string"
+ }
}
}
}
@@ -111,27 +167,39 @@
},
"section-context": {
"allOf": [
- {"$ref": "#/definitions/section-base"},
+ {
+ "$ref": "#/definitions/section-base"
+ },
{
"type": "object",
"properties": {
- "conflict": {"enum": [false]}
+ "conflict": {
+ "type": "boolean"
+ }
}
}
]
},
"section-conflict": {
"allOf": [
- {"$ref": "#/definitions/section-base"},
+ {
+ "$ref": "#/definitions/section-base"
+ },
{
"type": "object",
- "required": ["id"],
+ "required": [
+ "id"
+ ],
"properties": {
- "conflict": {"enum": [true]},
- "id": {"type": "string"}
+ "conflict": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "string"
+ }
}
}
]
}
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/discussion.json b/spec/fixtures/api/schemas/entities/discussion.json
index da2d2a83a8d..45271926547 100644
--- a/spec/fixtures/api/schemas/entities/discussion.json
+++ b/spec/fixtures/api/schemas/entities/discussion.json
@@ -1,34 +1,75 @@
{
"type": "object",
- "required" : [
+ "required": [
"id",
"notes",
"individual_note"
],
- "properties" : {
- "id": { "type": "string" },
- "individual_note": { "type": "boolean" },
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "individual_note": {
+ "type": "boolean"
+ },
"notes": {
"type": "array",
"items": {
"type": "object",
- "properties" : {
- "id": { "type": "string" },
- "type": { "type": ["string", "null"] },
- "body": { "type": "string" },
- "attachment": { "type": ["string", "null"]},
- "award_emoji": { "type": "array" },
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "body": {
+ "type": "string"
+ },
+ "attachment": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "award_emoji": {
+ "type": "array"
+ },
"author": {
"type": "object",
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" },
- "status_tooltip_html": { "type": ["string", "null"] },
- "path": { "type": "string" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "status_tooltip_html": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "path": {
+ "type": "string"
+ }
},
"required": [
"id",
@@ -39,43 +80,131 @@
"username"
]
},
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "system": { "type": "boolean" },
- "noteable_id": { "type": "integer" },
- "noteable_iid": { "type": ["integer", "null"] },
- "noteable_type": { "type": "string" },
- "resolved": { "type": "boolean" },
- "resolvable": { "type": "boolean" },
- "resolved_by": { "type": ["string", "null"] },
- "resolved_at": { "type": ["string", "null"], "format": "date-time" },
- "note": { "type": "string" },
- "note_html": { "type": "string" },
- "current_user": { "type": "object" },
- "suggestions": { "type": "array" },
- "discussion_id": { "type": "string" },
- "emoji_awardable": { "type": "boolean" },
- "report_abuse_path": { "type": "string" },
- "noteable_note_url": { "type": "string" },
- "resolve_path": { "type": "string" },
- "resolve_with_issue_path": { "type": "string" },
- "cached_markdown_version": { "type": "integer" },
- "human_access": { "type": ["string", "null"] },
- "is_noteable_author": { "type": "boolean" },
- "is_contributor": { "type": "boolean" },
- "project_name": { "type": "string" },
- "toggle_award_path": { "type": "string" },
- "path": { "type": "string" },
- "commands_changes": { "type": "object", "additionalProperties": true },
- "confidential": { "type": ["boolean", "null"] },
- "internal": { "type": ["boolean", "null"] }
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "system": {
+ "type": "boolean"
+ },
+ "noteable_id": {
+ "type": "integer"
+ },
+ "noteable_iid": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "noteable_type": {
+ "type": "string"
+ },
+ "resolved": {
+ "type": "boolean"
+ },
+ "resolvable": {
+ "type": "boolean"
+ },
+ "resolved_by": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "resolved_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "note": {
+ "type": "string"
+ },
+ "note_html": {
+ "type": "string"
+ },
+ "current_user": {
+ "type": "object"
+ },
+ "suggestions": {
+ "type": "array"
+ },
+ "discussion_id": {
+ "type": "string"
+ },
+ "emoji_awardable": {
+ "type": "boolean"
+ },
+ "report_abuse_path": {
+ "type": "string"
+ },
+ "noteable_note_url": {
+ "type": "string"
+ },
+ "resolve_path": {
+ "type": "string"
+ },
+ "resolve_with_issue_path": {
+ "type": "string"
+ },
+ "cached_markdown_version": {
+ "type": "integer"
+ },
+ "human_access": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "is_noteable_author": {
+ "type": "boolean"
+ },
+ "is_contributor": {
+ "type": "boolean"
+ },
+ "project_name": {
+ "type": "string"
+ },
+ "toggle_award_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "commands_changes": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "confidential": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "internal": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
},
"required": [
- "id", "attachment", "author", "created_at", "updated_at",
- "system", "noteable_id", "noteable_type"
+ "id",
+ "attachment",
+ "author",
+ "created_at",
+ "updated_at",
+ "system",
+ "noteable_id",
+ "noteable_type"
],
"additionalProperties": false
}
}
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/issue.json b/spec/fixtures/api/schemas/entities/issue.json
index b4a076780d9..08937b5e68b 100644
--- a/spec/fixtures/api/schemas/entities/issue.json
+++ b/spec/fixtures/api/schemas/entities/issue.json
@@ -1,43 +1,142 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "type": { "type": "string" },
- "author_id": { "type": "integer" },
- "description": { "type": ["string", "null"] },
- "lock_version": { "type": ["integer", "null"] },
- "milestone_id": { "type": ["string", "null"] },
- "title": { "type": "string" },
- "moved_to_id": { "type": ["integer", "null"] },
- "project_id": { "type": "integer" },
- "web_url": { "type": "string" },
- "state": { "type": "string" },
- "create_note_path": { "type": "string" },
- "preview_note_path": { "type": "string" },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "type": {
+ "type": "string"
+ },
+ "author_id": {
+ "type": "integer"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "lock_version": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "milestone_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "moved_to_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "web_url": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "create_note_path": {
+ "type": "string"
+ },
+ "preview_note_path": {
+ "type": "string"
+ },
"current_user": {
"type": "object",
"properties": {
- "can_create_note": { "type": "boolean" },
- "can_update": { "type": "boolean" }
+ "can_create_note": {
+ "type": "boolean"
+ },
+ "can_update": {
+ "type": "boolean"
+ }
}
},
- "created_at": { "type": "date-time" },
- "updated_at": { "type": "date-time" },
- "branch_name": { "type": ["string", "null"] },
- "due_date": { "type": ["string", "null"], "format": "date-time" },
- "confidential": { "type": "boolean" },
- "discussion_locked": { "type": ["boolean", "null"] },
- "updated_by_id": { "type": ["integer", "null"] },
- "time_estimate": { "type": "integer" },
- "total_time_spent": { "type": "integer" },
- "human_time_estimate": { "type": ["integer", "null"] },
- "human_total_time_spent": { "type": ["integer", "null"] },
- "milestone": { "type": ["object", "null"] },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "branch_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "due_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "confidential": {
+ "type": "boolean"
+ },
+ "discussion_locked": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "updated_by_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "time_estimate": {
+ "type": "integer"
+ },
+ "total_time_spent": {
+ "type": "integer"
+ },
+ "human_time_estimate": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "human_total_time_spent": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "milestone": {
+ "type": [
+ "object",
+ "null"
+ ]
+ },
"labels": {
"type": "array",
- "items": { "$ref": "label.json" }
+ "items": {
+ "$ref": "label.json"
+ }
},
- "assignees": { "type": ["array", "null"] }
+ "assignees": {
+ "type": [
+ "array",
+ "null"
+ ]
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/member.json b/spec/fixtures/api/schemas/entities/member.json
index 24a4863df9b..cd8a4e0519b 100644
--- a/spec/fixtures/api/schemas/entities/member.json
+++ b/spec/fixtures/api/schemas/entities/member.json
@@ -14,59 +14,130 @@
"is_direct_member"
],
"properties": {
- "id": { "type": "integer" },
- "created_at": { "type": "date-time" },
- "expires_at": { "type": ["date-time", "null"] },
- "requested_at": { "type": ["date-time", "null"] },
- "can_update": { "type": "boolean" },
- "can_remove": { "type": "boolean" },
- "is_direct_member": { "type": "boolean" },
+ "id": {
+ "type": "integer"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "expires_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "requested_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "can_update": {
+ "type": "boolean"
+ },
+ "can_remove": {
+ "type": "boolean"
+ },
+ "is_direct_member": {
+ "type": "boolean"
+ },
"access_level": {
"type": "object",
- "required": ["integer_value", "string_value"],
+ "required": [
+ "integer_value",
+ "string_value"
+ ],
"properties": {
- "integer_value": { "type": "integer" },
- "string_value": { "type": "string" }
+ "integer_value": {
+ "type": "integer"
+ },
+ "string_value": {
+ "type": "string"
+ }
},
"additionalProperties": false
},
"source": {
"type": "object",
- "required": ["id", "full_name", "web_url"],
+ "required": [
+ "id",
+ "full_name",
+ "web_url"
+ ],
"properties": {
- "id": { "type": "integer" },
- "full_name": { "type": "string" },
- "web_url": { "type": "string" }
+ "id": {
+ "type": "integer"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "web_url": {
+ "type": "string"
+ }
},
"additionalProperties": false
},
- "valid_roles": { "type": "object" },
- "type": { "type": "string" },
+ "valid_roles": {
+ "type": "object"
+ },
+ "type": {
+ "type": "string"
+ },
"created_by": {
"type": "object",
- "required": ["name", "web_url"],
+ "required": [
+ "name",
+ "web_url"
+ ],
"properties": {
- "name": { "type": "string" },
- "web_url": { "type": "string" }
+ "name": {
+ "type": "string"
+ },
+ "web_url": {
+ "type": "string"
+ }
},
"additionalProperties": false
},
"user": {
"allOf": [
- { "$ref": "member_user_default.json" }
+ {
+ "$ref": "member_user_default.json"
+ }
]
},
- "state": { "type": "integer" },
+ "state": {
+ "type": "integer"
+ },
"invite": {
"type": "object",
- "required": ["email", "avatar_url", "can_resend", "user_state"],
+ "required": [
+ "email",
+ "avatar_url",
+ "can_resend",
+ "user_state"
+ ],
"properties": {
- "email": { "type": "string" },
- "avatar_url": { "type": [ "string", "null" ] },
- "can_resend": { "type": "boolean" },
- "user_state": { "type": "string" }
+ "email": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "can_resend": {
+ "type": "boolean"
+ },
+ "user_state": {
+ "type": "string"
+ }
},
"additionalProperties": false
}
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/merge_request_metrics.json b/spec/fixtures/api/schemas/entities/merge_request_metrics.json
index 3fa767f85df..591c5919b19 100644
--- a/spec/fixtures/api/schemas/entities/merge_request_metrics.json
+++ b/spec/fixtures/api/schemas/entities/merge_request_metrics.json
@@ -1,21 +1,46 @@
{
"type": "object",
- "required": ["closed_at", "merged_at", "closed_by", "merged_by"],
- "properties" : {
- "closed_at": { "type": ["datetime", "null"] },
- "merged_at": { "type": ["datetime", "null"] },
+ "required": [
+ "closed_at",
+ "merged_at",
+ "closed_by",
+ "merged_by"
+ ],
+ "properties": {
+ "closed_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "merged_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
"closed_by": {
"oneOf": [
- { "type": "null" },
- { "$ref": "user.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "user.json"
+ }
]
},
"merged_by": {
"oneOf": [
- { "type": "null" },
- { "$ref": "user.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "user.json"
+ }
]
}
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/merge_request_poll_widget.json b/spec/fixtures/api/schemas/entities/merge_request_poll_widget.json
index be2fe19b067..f0509f7a76f 100644
--- a/spec/fixtures/api/schemas/entities/merge_request_poll_widget.json
+++ b/spec/fixtures/api/schemas/entities/merge_request_poll_widget.json
@@ -1,38 +1,128 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "description": { "type": ["string", "null"] },
- "title": { "type": "string" },
- "auto_merge_strategy": { "type": ["string", "null"] },
- "available_auto_merge_strategies": { "type": "array" },
- "source_branch_protected": { "type": "boolean" },
- "allow_collaboration": { "type": "boolean"},
- "should_be_rebased": { "type": "boolean" },
- "ff_only_enabled": { "type": ["boolean", false] },
- "merge_user": { "type": ["object", "null"] },
- "pipeline": { "type": ["object", "null"] },
- "merge_pipeline": { "type": ["object", "null"] },
- "default_merge_commit_message": { "type": ["string", "null"] },
- "mergeable": { "type": "boolean" },
- "default_merge_commit_message_with_description": { "type": "string" },
- "mergeable_discussions_state": { "type": "boolean" },
- "project_archived": { "type": "boolean" },
- "only_allow_merge_if_pipeline_succeeds": { "type": "boolean" },
- "has_ci": { "type": "boolean" },
- "ci_status": { "type": ["string", "null"] },
- "pipeline_coverage_delta": { "type": ["float", "null"] },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "auto_merge_strategy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "available_auto_merge_strategies": {
+ "type": "array"
+ },
+ "source_branch_protected": {
+ "type": "boolean"
+ },
+ "allow_collaboration": {
+ "type": "boolean"
+ },
+ "should_be_rebased": {
+ "type": "boolean"
+ },
+ "ff_only_enabled": {
+ "type": "boolean"
+ },
+ "merge_user": {
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "pipeline": {
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "merge_pipeline": {
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "default_merge_commit_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "mergeable": {
+ "type": "boolean"
+ },
+ "default_merge_commit_message_with_description": {
+ "type": "string"
+ },
+ "mergeable_discussions_state": {
+ "type": "boolean"
+ },
+ "project_archived": {
+ "type": "boolean"
+ },
+ "only_allow_merge_if_pipeline_succeeds": {
+ "type": "boolean"
+ },
+ "has_ci": {
+ "type": "boolean"
+ },
+ "ci_status": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "pipeline_coverage_delta": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "float"
+ },
"builds_with_coverage": {
- "type": ["array", "null"],
+ "type": [
+ "array",
+ "null"
+ ],
"items": {
"type": "object",
- "required": ["name", "coverage"]
+ "required": [
+ "name",
+ "coverage"
+ ]
}
},
- "cancel_auto_merge_path": { "type": ["string", "null"] },
- "test_reports_path": { "type": ["string", "null"] },
- "create_issue_to_resolve_discussions_path": { "type": ["string", "null"] },
+ "cancel_auto_merge_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "test_reports_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "create_issue_to_resolve_discussions_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
"current_user": {
"type": "object",
"required": [
@@ -42,20 +132,71 @@
"can_create_issue"
],
"properties": {
- "can_remove_source_branch": { "type": "boolean" },
- "can_revert_on_current_merge_request": { "type": ["boolean", "null"] },
- "can_cherry_pick_on_current_merge_request": { "type": ["boolean", "null"] },
- "can_create_issue": { "type": "boolean" }
+ "can_remove_source_branch": {
+ "type": "boolean"
+ },
+ "can_revert_on_current_merge_request": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "can_cherry_pick_on_current_merge_request": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "can_create_issue": {
+ "type": "boolean"
+ }
},
"additionalProperties": false
},
- "can_push_to_source_branch": { "type": "boolean" },
- "new_blob_path": { "type": ["string", "null"] },
- "rebase_path": { "type": ["string", "null"] },
- "conflict_resolution_path": { "type": ["string", "null"] },
- "remove_wip_path": { "type": ["string", "null"] },
- "merge_path": { "type": ["string", "null"] },
- "cherry_pick_in_fork_path": { "type": ["string", "null"] },
- "revert_in_fork_path": { "type": ["string", "null"] }
+ "can_push_to_source_branch": {
+ "type": "boolean"
+ },
+ "new_blob_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "rebase_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "conflict_resolution_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "remove_wip_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "merge_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "cherry_pick_in_fork_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "revert_in_fork_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/test_case.json b/spec/fixtures/api/schemas/entities/test_case.json
index 483fa881f8c..660d40c4a9f 100644
--- a/spec/fixtures/api/schemas/entities/test_case.json
+++ b/spec/fixtures/api/schemas/entities/test_case.json
@@ -1,24 +1,57 @@
{
"type": "object",
- "required" : [
+ "required": [
"status",
"name"
],
"properties": {
- "status": { "type": "string" },
- "name": { "type": "string" },
- "classname": { "type": "string" },
- "file": { "type": ["string", "null"] },
- "execution_time": { "type": "float" },
- "system_output": { "type": ["string", "null"] },
- "stack_trace": { "type": ["string", "null"] },
- "attachment_url": { "type": ["string", "null"] },
+ "status": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "classname": {
+ "type": "string"
+ },
+ "file": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "execution_time": {
+ "type": "number",
+ "format": "float"
+ },
+ "system_output": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "stack_trace": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "attachment_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
"recent_failures": {
"oneOf": [
- { "type": "null" },
- { "$ref": "test_case/recent_failures.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "test_case/recent_failures.json"
+ }
]
}
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/entities/trigger.json b/spec/fixtures/api/schemas/entities/trigger.json
index 5c46142673f..c6ccd84dcdd 100644
--- a/spec/fixtures/api/schemas/entities/trigger.json
+++ b/spec/fixtures/api/schemas/entities/trigger.json
@@ -10,14 +10,21 @@
],
"properties": {
"description": {
- "type": ["string", "null"]
+ "type": [
+ "string",
+ "null"
+ ]
},
"owner": {
"type": "object",
"$ref": "user.json"
},
"last_used": {
- "type": ["datetime", "null"]
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
},
"token": {
"type": "string"
@@ -36,4 +43,4 @@
}
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/environment.json b/spec/fixtures/api/schemas/environment.json
index 87b6e5da370..fe842844223 100644
--- a/spec/fixtures/api/schemas/environment.json
+++ b/spec/fixtures/api/schemas/environment.json
@@ -15,52 +15,120 @@
"can_stop"
],
"properties": {
- "id": { "type": "integer" },
- "global_id": { "type": "string" },
- "name": { "type": "string" },
- "state": { "type": "string" },
- "external_url": { "$ref": "types/nullable_string.json" },
- "environment_type": { "$ref": "types/nullable_string.json" },
- "name_without_type": { "type": "string" },
- "has_stop_action": { "type": "boolean" },
- "environment_path": { "type": "string" },
- "stop_path": { "type": "string" },
- "cancel_auto_stop_path": { "type": "string" },
- "folder_path": { "type": "string" },
- "logs_path": { "type": "string" },
- "logs_api_path": { "type": "string" },
- "enable_advanced_logs_querying": { "type": "boolean" },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "auto_stop_at": { "type": "string", "format": "date-time" },
- "can_stop": { "type": "boolean" },
- "has_opened_alert": { "type": "boolean" },
- "tier": { "type": "string" },
- "required_approval_count": { "type": "integer" },
- "cluster_type": { "type": "types/nullable_string.json" },
- "terminal_path": { "type": "types/nullable_string.json" },
+ "id": {
+ "type": "integer"
+ },
+ "global_id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "external_url": {
+ "$ref": "types/nullable_string.json",
+ "format": "uri"
+ },
+ "environment_type": {
+ "$ref": "types/nullable_string.json",
+ "format": "uri"
+ },
+ "name_without_type": {
+ "type": "string"
+ },
+ "has_stop_action": {
+ "type": "boolean"
+ },
+ "environment_path": {
+ "type": "string"
+ },
+ "stop_path": {
+ "type": "string"
+ },
+ "cancel_auto_stop_path": {
+ "type": "string"
+ },
+ "folder_path": {
+ "type": "string"
+ },
+ "logs_path": {
+ "type": "string"
+ },
+ "logs_api_path": {
+ "type": "string"
+ },
+ "enable_advanced_logs_querying": {
+ "type": "boolean"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "auto_stop_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "can_stop": {
+ "type": "boolean"
+ },
+ "has_opened_alert": {
+ "type": "boolean"
+ },
+ "tier": {
+ "type": "string"
+ },
+ "required_approval_count": {
+ "type": "integer"
+ },
+ "cluster_type": {
+ "ref": "types/nullable_string.json"
+ },
+ "terminal_path": {
+ "ref": "types/nullable_string.json"
+ },
"rollout_status": {
"oneOf": [
- { "type": "null" },
- { "$ref": "rollout_status.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "rollout_status.json"
+ }
]
},
"last_deployment": {
"oneOf": [
- { "type": "null" },
- { "$ref": "deployment.json" },
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "deployment.json"
+ },
{
"type": "object",
- "properties" : {
- "name": { "type": "string" },
- "build_path": { "type": "string" }
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "build_path": {
+ "type": "string"
+ }
}
}
]
},
- "can_delete": { "type": "boolean" }
- ,
- "delete_path": { "type": "string" }
+ "can_delete": {
+ "type": "boolean"
+ },
+ "delete_path": {
+ "type": "string"
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/group_link/group_link.json b/spec/fixtures/api/schemas/group_link/group_link.json
index 3c2195df11e..885ed6d18e0 100644
--- a/spec/fixtures/api/schemas/group_link/group_link.json
+++ b/spec/fixtures/api/schemas/group_link/group_link.json
@@ -11,34 +11,82 @@
"is_direct_member"
],
"properties": {
- "id": { "type": "integer" },
- "created_at": { "type": "date-time" },
- "expires_at": { "type": ["date-time", "null"] },
+ "id": {
+ "type": "integer"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "expires_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
"access_level": {
"type": "object",
- "required": ["integer_value", "string_value"],
+ "required": [
+ "integer_value",
+ "string_value"
+ ],
"properties": {
- "integer_value": { "type": "integer" },
- "string_value": { "type": "string" }
+ "integer_value": {
+ "type": "integer"
+ },
+ "string_value": {
+ "type": "string"
+ }
},
"additionalProperties": false
},
- "valid_roles": { "type": "object" },
+ "valid_roles": {
+ "type": "object"
+ },
"shared_with_group": {
"type": "object",
- "required": ["id", "name", "full_name", "full_path", "avatar_url", "web_url"],
+ "required": [
+ "id",
+ "name",
+ "full_name",
+ "full_path",
+ "avatar_url",
+ "web_url"
+ ],
"properties": {
- "id": { "type": "integer" },
- "name": { "type": "string" },
- "full_name": { "type": "string" },
- "full_path": { "type": "string" },
- "avatar_url": { "type": ["string", "null"] },
- "web_url": { "type": "string" }
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "full_path": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "web_url": {
+ "type": "string"
+ }
},
"additionalProperties": false
},
- "can_update": { "type": "boolean" },
- "can_remove": { "type": "boolean" },
- "is_direct_member": { "type": "boolean" }
+ "can_update": {
+ "type": "boolean"
+ },
+ "can_remove": {
+ "type": "boolean"
+ },
+ "is_direct_member": {
+ "type": "boolean"
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/issue.json b/spec/fixtures/api/schemas/issue.json
index aefba89d9e2..ac8c05eb377 100644
--- a/spec/fixtures/api/schemas/issue.json
+++ b/spec/fixtures/api/schemas/issue.json
@@ -1,43 +1,104 @@
{
"type": "object",
- "required" : [
+ "required": [
"iid",
"title",
"confidential"
],
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": ["integer", "null"] },
- "title": { "type": "string" },
- "confidential": { "type": "boolean" },
- "due_date": { "type": ["string", "null"] },
- "relative_position": { "type": ["integer", "null"] },
- "time_estimate": { "type": "integer" },
- "type": { "type": "string", "enum": ["ISSUE", "INCIDENT", "TEST_CASE", "REQUIREMENT"] },
- "issue_sidebar_endpoint": { "type": "string" },
- "toggle_subscription_endpoint": { "type": "string" },
- "assignable_labels_endpoint": { "type": "string" },
- "reference_path": { "type": "string" },
- "real_path": { "type": "string" },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "confidential": {
+ "type": "boolean"
+ },
+ "due_date": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "relative_position": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "time_estimate": {
+ "type": "integer"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "ISSUE",
+ "INCIDENT",
+ "TEST_CASE",
+ "REQUIREMENT"
+ ]
+ },
+ "issue_sidebar_endpoint": {
+ "type": "string"
+ },
+ "toggle_subscription_endpoint": {
+ "type": "string"
+ },
+ "assignable_labels_endpoint": {
+ "type": "string"
+ },
+ "reference_path": {
+ "type": "string"
+ },
+ "real_path": {
+ "type": "string"
+ },
"project": {
- "id": { "type": "integer" },
- "path": { "type": "string" }
+ "id": {
+ "type": "integer"
+ },
+ "path": {
+ "type": "string"
+ }
},
"labels": {
"type": "array",
- "items": { "$ref": "entities/label.json" }
+ "items": {
+ "$ref": "entities/label.json"
+ }
},
"assignee": {
- "id": { "type": "integer" },
- "name": { "type": "string" },
- "username": { "type": "string" },
- "avatar_url": { "type": "uri" }
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"assignees": {
"type": "array",
"items": {
- "type": ["object", "null"],
+ "type": [
+ "object",
+ "null"
+ ],
"required": [
"id",
"name",
@@ -45,13 +106,27 @@
"avatar_url"
],
"properties": {
- "id": { "type": "integer" },
- "name": { "type": "string" },
- "username": { "type": "string" },
- "avatar_url": { "type": "uri" }
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ }
}
}
},
- "subscribed": { "type": ["boolean", "null"] }
+ "subscribed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/jira_connect/author.json b/spec/fixtures/api/schemas/jira_connect/author.json
index bd2cff96d99..e653db9a97d 100644
--- a/spec/fixtures/api/schemas/jira_connect/author.json
+++ b/spec/fixtures/api/schemas/jira_connect/author.json
@@ -1,12 +1,27 @@
{
"type": "object",
"properties": {
- "name": { "type": "string" },
- "email": { "type": "string" },
- "username": { "type": "string" },
- "url": { "type": "uri" },
- "avatar": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ }
},
- "required": [ "name", "email" ],
+ "required": [
+ "name",
+ "email"
+ ],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/jira_connect/branch.json b/spec/fixtures/api/schemas/jira_connect/branch.json
index c397d88fa91..237dc8abbc0 100644
--- a/spec/fixtures/api/schemas/jira_connect/branch.json
+++ b/spec/fixtures/api/schemas/jira_connect/branch.json
@@ -1,19 +1,38 @@
{
"type": "object",
"properties": {
- "id": { "type": "string" },
- "issueKeys": { "type": "array" },
- "name": { "type": "string" },
+ "id": {
+ "type": "string"
+ },
+ "issueKeys": {
+ "type": "array"
+ },
+ "name": {
+ "type": "string"
+ },
"lastCommit": {
"$ref": "./commit.json"
},
- "url": { "type": "uri" },
- "createPullRequestUrl": { "type": "uri" },
- "updateSequenceId": { "type": "integer" }
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "createPullRequestUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "updateSequenceId": {
+ "type": "integer"
+ }
},
"required": [
- "id", "issueKeys", "name", "lastCommit",
- "url", "createPullRequestUrl", "updateSequenceId"
+ "id",
+ "issueKeys",
+ "name",
+ "lastCommit",
+ "url",
+ "createPullRequestUrl",
+ "updateSequenceId"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/jira_connect/commit.json b/spec/fixtures/api/schemas/jira_connect/commit.json
index 794cf9ef365..0c35d650559 100644
--- a/spec/fixtures/api/schemas/jira_connect/commit.json
+++ b/spec/fixtures/api/schemas/jira_connect/commit.json
@@ -1,29 +1,61 @@
{
"type": "object",
"properties": {
- "id": { "type": "string" },
- "issueKeys": { "type": "array" },
- "hash": { "type": "string" },
- "displayId": { "type": "string" },
- "message": { "type": "string" },
- "flags": { "type": "array" },
+ "id": {
+ "type": "string"
+ },
+ "issueKeys": {
+ "type": "array"
+ },
+ "hash": {
+ "type": "string"
+ },
+ "displayId": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "flags": {
+ "type": "array"
+ },
"author": {
"$ref": "./author.json"
},
- "fileCount": { "type": "integer" },
+ "fileCount": {
+ "type": "integer"
+ },
"files": {
"type": "array",
"items": {
"$ref": "./file.json"
}
},
- "authorTimestamp": { "type": "timestamp" },
- "url": { "type": "uri" },
- "updateSequenceId": { "type": "integer" }
+ "authorTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "updateSequenceId": {
+ "type": "integer"
+ }
},
"required": [
- "id", "issueKeys", "hash", "displayId", "message", "flags", "author",
- "fileCount", "files", "authorTimestamp", "url", "updateSequenceId"
+ "id",
+ "issueKeys",
+ "hash",
+ "displayId",
+ "message",
+ "flags",
+ "author",
+ "fileCount",
+ "files",
+ "authorTimestamp",
+ "url",
+ "updateSequenceId"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/jira_connect/file.json b/spec/fixtures/api/schemas/jira_connect/file.json
index 34718991237..3e93911ece4 100644
--- a/spec/fixtures/api/schemas/jira_connect/file.json
+++ b/spec/fixtures/api/schemas/jira_connect/file.json
@@ -1,14 +1,29 @@
{
"type": "object",
"properties": {
- "path": { "type": "string" },
- "changeType": { "type": "string" },
- "linesAdded": { "type": "integer" },
- "linesRemoved": { "type": "integer" },
- "url": { "type": "uri" }
+ "path": {
+ "type": "string"
+ },
+ "changeType": {
+ "type": "string"
+ },
+ "linesAdded": {
+ "type": "integer"
+ },
+ "linesRemoved": {
+ "type": "integer"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"required": [
- "path", "changeType", "linesAdded", "linesRemoved", "url"
+ "path",
+ "changeType",
+ "linesAdded",
+ "linesRemoved",
+ "url"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/jira_connect/pull_request.json b/spec/fixtures/api/schemas/jira_connect/pull_request.json
index 56ce6faf498..430752335be 100644
--- a/spec/fixtures/api/schemas/jira_connect/pull_request.json
+++ b/spec/fixtures/api/schemas/jira_connect/pull_request.json
@@ -1,26 +1,63 @@
{
"type": "object",
"properties": {
- "id": { "type": "string" },
- "issueKeys": { "type": "array" },
- "displayId": { "type": "string" },
- "title": { "type": "string" },
+ "id": {
+ "type": "string"
+ },
+ "issueKeys": {
+ "type": "array"
+ },
+ "displayId": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
"author": {
"$ref": "./author.json"
},
- "commentCount": { "type": "integer" },
- "sourceBranch": { "type": "string" },
- "destinationBranch": { "type": "string" },
- "lastUpdate": { "type": "timestamp" },
- "status": { "type": "string" },
- "sourceBranchUrl": { "type": "uri" },
- "url": { "type": "uri" },
- "updateSequenceId": { "type": "integer" }
+ "commentCount": {
+ "type": "integer"
+ },
+ "sourceBranch": {
+ "type": "string"
+ },
+ "destinationBranch": {
+ "type": "string"
+ },
+ "lastUpdate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string"
+ },
+ "sourceBranchUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "updateSequenceId": {
+ "type": "integer"
+ }
},
"required": [
- "id", "issueKeys", "displayId", "title", "author", "commentCount",
- "sourceBranch", "destinationBranch", "lastUpdate", "status",
- "sourceBranchUrl", "url", "updateSequenceId"
+ "id",
+ "issueKeys",
+ "displayId",
+ "title",
+ "author",
+ "commentCount",
+ "sourceBranch",
+ "destinationBranch",
+ "lastUpdate",
+ "status",
+ "sourceBranchUrl",
+ "url",
+ "updateSequenceId"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/jira_connect/repository.json b/spec/fixtures/api/schemas/jira_connect/repository.json
index 9e81d77bc6a..5a45bf7cc77 100644
--- a/spec/fixtures/api/schemas/jira_connect/repository.json
+++ b/spec/fixtures/api/schemas/jira_connect/repository.json
@@ -1,11 +1,29 @@
{
"type": "object",
"properties": {
- "id": { "type": "string" },
- "name": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "url": { "type": "uri" },
- "avatar": { "type": "uri" },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "avatar": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "uri"
+ },
"commits": {
"type": "array",
"items": {
@@ -24,11 +42,20 @@
"$ref": "./pull_request.json"
}
},
- "updateSequenceId": { "type": "integer" }
+ "updateSequenceId": {
+ "type": "integer"
+ }
},
"required": [
- "id", "name", "description", "url", "avatar",
- "commits", "branches", "pullRequests", "updateSequenceId"
+ "id",
+ "name",
+ "description",
+ "url",
+ "avatar",
+ "commits",
+ "branches",
+ "pullRequests",
+ "updateSequenceId"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/job/build_trace_line.json b/spec/fixtures/api/schemas/job/build_trace_line.json
index 18726dff2bb..ada2b4edb7d 100644
--- a/spec/fixtures/api/schemas/job/build_trace_line.json
+++ b/spec/fixtures/api/schemas/job/build_trace_line.json
@@ -6,13 +6,23 @@
"content"
],
"properties": {
- "offset": { "type": "integer" },
+ "offset": {
+ "type": "integer"
+ },
"content": {
"type": "array",
- "items": { "$ref": "./build_trace_line_content.json" }
+ "items": {
+ "$ref": "./build_trace_line_content.json"
+ }
+ },
+ "section": {
+ "type": "string"
+ },
+ "section_header": {
+ "type": "boolean"
},
- "section": "string",
- "section_header": "boolean",
- "section_duration": "string"
+ "section_duration": {
+ "type": "string"
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/merge_request.json b/spec/fixtures/api/schemas/merge_request.json
index 36962660cd9..416391e454f 100644
--- a/spec/fixtures/api/schemas/merge_request.json
+++ b/spec/fixtures/api/schemas/merge_request.json
@@ -1,12 +1,17 @@
{
"type": "object",
- "required" : [
+ "required": [
"iid",
"url"
],
- "properties" : {
- "iid": { "type": "integer" },
- "url": { "type": "uri" }
+ "properties": {
+ "iid": {
+ "type": "integer"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/ml/get_experiment.json b/spec/fixtures/api/schemas/ml/get_experiment.json
index 482455a89e1..13630ec92e9 100644
--- a/spec/fixtures/api/schemas/ml/get_experiment.json
+++ b/spec/fixtures/api/schemas/ml/get_experiment.json
@@ -23,11 +23,28 @@
"type": "string"
},
"lifecycle_stage": {
- "type": {
- "enum": [
- "active",
- "deleted"
- ]
+ "type": "string",
+ "enum": [
+ "active",
+ "deleted"
+ ]
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
}
}
}
diff --git a/spec/fixtures/api/schemas/ml/list_experiments.json b/spec/fixtures/api/schemas/ml/list_experiments.json
index 4c3e834abc6..10f512cd1eb 100644
--- a/spec/fixtures/api/schemas/ml/list_experiments.json
+++ b/spec/fixtures/api/schemas/ml/list_experiments.json
@@ -25,12 +25,11 @@
"type": "string"
},
"lifecycle_stage": {
- "type": {
- "enum": [
- "active",
- "deleted"
- ]
- }
+ "type": "string",
+ "enum": [
+ "active",
+ "deleted"
+ ]
}
}
}
diff --git a/spec/fixtures/api/schemas/ml/run.json b/spec/fixtures/api/schemas/ml/run.json
index 48d0ed25ce4..5591eee0800 100644
--- a/spec/fixtures/api/schemas/ml/run.json
+++ b/spec/fixtures/api/schemas/ml/run.json
@@ -45,24 +45,24 @@
"end_time": {
"type": "integer"
},
- "user_id": "",
+ "user_id": {
+ "type": "string"
+ },
"status": {
- "type": {
- "enum": [
- "RUNNING",
- "SCHEDULED",
- "FINISHED",
- "FAILED",
- "KILLED"
- ]
- }
+ "type": "string",
+ "enum": [
+ "RUNNING",
+ "SCHEDULED",
+ "FINISHED",
+ "FAILED",
+ "KILLED"
+ ]
},
"lifecycle_stage": {
- "type": {
- "enum": [
- "active"
- ]
- }
+ "type": "string",
+ "enum": [
+ "active"
+ ]
}
}
},
diff --git a/spec/fixtures/api/schemas/ml/update_run.json b/spec/fixtures/api/schemas/ml/update_run.json
index b429444120f..fb1291a9bb9 100644
--- a/spec/fixtures/api/schemas/ml/update_run.json
+++ b/spec/fixtures/api/schemas/ml/update_run.json
@@ -20,16 +20,44 @@
"end_time"
],
"properties": {
- "run_id": { "type": "string" },
- "run_uuid": { "type": "string" },
- "experiment_id": { "type": "string" },
- "artifact_location": { "type": "string" },
- "start_time": { "type": "integer" },
- "end_time": { "type": "integer" },
- "user_id": { "type": "string" },
- "status": { "type": { "enum" : ["RUNNING", "SCHEDULED", "FINISHED", "FAILED", "KILLED"] } },
- "lifecycle_stage": { "type": { "enum" : ["active"] } }
+ "run_id": {
+ "type": "string"
+ },
+ "run_uuid": {
+ "type": "string"
+ },
+ "experiment_id": {
+ "type": "string"
+ },
+ "artifact_location": {
+ "type": "string"
+ },
+ "start_time": {
+ "type": "integer"
+ },
+ "end_time": {
+ "type": "integer"
+ },
+ "user_id": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "RUNNING",
+ "SCHEDULED",
+ "FINISHED",
+ "FAILED",
+ "KILLED"
+ ]
+ },
+ "lifecycle_stage": {
+ "type": "string",
+ "enum": [
+ "active"
+ ]
+ }
}
}
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/pipeline_schedule.json b/spec/fixtures/api/schemas/pipeline_schedule.json
index ef5942b7eb3..ade5a76d934 100644
--- a/spec/fixtures/api/schemas/pipeline_schedule.json
+++ b/spec/fixtures/api/schemas/pipeline_schedule.json
@@ -1,53 +1,142 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "description": { "type": "string" },
- "ref": { "type": "string" },
- "cron": { "type": "string" },
- "cron_timezone": { "type": "string" },
- "next_run_at": { "type": "string" },
- "active": { "type": "boolean" },
- "created_at": { "type": ["string", "null"], "format": "date-time" },
- "updated_at": { "type": ["string", "null"], "format": "date-time" },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string"
+ },
+ "ref": {
+ "type": "string"
+ },
+ "cron": {
+ "type": "string"
+ },
+ "cron_timezone": {
+ "type": "string"
+ },
+ "next_run_at": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "created_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
"last_pipeline": {
- "type": ["object", "null"],
+ "type": [
+ "object",
+ "null"
+ ],
"properties": {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": "integer" },
- "sha": { "type": "string" },
- "ref": { "type": "string" },
- "status": { "type": "string" },
- "source": { "type": "string" },
- "web_url": { "type": ["string", "null"] },
- "created_at": { "type": ["string", "null"], "format": "date-time" },
- "updated_at": { "type": ["string", "null"], "format": "date-time" }
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "sha": {
+ "type": "string"
+ },
+ "ref": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "web_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
},
"additionalProperties": false
},
"owner": {
"type": "object",
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"required": [
- "id", "name", "username", "state", "avatar_url", "web_url"
+ "id",
+ "name",
+ "username",
+ "state",
+ "avatar_url",
+ "web_url"
]
},
"variables": {
"type": "array",
- "items": { "$ref": "pipeline_schedule_variable.json" }
+ "items": {
+ "$ref": "pipeline_schedule_variable.json"
+ }
}
},
"required": [
- "id", "description", "ref", "cron", "cron_timezone", "next_run_at",
- "active", "created_at", "updated_at", "owner"
+ "id",
+ "description",
+ "ref",
+ "cron",
+ "cron_timezone",
+ "next_run_at",
+ "active",
+ "created_at",
+ "updated_at",
+ "owner"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/prometheus/additional_metrics_query_result.json b/spec/fixtures/api/schemas/prometheus/additional_metrics_query_result.json
index 47b5d283b8c..f32ae3d334c 100644
--- a/spec/fixtures/api/schemas/prometheus/additional_metrics_query_result.json
+++ b/spec/fixtures/api/schemas/prometheus/additional_metrics_query_result.json
@@ -1,13 +1,29 @@
{
+ "type": "array",
"items": {
+ "type": "object",
+ "required": [
+ "group",
+ "metrics",
+ "priority"
+ ],
"properties": {
"group": {
"type": "string"
},
"metrics": {
+ "type": "array",
"items": {
+ "type": "object",
+ "required": [
+ "queries",
+ "title",
+ "weight"
+ ],
"properties": {
"queries": {
+ "type": "array",
+ "required": [],
"items": {
"properties": {
"query_range": {
@@ -16,13 +32,33 @@
"query": {
"type": "string"
},
+ "label": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
"result": {
- "type": "any"
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "metric",
+ "values"
+ ],
+ "properties": {
+ "metric": {
+ "type": "object"
+ },
+ "values": {
+ "type": "array"
+ }
+ }
+ }
}
},
"type": "object"
- },
- "type": "array"
+ }
},
"title": {
"type": "string"
@@ -33,26 +69,12 @@
"y_label": {
"type": "string"
}
- },
- "type": "object"
- },
- "required": [
- "metrics",
- "title",
- "weight"
- ],
- "type": "array"
+ }
+ }
},
"priority": {
"type": "integer"
}
- },
- "type": "object"
- },
- "required": [
- "group",
- "priority",
- "metrics"
- ],
- "type": "array"
+ }
+ }
} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/basic_environment.json b/spec/fixtures/api/schemas/public_api/v4/basic_environment.json
new file mode 100644
index 00000000000..f22f73f573b
--- /dev/null
+++ b/spec/fixtures/api/schemas/public_api/v4/basic_environment.json
@@ -0,0 +1,34 @@
+{
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "slug",
+ "external_url",
+ "created_at",
+ "updated_at"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "external_url": {
+ "$ref": "../../types/nullable_string.json"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "additionalProperties": false
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/basic_environments.json b/spec/fixtures/api/schemas/public_api/v4/basic_environments.json
new file mode 100644
index 00000000000..6620e423c96
--- /dev/null
+++ b/spec/fixtures/api/schemas/public_api/v4/basic_environments.json
@@ -0,0 +1,6 @@
+{
+ "type": "array",
+ "items": {
+ "$ref": "./basic_environment.json"
+ }
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/branch.json b/spec/fixtures/api/schemas/public_api/v4/branch.json
index 0073a6d89fc..ed65f3c2e5c 100644
--- a/spec/fixtures/api/schemas/public_api/v4/branch.json
+++ b/spec/fixtures/api/schemas/public_api/v4/branch.json
@@ -1,6 +1,6 @@
{
"type": "object",
- "required" : [
+ "required": [
"name",
"commit",
"merged",
@@ -10,16 +10,35 @@
"developers_can_merge",
"web_url"
],
- "properties" : {
- "name": { "type": "string" },
- "commit": { "$ref": "commit/basic.json" },
- "merged": { "type": "boolean" },
- "protected": { "type": "boolean" },
- "default": { "type": "boolean" },
- "developers_can_push": { "type": "boolean" },
- "developers_can_merge": { "type": "boolean" },
- "can_push": { "type": "boolean" },
- "web_url": { "type": "uri" }
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "commit": {
+ "$ref": "commit/basic.json"
+ },
+ "merged": {
+ "type": "boolean"
+ },
+ "protected": {
+ "type": "boolean"
+ },
+ "default": {
+ "type": "boolean"
+ },
+ "developers_can_push": {
+ "type": "boolean"
+ },
+ "developers_can_merge": {
+ "type": "boolean"
+ },
+ "can_push": {
+ "type": "boolean"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/deploy_key.json b/spec/fixtures/api/schemas/public_api/v4/deploy_key.json
index 99e57a4c218..4f8b5c8422e 100644
--- a/spec/fixtures/api/schemas/public_api/v4/deploy_key.json
+++ b/spec/fixtures/api/schemas/public_api/v4/deploy_key.json
@@ -7,20 +7,50 @@
"expires_at",
"key",
"fingerprint_sha256",
+ "usage_type",
"projects_with_write_access"
],
"properties": {
- "id": { "type": "integer" },
- "title": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
- "expires_at": { "type": ["string", "null"], "format": "date-time" },
- "key": { "type": "string" },
- "fingerprint": { "type": "string" },
- "fingerprint_sha256": { "type": "string" },
+ "id": {
+ "type": "integer"
+ },
+ "title": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "expires_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "key": {
+ "type": "string"
+ },
+ "fingerprint": {
+ "type": "string"
+ },
+ "fingerprint_sha256": {
+ "type": "string"
+ },
+ "usage_type": {
+ "type": "string",
+ "enum": [
+ "auth",
+ "signing",
+ "auth_and_signing"
+ ]
+ },
"projects_with_write_access": {
"type": "array",
- "items": { "$ref": "project/identity.json" }
+ "items": {
+ "$ref": "project/identity.json"
+ }
}
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/deploy_token.json b/spec/fixtures/api/schemas/public_api/v4/deploy_token.json
index 102ab95a4ee..664740c2a3c 100644
--- a/spec/fixtures/api/schemas/public_api/v4/deploy_token.json
+++ b/spec/fixtures/api/schemas/public_api/v4/deploy_token.json
@@ -19,7 +19,9 @@
"username": {
"type": "string"
},
- "expires_at": { "type": "string" },
+ "expires_at": {
+ "type": "string"
+ },
"scopes": {
"type": "array",
"items": {
diff --git a/spec/fixtures/api/schemas/public_api/v4/environments.json b/spec/fixtures/api/schemas/public_api/v4/environments.json
index f739c06f604..1697da0f231 100644
--- a/spec/fixtures/api/schemas/public_api/v4/environments.json
+++ b/spec/fixtures/api/schemas/public_api/v4/environments.json
@@ -1,9 +1,6 @@
{
"type": "array",
"items": {
- "type": "object",
- "properties": {
- "$ref": "./environment.json"
- }
+ "$ref": "./environment.json"
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/feature_flag_scopes.json b/spec/fixtures/api/schemas/public_api/v4/feature_flag_scopes.json
index b1a7021db8b..1df46780a03 100644
--- a/spec/fixtures/api/schemas/public_api/v4/feature_flag_scopes.json
+++ b/spec/fixtures/api/schemas/public_api/v4/feature_flag_scopes.json
@@ -1,9 +1,6 @@
{
"type": "array",
"items": {
- "type": "object",
- "properties": {
- "$ref": "./feature_flag_scope.json"
- }
+ "$ref": "./feature_flag_scope.json"
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/feature_flags.json b/spec/fixtures/api/schemas/public_api/v4/feature_flags.json
index c19df0443d9..f381adc3c8b 100644
--- a/spec/fixtures/api/schemas/public_api/v4/feature_flags.json
+++ b/spec/fixtures/api/schemas/public_api/v4/feature_flags.json
@@ -1,9 +1,6 @@
{
"type": "array",
"items": {
- "type": "object",
- "properties": {
- "$ref": "./feature_flag.json"
- }
+ "$ref": "./feature_flag.json"
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/integration.json b/spec/fixtures/api/schemas/public_api/v4/integration.json
index b6f13d1cfe7..d1538db7de4 100644
--- a/spec/fixtures/api/schemas/public_api/v4/integration.json
+++ b/spec/fixtures/api/schemas/public_api/v4/integration.json
@@ -1,24 +1,62 @@
{
"type": "object",
"properties": {
- "id": { "type": "integer" },
- "title": { "type": "string" },
- "slug": { "type": "string" },
- "created_at": { "type": "date-time" },
- "updated_at": { "type": "date-time" },
- "active": { "type": "boolean" },
- "commit_events": { "type": "boolean" },
- "push_events": { "type": "boolean" },
- "issues_events": { "type": "boolean" },
- "confidential_issues_events": { "type": "boolean" },
- "merge_requests_events": { "type": "boolean" },
- "tag_push_events": { "type": "boolean" },
- "note_events": { "type": "boolean" },
- "confidential_note_events": { "type": "boolean" },
- "pipeline_events": { "type": "boolean" },
- "wiki_page_events": { "type": "boolean" },
- "job_events": { "type": "boolean" },
- "comment_on_event_enabled": { "type": "boolean" }
+ "id": {
+ "type": "integer"
+ },
+ "title": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "commit_events": {
+ "type": "boolean"
+ },
+ "push_events": {
+ "type": "boolean"
+ },
+ "issues_events": {
+ "type": "boolean"
+ },
+ "confidential_issues_events": {
+ "type": "boolean"
+ },
+ "merge_requests_events": {
+ "type": "boolean"
+ },
+ "tag_push_events": {
+ "type": "boolean"
+ },
+ "note_events": {
+ "type": "boolean"
+ },
+ "confidential_note_events": {
+ "type": "boolean"
+ },
+ "pipeline_events": {
+ "type": "boolean"
+ },
+ "wiki_page_events": {
+ "type": "boolean"
+ },
+ "job_events": {
+ "type": "boolean"
+ },
+ "comment_on_event_enabled": {
+ "type": "boolean"
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/issue.json b/spec/fixtures/api/schemas/public_api/v4/issue.json
index 90b368b5226..c2b096a922f 100644
--- a/spec/fixtures/api/schemas/public_api/v4/issue.json
+++ b/spec/fixtures/api/schemas/public_api/v4/issue.json
@@ -1,16 +1,47 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": "integer" },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "discussion_locked": { "type": ["boolean", "null"] },
- "closed_at": { "type": ["string", "null"] },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": "string"
+ },
+ "discussion_locked": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "closed_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
"labels": {
"type": "array",
"items": {
@@ -18,58 +49,171 @@
}
},
"milestone": {
- "type": ["object", "null"],
+ "type": [
+ "object",
+ "null"
+ ],
"properties": {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": ["integer", "null"] },
- "group_id": { "type": ["integer", "null"] },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "due_date": { "type": "string" , "format": "date-time" },
- "start_date": { "type": "string", "format": "date-time" }
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "due_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "anyOf": [
+ {
+ "format": "date-time"
+ },
+ {
+ "format": "date"
+ }
+ ]
+ },
+ "start_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "anyOf": [
+ {
+ "format": "date-time"
+ },
+ {
+ "format": "date"
+ }
+ ]
+ },
+ "expired": {
+ "type": "boolean"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"additionalProperties": false
},
"assignees": {
"type": "array",
"items": {
- "type": ["object", "null"],
+ "type": [
+ "object",
+ "null"
+ ],
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"additionalProperties": false
}
},
"assignee": {
- "type": ["object", "null"],
+ "type": [
+ "object",
+ "null"
+ ],
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"additionalProperties": false
},
"author": {
"type": "object",
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
"required": [
"id",
@@ -80,30 +224,88 @@
"web_url"
]
},
- "user_notes_count": { "type": "integer" },
- "upvotes": { "type": "integer" },
- "downvotes": { "type": "integer" },
- "due_date": { "type": ["string", "null"] },
- "confidential": { "type": "boolean" },
- "web_url": { "type": "uri" },
- "severity": { "type": "string", "enum": ["UNKNOWN", "LOW", "MEDIUM", "HIGH", "CRITICAL"] },
+ "user_notes_count": {
+ "type": "integer"
+ },
+ "upvotes": {
+ "type": "integer"
+ },
+ "downvotes": {
+ "type": "integer"
+ },
+ "due_date": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "confidential": {
+ "type": "boolean"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "severity": {
+ "type": "string",
+ "enum": [
+ "UNKNOWN",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
"time_stats": {
- "time_estimate": { "type": "integer" },
- "total_time_spent": { "type": "integer" },
- "human_time_estimate": { "type": ["string", "null"] },
- "human_total_time_spent": { "type": ["string", "null"] }
+ "time_estimate": {
+ "type": "integer"
+ },
+ "total_time_spent": {
+ "type": "integer"
+ },
+ "human_time_estimate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "human_total_time_spent": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
},
"references": {
- "short": {"type": "string"},
- "relative": {"type": "string"},
- "full": {"type": "string"}
+ "short": {
+ "type": "string"
+ },
+ "relative": {
+ "type": "string"
+ },
+ "full": {
+ "type": "string"
+ }
}
},
"required": [
- "id", "iid", "project_id", "title", "description",
- "state", "created_at", "updated_at", "labels",
- "milestone", "assignees", "author", "user_notes_count",
- "upvotes", "downvotes", "due_date", "confidential",
+ "id",
+ "iid",
+ "project_id",
+ "title",
+ "description",
+ "state",
+ "created_at",
+ "updated_at",
+ "labels",
+ "milestone",
+ "assignees",
+ "author",
+ "user_notes_count",
+ "upvotes",
+ "downvotes",
+ "due_date",
+ "confidential",
"web_url"
]
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/issues.json b/spec/fixtures/api/schemas/public_api/v4/issues.json
index c76806705e8..5ef97b020f9 100644
--- a/spec/fixtures/api/schemas/public_api/v4/issues.json
+++ b/spec/fixtures/api/schemas/public_api/v4/issues.json
@@ -1,9 +1,6 @@
{
"type": "array",
"items": {
- "type": "object",
- "properties" : {
- "$ref": "./issue.json"
- }
+ "$ref": "./issue.json"
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/labels/label_with_counts.json b/spec/fixtures/api/schemas/public_api/v4/labels/label_with_counts.json
index 2331932e07d..4aa3199919b 100644
--- a/spec/fixtures/api/schemas/public_api/v4/labels/label_with_counts.json
+++ b/spec/fixtures/api/schemas/public_api/v4/labels/label_with_counts.json
@@ -1,16 +1,22 @@
{
"type": "object",
- "properties": {
- "allOf": [
- { "$ref": "label.json" },
- {
- "type": "object",
- "properties": {
- "open_issues_count": { "type": "integer" },
- "closed_issues_count": { "type": "integer" },
- "open_merge_requests_count": { "type": "integer" }
+ "allOf": [
+ {
+ "$ref": "label.json"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "open_issues_count": {
+ "type": "integer"
+ },
+ "closed_issues_count": {
+ "type": "integer"
+ },
+ "open_merge_requests_count": {
+ "type": "integer"
}
}
- ]
- }
-}
+ }
+ ]
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/labels/project_label.json b/spec/fixtures/api/schemas/public_api/v4/labels/project_label.json
index a9a065ee71f..ec4f64b6772 100644
--- a/spec/fixtures/api/schemas/public_api/v4/labels/project_label.json
+++ b/spec/fixtures/api/schemas/public_api/v4/labels/project_label.json
@@ -1,15 +1,22 @@
{
"type": "object",
- "properties": {
- "allOf": [
- { "$ref": "label.json" },
- {
- "type": "object",
- "properties": {
- "priority": { "type": ["integer", "null"] },
- "is_project_label": { "type": "boolean" }
+ "allOf": [
+ {
+ "$ref": "label.json"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "priority": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "is_project_label": {
+ "type": "boolean"
}
}
- ]
- }
-}
+ }
+ ]
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/labels/project_label_with_counts.json b/spec/fixtures/api/schemas/public_api/v4/labels/project_label_with_counts.json
index 87b90b2b3b5..cc0dc4024fe 100644
--- a/spec/fixtures/api/schemas/public_api/v4/labels/project_label_with_counts.json
+++ b/spec/fixtures/api/schemas/public_api/v4/labels/project_label_with_counts.json
@@ -1,9 +1,11 @@
{
"type": "object",
- "properties": {
- "allOf": [
- { "$ref": "project_label.json" },
- { "$ref": "label_with_counts.json" }
- ]
- }
-}
+ "allOf": [
+ {
+ "$ref": "project_label.json"
+ },
+ {
+ "$ref": "label_with_counts.json"
+ }
+ ]
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/merge_request.json b/spec/fixtures/api/schemas/public_api/v4/merge_request.json
index 1ef2f9f9534..9a6c1757eea 100644
--- a/spec/fixtures/api/schemas/public_api/v4/merge_request.json
+++ b/spec/fixtures/api/schemas/public_api/v4/merge_request.json
@@ -1,25 +1,75 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": "integer" },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "merged_by": { "$ref": "user/basic.json" },
- "merge_user": { "$ref": "user/basic.json" },
- "merged_at": { "type": ["string", "null"] },
- "closed_by": { "$ref": "user/basic.json" },
- "closed_at": { "type": ["string", "null"], "format": "date-time" },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "target_branch": { "type": "string" },
- "source_branch": { "type": "string" },
- "upvotes": { "type": "integer" },
- "downvotes": { "type": "integer" },
- "author": { "$ref": "user/basic.json" },
- "assignee": { "$ref": "user/basic.json" },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": "string"
+ },
+ "merged_by": {
+ "$ref": "user/basic.json"
+ },
+ "merge_user": {
+ "$ref": "user/basic.json"
+ },
+ "merged_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "closed_by": {
+ "$ref": "user/basic.json"
+ },
+ "closed_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "target_branch": {
+ "type": "string"
+ },
+ "source_branch": {
+ "type": "string"
+ },
+ "upvotes": {
+ "type": "integer"
+ },
+ "downvotes": {
+ "type": "integer"
+ },
+ "author": {
+ "$ref": "user/basic.json"
+ },
+ "assignee": {
+ "$ref": "user/basic.json"
+ },
"assignees": {
"type": "array",
"items": {
@@ -32,60 +82,159 @@
"$ref": "user/basic.json"
}
},
- "source_project_id": { "type": "integer" },
- "target_project_id": { "type": "integer" },
+ "source_project_id": {
+ "type": "integer"
+ },
+ "target_project_id": {
+ "type": "integer"
+ },
"labels": {
"type": "array",
"items": {
"type": "string"
}
},
- "work_in_progress": { "type": "boolean" },
+ "work_in_progress": {
+ "type": "boolean"
+ },
"milestone": {
"oneOf": [
- { "type": "null" },
- { "$ref": "milestone.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "milestone.json"
+ }
]
},
- "merge_when_pipeline_succeeds": { "type": "boolean" },
- "merge_status": { "type": "string" },
- "sha": { "type": "string" },
- "merge_commit_sha": { "type": ["string", "null"] },
- "user_notes_count": { "type": "integer" },
- "changes_count": { "type": "string" },
- "should_remove_source_branch": { "type": ["boolean", "null"] },
- "force_remove_source_branch": { "type": ["boolean", "null"] },
- "discussion_locked": { "type": ["boolean", "null"] },
- "web_url": { "type": "uri" },
- "squash": { "type": "boolean" },
+ "merge_when_pipeline_succeeds": {
+ "type": "boolean"
+ },
+ "merge_status": {
+ "type": "string"
+ },
+ "sha": {
+ "type": "string"
+ },
+ "merge_commit_sha": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "user_notes_count": {
+ "type": "integer"
+ },
+ "changes_count": {
+ "type": "string"
+ },
+ "should_remove_source_branch": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "force_remove_source_branch": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "discussion_locked": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "squash": {
+ "type": "boolean"
+ },
"time_stats": {
- "time_estimate": { "type": "integer" },
- "total_time_spent": { "type": "integer" },
- "human_time_estimate": { "type": ["string", "null"] },
- "human_total_time_spent": { "type": ["string", "null"] }
+ "time_estimate": {
+ "type": "integer"
+ },
+ "total_time_spent": {
+ "type": "integer"
+ },
+ "human_time_estimate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "human_total_time_spent": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "allow_collaboration": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "allow_maintainer_to_push": {
+ "type": [
+ "boolean",
+ "null"
+ ]
},
- "allow_collaboration": { "type": ["boolean", "null"] },
- "allow_maintainer_to_push": { "type": ["boolean", "null"] },
"references": {
- "short": {"type": "string"},
- "relative": {"type": "string"},
- "full": {"type": "string"}
+ "short": {
+ "type": "string"
+ },
+ "relative": {
+ "type": "string"
+ },
+ "full": {
+ "type": "string"
+ }
}
},
"required": [
- "id", "iid", "project_id", "title", "description",
- "state", "created_at", "updated_at", "target_branch",
- "source_branch", "upvotes", "downvotes", "author",
- "assignee", "source_project_id", "target_project_id",
- "labels", "work_in_progress", "milestone", "merge_when_pipeline_succeeds",
- "merge_status", "sha", "merge_commit_sha", "user_notes_count",
- "should_remove_source_branch", "force_remove_source_branch",
- "web_url", "squash"
+ "id",
+ "iid",
+ "project_id",
+ "title",
+ "description",
+ "state",
+ "created_at",
+ "updated_at",
+ "target_branch",
+ "source_branch",
+ "upvotes",
+ "downvotes",
+ "author",
+ "assignee",
+ "source_project_id",
+ "target_project_id",
+ "labels",
+ "work_in_progress",
+ "milestone",
+ "merge_when_pipeline_succeeds",
+ "merge_status",
+ "sha",
+ "merge_commit_sha",
+ "user_notes_count",
+ "should_remove_source_branch",
+ "force_remove_source_branch",
+ "web_url",
+ "squash"
],
"head_pipeline": {
"oneOf": [
- { "type": "null" },
- { "$ref": "pipeline/detail.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "pipeline/detail.json"
+ }
]
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json b/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json
index f176e5ee261..48de8f13547 100644
--- a/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json
+++ b/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json
@@ -1,26 +1,59 @@
{
"type": "object",
- "properties" : {
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": "integer" },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "web_url": { "type": "uri" }
- },
- "required": [
- "id", "iid", "project_id", "title", "description",
- "state", "created_at", "updated_at", "web_url"
- ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ },
"head_pipeline": {
"oneOf": [
- { "type": "null" },
- { "$ref": "pipeline/detail.json" }
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "pipeline/detail.json"
+ }
]
}
- }
-}
+ },
+ "required": [
+ "id",
+ "iid",
+ "project_id",
+ "title",
+ "description",
+ "state",
+ "created_at",
+ "updated_at",
+ "web_url"
+ ]
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/milestone.json b/spec/fixtures/api/schemas/public_api/v4/milestone.json
index e7e0e57f02f..c33c4044a62 100644
--- a/spec/fixtures/api/schemas/public_api/v4/milestone.json
+++ b/spec/fixtures/api/schemas/public_api/v4/milestone.json
@@ -1,24 +1,77 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": ["integer", "null"] },
- "group_id": { "type": ["integer", "null"] },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "created_at": { "type": "string" },
- "updated_at": { "type": "string" },
- "start_date": { "type": ["string", "null"], "format": "date-time" },
- "due_date": { "type": ["string", "null"], "format": "date-time" },
- "expired": { "type": ["boolean", "null"] },
- "web_url": { "type": "string" }
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ },
+ "start_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "due_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "expired": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "web_url": {
+ "type": "string"
+ }
},
"required": [
- "id", "iid", "title", "description", "state",
- "state", "created_at", "updated_at", "start_date",
- "due_date", "expired"
+ "id",
+ "iid",
+ "title",
+ "description",
+ "state",
+ "created_at",
+ "updated_at",
+ "start_date",
+ "due_date",
+ "expired"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/milestone_with_stats.json b/spec/fixtures/api/schemas/public_api/v4/milestone_with_stats.json
index d09d1634eb9..b5fa161ec2a 100644
--- a/spec/fixtures/api/schemas/public_api/v4/milestone_with_stats.json
+++ b/spec/fixtures/api/schemas/public_api/v4/milestone_with_stats.json
@@ -1,32 +1,95 @@
{
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "iid": { "type": "integer" },
- "project_id": { "type": ["integer", "null"] },
- "group_id": { "type": ["integer", "null"] },
- "title": { "type": "string" },
- "description": { "type": ["string", "null"] },
- "state": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "start_date": { "type": ["string", "null"], "format": "date-time" },
- "due_date": { "type": ["string", "null"], "format": "date-time" },
- "expired": { "type": ["boolean", "null"] },
- "web_url": { "type": "string" },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "iid": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "group_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "start_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "due_date": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "expired": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "web_url": {
+ "type": "string"
+ },
"issue_stats": {
- "required": ["total", "closed"],
+ "required": [
+ "total",
+ "closed"
+ ],
"properties": {
- "total": { "type": "integer" },
- "closed": { "type": "integer" }
+ "total": {
+ "type": "integer"
+ },
+ "closed": {
+ "type": "integer"
+ }
},
"additionalProperties": false
}
},
"required": [
- "id", "iid", "title", "description", "state",
- "state", "created_at", "updated_at", "start_date",
- "due_date", "expired", "issue_stats"
+ "id",
+ "iid",
+ "title",
+ "description",
+ "state",
+ "created_at",
+ "updated_at",
+ "start_date",
+ "due_date",
+ "expired",
+ "issue_stats"
],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/notes.json b/spec/fixtures/api/schemas/public_api/v4/notes.json
index d6d0300a64f..1987a0f2f71 100644
--- a/spec/fixtures/api/schemas/public_api/v4/notes.json
+++ b/spec/fixtures/api/schemas/public_api/v4/notes.json
@@ -2,43 +2,124 @@
"type": "array",
"items": {
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "type": { "type": ["string", "null"] },
- "body": { "type": "string" },
- "attachment": { "type": ["string", "null"] },
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "type": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "body": {
+ "type": "string"
+ },
+ "attachment": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
"author": {
"type": "object",
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
- "required" : [
- "id", "name", "username", "state", "avatar_url", "web_url"
+ "required": [
+ "id",
+ "name",
+ "username",
+ "state",
+ "avatar_url",
+ "web_url"
]
},
- "commands_changes": { "type": "object", "additionalProperties": true },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
- "system": { "type": "boolean" },
- "noteable_id": { "type": "integer" },
- "noteable_iid": { "type": "integer" },
- "noteable_type": { "type": "string" },
- "resolved": { "type": "boolean" },
- "resolvable": { "type": "boolean" },
- "resolved_by": { "type": ["string", "null"] },
- "resolved_at": { "type": ["string", "null"] },
- "confidential": { "type": ["boolean", "null"] },
- "internal": { "type": ["boolean", "null"] }
+ "commands_changes": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "system": {
+ "type": "boolean"
+ },
+ "noteable_id": {
+ "type": "integer"
+ },
+ "noteable_iid": {
+ "type": "integer"
+ },
+ "noteable_type": {
+ "type": "string"
+ },
+ "resolved": {
+ "type": "boolean"
+ },
+ "resolvable": {
+ "type": "boolean"
+ },
+ "resolved_by": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "resolved_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "confidential": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "internal": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
},
"required": [
- "id", "body", "attachment", "author", "created_at", "updated_at",
- "system", "noteable_id", "noteable_type"
+ "id",
+ "body",
+ "attachment",
+ "author",
+ "created_at",
+ "updated_at",
+ "system",
+ "noteable_id",
+ "noteable_type"
],
"additionalProperties": false
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/packages/package.json b/spec/fixtures/api/schemas/public_api/v4/packages/package.json
index 5d0d5f63aa9..c1b4fc09079 100644
--- a/spec/fixtures/api/schemas/public_api/v4/packages/package.json
+++ b/spec/fixtures/api/schemas/public_api/v4/packages/package.json
@@ -28,12 +28,9 @@
},
"_links": {
"type": "object",
- "required": [
- "web_path"
- ],
"properties": {
- "details": {
- "type": "string"
+ "web_path": {
+ "type": ["string", "null"]
}
}
},
diff --git a/spec/fixtures/api/schemas/public_api/v4/pages_domain/basic.json b/spec/fixtures/api/schemas/public_api/v4/pages_domain/basic.json
index 66d4be529b1..9bcd191741f 100644
--- a/spec/fixtures/api/schemas/public_api/v4/pages_domain/basic.json
+++ b/spec/fixtures/api/schemas/public_api/v4/pages_domain/basic.json
@@ -1,23 +1,60 @@
{
"type": "object",
"properties": {
- "domain": { "type": "string" },
- "url": { "type": "uri" },
- "project_id": { "type": "integer" },
- "verified": { "type": "boolean" },
- "verification_code": { "type": ["string", "null"] },
- "enabled_until": { "type": ["string", "null"], "format": "date-time" },
- "auto_ssl_enabled": { "type": "boolean" },
+ "domain": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "project_id": {
+ "type": "integer"
+ },
+ "verified": {
+ "type": "boolean"
+ },
+ "verification_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "enabled_until": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "auto_ssl_enabled": {
+ "type": "boolean"
+ },
"certificate_expiration": {
"type": "object",
"properties": {
- "expired": { "type": "boolean" },
- "expiration": { "type": "string" }
+ "expired": {
+ "type": "boolean"
+ },
+ "expiration": {
+ "type": "string"
+ }
},
- "required": ["expired", "expiration"],
+ "required": [
+ "expired",
+ "expiration"
+ ],
"additionalProperties": false
}
},
- "required": ["domain", "url", "project_id", "verified", "verification_code", "enabled_until", "auto_ssl_enabled"],
+ "required": [
+ "domain",
+ "url",
+ "project_id",
+ "verified",
+ "verification_code",
+ "enabled_until",
+ "auto_ssl_enabled"
+ ],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/pages_domain/detail.json b/spec/fixtures/api/schemas/public_api/v4/pages_domain/detail.json
index bbbc610eb27..6ce431a274a 100644
--- a/spec/fixtures/api/schemas/public_api/v4/pages_domain/detail.json
+++ b/spec/fixtures/api/schemas/public_api/v4/pages_domain/detail.json
@@ -1,24 +1,61 @@
{
"type": "object",
"properties": {
- "domain": { "type": "string" },
- "url": { "type": "uri" },
- "verified": { "type": "boolean" },
- "verification_code": { "type": ["string", "null"] },
- "enabled_until": { "type": ["string", "null"] },
- "auto_ssl_enabled": { "type": "boolean" },
+ "domain": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "verified": {
+ "type": "boolean"
+ },
+ "verification_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "enabled_until": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "auto_ssl_enabled": {
+ "type": "boolean"
+ },
"certificate": {
"type": "object",
"properties": {
- "subject": { "type": "string" },
- "expired": { "type": "boolean" },
- "certificate": { "type": "string" },
- "certificate_text": { "type": "string" }
+ "subject": {
+ "type": "string"
+ },
+ "expired": {
+ "type": "boolean"
+ },
+ "certificate": {
+ "type": "string"
+ },
+ "certificate_text": {
+ "type": "string"
+ }
},
- "required": ["subject", "expired"],
+ "required": [
+ "subject",
+ "expired"
+ ],
"additionalProperties": false
}
},
- "required": ["domain", "url", "verified", "verification_code", "enabled_until", "auto_ssl_enabled"],
+ "required": [
+ "domain",
+ "url",
+ "verified",
+ "verification_code",
+ "enabled_until",
+ "auto_ssl_enabled"
+ ],
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/project_hooks.json b/spec/fixtures/api/schemas/public_api/v4/project_hooks.json
index 8c542ebe3ad..8557e5cae40 100644
--- a/spec/fixtures/api/schemas/public_api/v4/project_hooks.json
+++ b/spec/fixtures/api/schemas/public_api/v4/project_hooks.json
@@ -1,10 +1,6 @@
{
"type": "array",
"items": {
- "type": "object",
- "properties" : {
- "$ref": "./project_hook.json"
- }
+ "$ref": "./project_hook.json"
}
-}
-
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/snippets.json b/spec/fixtures/api/schemas/public_api/v4/snippets.json
index 65299901128..dab6b69f1c1 100644
--- a/spec/fixtures/api/schemas/public_api/v4/snippets.json
+++ b/spec/fixtures/api/schemas/public_api/v4/snippets.json
@@ -2,46 +2,107 @@
"type": "array",
"items": {
"type": "object",
- "properties" : {
- "id": { "type": "integer" },
- "project_id": { "type": ["integer", "null"] },
- "title": { "type": "string" },
- "file_name": { "type": ["string", "null"] },
- "files" : {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "project_id": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "file_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "files": {
"type": "array",
"items": {
"type": "object",
"properties": {
- "path": { "type": "string" },
- "raw_url": { "type": "string" }
+ "path": {
+ "type": "string"
+ },
+ "raw_url": {
+ "type": "string"
+ }
}
}
},
- "description": { "type": ["string", "null"] },
- "visibility": { "type": "string" },
- "web_url": { "type": "string" },
- "raw_url": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
- "updated_at": { "type": "string", "format": "date-time" },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "visibility": {
+ "type": "string"
+ },
+ "web_url": {
+ "type": "string"
+ },
+ "raw_url": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
"author": {
"type": "object",
"properties": {
- "name": { "type": "string" },
- "username": { "type": "string" },
- "id": { "type": "integer" },
- "state": { "type": "string" },
- "avatar_url": { "type": "uri" },
- "web_url": { "type": "uri" }
+ "name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ }
},
- "required" : [
- "id", "name", "username", "state", "avatar_url", "web_url"
+ "required": [
+ "id",
+ "name",
+ "username",
+ "state",
+ "avatar_url",
+ "web_url"
]
}
},
"required": [
- "id", "title", "file_name", "description", "web_url",
- "created_at", "updated_at", "author", "raw_url"
+ "id",
+ "title",
+ "file_name",
+ "description",
+ "web_url",
+ "created_at",
+ "updated_at",
+ "author",
+ "raw_url"
],
"additionalProperties": false
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/system_hooks.json b/spec/fixtures/api/schemas/public_api/v4/system_hooks.json
index a56542a8b99..a0800e4bc97 100644
--- a/spec/fixtures/api/schemas/public_api/v4/system_hooks.json
+++ b/spec/fixtures/api/schemas/public_api/v4/system_hooks.json
@@ -1,9 +1,6 @@
{
"type": "array",
"items": {
- "type": "object",
- "properties" : {
- "$ref": "./system_hook.json"
- }
+ "$ref": "./system_hook.json"
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/user/admin.json b/spec/fixtures/api/schemas/public_api/v4/user/admin.json
index f0d3cf3ba0e..7b46cbf5a36 100644
--- a/spec/fixtures/api/schemas/public_api/v4/user/admin.json
+++ b/spec/fixtures/api/schemas/public_api/v4/user/admin.json
@@ -32,6 +32,148 @@
"namespace_id"
],
"properties": {
- "$ref": "full.json"
+ "id": {
+ "type": "integer"
+ },
+ "username": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "pattern": "^[^@]+@[^@]+$"
+ },
+ "commit_email": {
+ "type": "string",
+ "pattern": "^[^@]+@[^@]+$"
+ },
+ "name": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string",
+ "enum": [
+ "active",
+ "blocked"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "uri"
+ },
+ "web_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "is_admin": {
+ "type": "boolean"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "bio": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "location": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "pronouns": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "skype": {
+ "type": "string"
+ },
+ "linkedin": {
+ "type": "string"
+ },
+ "twitter": {
+ "type": "string"
+ },
+ "website_url": {
+ "type": "string"
+ },
+ "organization": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_sign_in_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "confirmed_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "color_scheme_id": {
+ "type": "integer"
+ },
+ "projects_limit": {
+ "type": "integer"
+ },
+ "current_sign_in_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "identities": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "enum": [
+ "github",
+ "bitbucket",
+ "google_oauth2",
+ "twitter"
+ ]
+ },
+ "extern_uid": {
+ "type": [
+ "number",
+ "string"
+ ]
+ }
+ }
+ }
+ },
+ "can_create_group": {
+ "type": "boolean"
+ },
+ "can_create_project": {
+ "type": "boolean"
+ },
+ "two_factor_enabled": {
+ "type": "boolean"
+ },
+ "external": {
+ "type": "boolean"
+ },
+ "namespace_id": {
+ "type": "integer"
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/public_api/v4/user/login.json b/spec/fixtures/api/schemas/public_api/v4/user/login.json
deleted file mode 100644
index aa066883c47..00000000000
--- a/spec/fixtures/api/schemas/public_api/v4/user/login.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "type": "object",
- "required": [
- "id",
- "username",
- "email",
- "name",
- "state",
- "avatar_url",
- "web_url",
- "created_at",
- "is_admin",
- "bio",
- "location",
- "skype",
- "linkedin",
- "twitter",
- "website_url",
- "organization",
- "last_sign_in_at",
- "confirmed_at",
- "theme_id",
- "color_scheme_id",
- "projects_limit",
- "current_sign_in_at",
- "identities",
- "can_create_group",
- "can_create_project",
- "two_factor_enabled",
- "external"
- ],
- "properties": {
- "$ref": "full.json"
- }
-}
diff --git a/spec/fixtures/api/schemas/public_api/v4/user/public.json b/spec/fixtures/api/schemas/public_api/v4/user/public.json
index c4549e3ef63..53d67e041a1 100644
--- a/spec/fixtures/api/schemas/public_api/v4/user/public.json
+++ b/spec/fixtures/api/schemas/public_api/v4/user/public.json
@@ -28,32 +28,95 @@
"external"
],
"properties": {
- "id": { "type": "integer" },
- "username": { "type": "string" },
+ "id": {
+ "type": "integer"
+ },
+ "username": {
+ "type": "string"
+ },
"email": {
"type": "string",
"pattern": "^[^@]+@[^@]+$"
},
- "name": { "type": "string" },
+ "name": {
+ "type": "string"
+ },
"state": {
"type": "string",
- "enum": ["active", "blocked"]
- },
- "avatar_url": { "type": [ "string", "null" ] },
- "web_url": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
- "bio": { "type": ["string", "null"] },
- "location": { "type": ["string", "null"] },
- "skype": { "type": "string" },
- "linkedin": { "type": "string" },
- "twitter": { "type": "string "},
- "website_url": { "type": "string" },
- "organization": { "type": ["string", "null"] },
- "last_sign_in_at": { "type": ["string", "null"], "format": "date-time" },
- "confirmed_at": { "type": ["string", "null"] },
- "color_scheme_id": { "type": "integer" },
- "projects_limit": { "type": "integer" },
- "current_sign_in_at": { "type": ["string", "null"], "format": "date-time" },
+ "enum": [
+ "active",
+ "blocked"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "web_url": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "bio": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "location": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "skype": {
+ "type": "string"
+ },
+ "linkedin": {
+ "type": "string"
+ },
+ "twitter": {
+ "type": "string"
+ },
+ "website_url": {
+ "type": "string"
+ },
+ "organization": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_sign_in_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "confirmed_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "color_scheme_id": {
+ "type": "integer"
+ },
+ "projects_limit": {
+ "type": "integer"
+ },
+ "current_sign_in_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
"identities": {
"type": "array",
"items": {
@@ -61,16 +124,35 @@
"properties": {
"provider": {
"type": "string",
- "enum": ["github", "bitbucket", "google_oauth2"]
+ "enum": [
+ "github",
+ "bitbucket",
+ "google_oauth2"
+ ]
},
- "extern_uid": { "type": ["number", "string"] }
+ "extern_uid": {
+ "type": [
+ "number",
+ "string"
+ ]
+ }
}
}
},
- "can_create_group": { "type": "boolean" },
- "can_create_project": { "type": "boolean" },
- "two_factor_enabled": { "type": "boolean" },
- "external": { "type": "boolean" },
- "commit_email": { "type": "string" }
+ "can_create_group": {
+ "type": "boolean"
+ },
+ "can_create_project": {
+ "type": "boolean"
+ },
+ "two_factor_enabled": {
+ "type": "boolean"
+ },
+ "external": {
+ "type": "boolean"
+ },
+ "commit_email": {
+ "type": "string"
+ }
}
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/registry/repository.json b/spec/fixtures/api/schemas/registry/repository.json
index 18d2c68ac2f..078fba7a34a 100644
--- a/spec/fixtures/api/schemas/registry/repository.json
+++ b/spec/fixtures/api/schemas/registry/repository.json
@@ -1,6 +1,12 @@
{
"type": "object",
- "required": ["id", "name", "path", "location", "created_at"],
+ "required": [
+ "id",
+ "name",
+ "path",
+ "location",
+ "created_at"
+ ],
"properties": {
"id": {
"type": "integer"
@@ -18,10 +24,15 @@
"type": "string"
},
"created_at": {
- "type": "date-time"
+ "type": "string",
+ "format": "date-time"
},
"cleanup_policy_started_at": {
- "type": "date-time"
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
},
"tags_path": {
"type": "string"
@@ -31,14 +42,24 @@
},
"status": {
"oneOf": [
- { "type": "null" },
- { "type": "string", "enum": ["delete_scheduled", "delete_failed"] }
+ {
+ "type": "null"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "delete_scheduled",
+ "delete_failed"
+ ]
+ }
]
},
- "tags": { "$ref": "tags.json" },
+ "tags": {
+ "$ref": "tags.json"
+ },
"tags_count": {
"type": "integer"
}
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/release.json b/spec/fixtures/api/schemas/release.json
index fe4f8cd2157..11f238ffc92 100644
--- a/spec/fixtures/api/schemas/release.json
+++ b/spec/fixtures/api/schemas/release.json
@@ -1,22 +1,56 @@
{
"type": "object",
- "required": ["tag_name", "description"],
+ "required": [
+ "tag_name",
+ "description"
+ ],
"properties": {
- "name": { "type": "string" },
- "tag_name": { "type": "string" },
- "ref": { "type": "string "},
- "description": { "type": "string" },
- "description_html": { "type": "string" },
- "created_at": { "type": "string", "format": "date-time" },
+ "name": {
+ "type": "string"
+ },
+ "tag_name": {
+ "type": "string"
+ },
+ "ref": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "description_html": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
"commit": {
- "oneOf": [{ "type": "null" }, { "$ref": "public_api/v4/commit/basic.json" }]
+ "oneOf": [
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "public_api/v4/commit/basic.json"
+ }
+ ]
},
"author": {
- "oneOf": [{ "type": "null" }, { "$ref": "public_api/v4/user/basic.json" }]
+ "oneOf": [
+ {
+ "type": "null"
+ },
+ {
+ "$ref": "public_api/v4/user/basic.json"
+ }
+ ]
},
"assets": {
- "count": { "type": "integer" },
- "links": { "$ref": "release/links.json" },
+ "count": {
+ "type": "integer"
+ },
+ "links": {
+ "$ref": "release/links.json"
+ },
"sources": {
"type": "array",
"items": {
@@ -27,4 +61,4 @@
}
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/api/schemas/variable.json b/spec/fixtures/api/schemas/variable.json
index c49d7d8c5ea..440e812d95b 100644
--- a/spec/fixtures/api/schemas/variable.json
+++ b/spec/fixtures/api/schemas/variable.json
@@ -8,13 +8,31 @@
"protected"
],
"properties": {
- "id": { "type": "integer" },
- "key": { "type": "string" },
- "value": { "type": "string" },
- "masked": { "type": "boolean" },
- "protected": { "type": "boolean" },
- "variable_type": { "type": "string" },
- "environment_scope": { "type": "string", "optional": true }
+ "id": {
+ "type": "integer"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "masked": {
+ "type": "boolean"
+ },
+ "protected": {
+ "type": "boolean"
+ },
+ "raw": {
+ "type": "boolean"
+ },
+ "variable_type": {
+ "type": "string"
+ },
+ "environment_scope": {
+ "type": "string",
+ "optional": true
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/ce_sample_schema.json b/spec/fixtures/ce_sample_schema.json
index e69de29bb2d..9e26dfeeb6e 100644
--- a/spec/fixtures/ce_sample_schema.json
+++ b/spec/fixtures/ce_sample_schema.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/spec/fixtures/clusters/chain_certificates.pem b/spec/fixtures/clusters/chain_certificates.pem
index 63f0b812b66..98ee90046f3 100644
--- a/spec/fixtures/clusters/chain_certificates.pem
+++ b/spec/fixtures/clusters/chain_certificates.pem
@@ -1,85 +1,63 @@
-----BEGIN CERTIFICATE-----
-MIIGYjCCBUqgAwIBAgIQATfkha/xTr3pbLHVWlPq4jANBgkqhkiG9w0BAQsFADBY
-MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEuMCwGA1UE
-AxMlR2xvYmFsU2lnbiBBdGxhcyBSMyBEViBUTFMgQ0EgMjAyMiBRMzAeFw0yMjA3
-MjIxOTQyMTFaFw0yMzA4MjMxOTQyMTBaMBsxGTAXBgNVBAMMEGFib3V0LmdpdGxh
-Yi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFFFQs8EITaWo5
-0U18/mPTDLencU/7siJT/4P8oeDkemyx98wzK6vuNj/2JEZ3v1psKun5n8Pb/fHa
-somKd/4icHgC4rnxrO6zayfb+cKzVghQe12Nj75lx6RtppqTgAmSOa3Tai5niICT
-I8s3d2wsHtfEgqAavcD0/zdPIk25Ji7yfquldSthnlhQqI4Pm3OxTiyFj/V5ZhFl
-IWZLvQaENjBSDVZQDcaPdWwodfXNA8fJmqk7cTLQ9P9NgjWvva7acl+Yd6hOFzV0
-EllBl/WF1KB+YzGuHI0CQHT7sv3GW1lXeE2EqrWoSdLTOSAqm6y02DyE79d1xvG6
-XXfX5ILlAgMBAAGjggNjMIIDXzAbBgNVHREEFDASghBhYm91dC5naXRsYWIuY29t
-MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
-HQYDVR0OBBYEFHK7MnjGDptQWjfmJ2fr3IrjxEopMFcGA1UdIARQME4wCAYGZ4EM
-AQIBMEIGCisGAQQBoDIKAQMwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xv
-YmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wDAYDVR0TAQH/BAIwADCBngYIKwYBBQUH
-AQEEgZEwgY4wQAYIKwYBBQUHMAGGNGh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29t
-L2NhL2dzYXRsYXNyM2R2dGxzY2EyMDIycTMwSgYIKwYBBQUHMAKGPmh0dHA6Ly9z
-ZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzYXRsYXNyM2R2dGxzY2EyMDIy
-cTMuY3J0MB8GA1UdIwQYMBaAFPqROWOa+60QJOW+tbnaq9nERmmrMEgGA1UdHwRB
-MD8wPaA7oDmGN2h0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vY2EvZ3NhdGxhc3Iz
-ZHZ0bHNjYTIwMjJxMy5jcmwwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB1AG9T
-dqwx8DEZ2JkApFEV/3cVHBHZAsEAKQaNsgiaN9kTAAABgiduiHEAAAQDAEYwRAIg
-SYQrru/KAKfe+hUqpJmk7Fc8drkgtY3IcAurTOwbM68CIBYO9sbDspd5p7v17RQi
-QQkjdRwSjHiIgvlX0Y1JqmXjAHYArfe++nz/EMiLnT2cHj4YarRnKV3PsQwkyoWG
-NOvcgooAAAGCJ26IcQAABAMARzBFAiBc5a10annqMEH69bdEFy/Vo1gb3S3GQ993
-BCRV7ZXG4gIhAMqnsoKkU6ITwRXwE9KGjHnijJ8QrBrnK0i+JFaGe1ffAHYAs3N3
-B+GEUPhjhtYFqdwRCUp5LbFnDAuH3PADDnk2pZoAAAGCJ26I6QAABAMARzBFAiAf
-lW8Agd0DB68YA8XAbnlq7QNHw3uRMzNdS8gtRUe75gIhANTe+mt2p1ryW83P31OW
-jH3cEGJxdUNT/oDM3Fzesx94MA0GCSqGSIb3DQEBCwUAA4IBAQAfivKEmjqqOFFh
-VsX2XYkoDtreghpqMwHMCLwNk852Alr/Seyv9Ilng8cunU4NmhvEtsYVXkfE4XvB
-0QIVxkg1w7A+p7ejMjh6doLJ0aWNWIVW/DwOeP0qstF9lqvLdLDABoVn0BtYCDTH
-gjG80e2xpvPiKHGvBL+hlOIJwUuIAT3jN23sS1GoiYQGKsz0lovB09/6MGG0Qj8C
-3i9a59T9XBpwSKdpKd4u/CB6koBXD3atbBNBACuAMcFckTEtmkCFtSpqBuocJGKf
-LB4MFVaEwrd7Lc1ACC1et5FDtEI4I3/CerkRZTV+mRz5n6tB91AK3dRvjElfhiuh
-XXYRULvB
+MIIDgDCCAmigAwIBAgIJALI40QyGMz+AMA0GCSqGSIb3DQEBCwUAMHExCzAJBgNV
+BAYTAlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9y
+bmlhMRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMR0wGwYDVQQDDBRUZXN0IEludGVy
+bWVkaWF0ZSBDQTAgFw0yMjExMjEwMDAzMTZaGA8zMDIyMDMyNDAwMDMxNlowazEL
+MAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNh
+bGlmb3JuaWExFjAUBgNVBAoMDUdpdExhYiAoVGVzdCkxFzAVBgNVBAMMDlRlc3Qg
+TGVhZiBDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxPHRlMks
+Auba0UxFoL248jfCQNWpEbRoImj/B9W5Zm2sdmJpaD01NVfR+O7eovbWozN6J+gs
+MKS5SUVDIu0E5iVBsEsQlDAF+ckPo3kvoWDAF2cLgNjpRApIiS9YCy9dZLxUl34x
+F4nXy19+53mouw/tX7kPLwnHxTVvBEpDfIttOCTlXnLu62v2LRP5lt5vFXE0B/00
+bD6t+lVl7eamvjDRAz2HoFMY+m1Popts7j4Pj3rWVWfo1RRu88NvjQLnqccFQFnd
+tDsv3YqtiWDdCbcnkIKcgZ3ckpDhTKwRjnKmub4un/OpEgn/WVR1iLCOCDS1RX1u
+j5HKhyiEzRJt1QIDAQABox8wHTAbBgNVHREEFDASghB0ZXN0LmV4YW1wbGUuY29t
+MA0GCSqGSIb3DQEBCwUAA4IBAQA31V60ppRL+/YD1qlGu2uDXKn2VaK41LQxoz7R
+LCQp6qf50XhQFMBu2Mdf5cAbMdgIcAE6BQ7r7kaxO4dSXn9J3cy5Qb4msRvGy63P
+rm0G71TmAK3ihYLP19eT5g9oOHarRc3gXVtUxCAd/XVrxp1GW2vxKTGo46rKKVeU
+myU3Yn9hlu6VszvyaseaDo4Tvd6+vfdpGRo6lcJIdjcQ3Ie2bH6kF1RWXT2sgBW/
+XsDrF7O15DUE9na/7ak8tCOnxFaag7f7SLEHC+NSiMkrRry7Yc3WEFMeJTzHCXGn
+5Uwl4FKujmFkTwOPOeKyWIkDJg+PQVXnVrTvZlx+6k+Kpv2j
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-MIIEjzCCA3egAwIBAgIQfCoMIT/GVVNFyR8ZH7hO+jANBgkqhkiG9w0BAQsFADBM
-MSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xv
-YmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0yMjA0MjAxMjAwMDBaFw0y
-NTA0MjAwMDAwMDBaMFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu
-IG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIERWIFRMUyBDQSAy
-MDIyIFEzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuKh6ZjxOZpzO
-N6VUNU02x5nTqCc28i/G1Rg+6QndBdbXLDQyfAhjSdEQN+V4XRFizm37Lz83lNuP
-ezDpXizZVT+y27mgtWA3i6QGMjVQpAmvCkX/qB+bZY7dSuBAoeNjN1iQ3XU7/A4c
-gkCYvXCxwUgUFDwES2nd1JwBpukh44IK/uSqvzSgjMvJeW4+XGpSnsTtK8Vp/lA8
-k521/y0oqGwGbJ3Fr7JZ+1l3DXR6iISk1B3UuiAGzLUeSE50IRWGdcDMWtEFz1cW
-ehMX7MJKrtUecqoiWoycgjLEEOZCbiGGaHyAIzA1072wXgopK/AUsRg32Vklw+c4
-2enULTY1ZQIDAQABo4IBXzCCAVswDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQG
-CCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQW
-BBT6kTljmvutECTlvrW52qvZxEZpqzAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpj
-move4t0bvDB7BggrBgEFBQcBAQRvMG0wLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3Nw
-Mi5nbG9iYWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1
-cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0w
-K6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC1yMy5jcmwwIQYD
-VR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAGgMgoBAzANBgkqhkiG9w0BAQsFAAOC
-AQEAFDMseeU/gsZwP9pZOKe7onasYRgFaFfZDfuKRrzxqOgMcAIdxi+X7TY+nlKG
-L1xi2NVHQ5pz0Sslh59EtBTrJrwhR3QgvZ+kv7OAHU01fc25tdpV8pBQyLIXTg60
-YYgpX0RdA39XkYHQ6zCu1SrsgiDOTtKwi5UCYXPYaTT0rWMOXOQgH6l97Y7lHAS7
-Ip/HqSLKmT0Cp2foBi36BGu7SdJsmVdjbC3CYXjhILH79r/hgjk5PHvvfRqVSrJy
-2lWQru3d4nCQfBrutTJaXc/W+kXyngEMMS+JhP4xYA/97qZbhNXHGOak+UAwKRge
-/vxBtbkpBXWLYhpbIi6/5FlssA==
+MIIDgjCCAmqgAwIBAgIJAMTV0ieHng2/MA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9y
+bmlhMRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMRUwEwYDVQQDDAxUZXN0IFJvb3Qg
+Q0EwIBcNMjIxMTIwMjMzNzQyWhgPMzAyMjAzMjMyMzM3NDJaMHExCzAJBgNVBAYT
+AlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9ybmlh
+MRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMR0wGwYDVQQDDBRUZXN0IEludGVybWVk
+aWF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfazJfCLjY9
+wGUfI5MxWtyX6H/DAAiYNSfRw28M4ZBAwJcgClvwEHeRFGVOw1TwDyopMV3JIDtk
++87AGvF1Jyu+5k+XkJtOmb6HtotjelUJS1gCgzbBoqlfHTfFCYNRD/rWV1zBFkq5
+wTMeRQvy7Q5MocBzr2VHwFvBr1YkT5P8nSsQ2iFA3r7Lsv5csgj1D7yFuI6LQcWN
+3IpCORuU7144ZNuK3ChhcmrV9S2770qAgqdmSUpIYQO4xCOFJB3Zs7kHJkKXn1cz
+jDXFsbQ//ouKG8zBDzeCawNsHMVei2oXBySZYSVXaHI1fRB9MYIAdheCn5QQSyqG
+zN7mP03iQq8CAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwDQYJKoZIhvcNAQELBQADggEBAJaXhgFrG4ijA/TinY2ApARY5lsk0ol8DKq7
+4hVDDudRo1ET5gW3VhbYIkN9r+hZeRnzf3WghC75si7WROpv2DeNKKv2FzFg4OqF
+nw154EVvEWJ8tyCTZ/8tqIBErEJUPfzuO8bZjVpN+2eSVDbo3UBLVFbsE37is7li
+eqjic+kmS6onvlG7xN9xCAwo7zGsyfceTLC9n3D8kfJd1YYV8I/l0jU1Gxf6S7g4
+2DnqNaOGTBwdioIAhaUB4amXw4NZ/NZhG3bVsNyWt99cvtLeMFTSl9lRRMT3xxCI
++TPaT30R9qRuI1Sd0IxdybSx5QG6AuZAe/5v+2+C4+8u6onpuXE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
+MIIDejCCAmKgAwIBAgIJAMMTWTnLVjZwMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9y
+bmlhMRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMRUwEwYDVQQDDAxUZXN0IFJvb3Qg
+Q0EwIBcNMjIxMTIwMjMyMzA4WhgPMzAyMjAzMjMyMzIzMDhaMGkxCzAJBgNVBAYT
+AlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9ybmlh
+MRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFe5BkdGSwAL1w7kEMgMVu
+quanndVPI7Mz5YthrmJP1Qgv5TY7440PrKKbtSqx4aS2KdNKq9th7sHZ6Qe6NKbq
+G6/HZPCVO+X7ORI8yGbWD1iYBLCXmMOkXY5UsDcN5z/oKRXzHfLD0uYSQ5Fp0D9J
+O9Y0I2iz1ywsGm784xt0n7Yzz3HgjvYwU2VdLJPSzwSBPphj64E2cfM+5rGoaJd7
+Er3FodqR0YegrsMmggpK/QPIylt+TCkTgBL/+paM4KynUYusB+LzqXm0u1mYuZmt
++9Y4sKVZiNKlQFfg9XfZRpldn8pnFBMnLaUU757+mPJOuy5mLVlwAntw9qgi6UfX
+AgMBAAGjIzAhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqG
+SIb3DQEBCwUAA4IBAQCT8zbJ1nFfpTjPETpbQ4V2BR41Y4BZXFPcnfWY/byC8sRr
+EvbwiDWIehY/dxIHia+8dYhoXER/gWC1gc+rrW8Bil+n5119VEX9Ij6oFoQJgNrw
+rcP+W6Bjl9VTS15+A39Bo8x8ElNXRt6b91fBd77wzDamaB7UXq7eDIPu6Ov56tui
+RiYi9xXIwplWNH/XPl2HcwBw9hS5qG608qK9t/dJIpTIdWJmqg0gCxR8qmubrg58
+uvy8AhbYamLHTUa9Kf4CMxfl6QjrIMFCQiB7g6aaMZxRTQo9eRTMjoywNh8wd63g
+VYFagDTZZUGliXyIHkN6AVKvI7IIF21r7c5qarbX
-----END CERTIFICATE-----
diff --git a/spec/fixtures/clusters/intermediate_certificate.pem b/spec/fixtures/clusters/intermediate_certificate.pem
index b287201af16..142e73b99c2 100644
--- a/spec/fixtures/clusters/intermediate_certificate.pem
+++ b/spec/fixtures/clusters/intermediate_certificate.pem
@@ -1,27 +1,21 @@
-----BEGIN CERTIFICATE-----
-MIIEjzCCA3egAwIBAgIQfCoMIT/GVVNFyR8ZH7hO+jANBgkqhkiG9w0BAQsFADBM
-MSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xv
-YmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0yMjA0MjAxMjAwMDBaFw0y
-NTA0MjAwMDAwMDBaMFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu
-IG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIERWIFRMUyBDQSAy
-MDIyIFEzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuKh6ZjxOZpzO
-N6VUNU02x5nTqCc28i/G1Rg+6QndBdbXLDQyfAhjSdEQN+V4XRFizm37Lz83lNuP
-ezDpXizZVT+y27mgtWA3i6QGMjVQpAmvCkX/qB+bZY7dSuBAoeNjN1iQ3XU7/A4c
-gkCYvXCxwUgUFDwES2nd1JwBpukh44IK/uSqvzSgjMvJeW4+XGpSnsTtK8Vp/lA8
-k521/y0oqGwGbJ3Fr7JZ+1l3DXR6iISk1B3UuiAGzLUeSE50IRWGdcDMWtEFz1cW
-ehMX7MJKrtUecqoiWoycgjLEEOZCbiGGaHyAIzA1072wXgopK/AUsRg32Vklw+c4
-2enULTY1ZQIDAQABo4IBXzCCAVswDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQG
-CCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQW
-BBT6kTljmvutECTlvrW52qvZxEZpqzAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpj
-move4t0bvDB7BggrBgEFBQcBAQRvMG0wLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3Nw
-Mi5nbG9iYWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1
-cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0w
-K6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC1yMy5jcmwwIQYD
-VR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAGgMgoBAzANBgkqhkiG9w0BAQsFAAOC
-AQEAFDMseeU/gsZwP9pZOKe7onasYRgFaFfZDfuKRrzxqOgMcAIdxi+X7TY+nlKG
-L1xi2NVHQ5pz0Sslh59EtBTrJrwhR3QgvZ+kv7OAHU01fc25tdpV8pBQyLIXTg60
-YYgpX0RdA39XkYHQ6zCu1SrsgiDOTtKwi5UCYXPYaTT0rWMOXOQgH6l97Y7lHAS7
-Ip/HqSLKmT0Cp2foBi36BGu7SdJsmVdjbC3CYXjhILH79r/hgjk5PHvvfRqVSrJy
-2lWQru3d4nCQfBrutTJaXc/W+kXyngEMMS+JhP4xYA/97qZbhNXHGOak+UAwKRge
-/vxBtbkpBXWLYhpbIi6/5FlssA==
+MIIDgjCCAmqgAwIBAgIJAMTV0ieHng2/MA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9y
+bmlhMRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMRUwEwYDVQQDDAxUZXN0IFJvb3Qg
+Q0EwIBcNMjIxMTIwMjMzNzQyWhgPMzAyMjAzMjMyMzM3NDJaMHExCzAJBgNVBAYT
+AlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9ybmlh
+MRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMR0wGwYDVQQDDBRUZXN0IEludGVybWVk
+aWF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfazJfCLjY9
+wGUfI5MxWtyX6H/DAAiYNSfRw28M4ZBAwJcgClvwEHeRFGVOw1TwDyopMV3JIDtk
++87AGvF1Jyu+5k+XkJtOmb6HtotjelUJS1gCgzbBoqlfHTfFCYNRD/rWV1zBFkq5
+wTMeRQvy7Q5MocBzr2VHwFvBr1YkT5P8nSsQ2iFA3r7Lsv5csgj1D7yFuI6LQcWN
+3IpCORuU7144ZNuK3ChhcmrV9S2770qAgqdmSUpIYQO4xCOFJB3Zs7kHJkKXn1cz
+jDXFsbQ//ouKG8zBDzeCawNsHMVei2oXBySZYSVXaHI1fRB9MYIAdheCn5QQSyqG
+zN7mP03iQq8CAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwDQYJKoZIhvcNAQELBQADggEBAJaXhgFrG4ijA/TinY2ApARY5lsk0ol8DKq7
+4hVDDudRo1ET5gW3VhbYIkN9r+hZeRnzf3WghC75si7WROpv2DeNKKv2FzFg4OqF
+nw154EVvEWJ8tyCTZ/8tqIBErEJUPfzuO8bZjVpN+2eSVDbo3UBLVFbsE37is7li
+eqjic+kmS6onvlG7xN9xCAwo7zGsyfceTLC9n3D8kfJd1YYV8I/l0jU1Gxf6S7g4
+2DnqNaOGTBwdioIAhaUB4amXw4NZ/NZhG3bVsNyWt99cvtLeMFTSl9lRRMT3xxCI
++TPaT30R9qRuI1Sd0IxdybSx5QG6AuZAe/5v+2+C4+8u6onpuXE=
-----END CERTIFICATE-----
diff --git a/spec/fixtures/clusters/leaf_certificate.pem b/spec/fixtures/clusters/leaf_certificate.pem
index b7b2f78a977..ff390a84967 100644
--- a/spec/fixtures/clusters/leaf_certificate.pem
+++ b/spec/fixtures/clusters/leaf_certificate.pem
@@ -1,37 +1,21 @@
-----BEGIN CERTIFICATE-----
-MIIGYjCCBUqgAwIBAgIQATfkha/xTr3pbLHVWlPq4jANBgkqhkiG9w0BAQsFADBY
-MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEuMCwGA1UE
-AxMlR2xvYmFsU2lnbiBBdGxhcyBSMyBEViBUTFMgQ0EgMjAyMiBRMzAeFw0yMjA3
-MjIxOTQyMTFaFw0yMzA4MjMxOTQyMTBaMBsxGTAXBgNVBAMMEGFib3V0LmdpdGxh
-Yi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFFFQs8EITaWo5
-0U18/mPTDLencU/7siJT/4P8oeDkemyx98wzK6vuNj/2JEZ3v1psKun5n8Pb/fHa
-somKd/4icHgC4rnxrO6zayfb+cKzVghQe12Nj75lx6RtppqTgAmSOa3Tai5niICT
-I8s3d2wsHtfEgqAavcD0/zdPIk25Ji7yfquldSthnlhQqI4Pm3OxTiyFj/V5ZhFl
-IWZLvQaENjBSDVZQDcaPdWwodfXNA8fJmqk7cTLQ9P9NgjWvva7acl+Yd6hOFzV0
-EllBl/WF1KB+YzGuHI0CQHT7sv3GW1lXeE2EqrWoSdLTOSAqm6y02DyE79d1xvG6
-XXfX5ILlAgMBAAGjggNjMIIDXzAbBgNVHREEFDASghBhYm91dC5naXRsYWIuY29t
-MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
-HQYDVR0OBBYEFHK7MnjGDptQWjfmJ2fr3IrjxEopMFcGA1UdIARQME4wCAYGZ4EM
-AQIBMEIGCisGAQQBoDIKAQMwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xv
-YmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wDAYDVR0TAQH/BAIwADCBngYIKwYBBQUH
-AQEEgZEwgY4wQAYIKwYBBQUHMAGGNGh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29t
-L2NhL2dzYXRsYXNyM2R2dGxzY2EyMDIycTMwSgYIKwYBBQUHMAKGPmh0dHA6Ly9z
-ZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzYXRsYXNyM2R2dGxzY2EyMDIy
-cTMuY3J0MB8GA1UdIwQYMBaAFPqROWOa+60QJOW+tbnaq9nERmmrMEgGA1UdHwRB
-MD8wPaA7oDmGN2h0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vY2EvZ3NhdGxhc3Iz
-ZHZ0bHNjYTIwMjJxMy5jcmwwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB1AG9T
-dqwx8DEZ2JkApFEV/3cVHBHZAsEAKQaNsgiaN9kTAAABgiduiHEAAAQDAEYwRAIg
-SYQrru/KAKfe+hUqpJmk7Fc8drkgtY3IcAurTOwbM68CIBYO9sbDspd5p7v17RQi
-QQkjdRwSjHiIgvlX0Y1JqmXjAHYArfe++nz/EMiLnT2cHj4YarRnKV3PsQwkyoWG
-NOvcgooAAAGCJ26IcQAABAMARzBFAiBc5a10annqMEH69bdEFy/Vo1gb3S3GQ993
-BCRV7ZXG4gIhAMqnsoKkU6ITwRXwE9KGjHnijJ8QrBrnK0i+JFaGe1ffAHYAs3N3
-B+GEUPhjhtYFqdwRCUp5LbFnDAuH3PADDnk2pZoAAAGCJ26I6QAABAMARzBFAiAf
-lW8Agd0DB68YA8XAbnlq7QNHw3uRMzNdS8gtRUe75gIhANTe+mt2p1ryW83P31OW
-jH3cEGJxdUNT/oDM3Fzesx94MA0GCSqGSIb3DQEBCwUAA4IBAQAfivKEmjqqOFFh
-VsX2XYkoDtreghpqMwHMCLwNk852Alr/Seyv9Ilng8cunU4NmhvEtsYVXkfE4XvB
-0QIVxkg1w7A+p7ejMjh6doLJ0aWNWIVW/DwOeP0qstF9lqvLdLDABoVn0BtYCDTH
-gjG80e2xpvPiKHGvBL+hlOIJwUuIAT3jN23sS1GoiYQGKsz0lovB09/6MGG0Qj8C
-3i9a59T9XBpwSKdpKd4u/CB6koBXD3atbBNBACuAMcFckTEtmkCFtSpqBuocJGKf
-LB4MFVaEwrd7Lc1ACC1et5FDtEI4I3/CerkRZTV+mRz5n6tB91AK3dRvjElfhiuh
-XXYRULvB
+MIIDgDCCAmigAwIBAgIJALI40QyGMz+AMA0GCSqGSIb3DQEBCwUAMHExCzAJBgNV
+BAYTAlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9y
+bmlhMRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMR0wGwYDVQQDDBRUZXN0IEludGVy
+bWVkaWF0ZSBDQTAgFw0yMjExMjEwMDAzMTZaGA8zMDIyMDMyNDAwMDMxNlowazEL
+MAkGA1UEBhMCVVMxFjAUBgNVBAgMDVNhbiBGcmFuY2lzY28xEzARBgNVBAcMCkNh
+bGlmb3JuaWExFjAUBgNVBAoMDUdpdExhYiAoVGVzdCkxFzAVBgNVBAMMDlRlc3Qg
+TGVhZiBDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxPHRlMks
+Auba0UxFoL248jfCQNWpEbRoImj/B9W5Zm2sdmJpaD01NVfR+O7eovbWozN6J+gs
+MKS5SUVDIu0E5iVBsEsQlDAF+ckPo3kvoWDAF2cLgNjpRApIiS9YCy9dZLxUl34x
+F4nXy19+53mouw/tX7kPLwnHxTVvBEpDfIttOCTlXnLu62v2LRP5lt5vFXE0B/00
+bD6t+lVl7eamvjDRAz2HoFMY+m1Popts7j4Pj3rWVWfo1RRu88NvjQLnqccFQFnd
+tDsv3YqtiWDdCbcnkIKcgZ3ckpDhTKwRjnKmub4un/OpEgn/WVR1iLCOCDS1RX1u
+j5HKhyiEzRJt1QIDAQABox8wHTAbBgNVHREEFDASghB0ZXN0LmV4YW1wbGUuY29t
+MA0GCSqGSIb3DQEBCwUAA4IBAQA31V60ppRL+/YD1qlGu2uDXKn2VaK41LQxoz7R
+LCQp6qf50XhQFMBu2Mdf5cAbMdgIcAE6BQ7r7kaxO4dSXn9J3cy5Qb4msRvGy63P
+rm0G71TmAK3ihYLP19eT5g9oOHarRc3gXVtUxCAd/XVrxp1GW2vxKTGo46rKKVeU
+myU3Yn9hlu6VszvyaseaDo4Tvd6+vfdpGRo6lcJIdjcQ3Ie2bH6kF1RWXT2sgBW/
+XsDrF7O15DUE9na/7ak8tCOnxFaag7f7SLEHC+NSiMkrRry7Yc3WEFMeJTzHCXGn
+5Uwl4FKujmFkTwOPOeKyWIkDJg+PQVXnVrTvZlx+6k+Kpv2j
-----END CERTIFICATE-----
diff --git a/spec/fixtures/clusters/root_certificate.pem b/spec/fixtures/clusters/root_certificate.pem
index 8afb219058f..6d97302b2b3 100644
--- a/spec/fixtures/clusters/root_certificate.pem
+++ b/spec/fixtures/clusters/root_certificate.pem
@@ -1,21 +1,21 @@
-----BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
+MIIDejCCAmKgAwIBAgIJAMMTWTnLVjZwMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9y
+bmlhMRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMRUwEwYDVQQDDAxUZXN0IFJvb3Qg
+Q0EwIBcNMjIxMTIwMjMyMzA4WhgPMzAyMjAzMjMyMzIzMDhaMGkxCzAJBgNVBAYT
+AlVTMRYwFAYDVQQIDA1TYW4gRnJhbmNpc2NvMRMwEQYDVQQHDApDYWxpZm9ybmlh
+MRYwFAYDVQQKDA1HaXRMYWIgKFRlc3QpMRUwEwYDVQQDDAxUZXN0IFJvb3QgQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFe5BkdGSwAL1w7kEMgMVu
+quanndVPI7Mz5YthrmJP1Qgv5TY7440PrKKbtSqx4aS2KdNKq9th7sHZ6Qe6NKbq
+G6/HZPCVO+X7ORI8yGbWD1iYBLCXmMOkXY5UsDcN5z/oKRXzHfLD0uYSQ5Fp0D9J
+O9Y0I2iz1ywsGm784xt0n7Yzz3HgjvYwU2VdLJPSzwSBPphj64E2cfM+5rGoaJd7
+Er3FodqR0YegrsMmggpK/QPIylt+TCkTgBL/+paM4KynUYusB+LzqXm0u1mYuZmt
++9Y4sKVZiNKlQFfg9XfZRpldn8pnFBMnLaUU757+mPJOuy5mLVlwAntw9qgi6UfX
+AgMBAAGjIzAhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqG
+SIb3DQEBCwUAA4IBAQCT8zbJ1nFfpTjPETpbQ4V2BR41Y4BZXFPcnfWY/byC8sRr
+EvbwiDWIehY/dxIHia+8dYhoXER/gWC1gc+rrW8Bil+n5119VEX9Ij6oFoQJgNrw
+rcP+W6Bjl9VTS15+A39Bo8x8ElNXRt6b91fBd77wzDamaB7UXq7eDIPu6Ov56tui
+RiYi9xXIwplWNH/XPl2HcwBw9hS5qG608qK9t/dJIpTIdWJmqg0gCxR8qmubrg58
+uvy8AhbYamLHTUa9Kf4CMxfl6QjrIMFCQiB7g6aaMZxRTQo9eRTMjoywNh8wd63g
+VYFagDTZZUGliXyIHkN6AVKvI7IIF21r7c5qarbX
-----END CERTIFICATE-----
diff --git a/spec/fixtures/config/redis_cluster_format_host.yml b/spec/fixtures/config/redis_cluster_format_host.yml
new file mode 100644
index 00000000000..7303db72c4e
--- /dev/null
+++ b/spec/fixtures/config/redis_cluster_format_host.yml
@@ -0,0 +1,29 @@
+# redis://[:password@]host[:port][/db-number][?option=value]
+# more details: http://www.iana.org/assignments/uri-schemes/prov/redis
+development:
+ password: myclusterpassword
+ cluster:
+ -
+ host: development-master1
+ port: 6379
+ -
+ host: development-master2
+ port: 6379
+test:
+ password: myclusterpassword
+ cluster:
+ -
+ host: test-master1
+ port: 6379
+ -
+ host: test-master2
+ port: 6379
+production:
+ password: myclusterpassword
+ cluster:
+ -
+ host: production-master1
+ port: 6379
+ -
+ host: production-master2
+ port: 6379
diff --git a/spec/fixtures/gitlab/database/structure_example.sql b/spec/fixtures/gitlab/database/structure_example.sql
index 1ad78adea53..feebf475d2e 100644
--- a/spec/fixtures/gitlab/database/structure_example.sql
+++ b/spec/fixtures/gitlab/database/structure_example.sql
@@ -77,3 +77,17 @@ ALTER TABLE ONLY public.abuse_reports
CREATE INDEX index_abuse_reports_on_user_id ON public.abuse_reports USING btree (user_id);
+CREATE TRIGGER gitlab_schema_write_trigger_for_users BEFORE INSERT OR DELETE OR UPDATE OR TRUNCATE ON users FOR EACH STATEMENT EXECUTE FUNCTION gitlab_schema_prevent_write();
+
+CREATE FUNCTION gitlab_schema_prevent_write() RETURNS trigger
+ LANGUAGE plpgsql
+ AS $$
+BEGIN
+ IF COALESCE(NULLIF(current_setting(CONCAT('lock_writes.', TG_TABLE_NAME), true), ''), 'true') THEN
+ RAISE EXCEPTION 'Table: "%" is write protected within this Gitlab database.', TG_TABLE_NAME
+ USING ERRCODE = 'modifying_sql_data_not_permitted',
+ HINT = 'Make sure you are using the right database connection';
+END IF;
+RETURN NEW;
+END
+$$;
diff --git a/spec/fixtures/gitlab/database/structure_example_cleaned.sql b/spec/fixtures/gitlab/database/structure_example_cleaned.sql
index ab6af34dda7..642a310e024 100644
--- a/spec/fixtures/gitlab/database/structure_example_cleaned.sql
+++ b/spec/fixtures/gitlab/database/structure_example_cleaned.sql
@@ -24,3 +24,16 @@ ALTER TABLE ONLY abuse_reports
ADD CONSTRAINT abuse_reports_pkey PRIMARY KEY (id);
CREATE INDEX index_abuse_reports_on_user_id ON abuse_reports USING btree (user_id);
+
+CREATE FUNCTION gitlab_schema_prevent_write() RETURNS trigger
+ LANGUAGE plpgsql
+ AS $$
+BEGIN
+ IF COALESCE(NULLIF(current_setting(CONCAT('lock_writes.', TG_TABLE_NAME), true), ''), 'true') THEN
+ RAISE EXCEPTION 'Table: "%" is write protected within this Gitlab database.', TG_TABLE_NAME
+ USING ERRCODE = 'modifying_sql_data_not_permitted',
+ HINT = 'Make sure you are using the right database connection';
+END IF;
+RETURN NEW;
+END
+$$;
diff --git a/spec/fixtures/lib/gitlab/import_export/complex/tree/project/services.ndjson b/spec/fixtures/lib/gitlab/import_export/complex/tree/project/services.ndjson
index e5d39512255..2d092d4e916 100644
--- a/spec/fixtures/lib/gitlab/import_export/complex/tree/project/services.ndjson
+++ b/spec/fixtures/lib/gitlab/import_export/complex/tree/project/services.ndjson
@@ -7,7 +7,6 @@
{"id":95,"project_id":5,"created_at":"2016-06-14T15:01:51.255Z","updated_at":"2016-06-14T15:01:51.255Z","active":false,"properties":{"api_url":"","jira_issue_transition_id":"2"},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"job_events":true,"type":"JiraService","category":"issue_tracker","default":false,"wiki_page_events":true}
{"id":94,"project_id":5,"created_at":"2016-06-14T15:01:51.232Z","updated_at":"2016-06-14T15:01:51.232Z","active":true,"properties":{},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"job_events":true,"type":"IrkerService","category":"common","default":false,"wiki_page_events":true}
{"id":93,"project_id":5,"created_at":"2016-06-14T15:01:51.219Z","updated_at":"2016-06-14T15:01:51.219Z","active":false,"properties":{"notify_only_broken_pipelines":true},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"pipeline_events":true,"type":"HipchatService","category":"common","default":false,"wiki_page_events":true}
-{"id":91,"project_id":5,"created_at":"2016-06-14T15:01:51.182Z","updated_at":"2016-06-14T15:01:51.182Z","active":false,"properties":{},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"job_events":true,"type":"FlowdockService","category":"common","default":false,"wiki_page_events":true}
{"id":90,"project_id":5,"created_at":"2016-06-14T15:01:51.166Z","updated_at":"2016-06-14T15:01:51.166Z","active":false,"properties":{},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"job_events":true,"type":"ExternalWikiService","category":"common","default":false,"wiki_page_events":true}
{"id":89,"project_id":5,"created_at":"2016-06-14T15:01:51.153Z","updated_at":"2016-06-14T15:01:51.153Z","active":false,"properties":{},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"job_events":true,"type":"EmailsOnPushService","category":"common","default":false,"wiki_page_events":true}
{"id":88,"project_id":5,"created_at":"2016-06-14T15:01:51.139Z","updated_at":"2016-06-14T15:01:51.139Z","active":false,"properties":{},"template":false,"push_events":true,"issues_events":true,"merge_requests_events":true,"tag_push_events":true,"note_events":true,"job_events":true,"type":"DroneCiService","category":"ci","default":false,"wiki_page_events":true}
diff --git a/spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_full_syntax.json b/spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_full_syntax.json
index a74b557dabe..145cc476d64 100644
--- a/spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_full_syntax.json
+++ b/spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_full_syntax.json
@@ -2,12 +2,21 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
- "type", "options"
+ "type",
+ "options"
],
"properties": {
- "type": { "enum": "metric_label_values" },
- "label": { "type": "string" },
- "options": { "$ref": "spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_options.json" }
+ "type": {
+ "enum": [
+ "metric_label_values"
+ ]
+ },
+ "label": {
+ "type": "string"
+ },
+ "options": {
+ "$ref": "spec/fixtures/lib/gitlab/metrics/dashboard/schemas/metric_label_values_variable_options.json"
+ }
},
"additionalProperties": false
-}
+} \ No newline at end of file
diff --git a/spec/fixtures/markdown.md.erb b/spec/fixtures/markdown.md.erb
index 14885813d93..38b2a8381bb 100644
--- a/spec/fixtures/markdown.md.erb
+++ b/spec/fixtures/markdown.md.erb
@@ -399,3 +399,7 @@ Bob -> Sara : Hello
[beard]-:>[foul mouth]
]
```
+
+### Image Attributes
+
+![Sized Image](app/assets/images/touch-icon-ipad.png){width=75% height=100}
diff --git a/spec/fixtures/markdown/markdown_golden_master_examples.yml b/spec/fixtures/markdown/markdown_golden_master_examples.yml
index 0c7e6ab5cd2..9e7de030a29 100644
--- a/spec/fixtures/markdown/markdown_golden_master_examples.yml
+++ b/spec/fixtures/markdown/markdown_golden_master_examples.yml
@@ -347,6 +347,16 @@
<li data-sourcepos="9:1-9:25"><code>HSLA(540,70%,50%,0.3)<span class="gfm-color_chip"><span style="background-color: HSLA(540,70%,50%,0.3);"></span></span></code></li>
</ul>
+- name: comment
+ markdown: |-
+ <!-- this is a
+ multiline markdown
+ comment -->
+ html: |-
+ <!-- this is a
+ multiline markdown
+ comment -->
+
- name: description_list
markdown: |-
<dl>
diff --git a/spec/fixtures/pager_duty/webhook_incident_trigger.json b/spec/fixtures/pager_duty/webhook_incident_trigger.json
index 872297adcf6..9994c8c843b 100644
--- a/spec/fixtures/pager_duty/webhook_incident_trigger.json
+++ b/spec/fixtures/pager_duty/webhook_incident_trigger.json
@@ -1,239 +1,61 @@
{
- "messages": [
- {
- "event": "incident.trigger",
- "log_entries": [
+ "event": {
+ "id": "01DDZJG3TC199M1GJQ7LO67JYS",
+ "event_type": "incident.triggered",
+ "resource_type": "incident",
+ "occurred_at": "2022-11-30T08:46:19.079Z",
+ "agent": {
+ "html_url": "https://gitlab-1.pagerduty.com/users/PIN0B5C",
+ "id": "PIN0B5C",
+ "self": "https://api.pagerduty.com/users/PIN0B5C",
+ "summary": "Rajendra Kadam",
+ "type": "user_reference"
+ },
+ "client": "nil",
+ "data": {
+ "id": "Q1XZUF87W1HB5A",
+ "type": "incident",
+ "self": "https://api.pagerduty.com/incidents/Q1XZUF87W1HB5A",
+ "html_url": "https://gitlab-1.pagerduty.com/incidents/Q1XZUF87W1HB5A",
+ "number": 2,
+ "status": "triggered",
+ "incident_key": "[FILTERED]",
+ "created_at": "2022-11-30T08:46:19Z",
+ "title": "[FILTERED]",
+ "service": {
+ "html_url": "https://gitlab-1.pagerduty.com/services/PK6IKMT",
+ "id": "PK6IKMT",
+ "self": "https://api.pagerduty.com/services/PK6IKMT",
+ "summary": "Test service",
+ "type": "service_reference"
+ },
+ "assignees": [
{
- "id": "R2XGXEI3W0FHMSDXHDIBQGBQ5E",
- "type": "trigger_log_entry",
- "summary": "Triggered through the website",
- "self": "https://api.pagerduty.com/log_entries/R2XGXEI3W0FHMSDXHDIBQGBQ5E",
- "html_url": "https://webdemo.pagerduty.com/incidents/PRORDTY/log_entries/R2XGXEI3W0FHMSDXHDIBQGBQ5E",
- "created_at": "2017-09-26T15:14:36Z",
- "agent": {
- "id": "P553OPV",
- "type": "user_reference",
- "summary": "Laura Haley",
- "self": "https://api.pagerduty.com/users/P553OPV",
- "html_url": "https://webdemo.pagerduty.com/users/P553OPV"
- },
- "channel": {
- "type": "web_trigger",
- "summary": "My new incident",
- "subject": "My new incident",
- "details": "Oh my gosh",
- "details_omitted": false
- },
- "service": {
- "id": "PN49J75",
- "type": "service_reference",
- "summary": "Production XDB Cluster",
- "self": "https://api.pagerduty.com/services/PN49J75",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75"
- },
- "incident": {
- "id": "PRORDTY",
- "type": "incident_reference",
- "summary": "[#33] My new incident",
- "self": "https://api.pagerduty.com/incidents/PRORDTY",
- "html_url": "https://webdemo.pagerduty.com/incidents/PRORDTY"
- },
- "teams": [
- {
- "id": "P4SI59S",
- "type": "team_reference",
- "summary": "Engineering",
- "self": "https://api.pagerduty.com/teams/P4SI59S",
- "html_url": "https://webdemo.pagerduty.com/teams/P4SI59S"
- }
- ],
- "contexts": [],
- "event_details": {
- "description": "My new incident"
- }
+ "html_url": "https://gitlab-1.pagerduty.com/users/PIN0B5C",
+ "id": "PIN0B5C",
+ "self": "https://api.pagerduty.com/users/PIN0B5C",
+ "summary": "Rajendra Kadam",
+ "type": "user_reference"
}
],
- "webhook": {
- "endpoint_url": "https://requestb.in/18ao6fs1",
- "name": "V2 wabhook",
- "description": null,
- "webhook_object": {
- "id": "PN49J75",
- "type": "service_reference",
- "summary": "Production XDB Cluster",
- "self": "https://api.pagerduty.com/services/PN49J75",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75"
- },
- "config": {},
- "outbound_integration": {
- "id": "PJFWPEP",
- "type": "outbound_integration_reference",
- "summary": "Generic V2 Webhook",
- "self": "https://api.pagerduty.com/outbound_integrations/PJFWPEP",
- "html_url": null
- },
- "accounts_addon": null,
- "id": "PKT9NNX",
- "type": "webhook",
- "summary": "V2 wabhook",
- "self": "https://api.pagerduty.com/webhooks/PKT9NNX",
- "html_url": null
+ "escalation_policy": {
+ "html_url": "https://gitlab-1.pagerduty.com/escalation_policies/PWP6XTY",
+ "id": "PWP6XTY",
+ "self": "https://api.pagerduty.com/escalation_policies/PWP6XTY",
+ "summary": "Default",
+ "type": "escalation_policy_reference"
},
- "incident": {
- "incident_number": 33,
- "title": "My new incident",
- "description": "My new incident",
- "created_at": "2017-09-26T15:14:36Z",
- "status": "triggered",
- "pending_actions": [
- {
- "type": "escalate",
- "at": "2017-09-26T15:44:36Z"
- },
- {
- "type": "resolve",
- "at": "2017-09-26T19:14:36Z"
- }
- ],
- "incident_key": null,
- "service": {
- "id": "PN49J75",
- "name": "Production XDB Cluster",
- "description": "This service was created during onboarding on July 5, 2017.",
- "auto_resolve_timeout": 14400,
- "acknowledgement_timeout": 1800,
- "created_at": "2017-07-05T17:33:09Z",
- "status": "critical",
- "last_incident_timestamp": "2017-09-26T15:14:36Z",
- "teams": [
- {
- "id": "P4SI59S",
- "type": "team_reference",
- "summary": "Engineering",
- "self": "https://api.pagerduty.com/teams/P4SI59S",
- "html_url": "https://webdemo.pagerduty.com/teams/P4SI59S"
- }
- ],
- "incident_urgency_rule": {
- "type": "constant",
- "urgency": "high"
- },
- "scheduled_actions": [],
- "support_hours": null,
- "escalation_policy": {
- "id": "PINYWEF",
- "type": "escalation_policy_reference",
- "summary": "Default",
- "self": "https://api.pagerduty.com/escalation_policies/PINYWEF",
- "html_url": "https://webdemo.pagerduty.com/escalation_policies/PINYWEF"
- },
- "addons": [],
- "privilege": null,
- "alert_creation": "create_alerts_and_incidents",
- "integrations": [
- {
- "id": "PUAYF96",
- "type": "generic_events_api_inbound_integration_reference",
- "summary": "API",
- "self": "https://api.pagerduty.com/services/PN49J75/integrations/PUAYF96",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75/integrations/PUAYF96"
- },
- {
- "id": "P90GZUH",
- "type": "generic_email_inbound_integration_reference",
- "summary": "Email",
- "self": "https://api.pagerduty.com/services/PN49J75/integrations/P90GZUH",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75/integrations/P90GZUH"
- }
- ],
- "metadata": {},
- "type": "service",
- "summary": "Production XDB Cluster",
- "self": "https://api.pagerduty.com/services/PN49J75",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75"
- },
- "assignments": [
- {
- "at": "2017-09-26T15:14:36Z",
- "assignee": {
- "id": "P553OPV",
- "type": "user_reference",
- "summary": "Laura Haley",
- "self": "https://api.pagerduty.com/users/P553OPV",
- "html_url": "https://webdemo.pagerduty.com/users/P553OPV"
- }
- }
- ],
- "acknowledgements": [],
- "last_status_change_at": "2017-09-26T15:14:36Z",
- "last_status_change_by": {
- "id": "PN49J75",
- "type": "service_reference",
- "summary": "Production XDB Cluster",
- "self": "https://api.pagerduty.com/services/PN49J75",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75"
- },
- "first_trigger_log_entry": {
- "id": "R2XGXEI3W0FHMSDXHDIBQGBQ5E",
- "type": "trigger_log_entry_reference",
- "summary": "Triggered through the website",
- "self": "https://api.pagerduty.com/log_entries/R2XGXEI3W0FHMSDXHDIBQGBQ5E",
- "html_url": "https://webdemo.pagerduty.com/incidents/PRORDTY/log_entries/R2XGXEI3W0FHMSDXHDIBQGBQ5E"
- },
- "escalation_policy": {
- "id": "PINYWEF",
- "type": "escalation_policy_reference",
- "summary": "Default",
- "self": "https://api.pagerduty.com/escalation_policies/PINYWEF",
- "html_url": "https://webdemo.pagerduty.com/escalation_policies/PINYWEF"
- },
- "privilege": null,
- "teams": [
- {
- "id": "P4SI59S",
- "type": "team_reference",
- "summary": "Engineering",
- "self": "https://api.pagerduty.com/teams/P4SI59S",
- "html_url": "https://webdemo.pagerduty.com/teams/P4SI59S"
- }
- ],
- "alert_counts": {
- "all": 0,
- "triggered": 0,
- "resolved": 0
- },
- "impacted_services": [
- {
- "id": "PN49J75",
- "type": "service_reference",
- "summary": "Production XDB Cluster",
- "self": "https://api.pagerduty.com/services/PN49J75",
- "html_url": "https://webdemo.pagerduty.com/services/PN49J75"
- }
- ],
- "is_mergeable": true,
- "basic_alert_grouping": null,
- "alert_grouping": null,
- "metadata": {},
- "external_references": [],
- "importance": null,
- "incidents_responders": [],
- "responder_requests": [],
- "subscriber_requests": [],
- "urgency": "high",
- "id": "PRORDTY",
- "type": "incident",
- "summary": "[#33] My new incident",
- "self": "https://api.pagerduty.com/incidents/PRORDTY",
- "html_url": "https://webdemo.pagerduty.com/incidents/PRORDTY",
- "alerts": [
- {
- "alert_key": "c24117fc42e44b44b4d6876190583378"
- }
- ]
+ "teams": [],
+ "priority": {
+ "html_url": "https://gitlab-1.pagerduty.com/account/incident_priorities",
+ "id": "PKWBGFQ",
+ "self": "https://api.pagerduty.com/priorities/PKWBGFQ",
+ "summary": "P2",
+ "type": "priority_reference"
},
- "id": "69a7ced0-a2cd-11e7-a799-22000a15839c",
- "created_on": "2017-09-26T15:14:36Z"
+ "urgency": "high",
+ "conference_bridge": "nil",
+ "resolve_reason": "nil"
}
- ]
+ }
}