GraphQL Schema Review Check #66
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow triggers when a pull request is opened, changed, reopened, approved or dismissed. | |
# It checks if the pull request contains changes to GraphQL schema files (.graphqls) and ensures that such changes are reviewed by at least one reviewer from the @nais/tooling team. | |
name: GraphQL Schema Review Check | |
run-name: "GraphQL Schema Review Check" | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
pull_request_review: | |
jobs: | |
check-graphql-review: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v5 | |
- name: Check if GraphQL schema files are changed | |
id: has_graphql_changes | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
if gh pr --repo '${{ github.repository }}' diff ${{ github.event.pull_request.number }} --name-only | grep -E '\.graphqls$'; then | |
echo "graphql_changes=true" >> $GITHUB_OUTPUT | |
else | |
echo "graphql_changes=false" >> $GITHUB_OUTPUT | |
fi | |
- uses: navikt/github-app-token-generator@v1 | |
id: get-token | |
with: | |
private-key: ${{ secrets.NAIS_APP_PRIVATE_KEY }} | |
app-id: ${{ secrets.NAIS_APP_ID }} | |
repo: nais/api | |
- name: No changes to GraphQL files | |
if: steps.has_graphql_changes.outputs.graphql_changes == 'false' | |
uses: actions/github-script@v8 | |
with: | |
github-token: ${{ steps.get-token.outputs.token }} | |
script: | | |
const script = require('./.github/scripts/graphql_no_changes.cjs') | |
console.log(await script({github, context})) | |
- name: Ensure GraphQL schema changes are reviewed by @nais/tooling | |
if: steps.has_graphql_changes.outputs.graphql_changes == 'true' | |
uses: actions/github-script@v8 | |
with: | |
github-token: ${{ steps.get-token.outputs.token }} | |
script: | | |
const script = require('./.github/scripts/graphql_require_review.cjs') | |
console.log(await script({github, context})) |