{"action":"opened","issue":{"url":"https://api.github.com/repos/zalando-stups/pierone/issues/125","repository_url":"https://api.github.com/repos/zalando-stups/pierone","labels_url":"https://api.github.com/repos/zalando-stups/pierone/issues/125/labels{/name}","comments_url":"https://api.github.com/repos/zalando-stups/pierone/issues/125/comments","events_url":"https://api.github.com/repos/zalando-stups/pierone/issues/125/events","html_url":"https://github.com/zalando-stups/pierone/issues/125","id":191773861,"number":125,"title":"Support docker pulling by sha256","user":{"login":"dryewo","id":3134153,"avatar_url":"https://avatars.githubusercontent.com/u/3134153?v=3","gravatar_id":"","url":"https://api.github.com/users/dryewo","html_url":"https://github.com/dryewo","followers_url":"https://api.github.com/users/dryewo/followers","following_url":"https://api.github.com/users/dryewo/following{/other_user}","gists_url":"https://api.github.com/users/dryewo/gists{/gist_id}","starred_url":"https://api.github.com/users/dryewo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dryewo/subscriptions","organizations_url":"https://api.github.com/users/dryewo/orgs","repos_url":"https://api.github.com/users/dryewo/repos","events_url":"https://api.github.com/users/dryewo/events{/privacy}","received_events_url":"https://api.github.com/users/dryewo/received_events","type":"User","site_admin":false},"labels":[{"id":186056484,"url":"https://api.github.com/repos/zalando-stups/pierone/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-11-25T23:12:00Z","updated_at":"2016-11-25T23:12:00Z","closed_at":null,"body":"By the official docker image registry it is supported:\r\n\r\n```\r\n$ docker pull hello-world\r\nUsing default tag: latest\r\nlatest: Pulling from library/hello-world\r\nDigest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9\r\nStatus: Downloaded newer image for hello-world:latest\r\n$ docker rmi hello-world\r\n\r\n$ docker pull hello-world@sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9\r\nsha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9: Pulling from library/hello-world\r\nDigest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9\r\nStatus: Downloaded newer image for hello-world@sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9\r\n```\r\n\r\nFrom the API perspective, it's implemented by the same endpoint:\r\n\r\n    GET /v2/library/hello-world/manifests/latest\r\n    GET /v2/library/hello-world/manifests/sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9\r\n\r\nThis feature is required by  Concourse CI's [docker-image-resource](https://github.com/concourse/docker-image-resource) together with `latest` tag support.\r\n\r\nThis digest is actually a SHA256 hash of the pretty-printed manifest JSON. In order to support it in Pier One we will need to store this hash in the `tags` table to allow fast lookups.\r\nThis hash is already calculated on the fly and returned as `Docker-Content-Digest` header by many API endpoints in Pier One, so implementation should be easy."}}
{"actor":{"display_login":"dryewo"}}