arazzo: 1.0.1 info: title: ReadMe Publish A Changelog Post summary: Create a changelog post on a branch and read it back by slug. description: >- Release communication on a ReadMe hub flows through the changelog. This workflow creates a typed changelog post (added, fixed, improved, deprecated, or removed) on the target branch and then fetches the created post back by slug to confirm publication. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: readmeApi url: ../openapi/readme-openapi.yml type: openapi workflows: - workflowId: publish-changelog-post summary: Create a changelog post then fetch it back by slug. description: >- Creates a changelog post on the supplied branch and reads it back by slug to confirm it was published. inputs: type: object required: - branch - title - body - type properties: branch: type: string description: The branch (version) to publish the changelog post on. title: type: string description: The changelog post title. body: type: string description: The Markdown body of the changelog post. type: type: string description: The change type (added | fixed | improved | deprecated | removed). apiKey: type: string description: ReadMe API key used as a Bearer token. steps: - stepId: createChangelog description: Create a typed changelog post on the target branch. operationPath: '{$sourceDescriptions.readmeApi.url}#/paths/~1branches~1{branch}~1changelogs/post' parameters: - name: branch in: path value: $inputs.branch - name: Authorization in: header value: "Bearer $inputs.apiKey" requestBody: contentType: application/json payload: title: $inputs.title body: $inputs.body type: $inputs.type successCriteria: - condition: $statusCode == 201 outputs: slug: $response.body#/slug - stepId: getChangelog description: Read the created changelog post back by slug to confirm publication. operationPath: '{$sourceDescriptions.readmeApi.url}#/paths/~1branches~1{branch}~1changelogs~1{slug}/get' parameters: - name: branch in: path value: $inputs.branch - name: slug in: path value: $steps.createChangelog.outputs.slug - name: Authorization in: header value: "Bearer $inputs.apiKey" successCriteria: - condition: $statusCode == 200 outputs: title: $response.body#/title publishedAt: $response.body#/publishedAt outputs: slug: $steps.createChangelog.outputs.slug publishedAt: $steps.getChangelog.outputs.publishedAt