GraphSQLの検査官を使用して任意のCI上での変更を切断する
GraphQL Inspector is a set of tools to help you better maintain and improve GraphQL API as well as GraphQL consumers.
Grapqlインスペクタはクールな機能の多くの素晴らしいGithubアクションを提供します.しかし、別のCIを使用している場合は、それらをコード化する必要があります.
Graphql Inspectorを使用して、ビルトキイトを使用したプル要求の変更を検出する際に、意図的にGraphSQLの変更をマージすることを許可したいと考えました.これを行う簡単な方法は、“graphql break change”という名前のプルリクエストにラベルを追加することです.
うまくいけば、次のスクリプトは、GitHub APIを使用して簡単にこれを達成するのに役立ちます.それはgitlabで動作するようにかなり簡単にする必要があります.
ステップ1 -壊れた変化があるならば、Ciが失敗するようにしてください
単純な変更を検出するには、次のスクリプトをCIの一部として追加します.
# checkGraphqlBreakingChanges.sh
#!/usr/bin/env bash
set -e
yarn graphql-inspector diff 'git:origin/main:./schema.json' 'schema.json'
壊れた変更が存在するならば、このスクリプトは失敗します.ステップ2 - GithubラベルがPRに存在するならば、壊れている変化をマージするのを許してください
「GraphSQL Break Change」という名前のGithub UIを介して新しいプルリクエストラベルを作成します.
スクリプトは直接buildkiteで動作しますが、
BUILDKITE_PULL_REQUEST
あなたのCIによって提供されるものによるenv変数.あなたのCI ENVは、Aにアクセスする必要があります
GITHUB_USER
and GITHUB_USER_TOKEN
スクリプトをgithub APIに問い合わせることができます.# checkGraphqlBreakingChanges.sh
#!/usr/bin/env bash
set -e
# Label allowed
ALLOW_LABEL="GraphQL breaking change"
# We only want to run this logic if we are on a pull request
if [ -z "$BUILDKITE_PULL_REQUEST" ]; then
echo "Skipping, not a pull request..."
exit 0
fi
# Get the labels array from the Github API for the pull request
GITHUB_PR_LABELS=$(curl -u $GITHUB_USER:$GITHUB_USER_TOKEN \
-s "https://github.com/api/v3/repos/my-org/my-repo/pulls/$BUILDKITE_PULL_REQUEST" \
| jq '.labels[].name')
# If label is set on the pr we stop the execution as breaking change is intentional
if [[ ${GITHUB_PR_LABELS[*]} =~ "$ALLOW_LABEL" ]]; then
echo "Skipping, because label is set..."
exit 0
fi
yarn graphql-inspector diff 'git:origin/main:./schema.json' 'schema.json'
Reference
この問題について(GraphSQLの検査官を使用して任意のCI上での変更を切断する), 我々は、より多くの情報をここで見つけました https://dev.to/pradel/detect-graphql-breaking-changes-on-any-ci-with-graphql-inspector-52fbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol