Chapter 9. mirror


9.1. syncCancel

Update the sync_status for a given Repository’s mirroring configuration.

POST /api/v1/repository/{repository}/mirror/sync-cancel

Authorizations: oauth2_implicit (repo:admin)

Path parameters

Expand
TypeNameDescriptionSchema

path

repository
required

The full path of the repository. e.g. namespace/name

string

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror/sync-cancel" \
Copy to Clipboard Toggle word wrap

9.2. syncNow

Update the sync_status for a given Repository’s mirroring configuration.

POST /api/v1/repository/{repository}/mirror/sync-now

Authorizations: oauth2_implicit (repo:admin)

Path parameters

Expand
TypeNameDescriptionSchema

path

repository
required

The full path of the repository. e.g. namespace/name

string

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror/sync-now" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

9.3. getRepoMirrorConfig

Return the Mirror configuration for a given Repository.

GET /api/v1/repository/{repository}/mirror

Authorizations: oauth2_implicit (repo:admin)

Path parameters

Expand
TypeNameDescriptionSchema

path

repository
required

The full path of the repository. e.g. namespace/name

string

Responses

Expand
HTTP CodeDescriptionSchema

200

Successful invocation

ViewMirrorConfig

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X GET "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

9.4. changeRepoMirrorConfig

Allow users to modifying the repository’s mirroring configuration.

PUT /api/v1/repository/{repository}/mirror

Authorizations: oauth2_implicit (repo:admin)

Path parameters

Expand
TypeNameDescriptionSchema

path

repository
required

The full path of the repository. e.g. namespace/name

string

Request body schema (application/json)

Update the repository mirroring configuration.

Expand
NameDescriptionSchema

is_enabled
optional

Used to enable or disable synchronizations.

boolean

external_reference
optional

Location of the external repository.

string

external_registry_username
optional

Username used to authenticate with external registry.

 

external_registry_password
optional

Password used to authenticate with external registry.

 

sync_start_date
optional

Determines the next time this repository is ready for synchronization.

string

sync_interval
optional

Number of seconds after next_start_date to begin synchronizing.

integer

robot_username
optional

Username of robot which will be used for image pushes.

string

root_rule
optional

A list of glob-patterns used to determine which tags should be synchronized.

object

external_registry_config
optional

 

object

skopeo_timeout_interval
required

Number of seconds mirroring job will run before timing out.

Integer

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful invocation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X PUT "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
    -H "Authorization: Bearer <access_token>" \
    -H "Content-Type: application/json" \
    -d '{
        "is_enabled": <false>, 
1

        "external_reference": "<external_reference>",
        "external_registry_username": "<external_registry_username>",
        "external_registry_password": "<external_registry_password>",
        "sync_start_date": "<sync_start_date>",
        "sync_interval": <sync_interval>,
        "robot_username": "<robot_username>",
        "skopeo_timeout_interval": 600,
        "root_rule": {
            "rule": "<rule>",
            "rule_type": "<rule_type>"
        }
    }'
Copy to Clipboard Toggle word wrap
1
Disables automatic synchronization.

9.5. createRepoMirrorConfig

Create a RepoMirrorConfig for a given Repository.

POST /api/v1/repository/{repository}/mirror

Authorizations: oauth2_implicit (repo:admin)

Path parameters

Expand
TypeNameDescriptionSchema

path

repository
required

The full path of the repository. e.g. namespace/name

string

Request body schema (application/json)

Create the repository mirroring configuration.

Expand
NameDescriptionSchema

is_enabled
optional

Used to enable or disable synchronizations.

boolean

external_reference
required

Location of the external repository.

string

external_registry_username
optional

Username used to authenticate with external registry.

 

external_registry_password
optional

Password used to authenticate with external registry.

 

sync_start_date
required

Determines the next time this repository is ready for synchronization.

string

sync_interval
required

Number of seconds after next_start_date to begin synchronizing.

integer

robot_username
required

Username of robot which will be used for image pushes.

string

root_rule
required

A list of glob-patterns used to determine which tags should be synchronized.

object

external_registry_config
optional

 

object

skopeo_timeout_interval
required

Number of seconds mirroring job will run before timing out.

Integer

Responses

Expand
HTTP CodeDescriptionSchema

201

Successful creation

 

400

Bad Request

ApiError

401

Session required

ApiError

403

Unauthorized access

ApiError

404

Not found

ApiError

Example command

$ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
    -H "Authorization: Bearer <access_token>" \
    -H "Content-Type: application/json" \
    -d '{
        "is_enabled": <is_enabled>,
        "external_reference": "<external_reference>",
        "external_registry_username": "<external_registry_username>",
        "external_registry_password": "<external_registry_password>",
        "sync_start_date": "<sync_start_date>",
        "sync_interval": <sync_interval>,
        "robot_username": "<robot_username>",
        "skopeo_timeout_interval": 600,
        "root_rule": {
            "rule": "<rule>",
            "rule_type": "<rule_type>"
        }
    }'
Copy to Clipboard Toggle word wrap
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat