aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci-openapi.yml65
1 files changed, 8 insertions, 57 deletions
diff --git a/.github/workflows/ci-openapi.yml b/.github/workflows/ci-openapi.yml
index 95c0facf3..ab3c907e5 100644
--- a/.github/workflows/ci-openapi.yml
+++ b/.github/workflows/ci-openapi.yml
@@ -77,7 +77,7 @@ jobs:
openapi-diff:
permissions:
- pull-requests: write # to create or update comment (peter-evans/create-or-update-comment)
+ pull-requests: write
name: OpenAPI - Difference
if: ${{ github.event_name == 'pull_request_target' }}
@@ -98,65 +98,16 @@ jobs:
name: openapi-base
path: openapi-base
- - name: Workaround openapi-diff issue
- run: |
- sed -i 's/"allOf"/"oneOf"/g' openapi-head/openapi.json
- sed -i 's/"allOf"/"oneOf"/g' openapi-base/openapi.json
-
- - name: Calculate OpenAPI difference
+ - name: Detect OpenAPI changes
id: openapi-diff
- uses: docker://openapitools/openapi-diff
- continue-on-error: true
- with:
- args: --fail-on-changed --markdown openapi-changes.md openapi-base/openapi.json openapi-head/openapi.json
-
- - name: Read openapi-diff output
- id: read-diff
- run: |
- # Read and fix markdown
- body=$(cat openapi-changes.md)
- # Write to workflow summary
- echo "$body" >> $GITHUB_STEP_SUMMARY
- # Set ApiChanged var
- if [ "$body" != '' ]; then
- echo "ApiChanged=1" >> "$GITHUB_OUTPUT"
- else
- echo "ApiChanged=0" >> "$GITHUB_OUTPUT"
- fi
- # Add header/footer for diff comment
- echo '<!--openapi-diff-workflow-comment-->' > openapi-changes-reply.md
- echo "<details>" >> openapi-changes-reply.md
- echo "<summary>Changes in OpenAPI specification found. Expand to see details.</summary>" >> openapi-changes-reply.md
- echo "" >> openapi-changes-reply.md
- echo "$body" >> openapi-changes-reply.md
- echo "" >> openapi-changes-reply.md
- echo "</details>" >> openapi-changes-reply.md
- - name: Find difference comment
- uses: peter-evans/find-comment@b30e6a3c0ed37e7c023ccd3f1db5c6c0b0c23aad # v4.0.0
- id: find-comment
- with:
- issue-number: ${{ github.event.pull_request.number }}
- direction: last
- body-includes: openapi-diff-workflow-comment
- - name: Reply or edit difference comment (changed)
- uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
- if: ${{ steps.read-diff.outputs.ApiChanged == '1' }}
- with:
- issue-number: ${{ github.event.pull_request.number }}
- comment-id: ${{ steps.find-comment.outputs.comment-id }}
- edit-mode: replace
- body-path: openapi-changes-reply.md
- - name: Edit difference comment (unchanged)
- uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
- if: ${{ steps.read-diff.outputs.ApiChanged == '0' && steps.find-comment.outputs.comment-id != '' }}
+ uses: Shadowghost/openapi-diff-action@v1.0.0
with:
- issue-number: ${{ github.event.pull_request.number }}
- comment-id: ${{ steps.find-comment.outputs.comment-id }}
- edit-mode: replace
- body: |
- <!--openapi-diff-workflow-comment-->
+ old-spec: openapi-base/openapi.json
+ new-spec: openapi-head/openapi.json
+ markdown: openapi-changelog.md
+ add-pr-comment: true
+ github-token: ${{ secrets.GITHUB_TOKEN }}
- No changes to OpenAPI specification found. See history of this comment for previous changes.
publish-unstable:
name: OpenAPI - Publish Unstable Spec