GraphQL: get GAR artifacts from project
This issue is to add a new GraphQL field to the ProjectType to get the Google Artifact Registry artifacts from the project.
On the project
, add a new field google_cloud_platform_artifact_registry_repository_artifacts
that returns a list of a new Type (abstract): Integrations::GoogleCloudPlatform::ArtifactRegistry::ArtifactType
.
The return type should be an abstract type: Integrations::GoogleCloudPlatform::ArtifactRegistry::ArtifactType
.
The single concrete type that we will have is Integrations::GoogleCloudPlatform::ArtifactRegistry::DockerImageType
. It has the following fields:
Name | Type |
---|---|
name |
String! |
uri |
String! |
tags |
[String!] |
imageSizeBytes |
String |
uploadTime |
String |
mediaType |
String |
buildTime |
String |
updateTime |
String |
projectId |
String! |
location |
String! |
repository |
String! |
image |
String! |
digest |
String! |
gcpImageUrl |
String! |
The resolver should call on the client:
-
#repository
to make sure that it's the correct format (DOCKER
). -
#artifacts
to get the artifacts in a paginated manner.
The resolver should also support:
-
Sorting in asc/desc order by
uploadTime
-
pagination.
⚠ Pagination options come from the client method#artifacts
. Connect the GraphQL pagination with that external system. See https://docs.gitlab.com/ee/development/graphql_guide/pagination.html#external-pagination.
Regarding permissions, the user will need to have read_gcp_artifact_registry_repository
on the target project.
These changes should be gated behind the Google Artifact Registry feature flag.
These changes should be marked as alpha.
Sample Response
Realistic Images List
Below is a list of 25 images extracted from a sample GAR repository. This number is enough to mock two pages of the UI where the response of this API is going to be displayed. Some images have either a lot of tags or tags with a really long name to allow testing the truncation on the UI.
Click to expand
{
"data": {
"project": {
"googleCloudPlatformArtifactRegistryRepositoryArtifacts": {
"nodes": [
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/alpine@sha256:6a0657acfef760bd9e293361c9b558e98e7d740ed0dffca823d17098a4ffddf5",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:6a0657acfef760bd9e293361c9b558e98e7d740ed0dffca823d17098a4ffddf5",
"tags": [
"3.15",
"3.15.11"
],
"imageSizeBytes": "2827903",
"uploadTime": "2023-12-07T11:48:47.598511Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-30T23:23:11.980068941Z",
"updateTime": "2023-12-07T11:48:50.840751Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "alpine",
"digest": "sha256:6a0657acfef760bd9e293361c9b558e98e7d740ed0dffca823d17098a4ffddf5",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:6a0657acfef760bd9e293361c9b558e98e7d740ed0dffca823d17098a4ffddf5",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/alpine@sha256:b6e5fbdf7e79701eb7c3b82928089980986395a8ab16f96cdc6e6874f618b375",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:b6e5fbdf7e79701eb7c3b82928089980986395a8ab16f96cdc6e6874f618b375",
"tags": [
"3.17",
"3.17.6"
],
"imageSizeBytes": "3380795",
"uploadTime": "2023-12-07T11:48:30.834559Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-30T23:22:59.087794357Z",
"updateTime": "2023-12-07T11:48:34.153599Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "alpine",
"digest": "sha256:b6e5fbdf7e79701eb7c3b82928089980986395a8ab16f96cdc6e6874f618b375",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:b6e5fbdf7e79701eb7c3b82928089980986395a8ab16f96cdc6e6874f618b375",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/alpine@sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330",
"tags": [
"3.16.8"
],
"imageSizeBytes": "2809254",
"uploadTime": "2023-12-07T11:48:40.510831Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-30T23:23:05.499726235Z",
"updateTime": "2023-12-07T11:48:40.510831Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "alpine",
"digest": "sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/alpine@sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389",
"tags": [
"3",
"3.18",
"3.18.5",
"latest"
],
"imageSizeBytes": "3403894",
"uploadTime": "2023-12-07T11:48:19.187359Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-30T23:22:52.738129857Z",
"updateTime": "2023-12-07T11:48:54.439263Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "alpine",
"digest": "sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/alpine@sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:06a3161e61728a5e8169639c65f1e6a9683bb128e1fa1469a90278bb8911e4cc",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:06a3161e61728a5e8169639c65f1e6a9683bb128e1fa1469a90278bb8911e4cc",
"tags": null,
"imageSizeBytes": "5022486",
"uploadTime": "2023-12-07T11:47:17.633359Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-12-01T07:41:21.068714329Z",
"updateTime": "2023-12-07T11:47:17.633359Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:06a3161e61728a5e8169639c65f1e6a9683bb128e1fa1469a90278bb8911e4cc",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:06a3161e61728a5e8169639c65f1e6a9683bb128e1fa1469a90278bb8911e4cc",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:10d1f5b58f74683ad34eb29287e07dab1e90f10af243f151bb50aa5dbb4d62ee",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:10d1f5b58f74683ad34eb29287e07dab1e90f10af243f151bb50aa5dbb4d62ee",
"tags": [
"latest"
],
"imageSizeBytes": null,
"uploadTime": "2023-12-07T11:46:41.185327Z",
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"buildTime": null,
"updateTime": "2023-12-07T11:46:41.185327Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:10d1f5b58f74683ad34eb29287e07dab1e90f10af243f151bb50aa5dbb4d62ee",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:10d1f5b58f74683ad34eb29287e07dab1e90f10af243f151bb50aa5dbb4d62ee",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:3c4c1f42a89e343c7b050c5e5d6f670a0e0b82e70e0e7d023f10092a04bbb5a7",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:3c4c1f42a89e343c7b050c5e5d6f670a0e0b82e70e0e7d023f10092a04bbb5a7",
"tags": null,
"imageSizeBytes": "70540995",
"uploadTime": "2023-12-07T11:45:36.839503Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T09:05:32.482668371Z",
"updateTime": "2023-12-07T11:45:36.839503Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:3c4c1f42a89e343c7b050c5e5d6f670a0e0b82e70e0e7d023f10092a04bbb5a7",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:3c4c1f42a89e343c7b050c5e5d6f670a0e0b82e70e0e7d023f10092a04bbb5a7",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:47d1b941e56c8730b945e2fddc8101490926d8425561aa5a9d8fa16f338649ba",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:47d1b941e56c8730b945e2fddc8101490926d8425561aa5a9d8fa16f338649ba",
"tags": null,
"imageSizeBytes": "5018902",
"uploadTime": "2023-12-07T11:46:54.181919Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-30T23:07:26.380879994Z",
"updateTime": "2023-12-07T11:46:54.181919Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:47d1b941e56c8730b945e2fddc8101490926d8425561aa5a9d8fa16f338649ba",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:47d1b941e56c8730b945e2fddc8101490926d8425561aa5a9d8fa16f338649ba",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:493ffa6a5ff502f871683506749ee924d9a32d137209b412e5875eda507ab643",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:493ffa6a5ff502f871683506749ee924d9a32d137209b412e5875eda507ab643",
"tags": null,
"imageSizeBytes": "68704940",
"uploadTime": "2023-12-07T11:46:14.070415Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-22T01:16:17.081910914Z",
"updateTime": "2023-12-07T11:46:14.070415Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:493ffa6a5ff502f871683506749ee924d9a32d137209b412e5875eda507ab643",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:493ffa6a5ff502f871683506749ee924d9a32d137209b412e5875eda507ab643",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:67f6dd8c320f862283dd7e4a7ea627cb7fd3fc068525e818e2459fc38293d1c1",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:67f6dd8c320f862283dd7e4a7ea627cb7fd3fc068525e818e2459fc38293d1c1",
"tags": null,
"imageSizeBytes": "5407094",
"uploadTime": "2023-12-07T11:47:12.990031Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-12-01T05:11:23.238569476Z",
"updateTime": "2023-12-07T11:47:12.990031Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:67f6dd8c320f862283dd7e4a7ea627cb7fd3fc068525e818e2459fc38293d1c1",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:67f6dd8c320f862283dd7e4a7ea627cb7fd3fc068525e818e2459fc38293d1c1",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:736342e81e97220f954b8c33846ba80d2d95f59b30225a5c63d063c8b250b0ab",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:736342e81e97220f954b8c33846ba80d2d95f59b30225a5c63d063c8b250b0ab",
"tags": null,
"imageSizeBytes": "67237935",
"uploadTime": "2023-12-07T11:46:04.108111Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T10:16:58.196264670Z",
"updateTime": "2023-12-07T11:46:04.108111Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:736342e81e97220f954b8c33846ba80d2d95f59b30225a5c63d063c8b250b0ab",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:736342e81e97220f954b8c33846ba80d2d95f59b30225a5c63d063c8b250b0ab",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:7dc1fb53813c6fd41931f53a41738b29949857e1a433d42d515ef6ed329650a8",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:7dc1fb53813c6fd41931f53a41738b29949857e1a433d42d515ef6ed329650a8",
"tags": null,
"imageSizeBytes": "5190388",
"uploadTime": "2023-12-07T11:46:49.554799Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-12-01T07:02:29.220960844Z",
"updateTime": "2023-12-07T11:46:49.554799Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:7dc1fb53813c6fd41931f53a41738b29949857e1a433d42d515ef6ed329650a8",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:7dc1fb53813c6fd41931f53a41738b29949857e1a433d42d515ef6ed329650a8",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:9f2f5675034f8a3ba56b193bf6f9b4a38bb59fbceefe7294f485860cc688f4c5",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:9f2f5675034f8a3ba56b193bf6f9b4a38bb59fbceefe7294f485860cc688f4c5",
"tags": [
"stable-alpine3.17-slim"
],
"imageSizeBytes": null,
"uploadTime": "2023-12-07T11:47:17.803503Z",
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"buildTime": null,
"updateTime": "2023-12-07T11:47:17.803503Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:9f2f5675034f8a3ba56b193bf6f9b4a38bb59fbceefe7294f485860cc688f4c5",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:9f2f5675034f8a3ba56b193bf6f9b4a38bb59fbceefe7294f485860cc688f4c5",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:9f9694358d9ebb22abc11c36a70649b4b1d8d07e3e2502d987e0491ce3f7d625",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:9f9694358d9ebb22abc11c36a70649b4b1d8d07e3e2502d987e0491ce3f7d625",
"tags": null,
"imageSizeBytes": "4630115",
"uploadTime": "2023-12-07T11:46:59.219055Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-12-01T08:32:58.368479449Z",
"updateTime": "2023-12-07T11:46:59.219055Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:9f9694358d9ebb22abc11c36a70649b4b1d8d07e3e2502d987e0491ce3f7d625",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:9f9694358d9ebb22abc11c36a70649b4b1d8d07e3e2502d987e0491ce3f7d625",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:ace2c553858adea7dd7603797a58221fd8040552f433dd2307469b7cf3a2119b",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:ace2c553858adea7dd7603797a58221fd8040552f433dd2307469b7cf3a2119b",
"tags": null,
"imageSizeBytes": "59506361",
"uploadTime": "2023-12-07T11:45:54.220975Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T11:11:43.214047691Z",
"updateTime": "2023-12-07T11:45:54.220975Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:ace2c553858adea7dd7603797a58221fd8040552f433dd2307469b7cf3a2119b",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:ace2c553858adea7dd7603797a58221fd8040552f433dd2307469b7cf3a2119b",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:affc31e97c9b67d5ad1d461f32ec234a0758bf25755ea380526ab5e3dacdbf8e",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:affc31e97c9b67d5ad1d461f32ec234a0758bf25755ea380526ab5e3dacdbf8e",
"tags": null,
"imageSizeBytes": "5058909",
"uploadTime": "2023-12-07T11:47:03.816143Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-12-01T02:40:31.016127143Z",
"updateTime": "2023-12-07T11:47:03.816143Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:affc31e97c9b67d5ad1d461f32ec234a0758bf25755ea380526ab5e3dacdbf8e",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:affc31e97c9b67d5ad1d461f32ec234a0758bf25755ea380526ab5e3dacdbf8e",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:b50f4e222b2d749d6a999baf30df1d6090d47f2ae855ae80ede69d6dddf5b58c",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:b50f4e222b2d749d6a999baf30df1d6090d47f2ae855ae80ede69d6dddf5b58c",
"tags": null,
"imageSizeBytes": "63125569",
"uploadTime": "2023-12-07T11:45:45.952415Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T16:02:18.199113077Z",
"updateTime": "2023-12-07T11:45:45.952415Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:b50f4e222b2d749d6a999baf30df1d6090d47f2ae855ae80ede69d6dddf5b58c",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:b50f4e222b2d749d6a999baf30df1d6090d47f2ae855ae80ede69d6dddf5b58c",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:b6cd7141b3b33ce086013d60e2c7686d95665f516ccd30b618e32c998a4fd334",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:b6cd7141b3b33ce086013d60e2c7686d95665f516ccd30b618e32c998a4fd334",
"tags": null,
"imageSizeBytes": "74953551",
"uploadTime": "2023-12-07T11:46:32.507407Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T08:21:48.272390286Z",
"updateTime": "2023-12-07T11:46:32.507407Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:b6cd7141b3b33ce086013d60e2c7686d95665f516ccd30b618e32c998a4fd334",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:b6cd7141b3b33ce086013d60e2c7686d95665f516ccd30b618e32c998a4fd334",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:c3ce3d388b3e488777a69198642a499c74518db8aab88f59b85fa584dc7a1316",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:c3ce3d388b3e488777a69198642a499c74518db8aab88f59b85fa584dc7a1316",
"tags": null,
"imageSizeBytes": "64854740",
"uploadTime": "2023-12-07T11:46:41.029359Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T07:07:36.321490180Z",
"updateTime": "2023-12-07T11:46:41.029359Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:c3ce3d388b3e488777a69198642a499c74518db8aab88f59b85fa584dc7a1316",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:c3ce3d388b3e488777a69198642a499c74518db8aab88f59b85fa584dc7a1316",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:c76658f0a37d7c04795c727e43f4d1cb40fd5a8738e9b5ea0296ffa86f9a3822",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:c76658f0a37d7c04795c727e43f4d1cb40fd5a8738e9b5ea0296ffa86f9a3822",
"tags": [
"18750368",
"4c09fd23",
"57d3ff35",
"7470975c",
"76e855a1",
"79d362c7",
"928e2cd0",
"9f3a39bf",
"bff4747d",
"d5176f37",
"daa126b0",
"e057d549"
],
"imageSizeBytes": "5473402",
"uploadTime": "2023-12-07T11:47:08.388607Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-12-01T09:07:53.251801940Z",
"updateTime": "2023-12-07T11:59:34.261167Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:c76658f0a37d7c04795c727e43f4d1cb40fd5a8738e9b5ea0296ffa86f9a3822",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:c76658f0a37d7c04795c727e43f4d1cb40fd5a8738e9b5ea0296ffa86f9a3822",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/nginx@sha256:e3b434698fb477537d3e9014b4953f340b96858cada6d44a0a5d36e73bd730a4",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:e3b434698fb477537d3e9014b4953f340b96858cada6d44a0a5d36e73bd730a4",
"tags": null,
"imageSizeBytes": "66206245",
"uploadTime": "2023-12-07T11:46:22.889951Z",
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"buildTime": "2023-11-21T17:03:59.748615912Z",
"updateTime": "2023-12-07T11:46:22.889951Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "nginx",
"digest": "sha256:e3b434698fb477537d3e9014b4953f340b96858cada6d44a0a5d36e73bd730a4",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/nginx@sha256:e3b434698fb477537d3e9014b4953f340b96858cada6d44a0a5d36e73bd730a4",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/ubuntu@sha256:149d67e29f765f4db62aa52161009e99e389544e25a8f43c8c89d4a445a7ca37",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:149d67e29f765f4db62aa52161009e99e389544e25a8f43c8c89d4a445a7ca37",
"tags": null,
"imageSizeBytes": "29549713",
"uploadTime": "2023-12-07T11:51:20.576031Z",
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"buildTime": "2023-12-01T07:49:50.471660030Z",
"updateTime": "2023-12-07T11:51:20.576031Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "ubuntu",
"digest": "sha256:149d67e29f765f4db62aa52161009e99e389544e25a8f43c8c89d4a445a7ca37",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:149d67e29f765f4db62aa52161009e99e389544e25a8f43c8c89d4a445a7ca37",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/ubuntu@sha256:38f5c03e32f9b3d2349bb3a096462866f8b44566b63a7fc3d5b4c75b55d108e1",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:38f5c03e32f9b3d2349bb3a096462866f8b44566b63a7fc3d5b4c75b55d108e1",
"tags": null,
"imageSizeBytes": "26637680",
"uploadTime": "2023-12-07T11:51:26.112191Z",
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"buildTime": "2023-12-01T07:58:44.402405815Z",
"updateTime": "2023-12-07T11:51:26.112191Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "ubuntu",
"digest": "sha256:38f5c03e32f9b3d2349bb3a096462866f8b44566b63a7fc3d5b4c75b55d108e1",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:38f5c03e32f9b3d2349bb3a096462866f8b44566b63a7fc3d5b4c75b55d108e1",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/ubuntu@sha256:5b5a3f7bd48cdcd8ff523361ae281a4a645b1d7889b5a15856ea540e68fba5c4",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:5b5a3f7bd48cdcd8ff523361ae281a4a645b1d7889b5a15856ea540e68fba5c4",
"tags": [
"5f4cb50cab17ff463edb4ec40e8a210d8cab251f",
"897014f7dca7387fb0307a71d506bef69a950bc6",
"9e170b7ac43ce195de7efaec6fbd0cbb1924b75c",
"b81e7780be3ec83202e907b09fb11c99a2730a05",
"c02a7f4057fe42de9b151d5d2b9f50014c1fbee2"
],
"imageSizeBytes": "27359937",
"uploadTime": "2023-12-07T11:51:31.177775Z",
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"buildTime": "2023-12-01T07:43:22.065093631Z",
"updateTime": "2023-12-07T12:01:41.687727Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "ubuntu",
"digest": "sha256:5b5a3f7bd48cdcd8ff523361ae281a4a645b1d7889b5a15856ea540e68fba5c4",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:5b5a3f7bd48cdcd8ff523361ae281a4a645b1d7889b5a15856ea540e68fba5c4",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/ubuntu@sha256:8eab65df33a6de2844c9aefd19efe8ddb87b7df5e9185a4ab73af936225685bb",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:8eab65df33a6de2844c9aefd19efe8ddb87b7df5e9185a4ab73af936225685bb",
"tags": [
"latest"
],
"imageSizeBytes": null,
"uploadTime": "2023-12-07T11:51:43.243055Z",
"mediaType": "application/vnd.oci.image.index.v1+json",
"buildTime": null,
"updateTime": "2023-12-07T11:51:43.243055Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "ubuntu",
"digest": "sha256:8eab65df33a6de2844c9aefd19efe8ddb87b7df5e9185a4ab73af936225685bb",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:8eab65df33a6de2844c9aefd19efe8ddb87b7df5e9185a4ab73af936225685bb",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/ubuntu@sha256:b3822149d5c0170039f6f39fc0fda06c2467e4472378b9850bad1792b83e46d5",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:b3822149d5c0170039f6f39fc0fda06c2467e4472378b9850bad1792b83e46d5",
"tags": [
"02be358134ee64eb35e165d3fd9dc1a1b7ab16223f73301042f91252d4cc1b51",
"0a4ba787a0b1826a131e5420d9332a986de74b52f1e9ebfc29782cbc2a9946c8",
"228301dd0dc525fca7ea9bc51d2bb6e21f4c3fb05035a2860aa6dd5b3f54ec28"
],
"imageSizeBytes": "34530409",
"uploadTime": "2023-12-07T11:51:36.975599Z",
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"buildTime": "2023-12-01T08:12:04.008779480Z",
"updateTime": "2023-12-07T11:57:00.854863Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "ubuntu",
"digest": "sha256:b3822149d5c0170039f6f39fc0fda06c2467e4472378b9850bad1792b83e46d5",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:b3822149d5c0170039f6f39fc0fda06c2467e4472378b9850bad1792b83e46d5",
"__typename": "DockerImage"
},
{
"name": "projects/dev-package-container-96a3ff34/locations/us-east1/repositories/myrepo/dockerImages/ubuntu@sha256:f41668699eb7c917d00f9cd97fdebe746eb34e6331a74c7995370bafd938b048",
"uri": "us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:f41668699eb7c917d00f9cd97fdebe746eb34e6331a74c7995370bafd938b048",
"tags": null,
"imageSizeBytes": "28028761",
"uploadTime": "2023-12-07T11:51:42.834463Z",
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"buildTime": "2023-12-01T08:11:22.867558383Z",
"updateTime": "2023-12-07T11:51:42.834463Z",
"projectId": "dev-package-container-96a3ff34",
"location": "us-east1",
"repository": "myrepo",
"image": "ubuntu",
"digest": "sha256:f41668699eb7c917d00f9cd97fdebe746eb34e6331a74c7995370bafd938b048",
"gcpImageUrl": "https://us-east1-docker.pkg.dev/dev-package-container-96a3ff34/myrepo/ubuntu@sha256:f41668699eb7c917d00f9cd97fdebe746eb34e6331a74c7995370bafd938b048",
"__typename": "DockerImage"
}
],
"count": 27,
"projectId": "dev-package-container-96a3ff34",
"repository": "myrepo",
"gcpRepositoryUrl": "https://console.cloud.google.com/artifacts/docker/dev-package-container-96a3ff34/us-east1/myrepo",
"pageInfo": {
"endCursor": "nextPageToken",
"startCursor": null,
"hasNextPage": true,
"hasPreviousPage": false,
"__typename": "PageInfo"
}
}
}
}
}
Plan
- New Google Artifact Registry Project Integration (#425066 - closed)
- GAR Integration: Custom client class (#425147 - closed)
- GraphQL: get GAR artifacts from project. (
👈 this issue) - GraphQL: get GAR artifact details query (#425150 - closed)
- GAR Integration: Add predefined CI variables (#425153 - closed)
- GAR integration: frontend menu entry and list o... (#425154 - closed)
- GAR integration: frontend artifact details page (#425157 - closed)
- GAR integration documentation (#425158 - closed)