Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/postman-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

# This workflow takes care of Syncing local changes to Project Workspace (cloud)
#
# Current behavior (intermediate workaround):
# Both actions trigger on push to base branch, which happens when creating a new release.
#
name: Publish Changes to Postman Cloud

on:
push: # Temporary trigger; will be removed after migration to Argo
branches:
- main
workflow_dispatch: # Will be used by Argo post-sync-hook to trigger this workflow
permissions:
contents: read

jobs:
publish-changes:
name: Publish Changes
# Private runner not required here, but using it for cost-effectiveness. Switch to GH runners if load increases.
runs-on: build9-arm-ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Using canary CLI for consistency with E2E test workflow
- name: Install Postman CLI
run: curl -o- "https://dl-cli.pstmn.io/install/unix.sh" | sh

- name: Verify Postman CLI version
run: postman --version

- name: Login to Postman
env:
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
run: postman login --with-api-key "$POSTMAN_API_KEY"

- name: Publish changes to Cloud
run: postman workspace push -y --report-events
12 changes: 10 additions & 2 deletions .postman/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,16 @@
"id": "7dec10fa-7f81-44d6-a092-57df436274e6"
},
"entities": {
"collections": [],
"environments": [],
"collections": [
"../postman/collections/Python Echo API_916323-b113e493-a80c-4a55-8494-85a3ee4403e7.postman_collection.json"
],
"environments": [
"../postman/environments/DELETEME_916323-5081c504-2316-41a0-b032-3b15e8dcb8ce.postman_environment.json",
"../postman/environments/DELETEME_916323-60e1369c-7a04-4ea0-9c3b-c0149fce46c6.postman_environment.json",
"../postman/environments/DELETEME_916323-69196f6a-eecf-475d-9690-8e14620fe864.postman_environment.json",
"../postman/environments/DELETEME_916323-b2cfd651-19e8-470a-b5bd-7bd7830c5c0e.postman_environment.json",
"../postman/environments/DELETEME_916323-d3dabca2-573a-49a9-890a-117b831764d7.postman_environment.json"
],
"specs": [],
"flows": [],
"globals": []
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"info": {
"_postman_id": "b113e493-a80c-4a55-8494-85a3ee4403e7",
"name": "Python Echo API",
"description": "A Flask-based HTTP echo service that mirrors request data back to the client. Useful for testing HTTP clients and debugging API requests.\n\nBased on the httpbin pattern, this API provides endpoints for:\n- Request inspection (headers, query params, body)\n- HTTP method testing (GET, POST, PUT)\n- Status code simulation\n- Response header manipulation",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Basic",
"item": [],
"id": "74da2693-e50c-47ac-9926-87d349e3b562",
"description": "Basic endpoints for health check and root access"
},
{
"name": "Request Inspection",
"item": [],
"id": "8c7663c9-230b-4402-8f11-e717c38f835f",
"description": "Endpoints for inspecting incoming request data"
},
{
"name": "HTTP Methods",
"item": [],
"id": "82565ee8-cc0c-4f20-8a21-1eb707b9ed8e",
"description": "Endpoints for testing different HTTP methods and inspecting request data"
},
{
"name": "Status Codes",
"item": [],
"id": "c232a4ef-03e1-49fc-ab69-a00f50d95725",
"description": "Endpoints for testing HTTP status code responses"
},
{
"name": "Response Inspection",
"item": [],
"id": "8bebba17-29f8-429c-80c8-42fb2247c0aa",
"description": "Endpoints for manipulating and inspecting response data"
},
{
"name": "External",
"item": [],
"id": "f82985b8-f3d3-491a-9fc7-7111805ec29d",
"description": "Endpoints that make external API calls"
}
],
"variable": [
{
"id": "6315a6ea-d390-4d5e-b350-d0105007ebc9",
"key": "baseUrl",
"value": "http://localhost:5000",
"type": "string"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"owner": "916323",
"team": "1",
"lastUpdatedBy": "916323",
"lastRevision": 1772030933000,
"id": "5081c504-2316-41a0-b032-3b15e8dcb8ce",
"name": "DELETEME",
"color": null,
"values": [],
"createdAt": "2026-02-25T14:48:52.000Z",
"updatedAt": "2026-02-25T14:48:53.000Z"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"owner": "916323",
"team": "1",
"lastUpdatedBy": "916323",
"lastRevision": 1772030519000,
"id": "60e1369c-7a04-4ea0-9c3b-c0149fce46c6",
"name": "DELETEME",
"color": null,
"values": [],
"createdAt": "2026-02-25T14:41:59.000Z",
"updatedAt": "2026-02-25T14:41:59.000Z"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"owner": "916323",
"team": "1",
"lastUpdatedBy": "916323",
"lastRevision": 1772030893000,
"id": "69196f6a-eecf-475d-9690-8e14620fe864",
"name": "DELETEME",
"color": null,
"values": [],
"createdAt": "2026-02-25T14:48:12.000Z",
"updatedAt": "2026-02-25T14:48:13.000Z"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"owner": "916323",
"team": "1",
"lastUpdatedBy": "916323",
"lastRevision": 1772030864000,
"id": "b2cfd651-19e8-470a-b5bd-7bd7830c5c0e",
"name": "DELETEME",
"color": null,
"values": [],
"createdAt": "2026-02-25T14:47:43.000Z",
"updatedAt": "2026-02-25T14:47:44.000Z"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"owner": "916323",
"team": "1",
"lastUpdatedBy": "916323",
"lastRevision": 1772030341000,
"id": "d3dabca2-573a-49a9-890a-117b831764d7",
"name": "DELETEME",
"color": null,
"values": [],
"createdAt": "2026-02-25T14:39:01.000Z",
"updatedAt": "2026-02-25T14:39:01.000Z"
}