{"action":"created","comment":{"url":"https://api.github.com/repos/docker/distribution/pulls/comments/24624726","id":24624726,"diff_hunk":"@@ -0,0 +1,249 @@\n+# Distribution Content Manifests\n+\n+A Content Manifest is a simple JSON file which contains general fields that\n+are typical to any package management system. The goal is for these manifests\n+to describe an application and its dependencies in a content-addressable and\n+verifiable way.\n+\n+## Field Descriptions\n+\n+- **`schemaVersion`** *int*\n+\n+    Specifies the schema version of the manifest as an integer. This document \n+    describes version `1` only.\n+\n+- **`createdAt`** *string*\n+\n+    ISO-8601 formatted combined date and time at which the manifest was\n+    created.\n+\n+- **`maintainers`** *array*\n+\n+    An array of objects representing persons or organizations which are\n+    designated as mainainers of the described content. Fields are:\n+    \n+    - **`name`** *string*\n+    \n+        The name of a maintaining person or organization.\n+    \n+    - **`email`** *string*\n+    \n+        The email address of a maintainer.\n+    \n+    - **`url`** *string*\n+    \n+        A URL to a maintainer's website, blog, etc.\n+\n+- **`description`** *string*\n+\n+    A brief description of the content or application.\n+\n+- **`keywords`** *array*\n+\n+    An array of strings which should be considered keywords that may be used\n+    by a separate search system to index content.\n+\n+- **`website`** *string*\n+\n+    A URL to a related website or project page for the application.\n+\n+- **`licenses`** *array*\n+\n+    An array of strings which identify any software licenses which apply\n+    to the application. Values should be a [SPDX License Identifier](https://spdx.org/licenses/).\n+\n+- **`Dependencies`** *array*\n+\n+    An array of objects which describe content which this application depends\n+    on. Those may be generic blobs of data or other content manifests and\n+    their dependencies as described by their media type. Fields are:\n+    \n+    - **`mediaType`** *string*\n+    \n+        The MIME type of the dependency object.\n+    \n+    - **`size`** *int*\n+    \n+        The size in bytes of the dependency object.\n+    \n+    - **`repository`** *string*\n+    \n+        The name of the repository from which to fetch the object.\n+\n+    - **`encryption`** *object*\n+\n+        An object containing information about the algorithm, key, and\n+        initialization vector used to decrypt the content. If omitted,\n+        the content should be assumed to be unencrypted. Fields are:\n+\n+        - **`algorithm`** *string*\n+\n+            Identifies the  encryption algorithm used.\n+\n+        - **`key`** *string*\n+\n+            The hex encoding of the key required to decrypt the content.\n+\n+        - **`iv`** *string*\n+\n+            The hex encoding of the initialization vector required to decrypt\n+            the content. If omitted and an initialization vector is required\n+            for the specified algorithm, assume an all-zero initialization\n+            vector; this may be used to support convergent encryption.\n+    \n+    - **`digests`** *object*\n+    \n+        An object mapping supported digest algorithms to the hex encoded\n+        value of that digest for the content. If the content is encrypted,\n+        then the digest is of the encrypted content.\n+    \n+    Any media type may be in the `mediaType` field as the application may\n+    use any type of content. If the `mediaType` is\n+    `application/vnd.docker.distribution.content.manifest.v1+json` then the\n+    dependency is another content manifest as described by this document. The\n+    dependencies from that manifest should also be considered dependencies of\n+    this application.\n+    \n+    If the `repository` field is empty or omitted, then the object should be\n+    considered to be in the same repository as this manifest.\n+\n+    Encryption combined with a verifiable digest of the content should allow\n+    for both confidentiality and authentication of data.\n+\n+- **`application`** *object*\n+\n+    Fields are:\n+    \n+    - **`mediaType`** *string*\n+    \n+        The MIME type of the JSON object in the `data` field.\n+    \n+    - **`data`** *object*\n+    \n+        Abstract application data in any schema, as described by the\n+        `mediaType` field.\n+    \n+    Application data may be *any* JSON object, allowing this manifest format,\n+    along with the generic dependencies list, to support any type of \n+    application that can be represented as a JSON configuration and a\n+    collection of content-addressable blobs of data.\n+\n+- **`metadata`** *object*\n+\n+    Metadata may be *any* JSON object, allowing content creators to annotate\n+    their application manifest with any additional labels beyond those already\n+    defined by this manifest format. \n+\n+\n+### Example Manifest\n+\n+```json\n+{\n+    \"schemaVersion\": 2,\n+    \"createdAt\": \"2015-02-11T15:07:17.639302443-08:00\",\n+    \"maintainers\": [\n+        {\n+            \"name\": \"Phillip Edward Nuñez\",\n+            \"email\": \"pnunez@example.com\",\n+            \"url\": \"https://example.com/pnunez/\"\n+        }\n+    ],\n+    \"description\": \"Application to Simulate Turbo Encabulators\",\n+    \"keywords\": [\n+        \"foo\",\n+        \"bar\",\n+        \"baz\"\n+    ],\n+    \"website\": \"https://foo.bar.baz.example.com\",\n+    \"licenses\": [\n+        \"Apache-2.0\"\n+    ],\n+    \"dependencies\": [\n+        {\n+            \"mediaType\": \"application/vnd.docker.distribution.content.manifest.v1+json\",\n+            \"size\": 1024,\n+            \"repository\": \"isv.example.com/base/system\",\n+            \"digests\": {\n+                \"sha256\": \"b5b2b2c507a0944348e0303114d8d93aaaa081732b86451d9bce1f432a537bc7\"\n+            }\n+        },\n+        {\n+            \"mediaType\": \"application/vnd.docker.container.image.layer+x-gtar\",\n+            \"size\": 32654,\n+            \"digests\": {\n+                \"sha256\": \"e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f\"\n+            }\n+        },\n+        {\n+            \"mediaType\": \"application/vnd.docker.container.image.layer+x-gtar\",\n+            \"size\": 16724,\n+            \"digests\": {\n+                \"sha256\": \"3c3a4604a545cdc127456d94e421cd355bca5b528f4a9c1905b15da2eb4a4c6b\"\n+            }\n+        },\n+        {\n+            \"mediaType\": \"application/vnd.docker.container.image.layer+x-gtar\",\n+            \"size\": 73109,\n+            \"digests\": {\n+                \"sha256\": \"ec4b8955958665577945c89419d1af06b5f7636b4ac3da7f12184802ad867736\"\n+            }\n+        },\n+        {\n+            \"mediaType\": \"application/vnd.docker.distribution.content.manifest.v1+json\",\n+            \"size\": 3072,\n+            \"repository\": \"example.com/foo/secrets\",\n+            \"encryption\": {\n+                \"algorithm\": \"AES-256-CTR\",\n+                \"key\": \"ea7371db2eb566ba01d34669eca30eaaf4470ab58372790d61cce282d6e6b44f\"\n+            },\n+            \"digests\": {\n+                \"sha256\": \"6e951eaa1c77c20611874f6a9d13d69bbcd15d93ceb21c1e22cc7ae65e2e36ea\"\n+            }\n+        }\n+    ],\n+    \"application\": {\n+        \"mediaType\": \"application/vnd.docker.container.image.params.v1+json\",\n+        \"data\": {\n+            \"user\": \"alice\",","path":"doc/spec/manifest.md","position":210,"original_position":207,"commit_id":"cda77c7f78c96f075eb37f098e9bfe7bdf53bb72","original_commit_id":"448a6120272c634e373e2107c3b7715c6b62cbfb","user":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"body":"I think the thing that's really powerful about this manifest format so far is that if you want to implement the multi-arch/os images that you're talking about, you can, just by using a different media type for the application.\r\n\r\nMy example manifest is for a `docker.container.image.params`, but imagine instead that the application media type was `docker.container.image.combined`. And had application data that looked like this:\r\n\r\n```json\r\n{\r\n    \"linux/amd64\": \"docker.com/library/ubuntu@fa7139b345c6f88c8329e68d15864baf7d2b907ed435e3996ba983ab0ebcb7d1\",\r\n    \"linux/arm\": \"docker.com/library/ubuntu@e457c078b68d843c8e050b454936a600a0c5d133c094e42bb4fcda68f072e976\",\r\n    \"linux/386\": \"docker.com/library/ubuntu@7ccf96608588961b1e8e4cc3d7ec02906efb144b5b092f89c4292c74d5d1cde8\"\r\n}\r\n```\r\n\r\nIf docker had support for this \"combined image\" it would know to lookup in the mapping which \"os/arch\" the docker engine is running on, then fetch the corresponding manifest from a registry which would have application type `docker.container.image.params`.\r\n\r\nThe registry and the outer manifest don't need to know anything at all about operating systems and cpu architectures - that's all application specific. And the manifest format should be powerful enough to let you compose your application in a way that lets you do whatever you want without the registry having to any preconceptions about what the application is.","created_at":"2015-02-12T22:00:15Z","updated_at":"2015-02-12T22:00:15Z","html_url":"https://github.com/docker/distribution/pull/62#discussion_r24624726","pull_request_url":"https://api.github.com/repos/docker/distribution/pulls/62","_links":{"self":{"href":"https://api.github.com/repos/docker/distribution/pulls/comments/24624726"},"html":{"href":"https://github.com/docker/distribution/pull/62#discussion_r24624726"},"pull_request":{"href":"https://api.github.com/repos/docker/distribution/pulls/62"}}},"pull_request":{"url":"https://api.github.com/repos/docker/distribution/pulls/62","id":27308399,"html_url":"https://github.com/docker/distribution/pull/62","diff_url":"https://github.com/docker/distribution/pull/62.diff","patch_url":"https://github.com/docker/distribution/pull/62.patch","issue_url":"https://api.github.com/repos/docker/distribution/issues/62","number":62,"state":"open","locked":false,"title":"doc/spec: generic distribution content manifests","user":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"body":"A proposal for generic content manifests that can be used for\r\nany type of application that can be represented as a JSON config\r\nand a collection of blobs of data, or may be composed of other\r\nsuch applications.","created_at":"2015-01-13T21:55:56Z","updated_at":"2015-02-12T22:00:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a9a2e42273b90eb1aca5027d8df97ae8186f7700","assignee":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/docker/distribution/milestones/4","labels_url":"https://api.github.com/repos/docker/distribution/milestones/4/labels","id":927551,"number":4,"title":"Distribution/OpenSprint","description":"Issues and PRs marked with this milestone should completed by the end of the open sprint and directly contribute to the future direction of the project.","creator":{"login":"stevvooe","id":120601,"avatar_url":"https://avatars.githubusercontent.com/u/120601?v=3","gravatar_id":"","url":"https://api.github.com/users/stevvooe","html_url":"https://github.com/stevvooe","followers_url":"https://api.github.com/users/stevvooe/followers","following_url":"https://api.github.com/users/stevvooe/following{/other_user}","gists_url":"https://api.github.com/users/stevvooe/gists{/gist_id}","starred_url":"https://api.github.com/users/stevvooe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevvooe/subscriptions","organizations_url":"https://api.github.com/users/stevvooe/orgs","repos_url":"https://api.github.com/users/stevvooe/repos","events_url":"https://api.github.com/users/stevvooe/events{/privacy}","received_events_url":"https://api.github.com/users/stevvooe/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":0,"state":"open","created_at":"2015-01-08T19:20:01Z","updated_at":"2015-01-21T23:48:12Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/docker/distribution/pulls/62/commits","review_comments_url":"https://api.github.com/repos/docker/distribution/pulls/62/comments","review_comment_url":"https://api.github.com/repos/docker/distribution/pulls/comments/{number}","comments_url":"https://api.github.com/repos/docker/distribution/issues/62/comments","statuses_url":"https://api.github.com/repos/docker/distribution/statuses/cda77c7f78c96f075eb37f098e9bfe7bdf53bb72","head":{"label":"jlhawn:generic_manifest","ref":"generic_manifest","sha":"cda77c7f78c96f075eb37f098e9bfe7bdf53bb72","user":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"repo":{"id":29154467,"name":"distribution","full_name":"jlhawn/distribution","owner":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jlhawn/distribution","description":"The Docker toolset to pack, ship, store, and deliver content","fork":true,"url":"https://api.github.com/repos/jlhawn/distribution","forks_url":"https://api.github.com/repos/jlhawn/distribution/forks","keys_url":"https://api.github.com/repos/jlhawn/distribution/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jlhawn/distribution/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jlhawn/distribution/teams","hooks_url":"https://api.github.com/repos/jlhawn/distribution/hooks","issue_events_url":"https://api.github.com/repos/jlhawn/distribution/issues/events{/number}","events_url":"https://api.github.com/repos/jlhawn/distribution/events","assignees_url":"https://api.github.com/repos/jlhawn/distribution/assignees{/user}","branches_url":"https://api.github.com/repos/jlhawn/distribution/branches{/branch}","tags_url":"https://api.github.com/repos/jlhawn/distribution/tags","blobs_url":"https://api.github.com/repos/jlhawn/distribution/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jlhawn/distribution/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jlhawn/distribution/git/refs{/sha}","trees_url":"https://api.github.com/repos/jlhawn/distribution/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jlhawn/distribution/statuses/{sha}","languages_url":"https://api.github.com/repos/jlhawn/distribution/languages","stargazers_url":"https://api.github.com/repos/jlhawn/distribution/stargazers","contributors_url":"https://api.github.com/repos/jlhawn/distribution/contributors","subscribers_url":"https://api.github.com/repos/jlhawn/distribution/subscribers","subscription_url":"https://api.github.com/repos/jlhawn/distribution/subscription","commits_url":"https://api.github.com/repos/jlhawn/distribution/commits{/sha}","git_commits_url":"https://api.github.com/repos/jlhawn/distribution/git/commits{/sha}","comments_url":"https://api.github.com/repos/jlhawn/distribution/comments{/number}","issue_comment_url":"https://api.github.com/repos/jlhawn/distribution/issues/comments/{number}","contents_url":"https://api.github.com/repos/jlhawn/distribution/contents/{+path}","compare_url":"https://api.github.com/repos/jlhawn/distribution/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jlhawn/distribution/merges","archive_url":"https://api.github.com/repos/jlhawn/distribution/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jlhawn/distribution/downloads","issues_url":"https://api.github.com/repos/jlhawn/distribution/issues{/number}","pulls_url":"https://api.github.com/repos/jlhawn/distribution/pulls{/number}","milestones_url":"https://api.github.com/repos/jlhawn/distribution/milestones{/number}","notifications_url":"https://api.github.com/repos/jlhawn/distribution/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jlhawn/distribution/labels{/name}","releases_url":"https://api.github.com/repos/jlhawn/distribution/releases{/id}","created_at":"2015-01-12T20:08:19Z","updated_at":"2015-02-04T00:30:36Z","pushed_at":"2015-02-12T21:44:28Z","git_url":"git://github.com/jlhawn/distribution.git","ssh_url":"git@github.com:jlhawn/distribution.git","clone_url":"https://github.com/jlhawn/distribution.git","svn_url":"https://github.com/jlhawn/distribution","homepage":null,"size":1500,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"docker:master","ref":"master","sha":"c23ad2715f167b96e2f56cc72dd9cd1d9d7bc4ae","user":{"login":"docker","id":5429470,"avatar_url":"https://avatars.githubusercontent.com/u/5429470?v=3","gravatar_id":"","url":"https://api.github.com/users/docker","html_url":"https://github.com/docker","followers_url":"https://api.github.com/users/docker/followers","following_url":"https://api.github.com/users/docker/following{/other_user}","gists_url":"https://api.github.com/users/docker/gists{/gist_id}","starred_url":"https://api.github.com/users/docker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/docker/subscriptions","organizations_url":"https://api.github.com/users/docker/orgs","repos_url":"https://api.github.com/users/docker/repos","events_url":"https://api.github.com/users/docker/events{/privacy}","received_events_url":"https://api.github.com/users/docker/received_events","type":"Organization","site_admin":false},"repo":{"id":28366058,"name":"distribution","full_name":"docker/distribution","owner":{"login":"docker","id":5429470,"avatar_url":"https://avatars.githubusercontent.com/u/5429470?v=3","gravatar_id":"","url":"https://api.github.com/users/docker","html_url":"https://github.com/docker","followers_url":"https://api.github.com/users/docker/followers","following_url":"https://api.github.com/users/docker/following{/other_user}","gists_url":"https://api.github.com/users/docker/gists{/gist_id}","starred_url":"https://api.github.com/users/docker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/docker/subscriptions","organizations_url":"https://api.github.com/users/docker/orgs","repos_url":"https://api.github.com/users/docker/repos","events_url":"https://api.github.com/users/docker/events{/privacy}","received_events_url":"https://api.github.com/users/docker/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/docker/distribution","description":"The Docker toolset to pack, ship, store, and deliver content","fork":false,"url":"https://api.github.com/repos/docker/distribution","forks_url":"https://api.github.com/repos/docker/distribution/forks","keys_url":"https://api.github.com/repos/docker/distribution/keys{/key_id}","collaborators_url":"https://api.github.com/repos/docker/distribution/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/docker/distribution/teams","hooks_url":"https://api.github.com/repos/docker/distribution/hooks","issue_events_url":"https://api.github.com/repos/docker/distribution/issues/events{/number}","events_url":"https://api.github.com/repos/docker/distribution/events","assignees_url":"https://api.github.com/repos/docker/distribution/assignees{/user}","branches_url":"https://api.github.com/repos/docker/distribution/branches{/branch}","tags_url":"https://api.github.com/repos/docker/distribution/tags","blobs_url":"https://api.github.com/repos/docker/distribution/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/docker/distribution/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/docker/distribution/git/refs{/sha}","trees_url":"https://api.github.com/repos/docker/distribution/git/trees{/sha}","statuses_url":"https://api.github.com/repos/docker/distribution/statuses/{sha}","languages_url":"https://api.github.com/repos/docker/distribution/languages","stargazers_url":"https://api.github.com/repos/docker/distribution/stargazers","contributors_url":"https://api.github.com/repos/docker/distribution/contributors","subscribers_url":"https://api.github.com/repos/docker/distribution/subscribers","subscription_url":"https://api.github.com/repos/docker/distribution/subscription","commits_url":"https://api.github.com/repos/docker/distribution/commits{/sha}","git_commits_url":"https://api.github.com/repos/docker/distribution/git/commits{/sha}","comments_url":"https://api.github.com/repos/docker/distribution/comments{/number}","issue_comment_url":"https://api.github.com/repos/docker/distribution/issues/comments/{number}","contents_url":"https://api.github.com/repos/docker/distribution/contents/{+path}","compare_url":"https://api.github.com/repos/docker/distribution/compare/{base}...{head}","merges_url":"https://api.github.com/repos/docker/distribution/merges","archive_url":"https://api.github.com/repos/docker/distribution/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/docker/distribution/downloads","issues_url":"https://api.github.com/repos/docker/distribution/issues{/number}","pulls_url":"https://api.github.com/repos/docker/distribution/pulls{/number}","milestones_url":"https://api.github.com/repos/docker/distribution/milestones{/number}","notifications_url":"https://api.github.com/repos/docker/distribution/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/docker/distribution/labels{/name}","releases_url":"https://api.github.com/repos/docker/distribution/releases{/id}","created_at":"2014-12-22T23:49:26Z","updated_at":"2015-02-12T18:31:41Z","pushed_at":"2015-02-11T23:02:15Z","git_url":"git://github.com/docker/distribution.git","ssh_url":"git@github.com:docker/distribution.git","clone_url":"https://github.com/docker/distribution.git","svn_url":"https://github.com/docker/distribution","homepage":null,"size":3225,"stargazers_count":90,"watchers_count":90,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":53,"forks":18,"open_issues":53,"watchers":90,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/docker/distribution/pulls/62"},"html":{"href":"https://github.com/docker/distribution/pull/62"},"issue":{"href":"https://api.github.com/repos/docker/distribution/issues/62"},"comments":{"href":"https://api.github.com/repos/docker/distribution/issues/62/comments"},"review_comments":{"href":"https://api.github.com/repos/docker/distribution/pulls/62/comments"},"review_comment":{"href":"https://api.github.com/repos/docker/distribution/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/docker/distribution/pulls/62/commits"},"statuses":{"href":"https://api.github.com/repos/docker/distribution/statuses/cda77c7f78c96f075eb37f098e9bfe7bdf53bb72"}}}}