@crvouga/atlas 0.13.0 → 0.15.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/playwright-reporter/src/index.d.ts +11 -0
- package/dist/playwright-reporter/src/index.js +4 -2
- 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 +1 -1
- package/dist/reports/src/evidence-detail.js +6 -2
- package/dist/reports/src/evidence-types.d.ts +5 -0
- package/dist/reports/src/layer-merge.d.ts +1 -1
- package/dist/reports/src/layer-merge.js +3 -2
- package/dist/reports/src/layer-types.d.ts +3 -0
- package/dist/reports/src/publish-checks.js +1 -0
- package/dist/reports/src/report-cli.d.ts +1 -1
- package/dist/reports/src/report-cli.js +30 -2
- package/dist/reports/src/reporter.d.ts +1 -1
- 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 +31 -27
- package/dist/reports/src/test-catalog.js +73 -12
- package/dist/schema/src/api.d.ts +128 -1
- package/dist/schema/src/api.js +38 -4
- package/dist/schema/src/layer.d.ts +59 -0
- package/dist/schema/src/layer.js +28 -1
- package/dist/server/src/app.js +32 -1
- package/dist/server/src/openapi.d.ts +1 -1
- package/dist/server/src/openapi.js +18 -2
- package/docs/extending.md +3 -0
- package/docs/integrating.md +8 -0
- package/docs/reference/cli.md +7 -0
- package/docs/reference/http-api.md +48 -0
- package/docs/reference/playwright-reporter.md +6 -6
- package/docs/reference/reports.md +235 -8
- package/docs/reference/schema.md +52 -1
- package/docs/report-contract.md +1 -0
- package/docs/rich-evidence.md +28 -0
- package/docs/server.md +24 -0
- package/llms-full.txt +119 -0
- package/package.json +1 -1
- package/packages/schema/schemas/check-detail.schema.json +28 -0
- package/packages/schema/schemas/effective-delta.schema.json +44 -0
- package/packages/schema/schemas/effective-evidence.schema.json +44 -0
- package/packages/schema/schemas/evidence-page.schema.json +37 -0
- package/packages/schema/schemas/layer-rows.schema.json +7 -0
- package/packages/schema/schemas/layer.schema.json +100 -0
- package/packages/schema/schemas/publish-checks.schema.json +65 -0
- package/packages/schema/schemas/report-run.schema.json +17 -1
- package/packages/schema/schemas/report-runs.schema.json +17 -1
- package/packages/schema/schemas/test-catalog.schema.json +42 -0
- package/packages/schema/schemas/test-history.schema.json +28 -0
- package/packages/server/openapi.json +886 -3
- 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 +23 -4
- package/packages/visualizer/src/explorer/parts.tsx +2 -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",
|
|
@@ -7451,6 +7789,13 @@
|
|
|
7451
7789
|
"type": "string"
|
|
7452
7790
|
}
|
|
7453
7791
|
},
|
|
7792
|
+
"artifactTags": {
|
|
7793
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
7794
|
+
"type": "array",
|
|
7795
|
+
"items": {
|
|
7796
|
+
"type": "string"
|
|
7797
|
+
}
|
|
7798
|
+
},
|
|
7454
7799
|
"labels": {
|
|
7455
7800
|
"type": "object",
|
|
7456
7801
|
"propertyNames": {
|
|
@@ -7575,6 +7920,36 @@
|
|
|
7575
7920
|
"modified"
|
|
7576
7921
|
]
|
|
7577
7922
|
},
|
|
7923
|
+
"run": {
|
|
7924
|
+
"description": "The execution the producer named for it (one local or manual invocation). Grouping and display only; never part of the slot",
|
|
7925
|
+
"type": "object",
|
|
7926
|
+
"properties": {
|
|
7927
|
+
"id": {
|
|
7928
|
+
"type": "string",
|
|
7929
|
+
"minLength": 1,
|
|
7930
|
+
"maxLength": 256,
|
|
7931
|
+
"description": "The execution's identity within a project, chosen by the producer: a UUID, a timestamped name. Layers with the same id are one run; it never changes after it is recorded"
|
|
7932
|
+
},
|
|
7933
|
+
"title": {
|
|
7934
|
+
"description": "A human name for the run. Presentation only: it is not part of the identity and does not hide the commit or `freshness`",
|
|
7935
|
+
"type": "string"
|
|
7936
|
+
},
|
|
7937
|
+
"startedAtMs": {
|
|
7938
|
+
"description": "When the execution started, epoch milliseconds",
|
|
7939
|
+
"type": "number",
|
|
7940
|
+
"minimum": 0
|
|
7941
|
+
},
|
|
7942
|
+
"endedAtMs": {
|
|
7943
|
+
"description": "When the execution ended, epoch milliseconds",
|
|
7944
|
+
"type": "number",
|
|
7945
|
+
"minimum": 0
|
|
7946
|
+
}
|
|
7947
|
+
},
|
|
7948
|
+
"required": [
|
|
7949
|
+
"id"
|
|
7950
|
+
],
|
|
7951
|
+
"additionalProperties": {}
|
|
7952
|
+
},
|
|
7578
7953
|
"recording": {
|
|
7579
7954
|
"anyOf": [
|
|
7580
7955
|
{},
|
|
@@ -7647,6 +8022,13 @@
|
|
|
7647
8022
|
"type": "string"
|
|
7648
8023
|
}
|
|
7649
8024
|
},
|
|
8025
|
+
"artifactTags": {
|
|
8026
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
8027
|
+
"type": "array",
|
|
8028
|
+
"items": {
|
|
8029
|
+
"type": "string"
|
|
8030
|
+
}
|
|
8031
|
+
},
|
|
7650
8032
|
"labels": {
|
|
7651
8033
|
"type": "object",
|
|
7652
8034
|
"propertyNames": {
|
|
@@ -7894,6 +8276,13 @@
|
|
|
7894
8276
|
"type": "string"
|
|
7895
8277
|
}
|
|
7896
8278
|
},
|
|
8279
|
+
"artifactTags": {
|
|
8280
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
8281
|
+
"type": "array",
|
|
8282
|
+
"items": {
|
|
8283
|
+
"type": "string"
|
|
8284
|
+
}
|
|
8285
|
+
},
|
|
7897
8286
|
"labels": {
|
|
7898
8287
|
"type": "object",
|
|
7899
8288
|
"propertyNames": {
|
|
@@ -8018,6 +8407,36 @@
|
|
|
8018
8407
|
"modified"
|
|
8019
8408
|
]
|
|
8020
8409
|
},
|
|
8410
|
+
"run": {
|
|
8411
|
+
"description": "The execution the producer named for it (one local or manual invocation). Grouping and display only; never part of the slot",
|
|
8412
|
+
"type": "object",
|
|
8413
|
+
"properties": {
|
|
8414
|
+
"id": {
|
|
8415
|
+
"type": "string",
|
|
8416
|
+
"minLength": 1,
|
|
8417
|
+
"maxLength": 256,
|
|
8418
|
+
"description": "The execution's identity within a project, chosen by the producer: a UUID, a timestamped name. Layers with the same id are one run; it never changes after it is recorded"
|
|
8419
|
+
},
|
|
8420
|
+
"title": {
|
|
8421
|
+
"description": "A human name for the run. Presentation only: it is not part of the identity and does not hide the commit or `freshness`",
|
|
8422
|
+
"type": "string"
|
|
8423
|
+
},
|
|
8424
|
+
"startedAtMs": {
|
|
8425
|
+
"description": "When the execution started, epoch milliseconds",
|
|
8426
|
+
"type": "number",
|
|
8427
|
+
"minimum": 0
|
|
8428
|
+
},
|
|
8429
|
+
"endedAtMs": {
|
|
8430
|
+
"description": "When the execution ended, epoch milliseconds",
|
|
8431
|
+
"type": "number",
|
|
8432
|
+
"minimum": 0
|
|
8433
|
+
}
|
|
8434
|
+
},
|
|
8435
|
+
"required": [
|
|
8436
|
+
"id"
|
|
8437
|
+
],
|
|
8438
|
+
"additionalProperties": {}
|
|
8439
|
+
},
|
|
8021
8440
|
"recording": {
|
|
8022
8441
|
"anyOf": [
|
|
8023
8442
|
{},
|
|
@@ -8090,6 +8509,13 @@
|
|
|
8090
8509
|
"type": "string"
|
|
8091
8510
|
}
|
|
8092
8511
|
},
|
|
8512
|
+
"artifactTags": {
|
|
8513
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
8514
|
+
"type": "array",
|
|
8515
|
+
"items": {
|
|
8516
|
+
"type": "string"
|
|
8517
|
+
}
|
|
8518
|
+
},
|
|
8093
8519
|
"labels": {
|
|
8094
8520
|
"type": "object",
|
|
8095
8521
|
"propertyNames": {
|
|
@@ -8742,6 +9168,13 @@
|
|
|
8742
9168
|
"description": {
|
|
8743
9169
|
"type": "string"
|
|
8744
9170
|
},
|
|
9171
|
+
"tags": {
|
|
9172
|
+
"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",
|
|
9173
|
+
"type": "array",
|
|
9174
|
+
"items": {
|
|
9175
|
+
"type": "string"
|
|
9176
|
+
}
|
|
9177
|
+
},
|
|
8745
9178
|
"at": {
|
|
8746
9179
|
"type": "object",
|
|
8747
9180
|
"properties": {
|
|
@@ -8979,6 +9412,13 @@
|
|
|
8979
9412
|
"description": {
|
|
8980
9413
|
"type": "string"
|
|
8981
9414
|
},
|
|
9415
|
+
"tags": {
|
|
9416
|
+
"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",
|
|
9417
|
+
"type": "array",
|
|
9418
|
+
"items": {
|
|
9419
|
+
"type": "string"
|
|
9420
|
+
}
|
|
9421
|
+
},
|
|
8982
9422
|
"at": {
|
|
8983
9423
|
"type": "object",
|
|
8984
9424
|
"properties": {
|
|
@@ -9253,6 +9693,13 @@
|
|
|
9253
9693
|
"description": {
|
|
9254
9694
|
"type": "string"
|
|
9255
9695
|
},
|
|
9696
|
+
"tags": {
|
|
9697
|
+
"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",
|
|
9698
|
+
"type": "array",
|
|
9699
|
+
"items": {
|
|
9700
|
+
"type": "string"
|
|
9701
|
+
}
|
|
9702
|
+
},
|
|
9256
9703
|
"at": {
|
|
9257
9704
|
"type": "object",
|
|
9258
9705
|
"properties": {
|
|
@@ -9463,6 +9910,13 @@
|
|
|
9463
9910
|
"description": {
|
|
9464
9911
|
"type": "string"
|
|
9465
9912
|
},
|
|
9913
|
+
"tags": {
|
|
9914
|
+
"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",
|
|
9915
|
+
"type": "array",
|
|
9916
|
+
"items": {
|
|
9917
|
+
"type": "string"
|
|
9918
|
+
}
|
|
9919
|
+
},
|
|
9466
9920
|
"at": {
|
|
9467
9921
|
"type": "object",
|
|
9468
9922
|
"properties": {
|
|
@@ -9683,6 +10137,36 @@
|
|
|
9683
10137
|
"modified"
|
|
9684
10138
|
]
|
|
9685
10139
|
},
|
|
10140
|
+
"run": {
|
|
10141
|
+
"description": "Name the execution these checks belong to, so repeated local runs at one commit stay separate runs and shards of one execution stay together",
|
|
10142
|
+
"type": "object",
|
|
10143
|
+
"properties": {
|
|
10144
|
+
"id": {
|
|
10145
|
+
"type": "string",
|
|
10146
|
+
"minLength": 1,
|
|
10147
|
+
"maxLength": 256,
|
|
10148
|
+
"description": "The execution's identity within a project, chosen by the producer: a UUID, a timestamped name. Layers with the same id are one run; it never changes after it is recorded"
|
|
10149
|
+
},
|
|
10150
|
+
"title": {
|
|
10151
|
+
"description": "A human name for the run. Presentation only: it is not part of the identity and does not hide the commit or `freshness`",
|
|
10152
|
+
"type": "string"
|
|
10153
|
+
},
|
|
10154
|
+
"startedAtMs": {
|
|
10155
|
+
"description": "When the execution started, epoch milliseconds",
|
|
10156
|
+
"type": "number",
|
|
10157
|
+
"minimum": 0
|
|
10158
|
+
},
|
|
10159
|
+
"endedAtMs": {
|
|
10160
|
+
"description": "When the execution ended, epoch milliseconds",
|
|
10161
|
+
"type": "number",
|
|
10162
|
+
"minimum": 0
|
|
10163
|
+
}
|
|
10164
|
+
},
|
|
10165
|
+
"required": [
|
|
10166
|
+
"id"
|
|
10167
|
+
],
|
|
10168
|
+
"additionalProperties": {}
|
|
10169
|
+
},
|
|
9686
10170
|
"specs": {
|
|
9687
10171
|
"default": [],
|
|
9688
10172
|
"type": "array",
|
|
@@ -9813,6 +10297,13 @@
|
|
|
9813
10297
|
"description": {
|
|
9814
10298
|
"type": "string"
|
|
9815
10299
|
},
|
|
10300
|
+
"tags": {
|
|
10301
|
+
"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",
|
|
10302
|
+
"type": "array",
|
|
10303
|
+
"items": {
|
|
10304
|
+
"type": "string"
|
|
10305
|
+
}
|
|
10306
|
+
},
|
|
9816
10307
|
"at": {
|
|
9817
10308
|
"type": "object",
|
|
9818
10309
|
"properties": {
|
|
@@ -10171,6 +10662,36 @@
|
|
|
10171
10662
|
"modified"
|
|
10172
10663
|
]
|
|
10173
10664
|
},
|
|
10665
|
+
"run": {
|
|
10666
|
+
"description": "The execution the producer named for it (one local or manual invocation). Grouping and display only; never part of the slot",
|
|
10667
|
+
"type": "object",
|
|
10668
|
+
"properties": {
|
|
10669
|
+
"id": {
|
|
10670
|
+
"type": "string",
|
|
10671
|
+
"minLength": 1,
|
|
10672
|
+
"maxLength": 256,
|
|
10673
|
+
"description": "The execution's identity within a project, chosen by the producer: a UUID, a timestamped name. Layers with the same id are one run; it never changes after it is recorded"
|
|
10674
|
+
},
|
|
10675
|
+
"title": {
|
|
10676
|
+
"description": "A human name for the run. Presentation only: it is not part of the identity and does not hide the commit or `freshness`",
|
|
10677
|
+
"type": "string"
|
|
10678
|
+
},
|
|
10679
|
+
"startedAtMs": {
|
|
10680
|
+
"description": "When the execution started, epoch milliseconds",
|
|
10681
|
+
"type": "number",
|
|
10682
|
+
"minimum": 0
|
|
10683
|
+
},
|
|
10684
|
+
"endedAtMs": {
|
|
10685
|
+
"description": "When the execution ended, epoch milliseconds",
|
|
10686
|
+
"type": "number",
|
|
10687
|
+
"minimum": 0
|
|
10688
|
+
}
|
|
10689
|
+
},
|
|
10690
|
+
"required": [
|
|
10691
|
+
"id"
|
|
10692
|
+
],
|
|
10693
|
+
"additionalProperties": {}
|
|
10694
|
+
},
|
|
10174
10695
|
"recording": {
|
|
10175
10696
|
"anyOf": [
|
|
10176
10697
|
{},
|
|
@@ -10243,6 +10764,13 @@
|
|
|
10243
10764
|
"type": "string"
|
|
10244
10765
|
}
|
|
10245
10766
|
},
|
|
10767
|
+
"artifactTags": {
|
|
10768
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
10769
|
+
"type": "array",
|
|
10770
|
+
"items": {
|
|
10771
|
+
"type": "string"
|
|
10772
|
+
}
|
|
10773
|
+
},
|
|
10246
10774
|
"labels": {
|
|
10247
10775
|
"type": "object",
|
|
10248
10776
|
"propertyNames": {
|
|
@@ -10470,6 +10998,13 @@
|
|
|
10470
10998
|
"type": "string"
|
|
10471
10999
|
}
|
|
10472
11000
|
},
|
|
11001
|
+
"artifactTags": {
|
|
11002
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
11003
|
+
"type": "array",
|
|
11004
|
+
"items": {
|
|
11005
|
+
"type": "string"
|
|
11006
|
+
}
|
|
11007
|
+
},
|
|
10473
11008
|
"labels": {
|
|
10474
11009
|
"type": "object",
|
|
10475
11010
|
"propertyNames": {
|
|
@@ -10701,6 +11236,13 @@
|
|
|
10701
11236
|
"description": {
|
|
10702
11237
|
"type": "string"
|
|
10703
11238
|
},
|
|
11239
|
+
"tags": {
|
|
11240
|
+
"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",
|
|
11241
|
+
"type": "array",
|
|
11242
|
+
"items": {
|
|
11243
|
+
"type": "string"
|
|
11244
|
+
}
|
|
11245
|
+
},
|
|
10704
11246
|
"at": {
|
|
10705
11247
|
"type": "object",
|
|
10706
11248
|
"properties": {
|
|
@@ -10929,6 +11471,13 @@
|
|
|
10929
11471
|
"description": {
|
|
10930
11472
|
"type": "string"
|
|
10931
11473
|
},
|
|
11474
|
+
"tags": {
|
|
11475
|
+
"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",
|
|
11476
|
+
"type": "array",
|
|
11477
|
+
"items": {
|
|
11478
|
+
"type": "string"
|
|
11479
|
+
}
|
|
11480
|
+
},
|
|
10932
11481
|
"at": {
|
|
10933
11482
|
"type": "object",
|
|
10934
11483
|
"properties": {
|
|
@@ -11194,6 +11743,13 @@
|
|
|
11194
11743
|
"description": {
|
|
11195
11744
|
"type": "string"
|
|
11196
11745
|
},
|
|
11746
|
+
"tags": {
|
|
11747
|
+
"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",
|
|
11748
|
+
"type": "array",
|
|
11749
|
+
"items": {
|
|
11750
|
+
"type": "string"
|
|
11751
|
+
}
|
|
11752
|
+
},
|
|
11197
11753
|
"at": {
|
|
11198
11754
|
"type": "object",
|
|
11199
11755
|
"properties": {
|
|
@@ -11394,6 +11950,13 @@
|
|
|
11394
11950
|
"description": {
|
|
11395
11951
|
"type": "string"
|
|
11396
11952
|
},
|
|
11953
|
+
"tags": {
|
|
11954
|
+
"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",
|
|
11955
|
+
"type": "array",
|
|
11956
|
+
"items": {
|
|
11957
|
+
"type": "string"
|
|
11958
|
+
}
|
|
11959
|
+
},
|
|
11397
11960
|
"at": {
|
|
11398
11961
|
"type": "object",
|
|
11399
11962
|
"properties": {
|
|
@@ -11564,6 +12127,224 @@
|
|
|
11564
12127
|
],
|
|
11565
12128
|
"additionalProperties": {}
|
|
11566
12129
|
},
|
|
12130
|
+
"ArtifactTagEdit": {
|
|
12131
|
+
"type": "object",
|
|
12132
|
+
"properties": {
|
|
12133
|
+
"target": {
|
|
12134
|
+
"type": "object",
|
|
12135
|
+
"properties": {
|
|
12136
|
+
"layer": {
|
|
12137
|
+
"type": "string",
|
|
12138
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
12139
|
+
"description": "The id of the archived layer that holds the check"
|
|
12140
|
+
},
|
|
12141
|
+
"check": {
|
|
12142
|
+
"type": "string",
|
|
12143
|
+
"minLength": 1,
|
|
12144
|
+
"description": "The check's id"
|
|
12145
|
+
},
|
|
12146
|
+
"kind": {
|
|
12147
|
+
"description": "The kind of the part holding the check, when the same id exists in several parts",
|
|
12148
|
+
"type": "string",
|
|
12149
|
+
"minLength": 1
|
|
12150
|
+
},
|
|
12151
|
+
"artifact": {
|
|
12152
|
+
"type": "string",
|
|
12153
|
+
"minLength": 1,
|
|
12154
|
+
"maxLength": 1024,
|
|
12155
|
+
"description": "The attachment: `id:<id>` when it has an id, else `key:<bundleKey>`, else `name:<name>` (see `artifactRef`)"
|
|
12156
|
+
}
|
|
12157
|
+
},
|
|
12158
|
+
"required": [
|
|
12159
|
+
"layer",
|
|
12160
|
+
"check",
|
|
12161
|
+
"artifact"
|
|
12162
|
+
],
|
|
12163
|
+
"additionalProperties": {}
|
|
12164
|
+
},
|
|
12165
|
+
"add": {
|
|
12166
|
+
"description": "Tags to add. `demo` and `#demo` are the same tag",
|
|
12167
|
+
"maxItems": 20,
|
|
12168
|
+
"type": "array",
|
|
12169
|
+
"items": {
|
|
12170
|
+
"type": "string"
|
|
12171
|
+
}
|
|
12172
|
+
},
|
|
12173
|
+
"remove": {
|
|
12174
|
+
"description": "Reviewer tags to remove. Tags the producer wrote are part of the immutable layer and stay",
|
|
12175
|
+
"maxItems": 20,
|
|
12176
|
+
"type": "array",
|
|
12177
|
+
"items": {
|
|
12178
|
+
"type": "string"
|
|
12179
|
+
}
|
|
12180
|
+
}
|
|
12181
|
+
},
|
|
12182
|
+
"required": [
|
|
12183
|
+
"target"
|
|
12184
|
+
],
|
|
12185
|
+
"additionalProperties": {}
|
|
12186
|
+
},
|
|
12187
|
+
"ArtifactTagEntry": {
|
|
12188
|
+
"type": "object",
|
|
12189
|
+
"properties": {
|
|
12190
|
+
"id": {
|
|
12191
|
+
"type": "string",
|
|
12192
|
+
"description": "Unique and time-ordered"
|
|
12193
|
+
},
|
|
12194
|
+
"target": {
|
|
12195
|
+
"type": "object",
|
|
12196
|
+
"properties": {
|
|
12197
|
+
"layer": {
|
|
12198
|
+
"type": "string",
|
|
12199
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
12200
|
+
"description": "The id of the archived layer that holds the check"
|
|
12201
|
+
},
|
|
12202
|
+
"check": {
|
|
12203
|
+
"type": "string",
|
|
12204
|
+
"minLength": 1,
|
|
12205
|
+
"description": "The check's id"
|
|
12206
|
+
},
|
|
12207
|
+
"kind": {
|
|
12208
|
+
"description": "The kind of the part holding the check, when the same id exists in several parts",
|
|
12209
|
+
"type": "string",
|
|
12210
|
+
"minLength": 1
|
|
12211
|
+
},
|
|
12212
|
+
"artifact": {
|
|
12213
|
+
"type": "string",
|
|
12214
|
+
"minLength": 1,
|
|
12215
|
+
"maxLength": 1024,
|
|
12216
|
+
"description": "The attachment: `id:<id>` when it has an id, else `key:<bundleKey>`, else `name:<name>` (see `artifactRef`)"
|
|
12217
|
+
}
|
|
12218
|
+
},
|
|
12219
|
+
"required": [
|
|
12220
|
+
"layer",
|
|
12221
|
+
"check",
|
|
12222
|
+
"artifact"
|
|
12223
|
+
],
|
|
12224
|
+
"additionalProperties": {}
|
|
12225
|
+
},
|
|
12226
|
+
"add": {
|
|
12227
|
+
"type": "array",
|
|
12228
|
+
"items": {
|
|
12229
|
+
"type": "string"
|
|
12230
|
+
},
|
|
12231
|
+
"description": "Normalized tags added"
|
|
12232
|
+
},
|
|
12233
|
+
"remove": {
|
|
12234
|
+
"type": "array",
|
|
12235
|
+
"items": {
|
|
12236
|
+
"type": "string"
|
|
12237
|
+
},
|
|
12238
|
+
"description": "Normalized tags removed"
|
|
12239
|
+
},
|
|
12240
|
+
"by": {
|
|
12241
|
+
"type": "string",
|
|
12242
|
+
"description": "The name of the token that made the edit (never the token)"
|
|
12243
|
+
},
|
|
12244
|
+
"atMs": {
|
|
12245
|
+
"type": "number",
|
|
12246
|
+
"description": "When the server recorded it, epoch milliseconds"
|
|
12247
|
+
}
|
|
12248
|
+
},
|
|
12249
|
+
"required": [
|
|
12250
|
+
"id",
|
|
12251
|
+
"target",
|
|
12252
|
+
"add",
|
|
12253
|
+
"remove",
|
|
12254
|
+
"by",
|
|
12255
|
+
"atMs"
|
|
12256
|
+
],
|
|
12257
|
+
"additionalProperties": {}
|
|
12258
|
+
},
|
|
12259
|
+
"ArtifactTags": {
|
|
12260
|
+
"type": "object",
|
|
12261
|
+
"properties": {
|
|
12262
|
+
"schemaVersion": {
|
|
12263
|
+
"type": "number",
|
|
12264
|
+
"const": 1
|
|
12265
|
+
},
|
|
12266
|
+
"entries": {
|
|
12267
|
+
"type": "array",
|
|
12268
|
+
"items": {
|
|
12269
|
+
"type": "object",
|
|
12270
|
+
"properties": {
|
|
12271
|
+
"id": {
|
|
12272
|
+
"type": "string",
|
|
12273
|
+
"description": "Unique and time-ordered"
|
|
12274
|
+
},
|
|
12275
|
+
"target": {
|
|
12276
|
+
"type": "object",
|
|
12277
|
+
"properties": {
|
|
12278
|
+
"layer": {
|
|
12279
|
+
"type": "string",
|
|
12280
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
12281
|
+
"description": "The id of the archived layer that holds the check"
|
|
12282
|
+
},
|
|
12283
|
+
"check": {
|
|
12284
|
+
"type": "string",
|
|
12285
|
+
"minLength": 1,
|
|
12286
|
+
"description": "The check's id"
|
|
12287
|
+
},
|
|
12288
|
+
"kind": {
|
|
12289
|
+
"description": "The kind of the part holding the check, when the same id exists in several parts",
|
|
12290
|
+
"type": "string",
|
|
12291
|
+
"minLength": 1
|
|
12292
|
+
},
|
|
12293
|
+
"artifact": {
|
|
12294
|
+
"type": "string",
|
|
12295
|
+
"minLength": 1,
|
|
12296
|
+
"maxLength": 1024,
|
|
12297
|
+
"description": "The attachment: `id:<id>` when it has an id, else `key:<bundleKey>`, else `name:<name>` (see `artifactRef`)"
|
|
12298
|
+
}
|
|
12299
|
+
},
|
|
12300
|
+
"required": [
|
|
12301
|
+
"layer",
|
|
12302
|
+
"check",
|
|
12303
|
+
"artifact"
|
|
12304
|
+
],
|
|
12305
|
+
"additionalProperties": {}
|
|
12306
|
+
},
|
|
12307
|
+
"add": {
|
|
12308
|
+
"type": "array",
|
|
12309
|
+
"items": {
|
|
12310
|
+
"type": "string"
|
|
12311
|
+
},
|
|
12312
|
+
"description": "Normalized tags added"
|
|
12313
|
+
},
|
|
12314
|
+
"remove": {
|
|
12315
|
+
"type": "array",
|
|
12316
|
+
"items": {
|
|
12317
|
+
"type": "string"
|
|
12318
|
+
},
|
|
12319
|
+
"description": "Normalized tags removed"
|
|
12320
|
+
},
|
|
12321
|
+
"by": {
|
|
12322
|
+
"type": "string",
|
|
12323
|
+
"description": "The name of the token that made the edit (never the token)"
|
|
12324
|
+
},
|
|
12325
|
+
"atMs": {
|
|
12326
|
+
"type": "number",
|
|
12327
|
+
"description": "When the server recorded it, epoch milliseconds"
|
|
12328
|
+
}
|
|
12329
|
+
},
|
|
12330
|
+
"required": [
|
|
12331
|
+
"id",
|
|
12332
|
+
"target",
|
|
12333
|
+
"add",
|
|
12334
|
+
"remove",
|
|
12335
|
+
"by",
|
|
12336
|
+
"atMs"
|
|
12337
|
+
],
|
|
12338
|
+
"additionalProperties": {}
|
|
12339
|
+
}
|
|
12340
|
+
}
|
|
12341
|
+
},
|
|
12342
|
+
"required": [
|
|
12343
|
+
"schemaVersion",
|
|
12344
|
+
"entries"
|
|
12345
|
+
],
|
|
12346
|
+
"additionalProperties": {}
|
|
12347
|
+
},
|
|
11567
12348
|
"TestCatalog": {
|
|
11568
12349
|
"type": "object",
|
|
11569
12350
|
"properties": {
|
|
@@ -12154,6 +12935,27 @@
|
|
|
12154
12935
|
"additionalProperties": {}
|
|
12155
12936
|
}
|
|
12156
12937
|
},
|
|
12938
|
+
"artifactTags": {
|
|
12939
|
+
"type": "array",
|
|
12940
|
+
"items": {
|
|
12941
|
+
"type": "object",
|
|
12942
|
+
"properties": {
|
|
12943
|
+
"value": {
|
|
12944
|
+
"type": "string"
|
|
12945
|
+
},
|
|
12946
|
+
"count": {
|
|
12947
|
+
"type": "integer",
|
|
12948
|
+
"minimum": 0,
|
|
12949
|
+
"maximum": 9007199254740991
|
|
12950
|
+
}
|
|
12951
|
+
},
|
|
12952
|
+
"required": [
|
|
12953
|
+
"value",
|
|
12954
|
+
"count"
|
|
12955
|
+
],
|
|
12956
|
+
"additionalProperties": {}
|
|
12957
|
+
}
|
|
12958
|
+
},
|
|
12157
12959
|
"branches": {
|
|
12158
12960
|
"type": "array",
|
|
12159
12961
|
"items": {
|
|
@@ -12420,6 +13222,13 @@
|
|
|
12420
13222
|
"type": "string"
|
|
12421
13223
|
}
|
|
12422
13224
|
},
|
|
13225
|
+
"artifactTags": {
|
|
13226
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
13227
|
+
"type": "array",
|
|
13228
|
+
"items": {
|
|
13229
|
+
"type": "string"
|
|
13230
|
+
}
|
|
13231
|
+
},
|
|
12423
13232
|
"labels": {
|
|
12424
13233
|
"type": "object",
|
|
12425
13234
|
"propertyNames": {
|
|
@@ -12614,6 +13423,20 @@
|
|
|
12614
13423
|
"type": "string"
|
|
12615
13424
|
}
|
|
12616
13425
|
},
|
|
13426
|
+
"artifactTags": {
|
|
13427
|
+
"description": "Normalized tags of the attachments of its current results, such as `demo` (shown `#demo`). Not inherited from a check or run, unlike `tags`",
|
|
13428
|
+
"type": "array",
|
|
13429
|
+
"items": {
|
|
13430
|
+
"type": "string"
|
|
13431
|
+
}
|
|
13432
|
+
},
|
|
13433
|
+
"inheritedArtifactTags": {
|
|
13434
|
+
"description": "Normalized tags its attachments inherit from their check and run, apart from `artifactTags`: what `?artifactTag=…&inherited=1` also matches",
|
|
13435
|
+
"type": "array",
|
|
13436
|
+
"items": {
|
|
13437
|
+
"type": "string"
|
|
13438
|
+
}
|
|
13439
|
+
},
|
|
12617
13440
|
"labels": {
|
|
12618
13441
|
"type": "object",
|
|
12619
13442
|
"propertyNames": {
|
|
@@ -13292,6 +14115,13 @@
|
|
|
13292
14115
|
"type": "string"
|
|
13293
14116
|
}
|
|
13294
14117
|
},
|
|
14118
|
+
"artifactTags": {
|
|
14119
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
14120
|
+
"type": "array",
|
|
14121
|
+
"items": {
|
|
14122
|
+
"type": "string"
|
|
14123
|
+
}
|
|
14124
|
+
},
|
|
13295
14125
|
"labels": {
|
|
13296
14126
|
"type": "object",
|
|
13297
14127
|
"propertyNames": {
|
|
@@ -13486,6 +14316,20 @@
|
|
|
13486
14316
|
"type": "string"
|
|
13487
14317
|
}
|
|
13488
14318
|
},
|
|
14319
|
+
"artifactTags": {
|
|
14320
|
+
"description": "Normalized tags of the attachments of its current results, such as `demo` (shown `#demo`). Not inherited from a check or run, unlike `tags`",
|
|
14321
|
+
"type": "array",
|
|
14322
|
+
"items": {
|
|
14323
|
+
"type": "string"
|
|
14324
|
+
}
|
|
14325
|
+
},
|
|
14326
|
+
"inheritedArtifactTags": {
|
|
14327
|
+
"description": "Normalized tags its attachments inherit from their check and run, apart from `artifactTags`: what `?artifactTag=…&inherited=1` also matches",
|
|
14328
|
+
"type": "array",
|
|
14329
|
+
"items": {
|
|
14330
|
+
"type": "string"
|
|
14331
|
+
}
|
|
14332
|
+
},
|
|
13489
14333
|
"labels": {
|
|
13490
14334
|
"type": "object",
|
|
13491
14335
|
"propertyNames": {
|
|
@@ -13668,6 +14512,13 @@
|
|
|
13668
14512
|
"type": "string"
|
|
13669
14513
|
}
|
|
13670
14514
|
},
|
|
14515
|
+
"artifactTags": {
|
|
14516
|
+
"description": "Normalized tags of the attachments themselves, sorted and distinct. Absent when no attachment is tagged; never inherited from a check or run",
|
|
14517
|
+
"type": "array",
|
|
14518
|
+
"items": {
|
|
14519
|
+
"type": "string"
|
|
14520
|
+
}
|
|
14521
|
+
},
|
|
13671
14522
|
"labels": {
|
|
13672
14523
|
"type": "object",
|
|
13673
14524
|
"propertyNames": {
|
|
@@ -13747,7 +14598,23 @@
|
|
|
13747
14598
|
"properties": {
|
|
13748
14599
|
"key": {
|
|
13749
14600
|
"type": "string",
|
|
13750
|
-
"description": "
|
|
14601
|
+
"description": "`run:<id>` for an execution a producer named, else the run URL, else `branch@sha`. Pass it to `/api/reports/runs/detail?key=` or `/api/reports/tests?run=`"
|
|
14602
|
+
},
|
|
14603
|
+
"runId": {
|
|
14604
|
+
"description": "The execution id the producer named, when it did. Layers that share it are one run however many uploads they took",
|
|
14605
|
+
"type": "string"
|
|
14606
|
+
},
|
|
14607
|
+
"title": {
|
|
14608
|
+
"description": "The human title of the execution (the newest layer's). Presentation only: the key, commit and `freshness` are unaffected",
|
|
14609
|
+
"type": "string"
|
|
14610
|
+
},
|
|
14611
|
+
"freshness": {
|
|
14612
|
+
"description": "`modified` when any layer of the run was recorded from a checkout with uncommitted changes; `unknown` when an origin was not captured; absent when all are clean. Shown beside the commit, never replaced by the title",
|
|
14613
|
+
"type": "string",
|
|
14614
|
+
"enum": [
|
|
14615
|
+
"unknown",
|
|
14616
|
+
"modified"
|
|
14617
|
+
]
|
|
13751
14618
|
},
|
|
13752
14619
|
"runUrl": {
|
|
13753
14620
|
"type": [
|
|
@@ -13901,7 +14768,23 @@
|
|
|
13901
14768
|
"properties": {
|
|
13902
14769
|
"key": {
|
|
13903
14770
|
"type": "string",
|
|
13904
|
-
"description": "
|
|
14771
|
+
"description": "`run:<id>` for an execution a producer named, else the run URL, else `branch@sha`. Pass it to `/api/reports/runs/detail?key=` or `/api/reports/tests?run=`"
|
|
14772
|
+
},
|
|
14773
|
+
"runId": {
|
|
14774
|
+
"description": "The execution id the producer named, when it did. Layers that share it are one run however many uploads they took",
|
|
14775
|
+
"type": "string"
|
|
14776
|
+
},
|
|
14777
|
+
"title": {
|
|
14778
|
+
"description": "The human title of the execution (the newest layer's). Presentation only: the key, commit and `freshness` are unaffected",
|
|
14779
|
+
"type": "string"
|
|
14780
|
+
},
|
|
14781
|
+
"freshness": {
|
|
14782
|
+
"description": "`modified` when any layer of the run was recorded from a checkout with uncommitted changes; `unknown` when an origin was not captured; absent when all are clean. Shown beside the commit, never replaced by the title",
|
|
14783
|
+
"type": "string",
|
|
14784
|
+
"enum": [
|
|
14785
|
+
"unknown",
|
|
14786
|
+
"modified"
|
|
14787
|
+
]
|
|
13905
14788
|
},
|
|
13906
14789
|
"runUrl": {
|
|
13907
14790
|
"type": [
|