{"id":16861096,"url":"https://github.com/cpuguy83/zapp","last_synced_at":"2025-04-11T08:35:42.445Z","repository":{"id":148365104,"uuid":"305531169","full_name":"cpuguy83/zapp","owner":"cpuguy83","description":"Tool to interact with Docker registry objects.","archived":false,"fork":false,"pushed_at":"2024-10-28T17:44:10.000Z","size":77,"stargazers_count":25,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T06:06:48.489Z","etag":null,"topics":["containers","docker","registry"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cpuguy83.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-19T22:47:29.000Z","updated_at":"2025-02-03T05:11:17.000Z","dependencies_parsed_at":"2025-02-19T01:41:45.655Z","dependency_job_id":null,"html_url":"https://github.com/cpuguy83/zapp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpuguy83%2Fzapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpuguy83%2Fzapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpuguy83%2Fzapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpuguy83%2Fzapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cpuguy83","download_url":"https://codeload.github.com/cpuguy83/zapp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248361827,"owners_count":21090991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["containers","docker","registry"],"created_at":"2024-10-13T14:29:16.583Z","updated_at":"2025-04-11T08:35:42.419Z","avatar_url":"https://github.com/cpuguy83.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zapp\nTool to interact with Docker registry objects.  \nThis hooks in with registry auth stored by the docker CLI.  \nThis should work with any Docker or OCI compatible registry.\n\n# Usage\n\n## Inspect an image\n\n```terminal\n$ zapp docker.io/library/busybox:latest | jq .\n{\n  \"manifests\": [\n    {\n      \"digest\": \"sha256:c9249fdf56138f0d929e2080ae98ee9cb2946f71498fc1484288e6a935b5e5bc\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"amd64\",\n        \"os\": \"linux\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:a7c572c26ca470b3148d6c1e48ad3db90708a2769fdf836aa44d74b83190496d\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"arm\",\n        \"os\": \"linux\",\n        \"variant\": \"v5\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:ce800872092c37c5f20ef111a5a69c5c8e94d0c5e055f76f530cb5e78a26ec03\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"arm\",\n        \"os\": \"linux\",\n        \"variant\": \"v6\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:6655df04a3df853b029a5fac8836035ac4fab117800c9a6c4b69341bb5306c3d\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"arm\",\n        \"os\": \"linux\",\n        \"variant\": \"v7\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:b8946184ce3ad6b4a09ebad2d85e81cfcaadc6897bfae2e9c6e2a4fe6afa6ee0\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"arm64\",\n        \"os\": \"linux\",\n        \"variant\": \"v8\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:ba65e8d39e89b5c16f036c88c85952756777bf5385bce148bc44be48fac37d94\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"386\",\n        \"os\": \"linux\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:d7e83316d74e150866d82c45de342e78f662fe0aefbdb822d7d10c8b8e39cc4b\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"mips64le\",\n        \"os\": \"linux\"\n      },\n      \"size\": 527\n    },\n    {\n      \"digest\": \"sha256:0a11a95568b680dce6906a015bed88381e28ad17b31a63f7fec057b35573235a\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"ppc64le\",\n        \"os\": \"linux\"\n      },\n      \"size\": 528\n    },\n    {\n      \"digest\": \"sha256:426c855775f026d3fe76988b71938f4c9dc6840f09c0f29d8d4c75cc4238503b\",\n      \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n      \"platform\": {\n        \"architecture\": \"s390x\",\n        \"os\": \"linux\"\n      },\n      \"size\": 528\n    }\n  ],\n  \"mediaType\": \"application/vnd.docker.distribution.manifest.list.v2+json\",\n  \"schemaVersion\": 2\n}\n```\n\n### Drill down into that image\n\n```terminal\n$ zapp docker.io/library/busybox:latest@sha256:c9249fdf56138f0d929e2080ae98ee9cb2946f71498fc1484288e6a935b5e5bc\n{\n  \"schemaVersion\": 2,\n  \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n  \"config\": {\n    \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n    \"size\": 1493,\n    \"digest\": \"sha256:f0b02e9d092d905d0d87a8455a1ae3e9bb47b4aa3dc125125ca5cd10d6441c9f\"\n  },\n  \"layers\": [\n    {\n      \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n      \"size\": 764619,\n      \"digest\": \"sha256:9758c28807f21c13d05c704821fdd56c0b9574912f9b916c65e1df3e6b8bc572\"\n    }\n  ]\n}\n```\n\n### Upload to a registry\n\n```terminal\n$ zapp docker.io/cpuguy83/somerepo ./path/to/content.tar.gz\n```\n\nCan upload any kind of content.\nYou can specify the media type after the content path (and as such skip mediatype detection).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpuguy83%2Fzapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcpuguy83%2Fzapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpuguy83%2Fzapp/lists"}