要继续使用示例工作流,需要对其进行配置。
可以通过点击 选项卡上的 编辑参数,或者右键点击该块并选择 编辑参数 来打开 窗口,从而访问块配置。一旦块具有参数, 按钮将切换为 。
要为示例配置块,请按照以下步骤操作:
-
打开
操作的 窗口。列表区域
-
和 字段将需要运行时解析的动态值。
-
点击 字段的链接图标
并选择
操作。获取访问令牌
链接变为绿色,且该字段可以编辑。
-
访问引用触发器或操作属性的语法为:
{{$.path.to.value}}其中
的输出为:获取访问令牌
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }使得 字段所需的表达式为
{{$.tokens.strings_token}}。 -
点击 字段的链接图标
并选择
触发器。上传:创建
链接变为绿色,且该字段可以编辑。
-
触发器的输出类似于:上传:创建
{ "branch": { "name": "my_branch" }, "event": "uploads:create", \"message\": \"用户-1 初始化了文件上传 file.yml,位于项目 name_1672734591_11 的分支 my_branch 中\\n\", "project": { "created_at": "2023-01-03 08:29:51 UTC", "id": "abcdabcdabcdabcd-11", "main_format": "yml", "name": "name_1672734591_10", "point_of_contact": null, "project_image_url": null, "slug": "name_1672734591_10", "updated_at": "2023-01-03 08:29:51 UTC" }, "upload": { "created_at": "2023-01-03 08:29:48 UTC", "filename": "file.yml", "format": "yml", "id": "upload-1", "state": "initialized", "summary": {}, "tag": null, "updated_at": "2023-01-03 08:29:48 UTC" }, "user": { "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94", "id": "9c365b9a6f77c247c3de959f6152b231", \"name\": \"Joe Sixpack\", "username": "user-1" } }使得 字段所需的表达式为
{{$.project.id}}。 -
点击保存。
窗口关闭,操作的参数已保存
-
-
需要项目的默认区域才能通过将 ID 传递给
操作来创建工作。创建工作
操作接收 JSON 输入,应用指定的筛选,然后再次输出 JSON使用 jq 转换 JSON
-
在 窗口的 选项卡中,搜索 phrase-jq。
将
操作模块拖放到Transform JSON with jq
操作下方以连接它们。列表区域
-
打开
Transform JSON with jq操作的 窗口。 -
从 下拉字段中选择 。
-
点击 字段的链接图标
并选择
操作。列表区域
链接变为绿色,且该字段可以编辑。
-
字段接收 JSON 输出。一个特殊的固定表达式(
@而不是$)确保引用操作的整个输出被传递到该字段中。在 字段中输入表达式
{{@.outputs.result}}。 -
点击 字段的链接图标
并选择
操作。列表区域
链接变为绿色,且该字段可以编辑。
-
需要一个区域列表的筛选器,该筛选器返回一个包含
default属性为true的所有元素的新列表。每个项目只能有一个默认区域,且该列表包含一个可识别的必需元素。该元素可通过
.[0]数组语法直接访问。在 字段中输入表达式
map(select(.default))|.[0]。 -
点击保存。
窗口关闭,操作的参数已保存
-
-
现在可以配置
操作,并将使用来自先前模块的模式。创建工作
-
点击 字段的链接图标
并选择
操作。获取访问令牌
链接变为绿色,且该字段可以编辑。
输入表达式
{{$.tokens.strings_token}}。 -
点击 字段的链接图标
并选择
触发器。上传:创建
链接变为绿色,且该字段可以编辑。
输入表达式
{{$.project.id}}。 -
点击 字段的链接图标
并选择
Transform JSON with jq操作。链接变为绿色,且该字段可以编辑。
输入表达式
{{@.outputs.result}}。 -
截止日期可以 使用 sprig 或 Expr 函数计算,但为了本示例的目的,将使用 API 可理解的硬编码日期。
在 字段中,输入 2023-12-31T12:00:00Z。
-
点击保存。
配置已保存,可在 选项卡中查看详细信息。
-
-
每个操作都可以有一个或多个与逻辑
AND和OR组合的条件。这些条件在运行时进行评估,只有当条件评估为真时,操作及其子项才会执行。为了在示例中反映这一点,在选中
操作的同时,从 选项卡中点击 编辑条件,或者右键点击该块并选择 编辑条件。创建工作
窗口打开。
-
遵循之前块的模式,将 字段链接到
触发器,并输入表达式上传:创建
{{$.upload.tag}}。 -
从第一个下拉列表选择 NOT 以反转语句。
-
从 下拉列表选择 IsNull。
-
点击保存。
条件显示在 选项卡上。
如果上传不包含标签(意味着没有新的/更新的键/译文),工作流将在此处停止。
-
-
现在工作需要译文区域。为了示例起见,将创建两个区域;一个用于西班牙语 (es-ES),另一个用于德语 (de-DE)。区域将按照步骤 3 中的说明,添加到
操作的 窗口中。Transform JSON with jq
-
在两个操作的 字段中,输入表达式
{{@.outputs.result}},链接到操作并保存参数。选择区域
-
在一个操作的 字段中,输入表达式
map(select(.name == \"es-ES\"))|.[0]并链接到操作。选择区域
保存参数。
-
在第二个操作中,输入表达式
map(select(.name == \"de-DE\"))|.[0]并链接到操作。选择区域
保存参数。
-
-
区域现在将应用于工作创建。
使用之前定义的相同模式配置两个
操作。添加译文区域到工作
-
现在可以启动工作了。
使用与之前定义的相同模式配置
操作。启动工作