Push the content in the workspace to a remote Azure repository.
Input Schema
| Property | Type | Description | Required | 
|---|---|---|---|
| token | string | - | |
| branch | string | - | |
| remoteUrl | string | - | |
| sourcePath | string | - | |
| gitAuthorName | string | - | |
| gitAuthorEmail | string | - | |
| gitCommitMessage | string | - | 
Output Schema
Usage Examples
Push a newly generated service to Azure DevOps main branch
Fetch a service template with fetch:template and push the result to the main branch of an Azure DevOps repository. Use this when creating a new service repository.
steps:
  - id: fetch-template
    action: fetch:template
    input:
      url: https://github.com/contoso/software-templates/catalog-service
      targetPath: .
      values:
        name: ${{ parameters.componentId }}
        owner: ${{ parameters.owner }}
  - id: push-to-azure
    action: azure:repository:push
    input:
      remoteUrl: https://dev.azure.com/contoso/Platform/_git/orders-service
      branch: main
      gitCommitMessage: chore: scaffold orders-service
      gitAuthorName: Backstage Scaffolder
      gitAuthorEmail: scaffolder@contoso.com
      token: ${{ secrets.azureToken }}Push only a subdirectory to an Azure DevOps repo
Generate multiple components, then push only a specific subdirectory to the target repository using sourcePath. Use this when your workspace contains more than you want in the repo root.
steps:
  - id: fetch-template
    action: fetch:template
    input:
      url: https://github.com/contoso/software-templates/multi-service
      targetPath: .
      values:
        rootName: ${{ parameters.componentId }}
        includePayments: true
  - id: push-payments-service
    action: azure:repository:push
    input:
      remoteUrl: https://dev.azure.com/contoso/Platform/_git/payment-api
      branch: main
      sourcePath: services/payment-api
      gitCommitMessage: feat(payment-api): initial scaffold
      gitAuthorName: Scaffolder Bot
      gitAuthorEmail: scaffolder@contoso.com
      token: ${{ secrets.azureToken }}Push to a feature branch for a work item
Create a feature branch named from a ticket identifier and push the generated files. Use this to open a PR from a feature branch.
steps:
  - id: fetch-template
    action: fetch:template
    input:
      url: https://github.com/contoso/software-templates/service-skeleton
      targetPath: .
      values:
        name: payments
        owner: ${{ parameters.owner }}
  - id: push-feature-branch
    action: azure:repository:push
    input:
      remoteUrl: https://dev.azure.com/contoso/Platform/_git/platform-services
      branch: feature/${{ parameters.ticketId }}-init-payments
      sourcePath: .
      gitCommitMessage: feat(payments): scaffold service for ${{ parameters.ticketId }}
      gitAuthorName: Backstage Scaffolder
      gitAuthorEmail: scaffolder@contoso.com
      token: ${{ secrets.azureToken }}Push from a custom path with explicit author details
Generate an app in a nested folder and push only that folder. Provide explicit author identity for audit requirements.
steps:
  - id: fetch-template
    action: fetch:template
    input:
      url: https://github.com/contoso/software-templates/react-app
      targetPath: generated-app
      values:
        appName: ${{ parameters.componentId }}
        owner: ${{ parameters.owner }}
  - id: push-generated-app
    action: azure:repository:push
    input:
      remoteUrl: https://dev.azure.com/contoso/Web/_git/frontend-app
      branch: main
      sourcePath: generated-app
      gitCommitMessage: feat(frontend-app): bootstrap ${{ parameters.componentId }}
      gitAuthorName: Jane Developer
      gitAuthorEmail: jane.dev@contoso.com
      token: ${{ secrets.azureToken }}Push to a monorepo using parameters for URL and token
Push a package folder into a monorepo branch using values supplied by template parameters. Use this when the repo URL and token are provided at runtime.
steps:
  - id: fetch-template
    action: fetch:template
    input:
      url: https://github.com/contoso/software-templates/node-package
      targetPath: packages/${{ parameters.componentId }}
      values:
        packageName: @contoso/${{ parameters.componentId }}
        owner: ${{ parameters.owner }}
  - id: push-monorepo
    action: azure:repository:push
    input:
      remoteUrl: ${{ parameters.repoUrl }}
      branch: chore/bootstrap-${{ parameters.componentId }}
      sourcePath: packages/${{ parameters.componentId }}
      gitCommitMessage: chore(${{ parameters.componentId }}): add initial package
      gitAuthorName: Scaffolder Bot
      gitAuthorEmail: scaffolder@contoso.com
      token: ${{ parameters.azurePat }}