@crvouga/atlas 0.14.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/reports/src/artifact-tag-store.d.ts +20 -0
- package/dist/reports/src/artifact-tag-store.js +70 -0
- package/dist/reports/src/artifact-tags.d.ts +96 -0
- package/dist/reports/src/artifact-tags.js +96 -0
- package/dist/reports/src/evidence-detail.d.ts +20 -3
- package/dist/reports/src/evidence-detail.js +66 -13
- package/dist/reports/src/evidence-types.d.ts +33 -0
- package/dist/reports/src/layer-merge.js +2 -2
- package/dist/reports/src/reports-explorer-route.d.ts +8 -0
- package/dist/reports/src/reports-route.d.ts +8 -0
- package/dist/reports/src/test-catalog.d.ts +35 -26
- package/dist/reports/src/test-catalog.js +79 -15
- package/dist/schema/src/api.d.ts +246 -0
- package/dist/schema/src/api.js +59 -5
- package/dist/schema/src/layer.d.ts +33 -0
- package/dist/schema/src/layer.js +11 -1
- package/dist/server/src/app.js +35 -3
- package/dist/server/src/llms.js +2 -1
- package/dist/server/src/openapi.d.ts +1 -1
- package/dist/server/src/openapi.js +20 -3
- package/docs/extending.md +3 -0
- package/docs/reference/http-api.md +52 -2
- package/docs/reference/reports.md +327 -5
- package/docs/reference/schema.md +48 -0
- package/docs/rich-evidence.md +28 -0
- package/docs/server.md +25 -1
- package/llms-full.txt +108 -3
- package/package.json +1 -1
- package/packages/schema/schemas/check-detail.schema.json +28 -0
- package/packages/schema/schemas/effective-delta.schema.json +96 -0
- package/packages/schema/schemas/effective-evidence.schema.json +96 -0
- package/packages/schema/schemas/evidence-page.schema.json +48 -0
- package/packages/schema/schemas/layer-rows.schema.json +48 -0
- package/packages/schema/schemas/layer.schema.json +70 -0
- package/packages/schema/schemas/publish-checks.schema.json +35 -0
- package/packages/schema/schemas/report-run.schema.json +71 -0
- package/packages/schema/schemas/report-runs.schema.json +38 -1
- package/packages/schema/schemas/test-catalog.schema.json +83 -0
- package/packages/schema/schemas/test-history.schema.json +110 -0
- package/packages/server/openapi.json +1259 -33
- package/packages/visualizer/src/evidence/artifact-tags.tsx +285 -0
- package/packages/visualizer/src/evidence/artifacts.tsx +18 -12
- package/packages/visualizer/src/explorer/RunsView.tsx +128 -10
- package/packages/visualizer/src/explorer/catalog.tsx +16 -6
- package/packages/visualizer/src/explorer/search.ts +4 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Atlas server API",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.5.0",
|
|
6
6
|
"summary": "Take in test results from every environment, keep them, and show everyone the combined report, live.",
|
|
7
7
|
"description": "One Atlas node serves multiple projects. Clients select a project using ?project=<slug>, X-Atlas-Project, or /api/projects/<slug>/… . Each project has independent specs, layers, recordings, status, and event streams. Within each project, the newest completed result of every check wins its slot. Unqualified requests address the legacy default project.\n\n**Authentication.** With tokens configured, send `Authorization: Bearer <token>`. Roles: `read` < `publish` < `admin`. Uploading needs a Bearer token; a browser's HTTP Basic sign-in (any user name, the token as the password) is accepted for reading only. A server with no tokens is open and listens on this machine only unless told otherwise.\n\n**Errors** are [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) problem documents (`application/problem+json`) with a `detail` that says what to do. `401` send a token, `403` that token may not, `409` upload what this depends on first or you are changing something immutable, `413` too large, `422` not valid, `503` still starting (retry after `Retry-After`).\n\n**Compatibility.** Within `/api` the API only grows: optional parameters, optional response fields, new events. Ignore what you do not know.\n\nGuides: `/llms.txt`. Source: https://github.com/crvouga/atlas.",
|
|
8
8
|
"license": {
|
|
@@ -3058,6 +3058,29 @@
|
|
|
3058
3058
|
"type": "string"
|
|
3059
3059
|
}
|
|
3060
3060
|
},
|
|
3061
|
+
{
|
|
3062
|
+
"required": false,
|
|
3063
|
+
"name": "artifactTag",
|
|
3064
|
+
"in": "query",
|
|
3065
|
+
"description": "Only tests with an attachment tagged this (`demo` and `#demo` are the same tag), not counting tags inherited from a check or run: the exact artifact query. `inherited=1` widens it to the tags inherited from the check and run. Repeatable or comma-separated.",
|
|
3066
|
+
"example": "demo",
|
|
3067
|
+
"schema": {
|
|
3068
|
+
"type": "string"
|
|
3069
|
+
}
|
|
3070
|
+
},
|
|
3071
|
+
{
|
|
3072
|
+
"required": false,
|
|
3073
|
+
"name": "inherited",
|
|
3074
|
+
"in": "query",
|
|
3075
|
+
"description": "With `artifactTag`: `1` also matches the tags an attachment inherits from its check and run, so a recording without a tag of its own under a run tagged `demo` is found. Without it the query is exact.",
|
|
3076
|
+
"schema": {
|
|
3077
|
+
"type": "string",
|
|
3078
|
+
"enum": [
|
|
3079
|
+
"1",
|
|
3080
|
+
"true"
|
|
3081
|
+
]
|
|
3082
|
+
}
|
|
3083
|
+
},
|
|
3061
3084
|
{
|
|
3062
3085
|
"required": false,
|
|
3063
3086
|
"name": "run",
|
|
@@ -3274,6 +3297,29 @@
|
|
|
3274
3297
|
"type": "string"
|
|
3275
3298
|
}
|
|
3276
3299
|
},
|
|
3300
|
+
{
|
|
3301
|
+
"required": false,
|
|
3302
|
+
"name": "artifactTag",
|
|
3303
|
+
"in": "query",
|
|
3304
|
+
"description": "Only tests with an attachment tagged this (`demo` and `#demo` are the same tag), not counting tags inherited from a check or run: the exact artifact query. `inherited=1` widens it to the tags inherited from the check and run. Repeatable or comma-separated.",
|
|
3305
|
+
"example": "demo",
|
|
3306
|
+
"schema": {
|
|
3307
|
+
"type": "string"
|
|
3308
|
+
}
|
|
3309
|
+
},
|
|
3310
|
+
{
|
|
3311
|
+
"required": false,
|
|
3312
|
+
"name": "inherited",
|
|
3313
|
+
"in": "query",
|
|
3314
|
+
"description": "With `artifactTag`: `1` also matches the tags an attachment inherits from its check and run, so a recording without a tag of its own under a run tagged `demo` is found. Without it the query is exact.",
|
|
3315
|
+
"schema": {
|
|
3316
|
+
"type": "string",
|
|
3317
|
+
"enum": [
|
|
3318
|
+
"1",
|
|
3319
|
+
"true"
|
|
3320
|
+
]
|
|
3321
|
+
}
|
|
3322
|
+
},
|
|
3277
3323
|
{
|
|
3278
3324
|
"required": false,
|
|
3279
3325
|
"name": "run",
|
|
@@ -3801,6 +3847,298 @@
|
|
|
3801
3847
|
}
|
|
3802
3848
|
}
|
|
3803
3849
|
},
|
|
3850
|
+
"/api/reports/artifact-tags": {
|
|
3851
|
+
"get": {
|
|
3852
|
+
"operationId": "getArtifactTags",
|
|
3853
|
+
"tags": [
|
|
3854
|
+
"Report"
|
|
3855
|
+
],
|
|
3856
|
+
"summary": "Reviewer tags of attachments: every recorded edit",
|
|
3857
|
+
"description": "The audit trail of tags that reviewers added to and removed from attachments after upload, oldest first. Each entry says which attachment (`target`), which normalized tags were added and removed, the name of the token that made the edit (`by`, never the token) and when (`atMs`). The layers themselves are never rewritten, so a producer's own `tags` on an attachment stay as uploaded; fold the entries (oldest first, the last edit of a tag wins) to get the reviewer tags that stand now. Tags are normalized: `#Demo` and `demo` are `demo`.\n\nRole needed: `read`.",
|
|
3858
|
+
"x-atlas-role": "read",
|
|
3859
|
+
"security": [
|
|
3860
|
+
{
|
|
3861
|
+
"bearer": []
|
|
3862
|
+
},
|
|
3863
|
+
{
|
|
3864
|
+
"basic": []
|
|
3865
|
+
}
|
|
3866
|
+
],
|
|
3867
|
+
"parameters": [
|
|
3868
|
+
{
|
|
3869
|
+
"required": false,
|
|
3870
|
+
"name": "project",
|
|
3871
|
+
"in": "query",
|
|
3872
|
+
"description": "Project slug. Alternatively send X-Atlas-Project or use the project-prefixed route. Omit for the default project. Conflicting selectors are refused.",
|
|
3873
|
+
"example": "todo-app",
|
|
3874
|
+
"schema": {
|
|
3875
|
+
"type": "string",
|
|
3876
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",
|
|
3877
|
+
"maxLength": 64
|
|
3878
|
+
}
|
|
3879
|
+
}
|
|
3880
|
+
],
|
|
3881
|
+
"responses": {
|
|
3882
|
+
"200": {
|
|
3883
|
+
"description": "The edits.",
|
|
3884
|
+
"content": {
|
|
3885
|
+
"application/json": {
|
|
3886
|
+
"schema": {
|
|
3887
|
+
"$ref": "#/components/schemas/ArtifactTags"
|
|
3888
|
+
}
|
|
3889
|
+
}
|
|
3890
|
+
}
|
|
3891
|
+
},
|
|
3892
|
+
"401": {
|
|
3893
|
+
"description": "No token, or an unknown one. Send `Authorization: Bearer <token>`.",
|
|
3894
|
+
"content": {
|
|
3895
|
+
"application/problem+json": {
|
|
3896
|
+
"schema": {
|
|
3897
|
+
"$ref": "#/components/schemas/Problem"
|
|
3898
|
+
}
|
|
3899
|
+
}
|
|
3900
|
+
}
|
|
3901
|
+
}
|
|
3902
|
+
}
|
|
3903
|
+
},
|
|
3904
|
+
"post": {
|
|
3905
|
+
"operationId": "editArtifactTags",
|
|
3906
|
+
"tags": [
|
|
3907
|
+
"Report"
|
|
3908
|
+
],
|
|
3909
|
+
"summary": "Tag or untag one attachment after upload",
|
|
3910
|
+
"description": "Records one edit of the reviewer tags of one attachment, by the name of the publish (or admin) token that sends it. It adds an immutable entry to the audit trail and changes nothing else: not the layer, not the movie, not any result. The tags it removes are reviewer tags only; a producer's tags are part of the layer and stay. A reader-only token, a browser sign-in box and an anonymous reader are refused. Name the attachment as `artifactRef` does (`id:<id>`, else `key:<bundleKey>`, else `name:<name>`).\n\nRole needed: `publish`.",
|
|
3911
|
+
"x-atlas-role": "publish",
|
|
3912
|
+
"security": [
|
|
3913
|
+
{
|
|
3914
|
+
"bearer": []
|
|
3915
|
+
}
|
|
3916
|
+
],
|
|
3917
|
+
"parameters": [
|
|
3918
|
+
{
|
|
3919
|
+
"required": false,
|
|
3920
|
+
"name": "project",
|
|
3921
|
+
"in": "query",
|
|
3922
|
+
"description": "Project slug. Alternatively send X-Atlas-Project or use the project-prefixed route. Omit for the default project. Conflicting selectors are refused.",
|
|
3923
|
+
"example": "todo-app",
|
|
3924
|
+
"schema": {
|
|
3925
|
+
"type": "string",
|
|
3926
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",
|
|
3927
|
+
"maxLength": 64
|
|
3928
|
+
}
|
|
3929
|
+
}
|
|
3930
|
+
],
|
|
3931
|
+
"requestBody": {
|
|
3932
|
+
"required": true,
|
|
3933
|
+
"description": "The attachment and the tags to add and remove. At most 20 of each, 64 KiB.",
|
|
3934
|
+
"content": {
|
|
3935
|
+
"application/json": {
|
|
3936
|
+
"schema": {
|
|
3937
|
+
"$ref": "#/components/schemas/ArtifactTagEdit"
|
|
3938
|
+
}
|
|
3939
|
+
}
|
|
3940
|
+
}
|
|
3941
|
+
},
|
|
3942
|
+
"responses": {
|
|
3943
|
+
"201": {
|
|
3944
|
+
"description": "The recorded entry.",
|
|
3945
|
+
"content": {
|
|
3946
|
+
"application/json": {
|
|
3947
|
+
"schema": {
|
|
3948
|
+
"$ref": "#/components/schemas/ArtifactTagEntry"
|
|
3949
|
+
}
|
|
3950
|
+
}
|
|
3951
|
+
}
|
|
3952
|
+
},
|
|
3953
|
+
"401": {
|
|
3954
|
+
"description": "No token, or an unknown one. Send `Authorization: Bearer <token>`.",
|
|
3955
|
+
"content": {
|
|
3956
|
+
"application/problem+json": {
|
|
3957
|
+
"schema": {
|
|
3958
|
+
"$ref": "#/components/schemas/Problem"
|
|
3959
|
+
}
|
|
3960
|
+
}
|
|
3961
|
+
}
|
|
3962
|
+
},
|
|
3963
|
+
"403": {
|
|
3964
|
+
"description": "The token is known but its role may not do this.",
|
|
3965
|
+
"content": {
|
|
3966
|
+
"application/problem+json": {
|
|
3967
|
+
"schema": {
|
|
3968
|
+
"$ref": "#/components/schemas/Problem"
|
|
3969
|
+
}
|
|
3970
|
+
}
|
|
3971
|
+
}
|
|
3972
|
+
},
|
|
3973
|
+
"413": {
|
|
3974
|
+
"description": "Request too large.",
|
|
3975
|
+
"content": {
|
|
3976
|
+
"application/problem+json": {
|
|
3977
|
+
"schema": {
|
|
3978
|
+
"$ref": "#/components/schemas/Problem"
|
|
3979
|
+
}
|
|
3980
|
+
}
|
|
3981
|
+
}
|
|
3982
|
+
},
|
|
3983
|
+
"422": {
|
|
3984
|
+
"description": "Not a tag edit: a bad target, an empty or over-long tag, or nothing to change.",
|
|
3985
|
+
"content": {
|
|
3986
|
+
"application/problem+json": {
|
|
3987
|
+
"schema": {
|
|
3988
|
+
"$ref": "#/components/schemas/Problem"
|
|
3989
|
+
}
|
|
3990
|
+
}
|
|
3991
|
+
}
|
|
3992
|
+
}
|
|
3993
|
+
}
|
|
3994
|
+
}
|
|
3995
|
+
},
|
|
3996
|
+
"/api/projects/{project}/reports/artifact-tags": {
|
|
3997
|
+
"get": {
|
|
3998
|
+
"operationId": "getArtifactTagsForProject",
|
|
3999
|
+
"tags": [
|
|
4000
|
+
"Report"
|
|
4001
|
+
],
|
|
4002
|
+
"summary": "Reviewer tags of attachments: every recorded edit",
|
|
4003
|
+
"description": "The audit trail of tags that reviewers added to and removed from attachments after upload, oldest first. Each entry says which attachment (`target`), which normalized tags were added and removed, the name of the token that made the edit (`by`, never the token) and when (`atMs`). The layers themselves are never rewritten, so a producer's own `tags` on an attachment stay as uploaded; fold the entries (oldest first, the last edit of a tag wins) to get the reviewer tags that stand now. Tags are normalized: `#Demo` and `demo` are `demo`.\n\nScoped to one project. The same project may be selected on the unprefixed API using ?project= or X-Atlas-Project. Unknown projects return 404 on reads and are created by an authenticated upload.\n\nRole needed: `read`.",
|
|
4004
|
+
"x-atlas-role": "read",
|
|
4005
|
+
"security": [
|
|
4006
|
+
{
|
|
4007
|
+
"bearer": []
|
|
4008
|
+
},
|
|
4009
|
+
{
|
|
4010
|
+
"basic": []
|
|
4011
|
+
}
|
|
4012
|
+
],
|
|
4013
|
+
"parameters": [
|
|
4014
|
+
{
|
|
4015
|
+
"required": true,
|
|
4016
|
+
"name": "project",
|
|
4017
|
+
"in": "path",
|
|
4018
|
+
"description": "Project slug. Alternatively send X-Atlas-Project or use the project-prefixed route. Omit for the default project. Conflicting selectors are refused.",
|
|
4019
|
+
"example": "todo-app",
|
|
4020
|
+
"schema": {
|
|
4021
|
+
"type": "string",
|
|
4022
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",
|
|
4023
|
+
"maxLength": 64
|
|
4024
|
+
}
|
|
4025
|
+
}
|
|
4026
|
+
],
|
|
4027
|
+
"responses": {
|
|
4028
|
+
"200": {
|
|
4029
|
+
"description": "The edits.",
|
|
4030
|
+
"content": {
|
|
4031
|
+
"application/json": {
|
|
4032
|
+
"schema": {
|
|
4033
|
+
"$ref": "#/components/schemas/ArtifactTags"
|
|
4034
|
+
}
|
|
4035
|
+
}
|
|
4036
|
+
}
|
|
4037
|
+
},
|
|
4038
|
+
"401": {
|
|
4039
|
+
"description": "No token, or an unknown one. Send `Authorization: Bearer <token>`.",
|
|
4040
|
+
"content": {
|
|
4041
|
+
"application/problem+json": {
|
|
4042
|
+
"schema": {
|
|
4043
|
+
"$ref": "#/components/schemas/Problem"
|
|
4044
|
+
}
|
|
4045
|
+
}
|
|
4046
|
+
}
|
|
4047
|
+
}
|
|
4048
|
+
}
|
|
4049
|
+
},
|
|
4050
|
+
"post": {
|
|
4051
|
+
"operationId": "editArtifactTagsForProject",
|
|
4052
|
+
"tags": [
|
|
4053
|
+
"Report"
|
|
4054
|
+
],
|
|
4055
|
+
"summary": "Tag or untag one attachment after upload",
|
|
4056
|
+
"description": "Records one edit of the reviewer tags of one attachment, by the name of the publish (or admin) token that sends it. It adds an immutable entry to the audit trail and changes nothing else: not the layer, not the movie, not any result. The tags it removes are reviewer tags only; a producer's tags are part of the layer and stay. A reader-only token, a browser sign-in box and an anonymous reader are refused. Name the attachment as `artifactRef` does (`id:<id>`, else `key:<bundleKey>`, else `name:<name>`).\n\nScoped to one project. The same project may be selected on the unprefixed API using ?project= or X-Atlas-Project. Unknown projects return 404 on reads and are created by an authenticated upload.\n\nRole needed: `publish`.",
|
|
4057
|
+
"x-atlas-role": "publish",
|
|
4058
|
+
"security": [
|
|
4059
|
+
{
|
|
4060
|
+
"bearer": []
|
|
4061
|
+
}
|
|
4062
|
+
],
|
|
4063
|
+
"parameters": [
|
|
4064
|
+
{
|
|
4065
|
+
"required": true,
|
|
4066
|
+
"name": "project",
|
|
4067
|
+
"in": "path",
|
|
4068
|
+
"description": "Project slug. Alternatively send X-Atlas-Project or use the project-prefixed route. Omit for the default project. Conflicting selectors are refused.",
|
|
4069
|
+
"example": "todo-app",
|
|
4070
|
+
"schema": {
|
|
4071
|
+
"type": "string",
|
|
4072
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",
|
|
4073
|
+
"maxLength": 64
|
|
4074
|
+
}
|
|
4075
|
+
}
|
|
4076
|
+
],
|
|
4077
|
+
"requestBody": {
|
|
4078
|
+
"required": true,
|
|
4079
|
+
"description": "The attachment and the tags to add and remove. At most 20 of each, 64 KiB.",
|
|
4080
|
+
"content": {
|
|
4081
|
+
"application/json": {
|
|
4082
|
+
"schema": {
|
|
4083
|
+
"$ref": "#/components/schemas/ArtifactTagEdit"
|
|
4084
|
+
}
|
|
4085
|
+
}
|
|
4086
|
+
}
|
|
4087
|
+
},
|
|
4088
|
+
"responses": {
|
|
4089
|
+
"201": {
|
|
4090
|
+
"description": "The recorded entry.",
|
|
4091
|
+
"content": {
|
|
4092
|
+
"application/json": {
|
|
4093
|
+
"schema": {
|
|
4094
|
+
"$ref": "#/components/schemas/ArtifactTagEntry"
|
|
4095
|
+
}
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
},
|
|
4099
|
+
"401": {
|
|
4100
|
+
"description": "No token, or an unknown one. Send `Authorization: Bearer <token>`.",
|
|
4101
|
+
"content": {
|
|
4102
|
+
"application/problem+json": {
|
|
4103
|
+
"schema": {
|
|
4104
|
+
"$ref": "#/components/schemas/Problem"
|
|
4105
|
+
}
|
|
4106
|
+
}
|
|
4107
|
+
}
|
|
4108
|
+
},
|
|
4109
|
+
"403": {
|
|
4110
|
+
"description": "The token is known but its role may not do this.",
|
|
4111
|
+
"content": {
|
|
4112
|
+
"application/problem+json": {
|
|
4113
|
+
"schema": {
|
|
4114
|
+
"$ref": "#/components/schemas/Problem"
|
|
4115
|
+
}
|
|
4116
|
+
}
|
|
4117
|
+
}
|
|
4118
|
+
},
|
|
4119
|
+
"413": {
|
|
4120
|
+
"description": "Request too large.",
|
|
4121
|
+
"content": {
|
|
4122
|
+
"application/problem+json": {
|
|
4123
|
+
"schema": {
|
|
4124
|
+
"$ref": "#/components/schemas/Problem"
|
|
4125
|
+
}
|
|
4126
|
+
}
|
|
4127
|
+
}
|
|
4128
|
+
},
|
|
4129
|
+
"422": {
|
|
4130
|
+
"description": "Not a tag edit: a bad target, an empty or over-long tag, or nothing to change.",
|
|
4131
|
+
"content": {
|
|
4132
|
+
"application/problem+json": {
|
|
4133
|
+
"schema": {
|
|
4134
|
+
"$ref": "#/components/schemas/Problem"
|
|
4135
|
+
}
|
|
4136
|
+
}
|
|
4137
|
+
}
|
|
4138
|
+
}
|
|
4139
|
+
}
|
|
4140
|
+
}
|
|
4141
|
+
},
|
|
3804
4142
|
"/api/reports/runs": {
|
|
3805
4143
|
"get": {
|
|
3806
4144
|
"operationId": "getReportRuns",
|
|
@@ -3808,7 +4146,7 @@
|
|
|
3808
4146
|
"Report"
|
|
3809
4147
|
],
|
|
3810
4148
|
"summary": "The runs that recorded the report",
|
|
3811
|
-
"description": "Every run, newest first: layers grouped by their CI run URL (else branch and commit), with their environments, producers, how many tests they recorded, their results by status, the time they spanned
|
|
4149
|
+
"description": "Every run, newest first: layers grouped by their CI run URL (else branch and commit), with their environments, producers, how many tests they recorded, their results by status, the time they spanned, up to twenty failures and their video counts (references, distinct playable recordings, unavailable). Send `format=markdown` for Markdown.\n\nRole needed: `read`.",
|
|
3812
4150
|
"x-atlas-role": "read",
|
|
3813
4151
|
"security": [
|
|
3814
4152
|
{
|
|
@@ -3829,6 +4167,15 @@
|
|
|
3829
4167
|
"minimum": 0
|
|
3830
4168
|
}
|
|
3831
4169
|
},
|
|
4170
|
+
{
|
|
4171
|
+
"required": false,
|
|
4172
|
+
"name": "video",
|
|
4173
|
+
"in": "query",
|
|
4174
|
+
"description": "`true` to list only runs that have a playable video recording. Applied to every run before `limit`; `total` counts the matches. A server that does not know it answers with every run.",
|
|
4175
|
+
"schema": {
|
|
4176
|
+
"type": "boolean"
|
|
4177
|
+
}
|
|
4178
|
+
},
|
|
3832
4179
|
{
|
|
3833
4180
|
"required": false,
|
|
3834
4181
|
"name": "format",
|
|
@@ -3899,7 +4246,7 @@
|
|
|
3899
4246
|
"Report"
|
|
3900
4247
|
],
|
|
3901
4248
|
"summary": "The runs that recorded the report",
|
|
3902
|
-
"description": "Every run, newest first: layers grouped by their CI run URL (else branch and commit), with their environments, producers, how many tests they recorded, their results by status, the time they spanned
|
|
4249
|
+
"description": "Every run, newest first: layers grouped by their CI run URL (else branch and commit), with their environments, producers, how many tests they recorded, their results by status, the time they spanned, up to twenty failures and their video counts (references, distinct playable recordings, unavailable). Send `format=markdown` for Markdown.\n\nScoped to one project. The same project may be selected on the unprefixed API using ?project= or X-Atlas-Project. Unknown projects return 404 on reads and are created by an authenticated upload.\n\nRole needed: `read`.",
|
|
3903
4250
|
"x-atlas-role": "read",
|
|
3904
4251
|
"security": [
|
|
3905
4252
|
{
|
|
@@ -3932,6 +4279,15 @@
|
|
|
3932
4279
|
"minimum": 0
|
|
3933
4280
|
}
|
|
3934
4281
|
},
|
|
4282
|
+
{
|
|
4283
|
+
"required": false,
|
|
4284
|
+
"name": "video",
|
|
4285
|
+
"in": "query",
|
|
4286
|
+
"description": "`true` to list only runs that have a playable video recording. Applied to every run before `limit`; `total` counts the matches. A server that does not know it answers with every run.",
|
|
4287
|
+
"schema": {
|
|
4288
|
+
"type": "boolean"
|
|
4289
|
+
}
|
|
4290
|
+
},
|
|
3935
4291
|
{
|
|
3936
4292
|
"required": false,
|
|
3937
4293
|
"name": "format",
|
|
@@ -7451,6 +7807,13 @@
|
|
|
7451
7807
|
"type": "string"
|
|
7452
7808
|
}
|
|
7453
7809
|
},
|
|
7810
|
+
"artifactTags": {
|
|
7811
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
7812
|
+
"type": "array",
|
|
7813
|
+
"items": {
|
|
7814
|
+
"type": "string"
|
|
7815
|
+
}
|
|
7816
|
+
},
|
|
7454
7817
|
"labels": {
|
|
7455
7818
|
"type": "object",
|
|
7456
7819
|
"propertyNames": {
|
|
@@ -7465,6 +7828,47 @@
|
|
|
7465
7828
|
"items": {
|
|
7466
7829
|
"type": "string"
|
|
7467
7830
|
}
|
|
7831
|
+
},
|
|
7832
|
+
"videos": {
|
|
7833
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
7834
|
+
"type": "array",
|
|
7835
|
+
"items": {
|
|
7836
|
+
"type": "object",
|
|
7837
|
+
"properties": {
|
|
7838
|
+
"name": {
|
|
7839
|
+
"type": "string",
|
|
7840
|
+
"description": "The attachment name"
|
|
7841
|
+
},
|
|
7842
|
+
"owner": {
|
|
7843
|
+
"type": "string",
|
|
7844
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
7845
|
+
},
|
|
7846
|
+
"attempt": {
|
|
7847
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
7848
|
+
"type": "integer",
|
|
7849
|
+
"minimum": 0,
|
|
7850
|
+
"maximum": 9007199254740991
|
|
7851
|
+
},
|
|
7852
|
+
"step": {
|
|
7853
|
+
"description": "The name of the step that holds it",
|
|
7854
|
+
"type": "string"
|
|
7855
|
+
},
|
|
7856
|
+
"recording": {
|
|
7857
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
7858
|
+
"type": "string"
|
|
7859
|
+
},
|
|
7860
|
+
"available": {
|
|
7861
|
+
"type": "boolean",
|
|
7862
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
7863
|
+
}
|
|
7864
|
+
},
|
|
7865
|
+
"required": [
|
|
7866
|
+
"name",
|
|
7867
|
+
"owner",
|
|
7868
|
+
"available"
|
|
7869
|
+
],
|
|
7870
|
+
"additionalProperties": {}
|
|
7871
|
+
}
|
|
7468
7872
|
}
|
|
7469
7873
|
},
|
|
7470
7874
|
"required": [
|
|
@@ -7677,6 +8081,13 @@
|
|
|
7677
8081
|
"type": "string"
|
|
7678
8082
|
}
|
|
7679
8083
|
},
|
|
8084
|
+
"artifactTags": {
|
|
8085
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
8086
|
+
"type": "array",
|
|
8087
|
+
"items": {
|
|
8088
|
+
"type": "string"
|
|
8089
|
+
}
|
|
8090
|
+
},
|
|
7680
8091
|
"labels": {
|
|
7681
8092
|
"type": "object",
|
|
7682
8093
|
"propertyNames": {
|
|
@@ -7691,6 +8102,47 @@
|
|
|
7691
8102
|
"items": {
|
|
7692
8103
|
"type": "string"
|
|
7693
8104
|
}
|
|
8105
|
+
},
|
|
8106
|
+
"videos": {
|
|
8107
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
8108
|
+
"type": "array",
|
|
8109
|
+
"items": {
|
|
8110
|
+
"type": "object",
|
|
8111
|
+
"properties": {
|
|
8112
|
+
"name": {
|
|
8113
|
+
"type": "string",
|
|
8114
|
+
"description": "The attachment name"
|
|
8115
|
+
},
|
|
8116
|
+
"owner": {
|
|
8117
|
+
"type": "string",
|
|
8118
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
8119
|
+
},
|
|
8120
|
+
"attempt": {
|
|
8121
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
8122
|
+
"type": "integer",
|
|
8123
|
+
"minimum": 0,
|
|
8124
|
+
"maximum": 9007199254740991
|
|
8125
|
+
},
|
|
8126
|
+
"step": {
|
|
8127
|
+
"description": "The name of the step that holds it",
|
|
8128
|
+
"type": "string"
|
|
8129
|
+
},
|
|
8130
|
+
"recording": {
|
|
8131
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
8132
|
+
"type": "string"
|
|
8133
|
+
},
|
|
8134
|
+
"available": {
|
|
8135
|
+
"type": "boolean",
|
|
8136
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
8137
|
+
}
|
|
8138
|
+
},
|
|
8139
|
+
"required": [
|
|
8140
|
+
"name",
|
|
8141
|
+
"owner",
|
|
8142
|
+
"available"
|
|
8143
|
+
],
|
|
8144
|
+
"additionalProperties": {}
|
|
8145
|
+
}
|
|
7694
8146
|
}
|
|
7695
8147
|
},
|
|
7696
8148
|
"required": [
|
|
@@ -7924,6 +8376,13 @@
|
|
|
7924
8376
|
"type": "string"
|
|
7925
8377
|
}
|
|
7926
8378
|
},
|
|
8379
|
+
"artifactTags": {
|
|
8380
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
8381
|
+
"type": "array",
|
|
8382
|
+
"items": {
|
|
8383
|
+
"type": "string"
|
|
8384
|
+
}
|
|
8385
|
+
},
|
|
7927
8386
|
"labels": {
|
|
7928
8387
|
"type": "object",
|
|
7929
8388
|
"propertyNames": {
|
|
@@ -7938,6 +8397,47 @@
|
|
|
7938
8397
|
"items": {
|
|
7939
8398
|
"type": "string"
|
|
7940
8399
|
}
|
|
8400
|
+
},
|
|
8401
|
+
"videos": {
|
|
8402
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
8403
|
+
"type": "array",
|
|
8404
|
+
"items": {
|
|
8405
|
+
"type": "object",
|
|
8406
|
+
"properties": {
|
|
8407
|
+
"name": {
|
|
8408
|
+
"type": "string",
|
|
8409
|
+
"description": "The attachment name"
|
|
8410
|
+
},
|
|
8411
|
+
"owner": {
|
|
8412
|
+
"type": "string",
|
|
8413
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
8414
|
+
},
|
|
8415
|
+
"attempt": {
|
|
8416
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
8417
|
+
"type": "integer",
|
|
8418
|
+
"minimum": 0,
|
|
8419
|
+
"maximum": 9007199254740991
|
|
8420
|
+
},
|
|
8421
|
+
"step": {
|
|
8422
|
+
"description": "The name of the step that holds it",
|
|
8423
|
+
"type": "string"
|
|
8424
|
+
},
|
|
8425
|
+
"recording": {
|
|
8426
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
8427
|
+
"type": "string"
|
|
8428
|
+
},
|
|
8429
|
+
"available": {
|
|
8430
|
+
"type": "boolean",
|
|
8431
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
8432
|
+
}
|
|
8433
|
+
},
|
|
8434
|
+
"required": [
|
|
8435
|
+
"name",
|
|
8436
|
+
"owner",
|
|
8437
|
+
"available"
|
|
8438
|
+
],
|
|
8439
|
+
"additionalProperties": {}
|
|
8440
|
+
}
|
|
7941
8441
|
}
|
|
7942
8442
|
},
|
|
7943
8443
|
"required": [
|
|
@@ -8150,6 +8650,13 @@
|
|
|
8150
8650
|
"type": "string"
|
|
8151
8651
|
}
|
|
8152
8652
|
},
|
|
8653
|
+
"artifactTags": {
|
|
8654
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
8655
|
+
"type": "array",
|
|
8656
|
+
"items": {
|
|
8657
|
+
"type": "string"
|
|
8658
|
+
}
|
|
8659
|
+
},
|
|
8153
8660
|
"labels": {
|
|
8154
8661
|
"type": "object",
|
|
8155
8662
|
"propertyNames": {
|
|
@@ -8164,6 +8671,47 @@
|
|
|
8164
8671
|
"items": {
|
|
8165
8672
|
"type": "string"
|
|
8166
8673
|
}
|
|
8674
|
+
},
|
|
8675
|
+
"videos": {
|
|
8676
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
8677
|
+
"type": "array",
|
|
8678
|
+
"items": {
|
|
8679
|
+
"type": "object",
|
|
8680
|
+
"properties": {
|
|
8681
|
+
"name": {
|
|
8682
|
+
"type": "string",
|
|
8683
|
+
"description": "The attachment name"
|
|
8684
|
+
},
|
|
8685
|
+
"owner": {
|
|
8686
|
+
"type": "string",
|
|
8687
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
8688
|
+
},
|
|
8689
|
+
"attempt": {
|
|
8690
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
8691
|
+
"type": "integer",
|
|
8692
|
+
"minimum": 0,
|
|
8693
|
+
"maximum": 9007199254740991
|
|
8694
|
+
},
|
|
8695
|
+
"step": {
|
|
8696
|
+
"description": "The name of the step that holds it",
|
|
8697
|
+
"type": "string"
|
|
8698
|
+
},
|
|
8699
|
+
"recording": {
|
|
8700
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
8701
|
+
"type": "string"
|
|
8702
|
+
},
|
|
8703
|
+
"available": {
|
|
8704
|
+
"type": "boolean",
|
|
8705
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
8706
|
+
}
|
|
8707
|
+
},
|
|
8708
|
+
"required": [
|
|
8709
|
+
"name",
|
|
8710
|
+
"owner",
|
|
8711
|
+
"available"
|
|
8712
|
+
],
|
|
8713
|
+
"additionalProperties": {}
|
|
8714
|
+
}
|
|
8167
8715
|
}
|
|
8168
8716
|
},
|
|
8169
8717
|
"required": [
|
|
@@ -8802,6 +9350,13 @@
|
|
|
8802
9350
|
"description": {
|
|
8803
9351
|
"type": "string"
|
|
8804
9352
|
},
|
|
9353
|
+
"tags": {
|
|
9354
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
9355
|
+
"type": "array",
|
|
9356
|
+
"items": {
|
|
9357
|
+
"type": "string"
|
|
9358
|
+
}
|
|
9359
|
+
},
|
|
8805
9360
|
"at": {
|
|
8806
9361
|
"type": "object",
|
|
8807
9362
|
"properties": {
|
|
@@ -9039,6 +9594,13 @@
|
|
|
9039
9594
|
"description": {
|
|
9040
9595
|
"type": "string"
|
|
9041
9596
|
},
|
|
9597
|
+
"tags": {
|
|
9598
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
9599
|
+
"type": "array",
|
|
9600
|
+
"items": {
|
|
9601
|
+
"type": "string"
|
|
9602
|
+
}
|
|
9603
|
+
},
|
|
9042
9604
|
"at": {
|
|
9043
9605
|
"type": "object",
|
|
9044
9606
|
"properties": {
|
|
@@ -9313,6 +9875,13 @@
|
|
|
9313
9875
|
"description": {
|
|
9314
9876
|
"type": "string"
|
|
9315
9877
|
},
|
|
9878
|
+
"tags": {
|
|
9879
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
9880
|
+
"type": "array",
|
|
9881
|
+
"items": {
|
|
9882
|
+
"type": "string"
|
|
9883
|
+
}
|
|
9884
|
+
},
|
|
9316
9885
|
"at": {
|
|
9317
9886
|
"type": "object",
|
|
9318
9887
|
"properties": {
|
|
@@ -9523,6 +10092,13 @@
|
|
|
9523
10092
|
"description": {
|
|
9524
10093
|
"type": "string"
|
|
9525
10094
|
},
|
|
10095
|
+
"tags": {
|
|
10096
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
10097
|
+
"type": "array",
|
|
10098
|
+
"items": {
|
|
10099
|
+
"type": "string"
|
|
10100
|
+
}
|
|
10101
|
+
},
|
|
9526
10102
|
"at": {
|
|
9527
10103
|
"type": "object",
|
|
9528
10104
|
"properties": {
|
|
@@ -9903,6 +10479,13 @@
|
|
|
9903
10479
|
"description": {
|
|
9904
10480
|
"type": "string"
|
|
9905
10481
|
},
|
|
10482
|
+
"tags": {
|
|
10483
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
10484
|
+
"type": "array",
|
|
10485
|
+
"items": {
|
|
10486
|
+
"type": "string"
|
|
10487
|
+
}
|
|
10488
|
+
},
|
|
9906
10489
|
"at": {
|
|
9907
10490
|
"type": "object",
|
|
9908
10491
|
"properties": {
|
|
@@ -10363,6 +10946,13 @@
|
|
|
10363
10946
|
"type": "string"
|
|
10364
10947
|
}
|
|
10365
10948
|
},
|
|
10949
|
+
"artifactTags": {
|
|
10950
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
10951
|
+
"type": "array",
|
|
10952
|
+
"items": {
|
|
10953
|
+
"type": "string"
|
|
10954
|
+
}
|
|
10955
|
+
},
|
|
10366
10956
|
"labels": {
|
|
10367
10957
|
"type": "object",
|
|
10368
10958
|
"propertyNames": {
|
|
@@ -10377,6 +10967,47 @@
|
|
|
10377
10967
|
"items": {
|
|
10378
10968
|
"type": "string"
|
|
10379
10969
|
}
|
|
10970
|
+
},
|
|
10971
|
+
"videos": {
|
|
10972
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
10973
|
+
"type": "array",
|
|
10974
|
+
"items": {
|
|
10975
|
+
"type": "object",
|
|
10976
|
+
"properties": {
|
|
10977
|
+
"name": {
|
|
10978
|
+
"type": "string",
|
|
10979
|
+
"description": "The attachment name"
|
|
10980
|
+
},
|
|
10981
|
+
"owner": {
|
|
10982
|
+
"type": "string",
|
|
10983
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
10984
|
+
},
|
|
10985
|
+
"attempt": {
|
|
10986
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
10987
|
+
"type": "integer",
|
|
10988
|
+
"minimum": 0,
|
|
10989
|
+
"maximum": 9007199254740991
|
|
10990
|
+
},
|
|
10991
|
+
"step": {
|
|
10992
|
+
"description": "The name of the step that holds it",
|
|
10993
|
+
"type": "string"
|
|
10994
|
+
},
|
|
10995
|
+
"recording": {
|
|
10996
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
10997
|
+
"type": "string"
|
|
10998
|
+
},
|
|
10999
|
+
"available": {
|
|
11000
|
+
"type": "boolean",
|
|
11001
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
11002
|
+
}
|
|
11003
|
+
},
|
|
11004
|
+
"required": [
|
|
11005
|
+
"name",
|
|
11006
|
+
"owner",
|
|
11007
|
+
"available"
|
|
11008
|
+
],
|
|
11009
|
+
"additionalProperties": {}
|
|
11010
|
+
}
|
|
10380
11011
|
}
|
|
10381
11012
|
},
|
|
10382
11013
|
"required": [
|
|
@@ -10590,6 +11221,13 @@
|
|
|
10590
11221
|
"type": "string"
|
|
10591
11222
|
}
|
|
10592
11223
|
},
|
|
11224
|
+
"artifactTags": {
|
|
11225
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
11226
|
+
"type": "array",
|
|
11227
|
+
"items": {
|
|
11228
|
+
"type": "string"
|
|
11229
|
+
}
|
|
11230
|
+
},
|
|
10593
11231
|
"labels": {
|
|
10594
11232
|
"type": "object",
|
|
10595
11233
|
"propertyNames": {
|
|
@@ -10604,6 +11242,47 @@
|
|
|
10604
11242
|
"items": {
|
|
10605
11243
|
"type": "string"
|
|
10606
11244
|
}
|
|
11245
|
+
},
|
|
11246
|
+
"videos": {
|
|
11247
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
11248
|
+
"type": "array",
|
|
11249
|
+
"items": {
|
|
11250
|
+
"type": "object",
|
|
11251
|
+
"properties": {
|
|
11252
|
+
"name": {
|
|
11253
|
+
"type": "string",
|
|
11254
|
+
"description": "The attachment name"
|
|
11255
|
+
},
|
|
11256
|
+
"owner": {
|
|
11257
|
+
"type": "string",
|
|
11258
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
11259
|
+
},
|
|
11260
|
+
"attempt": {
|
|
11261
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
11262
|
+
"type": "integer",
|
|
11263
|
+
"minimum": 0,
|
|
11264
|
+
"maximum": 9007199254740991
|
|
11265
|
+
},
|
|
11266
|
+
"step": {
|
|
11267
|
+
"description": "The name of the step that holds it",
|
|
11268
|
+
"type": "string"
|
|
11269
|
+
},
|
|
11270
|
+
"recording": {
|
|
11271
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
11272
|
+
"type": "string"
|
|
11273
|
+
},
|
|
11274
|
+
"available": {
|
|
11275
|
+
"type": "boolean",
|
|
11276
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
11277
|
+
}
|
|
11278
|
+
},
|
|
11279
|
+
"required": [
|
|
11280
|
+
"name",
|
|
11281
|
+
"owner",
|
|
11282
|
+
"available"
|
|
11283
|
+
],
|
|
11284
|
+
"additionalProperties": {}
|
|
11285
|
+
}
|
|
10607
11286
|
}
|
|
10608
11287
|
},
|
|
10609
11288
|
"required": [
|
|
@@ -10821,6 +11500,13 @@
|
|
|
10821
11500
|
"description": {
|
|
10822
11501
|
"type": "string"
|
|
10823
11502
|
},
|
|
11503
|
+
"tags": {
|
|
11504
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
11505
|
+
"type": "array",
|
|
11506
|
+
"items": {
|
|
11507
|
+
"type": "string"
|
|
11508
|
+
}
|
|
11509
|
+
},
|
|
10824
11510
|
"at": {
|
|
10825
11511
|
"type": "object",
|
|
10826
11512
|
"properties": {
|
|
@@ -11049,6 +11735,13 @@
|
|
|
11049
11735
|
"description": {
|
|
11050
11736
|
"type": "string"
|
|
11051
11737
|
},
|
|
11738
|
+
"tags": {
|
|
11739
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
11740
|
+
"type": "array",
|
|
11741
|
+
"items": {
|
|
11742
|
+
"type": "string"
|
|
11743
|
+
}
|
|
11744
|
+
},
|
|
11052
11745
|
"at": {
|
|
11053
11746
|
"type": "object",
|
|
11054
11747
|
"properties": {
|
|
@@ -11314,6 +12007,13 @@
|
|
|
11314
12007
|
"description": {
|
|
11315
12008
|
"type": "string"
|
|
11316
12009
|
},
|
|
12010
|
+
"tags": {
|
|
12011
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
12012
|
+
"type": "array",
|
|
12013
|
+
"items": {
|
|
12014
|
+
"type": "string"
|
|
12015
|
+
}
|
|
12016
|
+
},
|
|
11317
12017
|
"at": {
|
|
11318
12018
|
"type": "object",
|
|
11319
12019
|
"properties": {
|
|
@@ -11514,6 +12214,13 @@
|
|
|
11514
12214
|
"description": {
|
|
11515
12215
|
"type": "string"
|
|
11516
12216
|
},
|
|
12217
|
+
"tags": {
|
|
12218
|
+
"description": "Free labels of this one attachment, such as `demo`: shown as `#demo`, searchable, and normalized by `normalizeTag` (a leading `#` and letter case never matter). Unlike the tags of a check they say nothing about its result",
|
|
12219
|
+
"type": "array",
|
|
12220
|
+
"items": {
|
|
12221
|
+
"type": "string"
|
|
12222
|
+
}
|
|
12223
|
+
},
|
|
11517
12224
|
"at": {
|
|
11518
12225
|
"type": "object",
|
|
11519
12226
|
"properties": {
|
|
@@ -11643,44 +12350,262 @@
|
|
|
11643
12350
|
"additionalProperties": {}
|
|
11644
12351
|
}
|
|
11645
12352
|
},
|
|
11646
|
-
"extensions": {
|
|
11647
|
-
"type": "object",
|
|
11648
|
-
"propertyNames": {
|
|
11649
|
-
"type": "string",
|
|
11650
|
-
"minLength": 1
|
|
11651
|
-
},
|
|
11652
|
-
"additionalProperties": {}
|
|
12353
|
+
"extensions": {
|
|
12354
|
+
"type": "object",
|
|
12355
|
+
"propertyNames": {
|
|
12356
|
+
"type": "string",
|
|
12357
|
+
"minLength": 1
|
|
12358
|
+
},
|
|
12359
|
+
"additionalProperties": {}
|
|
12360
|
+
}
|
|
12361
|
+
},
|
|
12362
|
+
"required": [
|
|
12363
|
+
"index",
|
|
12364
|
+
"status"
|
|
12365
|
+
],
|
|
12366
|
+
"additionalProperties": {}
|
|
12367
|
+
}
|
|
12368
|
+
}
|
|
12369
|
+
},
|
|
12370
|
+
"required": [
|
|
12371
|
+
"id",
|
|
12372
|
+
"title",
|
|
12373
|
+
"status",
|
|
12374
|
+
"detail",
|
|
12375
|
+
"measurements"
|
|
12376
|
+
],
|
|
12377
|
+
"additionalProperties": {}
|
|
12378
|
+
},
|
|
12379
|
+
"run": {
|
|
12380
|
+
"type": "object",
|
|
12381
|
+
"properties": {},
|
|
12382
|
+
"additionalProperties": {},
|
|
12383
|
+
"description": "What the run as a whole carries: its logs, links, labels, annotations and extensions"
|
|
12384
|
+
}
|
|
12385
|
+
},
|
|
12386
|
+
"required": [
|
|
12387
|
+
"layer",
|
|
12388
|
+
"kind",
|
|
12389
|
+
"check",
|
|
12390
|
+
"run"
|
|
12391
|
+
],
|
|
12392
|
+
"additionalProperties": {}
|
|
12393
|
+
},
|
|
12394
|
+
"ArtifactTagEdit": {
|
|
12395
|
+
"type": "object",
|
|
12396
|
+
"properties": {
|
|
12397
|
+
"target": {
|
|
12398
|
+
"type": "object",
|
|
12399
|
+
"properties": {
|
|
12400
|
+
"layer": {
|
|
12401
|
+
"type": "string",
|
|
12402
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
12403
|
+
"description": "The id of the archived layer that holds the check"
|
|
12404
|
+
},
|
|
12405
|
+
"check": {
|
|
12406
|
+
"type": "string",
|
|
12407
|
+
"minLength": 1,
|
|
12408
|
+
"description": "The check's id"
|
|
12409
|
+
},
|
|
12410
|
+
"kind": {
|
|
12411
|
+
"description": "The kind of the part holding the check, when the same id exists in several parts",
|
|
12412
|
+
"type": "string",
|
|
12413
|
+
"minLength": 1
|
|
12414
|
+
},
|
|
12415
|
+
"artifact": {
|
|
12416
|
+
"type": "string",
|
|
12417
|
+
"minLength": 1,
|
|
12418
|
+
"maxLength": 1024,
|
|
12419
|
+
"description": "The attachment: `id:<id>` when it has an id, else `key:<bundleKey>`, else `name:<name>` (see `artifactRef`)"
|
|
12420
|
+
}
|
|
12421
|
+
},
|
|
12422
|
+
"required": [
|
|
12423
|
+
"layer",
|
|
12424
|
+
"check",
|
|
12425
|
+
"artifact"
|
|
12426
|
+
],
|
|
12427
|
+
"additionalProperties": {}
|
|
12428
|
+
},
|
|
12429
|
+
"add": {
|
|
12430
|
+
"description": "Tags to add. `demo` and `#demo` are the same tag",
|
|
12431
|
+
"maxItems": 20,
|
|
12432
|
+
"type": "array",
|
|
12433
|
+
"items": {
|
|
12434
|
+
"type": "string"
|
|
12435
|
+
}
|
|
12436
|
+
},
|
|
12437
|
+
"remove": {
|
|
12438
|
+
"description": "Reviewer tags to remove. Tags the producer wrote are part of the immutable layer and stay",
|
|
12439
|
+
"maxItems": 20,
|
|
12440
|
+
"type": "array",
|
|
12441
|
+
"items": {
|
|
12442
|
+
"type": "string"
|
|
12443
|
+
}
|
|
12444
|
+
}
|
|
12445
|
+
},
|
|
12446
|
+
"required": [
|
|
12447
|
+
"target"
|
|
12448
|
+
],
|
|
12449
|
+
"additionalProperties": {}
|
|
12450
|
+
},
|
|
12451
|
+
"ArtifactTagEntry": {
|
|
12452
|
+
"type": "object",
|
|
12453
|
+
"properties": {
|
|
12454
|
+
"id": {
|
|
12455
|
+
"type": "string",
|
|
12456
|
+
"description": "Unique and time-ordered"
|
|
12457
|
+
},
|
|
12458
|
+
"target": {
|
|
12459
|
+
"type": "object",
|
|
12460
|
+
"properties": {
|
|
12461
|
+
"layer": {
|
|
12462
|
+
"type": "string",
|
|
12463
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
12464
|
+
"description": "The id of the archived layer that holds the check"
|
|
12465
|
+
},
|
|
12466
|
+
"check": {
|
|
12467
|
+
"type": "string",
|
|
12468
|
+
"minLength": 1,
|
|
12469
|
+
"description": "The check's id"
|
|
12470
|
+
},
|
|
12471
|
+
"kind": {
|
|
12472
|
+
"description": "The kind of the part holding the check, when the same id exists in several parts",
|
|
12473
|
+
"type": "string",
|
|
12474
|
+
"minLength": 1
|
|
12475
|
+
},
|
|
12476
|
+
"artifact": {
|
|
12477
|
+
"type": "string",
|
|
12478
|
+
"minLength": 1,
|
|
12479
|
+
"maxLength": 1024,
|
|
12480
|
+
"description": "The attachment: `id:<id>` when it has an id, else `key:<bundleKey>`, else `name:<name>` (see `artifactRef`)"
|
|
12481
|
+
}
|
|
12482
|
+
},
|
|
12483
|
+
"required": [
|
|
12484
|
+
"layer",
|
|
12485
|
+
"check",
|
|
12486
|
+
"artifact"
|
|
12487
|
+
],
|
|
12488
|
+
"additionalProperties": {}
|
|
12489
|
+
},
|
|
12490
|
+
"add": {
|
|
12491
|
+
"type": "array",
|
|
12492
|
+
"items": {
|
|
12493
|
+
"type": "string"
|
|
12494
|
+
},
|
|
12495
|
+
"description": "Normalized tags added"
|
|
12496
|
+
},
|
|
12497
|
+
"remove": {
|
|
12498
|
+
"type": "array",
|
|
12499
|
+
"items": {
|
|
12500
|
+
"type": "string"
|
|
12501
|
+
},
|
|
12502
|
+
"description": "Normalized tags removed"
|
|
12503
|
+
},
|
|
12504
|
+
"by": {
|
|
12505
|
+
"type": "string",
|
|
12506
|
+
"description": "The name of the token that made the edit (never the token)"
|
|
12507
|
+
},
|
|
12508
|
+
"atMs": {
|
|
12509
|
+
"type": "number",
|
|
12510
|
+
"description": "When the server recorded it, epoch milliseconds"
|
|
12511
|
+
}
|
|
12512
|
+
},
|
|
12513
|
+
"required": [
|
|
12514
|
+
"id",
|
|
12515
|
+
"target",
|
|
12516
|
+
"add",
|
|
12517
|
+
"remove",
|
|
12518
|
+
"by",
|
|
12519
|
+
"atMs"
|
|
12520
|
+
],
|
|
12521
|
+
"additionalProperties": {}
|
|
12522
|
+
},
|
|
12523
|
+
"ArtifactTags": {
|
|
12524
|
+
"type": "object",
|
|
12525
|
+
"properties": {
|
|
12526
|
+
"schemaVersion": {
|
|
12527
|
+
"type": "number",
|
|
12528
|
+
"const": 1
|
|
12529
|
+
},
|
|
12530
|
+
"entries": {
|
|
12531
|
+
"type": "array",
|
|
12532
|
+
"items": {
|
|
12533
|
+
"type": "object",
|
|
12534
|
+
"properties": {
|
|
12535
|
+
"id": {
|
|
12536
|
+
"type": "string",
|
|
12537
|
+
"description": "Unique and time-ordered"
|
|
12538
|
+
},
|
|
12539
|
+
"target": {
|
|
12540
|
+
"type": "object",
|
|
12541
|
+
"properties": {
|
|
12542
|
+
"layer": {
|
|
12543
|
+
"type": "string",
|
|
12544
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
12545
|
+
"description": "The id of the archived layer that holds the check"
|
|
12546
|
+
},
|
|
12547
|
+
"check": {
|
|
12548
|
+
"type": "string",
|
|
12549
|
+
"minLength": 1,
|
|
12550
|
+
"description": "The check's id"
|
|
12551
|
+
},
|
|
12552
|
+
"kind": {
|
|
12553
|
+
"description": "The kind of the part holding the check, when the same id exists in several parts",
|
|
12554
|
+
"type": "string",
|
|
12555
|
+
"minLength": 1
|
|
12556
|
+
},
|
|
12557
|
+
"artifact": {
|
|
12558
|
+
"type": "string",
|
|
12559
|
+
"minLength": 1,
|
|
12560
|
+
"maxLength": 1024,
|
|
12561
|
+
"description": "The attachment: `id:<id>` when it has an id, else `key:<bundleKey>`, else `name:<name>` (see `artifactRef`)"
|
|
11653
12562
|
}
|
|
11654
12563
|
},
|
|
11655
12564
|
"required": [
|
|
11656
|
-
"
|
|
11657
|
-
"
|
|
12565
|
+
"layer",
|
|
12566
|
+
"check",
|
|
12567
|
+
"artifact"
|
|
11658
12568
|
],
|
|
11659
12569
|
"additionalProperties": {}
|
|
12570
|
+
},
|
|
12571
|
+
"add": {
|
|
12572
|
+
"type": "array",
|
|
12573
|
+
"items": {
|
|
12574
|
+
"type": "string"
|
|
12575
|
+
},
|
|
12576
|
+
"description": "Normalized tags added"
|
|
12577
|
+
},
|
|
12578
|
+
"remove": {
|
|
12579
|
+
"type": "array",
|
|
12580
|
+
"items": {
|
|
12581
|
+
"type": "string"
|
|
12582
|
+
},
|
|
12583
|
+
"description": "Normalized tags removed"
|
|
12584
|
+
},
|
|
12585
|
+
"by": {
|
|
12586
|
+
"type": "string",
|
|
12587
|
+
"description": "The name of the token that made the edit (never the token)"
|
|
12588
|
+
},
|
|
12589
|
+
"atMs": {
|
|
12590
|
+
"type": "number",
|
|
12591
|
+
"description": "When the server recorded it, epoch milliseconds"
|
|
11660
12592
|
}
|
|
11661
|
-
}
|
|
11662
|
-
|
|
11663
|
-
|
|
11664
|
-
|
|
11665
|
-
|
|
11666
|
-
|
|
11667
|
-
|
|
11668
|
-
|
|
11669
|
-
|
|
11670
|
-
|
|
11671
|
-
|
|
11672
|
-
"run": {
|
|
11673
|
-
"type": "object",
|
|
11674
|
-
"properties": {},
|
|
11675
|
-
"additionalProperties": {},
|
|
11676
|
-
"description": "What the run as a whole carries: its logs, links, labels, annotations and extensions"
|
|
12593
|
+
},
|
|
12594
|
+
"required": [
|
|
12595
|
+
"id",
|
|
12596
|
+
"target",
|
|
12597
|
+
"add",
|
|
12598
|
+
"remove",
|
|
12599
|
+
"by",
|
|
12600
|
+
"atMs"
|
|
12601
|
+
],
|
|
12602
|
+
"additionalProperties": {}
|
|
12603
|
+
}
|
|
11677
12604
|
}
|
|
11678
12605
|
},
|
|
11679
12606
|
"required": [
|
|
11680
|
-
"
|
|
11681
|
-
"
|
|
11682
|
-
"check",
|
|
11683
|
-
"run"
|
|
12607
|
+
"schemaVersion",
|
|
12608
|
+
"entries"
|
|
11684
12609
|
],
|
|
11685
12610
|
"additionalProperties": {}
|
|
11686
12611
|
},
|
|
@@ -12274,6 +13199,27 @@
|
|
|
12274
13199
|
"additionalProperties": {}
|
|
12275
13200
|
}
|
|
12276
13201
|
},
|
|
13202
|
+
"artifactTags": {
|
|
13203
|
+
"type": "array",
|
|
13204
|
+
"items": {
|
|
13205
|
+
"type": "object",
|
|
13206
|
+
"properties": {
|
|
13207
|
+
"value": {
|
|
13208
|
+
"type": "string"
|
|
13209
|
+
},
|
|
13210
|
+
"count": {
|
|
13211
|
+
"type": "integer",
|
|
13212
|
+
"minimum": 0,
|
|
13213
|
+
"maximum": 9007199254740991
|
|
13214
|
+
}
|
|
13215
|
+
},
|
|
13216
|
+
"required": [
|
|
13217
|
+
"value",
|
|
13218
|
+
"count"
|
|
13219
|
+
],
|
|
13220
|
+
"additionalProperties": {}
|
|
13221
|
+
}
|
|
13222
|
+
},
|
|
12277
13223
|
"branches": {
|
|
12278
13224
|
"type": "array",
|
|
12279
13225
|
"items": {
|
|
@@ -12540,6 +13486,13 @@
|
|
|
12540
13486
|
"type": "string"
|
|
12541
13487
|
}
|
|
12542
13488
|
},
|
|
13489
|
+
"artifactTags": {
|
|
13490
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
13491
|
+
"type": "array",
|
|
13492
|
+
"items": {
|
|
13493
|
+
"type": "string"
|
|
13494
|
+
}
|
|
13495
|
+
},
|
|
12543
13496
|
"labels": {
|
|
12544
13497
|
"type": "object",
|
|
12545
13498
|
"propertyNames": {
|
|
@@ -12554,6 +13507,47 @@
|
|
|
12554
13507
|
"items": {
|
|
12555
13508
|
"type": "string"
|
|
12556
13509
|
}
|
|
13510
|
+
},
|
|
13511
|
+
"videos": {
|
|
13512
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
13513
|
+
"type": "array",
|
|
13514
|
+
"items": {
|
|
13515
|
+
"type": "object",
|
|
13516
|
+
"properties": {
|
|
13517
|
+
"name": {
|
|
13518
|
+
"type": "string",
|
|
13519
|
+
"description": "The attachment name"
|
|
13520
|
+
},
|
|
13521
|
+
"owner": {
|
|
13522
|
+
"type": "string",
|
|
13523
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
13524
|
+
},
|
|
13525
|
+
"attempt": {
|
|
13526
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
13527
|
+
"type": "integer",
|
|
13528
|
+
"minimum": 0,
|
|
13529
|
+
"maximum": 9007199254740991
|
|
13530
|
+
},
|
|
13531
|
+
"step": {
|
|
13532
|
+
"description": "The name of the step that holds it",
|
|
13533
|
+
"type": "string"
|
|
13534
|
+
},
|
|
13535
|
+
"recording": {
|
|
13536
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
13537
|
+
"type": "string"
|
|
13538
|
+
},
|
|
13539
|
+
"available": {
|
|
13540
|
+
"type": "boolean",
|
|
13541
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
13542
|
+
}
|
|
13543
|
+
},
|
|
13544
|
+
"required": [
|
|
13545
|
+
"name",
|
|
13546
|
+
"owner",
|
|
13547
|
+
"available"
|
|
13548
|
+
],
|
|
13549
|
+
"additionalProperties": {}
|
|
13550
|
+
}
|
|
12557
13551
|
}
|
|
12558
13552
|
},
|
|
12559
13553
|
"required": [
|
|
@@ -12734,6 +13728,20 @@
|
|
|
12734
13728
|
"type": "string"
|
|
12735
13729
|
}
|
|
12736
13730
|
},
|
|
13731
|
+
"artifactTags": {
|
|
13732
|
+
"description": "Normalized tags of the attachments of its current results, such as `demo` (shown `#demo`). Not inherited from a check or run, unlike `tags`",
|
|
13733
|
+
"type": "array",
|
|
13734
|
+
"items": {
|
|
13735
|
+
"type": "string"
|
|
13736
|
+
}
|
|
13737
|
+
},
|
|
13738
|
+
"inheritedArtifactTags": {
|
|
13739
|
+
"description": "Normalized tags its attachments inherit from their check and run, apart from `artifactTags`: what `?artifactTag=…&inherited=1` also matches",
|
|
13740
|
+
"type": "array",
|
|
13741
|
+
"items": {
|
|
13742
|
+
"type": "string"
|
|
13743
|
+
}
|
|
13744
|
+
},
|
|
12737
13745
|
"labels": {
|
|
12738
13746
|
"type": "object",
|
|
12739
13747
|
"propertyNames": {
|
|
@@ -13412,6 +14420,13 @@
|
|
|
13412
14420
|
"type": "string"
|
|
13413
14421
|
}
|
|
13414
14422
|
},
|
|
14423
|
+
"artifactTags": {
|
|
14424
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
14425
|
+
"type": "array",
|
|
14426
|
+
"items": {
|
|
14427
|
+
"type": "string"
|
|
14428
|
+
}
|
|
14429
|
+
},
|
|
13415
14430
|
"labels": {
|
|
13416
14431
|
"type": "object",
|
|
13417
14432
|
"propertyNames": {
|
|
@@ -13426,6 +14441,47 @@
|
|
|
13426
14441
|
"items": {
|
|
13427
14442
|
"type": "string"
|
|
13428
14443
|
}
|
|
14444
|
+
},
|
|
14445
|
+
"videos": {
|
|
14446
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
14447
|
+
"type": "array",
|
|
14448
|
+
"items": {
|
|
14449
|
+
"type": "object",
|
|
14450
|
+
"properties": {
|
|
14451
|
+
"name": {
|
|
14452
|
+
"type": "string",
|
|
14453
|
+
"description": "The attachment name"
|
|
14454
|
+
},
|
|
14455
|
+
"owner": {
|
|
14456
|
+
"type": "string",
|
|
14457
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
14458
|
+
},
|
|
14459
|
+
"attempt": {
|
|
14460
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
14461
|
+
"type": "integer",
|
|
14462
|
+
"minimum": 0,
|
|
14463
|
+
"maximum": 9007199254740991
|
|
14464
|
+
},
|
|
14465
|
+
"step": {
|
|
14466
|
+
"description": "The name of the step that holds it",
|
|
14467
|
+
"type": "string"
|
|
14468
|
+
},
|
|
14469
|
+
"recording": {
|
|
14470
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
14471
|
+
"type": "string"
|
|
14472
|
+
},
|
|
14473
|
+
"available": {
|
|
14474
|
+
"type": "boolean",
|
|
14475
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
14476
|
+
}
|
|
14477
|
+
},
|
|
14478
|
+
"required": [
|
|
14479
|
+
"name",
|
|
14480
|
+
"owner",
|
|
14481
|
+
"available"
|
|
14482
|
+
],
|
|
14483
|
+
"additionalProperties": {}
|
|
14484
|
+
}
|
|
13429
14485
|
}
|
|
13430
14486
|
},
|
|
13431
14487
|
"required": [
|
|
@@ -13606,6 +14662,20 @@
|
|
|
13606
14662
|
"type": "string"
|
|
13607
14663
|
}
|
|
13608
14664
|
},
|
|
14665
|
+
"artifactTags": {
|
|
14666
|
+
"description": "Normalized tags of the attachments of its current results, such as `demo` (shown `#demo`). Not inherited from a check or run, unlike `tags`",
|
|
14667
|
+
"type": "array",
|
|
14668
|
+
"items": {
|
|
14669
|
+
"type": "string"
|
|
14670
|
+
}
|
|
14671
|
+
},
|
|
14672
|
+
"inheritedArtifactTags": {
|
|
14673
|
+
"description": "Normalized tags its attachments inherit from their check and run, apart from `artifactTags`: what `?artifactTag=…&inherited=1` also matches",
|
|
14674
|
+
"type": "array",
|
|
14675
|
+
"items": {
|
|
14676
|
+
"type": "string"
|
|
14677
|
+
}
|
|
14678
|
+
},
|
|
13609
14679
|
"labels": {
|
|
13610
14680
|
"type": "object",
|
|
13611
14681
|
"propertyNames": {
|
|
@@ -13788,6 +14858,13 @@
|
|
|
13788
14858
|
"type": "string"
|
|
13789
14859
|
}
|
|
13790
14860
|
},
|
|
14861
|
+
"artifactTags": {
|
|
14862
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
14863
|
+
"type": "array",
|
|
14864
|
+
"items": {
|
|
14865
|
+
"type": "string"
|
|
14866
|
+
}
|
|
14867
|
+
},
|
|
13791
14868
|
"labels": {
|
|
13792
14869
|
"type": "object",
|
|
13793
14870
|
"propertyNames": {
|
|
@@ -13802,6 +14879,47 @@
|
|
|
13802
14879
|
"items": {
|
|
13803
14880
|
"type": "string"
|
|
13804
14881
|
}
|
|
14882
|
+
},
|
|
14883
|
+
"videos": {
|
|
14884
|
+
"description": "Its references to videos and who holds each. Absent when it has none, and in reports written before this was recorded",
|
|
14885
|
+
"type": "array",
|
|
14886
|
+
"items": {
|
|
14887
|
+
"type": "object",
|
|
14888
|
+
"properties": {
|
|
14889
|
+
"name": {
|
|
14890
|
+
"type": "string",
|
|
14891
|
+
"description": "The attachment name"
|
|
14892
|
+
},
|
|
14893
|
+
"owner": {
|
|
14894
|
+
"type": "string",
|
|
14895
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
14896
|
+
},
|
|
14897
|
+
"attempt": {
|
|
14898
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
14899
|
+
"type": "integer",
|
|
14900
|
+
"minimum": 0,
|
|
14901
|
+
"maximum": 9007199254740991
|
|
14902
|
+
},
|
|
14903
|
+
"step": {
|
|
14904
|
+
"description": "The name of the step that holds it",
|
|
14905
|
+
"type": "string"
|
|
14906
|
+
},
|
|
14907
|
+
"recording": {
|
|
14908
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
14909
|
+
"type": "string"
|
|
14910
|
+
},
|
|
14911
|
+
"available": {
|
|
14912
|
+
"type": "boolean",
|
|
14913
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
14914
|
+
}
|
|
14915
|
+
},
|
|
14916
|
+
"required": [
|
|
14917
|
+
"name",
|
|
14918
|
+
"owner",
|
|
14919
|
+
"available"
|
|
14920
|
+
],
|
|
14921
|
+
"additionalProperties": {}
|
|
14922
|
+
}
|
|
13805
14923
|
}
|
|
13806
14924
|
},
|
|
13807
14925
|
"required": [
|
|
@@ -13858,7 +14976,8 @@
|
|
|
13858
14976
|
"total": {
|
|
13859
14977
|
"type": "integer",
|
|
13860
14978
|
"minimum": 0,
|
|
13861
|
-
"maximum": 9007199254740991
|
|
14979
|
+
"maximum": 9007199254740991,
|
|
14980
|
+
"description": "Runs that matched, before `limit`"
|
|
13862
14981
|
},
|
|
13863
14982
|
"runs": {
|
|
13864
14983
|
"type": "array",
|
|
@@ -13992,6 +15111,36 @@
|
|
|
13992
15111
|
],
|
|
13993
15112
|
"additionalProperties": {}
|
|
13994
15113
|
}
|
|
15114
|
+
},
|
|
15115
|
+
"videos": {
|
|
15116
|
+
"description": "Its videos, from its layers and the last result of each test. Absent when it has none or the report carries no video information",
|
|
15117
|
+
"type": "object",
|
|
15118
|
+
"properties": {
|
|
15119
|
+
"references": {
|
|
15120
|
+
"type": "integer",
|
|
15121
|
+
"minimum": 0,
|
|
15122
|
+
"maximum": 9007199254740991,
|
|
15123
|
+
"description": "Every reference to a video; identical bytes referenced twice count twice"
|
|
15124
|
+
},
|
|
15125
|
+
"recordings": {
|
|
15126
|
+
"type": "integer",
|
|
15127
|
+
"minimum": 0,
|
|
15128
|
+
"maximum": 9007199254740991,
|
|
15129
|
+
"description": "Distinct playable recordings"
|
|
15130
|
+
},
|
|
15131
|
+
"unavailable": {
|
|
15132
|
+
"type": "integer",
|
|
15133
|
+
"minimum": 0,
|
|
15134
|
+
"maximum": 9007199254740991,
|
|
15135
|
+
"description": "References that name no bytes"
|
|
15136
|
+
}
|
|
15137
|
+
},
|
|
15138
|
+
"required": [
|
|
15139
|
+
"references",
|
|
15140
|
+
"recordings",
|
|
15141
|
+
"unavailable"
|
|
15142
|
+
],
|
|
15143
|
+
"additionalProperties": {}
|
|
13995
15144
|
}
|
|
13996
15145
|
},
|
|
13997
15146
|
"required": [
|
|
@@ -14012,6 +15161,12 @@
|
|
|
14012
15161
|
],
|
|
14013
15162
|
"additionalProperties": {}
|
|
14014
15163
|
}
|
|
15164
|
+
},
|
|
15165
|
+
"withVideo": {
|
|
15166
|
+
"description": "How many of all runs (before `video` and `limit`) have a playable video recording",
|
|
15167
|
+
"type": "integer",
|
|
15168
|
+
"minimum": 0,
|
|
15169
|
+
"maximum": 9007199254740991
|
|
14015
15170
|
}
|
|
14016
15171
|
},
|
|
14017
15172
|
"required": [
|
|
@@ -14162,6 +15317,36 @@
|
|
|
14162
15317
|
],
|
|
14163
15318
|
"additionalProperties": {}
|
|
14164
15319
|
}
|
|
15320
|
+
},
|
|
15321
|
+
"videos": {
|
|
15322
|
+
"description": "Its videos, from its layers and the last result of each test. Absent when it has none or the report carries no video information",
|
|
15323
|
+
"type": "object",
|
|
15324
|
+
"properties": {
|
|
15325
|
+
"references": {
|
|
15326
|
+
"type": "integer",
|
|
15327
|
+
"minimum": 0,
|
|
15328
|
+
"maximum": 9007199254740991,
|
|
15329
|
+
"description": "Every reference to a video; identical bytes referenced twice count twice"
|
|
15330
|
+
},
|
|
15331
|
+
"recordings": {
|
|
15332
|
+
"type": "integer",
|
|
15333
|
+
"minimum": 0,
|
|
15334
|
+
"maximum": 9007199254740991,
|
|
15335
|
+
"description": "Distinct playable recordings"
|
|
15336
|
+
},
|
|
15337
|
+
"unavailable": {
|
|
15338
|
+
"type": "integer",
|
|
15339
|
+
"minimum": 0,
|
|
15340
|
+
"maximum": 9007199254740991,
|
|
15341
|
+
"description": "References that name no bytes"
|
|
15342
|
+
}
|
|
15343
|
+
},
|
|
15344
|
+
"required": [
|
|
15345
|
+
"references",
|
|
15346
|
+
"recordings",
|
|
15347
|
+
"unavailable"
|
|
15348
|
+
],
|
|
15349
|
+
"additionalProperties": {}
|
|
14165
15350
|
}
|
|
14166
15351
|
},
|
|
14167
15352
|
"required": [
|
|
@@ -14234,6 +15419,47 @@
|
|
|
14234
15419
|
},
|
|
14235
15420
|
"detail": {
|
|
14236
15421
|
"type": "string"
|
|
15422
|
+
},
|
|
15423
|
+
"videos": {
|
|
15424
|
+
"description": "Every video its evidence references, with who holds it",
|
|
15425
|
+
"type": "array",
|
|
15426
|
+
"items": {
|
|
15427
|
+
"type": "object",
|
|
15428
|
+
"properties": {
|
|
15429
|
+
"name": {
|
|
15430
|
+
"type": "string",
|
|
15431
|
+
"description": "The attachment name"
|
|
15432
|
+
},
|
|
15433
|
+
"owner": {
|
|
15434
|
+
"type": "string",
|
|
15435
|
+
"description": "Who holds it: `layer`, `check`, `attempt` or `step`. An open vocabulary: treat an unknown owner as a check"
|
|
15436
|
+
},
|
|
15437
|
+
"attempt": {
|
|
15438
|
+
"description": "The retry attempt that holds it, or that holds the step that does",
|
|
15439
|
+
"type": "integer",
|
|
15440
|
+
"minimum": 0,
|
|
15441
|
+
"maximum": 9007199254740991
|
|
15442
|
+
},
|
|
15443
|
+
"step": {
|
|
15444
|
+
"description": "The name of the step that holds it",
|
|
15445
|
+
"type": "string"
|
|
15446
|
+
},
|
|
15447
|
+
"recording": {
|
|
15448
|
+
"description": "What identifies the bytes; references with the same value are one recording. Absent when it cannot be played",
|
|
15449
|
+
"type": "string"
|
|
15450
|
+
},
|
|
15451
|
+
"available": {
|
|
15452
|
+
"type": "boolean",
|
|
15453
|
+
"description": "False when the reference names no bytes (no bundle key, address or inline text)"
|
|
15454
|
+
}
|
|
15455
|
+
},
|
|
15456
|
+
"required": [
|
|
15457
|
+
"name",
|
|
15458
|
+
"owner",
|
|
15459
|
+
"available"
|
|
15460
|
+
],
|
|
15461
|
+
"additionalProperties": {}
|
|
15462
|
+
}
|
|
14237
15463
|
}
|
|
14238
15464
|
},
|
|
14239
15465
|
"required": [
|