name: OpenAPI Check on: pull_request: jobs: ancestor: name: Common Ancestor runs-on: ubuntu-latest outputs: base_ref: ${{ steps.ancestor.outputs.base_ref }} steps: - name: Checkout Repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ github.event.pull_request.head.sha }} repository: ${{ github.event.pull_request.head.repo.full_name }} fetch-depth: 0 - name: Search History id: ancestor run: | git remote add upstream https://github.com/${{ github.event.pull_request.base.repo.full_name }} git fetch --prune --progress --no-recurse-submodules upstream +refs/heads/*:refs/remotes/upstream/* +refs/tags/*:refs/tags/* ANCESTOR_REF=$(git merge-base upstream/${{ github.base_ref }} HEAD) echo "ref: ${ANCESTOR_REF}" echo "base_ref=${ANCESTOR_REF}" >> "$GITHUB_OUTPUT" head: name: Head Artifact uses: ./.github/workflows/openapi/__generate.yml with: ref: ${{ github.event.pull_request.head.sha }} repository: ${{ github.event.pull_request.head.repo.full_name }} artifact: openapi-head base: name: Base Artifact uses: ./.github/workflows/openapi/__generate.yml needs: - ancestor with: ref: ${{ needs.ancestor.outputs.base_ref }} repository: ${{ github.event.pull_request.base.repo.full_name }} artifact: openapi-base diff: name: Generate Report runs-on: ubuntu-latest needs: - head - base steps: - name: Download Head uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: openapi-head path: openapi-head - name: Download Base uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: openapi-base path: openapi-base - name: Detect Changes uses: jellyfin/openapi-diff-action@9274f6bda9d01ab091942a4a8334baa53692e8a4 # v1.0.0 id: openapi-diff with: old-spec: openapi-base/openapi.json new-spec: openapi-head/openapi.json markdown: openapi-changelog.md github-token: ${{ secrets.GITHUB_TOKEN }}