既存の環境と同じ環境変数を使って新しい環境を設定する必要がある場合は、mabl APIを使用できます。mablアプリケーションで変数を手動でコピーするよりも、mabl APIを使用した方が速く、人為的ミスが起きるリスクも低くなります。
開始する前に
この作業を始める前に、次の情報を収集します。
- “Command Line Interface” APIキー - ワークスペースの所有者がmablアプリケーションでAPIキーを作成してアクセスできます ([ワークスペース] > [API])。
- ワークスペースID - mablアプリケーションの [ワークスペース] > [ワークスペース] にあります。
この記事の例ではcURLを使用していますが、自分の使いやすい方法を使用して構いません。認証方法を基本認証に設定し、それぞれのツールのセットアップに応じて、必要なmabl APIキーを渡すようにしてください。
環境IDを取得する
環境のクエリエンドポイントにリクエストを送信して、次のIDを取得します。
- コピー元の環境ID - 環境変数のコピー元の環境のID
- コピー先の環境ID - 環境変数のコピー先の環境のID
次のcURLコマンドを使用するには、クエリパラメーター{workspace_id}
をワークスペースIDに置き換え、{api_key}
をAPIキーに置き換えます。
curl --request GET --url 'https://api.mabl.com/environments?workspace_id={workspace_id}' --user 'key:{api_key}'
この環境のクエリエンドポイントは、ワークスペース内の環境に関する情報を含むオブジェクトの配列を返します。環境IDは末尾が-e
です。コピー元の環境とコピー先の環境の環境IDをコピーします。
コピー元の環境から環境変数を取得する
環境の取得エンドポイントにリクエストを送信して、コピー元の環境に関する環境の詳細を取得します。レスポンスに環境変数を含めるには、クエリパラメーターdecrypt
をtrue
に設定します。
次のcURLコマンドを使用するには、{source_env_id}
を変数のコピー元の環境のIDに置き換え、{api_key}
を実際のAPIキーに変更します。
curl --request GET --url 'https://api.mabl.com/environments?workspace_id={workspace_id}' --user 'key:{api_key}'
以下は、正常なレスポンスの例です。
{ "workspace_id": "{workspace_id}", "created_time": 1637783279217, "variables": { "TEST1234": "abcdefg", "SAMPLE_ENV_VAR": "example1", "ANOTHER_VAR": "sample1234" }, "use_link_agent": false, "last_updated_time": 1729866085345, "link_bypass_mabl_proxy": false, "name": "prod", "page_load_wait": "NORMAL", "last_updated_by_id": "{user_id}", "id": "{environment_id}", "created_by_id": "{user_id}" }
次のように、レスポンスから"variables"
オブジェクトをコピーします。
"variables": { "TEST1234": "abcdefg", "SAMPLE_ENV_VAR": "example1", "ANOTHER_VAR": "sample1234" }
コピー先の環境を更新する
コピー先の環境の環境の更新エンドポイントにリクエストを送信し、取得した環境変数をリクエストの本文に追加します。
環境の更新エンドポイントを使用して環境変数を更新する場合は、その環境の既存の変数をオーバーライドします。
次のcURLコマンドを使用するには、次の値を置き換えます。
-
{destination_env_id}
- 変数のコピー先の環境のIDを使用 -
{api_key}
- 実際のAPIキーを使用 -
--data
フラグでは、例の内容を前のリクエストのレスポンスからコピーした変数オブジェクトに置き換えます。別のツールを使用する場合は、変数のオブジェクトをJSONリクエストボディとして追加します。
curl --request PATCH --url https://api.mabl.com/environments/{destination_env_id} --header 'accept: application/json' --user 'key:{api_key}' --header 'content-type: application/json' --data ' { "variables": { "TEST1234": "abcdefg", "SAMPLE_ENV_VAR": "example1", "ANOTHER_VAR": "sample5678" } } '
多数の変数をコピーする場合は、JSONファイルにオブジェクトを保存し、リクエストとともにそのJSONファイルを送信します。次の例では、--data
フラグでvariables.json
ファイルを使って情報を送信します。
curl --request PATCH --url https://api.mabl.com/environments/{destination_env_id} --header 'accept: application/json' --user 'key:{api_key}' --header 'content-type: application/json' --data @variables.json
環境変数がコピー先の環境にコピーされたことを確認するには、環境の取得エンドポイントに別のリクエストを送信し、コピー先の環境に関する環境の詳細を取得します。クエリパラメーターdecrypt
をtrue
に設定するのを忘れないでください。
次のcURLコマンドを使用するには、{destination_env_id}
を更新後の環境のIDに置き換え、{api_key}
を実際のAPIキーに置き換えます。
curl --request GET --url 'https://api.mabl.com/environments/{destination_env_id}?decrypt=true' --user 'key:{api_key}'