GraphQL Doctor 项目教程
1、项目介绍
GraphQL Doctor 是一个基于 Probot 构建的 GitHub 应用,旨在通过 GitHub Checks API 防止 GraphQL API 中的破坏性更改。该项目的主要功能是自动检测和报告 GraphQL 模式中的破坏性更改,确保在持续集成过程中不会引入破坏性更改。
主要特点
- 自动检测破坏性更改:GraphQL Doctor 会自动比较当前模式与之前的模式,检测是否存在破坏性更改。
- GitHub Checks API:通过 GitHub Checks API 在 Pull Request 中报告检测结果。
- 自定义配置:支持在
package.json
中配置模式路径和参考分支。
2、项目快速启动
安装依赖
首先,克隆项目并安装依赖:
git clone https://github.com/spyl94/graphql-doctor.git
cd graphql-doctor
yarn install
运行项目
启动项目:
yarn start
配置
在 package.json
中添加以下配置,指定模式路径和参考分支:
{
"graphql-doctor": {
"schema": {
"ref": "heads/master",
"schemaPath": "schema/public.graphql"
}
}
}
运行测试
运行测试以确保项目正常工作:
yarn test
3、应用案例和最佳实践
应用案例
假设你正在开发一个 GraphQL API,并希望在每次提交时自动检测模式中的破坏性更改。你可以使用 GraphQL Doctor 来实现这一目标。
最佳实践
- 持续集成:将 GraphQL Doctor 集成到 CI/CD 流程中,确保每次提交都经过模式检查。
- 模式版本控制:在每次提交时自动生成模式快照,并将其存储在版本控制系统中。
- 自动化报告:通过 GitHub Checks API 自动报告检测结果,确保团队成员能够及时了解模式更改的影响。
4、典型生态项目
Probot
Probot 是一个用于构建 GitHub 应用的框架,GraphQL Doctor 就是基于 Probot 构建的。Probot 提供了丰富的 API 和工具,帮助开发者快速构建和部署 GitHub 应用。
GraphQL Schema Comparator
GraphQL Schema Comparator 是一个用于比较 GraphQL 模式的工具,GraphQL Doctor 在实现模式比较功能时参考了该项目的实现。
GitHub Checks API
GitHub Checks API 允许开发者创建自定义检查,GraphQL Doctor 利用该 API 在 Pull Request 中报告模式检查结果。
通过以上模块的介绍,你应该能够快速上手并使用 GraphQL Doctor 项目。