ツール: update_repository
既存の Dataform リポジトリのプロパティ(Git リモート設定、ワークスペース コンパイル オーバーライド、デフォルトのサービス アカウントなど)を更新します。
前提条件: get_repository ツールを使用して、更新前に現在のリポジトリの状態を読み取ります。
update_mask パラメータ値を省略すると、変更可能なすべてのフィールドが repository パラメータ値で指定された値で上書きされます。他のフィールドをクリアせずに特定のフィールドのみを変更するには、それらのフィールドを update_mask にリストします。
repository.name パラメータの値は projects/{project_id}/locations/{location}/repositories/{repository} 形式にする必要があります。
次のコードサンプルは、curl を使用して update_repository MCP ツールを呼び出す方法を示しています。
| Curl リクエスト |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "update_repository", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
入力スキーマ
UpdateRepository リクエスト メッセージ。
UpdateRepositoryRequest
| JSON 表現 |
|---|
{
"updateMask": string,
"repository": {
object ( |
| フィールド | |
|---|---|
updateMask |
省略可。リポジトリで更新するフィールドを指定します。設定しない場合、すべてのフィールドが更新されます。 完全修飾フィールド名のカンマ区切りリスト。例: |
repository |
必須。更新するリポジトリ。 |
FieldMask
| JSON 表現 |
|---|
{ "paths": [ string ] } |
| フィールド | |
|---|---|
paths[] |
フィールド マスクパスのセット。 |
リポジトリ
| JSON 表現 |
|---|
{ "name": string, "createTime": string, "displayName": string, "gitRemoteSettings": { object ( |
| フィールド | |
|---|---|
name |
ID。リポジトリの名前。 |
createTime |
出力専用。リポジトリが作成されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
displayName |
省略可。リポジトリのわかりやすい名前。 |
gitRemoteSettings |
省略可。設定されている場合、このリポジトリが Git リモートにリンクされるように構成します。 |
npmrcEnvironmentVariablesSecretVersion |
省略可。パッケージ インストール オペレーションの .npmrc ファイルに変数を補間するために使用する Secret Manager シークレット バージョンの名前。 |
workspaceCompilationOverrides |
省略可。設定すると、ワークスペース スコープのコンパイル結果を作成するときに、 |
labels |
省略可。リポジトリ ユーザーラベル。
|
setAuthenticatedUserAdmin |
省略可。入力専用。true に設定すると、認証されたユーザーに、作成されたリポジトリに対する roles/dataform.admin ロールが付与されます。作成したリポジトリへのアクセス権を変更するには、後で https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories から setIamPolicy を適用します。 |
serviceAccount |
省略可。ワークフロー呼び出しの実行に使用するサービス アカウント。 |
kmsKeyName |
省略可。KMS 暗号鍵への参照。指定すると、リポジトリとすべての子リソースのユーザーデータの暗号化に使用されます。リポジトリの作成後に暗号鍵を追加または更新することはできません。例: |
dataEncryptionState |
出力専用。このリポジトリが KMS 鍵で保護されている場合、Git リポジトリのデータ暗号化状態。 |
共用体フィールド
|
|
containingFolder |
省略可。リポジトリの親フォルダの名前。このフィールドは不変であり、MoveRepository オペレーションで変更できます。形式: |
共用体フィールド
|
|
teamFolderName |
出力専用。このリポジトリが関連付けられている TeamFolder のリソース名。形式は projects/{project}/locations/{location}/teamFolders/{teamFolder} にする必要があります。設定されていない場合、リポジトリは TeamFolder に関連付けられません。 |
共用体フィールド
|
|
internalMetadata |
出力専用。リソースの提供に内部で使用されるすべてのメタデータ情報。たとえば、タイムスタンプ、フラグ、ステータス フィールドなどです。このフィールドの形式は JSON 文字列です。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
GitRemoteSettings
| JSON 表現 |
|---|
{ "url": string, "defaultBranch": string, "effectiveDefaultBranch": string, "authenticationTokenSecretVersion": string, "sshAuthenticationConfig": { object ( |
| フィールド | |
|---|---|
url |
必須。Git リモートの URL。 |
defaultBranch |
省略可。Git リモートのデフォルトのブランチ名。設定しない場合、 |
effectiveDefaultBranch |
出力専用。Git リモートの有効なデフォルト ブランチ名。設定されている場合は Git リモートのデフォルトのブランチ名。設定されていない場合は |
authenticationTokenSecretVersion |
省略可。Git オペレーションの認証トークンとして使用する Secret Manager シークレット バージョンの名前。 |
sshAuthenticationConfig |
省略可。SSH プロトコルを使用するリモート URI の認証フィールド。 |
tokenStatus |
出力専用。非推奨: このフィールドにはトークンのステータス情報は含まれていません。代わりに https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus を使用してください。 |
共用体フィールド
|
|
gitRepositoryLink |
省略可。マシン認証情報に使用される |
SshAuthenticationConfig
| JSON 表現 |
|---|
{ "userPrivateKeySecretVersion": string, "hostPublicKey": string } |
| フィールド | |
|---|---|
userPrivateKeySecretVersion |
必須。Git オペレーションの SSH 秘密鍵として使用する Secret Manager シークレット バージョンの名前。 |
hostPublicKey |
必須。リモート Git ホストの ID を確認するための公開 SSH 鍵の内容。 |
WorkspaceCompilationOverrides
| JSON 表現 |
|---|
{ "defaultDatabase": string, "schemaSuffix": string, "tablePrefix": string } |
| フィールド | |
|---|---|
defaultDatabase |
省略可。デフォルト データベース(Google Cloud プロジェクト ID)。 |
schemaSuffix |
省略可。すべてのスキーマ(BigQuery データセット ID)名に追加する接尾辞。 |
tablePrefix |
省略可。すべてのテーブル名の先頭に追加する接頭辞。 |
LabelsEntry
| JSON 表現 |
|---|
{ "key": string, "value": string } |
| フィールド | |
|---|---|
key |
|
value |
|
DataEncryptionState
| JSON 表現 |
|---|
{ "kmsKeyVersionName": string } |
| フィールド | |
|---|---|
kmsKeyVersionName |
必須。リソースのデータの暗号化に使用される KMS 鍵バージョンの名前。 |
TokenStatus
認証トークンのステータス。
| 列挙型 | |
|---|---|
TOKEN_STATUS_UNSPECIFIED |
デフォルト値。この値は使用されません。 |
NOT_FOUND |
トークンが Secret Manager に見つかりませんでした(または、Dataform サービス アカウントにアクセス権がありませんでした)。 |
INVALID |
このトークンを使用して Git リモートに対する認証を行うことができませんでした。 |
VALID |
トークンは、Git リモートに対する認証に正常に使用されました。 |
出力スキーマ
Dataform Git リポジトリを表します。
リポジトリ
| JSON 表現 |
|---|
{ "name": string, "createTime": string, "displayName": string, "gitRemoteSettings": { object ( |
| フィールド | |
|---|---|
name |
ID。リポジトリの名前。 |
createTime |
出力専用。リポジトリが作成されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
displayName |
省略可。リポジトリのわかりやすい名前。 |
gitRemoteSettings |
省略可。設定されている場合、このリポジトリが Git リモートにリンクされるように構成します。 |
npmrcEnvironmentVariablesSecretVersion |
省略可。パッケージ インストール オペレーションの .npmrc ファイルに変数を補間するために使用する Secret Manager シークレット バージョンの名前。 |
workspaceCompilationOverrides |
省略可。設定すると、ワークスペース スコープのコンパイル結果を作成するときに、 |
labels |
省略可。リポジトリ ユーザーラベル。
|
setAuthenticatedUserAdmin |
省略可。入力専用。true に設定すると、認証されたユーザーに、作成されたリポジトリに対する roles/dataform.admin ロールが付与されます。作成したリポジトリへのアクセス権を変更するには、後で https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories から setIamPolicy を適用します。 |
serviceAccount |
省略可。ワークフロー呼び出しの実行に使用するサービス アカウント。 |
kmsKeyName |
省略可。KMS 暗号鍵への参照。指定すると、リポジトリとすべての子リソースのユーザーデータの暗号化に使用されます。リポジトリの作成後に暗号鍵を追加または更新することはできません。例: |
dataEncryptionState |
出力専用。このリポジトリが KMS 鍵で保護されている場合、Git リポジトリのデータ暗号化状態。 |
共用体フィールド
|
|
containingFolder |
省略可。リポジトリの親フォルダの名前。このフィールドは不変であり、MoveRepository オペレーションで変更できます。形式: |
共用体フィールド
|
|
teamFolderName |
出力専用。このリポジトリが関連付けられている TeamFolder のリソース名。形式は projects/{project}/locations/{location}/teamFolders/{teamFolder} にする必要があります。設定されていない場合、リポジトリは TeamFolder に関連付けられません。 |
共用体フィールド
|
|
internalMetadata |
出力専用。リソースの提供に内部で使用されるすべてのメタデータ情報。たとえば、タイムスタンプ、フラグ、ステータス フィールドなどです。このフィールドの形式は JSON 文字列です。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
GitRemoteSettings
| JSON 表現 |
|---|
{ "url": string, "defaultBranch": string, "effectiveDefaultBranch": string, "authenticationTokenSecretVersion": string, "sshAuthenticationConfig": { object ( |
| フィールド | |
|---|---|
url |
必須。Git リモートの URL。 |
defaultBranch |
省略可。Git リモートのデフォルトのブランチ名。設定しない場合、 |
effectiveDefaultBranch |
出力専用。Git リモートの有効なデフォルト ブランチ名。設定されている場合は Git リモートのデフォルトのブランチ名。設定されていない場合は |
authenticationTokenSecretVersion |
省略可。Git オペレーションの認証トークンとして使用する Secret Manager シークレット バージョンの名前。 |
sshAuthenticationConfig |
省略可。SSH プロトコルを使用するリモート URI の認証フィールド。 |
tokenStatus |
出力専用。非推奨: このフィールドにはトークンのステータス情報は含まれていません。代わりに https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus を使用してください。 |
共用体フィールド
|
|
gitRepositoryLink |
省略可。マシン認証情報に使用される |
SshAuthenticationConfig
| JSON 表現 |
|---|
{ "userPrivateKeySecretVersion": string, "hostPublicKey": string } |
| フィールド | |
|---|---|
userPrivateKeySecretVersion |
必須。Git オペレーションの SSH 秘密鍵として使用する Secret Manager シークレット バージョンの名前。 |
hostPublicKey |
必須。リモート Git ホストの ID を確認するための公開 SSH 鍵の内容。 |
WorkspaceCompilationOverrides
| JSON 表現 |
|---|
{ "defaultDatabase": string, "schemaSuffix": string, "tablePrefix": string } |
| フィールド | |
|---|---|
defaultDatabase |
省略可。デフォルト データベース(Google Cloud プロジェクト ID)。 |
schemaSuffix |
省略可。すべてのスキーマ(BigQuery データセット ID)名に追加する接尾辞。 |
tablePrefix |
省略可。すべてのテーブル名の先頭に追加する接頭辞。 |
LabelsEntry
| JSON 表現 |
|---|
{ "key": string, "value": string } |
| フィールド | |
|---|---|
key |
|
value |
|
DataEncryptionState
| JSON 表現 |
|---|
{ "kmsKeyVersionName": string } |
| フィールド | |
|---|---|
kmsKeyVersionName |
必須。リソースのデータの暗号化に使用される KMS 鍵バージョンの名前。 |
TokenStatus
認証トークンのステータス。
| 列挙型 | |
|---|---|
TOKEN_STATUS_UNSPECIFIED |
デフォルト値。この値は使用されません。 |
NOT_FOUND |
トークンが Secret Manager に見つかりませんでした(または、Dataform サービス アカウントにアクセス権がありませんでした)。 |
INVALID |
このトークンを使用して Git リモートに対する認証を行うことができませんでした。 |
VALID |
トークンは、Git リモートに対する認証に正常に使用されました。 |
ツールのアノテーション
ツールのアノテーションは、特定のツールの基本的なリスクを説明するために MCP クライアントに送信されます。ほとんどのクライアントはこれらのヒントを信頼できないものとして扱いますが、確認プロンプトをユーザーに送信するタイミングを決定するために使用できます。
タイトル文字列とともに、次のブール値のヒントが次のように定義されています。
readOnlyHint: true の場合、ツールは環境を変更しません。デフォルトは false です。destructiveHint: true の場合、ツールは破壊的なアクションを実行できます。false の場合、ツールは追加アクションのみを実行できます。デフォルト値は true です。idempotentHint: true の場合、同じ引数でツールを繰り返し呼び出しても、環境に影響はありません。デフォルトは false です。openWorldHint: true の場合、ツールは外部エンティティの「オープン ワールド」とやり取りできます。false の場合、ツールは内部エンティティとのみやり取りできます。たとえば、ウェブ検索ツールはオープン ワールドですが、メモリツールはオープン ワールドではありません。
破壊的ヒント: ❌ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌