goose
Goose — AI-powered GCP deployment, troubleshooting, and operations agent.
Installation
dagger install github.com/telchak/daggerverse/goose@v0.1.0Entrypoint
Return Type
Goose !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| gcloud | Container | null | Authenticated gcloud container (pre-built) |
| oidcToken | Secret | null | OIDC JWT token from any CI provider |
| workloadIdentityProvider | String ! | "" | GCP Workload Identity Federation provider resource name |
| serviceAccountEmail | String ! | "" | Service account email to impersonate (optional) |
| credentials | Secret | null | Service account JSON key |
| googleCloudDir | Directory | null | Host gcloud config directory for local dev (e.g. ~/.config/gcloud) |
| projectId | String ! | "" | GCP project ID (auto-discovered from gcloud if omitted) |
| region | String ! | "" | GCP region (auto-discovered from gcloud, defaults to us-central1) |
| source | Directory | null | Source directory for workspace operations |
| selfImprove | String ! | "off" | Self-improvement mode: 'off' (default), 'write' (update context file), 'commit' (update + git commit) |
| developerKnowledgeApiKey | Secret | null | Google Developer Knowledge API key (optional, enables searching GCP documentation) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve stringfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Goose {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Goose:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Goose {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
}Types
Goose 🔗
AI-powered GCP deployment, troubleshooting, and operations agent. Supports Cloud Run, Firebase Hosting, Vertex AI, Artifact Registry, and health checks. Provides workspace tools for reading, editing, and searching deployment configs. Authentication (pick one): - Pre-built gcloud container (--gcloud) - OIDC token + WIF provider (--oidc-token + --workload-identity-provider) - Service account JSON key (--credentials) - Host gcloud config for local dev (--google-cloud-dir ~/.config/gcloud)
gcloud() 🔗
Authenticated gcloud container (pre-built)
Return Type
Container Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string gcloudfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Container {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Gcloud()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Container:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.gcloud()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Container {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.gcloud()
}oidcToken() 🔗
OIDC JWT token from any CI provider
Return Type
Secret Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string oidc-tokenfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Secret {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
OidcToken()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Secret:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.oidc_token()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Secret {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.oidcToken()
}workloadIdentityProvider() 🔗
GCP Workload Identity Federation provider resource name
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string workload-identity-providerfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
WorkloadIdentityProvider(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.workload_identity_provider()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.workloadIdentityProvider()
}serviceAccountEmail() 🔗
Service account email to impersonate (optional)
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string service-account-emailfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ServiceAccountEmail(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.service_account_email()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.serviceAccountEmail()
}credentials() 🔗
Service account JSON key
Return Type
Secret Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string credentialsfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Secret {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Credentials()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Secret:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.credentials()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Secret {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.credentials()
}googleCloudDir() 🔗
Host gcloud config directory for local dev (e.g. ~/.config/gcloud)
Return Type
Directory Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string google-cloud-dirfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Directory {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
GoogleCloudDir()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Directory:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.google_cloud_dir()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Directory {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.googleCloudDir()
}projectId() 🔗
GCP project ID (auto-discovered from gcloud if omitted)
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string project-idfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ProjectId(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.project_id()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.projectId()
}region() 🔗
GCP region (auto-discovered from gcloud, defaults to us-central1)
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string regionfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Region(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.region()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.region()
}source() 🔗
Source directory for workspace operations
Return Type
Directory Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string sourcefunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Directory {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Source()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Directory:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.source()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Directory {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.source()
}selfImprove() 🔗
Self-improvement mode: ‘off’ (default), ‘write’ (update context file), ‘commit’ (update + git commit)
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string self-improvefunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
SelfImprove(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.self_improve()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.selfImprove()
}developerKnowledgeApiKey() 🔗
Google Developer Knowledge API key (optional, enables searching GCP documentation)
Return Type
Secret Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string developer-knowledge-api-keyfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Secret {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeveloperKnowledgeApiKey()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Secret:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.developer_knowledge_api_key()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Secret {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.developerKnowledgeApiKey()
}githubToken() 🔗
Return Type
Secret Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string github-tokenfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) *dagger.Secret {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
GithubToken()
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> dagger.Secret:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.github_token()
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Secret {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.githubToken()
}prRepo() 🔗
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string pr-repofunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
PrRepo(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.pr_repo()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.prRepo()
}prNumber() 🔗
Return Type
Integer ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string pr-numberfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) int {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
PrNumber(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> int:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.pr_number()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<number> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.prNumber()
}prCommitSha() 🔗
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string pr-commit-shafunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
PrCommitSha(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.pr_commit_sha()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.prCommitSha()
}assist() 🔗
General GCP operations assistant.
Inspects infrastructure, plans deployments, answers questions about GCP services, and reviews configurations. Uses workspace tools to read deployment configs (Dockerfiles, firebase.json, cloudbuild.yaml).
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| assignment | String ! | - | What you want the agent to do (e.g. 'Inspect Cloud Run services and report their status') |
| source | Directory | null | Source directory for context (Dockerfiles, configs, DAGGER.md) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string assist --assignment stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, assignment string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Assist(ctx, assignment)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, assignment: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.assist(assignment)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, assignment: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.assist(assignment)
}batchGetGcpDocs() 🔗
Retrieve multiple Google developer documentation pages at once.
Use the ‘parent’ fields from search_gcp_docs results as document names. Returns all pages as Markdown.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| documentNames | [String ! ] ! | - | List of document resource names (the 'parent' fields from search results) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string batch-get-gcp-docs --document-names string1 --document-names string2func (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, documentNames []string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
BatchGetGcpDocs(ctx, documentNames)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, document_names: List[str]) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.batch_get_gcp_docs(document_names)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, documentNames: string[]): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.batchGetGcpDocs(documentNames)
}checkHttpHealth() 🔗
Run an HTTP health check against a container. Returns the container if healthy.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | Container to health check |
| port | Integer ! | 8080 | Port number |
| path | String ! | "/health" | HTTP path |
| timeout | Integer ! | 60 | Timeout in seconds |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string check-http-health --container IMAGE:TAG --port integer --path string --timeout integerfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, container *dagger.Container, port int, path string, timeout int) *dagger.Container {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
CheckHttpHealth(container, port, path, timeout)
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, container: dagger.Container, port: int, path: str, timeout: int) -> dagger.Container:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.check_http_health(container, port, path, timeout)
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, container: Container, port: number, path: string, timeout: number): Container {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.checkHttpHealth(container, port, path, timeout)
}checkIamPolicy() 🔗
Check the IAM policy bindings on a Cloud Run service.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string check-iam-policy --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
CheckIamPolicy(ctx, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.check_iam_policy(service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.checkIamPolicy(serviceName)
}checkTcpHealth() 🔗
Run a TCP health check against a container. Returns the container if port is open.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | Container to health check |
| port | Integer ! | 8080 | Port number |
| timeout | Integer ! | 60 | Timeout in seconds |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string check-tcp-health --container IMAGE:TAG --port integer --timeout integerfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, container *dagger.Container, port int, timeout int) *dagger.Container {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
CheckTcpHealth(container, port, timeout)
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, container: dagger.Container, port: int, timeout: int) -> dagger.Container:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.check_tcp_health(container, port, timeout)
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, container: Container, port: number, timeout: number): Container {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.checkTcpHealth(container, port, timeout)
}deleteFirebaseChannel() 🔗
Delete a Firebase Hosting preview channel.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| channelId | String ! | - | Preview channel ID to delete |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string delete-firebase-channel --channel-id stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, channelId string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeleteFirebaseChannel(ctx, channelId)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, channel_id: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.delete_firebase_channel(channel_id)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, channelId: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deleteFirebaseChannel(channelId)
}deleteService() 🔗
Delete a Cloud Run service.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name to delete |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string delete-service --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeleteService(ctx, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.delete_service(service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deleteService(serviceName)
}deploy() 🔗
Deploy a service using an AI agent.
Supports Cloud Run, Firebase Hosting, and Vertex AI deployments. The agent interprets the assignment and uses the appropriate tools. If the source directory contains a DAGGER.md file, it will be used as additional context for the agent.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| assignment | String ! | - | Deployment instructions (e.g. 'Deploy image X as service Y, allow unauthenticated') |
| source | Directory | null | Source directory to build (optional, for DAGGER.md context) |
| serviceName | String ! | "" | Target service name (optional, LLM reads from DAGGER.md or assignment) |
| repository | String ! | "" | Artifact Registry repository for built images |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string deploy --assignment string --service-name string --repository stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, assignment string, serviceName string, repository string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Deploy(ctx, assignment, serviceName, repository)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, assignment: str, service_name: str, repository: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.deploy(assignment, service_name, repository)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, assignment: string, serviceName: string, repository: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deploy(assignment, serviceName, repository)
}deployFirebaseHosting() 🔗
Deploy a web application to Firebase Hosting.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Source directory with firebase.json |
| buildCommand | String ! | "npm run build" | Build command (empty string to skip build for pre-built sources) |
| nodeVersion | String ! | "20" | Node.js version |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string deploy-firebase-hosting --source DIR_PATH --build-command string --node-version stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, source *dagger.Directory, buildCommand string, nodeVersion string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeployFirebaseHosting(ctx, source, buildCommand, nodeVersion)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, source: dagger.Directory, build_command: str, node_version: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.deploy_firebase_hosting(source, build_command, node_version)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, source: Directory, buildCommand: string, nodeVersion: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deployFirebaseHosting(source, buildCommand, nodeVersion)
}deployFirebasePreview() 🔗
Deploy to a Firebase Hosting preview channel. Returns the preview URL.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Source directory with firebase.json |
| channelId | String ! | - | Preview channel ID (e.g. pr-123) |
| buildCommand | String ! | "npm run build" | Build command (empty string to skip build for pre-built sources) |
| nodeVersion | String ! | "20" | Node.js version |
| expires | String ! | "7d" | Channel expiration (e.g. '7d') |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string deploy-firebase-preview --source DIR_PATH --channel-id string --build-command string --node-version string --expires stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, source *dagger.Directory, channelId string, buildCommand string, nodeVersion string, expires string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeployFirebasePreview(ctx, source, channelId, buildCommand, nodeVersion, expires)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, source: dagger.Directory, channel_id: str, build_command: str, node_version: str, expires: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.deploy_firebase_preview(source, channel_id, build_command, node_version, expires)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, source: Directory, channelId: string, buildCommand: string, nodeVersion: string, expires: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deployFirebasePreview(source, channelId, buildCommand, nodeVersion, expires)
}deployService() 🔗
Deploy a container image to Cloud Run as a service.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| image | String ! | - | Container image URI to deploy |
| serviceName | String ! | - | Cloud Run service name |
| allowUnauthenticated | Boolean ! | false | Allow public access |
| port | Integer ! | 8080 | Container port |
| cpu | String ! | "1" | CPU allocation (e.g. '1', '2') |
| memory | String ! | "512Mi" | Memory allocation (e.g. '512Mi', '1Gi') |
| minInstances | Integer ! | 0 | Minimum instances (0 for scale-to-zero) |
| maxInstances | Integer ! | 10 | Maximum instances |
| envVars | [String ! ] ! | [] | Environment variables as KEY=VALUE |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string deploy-service --image string --service-name string --allow-unauthenticated boolean --port integer --cpu string --memory string --min-instances integer --max-instances integer --env-vars string1 --env-vars string2func (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, image string, serviceName string, allowUnauthenticated bool, port int, cpu string, memory string, minInstances int, maxInstances int, envVars []string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeployService(ctx, image, serviceName, allowUnauthenticated, port, cpu, memory, minInstances, maxInstances, envVars)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, image: str, service_name: str, allow_unauthenticated: bool, port: int, cpu: str, memory: str, min_instances: int, max_instances: int, env_vars: List[str]) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.deploy_service(image, service_name, allow_unauthenticated, port, cpu, memory, min_instances, max_instances, env_vars)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, image: string, serviceName: string, allowUnauthenticated: boolean, port: number, cpu: string, memory: string, minInstances: number, maxInstances: number, envVars: string[]): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deployService(image, serviceName, allowUnauthenticated, port, cpu, memory, minInstances, maxInstances, envVars)
}deployVertexModel() 🔗
Deploy a containerized ML model to Vertex AI.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| imageUri | String ! | - | Container image URI for the model |
| modelName | String ! | - | Model display name |
| endpointName | String ! | - | Endpoint display name |
| machineType | String ! | "n1-standard-4" | VM machine type |
| acceleratorType | String ! | "NVIDIA_TESLA_T4" | GPU type |
| acceleratorCount | Integer ! | 1 | Number of GPUs |
| minReplicas | Integer ! | 1 | Minimum replicas |
| maxReplicas | Integer ! | 3 | Maximum replicas |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string deploy-vertex-model --image-uri string --model-name string --endpoint-name string --machine-type string --accelerator-type string --accelerator-count integer --min-replicas integer --max-replicas integerfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, imageUri string, modelName string, endpointName string, machineType string, acceleratorType string, acceleratorCount int, minReplicas int, maxReplicas int) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DeployVertexModel(ctx, imageUri, modelName, endpointName, machineType, acceleratorType, acceleratorCount, minReplicas, maxReplicas)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, image_uri: str, model_name: str, endpoint_name: str, machine_type: str, accelerator_type: str, accelerator_count: int, min_replicas: int, max_replicas: int) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.deploy_vertex_model(image_uri, model_name, endpoint_name, machine_type, accelerator_type, accelerator_count, min_replicas, max_replicas)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, imageUri: string, modelName: string, endpointName: string, machineType: string, acceleratorType: string, acceleratorCount: number, minReplicas: number, maxReplicas: number): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.deployVertexModel(imageUri, modelName, endpointName, machineType, acceleratorType, acceleratorCount, minReplicas, maxReplicas)
}describeService() 🔗
Get the full configuration of a Cloud Run service as JSON.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string describe-service --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DescribeService(ctx, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.describe_service(service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.describeService(serviceName)
}developGithubIssue() 🔗
Read a GitHub issue, route it to the best function, and create a Pull Request.
A router LLM reads the issue and selects the optimal function — assist, deploy, troubleshoot, or upgrade — then calls it with extracted parameters. Comments on the issue with a summary and a link to the PR. Returns the PR URL.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| githubToken | Secret ! | - | GitHub token with repo and pull-request permissions |
| issueId | Integer ! | - | GitHub issue number |
| repository | String ! | - | GitHub repository URL (e.g. 'https://github.com/owner/repo') |
| source | Directory | null | Override source directory (uses constructor source if omitted) |
| base | String ! | "main" | Base branch for the pull request |
| suggestGithubFixOnFailure | Boolean ! | false | Post a diagnostic comment on the issue if the agent fails |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string develop-github-issue --github-token env:MYSECRET --issue-id integer --repository string --base string --suggest-github-fix-on-failure booleanfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, githubToken *dagger.Secret, issueId int, repository string, base string, suggestGithubFixOnFailure bool) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
DevelopGithubIssue(ctx, githubToken, issueId, repository, base, suggestGithubFixOnFailure)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, github_token: dagger.Secret, issue_id: int, repository: str, base: str, suggest_github_fix_on_failure: bool) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.develop_github_issue(github_token, issue_id, repository, base, suggest_github_fix_on_failure)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, githubToken: Secret, issueId: number, repository: string, base: string, suggestGithubFixOnFailure: boolean): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.developGithubIssue(githubToken, issueId, repository, base, suggestGithubFixOnFailure)
}editFile() 🔗
Edit a file by replacing a string. The old_string must match exactly.
Returns a changeset showing the diff.
Return Type
Changeset !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| filePath | String ! | - | Path to the file relative to the workspace root |
| oldString | String ! | - | The exact string to find and replace |
| newString | String ! | - | The replacement string |
| replaceAll | Boolean ! | false | Replace all occurrences (default: first only) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string edit-file --file-path string --old-string string --new-string string --replace-all booleanfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, filePath string, oldString string, newString string, replaceAll bool) *dagger.Changeset {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
EditFile(filePath, oldString, newString, replaceAll)
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, file_path: str, old_string: str, new_string: str, replace_all: bool) -> dagger.Changeset:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.edit_file(file_path, old_string, new_string, replace_all)
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, filePath: string, oldString: string, newString: string, replaceAll: boolean): Changeset {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.editFile(filePath, oldString, newString, replaceAll)
}getGcpDoc() 🔗
Retrieve the full content of a Google developer documentation page.
Use the ‘parent’ field from search_gcp_docs results as the document_name. Returns the full page as Markdown.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| documentName | String ! | - | Document resource name from search results (the 'parent' field) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string get-gcp-doc --document-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, documentName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
GetGcpDoc(ctx, documentName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, document_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.get_gcp_doc(document_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, documentName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.getGcpDoc(documentName)
}getRevisions() 🔗
Get the revision history for a Cloud Run service.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string get-revisions --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
GetRevisions(ctx, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.get_revisions(service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.getRevisions(serviceName)
}getServiceLogs() 🔗
Get logs from a Cloud Run service.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name |
| limit | Integer ! | 50 | Maximum number of log entries |
| logFilter | String ! | "" | Log filter (e.g. 'severity>=ERROR') |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string get-service-logs --service-name string --limit integer --log-filter stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string, limit int, logFilter string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
GetServiceLogs(ctx, serviceName, limit, logFilter)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str, limit: int, log_filter: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.get_service_logs(service_name, limit, log_filter)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string, limit: number, logFilter: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.getServiceLogs(serviceName, limit, logFilter)
}getServiceUrl() 🔗
Get the URL of a deployed Cloud Run service.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string get-service-url --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
GetServiceUrl(ctx, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.get_service_url(service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.getServiceUrl(serviceName)
}glob() 🔗
Find files in the workspace matching a glob pattern.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| pattern | String ! | - | Glob pattern (e.g. '**/*.py', '**/*.yaml') |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string glob --pattern stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, pattern string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Glob(ctx, pattern)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, pattern: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.glob(pattern)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, pattern: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.glob(pattern)
}grep() 🔗
Search file contents in the workspace using grep.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| pattern | String ! | - | Search pattern (regex supported) |
| paths | String ! | "" | Comma-separated paths to search in (optional) |
| fileGlob | String ! | "" | Glob pattern to filter files (e.g. '*.py') |
| insensitive | Boolean ! | false | Case-insensitive search |
| limit | Integer ! | 100 | Maximum number of matching lines to return |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string grep --pattern string --paths string --file-glob string --insensitive boolean --limit integerfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, pattern string, paths string, fileGlob string, insensitive bool, limit int) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Grep(ctx, pattern, paths, fileGlob, insensitive, limit)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, pattern: str, paths: str, file_glob: str, insensitive: bool, limit: int) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.grep(pattern, paths, file_glob, insensitive, limit)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, pattern: string, paths: string, fileGlob: string, insensitive: boolean, limit: number): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.grep(pattern, paths, fileGlob, insensitive, limit)
}listImages() 🔗
List images in an Artifact Registry repository.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| repository | String ! | - | Artifact Registry repository name |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string list-images --repository stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, repository string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ListImages(ctx, repository)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, repository: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.list_images(repository)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, repository: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.listImages(repository)
}listServices() 🔗
List all Cloud Run services in the project and region.
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string list-servicesfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ListServices(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.list_services()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.listServices()
}listVertexEndpoints() 🔗
List all Vertex AI endpoints in the project.
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string list-vertex-endpointsfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ListVertexEndpoints(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.list_vertex_endpoints()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.listVertexEndpoints()
}listVertexModels() 🔗
List all Vertex AI models in the project.
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string list-vertex-modelsfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ListVertexModels(ctx)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, ) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.list_vertex_models()
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, ): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.listVertexModels()
}publishContainer() 🔗
Publish a container image to Artifact Registry.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | Container to publish |
| repository | String ! | - | Artifact Registry repository name |
| imageName | String ! | - | Image name in the repository |
| tag | String ! | "latest" | Image tag |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string publish-container --container IMAGE:TAG --repository string --image-name string --tag stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, container *dagger.Container, repository string, imageName string, tag string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
PublishContainer(ctx, container, repository, imageName, tag)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, container: dagger.Container, repository: str, image_name: str, tag: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.publish_container(container, repository, image_name, tag)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, container: Container, repository: string, imageName: string, tag: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.publishContainer(container, repository, imageName, tag)
}readFile() 🔗
Read a file from the workspace with line numbers.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| filePath | String ! | - | Path to the file relative to the workspace root |
| offset | Integer ! | 0 | Line number to start reading from (1-based) |
| limit | Integer ! | 0 | Maximum number of lines to read |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string read-file --file-path string --offset integer --limit integerfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, filePath string, offset int, limit int) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ReadFile(ctx, filePath, offset, limit)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, file_path: str, offset: int, limit: int) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.read_file(file_path, offset, limit)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, filePath: string, offset: number, limit: number): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.readFile(filePath, offset, limit)
}review() 🔗
Review deployment configs for best practices and security.
Examines Dockerfiles, firebase.json, cloudbuild.yaml, Cloud Run service YAML, IAM policies, and other GCP configs. Provides structured feedback with issues and recommendations.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Source directory with deployment configs to review |
| focus | String ! | "" | Specific area to focus the review on (optional) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string review --source DIR_PATH --focus stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, source *dagger.Directory, focus string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Review(ctx, source, focus)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, source: dagger.Directory, focus: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.review(source, focus)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, source: Directory, focus: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.review(source, focus)
}searchGcpDocs() 🔗
Search Google’s official developer documentation for GCP, Firebase, Android, and more.
Returns relevant documentation chunks with page references. Use get_gcp_doc with a parent value from results to retrieve full page content.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| query | String ! | - | Search query (e.g. 'How to configure Cloud Run VPC connector') |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string search-gcp-docs --query stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, query string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
SearchGcpDocs(ctx, query)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, query: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.search_gcp_docs(query)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, query: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.searchGcpDocs(query)
}serviceExists() 🔗
Check if a Cloud Run service exists.
Return Type
Boolean !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Cloud Run service name to check |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string service-exists --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string) bool {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
ServiceExists(ctx, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str) -> bool:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.service_exists(service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string): Promise<boolean> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.serviceExists(serviceName)
}suggestGithubFix() 🔗
Analyze a CI failure and post inline code suggestions on a GitHub PR.
Reads the error output, explores source files, and posts GitHub “suggested changes” that developers can apply with one click. Does not require GCP authentication.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| githubToken | Secret ! | - | GitHub token with repo permissions |
| prNumber | Integer ! | - | Pull request number |
| repo | String ! | - | GitHub repository URL (e.g. 'https://github.com/owner/repo') |
| commitSha | String ! | - | HEAD commit SHA of the PR branch |
| errorOutput | String ! | - | CI error output (stderr/stdout) |
| source | Directory | null | Source directory of the PR branch |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string suggest-github-fix --github-token env:MYSECRET --pr-number integer --repo string --commit-sha string --error-output stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, githubToken *dagger.Secret, prNumber int, repo string, commitSha string, errorOutput string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
SuggestGithubFix(ctx, githubToken, prNumber, repo, commitSha, errorOutput)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, github_token: dagger.Secret, pr_number: int, repo: str, commit_sha: str, error_output: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.suggest_github_fix(github_token, pr_number, repo, commit_sha, error_output)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, githubToken: Secret, prNumber: number, repo: string, commitSha: string, errorOutput: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.suggestGithubFix(githubToken, prNumber, repo, commitSha, errorOutput)
}suggestGithubPrCodeComment() 🔗
Post an inline code suggestion on a GitHub pull request.
The suggestion will appear as a GitHub “suggested change” that developers can apply with one click.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| path | String ! | - | File path relative to repo root |
| line | Integer ! | - | Line number to suggest a change on |
| suggestion | String ! | - | Replacement code (no ```suggestion fences, just the raw code) |
| comment | String ! | "" | Explanation of the fix |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string suggest-github-pr-code-comment --path string --line integer --suggestion string --comment stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, path string, line int, suggestion string, comment string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
SuggestGithubPrCodeComment(ctx, path, line, suggestion, comment)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, path: str, line: int, suggestion: str, comment: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.suggest_github_pr_code_comment(path, line, suggestion, comment)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, path: string, line: number, suggestion: string, comment: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.suggestGithubPrCodeComment(path, line, suggestion, comment)
}task() 🔗
Launch a sub-agent for research or focused work.
The sub-agent has read-only access to the workspace and GCP tools. Use this for research, analysis, or exploring infrastructure state.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| description | String ! | - | Short description of the sub-task |
| prompt | String ! | - | Detailed prompt for the sub-agent |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string task --description string --prompt stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, description string, prompt string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Task(ctx, description, prompt)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, description: str, prompt: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.task(description, prompt)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, description: string, prompt: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.task(description, prompt)
}troubleshoot() 🔗
Troubleshoot a GCP service using an AI agent.
The agent checks the service status, reads logs, and provides a diagnosis with recommended actions. Supports Cloud Run, Firebase, and Vertex AI services.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| issue | String ! | - | Description of the issue to diagnose |
| source | Directory | null | Source directory (optional, for DAGGER.md context) |
| serviceName | String ! | "" | Service name to troubleshoot (optional, LLM reads from DAGGER.md or issue) |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string troubleshoot --issue string --service-name stringfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, issue string, serviceName string) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Troubleshoot(ctx, issue, serviceName)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, issue: str, service_name: str) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.troubleshoot(issue, service_name)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, issue: string, serviceName: string): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.troubleshoot(issue, serviceName)
}upgrade() 🔗
Upgrade a GCP service version, configuration, or traffic split.
Inspects the current state, plans the upgrade, and applies changes. Supports Cloud Run image updates, traffic splitting, config changes, and Firebase redeployments.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| serviceName | String ! | - | Service to upgrade |
| targetVersion | String ! | "" | Target version, image tag, or config change |
| source | Directory | null | Source directory (optional, for context) |
| dryRun | Boolean ! | false | Analyze and report changes without applying |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string upgrade --service-name string --target-version string --dry-run booleanfunc (m *MyModule) Example(ctx context.Context, workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, serviceName string, targetVersion string, dryRun bool) string {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
Upgrade(ctx, serviceName, targetVersion, dryRun)
}@function
async def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, service_name: str, target_version: str, dry_run: bool) -> str:
return await (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.upgrade(service_name, target_version, dry_run)
)@func()
async example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, serviceName: string, targetVersion: string, dryRun: boolean): Promise<string> {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.upgrade(serviceName, targetVersion, dryRun)
}writeFile() 🔗
Create or overwrite a file in the workspace.
Returns a changeset showing the diff.
Return Type
Changeset !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| filePath | String ! | - | Path to the file relative to the workspace root |
| contents | String ! | - | The full file contents to write |
Example
dagger -m github.com/telchak/daggerverse/goose@010621c997378db92da5969584001be575c5e5a7 call \
--workload-identity-provider string --service-account-email string --project-id string --region string --self-improve string write-file --file-path string --contents stringfunc (m *MyModule) Example(workloadIdentityProvider string, serviceAccountEmail string, projectId string, region string, selfImprove string, filePath string, contents string) *dagger.Changeset {
return dag.
Goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove).
WriteFile(filePath, contents)
}@function
def example(workload_identity_provider: str, service_account_email: str, project_id: str, region: str, self_improve: str, file_path: str, contents: str) -> dagger.Changeset:
return (
dag.goose(workload_identity_provider, service_account_email, project_id, region, self_improve)
.write_file(file_path, contents)
)@func()
example(workloadIdentityProvider: string, serviceAccountEmail: string, projectId: string, region: string, selfImprove: string, filePath: string, contents: string): Changeset {
return dag
.goose(workloadIdentityProvider, serviceAccountEmail, projectId, region, selfImprove)
.writeFile(filePath, contents)
}