Skip to content
Platform Status

Technical Reference

gram push

The push command deploys the staged sources in a deployment configuration to the target project.

For more information on staging sources, see the gram stage reference.

The gram push command requires an API key, an organization slug, and a project slug. After running gram auth, these values come from the local profile. For more information on these values, see the global CLI options.

Terminal window
gram push --config gram.deploy.json

After the deployment completes, the command prints a link to view the deployment in the dashboard. If the deployment fails, check its logs with gram status.

The deployment file contains the configuration for all sources that will be pushed. Below is a sample deployment file:

{
"schema_version": "1.0.0",
"type": "deployment",
"sources": [
{
"type": "openapiv3",
"location": "/path/to/spec.yaml",
"name": "My API",
"slug": "my-api"
}
]
}

Note on slugs

Names and slugs must be unique across all sources in the target project.

This specifies the path to the deployment file.

Terminal window
gram push --config ./path/to/gram.deploy.json [command options]

This specifies the deployment method for handling existing artifacts. If not specified, it defaults to merge.

  • merge: The deployment merges with any existing deployment artifacts in the project.
  • replace: The deployment replaces any existing deployment artifacts in the project.
Terminal window
gram push --method replace [command options]

This adds a unique key to identify the deployment request for idempotency. It ensures the same deployment isn’t applied multiple times if the command is run again with the same key. It only applies when the method is replace.

Terminal window
gram push --idempotency-key unique-deployment-id [command options]

Use this option to skip polling for deployment completion and return immediately. By default, this is set to false.

Terminal window
gram push --skip-poll [command options]