于10月8日至10日在纽约市加入我们,了解关于 GraphQL 联邦和 API 平台工程的最新技巧、趋势和新闻。加入我们参加2024年在纽约市举行的 GraphQL Summit
文档
免费开始

实施批准的提案

使用Rover和模式检查来实现仅批准的变化


此功能仅在 GraphOS企业计划中可用.
中可用。您可以通过签署免费 企业试用.

本文介绍了提案实施发布阶段中模式提案工作流程的操作。

Proposal implementation
Approved
status
Fetch proposal and
implement locally
Run checks on
local changes
GraphOS
schema checks

Proposal publication
Schema checks
pass
Publish schema
to GraphOS
GraphOS matches
changes to proposals
Implemented
status

一旦批准,其变更需要实施。对于实施变更的人员,将批准的模式变更拖到他们的IDE中是一个很好的开始。已批准的模式变更是和任何其他需要实施的支撑代码的指南。

一旦实施更改,您可以使用来确保您的组织仅发布通过提案批准的更改

使用Rover提取拟议的模式

rover subgraph fetch 命令可以从变体和提案中获取。要从提案中获取子图模式,请使用提案的ID而不是变体名称:

rover subgraph fetch my-graph@p-101 --name subgraph

提案的ID总是以p-开头,后跟一个数字。您可以在GraphOS Studio中的提案URL中找到提案ID。例如,具有以下URL的提案的ID为p-101

https://studio.apollographql.com/graph/Example-supergraph/proposal/p-101/home

使用检查验证更改

提供模式检查以帮助您识别破坏性更改。在发布更改之前,您可以在本地更改上运行检查

以来自动运行在每个修订架构检查,如果你的上一个修订的检查通过,任何你在本地实施的变化都应该可以通过。不管怎样,最好在发布更改之前运行检查,以确保错误不会悄悄进来。

确保更改与已批准的提案一致

你可以配置GraphOS中运行的架构检查,以包括一个提案任务。提案检查将验证正在运行的检查所改动的内容是否具有匹配和已批准的

Proposal check settings in GraphOS Studio

提案任务的严重性设置为错误确保只有通过提案过程批准的更改才能发布。通过将严重性设置为警告,您可以发布尚未批准的更改并收到关于它们的警告。

注意

提案任务还会检查中的描述。例如,如果匹配的已批准提案包含带有句号的描述,而正在运行的检查所更改的内容则没有,则提案任务会失败。

提案任务运行时,您可以通过点击检查页面上的检查页面的提案来查看哪些更改与提案相匹配:

Schema proposals check task in Studio
  • 显示有匹配批准提案的更改的复选标记图标。
  • 没有匹配批准提案的更改将显示根据配置的严重性的警告或错误图标。

点击图标可以在右侧面板中显示匹配的提案列表。点击忽略可以允许提案任务在不匹配所有已批准提案的情况下成功。

将提案与更改匹配

即将到来的更改和批准的提案不必一对一匹配。例如,假设您有一个在多个中更改的已批准提案。您可以为每个子图的更改分别进行检查。即使更改不包括所有已批准提案的更改,各子图的检查也会通过。

同样,单个提案可以包含一个大的更改,您可以将这些更改分成多个检查。这些更改可以跨越多个检查并通过每个检查。

将更改发布到GraphOS

一旦实施了批准的架构更改,包括支持的代码,您需要将子图架构重新发布到GraphOS。发布架构提案更改遵循与其他任何更改相同的步骤

当一个发布到提案的包含变更,这些变更处于已批准公开征求意见草稿提案中时,相应的发布会显示在提案的活动日志中。

A matching launch appears on a schema proposal's activity log

当一个已批准公开征求意见的提案的所有变更已经完全实施——无论是一次还是多次发布——该提案的状态将变为已实施

注意

  • 具有草稿状态的提案不能已实施,即使所有变更都已发布。此类提案的状态一旦变为公开征求意见,将自动切换到已实施
  • 已实施的提案不能接受进一步的修订,也无法更改其状态。
上一页
审查提案
下一页
发布模式
评分文章评分在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,即Apollo GraphQL。

隐私政策

公司