Create an quay image repository
Input Schema
| Property | Type | Description | Required |
|---|---|---|---|
| name | string | - | |
| token | string | - | |
| baseUrl | string | - | |
| repoKind | string | - | |
| namespace | string | - | |
| visibility | string | - | |
| description | string | - |
Output Schema
| Property | Type | Description | Required |
|---|---|---|---|
| repositoryUrl | string | - |
Usage Examples
Create a public Quay repository in an organization namespace
Creates a public repository on quay.io in the acme namespace. Use when onboarding a new service and publishing images publicly. Includes a fetch:template step and logs the created URL with debug:log.
steps:
- id: fetch-base
action: fetch:template
input:
url: ./skeleton
targetPath: .
- id: create-quay-repo
action: quay:create-repository
input:
name: ${{ parameters.componentId }}
namespace: acme
visibility: public
description: Container images for ${{ parameters.componentId }}
token: ${{ secrets.quayToken }}
repoKind: image
- id: log-repo-url
action: debug:log
input:
message: Created Quay repository at ${{ steps.create-quay-repo.output.repositoryUrl }}Create a private repository on a self-hosted Quay instance
Creates a private repository on an on-prem Quay deployment. Use when your organization hosts Quay internally and you want to keep images private.
steps:
- id: fetch-template
action: fetch:template
input:
url: ./skeleton
targetPath: .
- id: create-quay-repo
action: quay:create-repository
input:
name: payments-service
namespace: platform
visibility: private
description: Images for the payments service
token: ${{ secrets.quayRobotToken }}
baseUrl: https://quay.internal/api/v1
repoKind: image
- id: log-created
action: debug:log
input:
message: Repo URL ${{ steps.create-quay-repo.output.repositoryUrl }}Create environment specific repositories with a naming convention
Creates a private repository named with the component and environment. Use when you separate image repositories per environment.
steps:
- id: fetch
action: fetch:template
input:
url: ./skeleton
targetPath: .
- id: quay-create-env
action: quay:create-repository
input:
name: ${{ parameters.componentId }}-${{ parameters.environment }}
namespace: acme
visibility: private
description: Images for ${{ parameters.componentId }} in ${{ parameters.environment }} environment
token: ${{ secrets.quayToken }}
repoKind: image
- id: log
action: debug:log
input:
message: Created ${{ steps.quay-create-env.output.repositoryUrl }} for ${{ parameters.environment }}Create a repository in the token owner namespace
Creates a public repository without specifying a namespace so Quay uses the token owner namespace. Use with a user or robot token that owns the target namespace.
steps:
- id: fetch-assets
action: fetch:template
input:
url: ./skeleton
targetPath: .
- id: quay-create-default-ns
action: quay:create-repository
input:
name: sandbox-hello-world
visibility: public
description: Demo images from scaffolder run
token: ${{ secrets.quayUserToken }}
repoKind: image
- id: repo-output
action: debug:log
input:
message: Quay repository created ${{ steps.quay-create-default-ns.output.repositoryUrl }}Create a team repository using a parameterized namespace and reuse the output
Creates a private repository in a team namespace provided by the user. Logs and propagates the repository URL for downstream steps.
steps:
- id: fetch-base
action: fetch:template
input:
url: ./skeleton
targetPath: .
- id: quay-create-team
action: quay:create-repository
input:
name: ${{ parameters.componentId }}
namespace: ${{ parameters.quayNamespace }}
visibility: private
description: Team ${{ parameters.quayNamespace }} images for ${{ parameters.componentId }}
token: ${{ parameters.quayToken }}
baseUrl: https://quay.io/api/v1
repoKind: image
- id: confirm-url
action: debug:log
input:
message: Team repo created ${{ steps.quay-create-team.output.repositoryUrl }}