도구: update_repository
Git 원격 설정, 작업공간 컴파일 재정의, 기본 서비스 계정과 같은 기존 Dataform 저장소의 속성을 업데이트합니다.
기본 요건: 업데이트하기 전에 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 |
식별자. 저장소 이름입니다. |
createTime |
출력 전용입니다. 저장소가 생성된 시점의 타임스탬프입니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. '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 epoch 1970-01-01T00:00:00Z 이후 UTC 시간의 초 단위로 표현합니다. -62135596800~253402300799 (0001-01-01T00:00:00Z~9999-12-31T23:59:59Z) 사이여야 합니다. |
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 |
식별자. 저장소 이름입니다. |
createTime |
출력 전용입니다. 저장소가 생성된 시점의 타임스탬프입니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. '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 epoch 1970-01-01T00:00:00Z 이후 UTC 시간의 초 단위로 표현합니다. -62135596800~253402300799 (0001-01-01T00:00:00Z~9999-12-31T23:59:59Z) 사이여야 합니다. |
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인 경우 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.
파괴적 힌트: ❌ | 멱등성 힌트: ❌ | 읽기 전용 힌트: ❌ | 오픈 월드 힌트: ❌