Skip to content

Update to make activity log descending order by default and allow the api to accept the order preferred #413

Update to make activity log descending order by default and allow the api to accept the order preferred

Update to make activity log descending order by default and allow the api to accept the order preferred #413

# ℹ️
# This workflow runs for pull_requests that are based on main
# if there is a change in the file `openapi.yaml`
# but only when opening a PR containing changes to the file
# of if a commit is added to a PR containing changes to the file
#
# - 1. it runs the coral setup
# - 2. auto generates the file `coral/types/api.t.ds` from the `openapi.yaml`
# - 3. checks if the file file `coral/types/api.t.ds` was changed
# - if not: ends the workflow ✅
# - if yes:
# - 3.1 runs the typescript compiler in 'coral/'
# - if 3.1. is successful
# -> adds the file `coral/types/api.t.ds` as new commit ✅
# - if 3.1. fails
# -> fails the workflow ⛔️
# This workflow ensures that our type definition for APIs are always in
# sync and that API changes don't break things in coral.
name: Auto-generate TypeScript api file
on:
pull_request:
paths:
- 'openapi.yaml'
types:
- opened
- synchronize
permissions:
contents: write
jobs:
check-for-changes-openapi:
runs-on: ubuntu-latest
outputs:
change_detected: ${{ steps.detect-openapi-changes.outputs.change_detected }}
steps:
- name: Checkout code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
persist-credentials: true
- id: detect-openapi-changes
name: Check for changes to "openapi.yaml"
run: |
if git diff --name-only HEAD^ HEAD | grep -q 'openapi.yaml'; then
echo "OpenAPI changes detected. Will generate new TypeScript types now 🤖"
echo "change_detected=true" >> $GITHUB_OUTPUT
else
echo "No new changes to OpenAPI detected, will end workflow."
fi
detect-ts-changes:
runs-on: ubuntu-latest
needs: check-for-changes-openapi
if: needs.check-for-changes-openapi.outputs.change_detected == 'true'
outputs:
types_changed: ${{ steps.detect-ts-changes.outputs.types_changed }}
steps:
- name: Checkout code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
persist-credentials: true
- name: Setup coral
uses: ./.github/actions/setup-coral
- name: Generate files
working-directory: ./coral
run: pnpm extract-api-types
- id: detect-ts-changes
name: Check for changes to "coral/types/api.d.ts"
run: |
git add .
if git diff --name-only --cached | grep -q 'coral/types/api.d.ts'; then
echo "TS changes detected. Will run checks and if successful commit changes 🤖"
echo "types_changed=true" >> $GITHUB_OUTPUT
else
echo "No new changes to TS types detected, will end workflow."
fi
check-and-commit-typescript-changes:
runs-on: ubuntu-latest
needs: detect-ts-changes
if: needs.detect-ts-changes.outputs.types_changed == 'true'
steps:
- name: Checkout code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
persist-credentials: true
- name: Setup coral
uses: ./.github/actions/setup-coral
- name: Generate files
working-directory: ./coral
run: pnpm extract-api-types
- name: Run TypeScript compiler
working-directory: ./coral
run: pnpm tsc
- name: Add changed file
run: |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
git add .
git commit -m "🤖 Auto-update API types for TypeScript usage"
git push