Skip to content

Update OpenAPI specification #1300

Update OpenAPI specification

Update OpenAPI specification #1300

Workflow file for this run

name: Publish
on:
workflow_dispatch: {}
release:
types:
- created
push:
branches:
- master
jobs:
# Trigger generated code updates only after a release was created
# Generated code pipeline relies on latest release to pick up the spec
publish-latest-release:
if: >-
(github.event_name == 'workflow_dispatch') || (github.event_name == 'release')
name: Trigger generated code update
runs-on: ubuntu-latest
steps:
- name: Checkout openapi
uses: actions/checkout@v2
- name: Fetch app installation token
uses: tibdex/github-app-token@v1.5.2
id: gh-api-token
with:
app_id: ${{ secrets.GH_APP_STRIPE_OPENAPI_APP_ID }}
private_key: ${{ secrets.GH_APP_STRIPE_OPENAPI_PRIVATE_KEY }}
- name: Trigger generated code update
run: |
curl --fail-with-body \
-XPOST \
-H 'Authorization: token ${{ steps.gh-api-token.outputs.token }}' \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "Content-Type: application/json" \
https://api.github.com/repos/stripe/sdk-codegen/actions/workflows/codegen.yml/dispatches \
--data '{"ref":"master"}'
- uses: ./actions/notify-slack
if: always()
with:
action: 'Publishing the OpenAPI spec to other repositories'
send_on_success: false
bot_token: ${{ secrets.SLACK_BOT_TOKEN }}
# stripe-mock and stripe-cli are updated with latest versions of files straight from master
publish-latest-master:
if: >-
(github.event_name == 'workflow_dispatch') || (github.event_name == 'push')
name: Publish spec to stripe-cli & stripe-mock
runs-on: ubuntu-latest
steps:
- name: Checkout openapi
uses: actions/checkout@v2
- name: Fetch app installation token
uses: tibdex/github-app-token@v1.5.2
id: gh-api-token
with:
app_id: ${{ secrets.GH_APP_STRIPE_OPENAPI_APP_ID }}
private_key: ${{ secrets.GH_APP_STRIPE_OPENAPI_PRIVATE_KEY }}
# Fetch repositories to modify
- uses: actions/checkout@v3
with:
token: ${{ steps.gh-api-token.outputs.token }}
repository: stripe/stripe-mock
path: stripe-mock
- run: |
rm -f ./stripe-mock/embedded/openapi/spec3.json
rm -f ./stripe-mock/embedded/openapi/spec3.beta.sdk.json
rm -f ./stripe-mock/embedded/openapi/fixtures3.json
rm -f ./stripe-mock/embedded/openapi/fixtures3.beta.json
cp openapi/spec3.json stripe-mock/embedded/openapi/spec3.json
cp openapi/spec3.beta.sdk.json stripe-mock/embedded/openapi/spec3.beta.sdk.json
cp openapi/fixtures3.json stripe-mock/embedded/openapi/fixtures3.json
cp openapi/fixtures3.beta.json stripe-mock/embedded/openapi/fixtures3.beta.json
- name: Create Pull Request on stripe-mock
id: cpr
uses: peter-evans/create-pull-request@v6
with:
path: stripe-mock
title: OpenAPI Update
body: |
Automated OpenAPI update for https://github.com/stripe/openapi/commit/${{ github.sha }}
[→ Debug this workflow](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})
branch: update-openapi
token: ${{ steps.gh-api-token.outputs.token }}
delete-branch: true
commit-message: Update OpenAPI for ${{ github.sha }}
committer: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
author: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
- uses: ./actions/enable-auto-merge
name: Enable auto-merge for stripe-mock
if: ${{ steps.cpr.outputs.pull-request-url != '' }}
with:
pr_url: "${{ steps.cpr.outputs.pull-request-url }}"
github_token: ${{ steps.gh-api-token.outputs.token }}
repo: stripe/stripe-mock
- uses: ./actions/approve
name: Approve stripe-mock PR
if: ${{ steps.cpr.outputs.pull-request-url != '' }}
with:
pr_url_or_branch: ${{ steps.cpr.outputs.pull-request-url }}
repo: stripe/stripe-mock
github_app_id: ${{ secrets.GH_APP_STRIPE_OPENAPI_APPROVER_APP_ID }}
github_app_private_key: ${{ secrets.GH_APP_STRIPE_OPENAPI_APPROVER_PRIVATE_KEY }}
# Set up GO
- uses: actions/setup-go@v2
with:
go-version: 1.19
- name: Checkout stripe-cli
uses: actions/checkout@v3
with:
token: ${{ steps.gh-api-token.outputs.token }}
repository: stripe/stripe-cli
path: stripe-cli
- name: Update generated code in stripe-cli
run: |
rm -f ./api/openapi-spec/spec3.sdk.json
cp ../openapi/spec3.sdk.json ./api/openapi-spec/spec3.sdk.json
go generate ./...
working-directory: ./stripe-cli
- name: Create pull request on stripe-cli
uses: peter-evans/create-pull-request@v6
with:
path: stripe-cli
title: OpenAPI Update
body: |
Automated OpenAPI update for https://github.com/stripe/openapi/commit/${{ github.sha }}
This pull request was initiated by @${{ github.actor }}
[→ Debug this workflow](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})
branch: update-openapi
token: ${{ steps.gh-api-token.outputs.token }}
delete-branch: true
commit-message: Update OpenAPI for ${{ github.sha }}
committer: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
author: "Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com>"
- uses: ./actions/notify-slack
if: always()
with:
action: 'Publishing the OpenAPI spec to other repositories'
send_on_success: false
bot_token: ${{ secrets.SLACK_BOT_TOKEN }}