新しい環境を既存の環境と同じ環境変数で設定したい場合は、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}'