{"id":20617617,"url":"https://github.com/whalimeter/gh-action-image-mirror","last_synced_at":"2026-04-18T08:01:50.843Z","repository":{"id":187967313,"uuid":"677845669","full_name":"whalimeter/gh-action-image-mirror","owner":"whalimeter","description":"GitHub action to mirror images between registries, defaults to the GHCR.","archived":false,"fork":false,"pushed_at":"2023-09-26T21:41:21.000Z","size":46,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-14T09:59:30.707Z","etag":null,"topics":["docker-hub","docker-image","ghcr"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whalimeter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-08-12T20:42:47.000Z","updated_at":"2026-04-02T06:22:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2887446-70e1-4cbb-b657-02e136ecddcf","html_url":"https://github.com/whalimeter/gh-action-image-mirror","commit_stats":null,"previous_names":["efrecon/gh-action-docker-mirror","whalimeter/gh-action-image-mirror"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/whalimeter/gh-action-image-mirror","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whalimeter%2Fgh-action-image-mirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whalimeter%2Fgh-action-image-mirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whalimeter%2Fgh-action-image-mirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whalimeter%2Fgh-action-image-mirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whalimeter","download_url":"https://codeload.github.com/whalimeter/gh-action-image-mirror/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whalimeter%2Fgh-action-image-mirror/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31961348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["docker-hub","docker-image","ghcr"],"created_at":"2024-11-16T12:05:00.656Z","updated_at":"2026-04-18T08:01:50.818Z","avatar_url":"https://github.com/whalimeter.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Image Mirror\n\nThis [project] implements a [script] and GitHub [action] that will mirror images\nbetween registries. The default is to mirror to the GHCR. For proper operation,\nyou will have to login both at the source and destination registry. When running\nas an action and against the GHCR, you will also have to give your workflow the\npermission to write packages.\n\nThe [script], also used by the [action] has good defaults. When passed an image\nwith a tag, it will only mirror that image. Otherwise, it will only pick up\nimages with sharp semantic versions in their tags, and is then able to restrict\nto a range of versions. The [script] supports both multi-platform and\nsingle-platform images.\n\nThe following example would mirror the Alpine images from the Docker Hub under\nthe repository that it is running at. It requires that a secret called\n`DOCKERHUB_TOKEN` is available. Only sharp versions and versions greater or\nequal to `3.18` will be mirrored.\n\n```yaml\nname: mirror\n\non:\n  workflow_dispatch:\n\njobs:\n  mirror:\n    runs-on: ubuntu-latest\n    permissions:\n      packages: write\n    steps:\n      -\n        name: Login to Docker Hub\n        uses: docker/login-action@v2\n        with:\n          username: efrecon\n          password: ${{ secrets.DOCKERHUB_TOKEN }}\n      -\n        name: Login to GHCR\n        uses: docker/login-action@v2\n        with:\n          registry: ghcr.io\n          username: ${{ github.repository_owner }}\n          password: ${{ secrets.GITHUB_TOKEN }}\n      - name: alpine\n        uses: whalimeter/gh-action-image-mirror@main\n        with:\n          image: alpine\n          minver: \"3.18\"\n```\n\n  [project]: https://github.com/efrecon/gh-mirror-docker-mirror\n  [script]: ./mirror.sh\n  [action]: action.yml\n\nFor more information about the action check its [inputs][action].\n\n## Development\n\nThe `reg-tags` package is added as a subtree, as it is not possible to use\nsubmodules in GitHub actions (their code is not automatically checked out from\ncalling workflows). To add the sub-project, the following command was issued:\n\n```shell\ngit subtree add --prefix reg-tags https://github.com/efrecon/reg-tags.git master --squash\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhalimeter%2Fgh-action-image-mirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhalimeter%2Fgh-action-image-mirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhalimeter%2Fgh-action-image-mirror/lists"}