サンプルワークフローを続けるには、設定が必要です。
ブロックの設定は、パラメータを編集をタブでクリックするか、ブロックを右クリックしてパラメータを編集を選択してウィンドウを開くことでアクセスできます。ブロックにパラメータがある場合、ボタンはに切り替わります。
例のブロックを設定するには、次の手順に従ってください:
-
ウィンドウを
アクションのために開きます。ロケールの一覧
-
とフィールドには、実行時に解決される動的な値が必要です。
-
のリンクアイコンをクリックしてフィールドを選択し、
アクションを選択します。アクセストークンを取得
リンクが緑色になり、フィールドを編集できるようになります。
-
参照されたトリガーまたはアクションのプロパティにアクセスするための構文は次のとおりです:
{{$.path.to.value}}の出力は:アクセストークンを取得
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }フィールドに必要な式を作成します
{{$.tokens.strings_token}}。 -
のリンクアイコンをクリックしてフィールドを選択し、
トリガーを選択します。アップロード:作成
リンクが緑色になり、フィールドを編集できるようになります。
-
トリガーの出力は次のようになります:アップロード:作成
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "message": "user-1がブランチmy_branch内のプロジェクトname_1672734591_11でファイルupload file.ymlを初期化しました。\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を検索します。
アクションブロックをjqでJSONを変換する
アクションの下にドラッグ&ドロップして接続します。ロケールの一覧
-
ウィンドウを
jqでJSONを変換するアクションのために開きます。 -
をのドロップダウンフィールドから選択します。
-
フィールドのためのリンクアイコン
をクリックし、
アクションを選択します。ロケールの一覧
リンクが緑色になり、フィールドを編集できるようになります。
-
フィールドはJSON入力を受け取ります。特別な固定式(
@ではなく$)は、参照されたアクションの全出力がフィールドに渡されることを保証します。{{@.outputs.result}}という式をフィールドに入力します。 -
フィールドのためのリンクアイコン
をクリックし、
アクションを選択します。ロケールの一覧
リンクが緑色になり、フィールドを編集できるようになります。
-
デフォルトプロパティがtrueであるすべての要素を含む新しいリストを返すロケールの一覧のフィルタが必要です。プロジェクトごとにデフォルトロケールは1つだけで、一覧には1つの識別可能で必要な要素があります。その要素は
.[0]配列構文で直接アクセスされます。map(select(.default))|.[0]という式をフィールドに入力します。 -
保存をクリックします。
ウィンドウが閉じ、アクションのパラメータが保存されます。
-
-
アクションは現在構成可能で、以前のブロックからのパターンを使用します。ジョブを作成する
-
のリンクアイコンをクリックしてフィールドを選択し、
アクションを選択します。アクセストークンを取得
リンクが緑色になり、フィールドを編集できるようになります。
{{$.tokens.strings_token}}という式を入力します。 -
のリンクアイコンをクリックしてフィールドを選択し、
トリガーを選択します。アップロード:作成
リンクが緑色になり、フィールドを編集できるようになります。
{{$.project.id}}という式を入力します。 -
フィールドのためのリンクアイコン
をクリックし、
jqでJSONを変換するアクションを選択します。リンクが緑色になり、フィールドを編集できるようになります。
{{@.outputs.result}}という式を入力します。 -
期限はsprigまたはExpr関数で計算可能ですが、この例の目的のためにAPIが理解できるハードコーディングされた日付が使用されます。
フィールドに2023-12-31T12:00:00Zを入力します。
-
保存をクリックします。
設定が保存され、詳細はタブで表示できます。
-
-
すべてのアクションには、論理的な
ANDおよびORと組み合わせた1つ以上の条件があります。これらの条件は実行時に評価され、条件が真である場合にのみアクションとその子要素が実行されます。この例を反映させるために、
アクションが選択されている状態で、条件を編集をタブからクリックするか、ブロックを右クリックして条件を編集を選択します。ジョブを作成
ウィンドウが開きます。
-
前のブロックのパターンに従い、フィールドを
トリガーにリンクし、式アップロード:作成
{{$.upload.tag}}を入力します。 -
最初のドロップダウンリストからNOTを選択して、ステートメントを反転させます。
-
IsNullをドロップダウンリストから選択します。
-
保存をクリックします。
条件はタブに表示されます。
アップロードにタグが含まれていない場合(新しい/更新されたキー/翻訳がないことを意味します)、ワークフローはこの時点で停止します。
-
-
ジョブにはターゲットロケールが必要です。例の目的のために、スペイン語(es-ES)用とドイツ語(de-DE)用の2つのロケールが作成されます。ロケールは、
アクションの2つに、ステップ3のようにウィンドウに追加されます。jqでJSONを変換
-
両方のアクションのフィールドに式
{{@.outputs.result}}を入力し、アクションにリンクしてパラメータを保存します。ロケールの一覧
-
1つのアクションのフィールドに式
map(select(.name == "es-ES"))|.[0]を入力し、アクションにリンクします。ロケールの一覧
パラメータを保存します。
-
2つ目のアクションに式
map(select(.name == "de-DE"))|.[0]を入力し、アクションにリンクします。ロケールの一覧
パラメータを保存します。
-
-
ロケールは現在、ジョブ作成に適用されます。
以前に定義された同じパターンで、2つの
アクションを設定します。ジョブにターゲットロケールを追加
-
ジョブを開始できるようになりました。
アクションを以前に定義したのと同じパターンで設定してください。ジョブを開始する