{"id":20777997,"url":"https://github.com/goharbor/replication-verification","last_synced_at":"2025-07-24T23:02:17.362Z","repository":{"id":55857612,"uuid":"285491476","full_name":"goharbor/replication-verification","owner":"goharbor","description":"This repository is created to keep and regularly run the related compatibility testing cases that are used to verify whether the related replication adapters are still working well in Harbor or not.","archived":false,"fork":false,"pushed_at":"2021-02-23T23:21:24.000Z","size":2021033,"stargazers_count":5,"open_issues_count":7,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-30T18:42:31.517Z","etag":null,"topics":["adapters","cloud-native","compatibility-testing","container","harbor","image","kubernetes","registry","replication"],"latest_commit_sha":null,"homepage":"","language":"RobotFramework","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/goharbor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-06T06:25:49.000Z","updated_at":"2023-09-07T15:21:00.000Z","dependencies_parsed_at":"2022-08-15T07:51:22.004Z","dependency_job_id":null,"html_url":"https://github.com/goharbor/replication-verification","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/goharbor/replication-verification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goharbor%2Freplication-verification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goharbor%2Freplication-verification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goharbor%2Freplication-verification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goharbor%2Freplication-verification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goharbor","download_url":"https://codeload.github.com/goharbor/replication-verification/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goharbor%2Freplication-verification/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266920113,"owners_count":24006699,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"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":["adapters","cloud-native","compatibility-testing","container","harbor","image","kubernetes","registry","replication"],"created_at":"2024-11-17T13:18:27.474Z","updated_at":"2025-07-24T23:02:17.284Z","avatar_url":"https://github.com/goharbor.png","language":"RobotFramework","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Replication-Verification\n\nReplication is a fancy feature of [Harbor](https://github.com/goharbor/harbor) registry. With the adapter framework, Harbor\nhas supported replicating artifacts(container images, Helm Charts) between Harbor\u003c-\u003eHarbor or Harbor\u003c-\u003eother 3rd registry services,\nincluding Dockerhub, AWS ECR, Google GCR, Azure ACR, GitLab Registry, Ali ACR and Quay etc. with both pull and push modes. \nThis repository is created to keep and regularly run the related compatibility testing cases that are used to verify \nwhether the related replication adapters are still working well in Harbor or not and check if the newly contributed adapter\nis implemented properly. Based on the compatibility testing, a daily well-organized report will be updated in time for the\ncommunity to refer.\n\n\n## Report\n\n| case \\ version | master | 2.1.x | 2.0.x | 1.10.x |\n| -------------- | :----: | :---: | :----: | :----: |\n| Dockerhub      | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-DockerHub.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-DockerHub.gif)  | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-DockerHub.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-DockerHub.gif)  |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-DockerHub.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-DockerHub.gif) | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-1.10.0-DockerHub.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-1.10.0-DockerHub.gif) |\n| AwsECR         | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-AwsECR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-AwsECR.gif)        | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-AwsECR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-AwsECR.gif)        |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-AwsECR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-AwsECR.gif)       | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-1.10.0-AwsECR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-1.10.0-AwsECR.gif)       |\n| GoogleGCR      | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-GoogleGCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-GoogleGCR.gif)  | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-GoogleGCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-GoogleGCR.gif)  |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-GoogleGCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-GoogleGCR.gif) | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-1.10.0-GoogleGCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-1.10.0-GoogleGCR.gif) |\n| AzureACR       | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-AzureACR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-AzureACR.gif)    | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-AzureACR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-AzureACR.gif)    |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-AzureACR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-AzureACR.gif)   | \n| Gitlab         | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-Gitlab.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-Gitlab.gif)        | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-Gitlab.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-Gitlab.gif)        |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-Gitlab.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-Gitlab.gif)       | \n| AliACR         | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-AliACR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-AliACR.gif)        | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-AliACR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-AliACR.gif)        |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-AliACR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-AliACR.gif)       | \n| Harbor(2.x)    | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-Harbor.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-Harbor.gif)        | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-Harbor.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-Harbor.gif)        |  [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-Harbor.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.0.0-Harbor.gif)       | \n| Quay           | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-Quay.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-Quay.gif)            | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-Quay.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-Quay.gif)            |\n| TencentTCR     | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-TencentTCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-TencentTCR.gif)| [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-TencentTCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-2.1.0-TencentTCR.gif)|\n| GithubGHCR      | [![status](https://github.com/goharbor/replication-verification/raw/results/results/st-master-GithubGHCR.svg)](https://github.com/goharbor/replication-verification/raw/results/results/st-master-GithubGHCR.gif)  |\n\n**NOTES:** Each square represent an executing result of the relevant compatibility testing case. From left to right, they are:\n\n * Registry endpoint creation case\n * Pull-based replication case\n * Push-based replication case\n * Deletion replication case\n\nGreen color means case execution is successful and red color means case execution is failed.\n\n## Triggers\n\n### crontab schedule\n\nRun daily at UTC time `22:00`.\n\n\u003e cron: '0 22 * * *'\n\n### manually trigger github action\n\nIssue HTTP request to run.\n\n```bash\ncurl -u goharbor -XPOST https://api.github.com/repos/goharbor/replication-verification/dispatches -d '\n{\n  \"event_type\": \"testing\"\n}'\n```\n\n### run locally\n\nUse local script to run. (Ubuntu 18.04 is tested.)\n\nClone this repository first:\n\nExecute the script with proper parameters:\n\n```shell script\n./localrun.sh \u003ccase name\u003e \u003charbor IP\u003e \u003cregistry_id:xxx\u003e \u003cregistry_key:xxx\u003e [true to show browser]\n```\n\n## Contribute new replication adapter\n\nIf you're planning to contribute a new replication adapter, please follow the [contributing guide](./CONTRIBUTING.md) to start.\n\n## Contact us\n\nUse the ways shown [here](https://github.com/goharbor/harbor#community) to get contact with us if you encounter any issues related to replication adapter contributions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoharbor%2Freplication-verification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoharbor%2Freplication-verification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoharbor%2Freplication-verification/lists"}