Skip to content

Canonical Pull Request

apx release submit opens a pull request against the canonical repository (github.com/<org>/apis). This page describes the end-to-end flow.

Prerequisites

Requirement How to satisfy
gh CLI installed brew install gh or cli.github.com
gh authenticated gh auth login
Push access to canonical repo Org admin grants write or maintainer role

Flow

App repo                          Canonical repo
────────                          ──────────────
 1. apx release prepare
    (validate, write manifest)

 2. apx release submit
    ├─ shallow-clone canonical
    ├─ checkout -b apx/release/<api>/<ver>
    ├─ copy module files
    ├─ generate go.mod (if missing)
    ├─ git commit + push
    └─ gh pr create ───────────►  PR opened
                                  3. Canonical CI validates
                                     (lint, breaking, policy)
                                  4. Reviewer merges PR
                                  5. apx release finalize
                                     (tag, catalog, release record)

Branch Naming

Feature branches follow the pattern:

apx/release/<api-id-dashes>/<version>

For example, apx/release/proto-payments-ledger-v1/v1.0.0-beta.1.

PR Metadata

Field Value
Title release: <api-id>@<version>
Body Automated release of API \` at version ``.`
Base main
Head the feature branch above

What Gets Committed

The PR contains the module's source files copied from the app repo into the canonical path. For a proto API proto/payments/ledger/v1, the PR diff shows changes under proto/payments/ledger/:

proto/payments/ledger/
├── go.mod          ← generated if missing
└── v1/
    └── ledger.proto

Example

# From your app repo
apx release prepare proto/payments/ledger/v1 \
  --version v1.0.0-beta.1 \
  --lifecycle beta

apx release submit

# Output:
#   Submitting release proto/payments/ledger/v1 @ v1.0.0-beta.1
#   ✓ Release submitted successfully
#   PR: https://github.com/acme/apis/pull/42

Troubleshooting

"gh CLI not found"

Install the GitHub CLI: brew install gh or see cli.github.com.

"gh is not authenticated"

Run gh auth login and follow the prompts.

"permission denied" on push

You need write access to the canonical repo. Ask an org admin to grant you the Write or Maintainer role on the repo.

"no changes to release"

The canonical repo already contains identical content for this module. Verify you have new changes to release.