diff --git a/README.md b/README.md index c5d2a3ec..e6977a10 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ similarly to bb-browser, which it is aimed at replacing. Both the backend and the frontend is configured via a jsonnet configuration file. Look at `config/portal.jsonnet` for an example configuration file, and `pkg/proto/configuration/bb_portal/bb_portal.proto` and -`pkg/proto/configuration/frontend/frontend.proto` for the configuration schema. +`pkg/proto/configuration/frontend/frontend.proto` for the configuration schema. See [CI-integration.md](docs/CI-integration.md) for instructions on how to integrate with different CI systems. ## Frontend diff --git a/config/gh-actions.jmespath b/config/gh-actions.jmespath new file mode 100644 index 00000000..f8acba89 --- /dev/null +++ b/config/gh-actions.jmespath @@ -0,0 +1,31 @@ +{ + "username": env.USER + "hostname": env.HOSTNAME + "sourceControls": [ + { + "repo": env.GITHUB_REPOSITORY + "repoUrl": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY]) || `null` + "ref": env.GITHUB_REF + "refUrl": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_REF_NAME && ends_with(env.GITHUB_REF_NAME, '/merge')) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'pull', env.GITHUB_REF_NAME]) || (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_REF) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'tree', env.GITHUB_REF]) || `null` + "commit": env.GITHUB_SHA + "commitUrl": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_SHA) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'commit', env.GITHUB_SHA]) || `null` + } + ] + "invocationTags": { + "pull_request": env.GITHUB_REF_NAME && ends_with(env.GITHUB_REF_NAME, '/merge') && env.GITHUB_REF_NAME || `null` + "pull_request_url": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_REF_NAME && ends_with(env.GITHUB_REF_NAME, '/merge')) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'pull', env.GITHUB_REF_NAME]) || `null` + "workflow": env.GITHUB_WORKFLOW + "workflow_url": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY, 'actions', 'runs', env.GITHUB_RUN_ID]) || `null` + "job": env.GITHUB_JOB + "action": env.GITHUB_ACTION + } + "buildTags": { + "repo": env.GITHUB_REPOSITORY + "repo_url": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY]) || `null` + "pull_request": env.GITHUB_REF_NAME && ends_with(env.GITHUB_REF_NAME, '/merge') && env.GITHUB_REF_NAME || `null` + "pull_request_url": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_REF_NAME && ends_with(env.GITHUB_REF_NAME, '/merge')) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'pull', env.GITHUB_REF_NAME]) || `null` + "workflow": env.GITHUB_WORKFLOW + "workflow_url": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY, 'actions', 'runs', env.GITHUB_RUN_ID]) || `null` + "build_id": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY, 'actions', 'runs', env.GITHUB_RUN_ID]) || `null` + } +} diff --git a/config/gitlab.jmespath b/config/gitlab.jmespath new file mode 100644 index 00000000..5ac11388 --- /dev/null +++ b/config/gitlab.jmespath @@ -0,0 +1,27 @@ +{ + "hostname": env.HOSTNAME + "sourceControls": [ + { + "repo": env.CI_PROJECT_PATH + "repoUrl": env.CI_PROJECT_URL + "ref": env.CI_COMMIT_REF_NAME + "refUrl": (env.CI_PROJECT_URL && env.CI_COMMIT_REF_SLUG) && join('/', [env.CI_PROJECT_URL, '-', 'tree', env.CI_COMMIT_REF_SLUG]) || `null` + "commit": env.CI_COMMIT_SHA + "commitUrl": (env.CI_PROJECT_URL && env.CI_COMMIT_SHA) && join('/', [env.CI_PROJECT_URL, '-', 'commit', env.CI_COMMIT_SHA]) || `null` + } + ] + "invocationTags": { + "pipeline": env.CI_PIPELINE_ID + "pipeline_url": env.CI_PIPELINE_URL + "job": env.CI_JOB_NAME + "job_url": env.CI_JOB_URL + "job_stage": env.CI_JOB_STAGE + } + "buildTags": { + "repo": env.CI_PROJECT_PATH + "repo_url": env.CI_PROJECT_URL + "pipeline": env.CI_PIPELINE_ID + "pipeline_url": env.CI_PIPELINE_URL + "build_id": env.CI_PIPELINE_URL + } +} diff --git a/config/portal.jsonnet b/config/portal.jsonnet index 1c797330..444b15e1 100644 --- a/config/portal.jsonnet +++ b/config/portal.jsonnet @@ -18,6 +18,10 @@ // At least one service should be configured, otherwise the portal will not // do anything useful. +local githubActionsExtractor = importstr 'gh-actions.jmespath'; +local gitlabExtractor = importstr 'gitlab.jmespath'; +local semaphoreExtractor = importstr 'semaphore.jmespath'; + { global: { tracing: { @@ -90,6 +94,10 @@ invocationRetention: '604800s', }, minEventBatchDuration: '0.1s', + invocationMetadataExtractor: { + expression: githubActionsExtractor, + }, + buildKey: "build_id", }, // The BrowserService can be disabled by not setting this field. @@ -143,6 +151,15 @@ icon: { slack: {} }, }, ], + additionalBuildColumns: [ + { title: 'Repo', value_key: 'repo', url_key: 'repo_url' }, + { title: 'PR', value_key: 'pull_request', url_key: 'pull_request_url' }, + { title: 'Workflow', value_key: 'workflow', url_key: 'workflow_url' }, + ], + additionalBuildInvocationColumns: [ + { title: 'Job', value_key: 'job' }, + { title: 'Action', value_key: 'action' }, + ], }, }, diff --git a/config/semaphore.jmespath b/config/semaphore.jmespath new file mode 100644 index 00000000..e0421e60 --- /dev/null +++ b/config/semaphore.jmespath @@ -0,0 +1,37 @@ +{ + "username": env.USER + "hostname": env.HOSTNAME + "sourceControls": [ + { + "repo": env.SEMAPHORE_GIT_REPO_SLUG + "repoUrl": (env.SEMAPHORE_GIT_REPO_SLUG) && join('/', ['https://github.com', env.SEMAPHORE_GIT_REPO_SLUG]) || `null` + "ref": env.SEMAPHORE_GIT_REF + "refUrl": (env.SEMAPHORE_GIT_REPO_SLUG && env.SEMAPHORE_GIT_REF) && join('/', ['https://github.com', env.SEMAPHORE_GIT_REPO_SLUG, 'tree', env.SEMAPHORE_GIT_REF]) || `null` + "commit": env.SEMAPHORE_GIT_SHA + "commitUrl": (env.SEMAPHORE_GIT_REPO_SLUG && env.SEMAPHORE_GIT_SHA) && join('/', ['https://github.com', env.SEMAPHORE_GIT_REPO_SLUG, 'commit', env.SEMAPHORE_GIT_SHA]) || `null` + } + ] + "invocationTags": { + "semaphore_block": env.SEMAPHORE_BLOCK_NAME + "semaphore_environment_type": env.SEMAPHORE_AGENT_MACHINE_ENVIRONMENT_TYPE + "semaphore_initiator": env.SEMAPHORE_WORKFLOW_TRIGGERED_BY + "semaphore_job": env.SEMAPHORE_JOB_NAME + "semaphore_job_url": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_JOB_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'jobs', env.SEMAPHORE_JOB_ID]) || `null` + "semaphore_machine_type": env.SEMAPHORE_AGENT_MACHINE_TYPE + "semaphore_os_image": env.SEMAPHORE_AGENT_MACHINE_OS_IMAGE + "semaphore_pipeline": env.SEMAPHORE_PIPELINE_NAME + "semaphore_pipeline_url": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_WORKFLOW_ID && env.SEMAPHORE_PIPELINE_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'workflows', env.SEMAPHORE_WORKFLOW_ID, join('', ['?pipeline_id=', env.SEMAPHORE_PIPELINE_ID])]) || `null` + "semaphore_project": env.SEMAPHORE_PROJECT_NAME + "semaphore_project_url": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_PROJECT_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'projects', env.SEMAPHORE_PROJECT_ID]) || `null` + "semaphore_workflow": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_WORKFLOW_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'workflows', env.SEMAPHORE_WORKFLOW_ID]) || `null` + } + "buildTags": { + "repo": env.SEMAPHORE_GIT_REPO_SLUG + "repo_url": (env.SEMAPHORE_GIT_REPO_SLUG) && join('/', ['https://github.com', env.SEMAPHORE_GIT_REPO_SLUG]) || `null` + "semaphore_initiator": env.SEMAPHORE_WORKFLOW_TRIGGERED_BY + "semaphore_project": env.SEMAPHORE_PROJECT_NAME + "semaphore_project_url": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_PROJECT_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'projects', env.SEMAPHORE_PROJECT_ID]) || `null` + "semaphore_workflow": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_WORKFLOW_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'workflows', env.SEMAPHORE_WORKFLOW_ID]) || `null` + "build_id": (env.SEMAPHORE_ORGANIZATION_URL && env.SEMAPHORE_WORKFLOW_ID) && join('/', [env.SEMAPHORE_ORGANIZATION_URL, 'workflows', env.SEMAPHORE_WORKFLOW_ID]) || `null` + } +} diff --git a/docs/CI-integration.md b/docs/CI-integration.md new file mode 100644 index 00000000..f5618f2e --- /dev/null +++ b/docs/CI-integration.md @@ -0,0 +1,52 @@ +# CI integration + +These are example integrations against different CI environments. + +## Github Actions + +Backend extractor: Use `config/gh-actions.jmespath`, + +Frontend config: +``` +additionalBuildColumns: [ + { title: 'Repo', value_key: 'repo', url_key: 'repo_url' }, + { title: 'PR', value_key: 'pull_request', url_key: 'pull_request_url' }, + { title: 'Workflow', value_key: 'workflow', url_key: 'workflow_url' }, +], +additionalBuildInvocationColumns: [ + { title: 'Job', value_key: 'job' }, + { title: 'Action', value_key: 'action' }, +], +``` + +## Gitlab CI + +Backend extractor: Use `config/gitlab.jmespath`, + +Frontend config: +``` +additionalBuildColumns: [ + { title: 'Repo', value_key: 'repo', url_key: 'repo_url' }, + { title: 'Pipeline', value_key: 'pipeline', url_key: 'pipeline_url' }, +], +additionalBuildInvocationColumns: [ + { title: 'Job', value_key: 'job', url_key: 'job_url' }, + { title: 'Job stage', value_key: 'job_stage' }, +], +``` + +## SemaphoreCI + +Backend extractor: Use `config/semaphore.jmespath` + +Frontend config: +``` +additionalBuildColumns: [ + { title: 'Repo', value_key: 'repo', url_key: 'repo_url' }, + { title: 'Workflow', value_key: 'semaphore_workflow', url_key: 'semaphore_workflow' }, +], +additionalBuildInvocationColumns: [ + { title: 'Pipeline', value_key: 'semaphore_pipeline', url_key: 'semaphore_pipeline_url' }, + { title: 'Job', value_key: 'semaphore_job', url_key: 'semaphore_job_url' }, +], +``` diff --git a/ent/authschema/privacy_test.go b/ent/authschema/privacy_test.go index 3d021f79..6e801af3 100644 --- a/ent/authschema/privacy_test.go +++ b/ent/authschema/privacy_test.go @@ -82,7 +82,7 @@ func TestPrivacy(t *testing.T) { require.NoError(t, err) _, err = db.AuthenticatedUser.Create().SetUserUUID(uuid.New()).SetExternalID("denied_user").AddBazelInvocations(deniedInvocation).Save(ctx) require.NoError(t, err) - _, err = db.Build.Create().SetInstanceName(deniedInstance).SetBuildUUID(uuid.New()).SetBuildURL("denied_build_url").SetTimestamp(time.Now()).Save(ctx) + _, err = db.Build.Create().SetInstanceName(deniedInstance).SetBuildUUID(uuid.New()).SetTimestamp(time.Now()).Save(ctx) require.NoError(t, err) deniedTarget, err := db.Target.Create().SetInstanceName(deniedInstance).SetLabel("denied").SetAspect("aspect").SetTargetKind("targetKind").Save(ctx) require.NoError(t, err) @@ -129,7 +129,7 @@ func TestPrivacy(t *testing.T) { require.NoError(t, err) allowed1User, err := db.AuthenticatedUser.Create().SetUserUUID(uuid.New()).SetExternalID("allowed1_user").AddBazelInvocations(allowed1Invocation).Save(ctx) require.NoError(t, err) - allowed1Build, err := db.Build.Create().SetInstanceName(allowed1Instance).SetBuildUUID(uuid.New()).SetBuildURL("allowed1_build_url").SetTimestamp(time.Now()).Save(ctx) + allowed1Build, err := db.Build.Create().SetInstanceName(allowed1Instance).SetBuildUUID(uuid.New()).SetTimestamp(time.Now()).Save(ctx) require.NoError(t, err) allowed1Target, err := db.Target.Create().SetInstanceName(allowed1Instance).SetLabel("allowed1").SetAspect("aspect").SetTargetKind("targetKind").Save(ctx) require.NoError(t, err) @@ -181,7 +181,7 @@ func TestPrivacy(t *testing.T) { require.NoError(t, err) allowed2User, err := db.AuthenticatedUser.Create().SetUserUUID(uuid.New()).SetExternalID("allowed2_user").AddBazelInvocations(allowed2Invocation).Save(ctx) require.NoError(t, err) - allowed2Build, err := db.Build.Create().SetInstanceName(allowed2Instance).SetBuildUUID(uuid.New()).SetBuildURL("allowed2_build_url").SetTimestamp(time.Now()).Save(ctx) + allowed2Build, err := db.Build.Create().SetInstanceName(allowed2Instance).SetBuildUUID(uuid.New()).SetTimestamp(time.Now()).Save(ctx) require.NoError(t, err) allowed2Target, err := db.Target.Create().SetInstanceName(allowed2Instance).SetLabel("allowed2").SetAspect("aspect").SetTargetKind("targetKind").Save(ctx) require.NoError(t, err) diff --git a/ent/authschema/schema.go b/ent/authschema/schema.go index 7ff26eac..156cbd28 100644 --- a/ent/authschema/schema.go +++ b/ent/authschema/schema.go @@ -21,6 +21,8 @@ type ( BazelInvocation struct{ schema.BazelInvocation } // Build reexport with auth policy added Build struct{ schema.Build } + // BuildTag reexport with auth policy added + BuildTag struct{ schema.BuildTag } // BuildLogChunk reexport with auth policy added BuildLogChunk struct{ schema.BuildLogChunk } // BuildGraphMetrics reexport with auth policy added @@ -37,6 +39,8 @@ type ( IncompleteBuildLog struct{ schema.IncompleteBuildLog } // InstanceName reexport with auth policy added InstanceName struct{ schema.InstanceName } + // InvocationTag reexport with auth policy added + InvocationTag struct{ schema.InvocationTag } // InvocationFiles reexport with auth policy added InvocationFiles struct{ schema.InvocationFiles } // InvocationTarget reexport with auth policy added diff --git a/ent/gen/ent/BUILD.bazel b/ent/gen/ent/BUILD.bazel index f9578513..b775d4c3 100644 --- a/ent/gen/ent/BUILD.bazel +++ b/ent/gen/ent/BUILD.bazel @@ -53,6 +53,11 @@ go_library( "buildlogchunk_delete.go", "buildlogchunk_query.go", "buildlogchunk_update.go", + "buildtag.go", + "buildtag_create.go", + "buildtag_delete.go", + "buildtag_query.go", + "buildtag_update.go", "client.go", "configuration.go", "configuration_create.go", @@ -98,6 +103,11 @@ go_library( "invocationfiles_delete.go", "invocationfiles_query.go", "invocationfiles_update.go", + "invocationtag.go", + "invocationtag_create.go", + "invocationtag_delete.go", + "invocationtag_query.go", + "invocationtag_update.go", "invocationtarget.go", "invocationtarget_create.go", "invocationtarget_delete.go", @@ -191,6 +201,7 @@ go_library( "//ent/gen/ent/build", "//ent/gen/ent/buildgraphmetrics", "//ent/gen/ent/buildlogchunk", + "//ent/gen/ent/buildtag", "//ent/gen/ent/configuration", "//ent/gen/ent/connectionmetadata", "//ent/gen/ent/eventmetadata", @@ -198,6 +209,7 @@ go_library( "//ent/gen/ent/incompletebuildlog", "//ent/gen/ent/instancename", "//ent/gen/ent/invocationfiles", + "//ent/gen/ent/invocationtag", "//ent/gen/ent/invocationtarget", "//ent/gen/ent/memorymetrics", "//ent/gen/ent/metrics", diff --git a/ent/gen/ent/bazelinvocation.go b/ent/gen/ent/bazelinvocation.go index 9cf11e5b..8a35a6c5 100644 --- a/ent/gen/ent/bazelinvocation.go +++ b/ent/gen/ent/bazelinvocation.go @@ -17,7 +17,6 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/eventmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" - "github.com/buildbarn/bb-portal/ent/gen/ent/sourcecontrol" "github.com/buildbarn/bb-portal/pkg/invocation" "github.com/google/uuid" ) @@ -35,22 +34,12 @@ type BazelInvocation struct { StartedAt time.Time `json:"started_at,omitempty"` // EndedAt holds the value of the "ended_at" field. EndedAt *time.Time `json:"ended_at,omitempty"` - // ChangeNumber holds the value of the "change_number" field. - ChangeNumber int `json:"change_number,omitempty"` - // PatchsetNumber holds the value of the "patchset_number" field. - PatchsetNumber int `json:"patchset_number,omitempty"` // BepCompleted holds the value of the "bep_completed" field. BepCompleted bool `json:"bep_completed,omitempty"` - // StepLabel holds the value of the "step_label" field. - StepLabel string `json:"step_label,omitempty"` - // UserEmail holds the value of the "user_email" field. - UserEmail string `json:"user_email,omitempty"` - // UserLdap holds the value of the "user_ldap" field. - UserLdap string `json:"user_ldap,omitempty"` + // Username holds the value of the "username" field. + Username string `json:"username,omitempty"` // Hostname holds the value of the "hostname" field. Hostname string `json:"hostname,omitempty"` - // IsCiWorker holds the value of the "is_ci_worker" field. - IsCiWorker bool `json:"is_ci_worker,omitempty"` // NumFetches holds the value of the "num_fetches" field. NumFetches int64 `json:"num_fetches,omitempty"` // ProfileName holds the value of the "profile_name" field. @@ -92,6 +81,8 @@ type BazelInvocationEdges struct { Build *Build `json:"build,omitempty"` // AuthenticatedUser holds the value of the authenticated_user edge. AuthenticatedUser *AuthenticatedUser `json:"authenticated_user,omitempty"` + // Tags holds the value of the tags edge. + Tags []*InvocationTag `json:"tags,omitempty"` // EventMetadata holds the value of the event_metadata edge. EventMetadata *EventMetadata `json:"event_metadata,omitempty"` // ConnectionMetadata holds the value of the connection_metadata edge. @@ -113,13 +104,14 @@ type BazelInvocationEdges struct { // TargetKindMappings holds the value of the target_kind_mappings edge. TargetKindMappings []*TargetKindMapping `json:"target_kind_mappings,omitempty"` // SourceControl holds the value of the source_control edge. - SourceControl *SourceControl `json:"source_control,omitempty"` + SourceControl []*SourceControl `json:"source_control,omitempty"` // loadedTypes holds the information for reporting if a // type was loaded (or requested) in eager-loading or not. - loadedTypes [14]bool + loadedTypes [15]bool // totalCount holds the count of the edges above. - totalCount [9]map[string]int + totalCount [10]map[string]int + namedTags map[string][]*InvocationTag namedConfigurations map[string][]*Configuration namedActions map[string][]*Action namedIncompleteBuildLogs map[string][]*IncompleteBuildLog @@ -127,6 +119,7 @@ type BazelInvocationEdges struct { namedInvocationFiles map[string][]*InvocationFiles namedInvocationTargets map[string][]*InvocationTarget namedTargetKindMappings map[string][]*TargetKindMapping + namedSourceControl map[string][]*SourceControl } // InstanceNameOrErr returns the InstanceName value or an error if the edge @@ -162,12 +155,21 @@ func (e BazelInvocationEdges) AuthenticatedUserOrErr() (*AuthenticatedUser, erro return nil, &NotLoadedError{edge: "authenticated_user"} } +// TagsOrErr returns the Tags value or an error if the edge +// was not loaded in eager-loading. +func (e BazelInvocationEdges) TagsOrErr() ([]*InvocationTag, error) { + if e.loadedTypes[3] { + return e.Tags, nil + } + return nil, &NotLoadedError{edge: "tags"} +} + // EventMetadataOrErr returns the EventMetadata value or an error if the edge // was not loaded in eager-loading, or loaded but was not found. func (e BazelInvocationEdges) EventMetadataOrErr() (*EventMetadata, error) { if e.EventMetadata != nil { return e.EventMetadata, nil - } else if e.loadedTypes[3] { + } else if e.loadedTypes[4] { return nil, &NotFoundError{label: eventmetadata.Label} } return nil, &NotLoadedError{edge: "event_metadata"} @@ -178,7 +180,7 @@ func (e BazelInvocationEdges) EventMetadataOrErr() (*EventMetadata, error) { func (e BazelInvocationEdges) ConnectionMetadataOrErr() (*ConnectionMetadata, error) { if e.ConnectionMetadata != nil { return e.ConnectionMetadata, nil - } else if e.loadedTypes[4] { + } else if e.loadedTypes[5] { return nil, &NotFoundError{label: connectionmetadata.Label} } return nil, &NotLoadedError{edge: "connection_metadata"} @@ -187,7 +189,7 @@ func (e BazelInvocationEdges) ConnectionMetadataOrErr() (*ConnectionMetadata, er // ConfigurationsOrErr returns the Configurations value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) ConfigurationsOrErr() ([]*Configuration, error) { - if e.loadedTypes[5] { + if e.loadedTypes[6] { return e.Configurations, nil } return nil, &NotLoadedError{edge: "configurations"} @@ -196,7 +198,7 @@ func (e BazelInvocationEdges) ConfigurationsOrErr() ([]*Configuration, error) { // ActionsOrErr returns the Actions value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) ActionsOrErr() ([]*Action, error) { - if e.loadedTypes[6] { + if e.loadedTypes[7] { return e.Actions, nil } return nil, &NotLoadedError{edge: "actions"} @@ -207,7 +209,7 @@ func (e BazelInvocationEdges) ActionsOrErr() ([]*Action, error) { func (e BazelInvocationEdges) MetricsOrErr() (*Metrics, error) { if e.Metrics != nil { return e.Metrics, nil - } else if e.loadedTypes[7] { + } else if e.loadedTypes[8] { return nil, &NotFoundError{label: metrics.Label} } return nil, &NotLoadedError{edge: "metrics"} @@ -216,7 +218,7 @@ func (e BazelInvocationEdges) MetricsOrErr() (*Metrics, error) { // IncompleteBuildLogsOrErr returns the IncompleteBuildLogs value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) IncompleteBuildLogsOrErr() ([]*IncompleteBuildLog, error) { - if e.loadedTypes[8] { + if e.loadedTypes[9] { return e.IncompleteBuildLogs, nil } return nil, &NotLoadedError{edge: "incomplete_build_logs"} @@ -225,7 +227,7 @@ func (e BazelInvocationEdges) IncompleteBuildLogsOrErr() ([]*IncompleteBuildLog, // BuildLogChunksOrErr returns the BuildLogChunks value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) BuildLogChunksOrErr() ([]*BuildLogChunk, error) { - if e.loadedTypes[9] { + if e.loadedTypes[10] { return e.BuildLogChunks, nil } return nil, &NotLoadedError{edge: "build_log_chunks"} @@ -234,7 +236,7 @@ func (e BazelInvocationEdges) BuildLogChunksOrErr() ([]*BuildLogChunk, error) { // InvocationFilesOrErr returns the InvocationFiles value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) InvocationFilesOrErr() ([]*InvocationFiles, error) { - if e.loadedTypes[10] { + if e.loadedTypes[11] { return e.InvocationFiles, nil } return nil, &NotLoadedError{edge: "invocation_files"} @@ -243,7 +245,7 @@ func (e BazelInvocationEdges) InvocationFilesOrErr() ([]*InvocationFiles, error) // InvocationTargetsOrErr returns the InvocationTargets value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) InvocationTargetsOrErr() ([]*InvocationTarget, error) { - if e.loadedTypes[11] { + if e.loadedTypes[12] { return e.InvocationTargets, nil } return nil, &NotLoadedError{edge: "invocation_targets"} @@ -252,19 +254,17 @@ func (e BazelInvocationEdges) InvocationTargetsOrErr() ([]*InvocationTarget, err // TargetKindMappingsOrErr returns the TargetKindMappings value or an error if the edge // was not loaded in eager-loading. func (e BazelInvocationEdges) TargetKindMappingsOrErr() ([]*TargetKindMapping, error) { - if e.loadedTypes[12] { + if e.loadedTypes[13] { return e.TargetKindMappings, nil } return nil, &NotLoadedError{edge: "target_kind_mappings"} } // SourceControlOrErr returns the SourceControl value or an error if the edge -// was not loaded in eager-loading, or loaded but was not found. -func (e BazelInvocationEdges) SourceControlOrErr() (*SourceControl, error) { - if e.SourceControl != nil { +// was not loaded in eager-loading. +func (e BazelInvocationEdges) SourceControlOrErr() ([]*SourceControl, error) { + if e.loadedTypes[14] { return e.SourceControl, nil - } else if e.loadedTypes[13] { - return nil, &NotFoundError{label: sourcecontrol.Label} } return nil, &NotLoadedError{edge: "source_control"} } @@ -276,11 +276,11 @@ func (*BazelInvocation) scanValues(columns []string) ([]any, error) { switch columns[i] { case bazelinvocation.FieldCanonicalCommandLine, bazelinvocation.FieldOriginalCommandLine, bazelinvocation.FieldOptionsParsed: values[i] = new([]byte) - case bazelinvocation.FieldBepCompleted, bazelinvocation.FieldIsCiWorker, bazelinvocation.FieldProcessedEventStarted, bazelinvocation.FieldProcessedEventBuildMetadata, bazelinvocation.FieldProcessedEventBuildFinished, bazelinvocation.FieldProcessedEventWorkspaceStatus: + case bazelinvocation.FieldBepCompleted, bazelinvocation.FieldProcessedEventStarted, bazelinvocation.FieldProcessedEventBuildMetadata, bazelinvocation.FieldProcessedEventBuildFinished, bazelinvocation.FieldProcessedEventWorkspaceStatus: values[i] = new(sql.NullBool) - case bazelinvocation.FieldID, bazelinvocation.FieldChangeNumber, bazelinvocation.FieldPatchsetNumber, bazelinvocation.FieldNumFetches, bazelinvocation.FieldExitCodeCode: + case bazelinvocation.FieldID, bazelinvocation.FieldNumFetches, bazelinvocation.FieldExitCodeCode: values[i] = new(sql.NullInt64) - case bazelinvocation.FieldStepLabel, bazelinvocation.FieldUserEmail, bazelinvocation.FieldUserLdap, bazelinvocation.FieldHostname, bazelinvocation.FieldProfileName, bazelinvocation.FieldBazelVersion, bazelinvocation.FieldExitCodeName: + case bazelinvocation.FieldUsername, bazelinvocation.FieldHostname, bazelinvocation.FieldProfileName, bazelinvocation.FieldBazelVersion, bazelinvocation.FieldExitCodeName: values[i] = new(sql.NullString) case bazelinvocation.FieldCreatedTimestamp, bazelinvocation.FieldStartedAt, bazelinvocation.FieldEndedAt: values[i] = new(sql.NullTime) @@ -338,41 +338,17 @@ func (bi *BazelInvocation) assignValues(columns []string, values []any) error { bi.EndedAt = new(time.Time) *bi.EndedAt = value.Time } - case bazelinvocation.FieldChangeNumber: - if value, ok := values[i].(*sql.NullInt64); !ok { - return fmt.Errorf("unexpected type %T for field change_number", values[i]) - } else if value.Valid { - bi.ChangeNumber = int(value.Int64) - } - case bazelinvocation.FieldPatchsetNumber: - if value, ok := values[i].(*sql.NullInt64); !ok { - return fmt.Errorf("unexpected type %T for field patchset_number", values[i]) - } else if value.Valid { - bi.PatchsetNumber = int(value.Int64) - } case bazelinvocation.FieldBepCompleted: if value, ok := values[i].(*sql.NullBool); !ok { return fmt.Errorf("unexpected type %T for field bep_completed", values[i]) } else if value.Valid { bi.BepCompleted = value.Bool } - case bazelinvocation.FieldStepLabel: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field step_label", values[i]) - } else if value.Valid { - bi.StepLabel = value.String - } - case bazelinvocation.FieldUserEmail: + case bazelinvocation.FieldUsername: if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field user_email", values[i]) + return fmt.Errorf("unexpected type %T for field username", values[i]) } else if value.Valid { - bi.UserEmail = value.String - } - case bazelinvocation.FieldUserLdap: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field user_ldap", values[i]) - } else if value.Valid { - bi.UserLdap = value.String + bi.Username = value.String } case bazelinvocation.FieldHostname: if value, ok := values[i].(*sql.NullString); !ok { @@ -380,12 +356,6 @@ func (bi *BazelInvocation) assignValues(columns []string, values []any) error { } else if value.Valid { bi.Hostname = value.String } - case bazelinvocation.FieldIsCiWorker: - if value, ok := values[i].(*sql.NullBool); !ok { - return fmt.Errorf("unexpected type %T for field is_ci_worker", values[i]) - } else if value.Valid { - bi.IsCiWorker = value.Bool - } case bazelinvocation.FieldNumFetches: if value, ok := values[i].(*sql.NullInt64); !ok { return fmt.Errorf("unexpected type %T for field num_fetches", values[i]) @@ -513,6 +483,11 @@ func (bi *BazelInvocation) QueryAuthenticatedUser() *AuthenticatedUserQuery { return NewBazelInvocationClient(bi.config).QueryAuthenticatedUser(bi) } +// QueryTags queries the "tags" edge of the BazelInvocation entity. +func (bi *BazelInvocation) QueryTags() *InvocationTagQuery { + return NewBazelInvocationClient(bi.config).QueryTags(bi) +} + // QueryEventMetadata queries the "event_metadata" edge of the BazelInvocation entity. func (bi *BazelInvocation) QueryEventMetadata() *EventMetadataQuery { return NewBazelInvocationClient(bi.config).QueryEventMetadata(bi) @@ -605,30 +580,15 @@ func (bi *BazelInvocation) String() string { builder.WriteString(v.Format(time.ANSIC)) } builder.WriteString(", ") - builder.WriteString("change_number=") - builder.WriteString(fmt.Sprintf("%v", bi.ChangeNumber)) - builder.WriteString(", ") - builder.WriteString("patchset_number=") - builder.WriteString(fmt.Sprintf("%v", bi.PatchsetNumber)) - builder.WriteString(", ") builder.WriteString("bep_completed=") builder.WriteString(fmt.Sprintf("%v", bi.BepCompleted)) builder.WriteString(", ") - builder.WriteString("step_label=") - builder.WriteString(bi.StepLabel) - builder.WriteString(", ") - builder.WriteString("user_email=") - builder.WriteString(bi.UserEmail) - builder.WriteString(", ") - builder.WriteString("user_ldap=") - builder.WriteString(bi.UserLdap) + builder.WriteString("username=") + builder.WriteString(bi.Username) builder.WriteString(", ") builder.WriteString("hostname=") builder.WriteString(bi.Hostname) builder.WriteString(", ") - builder.WriteString("is_ci_worker=") - builder.WriteString(fmt.Sprintf("%v", bi.IsCiWorker)) - builder.WriteString(", ") builder.WriteString("num_fetches=") builder.WriteString(fmt.Sprintf("%v", bi.NumFetches)) builder.WriteString(", ") @@ -668,6 +628,30 @@ func (bi *BazelInvocation) String() string { return builder.String() } +// NamedTags returns the Tags named value or an error if the edge was not +// loaded in eager-loading with this name. +func (bi *BazelInvocation) NamedTags(name string) ([]*InvocationTag, error) { + if bi.Edges.namedTags == nil { + return nil, &NotLoadedError{edge: name} + } + nodes, ok := bi.Edges.namedTags[name] + if !ok { + return nil, &NotLoadedError{edge: name} + } + return nodes, nil +} + +func (bi *BazelInvocation) appendNamedTags(name string, edges ...*InvocationTag) { + if bi.Edges.namedTags == nil { + bi.Edges.namedTags = make(map[string][]*InvocationTag) + } + if len(edges) == 0 { + bi.Edges.namedTags[name] = []*InvocationTag{} + } else { + bi.Edges.namedTags[name] = append(bi.Edges.namedTags[name], edges...) + } +} + // NamedConfigurations returns the Configurations named value or an error if the edge was not // loaded in eager-loading with this name. func (bi *BazelInvocation) NamedConfigurations(name string) ([]*Configuration, error) { @@ -836,5 +820,29 @@ func (bi *BazelInvocation) appendNamedTargetKindMappings(name string, edges ...* } } +// NamedSourceControl returns the SourceControl named value or an error if the edge was not +// loaded in eager-loading with this name. +func (bi *BazelInvocation) NamedSourceControl(name string) ([]*SourceControl, error) { + if bi.Edges.namedSourceControl == nil { + return nil, &NotLoadedError{edge: name} + } + nodes, ok := bi.Edges.namedSourceControl[name] + if !ok { + return nil, &NotLoadedError{edge: name} + } + return nodes, nil +} + +func (bi *BazelInvocation) appendNamedSourceControl(name string, edges ...*SourceControl) { + if bi.Edges.namedSourceControl == nil { + bi.Edges.namedSourceControl = make(map[string][]*SourceControl) + } + if len(edges) == 0 { + bi.Edges.namedSourceControl[name] = []*SourceControl{} + } else { + bi.Edges.namedSourceControl[name] = append(bi.Edges.namedSourceControl[name], edges...) + } +} + // BazelInvocations is a parsable slice of BazelInvocation. type BazelInvocations []*BazelInvocation diff --git a/ent/gen/ent/bazelinvocation/bazelinvocation.go b/ent/gen/ent/bazelinvocation/bazelinvocation.go index a2226c99..2ebd1e6b 100644 --- a/ent/gen/ent/bazelinvocation/bazelinvocation.go +++ b/ent/gen/ent/bazelinvocation/bazelinvocation.go @@ -21,22 +21,12 @@ const ( FieldStartedAt = "started_at" // FieldEndedAt holds the string denoting the ended_at field in the database. FieldEndedAt = "ended_at" - // FieldChangeNumber holds the string denoting the change_number field in the database. - FieldChangeNumber = "change_number" - // FieldPatchsetNumber holds the string denoting the patchset_number field in the database. - FieldPatchsetNumber = "patchset_number" // FieldBepCompleted holds the string denoting the bep_completed field in the database. FieldBepCompleted = "bep_completed" - // FieldStepLabel holds the string denoting the step_label field in the database. - FieldStepLabel = "step_label" - // FieldUserEmail holds the string denoting the user_email field in the database. - FieldUserEmail = "user_email" - // FieldUserLdap holds the string denoting the user_ldap field in the database. - FieldUserLdap = "user_ldap" + // FieldUsername holds the string denoting the username field in the database. + FieldUsername = "username" // FieldHostname holds the string denoting the hostname field in the database. FieldHostname = "hostname" - // FieldIsCiWorker holds the string denoting the is_ci_worker field in the database. - FieldIsCiWorker = "is_ci_worker" // FieldNumFetches holds the string denoting the num_fetches field in the database. FieldNumFetches = "num_fetches" // FieldProfileName holds the string denoting the profile_name field in the database. @@ -67,6 +57,8 @@ const ( EdgeBuild = "build" // EdgeAuthenticatedUser holds the string denoting the authenticated_user edge name in mutations. EdgeAuthenticatedUser = "authenticated_user" + // EdgeTags holds the string denoting the tags edge name in mutations. + EdgeTags = "tags" // EdgeEventMetadata holds the string denoting the event_metadata edge name in mutations. EdgeEventMetadata = "event_metadata" // EdgeConnectionMetadata holds the string denoting the connection_metadata edge name in mutations. @@ -112,6 +104,13 @@ const ( AuthenticatedUserInverseTable = "authenticated_users" // AuthenticatedUserColumn is the table column denoting the authenticated_user relation/edge. AuthenticatedUserColumn = "authenticated_user_bazel_invocations" + // TagsTable is the table that holds the tags relation/edge. + TagsTable = "invocation_tags" + // TagsInverseTable is the table name for the InvocationTag entity. + // It exists in this package in order to avoid circular dependency with the "invocationtag" package. + TagsInverseTable = "invocation_tags" + // TagsColumn is the table column denoting the tags relation/edge. + TagsColumn = "bazel_invocation_id" // EventMetadataTable is the table that holds the event_metadata relation/edge. EventMetadataTable = "event_metadata" // EventMetadataInverseTable is the table name for the EventMetadata entity. @@ -198,14 +197,9 @@ var Columns = []string{ FieldCreatedTimestamp, FieldStartedAt, FieldEndedAt, - FieldChangeNumber, - FieldPatchsetNumber, FieldBepCompleted, - FieldStepLabel, - FieldUserEmail, - FieldUserLdap, + FieldUsername, FieldHostname, - FieldIsCiWorker, FieldNumFetches, FieldProfileName, FieldBazelVersion, @@ -291,34 +285,14 @@ func ByEndedAt(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldEndedAt, opts...).ToFunc() } -// ByChangeNumber orders the results by the change_number field. -func ByChangeNumber(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldChangeNumber, opts...).ToFunc() -} - -// ByPatchsetNumber orders the results by the patchset_number field. -func ByPatchsetNumber(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldPatchsetNumber, opts...).ToFunc() -} - // ByBepCompleted orders the results by the bep_completed field. func ByBepCompleted(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldBepCompleted, opts...).ToFunc() } -// ByStepLabel orders the results by the step_label field. -func ByStepLabel(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldStepLabel, opts...).ToFunc() -} - -// ByUserEmail orders the results by the user_email field. -func ByUserEmail(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldUserEmail, opts...).ToFunc() -} - -// ByUserLdap orders the results by the user_ldap field. -func ByUserLdap(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldUserLdap, opts...).ToFunc() +// ByUsername orders the results by the username field. +func ByUsername(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldUsername, opts...).ToFunc() } // ByHostname orders the results by the hostname field. @@ -326,11 +300,6 @@ func ByHostname(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldHostname, opts...).ToFunc() } -// ByIsCiWorker orders the results by the is_ci_worker field. -func ByIsCiWorker(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldIsCiWorker, opts...).ToFunc() -} - // ByNumFetches orders the results by the num_fetches field. func ByNumFetches(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldNumFetches, opts...).ToFunc() @@ -397,6 +366,20 @@ func ByAuthenticatedUserField(field string, opts ...sql.OrderTermOption) OrderOp } } +// ByTagsCount orders the results by tags count. +func ByTagsCount(opts ...sql.OrderTermOption) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborsCount(s, newTagsStep(), opts...) + } +} + +// ByTags orders the results by tags terms. +func ByTags(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborTerms(s, newTagsStep(), append([]sql.OrderTerm{term}, terms...)...) + } +} + // ByEventMetadataField orders the results by event_metadata field. func ByEventMetadataField(field string, opts ...sql.OrderTermOption) OrderOption { return func(s *sql.Selector) { @@ -516,10 +499,17 @@ func ByTargetKindMappings(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOptio } } -// BySourceControlField orders the results by source_control field. -func BySourceControlField(field string, opts ...sql.OrderTermOption) OrderOption { +// BySourceControlCount orders the results by source_control count. +func BySourceControlCount(opts ...sql.OrderTermOption) OrderOption { return func(s *sql.Selector) { - sqlgraph.OrderByNeighborTerms(s, newSourceControlStep(), sql.OrderByField(field, opts...)) + sqlgraph.OrderByNeighborsCount(s, newSourceControlStep(), opts...) + } +} + +// BySourceControl orders the results by source_control terms. +func BySourceControl(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborTerms(s, newSourceControlStep(), append([]sql.OrderTerm{term}, terms...)...) } } func newInstanceNameStep() *sqlgraph.Step { @@ -543,6 +533,13 @@ func newAuthenticatedUserStep() *sqlgraph.Step { sqlgraph.Edge(sqlgraph.M2O, true, AuthenticatedUserTable, AuthenticatedUserColumn), ) } +func newTagsStep() *sqlgraph.Step { + return sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.To(TagsInverseTable, FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, TagsTable, TagsColumn), + ) +} func newEventMetadataStep() *sqlgraph.Step { return sqlgraph.NewStep( sqlgraph.From(Table, FieldID), @@ -617,6 +614,6 @@ func newSourceControlStep() *sqlgraph.Step { return sqlgraph.NewStep( sqlgraph.From(Table, FieldID), sqlgraph.To(SourceControlInverseTable, FieldID), - sqlgraph.Edge(sqlgraph.O2O, false, SourceControlTable, SourceControlColumn), + sqlgraph.Edge(sqlgraph.O2M, false, SourceControlTable, SourceControlColumn), ) } diff --git a/ent/gen/ent/bazelinvocation/where.go b/ent/gen/ent/bazelinvocation/where.go index f4698cc9..a2872a8d 100644 --- a/ent/gen/ent/bazelinvocation/where.go +++ b/ent/gen/ent/bazelinvocation/where.go @@ -76,34 +76,14 @@ func EndedAt(v time.Time) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldEQ(FieldEndedAt, v)) } -// ChangeNumber applies equality check predicate on the "change_number" field. It's identical to ChangeNumberEQ. -func ChangeNumber(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldChangeNumber, v)) -} - -// PatchsetNumber applies equality check predicate on the "patchset_number" field. It's identical to PatchsetNumberEQ. -func PatchsetNumber(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldPatchsetNumber, v)) -} - // BepCompleted applies equality check predicate on the "bep_completed" field. It's identical to BepCompletedEQ. func BepCompleted(v bool) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldEQ(FieldBepCompleted, v)) } -// StepLabel applies equality check predicate on the "step_label" field. It's identical to StepLabelEQ. -func StepLabel(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldStepLabel, v)) -} - -// UserEmail applies equality check predicate on the "user_email" field. It's identical to UserEmailEQ. -func UserEmail(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldUserEmail, v)) -} - -// UserLdap applies equality check predicate on the "user_ldap" field. It's identical to UserLdapEQ. -func UserLdap(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldUserLdap, v)) +// Username applies equality check predicate on the "username" field. It's identical to UsernameEQ. +func Username(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldEQ(FieldUsername, v)) } // Hostname applies equality check predicate on the "hostname" field. It's identical to HostnameEQ. @@ -111,11 +91,6 @@ func Hostname(v string) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldEQ(FieldHostname, v)) } -// IsCiWorker applies equality check predicate on the "is_ci_worker" field. It's identical to IsCiWorkerEQ. -func IsCiWorker(v bool) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldIsCiWorker, v)) -} - // NumFetches applies equality check predicate on the "num_fetches" field. It's identical to NumFetchesEQ. func NumFetches(v int64) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldEQ(FieldNumFetches, v)) @@ -341,106 +316,6 @@ func EndedAtNotNil() predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldNotNull(FieldEndedAt)) } -// ChangeNumberEQ applies the EQ predicate on the "change_number" field. -func ChangeNumberEQ(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldChangeNumber, v)) -} - -// ChangeNumberNEQ applies the NEQ predicate on the "change_number" field. -func ChangeNumberNEQ(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNEQ(FieldChangeNumber, v)) -} - -// ChangeNumberIn applies the In predicate on the "change_number" field. -func ChangeNumberIn(vs ...int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIn(FieldChangeNumber, vs...)) -} - -// ChangeNumberNotIn applies the NotIn predicate on the "change_number" field. -func ChangeNumberNotIn(vs ...int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotIn(FieldChangeNumber, vs...)) -} - -// ChangeNumberGT applies the GT predicate on the "change_number" field. -func ChangeNumberGT(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGT(FieldChangeNumber, v)) -} - -// ChangeNumberGTE applies the GTE predicate on the "change_number" field. -func ChangeNumberGTE(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGTE(FieldChangeNumber, v)) -} - -// ChangeNumberLT applies the LT predicate on the "change_number" field. -func ChangeNumberLT(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLT(FieldChangeNumber, v)) -} - -// ChangeNumberLTE applies the LTE predicate on the "change_number" field. -func ChangeNumberLTE(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLTE(FieldChangeNumber, v)) -} - -// ChangeNumberIsNil applies the IsNil predicate on the "change_number" field. -func ChangeNumberIsNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIsNull(FieldChangeNumber)) -} - -// ChangeNumberNotNil applies the NotNil predicate on the "change_number" field. -func ChangeNumberNotNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotNull(FieldChangeNumber)) -} - -// PatchsetNumberEQ applies the EQ predicate on the "patchset_number" field. -func PatchsetNumberEQ(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldPatchsetNumber, v)) -} - -// PatchsetNumberNEQ applies the NEQ predicate on the "patchset_number" field. -func PatchsetNumberNEQ(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNEQ(FieldPatchsetNumber, v)) -} - -// PatchsetNumberIn applies the In predicate on the "patchset_number" field. -func PatchsetNumberIn(vs ...int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIn(FieldPatchsetNumber, vs...)) -} - -// PatchsetNumberNotIn applies the NotIn predicate on the "patchset_number" field. -func PatchsetNumberNotIn(vs ...int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotIn(FieldPatchsetNumber, vs...)) -} - -// PatchsetNumberGT applies the GT predicate on the "patchset_number" field. -func PatchsetNumberGT(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGT(FieldPatchsetNumber, v)) -} - -// PatchsetNumberGTE applies the GTE predicate on the "patchset_number" field. -func PatchsetNumberGTE(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGTE(FieldPatchsetNumber, v)) -} - -// PatchsetNumberLT applies the LT predicate on the "patchset_number" field. -func PatchsetNumberLT(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLT(FieldPatchsetNumber, v)) -} - -// PatchsetNumberLTE applies the LTE predicate on the "patchset_number" field. -func PatchsetNumberLTE(v int) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLTE(FieldPatchsetNumber, v)) -} - -// PatchsetNumberIsNil applies the IsNil predicate on the "patchset_number" field. -func PatchsetNumberIsNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIsNull(FieldPatchsetNumber)) -} - -// PatchsetNumberNotNil applies the NotNil predicate on the "patchset_number" field. -func PatchsetNumberNotNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotNull(FieldPatchsetNumber)) -} - // BepCompletedEQ applies the EQ predicate on the "bep_completed" field. func BepCompletedEQ(v bool) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldEQ(FieldBepCompleted, v)) @@ -451,229 +326,79 @@ func BepCompletedNEQ(v bool) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldNEQ(FieldBepCompleted, v)) } -// StepLabelEQ applies the EQ predicate on the "step_label" field. -func StepLabelEQ(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldStepLabel, v)) -} - -// StepLabelNEQ applies the NEQ predicate on the "step_label" field. -func StepLabelNEQ(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNEQ(FieldStepLabel, v)) -} - -// StepLabelIn applies the In predicate on the "step_label" field. -func StepLabelIn(vs ...string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIn(FieldStepLabel, vs...)) -} - -// StepLabelNotIn applies the NotIn predicate on the "step_label" field. -func StepLabelNotIn(vs ...string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotIn(FieldStepLabel, vs...)) -} - -// StepLabelGT applies the GT predicate on the "step_label" field. -func StepLabelGT(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGT(FieldStepLabel, v)) -} - -// StepLabelGTE applies the GTE predicate on the "step_label" field. -func StepLabelGTE(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGTE(FieldStepLabel, v)) -} - -// StepLabelLT applies the LT predicate on the "step_label" field. -func StepLabelLT(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLT(FieldStepLabel, v)) -} - -// StepLabelLTE applies the LTE predicate on the "step_label" field. -func StepLabelLTE(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLTE(FieldStepLabel, v)) -} - -// StepLabelContains applies the Contains predicate on the "step_label" field. -func StepLabelContains(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldContains(FieldStepLabel, v)) -} - -// StepLabelHasPrefix applies the HasPrefix predicate on the "step_label" field. -func StepLabelHasPrefix(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldHasPrefix(FieldStepLabel, v)) +// UsernameEQ applies the EQ predicate on the "username" field. +func UsernameEQ(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldEQ(FieldUsername, v)) } -// StepLabelHasSuffix applies the HasSuffix predicate on the "step_label" field. -func StepLabelHasSuffix(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldHasSuffix(FieldStepLabel, v)) +// UsernameNEQ applies the NEQ predicate on the "username" field. +func UsernameNEQ(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldNEQ(FieldUsername, v)) } -// StepLabelIsNil applies the IsNil predicate on the "step_label" field. -func StepLabelIsNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIsNull(FieldStepLabel)) +// UsernameIn applies the In predicate on the "username" field. +func UsernameIn(vs ...string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldIn(FieldUsername, vs...)) } -// StepLabelNotNil applies the NotNil predicate on the "step_label" field. -func StepLabelNotNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotNull(FieldStepLabel)) +// UsernameNotIn applies the NotIn predicate on the "username" field. +func UsernameNotIn(vs ...string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldNotIn(FieldUsername, vs...)) } -// StepLabelEqualFold applies the EqualFold predicate on the "step_label" field. -func StepLabelEqualFold(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEqualFold(FieldStepLabel, v)) +// UsernameGT applies the GT predicate on the "username" field. +func UsernameGT(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldGT(FieldUsername, v)) } -// StepLabelContainsFold applies the ContainsFold predicate on the "step_label" field. -func StepLabelContainsFold(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldContainsFold(FieldStepLabel, v)) +// UsernameGTE applies the GTE predicate on the "username" field. +func UsernameGTE(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldGTE(FieldUsername, v)) } -// UserEmailEQ applies the EQ predicate on the "user_email" field. -func UserEmailEQ(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldUserEmail, v)) +// UsernameLT applies the LT predicate on the "username" field. +func UsernameLT(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldLT(FieldUsername, v)) } -// UserEmailNEQ applies the NEQ predicate on the "user_email" field. -func UserEmailNEQ(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNEQ(FieldUserEmail, v)) +// UsernameLTE applies the LTE predicate on the "username" field. +func UsernameLTE(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldLTE(FieldUsername, v)) } -// UserEmailIn applies the In predicate on the "user_email" field. -func UserEmailIn(vs ...string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIn(FieldUserEmail, vs...)) +// UsernameContains applies the Contains predicate on the "username" field. +func UsernameContains(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldContains(FieldUsername, v)) } -// UserEmailNotIn applies the NotIn predicate on the "user_email" field. -func UserEmailNotIn(vs ...string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotIn(FieldUserEmail, vs...)) +// UsernameHasPrefix applies the HasPrefix predicate on the "username" field. +func UsernameHasPrefix(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldHasPrefix(FieldUsername, v)) } -// UserEmailGT applies the GT predicate on the "user_email" field. -func UserEmailGT(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGT(FieldUserEmail, v)) +// UsernameHasSuffix applies the HasSuffix predicate on the "username" field. +func UsernameHasSuffix(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldHasSuffix(FieldUsername, v)) } -// UserEmailGTE applies the GTE predicate on the "user_email" field. -func UserEmailGTE(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGTE(FieldUserEmail, v)) +// UsernameIsNil applies the IsNil predicate on the "username" field. +func UsernameIsNil() predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldIsNull(FieldUsername)) } -// UserEmailLT applies the LT predicate on the "user_email" field. -func UserEmailLT(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLT(FieldUserEmail, v)) +// UsernameNotNil applies the NotNil predicate on the "username" field. +func UsernameNotNil() predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldNotNull(FieldUsername)) } -// UserEmailLTE applies the LTE predicate on the "user_email" field. -func UserEmailLTE(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLTE(FieldUserEmail, v)) +// UsernameEqualFold applies the EqualFold predicate on the "username" field. +func UsernameEqualFold(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldEqualFold(FieldUsername, v)) } -// UserEmailContains applies the Contains predicate on the "user_email" field. -func UserEmailContains(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldContains(FieldUserEmail, v)) -} - -// UserEmailHasPrefix applies the HasPrefix predicate on the "user_email" field. -func UserEmailHasPrefix(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldHasPrefix(FieldUserEmail, v)) -} - -// UserEmailHasSuffix applies the HasSuffix predicate on the "user_email" field. -func UserEmailHasSuffix(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldHasSuffix(FieldUserEmail, v)) -} - -// UserEmailIsNil applies the IsNil predicate on the "user_email" field. -func UserEmailIsNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIsNull(FieldUserEmail)) -} - -// UserEmailNotNil applies the NotNil predicate on the "user_email" field. -func UserEmailNotNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotNull(FieldUserEmail)) -} - -// UserEmailEqualFold applies the EqualFold predicate on the "user_email" field. -func UserEmailEqualFold(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEqualFold(FieldUserEmail, v)) -} - -// UserEmailContainsFold applies the ContainsFold predicate on the "user_email" field. -func UserEmailContainsFold(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldContainsFold(FieldUserEmail, v)) -} - -// UserLdapEQ applies the EQ predicate on the "user_ldap" field. -func UserLdapEQ(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldUserLdap, v)) -} - -// UserLdapNEQ applies the NEQ predicate on the "user_ldap" field. -func UserLdapNEQ(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNEQ(FieldUserLdap, v)) -} - -// UserLdapIn applies the In predicate on the "user_ldap" field. -func UserLdapIn(vs ...string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIn(FieldUserLdap, vs...)) -} - -// UserLdapNotIn applies the NotIn predicate on the "user_ldap" field. -func UserLdapNotIn(vs ...string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotIn(FieldUserLdap, vs...)) -} - -// UserLdapGT applies the GT predicate on the "user_ldap" field. -func UserLdapGT(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGT(FieldUserLdap, v)) -} - -// UserLdapGTE applies the GTE predicate on the "user_ldap" field. -func UserLdapGTE(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldGTE(FieldUserLdap, v)) -} - -// UserLdapLT applies the LT predicate on the "user_ldap" field. -func UserLdapLT(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLT(FieldUserLdap, v)) -} - -// UserLdapLTE applies the LTE predicate on the "user_ldap" field. -func UserLdapLTE(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldLTE(FieldUserLdap, v)) -} - -// UserLdapContains applies the Contains predicate on the "user_ldap" field. -func UserLdapContains(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldContains(FieldUserLdap, v)) -} - -// UserLdapHasPrefix applies the HasPrefix predicate on the "user_ldap" field. -func UserLdapHasPrefix(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldHasPrefix(FieldUserLdap, v)) -} - -// UserLdapHasSuffix applies the HasSuffix predicate on the "user_ldap" field. -func UserLdapHasSuffix(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldHasSuffix(FieldUserLdap, v)) -} - -// UserLdapIsNil applies the IsNil predicate on the "user_ldap" field. -func UserLdapIsNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIsNull(FieldUserLdap)) -} - -// UserLdapNotNil applies the NotNil predicate on the "user_ldap" field. -func UserLdapNotNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotNull(FieldUserLdap)) -} - -// UserLdapEqualFold applies the EqualFold predicate on the "user_ldap" field. -func UserLdapEqualFold(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEqualFold(FieldUserLdap, v)) -} - -// UserLdapContainsFold applies the ContainsFold predicate on the "user_ldap" field. -func UserLdapContainsFold(v string) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldContainsFold(FieldUserLdap, v)) +// UsernameContainsFold applies the ContainsFold predicate on the "username" field. +func UsernameContainsFold(v string) predicate.BazelInvocation { + return predicate.BazelInvocation(sql.FieldContainsFold(FieldUsername, v)) } // HostnameEQ applies the EQ predicate on the "hostname" field. @@ -751,26 +476,6 @@ func HostnameContainsFold(v string) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldContainsFold(FieldHostname, v)) } -// IsCiWorkerEQ applies the EQ predicate on the "is_ci_worker" field. -func IsCiWorkerEQ(v bool) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldEQ(FieldIsCiWorker, v)) -} - -// IsCiWorkerNEQ applies the NEQ predicate on the "is_ci_worker" field. -func IsCiWorkerNEQ(v bool) predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNEQ(FieldIsCiWorker, v)) -} - -// IsCiWorkerIsNil applies the IsNil predicate on the "is_ci_worker" field. -func IsCiWorkerIsNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldIsNull(FieldIsCiWorker)) -} - -// IsCiWorkerNotNil applies the NotNil predicate on the "is_ci_worker" field. -func IsCiWorkerNotNil() predicate.BazelInvocation { - return predicate.BazelInvocation(sql.FieldNotNull(FieldIsCiWorker)) -} - // NumFetchesEQ applies the EQ predicate on the "num_fetches" field. func NumFetchesEQ(v int64) predicate.BazelInvocation { return predicate.BazelInvocation(sql.FieldEQ(FieldNumFetches, v)) @@ -1235,6 +940,29 @@ func HasAuthenticatedUserWith(preds ...predicate.AuthenticatedUser) predicate.Ba }) } +// HasTags applies the HasEdge predicate on the "tags" edge. +func HasTags() predicate.BazelInvocation { + return predicate.BazelInvocation(func(s *sql.Selector) { + step := sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, TagsTable, TagsColumn), + ) + sqlgraph.HasNeighbors(s, step) + }) +} + +// HasTagsWith applies the HasEdge predicate on the "tags" edge with a given conditions (other predicates). +func HasTagsWith(preds ...predicate.InvocationTag) predicate.BazelInvocation { + return predicate.BazelInvocation(func(s *sql.Selector) { + step := newTagsStep() + sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }) + }) +} + // HasEventMetadata applies the HasEdge predicate on the "event_metadata" edge. func HasEventMetadata() predicate.BazelInvocation { return predicate.BazelInvocation(func(s *sql.Selector) { @@ -1470,7 +1198,7 @@ func HasSourceControl() predicate.BazelInvocation { return predicate.BazelInvocation(func(s *sql.Selector) { step := sqlgraph.NewStep( sqlgraph.From(Table, FieldID), - sqlgraph.Edge(sqlgraph.O2O, false, SourceControlTable, SourceControlColumn), + sqlgraph.Edge(sqlgraph.O2M, false, SourceControlTable, SourceControlColumn), ) sqlgraph.HasNeighbors(s, step) }) diff --git a/ent/gen/ent/bazelinvocation_create.go b/ent/gen/ent/bazelinvocation_create.go index 58f99e40..3fc45ebd 100644 --- a/ent/gen/ent/bazelinvocation_create.go +++ b/ent/gen/ent/bazelinvocation_create.go @@ -22,6 +22,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" "github.com/buildbarn/bb-portal/ent/gen/ent/sourcecontrol" @@ -78,34 +79,6 @@ func (bic *BazelInvocationCreate) SetNillableEndedAt(t *time.Time) *BazelInvocat return bic } -// SetChangeNumber sets the "change_number" field. -func (bic *BazelInvocationCreate) SetChangeNumber(i int) *BazelInvocationCreate { - bic.mutation.SetChangeNumber(i) - return bic -} - -// SetNillableChangeNumber sets the "change_number" field if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillableChangeNumber(i *int) *BazelInvocationCreate { - if i != nil { - bic.SetChangeNumber(*i) - } - return bic -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (bic *BazelInvocationCreate) SetPatchsetNumber(i int) *BazelInvocationCreate { - bic.mutation.SetPatchsetNumber(i) - return bic -} - -// SetNillablePatchsetNumber sets the "patchset_number" field if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillablePatchsetNumber(i *int) *BazelInvocationCreate { - if i != nil { - bic.SetPatchsetNumber(*i) - } - return bic -} - // SetBepCompleted sets the "bep_completed" field. func (bic *BazelInvocationCreate) SetBepCompleted(b bool) *BazelInvocationCreate { bic.mutation.SetBepCompleted(b) @@ -120,44 +93,16 @@ func (bic *BazelInvocationCreate) SetNillableBepCompleted(b *bool) *BazelInvocat return bic } -// SetStepLabel sets the "step_label" field. -func (bic *BazelInvocationCreate) SetStepLabel(s string) *BazelInvocationCreate { - bic.mutation.SetStepLabel(s) +// SetUsername sets the "username" field. +func (bic *BazelInvocationCreate) SetUsername(s string) *BazelInvocationCreate { + bic.mutation.SetUsername(s) return bic } -// SetNillableStepLabel sets the "step_label" field if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillableStepLabel(s *string) *BazelInvocationCreate { +// SetNillableUsername sets the "username" field if the given value is not nil. +func (bic *BazelInvocationCreate) SetNillableUsername(s *string) *BazelInvocationCreate { if s != nil { - bic.SetStepLabel(*s) - } - return bic -} - -// SetUserEmail sets the "user_email" field. -func (bic *BazelInvocationCreate) SetUserEmail(s string) *BazelInvocationCreate { - bic.mutation.SetUserEmail(s) - return bic -} - -// SetNillableUserEmail sets the "user_email" field if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillableUserEmail(s *string) *BazelInvocationCreate { - if s != nil { - bic.SetUserEmail(*s) - } - return bic -} - -// SetUserLdap sets the "user_ldap" field. -func (bic *BazelInvocationCreate) SetUserLdap(s string) *BazelInvocationCreate { - bic.mutation.SetUserLdap(s) - return bic -} - -// SetNillableUserLdap sets the "user_ldap" field if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillableUserLdap(s *string) *BazelInvocationCreate { - if s != nil { - bic.SetUserLdap(*s) + bic.SetUsername(*s) } return bic } @@ -176,20 +121,6 @@ func (bic *BazelInvocationCreate) SetNillableHostname(s *string) *BazelInvocatio return bic } -// SetIsCiWorker sets the "is_ci_worker" field. -func (bic *BazelInvocationCreate) SetIsCiWorker(b bool) *BazelInvocationCreate { - bic.mutation.SetIsCiWorker(b) - return bic -} - -// SetNillableIsCiWorker sets the "is_ci_worker" field if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillableIsCiWorker(b *bool) *BazelInvocationCreate { - if b != nil { - bic.SetIsCiWorker(*b) - } - return bic -} - // SetNumFetches sets the "num_fetches" field. func (bic *BazelInvocationCreate) SetNumFetches(i int64) *BazelInvocationCreate { bic.mutation.SetNumFetches(i) @@ -389,6 +320,21 @@ func (bic *BazelInvocationCreate) SetAuthenticatedUser(a *AuthenticatedUser) *Ba return bic.SetAuthenticatedUserID(a.ID) } +// AddTagIDs adds the "tags" edge to the InvocationTag entity by IDs. +func (bic *BazelInvocationCreate) AddTagIDs(ids ...int64) *BazelInvocationCreate { + bic.mutation.AddTagIDs(ids...) + return bic +} + +// AddTags adds the "tags" edges to the InvocationTag entity. +func (bic *BazelInvocationCreate) AddTags(i ...*InvocationTag) *BazelInvocationCreate { + ids := make([]int64, len(i)) + for j := range i { + ids[j] = i[j].ID + } + return bic.AddTagIDs(ids...) +} + // SetEventMetadataID sets the "event_metadata" edge to the EventMetadata entity by ID. func (bic *BazelInvocationCreate) SetEventMetadataID(id int64) *BazelInvocationCreate { bic.mutation.SetEventMetadataID(id) @@ -551,23 +497,19 @@ func (bic *BazelInvocationCreate) AddTargetKindMappings(t ...*TargetKindMapping) return bic.AddTargetKindMappingIDs(ids...) } -// SetSourceControlID sets the "source_control" edge to the SourceControl entity by ID. -func (bic *BazelInvocationCreate) SetSourceControlID(id int64) *BazelInvocationCreate { - bic.mutation.SetSourceControlID(id) +// AddSourceControlIDs adds the "source_control" edge to the SourceControl entity by IDs. +func (bic *BazelInvocationCreate) AddSourceControlIDs(ids ...int64) *BazelInvocationCreate { + bic.mutation.AddSourceControlIDs(ids...) return bic } -// SetNillableSourceControlID sets the "source_control" edge to the SourceControl entity by ID if the given value is not nil. -func (bic *BazelInvocationCreate) SetNillableSourceControlID(id *int64) *BazelInvocationCreate { - if id != nil { - bic = bic.SetSourceControlID(*id) +// AddSourceControl adds the "source_control" edges to the SourceControl entity. +func (bic *BazelInvocationCreate) AddSourceControl(s ...*SourceControl) *BazelInvocationCreate { + ids := make([]int64, len(s)) + for i := range s { + ids[i] = s[i].ID } - return bic -} - -// SetSourceControl sets the "source_control" edge to the SourceControl entity. -func (bic *BazelInvocationCreate) SetSourceControl(s *SourceControl) *BazelInvocationCreate { - return bic.SetSourceControlID(s.ID) + return bic.AddSourceControlIDs(ids...) } // Mutation returns the BazelInvocationMutation object of the builder. @@ -705,38 +647,18 @@ func (bic *BazelInvocationCreate) createSpec() (*BazelInvocation, *sqlgraph.Crea _spec.SetField(bazelinvocation.FieldEndedAt, field.TypeTime, value) _node.EndedAt = &value } - if value, ok := bic.mutation.ChangeNumber(); ok { - _spec.SetField(bazelinvocation.FieldChangeNumber, field.TypeInt, value) - _node.ChangeNumber = value - } - if value, ok := bic.mutation.PatchsetNumber(); ok { - _spec.SetField(bazelinvocation.FieldPatchsetNumber, field.TypeInt, value) - _node.PatchsetNumber = value - } if value, ok := bic.mutation.BepCompleted(); ok { _spec.SetField(bazelinvocation.FieldBepCompleted, field.TypeBool, value) _node.BepCompleted = value } - if value, ok := bic.mutation.StepLabel(); ok { - _spec.SetField(bazelinvocation.FieldStepLabel, field.TypeString, value) - _node.StepLabel = value - } - if value, ok := bic.mutation.UserEmail(); ok { - _spec.SetField(bazelinvocation.FieldUserEmail, field.TypeString, value) - _node.UserEmail = value - } - if value, ok := bic.mutation.UserLdap(); ok { - _spec.SetField(bazelinvocation.FieldUserLdap, field.TypeString, value) - _node.UserLdap = value + if value, ok := bic.mutation.Username(); ok { + _spec.SetField(bazelinvocation.FieldUsername, field.TypeString, value) + _node.Username = value } if value, ok := bic.mutation.Hostname(); ok { _spec.SetField(bazelinvocation.FieldHostname, field.TypeString, value) _node.Hostname = value } - if value, ok := bic.mutation.IsCiWorker(); ok { - _spec.SetField(bazelinvocation.FieldIsCiWorker, field.TypeBool, value) - _node.IsCiWorker = value - } if value, ok := bic.mutation.NumFetches(); ok { _spec.SetField(bazelinvocation.FieldNumFetches, field.TypeInt64, value) _node.NumFetches = value @@ -836,6 +758,22 @@ func (bic *BazelInvocationCreate) createSpec() (*BazelInvocation, *sqlgraph.Crea _node.authenticated_user_bazel_invocations = &nodes[0] _spec.Edges = append(_spec.Edges, edge) } + if nodes := bic.mutation.TagsIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges = append(_spec.Edges, edge) + } if nodes := bic.mutation.EventMetadataIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2O, @@ -998,7 +936,7 @@ func (bic *BazelInvocationCreate) createSpec() (*BazelInvocation, *sqlgraph.Crea } if nodes := bic.mutation.SourceControlIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.O2M, Inverse: false, Table: bazelinvocation.SourceControlTable, Columns: []string{bazelinvocation.SourceControlColumn}, @@ -1100,54 +1038,6 @@ func (u *BazelInvocationUpsert) ClearEndedAt() *BazelInvocationUpsert { return u } -// SetChangeNumber sets the "change_number" field. -func (u *BazelInvocationUpsert) SetChangeNumber(v int) *BazelInvocationUpsert { - u.Set(bazelinvocation.FieldChangeNumber, v) - return u -} - -// UpdateChangeNumber sets the "change_number" field to the value that was provided on create. -func (u *BazelInvocationUpsert) UpdateChangeNumber() *BazelInvocationUpsert { - u.SetExcluded(bazelinvocation.FieldChangeNumber) - return u -} - -// AddChangeNumber adds v to the "change_number" field. -func (u *BazelInvocationUpsert) AddChangeNumber(v int) *BazelInvocationUpsert { - u.Add(bazelinvocation.FieldChangeNumber, v) - return u -} - -// ClearChangeNumber clears the value of the "change_number" field. -func (u *BazelInvocationUpsert) ClearChangeNumber() *BazelInvocationUpsert { - u.SetNull(bazelinvocation.FieldChangeNumber) - return u -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (u *BazelInvocationUpsert) SetPatchsetNumber(v int) *BazelInvocationUpsert { - u.Set(bazelinvocation.FieldPatchsetNumber, v) - return u -} - -// UpdatePatchsetNumber sets the "patchset_number" field to the value that was provided on create. -func (u *BazelInvocationUpsert) UpdatePatchsetNumber() *BazelInvocationUpsert { - u.SetExcluded(bazelinvocation.FieldPatchsetNumber) - return u -} - -// AddPatchsetNumber adds v to the "patchset_number" field. -func (u *BazelInvocationUpsert) AddPatchsetNumber(v int) *BazelInvocationUpsert { - u.Add(bazelinvocation.FieldPatchsetNumber, v) - return u -} - -// ClearPatchsetNumber clears the value of the "patchset_number" field. -func (u *BazelInvocationUpsert) ClearPatchsetNumber() *BazelInvocationUpsert { - u.SetNull(bazelinvocation.FieldPatchsetNumber) - return u -} - // SetBepCompleted sets the "bep_completed" field. func (u *BazelInvocationUpsert) SetBepCompleted(v bool) *BazelInvocationUpsert { u.Set(bazelinvocation.FieldBepCompleted, v) @@ -1160,57 +1050,21 @@ func (u *BazelInvocationUpsert) UpdateBepCompleted() *BazelInvocationUpsert { return u } -// SetStepLabel sets the "step_label" field. -func (u *BazelInvocationUpsert) SetStepLabel(v string) *BazelInvocationUpsert { - u.Set(bazelinvocation.FieldStepLabel, v) +// SetUsername sets the "username" field. +func (u *BazelInvocationUpsert) SetUsername(v string) *BazelInvocationUpsert { + u.Set(bazelinvocation.FieldUsername, v) return u } -// UpdateStepLabel sets the "step_label" field to the value that was provided on create. -func (u *BazelInvocationUpsert) UpdateStepLabel() *BazelInvocationUpsert { - u.SetExcluded(bazelinvocation.FieldStepLabel) +// UpdateUsername sets the "username" field to the value that was provided on create. +func (u *BazelInvocationUpsert) UpdateUsername() *BazelInvocationUpsert { + u.SetExcluded(bazelinvocation.FieldUsername) return u } -// ClearStepLabel clears the value of the "step_label" field. -func (u *BazelInvocationUpsert) ClearStepLabel() *BazelInvocationUpsert { - u.SetNull(bazelinvocation.FieldStepLabel) - return u -} - -// SetUserEmail sets the "user_email" field. -func (u *BazelInvocationUpsert) SetUserEmail(v string) *BazelInvocationUpsert { - u.Set(bazelinvocation.FieldUserEmail, v) - return u -} - -// UpdateUserEmail sets the "user_email" field to the value that was provided on create. -func (u *BazelInvocationUpsert) UpdateUserEmail() *BazelInvocationUpsert { - u.SetExcluded(bazelinvocation.FieldUserEmail) - return u -} - -// ClearUserEmail clears the value of the "user_email" field. -func (u *BazelInvocationUpsert) ClearUserEmail() *BazelInvocationUpsert { - u.SetNull(bazelinvocation.FieldUserEmail) - return u -} - -// SetUserLdap sets the "user_ldap" field. -func (u *BazelInvocationUpsert) SetUserLdap(v string) *BazelInvocationUpsert { - u.Set(bazelinvocation.FieldUserLdap, v) - return u -} - -// UpdateUserLdap sets the "user_ldap" field to the value that was provided on create. -func (u *BazelInvocationUpsert) UpdateUserLdap() *BazelInvocationUpsert { - u.SetExcluded(bazelinvocation.FieldUserLdap) - return u -} - -// ClearUserLdap clears the value of the "user_ldap" field. -func (u *BazelInvocationUpsert) ClearUserLdap() *BazelInvocationUpsert { - u.SetNull(bazelinvocation.FieldUserLdap) +// ClearUsername clears the value of the "username" field. +func (u *BazelInvocationUpsert) ClearUsername() *BazelInvocationUpsert { + u.SetNull(bazelinvocation.FieldUsername) return u } @@ -1232,24 +1086,6 @@ func (u *BazelInvocationUpsert) ClearHostname() *BazelInvocationUpsert { return u } -// SetIsCiWorker sets the "is_ci_worker" field. -func (u *BazelInvocationUpsert) SetIsCiWorker(v bool) *BazelInvocationUpsert { - u.Set(bazelinvocation.FieldIsCiWorker, v) - return u -} - -// UpdateIsCiWorker sets the "is_ci_worker" field to the value that was provided on create. -func (u *BazelInvocationUpsert) UpdateIsCiWorker() *BazelInvocationUpsert { - u.SetExcluded(bazelinvocation.FieldIsCiWorker) - return u -} - -// ClearIsCiWorker clears the value of the "is_ci_worker" field. -func (u *BazelInvocationUpsert) ClearIsCiWorker() *BazelInvocationUpsert { - u.SetNull(bazelinvocation.FieldIsCiWorker) - return u -} - // SetNumFetches sets the "num_fetches" field. func (u *BazelInvocationUpsert) SetNumFetches(v int64) *BazelInvocationUpsert { u.Set(bazelinvocation.FieldNumFetches, v) @@ -1550,62 +1386,6 @@ func (u *BazelInvocationUpsertOne) ClearEndedAt() *BazelInvocationUpsertOne { }) } -// SetChangeNumber sets the "change_number" field. -func (u *BazelInvocationUpsertOne) SetChangeNumber(v int) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetChangeNumber(v) - }) -} - -// AddChangeNumber adds v to the "change_number" field. -func (u *BazelInvocationUpsertOne) AddChangeNumber(v int) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.AddChangeNumber(v) - }) -} - -// UpdateChangeNumber sets the "change_number" field to the value that was provided on create. -func (u *BazelInvocationUpsertOne) UpdateChangeNumber() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateChangeNumber() - }) -} - -// ClearChangeNumber clears the value of the "change_number" field. -func (u *BazelInvocationUpsertOne) ClearChangeNumber() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearChangeNumber() - }) -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (u *BazelInvocationUpsertOne) SetPatchsetNumber(v int) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetPatchsetNumber(v) - }) -} - -// AddPatchsetNumber adds v to the "patchset_number" field. -func (u *BazelInvocationUpsertOne) AddPatchsetNumber(v int) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.AddPatchsetNumber(v) - }) -} - -// UpdatePatchsetNumber sets the "patchset_number" field to the value that was provided on create. -func (u *BazelInvocationUpsertOne) UpdatePatchsetNumber() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdatePatchsetNumber() - }) -} - -// ClearPatchsetNumber clears the value of the "patchset_number" field. -func (u *BazelInvocationUpsertOne) ClearPatchsetNumber() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearPatchsetNumber() - }) -} - // SetBepCompleted sets the "bep_completed" field. func (u *BazelInvocationUpsertOne) SetBepCompleted(v bool) *BazelInvocationUpsertOne { return u.Update(func(s *BazelInvocationUpsert) { @@ -1620,66 +1400,24 @@ func (u *BazelInvocationUpsertOne) UpdateBepCompleted() *BazelInvocationUpsertOn }) } -// SetStepLabel sets the "step_label" field. -func (u *BazelInvocationUpsertOne) SetStepLabel(v string) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetStepLabel(v) - }) -} - -// UpdateStepLabel sets the "step_label" field to the value that was provided on create. -func (u *BazelInvocationUpsertOne) UpdateStepLabel() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateStepLabel() - }) -} - -// ClearStepLabel clears the value of the "step_label" field. -func (u *BazelInvocationUpsertOne) ClearStepLabel() *BazelInvocationUpsertOne { +// SetUsername sets the "username" field. +func (u *BazelInvocationUpsertOne) SetUsername(v string) *BazelInvocationUpsertOne { return u.Update(func(s *BazelInvocationUpsert) { - s.ClearStepLabel() + s.SetUsername(v) }) } -// SetUserEmail sets the "user_email" field. -func (u *BazelInvocationUpsertOne) SetUserEmail(v string) *BazelInvocationUpsertOne { +// UpdateUsername sets the "username" field to the value that was provided on create. +func (u *BazelInvocationUpsertOne) UpdateUsername() *BazelInvocationUpsertOne { return u.Update(func(s *BazelInvocationUpsert) { - s.SetUserEmail(v) + s.UpdateUsername() }) } -// UpdateUserEmail sets the "user_email" field to the value that was provided on create. -func (u *BazelInvocationUpsertOne) UpdateUserEmail() *BazelInvocationUpsertOne { +// ClearUsername clears the value of the "username" field. +func (u *BazelInvocationUpsertOne) ClearUsername() *BazelInvocationUpsertOne { return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateUserEmail() - }) -} - -// ClearUserEmail clears the value of the "user_email" field. -func (u *BazelInvocationUpsertOne) ClearUserEmail() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearUserEmail() - }) -} - -// SetUserLdap sets the "user_ldap" field. -func (u *BazelInvocationUpsertOne) SetUserLdap(v string) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetUserLdap(v) - }) -} - -// UpdateUserLdap sets the "user_ldap" field to the value that was provided on create. -func (u *BazelInvocationUpsertOne) UpdateUserLdap() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateUserLdap() - }) -} - -// ClearUserLdap clears the value of the "user_ldap" field. -func (u *BazelInvocationUpsertOne) ClearUserLdap() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearUserLdap() + s.ClearUsername() }) } @@ -1704,27 +1442,6 @@ func (u *BazelInvocationUpsertOne) ClearHostname() *BazelInvocationUpsertOne { }) } -// SetIsCiWorker sets the "is_ci_worker" field. -func (u *BazelInvocationUpsertOne) SetIsCiWorker(v bool) *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetIsCiWorker(v) - }) -} - -// UpdateIsCiWorker sets the "is_ci_worker" field to the value that was provided on create. -func (u *BazelInvocationUpsertOne) UpdateIsCiWorker() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateIsCiWorker() - }) -} - -// ClearIsCiWorker clears the value of the "is_ci_worker" field. -func (u *BazelInvocationUpsertOne) ClearIsCiWorker() *BazelInvocationUpsertOne { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearIsCiWorker() - }) -} - // SetNumFetches sets the "num_fetches" field. func (u *BazelInvocationUpsertOne) SetNumFetches(v int64) *BazelInvocationUpsertOne { return u.Update(func(s *BazelInvocationUpsert) { @@ -2225,62 +1942,6 @@ func (u *BazelInvocationUpsertBulk) ClearEndedAt() *BazelInvocationUpsertBulk { }) } -// SetChangeNumber sets the "change_number" field. -func (u *BazelInvocationUpsertBulk) SetChangeNumber(v int) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetChangeNumber(v) - }) -} - -// AddChangeNumber adds v to the "change_number" field. -func (u *BazelInvocationUpsertBulk) AddChangeNumber(v int) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.AddChangeNumber(v) - }) -} - -// UpdateChangeNumber sets the "change_number" field to the value that was provided on create. -func (u *BazelInvocationUpsertBulk) UpdateChangeNumber() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateChangeNumber() - }) -} - -// ClearChangeNumber clears the value of the "change_number" field. -func (u *BazelInvocationUpsertBulk) ClearChangeNumber() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearChangeNumber() - }) -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (u *BazelInvocationUpsertBulk) SetPatchsetNumber(v int) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetPatchsetNumber(v) - }) -} - -// AddPatchsetNumber adds v to the "patchset_number" field. -func (u *BazelInvocationUpsertBulk) AddPatchsetNumber(v int) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.AddPatchsetNumber(v) - }) -} - -// UpdatePatchsetNumber sets the "patchset_number" field to the value that was provided on create. -func (u *BazelInvocationUpsertBulk) UpdatePatchsetNumber() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdatePatchsetNumber() - }) -} - -// ClearPatchsetNumber clears the value of the "patchset_number" field. -func (u *BazelInvocationUpsertBulk) ClearPatchsetNumber() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearPatchsetNumber() - }) -} - // SetBepCompleted sets the "bep_completed" field. func (u *BazelInvocationUpsertBulk) SetBepCompleted(v bool) *BazelInvocationUpsertBulk { return u.Update(func(s *BazelInvocationUpsert) { @@ -2295,66 +1956,24 @@ func (u *BazelInvocationUpsertBulk) UpdateBepCompleted() *BazelInvocationUpsertB }) } -// SetStepLabel sets the "step_label" field. -func (u *BazelInvocationUpsertBulk) SetStepLabel(v string) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetStepLabel(v) - }) -} - -// UpdateStepLabel sets the "step_label" field to the value that was provided on create. -func (u *BazelInvocationUpsertBulk) UpdateStepLabel() *BazelInvocationUpsertBulk { +// SetUsername sets the "username" field. +func (u *BazelInvocationUpsertBulk) SetUsername(v string) *BazelInvocationUpsertBulk { return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateStepLabel() + s.SetUsername(v) }) } -// ClearStepLabel clears the value of the "step_label" field. -func (u *BazelInvocationUpsertBulk) ClearStepLabel() *BazelInvocationUpsertBulk { +// UpdateUsername sets the "username" field to the value that was provided on create. +func (u *BazelInvocationUpsertBulk) UpdateUsername() *BazelInvocationUpsertBulk { return u.Update(func(s *BazelInvocationUpsert) { - s.ClearStepLabel() + s.UpdateUsername() }) } -// SetUserEmail sets the "user_email" field. -func (u *BazelInvocationUpsertBulk) SetUserEmail(v string) *BazelInvocationUpsertBulk { +// ClearUsername clears the value of the "username" field. +func (u *BazelInvocationUpsertBulk) ClearUsername() *BazelInvocationUpsertBulk { return u.Update(func(s *BazelInvocationUpsert) { - s.SetUserEmail(v) - }) -} - -// UpdateUserEmail sets the "user_email" field to the value that was provided on create. -func (u *BazelInvocationUpsertBulk) UpdateUserEmail() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateUserEmail() - }) -} - -// ClearUserEmail clears the value of the "user_email" field. -func (u *BazelInvocationUpsertBulk) ClearUserEmail() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearUserEmail() - }) -} - -// SetUserLdap sets the "user_ldap" field. -func (u *BazelInvocationUpsertBulk) SetUserLdap(v string) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetUserLdap(v) - }) -} - -// UpdateUserLdap sets the "user_ldap" field to the value that was provided on create. -func (u *BazelInvocationUpsertBulk) UpdateUserLdap() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateUserLdap() - }) -} - -// ClearUserLdap clears the value of the "user_ldap" field. -func (u *BazelInvocationUpsertBulk) ClearUserLdap() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearUserLdap() + s.ClearUsername() }) } @@ -2379,27 +1998,6 @@ func (u *BazelInvocationUpsertBulk) ClearHostname() *BazelInvocationUpsertBulk { }) } -// SetIsCiWorker sets the "is_ci_worker" field. -func (u *BazelInvocationUpsertBulk) SetIsCiWorker(v bool) *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.SetIsCiWorker(v) - }) -} - -// UpdateIsCiWorker sets the "is_ci_worker" field to the value that was provided on create. -func (u *BazelInvocationUpsertBulk) UpdateIsCiWorker() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.UpdateIsCiWorker() - }) -} - -// ClearIsCiWorker clears the value of the "is_ci_worker" field. -func (u *BazelInvocationUpsertBulk) ClearIsCiWorker() *BazelInvocationUpsertBulk { - return u.Update(func(s *BazelInvocationUpsert) { - s.ClearIsCiWorker() - }) -} - // SetNumFetches sets the "num_fetches" field. func (u *BazelInvocationUpsertBulk) SetNumFetches(v int64) *BazelInvocationUpsertBulk { return u.Update(func(s *BazelInvocationUpsert) { diff --git a/ent/gen/ent/bazelinvocation_query.go b/ent/gen/ent/bazelinvocation_query.go index 412344f4..9b31c011 100644 --- a/ent/gen/ent/bazelinvocation_query.go +++ b/ent/gen/ent/bazelinvocation_query.go @@ -24,6 +24,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" @@ -41,6 +42,7 @@ type BazelInvocationQuery struct { withInstanceName *InstanceNameQuery withBuild *BuildQuery withAuthenticatedUser *AuthenticatedUserQuery + withTags *InvocationTagQuery withEventMetadata *EventMetadataQuery withConnectionMetadata *ConnectionMetadataQuery withConfigurations *ConfigurationQuery @@ -55,6 +57,7 @@ type BazelInvocationQuery struct { withFKs bool loadTotal []func(context.Context, []*BazelInvocation) error modifiers []func(*sql.Selector) + withNamedTags map[string]*InvocationTagQuery withNamedConfigurations map[string]*ConfigurationQuery withNamedActions map[string]*ActionQuery withNamedIncompleteBuildLogs map[string]*IncompleteBuildLogQuery @@ -62,6 +65,7 @@ type BazelInvocationQuery struct { withNamedInvocationFiles map[string]*InvocationFilesQuery withNamedInvocationTargets map[string]*InvocationTargetQuery withNamedTargetKindMappings map[string]*TargetKindMappingQuery + withNamedSourceControl map[string]*SourceControlQuery // intermediate query (i.e. traversal path). sql *sql.Selector path func(context.Context) (*sql.Selector, error) @@ -164,6 +168,28 @@ func (biq *BazelInvocationQuery) QueryAuthenticatedUser() *AuthenticatedUserQuer return query } +// QueryTags chains the current query on the "tags" edge. +func (biq *BazelInvocationQuery) QueryTags() *InvocationTagQuery { + query := (&InvocationTagClient{config: biq.config}).Query() + query.path = func(ctx context.Context) (fromU *sql.Selector, err error) { + if err := biq.prepareQuery(ctx); err != nil { + return nil, err + } + selector := biq.sqlQuery(ctx) + if err := selector.Err(); err != nil { + return nil, err + } + step := sqlgraph.NewStep( + sqlgraph.From(bazelinvocation.Table, bazelinvocation.FieldID, selector), + sqlgraph.To(invocationtag.Table, invocationtag.FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, bazelinvocation.TagsTable, bazelinvocation.TagsColumn), + ) + fromU = sqlgraph.SetNeighbors(biq.driver.Dialect(), step) + return fromU, nil + } + return query +} + // QueryEventMetadata chains the current query on the "event_metadata" edge. func (biq *BazelInvocationQuery) QueryEventMetadata() *EventMetadataQuery { query := (&EventMetadataClient{config: biq.config}).Query() @@ -398,7 +424,7 @@ func (biq *BazelInvocationQuery) QuerySourceControl() *SourceControlQuery { step := sqlgraph.NewStep( sqlgraph.From(bazelinvocation.Table, bazelinvocation.FieldID, selector), sqlgraph.To(sourcecontrol.Table, sourcecontrol.FieldID), - sqlgraph.Edge(sqlgraph.O2O, false, bazelinvocation.SourceControlTable, bazelinvocation.SourceControlColumn), + sqlgraph.Edge(sqlgraph.O2M, false, bazelinvocation.SourceControlTable, bazelinvocation.SourceControlColumn), ) fromU = sqlgraph.SetNeighbors(biq.driver.Dialect(), step) return fromU, nil @@ -601,6 +627,7 @@ func (biq *BazelInvocationQuery) Clone() *BazelInvocationQuery { withInstanceName: biq.withInstanceName.Clone(), withBuild: biq.withBuild.Clone(), withAuthenticatedUser: biq.withAuthenticatedUser.Clone(), + withTags: biq.withTags.Clone(), withEventMetadata: biq.withEventMetadata.Clone(), withConnectionMetadata: biq.withConnectionMetadata.Clone(), withConfigurations: biq.withConfigurations.Clone(), @@ -652,6 +679,17 @@ func (biq *BazelInvocationQuery) WithAuthenticatedUser(opts ...func(*Authenticat return biq } +// WithTags tells the query-builder to eager-load the nodes that are connected to +// the "tags" edge. The optional arguments are used to configure the query builder of the edge. +func (biq *BazelInvocationQuery) WithTags(opts ...func(*InvocationTagQuery)) *BazelInvocationQuery { + query := (&InvocationTagClient{config: biq.config}).Query() + for _, opt := range opts { + opt(query) + } + biq.withTags = query + return biq +} + // WithEventMetadata tells the query-builder to eager-load the nodes that are connected to // the "event_metadata" edge. The optional arguments are used to configure the query builder of the edge. func (biq *BazelInvocationQuery) WithEventMetadata(opts ...func(*EventMetadataQuery)) *BazelInvocationQuery { @@ -858,10 +896,11 @@ func (biq *BazelInvocationQuery) sqlAll(ctx context.Context, hooks ...queryHook) nodes = []*BazelInvocation{} withFKs = biq.withFKs _spec = biq.querySpec() - loadedTypes = [14]bool{ + loadedTypes = [15]bool{ biq.withInstanceName != nil, biq.withBuild != nil, biq.withAuthenticatedUser != nil, + biq.withTags != nil, biq.withEventMetadata != nil, biq.withConnectionMetadata != nil, biq.withConfigurations != nil, @@ -920,6 +959,13 @@ func (biq *BazelInvocationQuery) sqlAll(ctx context.Context, hooks ...queryHook) return nil, err } } + if query := biq.withTags; query != nil { + if err := biq.loadTags(ctx, query, nodes, + func(n *BazelInvocation) { n.Edges.Tags = []*InvocationTag{} }, + func(n *BazelInvocation, e *InvocationTag) { n.Edges.Tags = append(n.Edges.Tags, e) }); err != nil { + return nil, err + } + } if query := biq.withEventMetadata; query != nil { if err := biq.loadEventMetadata(ctx, query, nodes, nil, func(n *BazelInvocation, e *EventMetadata) { n.Edges.EventMetadata = e }); err != nil { @@ -996,8 +1042,16 @@ func (biq *BazelInvocationQuery) sqlAll(ctx context.Context, hooks ...queryHook) } } if query := biq.withSourceControl; query != nil { - if err := biq.loadSourceControl(ctx, query, nodes, nil, - func(n *BazelInvocation, e *SourceControl) { n.Edges.SourceControl = e }); err != nil { + if err := biq.loadSourceControl(ctx, query, nodes, + func(n *BazelInvocation) { n.Edges.SourceControl = []*SourceControl{} }, + func(n *BazelInvocation, e *SourceControl) { n.Edges.SourceControl = append(n.Edges.SourceControl, e) }); err != nil { + return nil, err + } + } + for name, query := range biq.withNamedTags { + if err := biq.loadTags(ctx, query, nodes, + func(n *BazelInvocation) { n.appendNamedTags(name) }, + func(n *BazelInvocation, e *InvocationTag) { n.appendNamedTags(name, e) }); err != nil { return nil, err } } @@ -1050,6 +1104,13 @@ func (biq *BazelInvocationQuery) sqlAll(ctx context.Context, hooks ...queryHook) return nil, err } } + for name, query := range biq.withNamedSourceControl { + if err := biq.loadSourceControl(ctx, query, nodes, + func(n *BazelInvocation) { n.appendNamedSourceControl(name) }, + func(n *BazelInvocation, e *SourceControl) { n.appendNamedSourceControl(name, e) }); err != nil { + return nil, err + } + } for i := range biq.loadTotal { if err := biq.loadTotal[i](ctx, nodes); err != nil { return nil, err @@ -1154,6 +1215,36 @@ func (biq *BazelInvocationQuery) loadAuthenticatedUser(ctx context.Context, quer } return nil } +func (biq *BazelInvocationQuery) loadTags(ctx context.Context, query *InvocationTagQuery, nodes []*BazelInvocation, init func(*BazelInvocation), assign func(*BazelInvocation, *InvocationTag)) error { + fks := make([]driver.Value, 0, len(nodes)) + nodeids := make(map[int64]*BazelInvocation) + for i := range nodes { + fks = append(fks, nodes[i].ID) + nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) + } + } + if len(query.ctx.Fields) > 0 { + query.ctx.AppendFieldOnce(invocationtag.FieldBazelInvocationID) + } + query.Where(predicate.InvocationTag(func(s *sql.Selector) { + s.Where(sql.InValues(s.C(bazelinvocation.TagsColumn), fks...)) + })) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + fk := n.BazelInvocationID + node, ok := nodeids[fk] + if !ok { + return fmt.Errorf(`unexpected referenced foreign-key "bazel_invocation_id" returned %v for node %v`, fk, n.ID) + } + assign(node, n) + } + return nil +} func (biq *BazelInvocationQuery) loadEventMetadata(ctx context.Context, query *EventMetadataQuery, nodes []*BazelInvocation, init func(*BazelInvocation), assign func(*BazelInvocation, *EventMetadata)) error { fks := make([]driver.Value, 0, len(nodes)) nodeids := make(map[int64]*BazelInvocation) @@ -1456,6 +1547,9 @@ func (biq *BazelInvocationQuery) loadSourceControl(ctx context.Context, query *S for i := range nodes { fks = append(fks, nodes[i].ID) nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) + } } query.withFKs = true query.Where(predicate.SourceControl(func(s *sql.Selector) { @@ -1572,6 +1666,20 @@ func (biq *BazelInvocationQuery) Modify(modifiers ...func(s *sql.Selector)) *Baz return biq.Select() } +// WithNamedTags tells the query-builder to eager-load the nodes that are connected to the "tags" +// edge with the given name. The optional arguments are used to configure the query builder of the edge. +func (biq *BazelInvocationQuery) WithNamedTags(name string, opts ...func(*InvocationTagQuery)) *BazelInvocationQuery { + query := (&InvocationTagClient{config: biq.config}).Query() + for _, opt := range opts { + opt(query) + } + if biq.withNamedTags == nil { + biq.withNamedTags = make(map[string]*InvocationTagQuery) + } + biq.withNamedTags[name] = query + return biq +} + // WithNamedConfigurations tells the query-builder to eager-load the nodes that are connected to the "configurations" // edge with the given name. The optional arguments are used to configure the query builder of the edge. func (biq *BazelInvocationQuery) WithNamedConfigurations(name string, opts ...func(*ConfigurationQuery)) *BazelInvocationQuery { @@ -1670,6 +1778,20 @@ func (biq *BazelInvocationQuery) WithNamedTargetKindMappings(name string, opts . return biq } +// WithNamedSourceControl tells the query-builder to eager-load the nodes that are connected to the "source_control" +// edge with the given name. The optional arguments are used to configure the query builder of the edge. +func (biq *BazelInvocationQuery) WithNamedSourceControl(name string, opts ...func(*SourceControlQuery)) *BazelInvocationQuery { + query := (&SourceControlClient{config: biq.config}).Query() + for _, opt := range opts { + opt(query) + } + if biq.withNamedSourceControl == nil { + biq.withNamedSourceControl = make(map[string]*SourceControlQuery) + } + biq.withNamedSourceControl[name] = query + return biq +} + // BazelInvocationGroupBy is the group-by builder for BazelInvocation entities. type BazelInvocationGroupBy struct { selector diff --git a/ent/gen/ent/bazelinvocation_update.go b/ent/gen/ent/bazelinvocation_update.go index 7b424a79..07f0b72d 100644 --- a/ent/gen/ent/bazelinvocation_update.go +++ b/ent/gen/ent/bazelinvocation_update.go @@ -22,6 +22,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" @@ -84,60 +85,6 @@ func (biu *BazelInvocationUpdate) ClearEndedAt() *BazelInvocationUpdate { return biu } -// SetChangeNumber sets the "change_number" field. -func (biu *BazelInvocationUpdate) SetChangeNumber(i int) *BazelInvocationUpdate { - biu.mutation.ResetChangeNumber() - biu.mutation.SetChangeNumber(i) - return biu -} - -// SetNillableChangeNumber sets the "change_number" field if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillableChangeNumber(i *int) *BazelInvocationUpdate { - if i != nil { - biu.SetChangeNumber(*i) - } - return biu -} - -// AddChangeNumber adds i to the "change_number" field. -func (biu *BazelInvocationUpdate) AddChangeNumber(i int) *BazelInvocationUpdate { - biu.mutation.AddChangeNumber(i) - return biu -} - -// ClearChangeNumber clears the value of the "change_number" field. -func (biu *BazelInvocationUpdate) ClearChangeNumber() *BazelInvocationUpdate { - biu.mutation.ClearChangeNumber() - return biu -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (biu *BazelInvocationUpdate) SetPatchsetNumber(i int) *BazelInvocationUpdate { - biu.mutation.ResetPatchsetNumber() - biu.mutation.SetPatchsetNumber(i) - return biu -} - -// SetNillablePatchsetNumber sets the "patchset_number" field if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillablePatchsetNumber(i *int) *BazelInvocationUpdate { - if i != nil { - biu.SetPatchsetNumber(*i) - } - return biu -} - -// AddPatchsetNumber adds i to the "patchset_number" field. -func (biu *BazelInvocationUpdate) AddPatchsetNumber(i int) *BazelInvocationUpdate { - biu.mutation.AddPatchsetNumber(i) - return biu -} - -// ClearPatchsetNumber clears the value of the "patchset_number" field. -func (biu *BazelInvocationUpdate) ClearPatchsetNumber() *BazelInvocationUpdate { - biu.mutation.ClearPatchsetNumber() - return biu -} - // SetBepCompleted sets the "bep_completed" field. func (biu *BazelInvocationUpdate) SetBepCompleted(b bool) *BazelInvocationUpdate { biu.mutation.SetBepCompleted(b) @@ -152,63 +99,23 @@ func (biu *BazelInvocationUpdate) SetNillableBepCompleted(b *bool) *BazelInvocat return biu } -// SetStepLabel sets the "step_label" field. -func (biu *BazelInvocationUpdate) SetStepLabel(s string) *BazelInvocationUpdate { - biu.mutation.SetStepLabel(s) - return biu -} - -// SetNillableStepLabel sets the "step_label" field if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillableStepLabel(s *string) *BazelInvocationUpdate { - if s != nil { - biu.SetStepLabel(*s) - } - return biu -} - -// ClearStepLabel clears the value of the "step_label" field. -func (biu *BazelInvocationUpdate) ClearStepLabel() *BazelInvocationUpdate { - biu.mutation.ClearStepLabel() - return biu -} - -// SetUserEmail sets the "user_email" field. -func (biu *BazelInvocationUpdate) SetUserEmail(s string) *BazelInvocationUpdate { - biu.mutation.SetUserEmail(s) - return biu -} - -// SetNillableUserEmail sets the "user_email" field if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillableUserEmail(s *string) *BazelInvocationUpdate { - if s != nil { - biu.SetUserEmail(*s) - } - return biu -} - -// ClearUserEmail clears the value of the "user_email" field. -func (biu *BazelInvocationUpdate) ClearUserEmail() *BazelInvocationUpdate { - biu.mutation.ClearUserEmail() - return biu -} - -// SetUserLdap sets the "user_ldap" field. -func (biu *BazelInvocationUpdate) SetUserLdap(s string) *BazelInvocationUpdate { - biu.mutation.SetUserLdap(s) +// SetUsername sets the "username" field. +func (biu *BazelInvocationUpdate) SetUsername(s string) *BazelInvocationUpdate { + biu.mutation.SetUsername(s) return biu } -// SetNillableUserLdap sets the "user_ldap" field if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillableUserLdap(s *string) *BazelInvocationUpdate { +// SetNillableUsername sets the "username" field if the given value is not nil. +func (biu *BazelInvocationUpdate) SetNillableUsername(s *string) *BazelInvocationUpdate { if s != nil { - biu.SetUserLdap(*s) + biu.SetUsername(*s) } return biu } -// ClearUserLdap clears the value of the "user_ldap" field. -func (biu *BazelInvocationUpdate) ClearUserLdap() *BazelInvocationUpdate { - biu.mutation.ClearUserLdap() +// ClearUsername clears the value of the "username" field. +func (biu *BazelInvocationUpdate) ClearUsername() *BazelInvocationUpdate { + biu.mutation.ClearUsername() return biu } @@ -232,26 +139,6 @@ func (biu *BazelInvocationUpdate) ClearHostname() *BazelInvocationUpdate { return biu } -// SetIsCiWorker sets the "is_ci_worker" field. -func (biu *BazelInvocationUpdate) SetIsCiWorker(b bool) *BazelInvocationUpdate { - biu.mutation.SetIsCiWorker(b) - return biu -} - -// SetNillableIsCiWorker sets the "is_ci_worker" field if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillableIsCiWorker(b *bool) *BazelInvocationUpdate { - if b != nil { - biu.SetIsCiWorker(*b) - } - return biu -} - -// ClearIsCiWorker clears the value of the "is_ci_worker" field. -func (biu *BazelInvocationUpdate) ClearIsCiWorker() *BazelInvocationUpdate { - biu.mutation.ClearIsCiWorker() - return biu -} - // SetNumFetches sets the "num_fetches" field. func (biu *BazelInvocationUpdate) SetNumFetches(i int64) *BazelInvocationUpdate { biu.mutation.ResetNumFetches() @@ -507,6 +394,21 @@ func (biu *BazelInvocationUpdate) SetAuthenticatedUser(a *AuthenticatedUser) *Ba return biu.SetAuthenticatedUserID(a.ID) } +// AddTagIDs adds the "tags" edge to the InvocationTag entity by IDs. +func (biu *BazelInvocationUpdate) AddTagIDs(ids ...int64) *BazelInvocationUpdate { + biu.mutation.AddTagIDs(ids...) + return biu +} + +// AddTags adds the "tags" edges to the InvocationTag entity. +func (biu *BazelInvocationUpdate) AddTags(i ...*InvocationTag) *BazelInvocationUpdate { + ids := make([]int64, len(i)) + for j := range i { + ids[j] = i[j].ID + } + return biu.AddTagIDs(ids...) +} + // SetEventMetadataID sets the "event_metadata" edge to the EventMetadata entity by ID. func (biu *BazelInvocationUpdate) SetEventMetadataID(id int64) *BazelInvocationUpdate { biu.mutation.SetEventMetadataID(id) @@ -669,23 +571,19 @@ func (biu *BazelInvocationUpdate) AddTargetKindMappings(t ...*TargetKindMapping) return biu.AddTargetKindMappingIDs(ids...) } -// SetSourceControlID sets the "source_control" edge to the SourceControl entity by ID. -func (biu *BazelInvocationUpdate) SetSourceControlID(id int64) *BazelInvocationUpdate { - biu.mutation.SetSourceControlID(id) +// AddSourceControlIDs adds the "source_control" edge to the SourceControl entity by IDs. +func (biu *BazelInvocationUpdate) AddSourceControlIDs(ids ...int64) *BazelInvocationUpdate { + biu.mutation.AddSourceControlIDs(ids...) return biu } -// SetNillableSourceControlID sets the "source_control" edge to the SourceControl entity by ID if the given value is not nil. -func (biu *BazelInvocationUpdate) SetNillableSourceControlID(id *int64) *BazelInvocationUpdate { - if id != nil { - biu = biu.SetSourceControlID(*id) +// AddSourceControl adds the "source_control" edges to the SourceControl entity. +func (biu *BazelInvocationUpdate) AddSourceControl(s ...*SourceControl) *BazelInvocationUpdate { + ids := make([]int64, len(s)) + for i := range s { + ids[i] = s[i].ID } - return biu -} - -// SetSourceControl sets the "source_control" edge to the SourceControl entity. -func (biu *BazelInvocationUpdate) SetSourceControl(s *SourceControl) *BazelInvocationUpdate { - return biu.SetSourceControlID(s.ID) + return biu.AddSourceControlIDs(ids...) } // Mutation returns the BazelInvocationMutation object of the builder. @@ -711,6 +609,27 @@ func (biu *BazelInvocationUpdate) ClearAuthenticatedUser() *BazelInvocationUpdat return biu } +// ClearTags clears all "tags" edges to the InvocationTag entity. +func (biu *BazelInvocationUpdate) ClearTags() *BazelInvocationUpdate { + biu.mutation.ClearTags() + return biu +} + +// RemoveTagIDs removes the "tags" edge to InvocationTag entities by IDs. +func (biu *BazelInvocationUpdate) RemoveTagIDs(ids ...int64) *BazelInvocationUpdate { + biu.mutation.RemoveTagIDs(ids...) + return biu +} + +// RemoveTags removes "tags" edges to InvocationTag entities. +func (biu *BazelInvocationUpdate) RemoveTags(i ...*InvocationTag) *BazelInvocationUpdate { + ids := make([]int64, len(i)) + for j := range i { + ids[j] = i[j].ID + } + return biu.RemoveTagIDs(ids...) +} + // ClearEventMetadata clears the "event_metadata" edge to the EventMetadata entity. func (biu *BazelInvocationUpdate) ClearEventMetadata() *BazelInvocationUpdate { biu.mutation.ClearEventMetadata() @@ -876,12 +795,27 @@ func (biu *BazelInvocationUpdate) RemoveTargetKindMappings(t ...*TargetKindMappi return biu.RemoveTargetKindMappingIDs(ids...) } -// ClearSourceControl clears the "source_control" edge to the SourceControl entity. +// ClearSourceControl clears all "source_control" edges to the SourceControl entity. func (biu *BazelInvocationUpdate) ClearSourceControl() *BazelInvocationUpdate { biu.mutation.ClearSourceControl() return biu } +// RemoveSourceControlIDs removes the "source_control" edge to SourceControl entities by IDs. +func (biu *BazelInvocationUpdate) RemoveSourceControlIDs(ids ...int64) *BazelInvocationUpdate { + biu.mutation.RemoveSourceControlIDs(ids...) + return biu +} + +// RemoveSourceControl removes "source_control" edges to SourceControl entities. +func (biu *BazelInvocationUpdate) RemoveSourceControl(s ...*SourceControl) *BazelInvocationUpdate { + ids := make([]int64, len(s)) + for i := range s { + ids[i] = s[i].ID + } + return biu.RemoveSourceControlIDs(ids...) +} + // Save executes the query and returns the number of nodes affected by the update operation. func (biu *BazelInvocationUpdate) Save(ctx context.Context) (int, error) { return withHooks(ctx, biu.sqlSave, biu.mutation, biu.hooks) @@ -947,44 +881,14 @@ func (biu *BazelInvocationUpdate) sqlSave(ctx context.Context) (n int, err error if biu.mutation.EndedAtCleared() { _spec.ClearField(bazelinvocation.FieldEndedAt, field.TypeTime) } - if value, ok := biu.mutation.ChangeNumber(); ok { - _spec.SetField(bazelinvocation.FieldChangeNumber, field.TypeInt, value) - } - if value, ok := biu.mutation.AddedChangeNumber(); ok { - _spec.AddField(bazelinvocation.FieldChangeNumber, field.TypeInt, value) - } - if biu.mutation.ChangeNumberCleared() { - _spec.ClearField(bazelinvocation.FieldChangeNumber, field.TypeInt) - } - if value, ok := biu.mutation.PatchsetNumber(); ok { - _spec.SetField(bazelinvocation.FieldPatchsetNumber, field.TypeInt, value) - } - if value, ok := biu.mutation.AddedPatchsetNumber(); ok { - _spec.AddField(bazelinvocation.FieldPatchsetNumber, field.TypeInt, value) - } - if biu.mutation.PatchsetNumberCleared() { - _spec.ClearField(bazelinvocation.FieldPatchsetNumber, field.TypeInt) - } if value, ok := biu.mutation.BepCompleted(); ok { _spec.SetField(bazelinvocation.FieldBepCompleted, field.TypeBool, value) } - if value, ok := biu.mutation.StepLabel(); ok { - _spec.SetField(bazelinvocation.FieldStepLabel, field.TypeString, value) + if value, ok := biu.mutation.Username(); ok { + _spec.SetField(bazelinvocation.FieldUsername, field.TypeString, value) } - if biu.mutation.StepLabelCleared() { - _spec.ClearField(bazelinvocation.FieldStepLabel, field.TypeString) - } - if value, ok := biu.mutation.UserEmail(); ok { - _spec.SetField(bazelinvocation.FieldUserEmail, field.TypeString, value) - } - if biu.mutation.UserEmailCleared() { - _spec.ClearField(bazelinvocation.FieldUserEmail, field.TypeString) - } - if value, ok := biu.mutation.UserLdap(); ok { - _spec.SetField(bazelinvocation.FieldUserLdap, field.TypeString, value) - } - if biu.mutation.UserLdapCleared() { - _spec.ClearField(bazelinvocation.FieldUserLdap, field.TypeString) + if biu.mutation.UsernameCleared() { + _spec.ClearField(bazelinvocation.FieldUsername, field.TypeString) } if value, ok := biu.mutation.Hostname(); ok { _spec.SetField(bazelinvocation.FieldHostname, field.TypeString, value) @@ -992,12 +896,6 @@ func (biu *BazelInvocationUpdate) sqlSave(ctx context.Context) (n int, err error if biu.mutation.HostnameCleared() { _spec.ClearField(bazelinvocation.FieldHostname, field.TypeString) } - if value, ok := biu.mutation.IsCiWorker(); ok { - _spec.SetField(bazelinvocation.FieldIsCiWorker, field.TypeBool, value) - } - if biu.mutation.IsCiWorkerCleared() { - _spec.ClearField(bazelinvocation.FieldIsCiWorker, field.TypeBool) - } if value, ok := biu.mutation.NumFetches(); ok { _spec.SetField(bazelinvocation.FieldNumFetches, field.TypeInt64, value) } @@ -1151,6 +1049,51 @@ func (biu *BazelInvocationUpdate) sqlSave(ctx context.Context) (n int, err error } _spec.Edges.Add = append(_spec.Edges.Add, edge) } + if biu.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := biu.mutation.RemovedTagsIDs(); len(nodes) > 0 && !biu.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := biu.mutation.TagsIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Add = append(_spec.Edges.Add, edge) + } if biu.mutation.EventMetadataCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2O, @@ -1555,7 +1498,7 @@ func (biu *BazelInvocationUpdate) sqlSave(ctx context.Context) (n int, err error } if biu.mutation.SourceControlCleared() { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.O2M, Inverse: false, Table: bazelinvocation.SourceControlTable, Columns: []string{bazelinvocation.SourceControlColumn}, @@ -1566,9 +1509,25 @@ func (biu *BazelInvocationUpdate) sqlSave(ctx context.Context) (n int, err error } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } + if nodes := biu.mutation.RemovedSourceControlIDs(); len(nodes) > 0 && !biu.mutation.SourceControlCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.SourceControlTable, + Columns: []string{bazelinvocation.SourceControlColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(sourcecontrol.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } if nodes := biu.mutation.SourceControlIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.O2M, Inverse: false, Table: bazelinvocation.SourceControlTable, Columns: []string{bazelinvocation.SourceControlColumn}, @@ -1644,60 +1603,6 @@ func (biuo *BazelInvocationUpdateOne) ClearEndedAt() *BazelInvocationUpdateOne { return biuo } -// SetChangeNumber sets the "change_number" field. -func (biuo *BazelInvocationUpdateOne) SetChangeNumber(i int) *BazelInvocationUpdateOne { - biuo.mutation.ResetChangeNumber() - biuo.mutation.SetChangeNumber(i) - return biuo -} - -// SetNillableChangeNumber sets the "change_number" field if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillableChangeNumber(i *int) *BazelInvocationUpdateOne { - if i != nil { - biuo.SetChangeNumber(*i) - } - return biuo -} - -// AddChangeNumber adds i to the "change_number" field. -func (biuo *BazelInvocationUpdateOne) AddChangeNumber(i int) *BazelInvocationUpdateOne { - biuo.mutation.AddChangeNumber(i) - return biuo -} - -// ClearChangeNumber clears the value of the "change_number" field. -func (biuo *BazelInvocationUpdateOne) ClearChangeNumber() *BazelInvocationUpdateOne { - biuo.mutation.ClearChangeNumber() - return biuo -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (biuo *BazelInvocationUpdateOne) SetPatchsetNumber(i int) *BazelInvocationUpdateOne { - biuo.mutation.ResetPatchsetNumber() - biuo.mutation.SetPatchsetNumber(i) - return biuo -} - -// SetNillablePatchsetNumber sets the "patchset_number" field if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillablePatchsetNumber(i *int) *BazelInvocationUpdateOne { - if i != nil { - biuo.SetPatchsetNumber(*i) - } - return biuo -} - -// AddPatchsetNumber adds i to the "patchset_number" field. -func (biuo *BazelInvocationUpdateOne) AddPatchsetNumber(i int) *BazelInvocationUpdateOne { - biuo.mutation.AddPatchsetNumber(i) - return biuo -} - -// ClearPatchsetNumber clears the value of the "patchset_number" field. -func (biuo *BazelInvocationUpdateOne) ClearPatchsetNumber() *BazelInvocationUpdateOne { - biuo.mutation.ClearPatchsetNumber() - return biuo -} - // SetBepCompleted sets the "bep_completed" field. func (biuo *BazelInvocationUpdateOne) SetBepCompleted(b bool) *BazelInvocationUpdateOne { biuo.mutation.SetBepCompleted(b) @@ -1712,63 +1617,23 @@ func (biuo *BazelInvocationUpdateOne) SetNillableBepCompleted(b *bool) *BazelInv return biuo } -// SetStepLabel sets the "step_label" field. -func (biuo *BazelInvocationUpdateOne) SetStepLabel(s string) *BazelInvocationUpdateOne { - biuo.mutation.SetStepLabel(s) - return biuo -} - -// SetNillableStepLabel sets the "step_label" field if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillableStepLabel(s *string) *BazelInvocationUpdateOne { - if s != nil { - biuo.SetStepLabel(*s) - } - return biuo -} - -// ClearStepLabel clears the value of the "step_label" field. -func (biuo *BazelInvocationUpdateOne) ClearStepLabel() *BazelInvocationUpdateOne { - biuo.mutation.ClearStepLabel() - return biuo -} - -// SetUserEmail sets the "user_email" field. -func (biuo *BazelInvocationUpdateOne) SetUserEmail(s string) *BazelInvocationUpdateOne { - biuo.mutation.SetUserEmail(s) - return biuo -} - -// SetNillableUserEmail sets the "user_email" field if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillableUserEmail(s *string) *BazelInvocationUpdateOne { - if s != nil { - biuo.SetUserEmail(*s) - } - return biuo -} - -// ClearUserEmail clears the value of the "user_email" field. -func (biuo *BazelInvocationUpdateOne) ClearUserEmail() *BazelInvocationUpdateOne { - biuo.mutation.ClearUserEmail() - return biuo -} - -// SetUserLdap sets the "user_ldap" field. -func (biuo *BazelInvocationUpdateOne) SetUserLdap(s string) *BazelInvocationUpdateOne { - biuo.mutation.SetUserLdap(s) +// SetUsername sets the "username" field. +func (biuo *BazelInvocationUpdateOne) SetUsername(s string) *BazelInvocationUpdateOne { + biuo.mutation.SetUsername(s) return biuo } -// SetNillableUserLdap sets the "user_ldap" field if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillableUserLdap(s *string) *BazelInvocationUpdateOne { +// SetNillableUsername sets the "username" field if the given value is not nil. +func (biuo *BazelInvocationUpdateOne) SetNillableUsername(s *string) *BazelInvocationUpdateOne { if s != nil { - biuo.SetUserLdap(*s) + biuo.SetUsername(*s) } return biuo } -// ClearUserLdap clears the value of the "user_ldap" field. -func (biuo *BazelInvocationUpdateOne) ClearUserLdap() *BazelInvocationUpdateOne { - biuo.mutation.ClearUserLdap() +// ClearUsername clears the value of the "username" field. +func (biuo *BazelInvocationUpdateOne) ClearUsername() *BazelInvocationUpdateOne { + biuo.mutation.ClearUsername() return biuo } @@ -1792,26 +1657,6 @@ func (biuo *BazelInvocationUpdateOne) ClearHostname() *BazelInvocationUpdateOne return biuo } -// SetIsCiWorker sets the "is_ci_worker" field. -func (biuo *BazelInvocationUpdateOne) SetIsCiWorker(b bool) *BazelInvocationUpdateOne { - biuo.mutation.SetIsCiWorker(b) - return biuo -} - -// SetNillableIsCiWorker sets the "is_ci_worker" field if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillableIsCiWorker(b *bool) *BazelInvocationUpdateOne { - if b != nil { - biuo.SetIsCiWorker(*b) - } - return biuo -} - -// ClearIsCiWorker clears the value of the "is_ci_worker" field. -func (biuo *BazelInvocationUpdateOne) ClearIsCiWorker() *BazelInvocationUpdateOne { - biuo.mutation.ClearIsCiWorker() - return biuo -} - // SetNumFetches sets the "num_fetches" field. func (biuo *BazelInvocationUpdateOne) SetNumFetches(i int64) *BazelInvocationUpdateOne { biuo.mutation.ResetNumFetches() @@ -2067,6 +1912,21 @@ func (biuo *BazelInvocationUpdateOne) SetAuthenticatedUser(a *AuthenticatedUser) return biuo.SetAuthenticatedUserID(a.ID) } +// AddTagIDs adds the "tags" edge to the InvocationTag entity by IDs. +func (biuo *BazelInvocationUpdateOne) AddTagIDs(ids ...int64) *BazelInvocationUpdateOne { + biuo.mutation.AddTagIDs(ids...) + return biuo +} + +// AddTags adds the "tags" edges to the InvocationTag entity. +func (biuo *BazelInvocationUpdateOne) AddTags(i ...*InvocationTag) *BazelInvocationUpdateOne { + ids := make([]int64, len(i)) + for j := range i { + ids[j] = i[j].ID + } + return biuo.AddTagIDs(ids...) +} + // SetEventMetadataID sets the "event_metadata" edge to the EventMetadata entity by ID. func (biuo *BazelInvocationUpdateOne) SetEventMetadataID(id int64) *BazelInvocationUpdateOne { biuo.mutation.SetEventMetadataID(id) @@ -2229,23 +2089,19 @@ func (biuo *BazelInvocationUpdateOne) AddTargetKindMappings(t ...*TargetKindMapp return biuo.AddTargetKindMappingIDs(ids...) } -// SetSourceControlID sets the "source_control" edge to the SourceControl entity by ID. -func (biuo *BazelInvocationUpdateOne) SetSourceControlID(id int64) *BazelInvocationUpdateOne { - biuo.mutation.SetSourceControlID(id) +// AddSourceControlIDs adds the "source_control" edge to the SourceControl entity by IDs. +func (biuo *BazelInvocationUpdateOne) AddSourceControlIDs(ids ...int64) *BazelInvocationUpdateOne { + biuo.mutation.AddSourceControlIDs(ids...) return biuo } -// SetNillableSourceControlID sets the "source_control" edge to the SourceControl entity by ID if the given value is not nil. -func (biuo *BazelInvocationUpdateOne) SetNillableSourceControlID(id *int64) *BazelInvocationUpdateOne { - if id != nil { - biuo = biuo.SetSourceControlID(*id) +// AddSourceControl adds the "source_control" edges to the SourceControl entity. +func (biuo *BazelInvocationUpdateOne) AddSourceControl(s ...*SourceControl) *BazelInvocationUpdateOne { + ids := make([]int64, len(s)) + for i := range s { + ids[i] = s[i].ID } - return biuo -} - -// SetSourceControl sets the "source_control" edge to the SourceControl entity. -func (biuo *BazelInvocationUpdateOne) SetSourceControl(s *SourceControl) *BazelInvocationUpdateOne { - return biuo.SetSourceControlID(s.ID) + return biuo.AddSourceControlIDs(ids...) } // Mutation returns the BazelInvocationMutation object of the builder. @@ -2271,6 +2127,27 @@ func (biuo *BazelInvocationUpdateOne) ClearAuthenticatedUser() *BazelInvocationU return biuo } +// ClearTags clears all "tags" edges to the InvocationTag entity. +func (biuo *BazelInvocationUpdateOne) ClearTags() *BazelInvocationUpdateOne { + biuo.mutation.ClearTags() + return biuo +} + +// RemoveTagIDs removes the "tags" edge to InvocationTag entities by IDs. +func (biuo *BazelInvocationUpdateOne) RemoveTagIDs(ids ...int64) *BazelInvocationUpdateOne { + biuo.mutation.RemoveTagIDs(ids...) + return biuo +} + +// RemoveTags removes "tags" edges to InvocationTag entities. +func (biuo *BazelInvocationUpdateOne) RemoveTags(i ...*InvocationTag) *BazelInvocationUpdateOne { + ids := make([]int64, len(i)) + for j := range i { + ids[j] = i[j].ID + } + return biuo.RemoveTagIDs(ids...) +} + // ClearEventMetadata clears the "event_metadata" edge to the EventMetadata entity. func (biuo *BazelInvocationUpdateOne) ClearEventMetadata() *BazelInvocationUpdateOne { biuo.mutation.ClearEventMetadata() @@ -2436,12 +2313,27 @@ func (biuo *BazelInvocationUpdateOne) RemoveTargetKindMappings(t ...*TargetKindM return biuo.RemoveTargetKindMappingIDs(ids...) } -// ClearSourceControl clears the "source_control" edge to the SourceControl entity. +// ClearSourceControl clears all "source_control" edges to the SourceControl entity. func (biuo *BazelInvocationUpdateOne) ClearSourceControl() *BazelInvocationUpdateOne { biuo.mutation.ClearSourceControl() return biuo } +// RemoveSourceControlIDs removes the "source_control" edge to SourceControl entities by IDs. +func (biuo *BazelInvocationUpdateOne) RemoveSourceControlIDs(ids ...int64) *BazelInvocationUpdateOne { + biuo.mutation.RemoveSourceControlIDs(ids...) + return biuo +} + +// RemoveSourceControl removes "source_control" edges to SourceControl entities. +func (biuo *BazelInvocationUpdateOne) RemoveSourceControl(s ...*SourceControl) *BazelInvocationUpdateOne { + ids := make([]int64, len(s)) + for i := range s { + ids[i] = s[i].ID + } + return biuo.RemoveSourceControlIDs(ids...) +} + // Where appends a list predicates to the BazelInvocationUpdate builder. func (biuo *BazelInvocationUpdateOne) Where(ps ...predicate.BazelInvocation) *BazelInvocationUpdateOne { biuo.mutation.Where(ps...) @@ -2537,44 +2429,14 @@ func (biuo *BazelInvocationUpdateOne) sqlSave(ctx context.Context) (_node *Bazel if biuo.mutation.EndedAtCleared() { _spec.ClearField(bazelinvocation.FieldEndedAt, field.TypeTime) } - if value, ok := biuo.mutation.ChangeNumber(); ok { - _spec.SetField(bazelinvocation.FieldChangeNumber, field.TypeInt, value) - } - if value, ok := biuo.mutation.AddedChangeNumber(); ok { - _spec.AddField(bazelinvocation.FieldChangeNumber, field.TypeInt, value) - } - if biuo.mutation.ChangeNumberCleared() { - _spec.ClearField(bazelinvocation.FieldChangeNumber, field.TypeInt) - } - if value, ok := biuo.mutation.PatchsetNumber(); ok { - _spec.SetField(bazelinvocation.FieldPatchsetNumber, field.TypeInt, value) - } - if value, ok := biuo.mutation.AddedPatchsetNumber(); ok { - _spec.AddField(bazelinvocation.FieldPatchsetNumber, field.TypeInt, value) - } - if biuo.mutation.PatchsetNumberCleared() { - _spec.ClearField(bazelinvocation.FieldPatchsetNumber, field.TypeInt) - } if value, ok := biuo.mutation.BepCompleted(); ok { _spec.SetField(bazelinvocation.FieldBepCompleted, field.TypeBool, value) } - if value, ok := biuo.mutation.StepLabel(); ok { - _spec.SetField(bazelinvocation.FieldStepLabel, field.TypeString, value) + if value, ok := biuo.mutation.Username(); ok { + _spec.SetField(bazelinvocation.FieldUsername, field.TypeString, value) } - if biuo.mutation.StepLabelCleared() { - _spec.ClearField(bazelinvocation.FieldStepLabel, field.TypeString) - } - if value, ok := biuo.mutation.UserEmail(); ok { - _spec.SetField(bazelinvocation.FieldUserEmail, field.TypeString, value) - } - if biuo.mutation.UserEmailCleared() { - _spec.ClearField(bazelinvocation.FieldUserEmail, field.TypeString) - } - if value, ok := biuo.mutation.UserLdap(); ok { - _spec.SetField(bazelinvocation.FieldUserLdap, field.TypeString, value) - } - if biuo.mutation.UserLdapCleared() { - _spec.ClearField(bazelinvocation.FieldUserLdap, field.TypeString) + if biuo.mutation.UsernameCleared() { + _spec.ClearField(bazelinvocation.FieldUsername, field.TypeString) } if value, ok := biuo.mutation.Hostname(); ok { _spec.SetField(bazelinvocation.FieldHostname, field.TypeString, value) @@ -2582,12 +2444,6 @@ func (biuo *BazelInvocationUpdateOne) sqlSave(ctx context.Context) (_node *Bazel if biuo.mutation.HostnameCleared() { _spec.ClearField(bazelinvocation.FieldHostname, field.TypeString) } - if value, ok := biuo.mutation.IsCiWorker(); ok { - _spec.SetField(bazelinvocation.FieldIsCiWorker, field.TypeBool, value) - } - if biuo.mutation.IsCiWorkerCleared() { - _spec.ClearField(bazelinvocation.FieldIsCiWorker, field.TypeBool) - } if value, ok := biuo.mutation.NumFetches(); ok { _spec.SetField(bazelinvocation.FieldNumFetches, field.TypeInt64, value) } @@ -2741,6 +2597,51 @@ func (biuo *BazelInvocationUpdateOne) sqlSave(ctx context.Context) (_node *Bazel } _spec.Edges.Add = append(_spec.Edges.Add, edge) } + if biuo.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := biuo.mutation.RemovedTagsIDs(); len(nodes) > 0 && !biuo.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := biuo.mutation.TagsIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Add = append(_spec.Edges.Add, edge) + } if biuo.mutation.EventMetadataCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2O, @@ -3145,7 +3046,7 @@ func (biuo *BazelInvocationUpdateOne) sqlSave(ctx context.Context) (_node *Bazel } if biuo.mutation.SourceControlCleared() { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.O2M, Inverse: false, Table: bazelinvocation.SourceControlTable, Columns: []string{bazelinvocation.SourceControlColumn}, @@ -3156,9 +3057,25 @@ func (biuo *BazelInvocationUpdateOne) sqlSave(ctx context.Context) (_node *Bazel } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } + if nodes := biuo.mutation.RemovedSourceControlIDs(); len(nodes) > 0 && !biuo.mutation.SourceControlCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.SourceControlTable, + Columns: []string{bazelinvocation.SourceControlColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(sourcecontrol.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } if nodes := biuo.mutation.SourceControlIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.O2M, Inverse: false, Table: bazelinvocation.SourceControlTable, Columns: []string{bazelinvocation.SourceControlColumn}, diff --git a/ent/gen/ent/build.go b/ent/gen/ent/build.go index 0e6ad843..a53cd4e0 100644 --- a/ent/gen/ent/build.go +++ b/ent/gen/ent/build.go @@ -19,8 +19,6 @@ type Build struct { config `json:"-"` // ID of the ent. ID int64 `json:"id,omitempty"` - // BuildURL holds the value of the "build_url" field. - BuildURL string `json:"build_url,omitempty"` // BuildUUID holds the value of the "build_uuid" field. BuildUUID uuid.UUID `json:"build_uuid,omitempty"` // Timestamp holds the value of the "timestamp" field. @@ -38,13 +36,16 @@ type BuildEdges struct { InstanceName *InstanceName `json:"instance_name,omitempty"` // Invocations holds the value of the invocations edge. Invocations []*BazelInvocation `json:"invocations,omitempty"` + // Tags holds the value of the tags edge. + Tags []*BuildTag `json:"tags,omitempty"` // loadedTypes holds the information for reporting if a // type was loaded (or requested) in eager-loading or not. - loadedTypes [2]bool + loadedTypes [3]bool // totalCount holds the count of the edges above. - totalCount [2]map[string]int + totalCount [3]map[string]int namedInvocations map[string][]*BazelInvocation + namedTags map[string][]*BuildTag } // InstanceNameOrErr returns the InstanceName value or an error if the edge @@ -67,6 +68,15 @@ func (e BuildEdges) InvocationsOrErr() ([]*BazelInvocation, error) { return nil, &NotLoadedError{edge: "invocations"} } +// TagsOrErr returns the Tags value or an error if the edge +// was not loaded in eager-loading. +func (e BuildEdges) TagsOrErr() ([]*BuildTag, error) { + if e.loadedTypes[2] { + return e.Tags, nil + } + return nil, &NotLoadedError{edge: "tags"} +} + // scanValues returns the types for scanning values from sql.Rows. func (*Build) scanValues(columns []string) ([]any, error) { values := make([]any, len(columns)) @@ -74,8 +84,6 @@ func (*Build) scanValues(columns []string) ([]any, error) { switch columns[i] { case build.FieldID: values[i] = new(sql.NullInt64) - case build.FieldBuildURL: - values[i] = new(sql.NullString) case build.FieldTimestamp: values[i] = new(sql.NullTime) case build.FieldBuildUUID: @@ -103,12 +111,6 @@ func (b *Build) assignValues(columns []string, values []any) error { return fmt.Errorf("unexpected type %T for field id", value) } b.ID = int64(value.Int64) - case build.FieldBuildURL: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field build_url", values[i]) - } else if value.Valid { - b.BuildURL = value.String - } case build.FieldBuildUUID: if value, ok := values[i].(*uuid.UUID); !ok { return fmt.Errorf("unexpected type %T for field build_uuid", values[i]) @@ -151,6 +153,11 @@ func (b *Build) QueryInvocations() *BazelInvocationQuery { return NewBuildClient(b.config).QueryInvocations(b) } +// QueryTags queries the "tags" edge of the Build entity. +func (b *Build) QueryTags() *BuildTagQuery { + return NewBuildClient(b.config).QueryTags(b) +} + // Update returns a builder for updating this Build. // Note that you need to call Build.Unwrap() before calling this method if this Build // was returned from a transaction, and the transaction was committed or rolled back. @@ -174,9 +181,6 @@ func (b *Build) String() string { var builder strings.Builder builder.WriteString("Build(") builder.WriteString(fmt.Sprintf("id=%v, ", b.ID)) - builder.WriteString("build_url=") - builder.WriteString(b.BuildURL) - builder.WriteString(", ") builder.WriteString("build_uuid=") builder.WriteString(fmt.Sprintf("%v", b.BuildUUID)) builder.WriteString(", ") @@ -210,5 +214,29 @@ func (b *Build) appendNamedInvocations(name string, edges ...*BazelInvocation) { } } +// NamedTags returns the Tags named value or an error if the edge was not +// loaded in eager-loading with this name. +func (b *Build) NamedTags(name string) ([]*BuildTag, error) { + if b.Edges.namedTags == nil { + return nil, &NotLoadedError{edge: name} + } + nodes, ok := b.Edges.namedTags[name] + if !ok { + return nil, &NotLoadedError{edge: name} + } + return nodes, nil +} + +func (b *Build) appendNamedTags(name string, edges ...*BuildTag) { + if b.Edges.namedTags == nil { + b.Edges.namedTags = make(map[string][]*BuildTag) + } + if len(edges) == 0 { + b.Edges.namedTags[name] = []*BuildTag{} + } else { + b.Edges.namedTags[name] = append(b.Edges.namedTags[name], edges...) + } +} + // Builds is a parsable slice of Build. type Builds []*Build diff --git a/ent/gen/ent/build/build.go b/ent/gen/ent/build/build.go index cfed6392..3781ff07 100644 --- a/ent/gen/ent/build/build.go +++ b/ent/gen/ent/build/build.go @@ -13,8 +13,6 @@ const ( Label = "build" // FieldID holds the string denoting the id field in the database. FieldID = "id" - // FieldBuildURL holds the string denoting the build_url field in the database. - FieldBuildURL = "build_url" // FieldBuildUUID holds the string denoting the build_uuid field in the database. FieldBuildUUID = "build_uuid" // FieldTimestamp holds the string denoting the timestamp field in the database. @@ -23,6 +21,8 @@ const ( EdgeInstanceName = "instance_name" // EdgeInvocations holds the string denoting the invocations edge name in mutations. EdgeInvocations = "invocations" + // EdgeTags holds the string denoting the tags edge name in mutations. + EdgeTags = "tags" // Table holds the table name of the build in the database. Table = "builds" // InstanceNameTable is the table that holds the instance_name relation/edge. @@ -39,12 +39,18 @@ const ( InvocationsInverseTable = "bazel_invocations" // InvocationsColumn is the table column denoting the invocations relation/edge. InvocationsColumn = "build_invocations" + // TagsTable is the table that holds the tags relation/edge. + TagsTable = "build_tags" + // TagsInverseTable is the table name for the BuildTag entity. + // It exists in this package in order to avoid circular dependency with the "buildtag" package. + TagsInverseTable = "build_tags" + // TagsColumn is the table column denoting the tags relation/edge. + TagsColumn = "build_id" ) // Columns holds all SQL columns for build fields. var Columns = []string{ FieldID, - FieldBuildURL, FieldBuildUUID, FieldTimestamp, } @@ -88,11 +94,6 @@ func ByID(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldID, opts...).ToFunc() } -// ByBuildURL orders the results by the build_url field. -func ByBuildURL(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldBuildURL, opts...).ToFunc() -} - // ByBuildUUID orders the results by the build_uuid field. func ByBuildUUID(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldBuildUUID, opts...).ToFunc() @@ -123,6 +124,20 @@ func ByInvocations(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption { sqlgraph.OrderByNeighborTerms(s, newInvocationsStep(), append([]sql.OrderTerm{term}, terms...)...) } } + +// ByTagsCount orders the results by tags count. +func ByTagsCount(opts ...sql.OrderTermOption) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborsCount(s, newTagsStep(), opts...) + } +} + +// ByTags orders the results by tags terms. +func ByTags(term sql.OrderTerm, terms ...sql.OrderTerm) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborTerms(s, newTagsStep(), append([]sql.OrderTerm{term}, terms...)...) + } +} func newInstanceNameStep() *sqlgraph.Step { return sqlgraph.NewStep( sqlgraph.From(Table, FieldID), @@ -137,3 +152,10 @@ func newInvocationsStep() *sqlgraph.Step { sqlgraph.Edge(sqlgraph.O2M, false, InvocationsTable, InvocationsColumn), ) } +func newTagsStep() *sqlgraph.Step { + return sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.To(TagsInverseTable, FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, TagsTable, TagsColumn), + ) +} diff --git a/ent/gen/ent/build/where.go b/ent/gen/ent/build/where.go index a2e29674..30073a65 100644 --- a/ent/gen/ent/build/where.go +++ b/ent/gen/ent/build/where.go @@ -56,11 +56,6 @@ func IDLTE(id int64) predicate.Build { return predicate.Build(sql.FieldLTE(FieldID, id)) } -// BuildURL applies equality check predicate on the "build_url" field. It's identical to BuildURLEQ. -func BuildURL(v string) predicate.Build { - return predicate.Build(sql.FieldEQ(FieldBuildURL, v)) -} - // BuildUUID applies equality check predicate on the "build_uuid" field. It's identical to BuildUUIDEQ. func BuildUUID(v uuid.UUID) predicate.Build { return predicate.Build(sql.FieldEQ(FieldBuildUUID, v)) @@ -71,71 +66,6 @@ func Timestamp(v time.Time) predicate.Build { return predicate.Build(sql.FieldEQ(FieldTimestamp, v)) } -// BuildURLEQ applies the EQ predicate on the "build_url" field. -func BuildURLEQ(v string) predicate.Build { - return predicate.Build(sql.FieldEQ(FieldBuildURL, v)) -} - -// BuildURLNEQ applies the NEQ predicate on the "build_url" field. -func BuildURLNEQ(v string) predicate.Build { - return predicate.Build(sql.FieldNEQ(FieldBuildURL, v)) -} - -// BuildURLIn applies the In predicate on the "build_url" field. -func BuildURLIn(vs ...string) predicate.Build { - return predicate.Build(sql.FieldIn(FieldBuildURL, vs...)) -} - -// BuildURLNotIn applies the NotIn predicate on the "build_url" field. -func BuildURLNotIn(vs ...string) predicate.Build { - return predicate.Build(sql.FieldNotIn(FieldBuildURL, vs...)) -} - -// BuildURLGT applies the GT predicate on the "build_url" field. -func BuildURLGT(v string) predicate.Build { - return predicate.Build(sql.FieldGT(FieldBuildURL, v)) -} - -// BuildURLGTE applies the GTE predicate on the "build_url" field. -func BuildURLGTE(v string) predicate.Build { - return predicate.Build(sql.FieldGTE(FieldBuildURL, v)) -} - -// BuildURLLT applies the LT predicate on the "build_url" field. -func BuildURLLT(v string) predicate.Build { - return predicate.Build(sql.FieldLT(FieldBuildURL, v)) -} - -// BuildURLLTE applies the LTE predicate on the "build_url" field. -func BuildURLLTE(v string) predicate.Build { - return predicate.Build(sql.FieldLTE(FieldBuildURL, v)) -} - -// BuildURLContains applies the Contains predicate on the "build_url" field. -func BuildURLContains(v string) predicate.Build { - return predicate.Build(sql.FieldContains(FieldBuildURL, v)) -} - -// BuildURLHasPrefix applies the HasPrefix predicate on the "build_url" field. -func BuildURLHasPrefix(v string) predicate.Build { - return predicate.Build(sql.FieldHasPrefix(FieldBuildURL, v)) -} - -// BuildURLHasSuffix applies the HasSuffix predicate on the "build_url" field. -func BuildURLHasSuffix(v string) predicate.Build { - return predicate.Build(sql.FieldHasSuffix(FieldBuildURL, v)) -} - -// BuildURLEqualFold applies the EqualFold predicate on the "build_url" field. -func BuildURLEqualFold(v string) predicate.Build { - return predicate.Build(sql.FieldEqualFold(FieldBuildURL, v)) -} - -// BuildURLContainsFold applies the ContainsFold predicate on the "build_url" field. -func BuildURLContainsFold(v string) predicate.Build { - return predicate.Build(sql.FieldContainsFold(FieldBuildURL, v)) -} - // BuildUUIDEQ applies the EQ predicate on the "build_uuid" field. func BuildUUIDEQ(v uuid.UUID) predicate.Build { return predicate.Build(sql.FieldEQ(FieldBuildUUID, v)) @@ -262,6 +192,29 @@ func HasInvocationsWith(preds ...predicate.BazelInvocation) predicate.Build { }) } +// HasTags applies the HasEdge predicate on the "tags" edge. +func HasTags() predicate.Build { + return predicate.Build(func(s *sql.Selector) { + step := sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, TagsTable, TagsColumn), + ) + sqlgraph.HasNeighbors(s, step) + }) +} + +// HasTagsWith applies the HasEdge predicate on the "tags" edge with a given conditions (other predicates). +func HasTagsWith(preds ...predicate.BuildTag) predicate.Build { + return predicate.Build(func(s *sql.Selector) { + step := newTagsStep() + sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }) + }) +} + // And groups predicates with the AND operator between them. func And(predicates ...predicate.Build) predicate.Build { return predicate.Build(sql.AndPredicates(predicates...)) diff --git a/ent/gen/ent/build_create.go b/ent/gen/ent/build_create.go index 7569eafa..301d72b2 100644 --- a/ent/gen/ent/build_create.go +++ b/ent/gen/ent/build_create.go @@ -13,6 +13,7 @@ import ( "entgo.io/ent/schema/field" "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/google/uuid" ) @@ -25,12 +26,6 @@ type BuildCreate struct { conflict []sql.ConflictOption } -// SetBuildURL sets the "build_url" field. -func (bc *BuildCreate) SetBuildURL(s string) *BuildCreate { - bc.mutation.SetBuildURL(s) - return bc -} - // SetBuildUUID sets the "build_uuid" field. func (bc *BuildCreate) SetBuildUUID(u uuid.UUID) *BuildCreate { bc.mutation.SetBuildUUID(u) @@ -75,6 +70,21 @@ func (bc *BuildCreate) AddInvocations(b ...*BazelInvocation) *BuildCreate { return bc.AddInvocationIDs(ids...) } +// AddTagIDs adds the "tags" edge to the BuildTag entity by IDs. +func (bc *BuildCreate) AddTagIDs(ids ...int64) *BuildCreate { + bc.mutation.AddTagIDs(ids...) + return bc +} + +// AddTags adds the "tags" edges to the BuildTag entity. +func (bc *BuildCreate) AddTags(b ...*BuildTag) *BuildCreate { + ids := make([]int64, len(b)) + for i := range b { + ids[i] = b[i].ID + } + return bc.AddTagIDs(ids...) +} + // Mutation returns the BuildMutation object of the builder. func (bc *BuildCreate) Mutation() *BuildMutation { return bc.mutation @@ -109,9 +119,6 @@ func (bc *BuildCreate) ExecX(ctx context.Context) { // check runs all checks and user-defined validators on the builder. func (bc *BuildCreate) check() error { - if _, ok := bc.mutation.BuildURL(); !ok { - return &ValidationError{Name: "build_url", err: errors.New(`ent: missing required field "Build.build_url"`)} - } if _, ok := bc.mutation.BuildUUID(); !ok { return &ValidationError{Name: "build_uuid", err: errors.New(`ent: missing required field "Build.build_uuid"`)} } @@ -154,10 +161,6 @@ func (bc *BuildCreate) createSpec() (*Build, *sqlgraph.CreateSpec) { _node.ID = id _spec.ID.Value = id } - if value, ok := bc.mutation.BuildURL(); ok { - _spec.SetField(build.FieldBuildURL, field.TypeString, value) - _node.BuildURL = value - } if value, ok := bc.mutation.BuildUUID(); ok { _spec.SetField(build.FieldBuildUUID, field.TypeUUID, value) _node.BuildUUID = value @@ -199,6 +202,22 @@ func (bc *BuildCreate) createSpec() (*Build, *sqlgraph.CreateSpec) { } _spec.Edges = append(_spec.Edges, edge) } + if nodes := bc.mutation.TagsIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges = append(_spec.Edges, edge) + } return _node, _spec } @@ -206,7 +225,7 @@ func (bc *BuildCreate) createSpec() (*Build, *sqlgraph.CreateSpec) { // of the `INSERT` statement. For example: // // client.Build.Create(). -// SetBuildURL(v). +// SetBuildUUID(v). // OnConflict( // // Update the row with the new values // // the was proposed for insertion. @@ -215,7 +234,7 @@ func (bc *BuildCreate) createSpec() (*Build, *sqlgraph.CreateSpec) { // // Override some of the fields with custom // // update values. // Update(func(u *ent.BuildUpsert) { -// SetBuildURL(v+v). +// SetBuildUUID(v+v). // }). // Exec(ctx) func (bc *BuildCreate) OnConflict(opts ...sql.ConflictOption) *BuildUpsertOne { @@ -280,9 +299,6 @@ func (u *BuildUpsertOne) UpdateNewValues() *BuildUpsertOne { if _, exists := u.create.mutation.ID(); exists { s.SetIgnore(build.FieldID) } - if _, exists := u.create.mutation.BuildURL(); exists { - s.SetIgnore(build.FieldBuildURL) - } if _, exists := u.create.mutation.BuildUUID(); exists { s.SetIgnore(build.FieldBuildUUID) } @@ -465,7 +481,7 @@ func (bcb *BuildCreateBulk) ExecX(ctx context.Context) { // // Override some of the fields with custom // // update values. // Update(func(u *ent.BuildUpsert) { -// SetBuildURL(v+v). +// SetBuildUUID(v+v). // }). // Exec(ctx) func (bcb *BuildCreateBulk) OnConflict(opts ...sql.ConflictOption) *BuildUpsertBulk { @@ -512,9 +528,6 @@ func (u *BuildUpsertBulk) UpdateNewValues() *BuildUpsertBulk { if _, exists := b.mutation.ID(); exists { s.SetIgnore(build.FieldID) } - if _, exists := b.mutation.BuildURL(); exists { - s.SetIgnore(build.FieldBuildURL) - } if _, exists := b.mutation.BuildUUID(); exists { s.SetIgnore(build.FieldBuildUUID) } diff --git a/ent/gen/ent/build_query.go b/ent/gen/ent/build_query.go index 1a3a5575..01417c3d 100644 --- a/ent/gen/ent/build_query.go +++ b/ent/gen/ent/build_query.go @@ -15,6 +15,7 @@ import ( "entgo.io/ent/schema/field" "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" ) @@ -28,10 +29,12 @@ type BuildQuery struct { predicates []predicate.Build withInstanceName *InstanceNameQuery withInvocations *BazelInvocationQuery + withTags *BuildTagQuery withFKs bool loadTotal []func(context.Context, []*Build) error modifiers []func(*sql.Selector) withNamedInvocations map[string]*BazelInvocationQuery + withNamedTags map[string]*BuildTagQuery // intermediate query (i.e. traversal path). sql *sql.Selector path func(context.Context) (*sql.Selector, error) @@ -112,6 +115,28 @@ func (bq *BuildQuery) QueryInvocations() *BazelInvocationQuery { return query } +// QueryTags chains the current query on the "tags" edge. +func (bq *BuildQuery) QueryTags() *BuildTagQuery { + query := (&BuildTagClient{config: bq.config}).Query() + query.path = func(ctx context.Context) (fromU *sql.Selector, err error) { + if err := bq.prepareQuery(ctx); err != nil { + return nil, err + } + selector := bq.sqlQuery(ctx) + if err := selector.Err(); err != nil { + return nil, err + } + step := sqlgraph.NewStep( + sqlgraph.From(build.Table, build.FieldID, selector), + sqlgraph.To(buildtag.Table, buildtag.FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, build.TagsTable, build.TagsColumn), + ) + fromU = sqlgraph.SetNeighbors(bq.driver.Dialect(), step) + return fromU, nil + } + return query +} + // First returns the first Build entity from the query. // Returns a *NotFoundError when no Build was found. func (bq *BuildQuery) First(ctx context.Context) (*Build, error) { @@ -306,6 +331,7 @@ func (bq *BuildQuery) Clone() *BuildQuery { predicates: append([]predicate.Build{}, bq.predicates...), withInstanceName: bq.withInstanceName.Clone(), withInvocations: bq.withInvocations.Clone(), + withTags: bq.withTags.Clone(), // clone intermediate query. sql: bq.sql.Clone(), path: bq.path, @@ -335,18 +361,29 @@ func (bq *BuildQuery) WithInvocations(opts ...func(*BazelInvocationQuery)) *Buil return bq } +// WithTags tells the query-builder to eager-load the nodes that are connected to +// the "tags" edge. The optional arguments are used to configure the query builder of the edge. +func (bq *BuildQuery) WithTags(opts ...func(*BuildTagQuery)) *BuildQuery { + query := (&BuildTagClient{config: bq.config}).Query() + for _, opt := range opts { + opt(query) + } + bq.withTags = query + return bq +} + // GroupBy is used to group vertices by one or more fields/columns. // It is often used with aggregate functions, like: count, max, mean, min, sum. // // Example: // // var v []struct { -// BuildURL string `json:"build_url,omitempty"` +// BuildUUID uuid.UUID `json:"build_uuid,omitempty"` // Count int `json:"count,omitempty"` // } // // client.Build.Query(). -// GroupBy(build.FieldBuildURL). +// GroupBy(build.FieldBuildUUID). // Aggregate(ent.Count()). // Scan(ctx, &v) func (bq *BuildQuery) GroupBy(field string, fields ...string) *BuildGroupBy { @@ -364,11 +401,11 @@ func (bq *BuildQuery) GroupBy(field string, fields ...string) *BuildGroupBy { // Example: // // var v []struct { -// BuildURL string `json:"build_url,omitempty"` +// BuildUUID uuid.UUID `json:"build_uuid,omitempty"` // } // // client.Build.Query(). -// Select(build.FieldBuildURL). +// Select(build.FieldBuildUUID). // Scan(ctx, &v) func (bq *BuildQuery) Select(fields ...string) *BuildSelect { bq.ctx.Fields = append(bq.ctx.Fields, fields...) @@ -420,9 +457,10 @@ func (bq *BuildQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Build, nodes = []*Build{} withFKs = bq.withFKs _spec = bq.querySpec() - loadedTypes = [2]bool{ + loadedTypes = [3]bool{ bq.withInstanceName != nil, bq.withInvocations != nil, + bq.withTags != nil, } ) if bq.withInstanceName != nil { @@ -465,6 +503,13 @@ func (bq *BuildQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Build, return nil, err } } + if query := bq.withTags; query != nil { + if err := bq.loadTags(ctx, query, nodes, + func(n *Build) { n.Edges.Tags = []*BuildTag{} }, + func(n *Build, e *BuildTag) { n.Edges.Tags = append(n.Edges.Tags, e) }); err != nil { + return nil, err + } + } for name, query := range bq.withNamedInvocations { if err := bq.loadInvocations(ctx, query, nodes, func(n *Build) { n.appendNamedInvocations(name) }, @@ -472,6 +517,13 @@ func (bq *BuildQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Build, return nil, err } } + for name, query := range bq.withNamedTags { + if err := bq.loadTags(ctx, query, nodes, + func(n *Build) { n.appendNamedTags(name) }, + func(n *Build, e *BuildTag) { n.appendNamedTags(name, e) }); err != nil { + return nil, err + } + } for i := range bq.loadTotal { if err := bq.loadTotal[i](ctx, nodes); err != nil { return nil, err @@ -543,6 +595,36 @@ func (bq *BuildQuery) loadInvocations(ctx context.Context, query *BazelInvocatio } return nil } +func (bq *BuildQuery) loadTags(ctx context.Context, query *BuildTagQuery, nodes []*Build, init func(*Build), assign func(*Build, *BuildTag)) error { + fks := make([]driver.Value, 0, len(nodes)) + nodeids := make(map[int64]*Build) + for i := range nodes { + fks = append(fks, nodes[i].ID) + nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) + } + } + if len(query.ctx.Fields) > 0 { + query.ctx.AppendFieldOnce(buildtag.FieldBuildID) + } + query.Where(predicate.BuildTag(func(s *sql.Selector) { + s.Where(sql.InValues(s.C(build.TagsColumn), fks...)) + })) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + fk := n.BuildID + node, ok := nodeids[fk] + if !ok { + return fmt.Errorf(`unexpected referenced foreign-key "build_id" returned %v for node %v`, fk, n.ID) + } + assign(node, n) + } + return nil +} func (bq *BuildQuery) sqlCount(ctx context.Context) (int, error) { _spec := bq.querySpec() @@ -651,6 +733,20 @@ func (bq *BuildQuery) WithNamedInvocations(name string, opts ...func(*BazelInvoc return bq } +// WithNamedTags tells the query-builder to eager-load the nodes that are connected to the "tags" +// edge with the given name. The optional arguments are used to configure the query builder of the edge. +func (bq *BuildQuery) WithNamedTags(name string, opts ...func(*BuildTagQuery)) *BuildQuery { + query := (&BuildTagClient{config: bq.config}).Query() + for _, opt := range opts { + opt(query) + } + if bq.withNamedTags == nil { + bq.withNamedTags = make(map[string]*BuildTagQuery) + } + bq.withNamedTags[name] = query + return bq +} + // BuildGroupBy is the group-by builder for Build entities. type BuildGroupBy struct { selector diff --git a/ent/gen/ent/build_update.go b/ent/gen/ent/build_update.go index 75d98ff4..70923d02 100644 --- a/ent/gen/ent/build_update.go +++ b/ent/gen/ent/build_update.go @@ -13,6 +13,7 @@ import ( "entgo.io/ent/schema/field" "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" ) @@ -71,6 +72,21 @@ func (bu *BuildUpdate) AddInvocations(b ...*BazelInvocation) *BuildUpdate { return bu.AddInvocationIDs(ids...) } +// AddTagIDs adds the "tags" edge to the BuildTag entity by IDs. +func (bu *BuildUpdate) AddTagIDs(ids ...int64) *BuildUpdate { + bu.mutation.AddTagIDs(ids...) + return bu +} + +// AddTags adds the "tags" edges to the BuildTag entity. +func (bu *BuildUpdate) AddTags(b ...*BuildTag) *BuildUpdate { + ids := make([]int64, len(b)) + for i := range b { + ids[i] = b[i].ID + } + return bu.AddTagIDs(ids...) +} + // Mutation returns the BuildMutation object of the builder. func (bu *BuildUpdate) Mutation() *BuildMutation { return bu.mutation @@ -103,6 +119,27 @@ func (bu *BuildUpdate) RemoveInvocations(b ...*BazelInvocation) *BuildUpdate { return bu.RemoveInvocationIDs(ids...) } +// ClearTags clears all "tags" edges to the BuildTag entity. +func (bu *BuildUpdate) ClearTags() *BuildUpdate { + bu.mutation.ClearTags() + return bu +} + +// RemoveTagIDs removes the "tags" edge to BuildTag entities by IDs. +func (bu *BuildUpdate) RemoveTagIDs(ids ...int64) *BuildUpdate { + bu.mutation.RemoveTagIDs(ids...) + return bu +} + +// RemoveTags removes "tags" edges to BuildTag entities. +func (bu *BuildUpdate) RemoveTags(b ...*BuildTag) *BuildUpdate { + ids := make([]int64, len(b)) + for i := range b { + ids[i] = b[i].ID + } + return bu.RemoveTagIDs(ids...) +} + // Save executes the query and returns the number of nodes affected by the update operation. func (bu *BuildUpdate) Save(ctx context.Context) (int, error) { return withHooks(ctx, bu.sqlSave, bu.mutation, bu.hooks) @@ -233,6 +270,51 @@ func (bu *BuildUpdate) sqlSave(ctx context.Context) (n int, err error) { } _spec.Edges.Add = append(_spec.Edges.Add, edge) } + if bu.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := bu.mutation.RemovedTagsIDs(); len(nodes) > 0 && !bu.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := bu.mutation.TagsIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Add = append(_spec.Edges.Add, edge) + } _spec.AddModifiers(bu.modifiers...) if n, err = sqlgraph.UpdateNodes(ctx, bu.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { @@ -295,6 +377,21 @@ func (buo *BuildUpdateOne) AddInvocations(b ...*BazelInvocation) *BuildUpdateOne return buo.AddInvocationIDs(ids...) } +// AddTagIDs adds the "tags" edge to the BuildTag entity by IDs. +func (buo *BuildUpdateOne) AddTagIDs(ids ...int64) *BuildUpdateOne { + buo.mutation.AddTagIDs(ids...) + return buo +} + +// AddTags adds the "tags" edges to the BuildTag entity. +func (buo *BuildUpdateOne) AddTags(b ...*BuildTag) *BuildUpdateOne { + ids := make([]int64, len(b)) + for i := range b { + ids[i] = b[i].ID + } + return buo.AddTagIDs(ids...) +} + // Mutation returns the BuildMutation object of the builder. func (buo *BuildUpdateOne) Mutation() *BuildMutation { return buo.mutation @@ -327,6 +424,27 @@ func (buo *BuildUpdateOne) RemoveInvocations(b ...*BazelInvocation) *BuildUpdate return buo.RemoveInvocationIDs(ids...) } +// ClearTags clears all "tags" edges to the BuildTag entity. +func (buo *BuildUpdateOne) ClearTags() *BuildUpdateOne { + buo.mutation.ClearTags() + return buo +} + +// RemoveTagIDs removes the "tags" edge to BuildTag entities by IDs. +func (buo *BuildUpdateOne) RemoveTagIDs(ids ...int64) *BuildUpdateOne { + buo.mutation.RemoveTagIDs(ids...) + return buo +} + +// RemoveTags removes "tags" edges to BuildTag entities. +func (buo *BuildUpdateOne) RemoveTags(b ...*BuildTag) *BuildUpdateOne { + ids := make([]int64, len(b)) + for i := range b { + ids[i] = b[i].ID + } + return buo.RemoveTagIDs(ids...) +} + // Where appends a list predicates to the BuildUpdate builder. func (buo *BuildUpdateOne) Where(ps ...predicate.Build) *BuildUpdateOne { buo.mutation.Where(ps...) @@ -487,6 +605,51 @@ func (buo *BuildUpdateOne) sqlSave(ctx context.Context) (_node *Build, err error } _spec.Edges.Add = append(_spec.Edges.Add, edge) } + if buo.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := buo.mutation.RemovedTagsIDs(); len(nodes) > 0 && !buo.mutation.TagsCleared() { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Clear = append(_spec.Edges.Clear, edge) + } + if nodes := buo.mutation.TagsIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _spec.Edges.Add = append(_spec.Edges.Add, edge) + } _spec.AddModifiers(buo.modifiers...) _node = &Build{config: buo.config} _spec.Assign = _node.assignValues diff --git a/ent/gen/ent/buildtag.go b/ent/gen/ent/buildtag.go new file mode 100644 index 00000000..5c9121ec --- /dev/null +++ b/ent/gen/ent/buildtag.go @@ -0,0 +1,156 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "fmt" + "strings" + + "entgo.io/ent" + "entgo.io/ent/dialect/sql" + "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" +) + +// BuildTag is the model entity for the BuildTag schema. +type BuildTag struct { + config `json:"-"` + // ID of the ent. + ID int64 `json:"id,omitempty"` + // BuildID holds the value of the "build_id" field. + BuildID int64 `json:"build_id,omitempty"` + // Key holds the value of the "key" field. + Key string `json:"key,omitempty"` + // Value holds the value of the "value" field. + Value string `json:"value,omitempty"` + // Edges holds the relations/edges for other nodes in the graph. + // The values are being populated by the BuildTagQuery when eager-loading is set. + Edges BuildTagEdges `json:"edges"` + selectValues sql.SelectValues +} + +// BuildTagEdges holds the relations/edges for other nodes in the graph. +type BuildTagEdges struct { + // Build holds the value of the build edge. + Build *Build `json:"build,omitempty"` + // loadedTypes holds the information for reporting if a + // type was loaded (or requested) in eager-loading or not. + loadedTypes [1]bool + // totalCount holds the count of the edges above. + totalCount [1]map[string]int +} + +// BuildOrErr returns the Build value or an error if the edge +// was not loaded in eager-loading, or loaded but was not found. +func (e BuildTagEdges) BuildOrErr() (*Build, error) { + if e.Build != nil { + return e.Build, nil + } else if e.loadedTypes[0] { + return nil, &NotFoundError{label: build.Label} + } + return nil, &NotLoadedError{edge: "build"} +} + +// scanValues returns the types for scanning values from sql.Rows. +func (*BuildTag) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) + for i := range columns { + switch columns[i] { + case buildtag.FieldID, buildtag.FieldBuildID: + values[i] = new(sql.NullInt64) + case buildtag.FieldKey, buildtag.FieldValue: + values[i] = new(sql.NullString) + default: + values[i] = new(sql.UnknownType) + } + } + return values, nil +} + +// assignValues assigns the values that were returned from sql.Rows (after scanning) +// to the BuildTag fields. +func (bt *BuildTag) assignValues(columns []string, values []any) error { + if m, n := len(values), len(columns); m < n { + return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) + } + for i := range columns { + switch columns[i] { + case buildtag.FieldID: + value, ok := values[i].(*sql.NullInt64) + if !ok { + return fmt.Errorf("unexpected type %T for field id", value) + } + bt.ID = int64(value.Int64) + case buildtag.FieldBuildID: + if value, ok := values[i].(*sql.NullInt64); !ok { + return fmt.Errorf("unexpected type %T for field build_id", values[i]) + } else if value.Valid { + bt.BuildID = value.Int64 + } + case buildtag.FieldKey: + if value, ok := values[i].(*sql.NullString); !ok { + return fmt.Errorf("unexpected type %T for field key", values[i]) + } else if value.Valid { + bt.Key = value.String + } + case buildtag.FieldValue: + if value, ok := values[i].(*sql.NullString); !ok { + return fmt.Errorf("unexpected type %T for field value", values[i]) + } else if value.Valid { + bt.Value = value.String + } + default: + bt.selectValues.Set(columns[i], values[i]) + } + } + return nil +} + +// GetValue returns the ent.Value that was dynamically selected and assigned to the BuildTag. +// This includes values selected through modifiers, order, etc. +func (bt *BuildTag) GetValue(name string) (ent.Value, error) { + return bt.selectValues.Get(name) +} + +// QueryBuild queries the "build" edge of the BuildTag entity. +func (bt *BuildTag) QueryBuild() *BuildQuery { + return NewBuildTagClient(bt.config).QueryBuild(bt) +} + +// Update returns a builder for updating this BuildTag. +// Note that you need to call BuildTag.Unwrap() before calling this method if this BuildTag +// was returned from a transaction, and the transaction was committed or rolled back. +func (bt *BuildTag) Update() *BuildTagUpdateOne { + return NewBuildTagClient(bt.config).UpdateOne(bt) +} + +// Unwrap unwraps the BuildTag entity that was returned from a transaction after it was closed, +// so that all future queries will be executed through the driver which created the transaction. +func (bt *BuildTag) Unwrap() *BuildTag { + _tx, ok := bt.config.driver.(*txDriver) + if !ok { + panic("ent: BuildTag is not a transactional entity") + } + bt.config.driver = _tx.drv + return bt +} + +// String implements the fmt.Stringer. +func (bt *BuildTag) String() string { + var builder strings.Builder + builder.WriteString("BuildTag(") + builder.WriteString(fmt.Sprintf("id=%v, ", bt.ID)) + builder.WriteString("build_id=") + builder.WriteString(fmt.Sprintf("%v", bt.BuildID)) + builder.WriteString(", ") + builder.WriteString("key=") + builder.WriteString(bt.Key) + builder.WriteString(", ") + builder.WriteString("value=") + builder.WriteString(bt.Value) + builder.WriteByte(')') + return builder.String() +} + +// BuildTags is a parsable slice of BuildTag. +type BuildTags []*BuildTag diff --git a/ent/gen/ent/buildtag/BUILD.bazel b/ent/gen/ent/buildtag/BUILD.bazel new file mode 100644 index 00000000..b6111c1e --- /dev/null +++ b/ent/gen/ent/buildtag/BUILD.bazel @@ -0,0 +1,16 @@ +load("@rules_go//go:def.bzl", "go_library") + +go_library( + name = "buildtag", + srcs = [ + "buildtag.go", + "where.go", + ], + importpath = "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag", + visibility = ["//visibility:public"], + deps = [ + "//ent/gen/ent/predicate", + "@io_entgo_ent//dialect/sql", + "@io_entgo_ent//dialect/sql/sqlgraph", + ], +) diff --git a/ent/gen/ent/buildtag/buildtag.go b/ent/gen/ent/buildtag/buildtag.go new file mode 100644 index 00000000..b880fe7f --- /dev/null +++ b/ent/gen/ent/buildtag/buildtag.go @@ -0,0 +1,87 @@ +// Code generated by ent, DO NOT EDIT. + +package buildtag + +import ( + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" +) + +const ( + // Label holds the string label denoting the buildtag type in the database. + Label = "build_tag" + // FieldID holds the string denoting the id field in the database. + FieldID = "id" + // FieldBuildID holds the string denoting the build_id field in the database. + FieldBuildID = "build_id" + // FieldKey holds the string denoting the key field in the database. + FieldKey = "key" + // FieldValue holds the string denoting the value field in the database. + FieldValue = "value" + // EdgeBuild holds the string denoting the build edge name in mutations. + EdgeBuild = "build" + // Table holds the table name of the buildtag in the database. + Table = "build_tags" + // BuildTable is the table that holds the build relation/edge. + BuildTable = "build_tags" + // BuildInverseTable is the table name for the Build entity. + // It exists in this package in order to avoid circular dependency with the "build" package. + BuildInverseTable = "builds" + // BuildColumn is the table column denoting the build relation/edge. + BuildColumn = "build_id" +) + +// Columns holds all SQL columns for buildtag fields. +var Columns = []string{ + FieldID, + FieldBuildID, + FieldKey, + FieldValue, +} + +// ValidColumn reports if the column name is valid (part of the table columns). +func ValidColumn(column string) bool { + for i := range Columns { + if column == Columns[i] { + return true + } + } + return false +} + +// OrderOption defines the ordering options for the BuildTag queries. +type OrderOption func(*sql.Selector) + +// ByID orders the results by the id field. +func ByID(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldID, opts...).ToFunc() +} + +// ByBuildID orders the results by the build_id field. +func ByBuildID(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldBuildID, opts...).ToFunc() +} + +// ByKey orders the results by the key field. +func ByKey(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldKey, opts...).ToFunc() +} + +// ByValue orders the results by the value field. +func ByValue(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldValue, opts...).ToFunc() +} + +// ByBuildField orders the results by build field. +func ByBuildField(field string, opts ...sql.OrderTermOption) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborTerms(s, newBuildStep(), sql.OrderByField(field, opts...)) + } +} +func newBuildStep() *sqlgraph.Step { + return sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.To(BuildInverseTable, FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, BuildTable, BuildColumn), + ) +} diff --git a/ent/gen/ent/buildtag/where.go b/ent/gen/ent/buildtag/where.go new file mode 100644 index 00000000..454ca0f0 --- /dev/null +++ b/ent/gen/ent/buildtag/where.go @@ -0,0 +1,257 @@ +// Code generated by ent, DO NOT EDIT. + +package buildtag + +import ( + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// ID filters vertices based on their ID field. +func ID(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldID, id)) +} + +// IDEQ applies the EQ predicate on the ID field. +func IDEQ(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldID, id)) +} + +// IDNEQ applies the NEQ predicate on the ID field. +func IDNEQ(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNEQ(FieldID, id)) +} + +// IDIn applies the In predicate on the ID field. +func IDIn(ids ...int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldIn(FieldID, ids...)) +} + +// IDNotIn applies the NotIn predicate on the ID field. +func IDNotIn(ids ...int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNotIn(FieldID, ids...)) +} + +// IDGT applies the GT predicate on the ID field. +func IDGT(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldGT(FieldID, id)) +} + +// IDGTE applies the GTE predicate on the ID field. +func IDGTE(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldGTE(FieldID, id)) +} + +// IDLT applies the LT predicate on the ID field. +func IDLT(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldLT(FieldID, id)) +} + +// IDLTE applies the LTE predicate on the ID field. +func IDLTE(id int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldLTE(FieldID, id)) +} + +// BuildID applies equality check predicate on the "build_id" field. It's identical to BuildIDEQ. +func BuildID(v int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldBuildID, v)) +} + +// Key applies equality check predicate on the "key" field. It's identical to KeyEQ. +func Key(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldKey, v)) +} + +// Value applies equality check predicate on the "value" field. It's identical to ValueEQ. +func Value(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldValue, v)) +} + +// BuildIDEQ applies the EQ predicate on the "build_id" field. +func BuildIDEQ(v int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldBuildID, v)) +} + +// BuildIDNEQ applies the NEQ predicate on the "build_id" field. +func BuildIDNEQ(v int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNEQ(FieldBuildID, v)) +} + +// BuildIDIn applies the In predicate on the "build_id" field. +func BuildIDIn(vs ...int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldIn(FieldBuildID, vs...)) +} + +// BuildIDNotIn applies the NotIn predicate on the "build_id" field. +func BuildIDNotIn(vs ...int64) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNotIn(FieldBuildID, vs...)) +} + +// KeyEQ applies the EQ predicate on the "key" field. +func KeyEQ(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldKey, v)) +} + +// KeyNEQ applies the NEQ predicate on the "key" field. +func KeyNEQ(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNEQ(FieldKey, v)) +} + +// KeyIn applies the In predicate on the "key" field. +func KeyIn(vs ...string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldIn(FieldKey, vs...)) +} + +// KeyNotIn applies the NotIn predicate on the "key" field. +func KeyNotIn(vs ...string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNotIn(FieldKey, vs...)) +} + +// KeyGT applies the GT predicate on the "key" field. +func KeyGT(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldGT(FieldKey, v)) +} + +// KeyGTE applies the GTE predicate on the "key" field. +func KeyGTE(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldGTE(FieldKey, v)) +} + +// KeyLT applies the LT predicate on the "key" field. +func KeyLT(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldLT(FieldKey, v)) +} + +// KeyLTE applies the LTE predicate on the "key" field. +func KeyLTE(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldLTE(FieldKey, v)) +} + +// KeyContains applies the Contains predicate on the "key" field. +func KeyContains(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldContains(FieldKey, v)) +} + +// KeyHasPrefix applies the HasPrefix predicate on the "key" field. +func KeyHasPrefix(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldHasPrefix(FieldKey, v)) +} + +// KeyHasSuffix applies the HasSuffix predicate on the "key" field. +func KeyHasSuffix(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldHasSuffix(FieldKey, v)) +} + +// KeyEqualFold applies the EqualFold predicate on the "key" field. +func KeyEqualFold(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEqualFold(FieldKey, v)) +} + +// KeyContainsFold applies the ContainsFold predicate on the "key" field. +func KeyContainsFold(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldContainsFold(FieldKey, v)) +} + +// ValueEQ applies the EQ predicate on the "value" field. +func ValueEQ(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEQ(FieldValue, v)) +} + +// ValueNEQ applies the NEQ predicate on the "value" field. +func ValueNEQ(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNEQ(FieldValue, v)) +} + +// ValueIn applies the In predicate on the "value" field. +func ValueIn(vs ...string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldIn(FieldValue, vs...)) +} + +// ValueNotIn applies the NotIn predicate on the "value" field. +func ValueNotIn(vs ...string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldNotIn(FieldValue, vs...)) +} + +// ValueGT applies the GT predicate on the "value" field. +func ValueGT(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldGT(FieldValue, v)) +} + +// ValueGTE applies the GTE predicate on the "value" field. +func ValueGTE(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldGTE(FieldValue, v)) +} + +// ValueLT applies the LT predicate on the "value" field. +func ValueLT(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldLT(FieldValue, v)) +} + +// ValueLTE applies the LTE predicate on the "value" field. +func ValueLTE(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldLTE(FieldValue, v)) +} + +// ValueContains applies the Contains predicate on the "value" field. +func ValueContains(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldContains(FieldValue, v)) +} + +// ValueHasPrefix applies the HasPrefix predicate on the "value" field. +func ValueHasPrefix(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldHasPrefix(FieldValue, v)) +} + +// ValueHasSuffix applies the HasSuffix predicate on the "value" field. +func ValueHasSuffix(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldHasSuffix(FieldValue, v)) +} + +// ValueEqualFold applies the EqualFold predicate on the "value" field. +func ValueEqualFold(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldEqualFold(FieldValue, v)) +} + +// ValueContainsFold applies the ContainsFold predicate on the "value" field. +func ValueContainsFold(v string) predicate.BuildTag { + return predicate.BuildTag(sql.FieldContainsFold(FieldValue, v)) +} + +// HasBuild applies the HasEdge predicate on the "build" edge. +func HasBuild() predicate.BuildTag { + return predicate.BuildTag(func(s *sql.Selector) { + step := sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, BuildTable, BuildColumn), + ) + sqlgraph.HasNeighbors(s, step) + }) +} + +// HasBuildWith applies the HasEdge predicate on the "build" edge with a given conditions (other predicates). +func HasBuildWith(preds ...predicate.Build) predicate.BuildTag { + return predicate.BuildTag(func(s *sql.Selector) { + step := newBuildStep() + sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }) + }) +} + +// And groups predicates with the AND operator between them. +func And(predicates ...predicate.BuildTag) predicate.BuildTag { + return predicate.BuildTag(sql.AndPredicates(predicates...)) +} + +// Or groups predicates with the OR operator between them. +func Or(predicates ...predicate.BuildTag) predicate.BuildTag { + return predicate.BuildTag(sql.OrPredicates(predicates...)) +} + +// Not applies the not operator on the given predicate. +func Not(p predicate.BuildTag) predicate.BuildTag { + return predicate.BuildTag(sql.NotPredicates(p)) +} diff --git a/ent/gen/ent/buildtag_create.go b/ent/gen/ent/buildtag_create.go new file mode 100644 index 00000000..398a8fb7 --- /dev/null +++ b/ent/gen/ent/buildtag_create.go @@ -0,0 +1,510 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + "errors" + "fmt" + + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" +) + +// BuildTagCreate is the builder for creating a BuildTag entity. +type BuildTagCreate struct { + config + mutation *BuildTagMutation + hooks []Hook + conflict []sql.ConflictOption +} + +// SetBuildID sets the "build_id" field. +func (btc *BuildTagCreate) SetBuildID(i int64) *BuildTagCreate { + btc.mutation.SetBuildID(i) + return btc +} + +// SetKey sets the "key" field. +func (btc *BuildTagCreate) SetKey(s string) *BuildTagCreate { + btc.mutation.SetKey(s) + return btc +} + +// SetValue sets the "value" field. +func (btc *BuildTagCreate) SetValue(s string) *BuildTagCreate { + btc.mutation.SetValue(s) + return btc +} + +// SetID sets the "id" field. +func (btc *BuildTagCreate) SetID(i int64) *BuildTagCreate { + btc.mutation.SetID(i) + return btc +} + +// SetBuild sets the "build" edge to the Build entity. +func (btc *BuildTagCreate) SetBuild(b *Build) *BuildTagCreate { + return btc.SetBuildID(b.ID) +} + +// Mutation returns the BuildTagMutation object of the builder. +func (btc *BuildTagCreate) Mutation() *BuildTagMutation { + return btc.mutation +} + +// Save creates the BuildTag in the database. +func (btc *BuildTagCreate) Save(ctx context.Context) (*BuildTag, error) { + return withHooks(ctx, btc.sqlSave, btc.mutation, btc.hooks) +} + +// SaveX calls Save and panics if Save returns an error. +func (btc *BuildTagCreate) SaveX(ctx context.Context) *BuildTag { + v, err := btc.Save(ctx) + if err != nil { + panic(err) + } + return v +} + +// Exec executes the query. +func (btc *BuildTagCreate) Exec(ctx context.Context) error { + _, err := btc.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (btc *BuildTagCreate) ExecX(ctx context.Context) { + if err := btc.Exec(ctx); err != nil { + panic(err) + } +} + +// check runs all checks and user-defined validators on the builder. +func (btc *BuildTagCreate) check() error { + if _, ok := btc.mutation.BuildID(); !ok { + return &ValidationError{Name: "build_id", err: errors.New(`ent: missing required field "BuildTag.build_id"`)} + } + if _, ok := btc.mutation.Key(); !ok { + return &ValidationError{Name: "key", err: errors.New(`ent: missing required field "BuildTag.key"`)} + } + if _, ok := btc.mutation.Value(); !ok { + return &ValidationError{Name: "value", err: errors.New(`ent: missing required field "BuildTag.value"`)} + } + if len(btc.mutation.BuildIDs()) == 0 { + return &ValidationError{Name: "build", err: errors.New(`ent: missing required edge "BuildTag.build"`)} + } + return nil +} + +func (btc *BuildTagCreate) sqlSave(ctx context.Context) (*BuildTag, error) { + if err := btc.check(); err != nil { + return nil, err + } + _node, _spec := btc.createSpec() + if err := sqlgraph.CreateNode(ctx, btc.driver, _spec); err != nil { + if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return nil, err + } + if _spec.ID.Value != _node.ID { + id := _spec.ID.Value.(int64) + _node.ID = int64(id) + } + btc.mutation.id = &_node.ID + btc.mutation.done = true + return _node, nil +} + +func (btc *BuildTagCreate) createSpec() (*BuildTag, *sqlgraph.CreateSpec) { + var ( + _node = &BuildTag{config: btc.config} + _spec = sqlgraph.NewCreateSpec(buildtag.Table, sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64)) + ) + _spec.OnConflict = btc.conflict + if id, ok := btc.mutation.ID(); ok { + _node.ID = id + _spec.ID.Value = id + } + if value, ok := btc.mutation.Key(); ok { + _spec.SetField(buildtag.FieldKey, field.TypeString, value) + _node.Key = value + } + if value, ok := btc.mutation.Value(); ok { + _spec.SetField(buildtag.FieldValue, field.TypeString, value) + _node.Value = value + } + if nodes := btc.mutation.BuildIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.M2O, + Inverse: true, + Table: buildtag.BuildTable, + Columns: []string{buildtag.BuildColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(build.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _node.BuildID = nodes[0] + _spec.Edges = append(_spec.Edges, edge) + } + return _node, _spec +} + +// OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause +// of the `INSERT` statement. For example: +// +// client.BuildTag.Create(). +// SetBuildID(v). +// OnConflict( +// // Update the row with the new values +// // the was proposed for insertion. +// sql.ResolveWithNewValues(), +// ). +// // Override some of the fields with custom +// // update values. +// Update(func(u *ent.BuildTagUpsert) { +// SetBuildID(v+v). +// }). +// Exec(ctx) +func (btc *BuildTagCreate) OnConflict(opts ...sql.ConflictOption) *BuildTagUpsertOne { + btc.conflict = opts + return &BuildTagUpsertOne{ + create: btc, + } +} + +// OnConflictColumns calls `OnConflict` and configures the columns +// as conflict target. Using this option is equivalent to using: +// +// client.BuildTag.Create(). +// OnConflict(sql.ConflictColumns(columns...)). +// Exec(ctx) +func (btc *BuildTagCreate) OnConflictColumns(columns ...string) *BuildTagUpsertOne { + btc.conflict = append(btc.conflict, sql.ConflictColumns(columns...)) + return &BuildTagUpsertOne{ + create: btc, + } +} + +type ( + // BuildTagUpsertOne is the builder for "upsert"-ing + // one BuildTag node. + BuildTagUpsertOne struct { + create *BuildTagCreate + } + + // BuildTagUpsert is the "OnConflict" setter. + BuildTagUpsert struct { + *sql.UpdateSet + } +) + +// UpdateNewValues updates the mutable fields using the new values that were set on create except the ID field. +// Using this option is equivalent to using: +// +// client.BuildTag.Create(). +// OnConflict( +// sql.ResolveWithNewValues(), +// sql.ResolveWith(func(u *sql.UpdateSet) { +// u.SetIgnore(buildtag.FieldID) +// }), +// ). +// Exec(ctx) +func (u *BuildTagUpsertOne) UpdateNewValues() *BuildTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { + if _, exists := u.create.mutation.ID(); exists { + s.SetIgnore(buildtag.FieldID) + } + if _, exists := u.create.mutation.BuildID(); exists { + s.SetIgnore(buildtag.FieldBuildID) + } + if _, exists := u.create.mutation.Key(); exists { + s.SetIgnore(buildtag.FieldKey) + } + if _, exists := u.create.mutation.Value(); exists { + s.SetIgnore(buildtag.FieldValue) + } + })) + return u +} + +// Ignore sets each column to itself in case of conflict. +// Using this option is equivalent to using: +// +// client.BuildTag.Create(). +// OnConflict(sql.ResolveWithIgnore()). +// Exec(ctx) +func (u *BuildTagUpsertOne) Ignore() *BuildTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) + return u +} + +// DoNothing configures the conflict_action to `DO NOTHING`. +// Supported only by SQLite and PostgreSQL. +func (u *BuildTagUpsertOne) DoNothing() *BuildTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.DoNothing()) + return u +} + +// Update allows overriding fields `UPDATE` values. See the BuildTagCreate.OnConflict +// documentation for more info. +func (u *BuildTagUpsertOne) Update(set func(*BuildTagUpsert)) *BuildTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { + set(&BuildTagUpsert{UpdateSet: update}) + })) + return u +} + +// Exec executes the query. +func (u *BuildTagUpsertOne) Exec(ctx context.Context) error { + if len(u.create.conflict) == 0 { + return errors.New("ent: missing options for BuildTagCreate.OnConflict") + } + return u.create.Exec(ctx) +} + +// ExecX is like Exec, but panics if an error occurs. +func (u *BuildTagUpsertOne) ExecX(ctx context.Context) { + if err := u.create.Exec(ctx); err != nil { + panic(err) + } +} + +// Exec executes the UPSERT query and returns the inserted/updated ID. +func (u *BuildTagUpsertOne) ID(ctx context.Context) (id int64, err error) { + node, err := u.create.Save(ctx) + if err != nil { + return id, err + } + return node.ID, nil +} + +// IDX is like ID, but panics if an error occurs. +func (u *BuildTagUpsertOne) IDX(ctx context.Context) int64 { + id, err := u.ID(ctx) + if err != nil { + panic(err) + } + return id +} + +// BuildTagCreateBulk is the builder for creating many BuildTag entities in bulk. +type BuildTagCreateBulk struct { + config + err error + builders []*BuildTagCreate + conflict []sql.ConflictOption +} + +// Save creates the BuildTag entities in the database. +func (btcb *BuildTagCreateBulk) Save(ctx context.Context) ([]*BuildTag, error) { + if btcb.err != nil { + return nil, btcb.err + } + specs := make([]*sqlgraph.CreateSpec, len(btcb.builders)) + nodes := make([]*BuildTag, len(btcb.builders)) + mutators := make([]Mutator, len(btcb.builders)) + for i := range btcb.builders { + func(i int, root context.Context) { + builder := btcb.builders[i] + var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { + mutation, ok := m.(*BuildTagMutation) + if !ok { + return nil, fmt.Errorf("unexpected mutation type %T", m) + } + if err := builder.check(); err != nil { + return nil, err + } + builder.mutation = mutation + var err error + nodes[i], specs[i] = builder.createSpec() + if i < len(mutators)-1 { + _, err = mutators[i+1].Mutate(root, btcb.builders[i+1].mutation) + } else { + spec := &sqlgraph.BatchCreateSpec{Nodes: specs} + spec.OnConflict = btcb.conflict + // Invoke the actual operation on the latest mutation in the chain. + if err = sqlgraph.BatchCreate(ctx, btcb.driver, spec); err != nil { + if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + } + } + if err != nil { + return nil, err + } + mutation.id = &nodes[i].ID + if specs[i].ID.Value != nil && nodes[i].ID == 0 { + id := specs[i].ID.Value.(int64) + nodes[i].ID = int64(id) + } + mutation.done = true + return nodes[i], nil + }) + for i := len(builder.hooks) - 1; i >= 0; i-- { + mut = builder.hooks[i](mut) + } + mutators[i] = mut + }(i, ctx) + } + if len(mutators) > 0 { + if _, err := mutators[0].Mutate(ctx, btcb.builders[0].mutation); err != nil { + return nil, err + } + } + return nodes, nil +} + +// SaveX is like Save, but panics if an error occurs. +func (btcb *BuildTagCreateBulk) SaveX(ctx context.Context) []*BuildTag { + v, err := btcb.Save(ctx) + if err != nil { + panic(err) + } + return v +} + +// Exec executes the query. +func (btcb *BuildTagCreateBulk) Exec(ctx context.Context) error { + _, err := btcb.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (btcb *BuildTagCreateBulk) ExecX(ctx context.Context) { + if err := btcb.Exec(ctx); err != nil { + panic(err) + } +} + +// OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause +// of the `INSERT` statement. For example: +// +// client.BuildTag.CreateBulk(builders...). +// OnConflict( +// // Update the row with the new values +// // the was proposed for insertion. +// sql.ResolveWithNewValues(), +// ). +// // Override some of the fields with custom +// // update values. +// Update(func(u *ent.BuildTagUpsert) { +// SetBuildID(v+v). +// }). +// Exec(ctx) +func (btcb *BuildTagCreateBulk) OnConflict(opts ...sql.ConflictOption) *BuildTagUpsertBulk { + btcb.conflict = opts + return &BuildTagUpsertBulk{ + create: btcb, + } +} + +// OnConflictColumns calls `OnConflict` and configures the columns +// as conflict target. Using this option is equivalent to using: +// +// client.BuildTag.Create(). +// OnConflict(sql.ConflictColumns(columns...)). +// Exec(ctx) +func (btcb *BuildTagCreateBulk) OnConflictColumns(columns ...string) *BuildTagUpsertBulk { + btcb.conflict = append(btcb.conflict, sql.ConflictColumns(columns...)) + return &BuildTagUpsertBulk{ + create: btcb, + } +} + +// BuildTagUpsertBulk is the builder for "upsert"-ing +// a bulk of BuildTag nodes. +type BuildTagUpsertBulk struct { + create *BuildTagCreateBulk +} + +// UpdateNewValues updates the mutable fields using the new values that +// were set on create. Using this option is equivalent to using: +// +// client.BuildTag.Create(). +// OnConflict( +// sql.ResolveWithNewValues(), +// sql.ResolveWith(func(u *sql.UpdateSet) { +// u.SetIgnore(buildtag.FieldID) +// }), +// ). +// Exec(ctx) +func (u *BuildTagUpsertBulk) UpdateNewValues() *BuildTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { + for _, b := range u.create.builders { + if _, exists := b.mutation.ID(); exists { + s.SetIgnore(buildtag.FieldID) + } + if _, exists := b.mutation.BuildID(); exists { + s.SetIgnore(buildtag.FieldBuildID) + } + if _, exists := b.mutation.Key(); exists { + s.SetIgnore(buildtag.FieldKey) + } + if _, exists := b.mutation.Value(); exists { + s.SetIgnore(buildtag.FieldValue) + } + } + })) + return u +} + +// Ignore sets each column to itself in case of conflict. +// Using this option is equivalent to using: +// +// client.BuildTag.Create(). +// OnConflict(sql.ResolveWithIgnore()). +// Exec(ctx) +func (u *BuildTagUpsertBulk) Ignore() *BuildTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) + return u +} + +// DoNothing configures the conflict_action to `DO NOTHING`. +// Supported only by SQLite and PostgreSQL. +func (u *BuildTagUpsertBulk) DoNothing() *BuildTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.DoNothing()) + return u +} + +// Update allows overriding fields `UPDATE` values. See the BuildTagCreateBulk.OnConflict +// documentation for more info. +func (u *BuildTagUpsertBulk) Update(set func(*BuildTagUpsert)) *BuildTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { + set(&BuildTagUpsert{UpdateSet: update}) + })) + return u +} + +// Exec executes the query. +func (u *BuildTagUpsertBulk) Exec(ctx context.Context) error { + if u.create.err != nil { + return u.create.err + } + for i, b := range u.create.builders { + if len(b.conflict) != 0 { + return fmt.Errorf("ent: OnConflict was set for builder %d. Set it on the BuildTagCreateBulk instead", i) + } + } + if len(u.create.conflict) == 0 { + return errors.New("ent: missing options for BuildTagCreateBulk.OnConflict") + } + return u.create.Exec(ctx) +} + +// ExecX is like Exec, but panics if an error occurs. +func (u *BuildTagUpsertBulk) ExecX(ctx context.Context) { + if err := u.create.Exec(ctx); err != nil { + panic(err) + } +} diff --git a/ent/gen/ent/buildtag_delete.go b/ent/gen/ent/buildtag_delete.go new file mode 100644 index 00000000..76960523 --- /dev/null +++ b/ent/gen/ent/buildtag_delete.go @@ -0,0 +1,88 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// BuildTagDelete is the builder for deleting a BuildTag entity. +type BuildTagDelete struct { + config + hooks []Hook + mutation *BuildTagMutation +} + +// Where appends a list predicates to the BuildTagDelete builder. +func (btd *BuildTagDelete) Where(ps ...predicate.BuildTag) *BuildTagDelete { + btd.mutation.Where(ps...) + return btd +} + +// Exec executes the deletion query and returns how many vertices were deleted. +func (btd *BuildTagDelete) Exec(ctx context.Context) (int, error) { + return withHooks(ctx, btd.sqlExec, btd.mutation, btd.hooks) +} + +// ExecX is like Exec, but panics if an error occurs. +func (btd *BuildTagDelete) ExecX(ctx context.Context) int { + n, err := btd.Exec(ctx) + if err != nil { + panic(err) + } + return n +} + +func (btd *BuildTagDelete) sqlExec(ctx context.Context) (int, error) { + _spec := sqlgraph.NewDeleteSpec(buildtag.Table, sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64)) + if ps := btd.mutation.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + affected, err := sqlgraph.DeleteNodes(ctx, btd.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + btd.mutation.done = true + return affected, err +} + +// BuildTagDeleteOne is the builder for deleting a single BuildTag entity. +type BuildTagDeleteOne struct { + btd *BuildTagDelete +} + +// Where appends a list predicates to the BuildTagDelete builder. +func (btdo *BuildTagDeleteOne) Where(ps ...predicate.BuildTag) *BuildTagDeleteOne { + btdo.btd.mutation.Where(ps...) + return btdo +} + +// Exec executes the deletion query. +func (btdo *BuildTagDeleteOne) Exec(ctx context.Context) error { + n, err := btdo.btd.Exec(ctx) + switch { + case err != nil: + return err + case n == 0: + return &NotFoundError{buildtag.Label} + default: + return nil + } +} + +// ExecX is like Exec, but panics if an error occurs. +func (btdo *BuildTagDeleteOne) ExecX(ctx context.Context) { + if err := btdo.Exec(ctx); err != nil { + panic(err) + } +} diff --git a/ent/gen/ent/buildtag_query.go b/ent/gen/ent/buildtag_query.go new file mode 100644 index 00000000..f688bf76 --- /dev/null +++ b/ent/gen/ent/buildtag_query.go @@ -0,0 +1,635 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + "fmt" + "math" + + "entgo.io/ent" + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// BuildTagQuery is the builder for querying BuildTag entities. +type BuildTagQuery struct { + config + ctx *QueryContext + order []buildtag.OrderOption + inters []Interceptor + predicates []predicate.BuildTag + withBuild *BuildQuery + loadTotal []func(context.Context, []*BuildTag) error + modifiers []func(*sql.Selector) + // intermediate query (i.e. traversal path). + sql *sql.Selector + path func(context.Context) (*sql.Selector, error) +} + +// Where adds a new predicate for the BuildTagQuery builder. +func (btq *BuildTagQuery) Where(ps ...predicate.BuildTag) *BuildTagQuery { + btq.predicates = append(btq.predicates, ps...) + return btq +} + +// Limit the number of records to be returned by this query. +func (btq *BuildTagQuery) Limit(limit int) *BuildTagQuery { + btq.ctx.Limit = &limit + return btq +} + +// Offset to start from. +func (btq *BuildTagQuery) Offset(offset int) *BuildTagQuery { + btq.ctx.Offset = &offset + return btq +} + +// Unique configures the query builder to filter duplicate records on query. +// By default, unique is set to true, and can be disabled using this method. +func (btq *BuildTagQuery) Unique(unique bool) *BuildTagQuery { + btq.ctx.Unique = &unique + return btq +} + +// Order specifies how the records should be ordered. +func (btq *BuildTagQuery) Order(o ...buildtag.OrderOption) *BuildTagQuery { + btq.order = append(btq.order, o...) + return btq +} + +// QueryBuild chains the current query on the "build" edge. +func (btq *BuildTagQuery) QueryBuild() *BuildQuery { + query := (&BuildClient{config: btq.config}).Query() + query.path = func(ctx context.Context) (fromU *sql.Selector, err error) { + if err := btq.prepareQuery(ctx); err != nil { + return nil, err + } + selector := btq.sqlQuery(ctx) + if err := selector.Err(); err != nil { + return nil, err + } + step := sqlgraph.NewStep( + sqlgraph.From(buildtag.Table, buildtag.FieldID, selector), + sqlgraph.To(build.Table, build.FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, buildtag.BuildTable, buildtag.BuildColumn), + ) + fromU = sqlgraph.SetNeighbors(btq.driver.Dialect(), step) + return fromU, nil + } + return query +} + +// First returns the first BuildTag entity from the query. +// Returns a *NotFoundError when no BuildTag was found. +func (btq *BuildTagQuery) First(ctx context.Context) (*BuildTag, error) { + nodes, err := btq.Limit(1).All(setContextOp(ctx, btq.ctx, ent.OpQueryFirst)) + if err != nil { + return nil, err + } + if len(nodes) == 0 { + return nil, &NotFoundError{buildtag.Label} + } + return nodes[0], nil +} + +// FirstX is like First, but panics if an error occurs. +func (btq *BuildTagQuery) FirstX(ctx context.Context) *BuildTag { + node, err := btq.First(ctx) + if err != nil && !IsNotFound(err) { + panic(err) + } + return node +} + +// FirstID returns the first BuildTag ID from the query. +// Returns a *NotFoundError when no BuildTag ID was found. +func (btq *BuildTagQuery) FirstID(ctx context.Context) (id int64, err error) { + var ids []int64 + if ids, err = btq.Limit(1).IDs(setContextOp(ctx, btq.ctx, ent.OpQueryFirstID)); err != nil { + return + } + if len(ids) == 0 { + err = &NotFoundError{buildtag.Label} + return + } + return ids[0], nil +} + +// FirstIDX is like FirstID, but panics if an error occurs. +func (btq *BuildTagQuery) FirstIDX(ctx context.Context) int64 { + id, err := btq.FirstID(ctx) + if err != nil && !IsNotFound(err) { + panic(err) + } + return id +} + +// Only returns a single BuildTag entity found by the query, ensuring it only returns one. +// Returns a *NotSingularError when more than one BuildTag entity is found. +// Returns a *NotFoundError when no BuildTag entities are found. +func (btq *BuildTagQuery) Only(ctx context.Context) (*BuildTag, error) { + nodes, err := btq.Limit(2).All(setContextOp(ctx, btq.ctx, ent.OpQueryOnly)) + if err != nil { + return nil, err + } + switch len(nodes) { + case 1: + return nodes[0], nil + case 0: + return nil, &NotFoundError{buildtag.Label} + default: + return nil, &NotSingularError{buildtag.Label} + } +} + +// OnlyX is like Only, but panics if an error occurs. +func (btq *BuildTagQuery) OnlyX(ctx context.Context) *BuildTag { + node, err := btq.Only(ctx) + if err != nil { + panic(err) + } + return node +} + +// OnlyID is like Only, but returns the only BuildTag ID in the query. +// Returns a *NotSingularError when more than one BuildTag ID is found. +// Returns a *NotFoundError when no entities are found. +func (btq *BuildTagQuery) OnlyID(ctx context.Context) (id int64, err error) { + var ids []int64 + if ids, err = btq.Limit(2).IDs(setContextOp(ctx, btq.ctx, ent.OpQueryOnlyID)); err != nil { + return + } + switch len(ids) { + case 1: + id = ids[0] + case 0: + err = &NotFoundError{buildtag.Label} + default: + err = &NotSingularError{buildtag.Label} + } + return +} + +// OnlyIDX is like OnlyID, but panics if an error occurs. +func (btq *BuildTagQuery) OnlyIDX(ctx context.Context) int64 { + id, err := btq.OnlyID(ctx) + if err != nil { + panic(err) + } + return id +} + +// All executes the query and returns a list of BuildTags. +func (btq *BuildTagQuery) All(ctx context.Context) ([]*BuildTag, error) { + ctx = setContextOp(ctx, btq.ctx, ent.OpQueryAll) + if err := btq.prepareQuery(ctx); err != nil { + return nil, err + } + qr := querierAll[[]*BuildTag, *BuildTagQuery]() + return withInterceptors[[]*BuildTag](ctx, btq, qr, btq.inters) +} + +// AllX is like All, but panics if an error occurs. +func (btq *BuildTagQuery) AllX(ctx context.Context) []*BuildTag { + nodes, err := btq.All(ctx) + if err != nil { + panic(err) + } + return nodes +} + +// IDs executes the query and returns a list of BuildTag IDs. +func (btq *BuildTagQuery) IDs(ctx context.Context) (ids []int64, err error) { + if btq.ctx.Unique == nil && btq.path != nil { + btq.Unique(true) + } + ctx = setContextOp(ctx, btq.ctx, ent.OpQueryIDs) + if err = btq.Select(buildtag.FieldID).Scan(ctx, &ids); err != nil { + return nil, err + } + return ids, nil +} + +// IDsX is like IDs, but panics if an error occurs. +func (btq *BuildTagQuery) IDsX(ctx context.Context) []int64 { + ids, err := btq.IDs(ctx) + if err != nil { + panic(err) + } + return ids +} + +// Count returns the count of the given query. +func (btq *BuildTagQuery) Count(ctx context.Context) (int, error) { + ctx = setContextOp(ctx, btq.ctx, ent.OpQueryCount) + if err := btq.prepareQuery(ctx); err != nil { + return 0, err + } + return withInterceptors[int](ctx, btq, querierCount[*BuildTagQuery](), btq.inters) +} + +// CountX is like Count, but panics if an error occurs. +func (btq *BuildTagQuery) CountX(ctx context.Context) int { + count, err := btq.Count(ctx) + if err != nil { + panic(err) + } + return count +} + +// Exist returns true if the query has elements in the graph. +func (btq *BuildTagQuery) Exist(ctx context.Context) (bool, error) { + ctx = setContextOp(ctx, btq.ctx, ent.OpQueryExist) + switch _, err := btq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: + return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil + } +} + +// ExistX is like Exist, but panics if an error occurs. +func (btq *BuildTagQuery) ExistX(ctx context.Context) bool { + exist, err := btq.Exist(ctx) + if err != nil { + panic(err) + } + return exist +} + +// Clone returns a duplicate of the BuildTagQuery builder, including all associated steps. It can be +// used to prepare common query builders and use them differently after the clone is made. +func (btq *BuildTagQuery) Clone() *BuildTagQuery { + if btq == nil { + return nil + } + return &BuildTagQuery{ + config: btq.config, + ctx: btq.ctx.Clone(), + order: append([]buildtag.OrderOption{}, btq.order...), + inters: append([]Interceptor{}, btq.inters...), + predicates: append([]predicate.BuildTag{}, btq.predicates...), + withBuild: btq.withBuild.Clone(), + // clone intermediate query. + sql: btq.sql.Clone(), + path: btq.path, + modifiers: append([]func(*sql.Selector){}, btq.modifiers...), + } +} + +// WithBuild tells the query-builder to eager-load the nodes that are connected to +// the "build" edge. The optional arguments are used to configure the query builder of the edge. +func (btq *BuildTagQuery) WithBuild(opts ...func(*BuildQuery)) *BuildTagQuery { + query := (&BuildClient{config: btq.config}).Query() + for _, opt := range opts { + opt(query) + } + btq.withBuild = query + return btq +} + +// GroupBy is used to group vertices by one or more fields/columns. +// It is often used with aggregate functions, like: count, max, mean, min, sum. +// +// Example: +// +// var v []struct { +// BuildID int64 `json:"build_id,omitempty"` +// Count int `json:"count,omitempty"` +// } +// +// client.BuildTag.Query(). +// GroupBy(buildtag.FieldBuildID). +// Aggregate(ent.Count()). +// Scan(ctx, &v) +func (btq *BuildTagQuery) GroupBy(field string, fields ...string) *BuildTagGroupBy { + btq.ctx.Fields = append([]string{field}, fields...) + grbuild := &BuildTagGroupBy{build: btq} + grbuild.flds = &btq.ctx.Fields + grbuild.label = buildtag.Label + grbuild.scan = grbuild.Scan + return grbuild +} + +// Select allows the selection one or more fields/columns for the given query, +// instead of selecting all fields in the entity. +// +// Example: +// +// var v []struct { +// BuildID int64 `json:"build_id,omitempty"` +// } +// +// client.BuildTag.Query(). +// Select(buildtag.FieldBuildID). +// Scan(ctx, &v) +func (btq *BuildTagQuery) Select(fields ...string) *BuildTagSelect { + btq.ctx.Fields = append(btq.ctx.Fields, fields...) + sbuild := &BuildTagSelect{BuildTagQuery: btq} + sbuild.label = buildtag.Label + sbuild.flds, sbuild.scan = &btq.ctx.Fields, sbuild.Scan + return sbuild +} + +// Aggregate returns a BuildTagSelect configured with the given aggregations. +func (btq *BuildTagQuery) Aggregate(fns ...AggregateFunc) *BuildTagSelect { + return btq.Select().Aggregate(fns...) +} + +func (btq *BuildTagQuery) prepareQuery(ctx context.Context) error { + for _, inter := range btq.inters { + if inter == nil { + return fmt.Errorf("ent: uninitialized interceptor (forgotten import ent/runtime?)") + } + if trv, ok := inter.(Traverser); ok { + if err := trv.Traverse(ctx, btq); err != nil { + return err + } + } + } + for _, f := range btq.ctx.Fields { + if !buildtag.ValidColumn(f) { + return &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} + } + } + if btq.path != nil { + prev, err := btq.path(ctx) + if err != nil { + return err + } + btq.sql = prev + } + return nil +} + +func (btq *BuildTagQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*BuildTag, error) { + var ( + nodes = []*BuildTag{} + _spec = btq.querySpec() + loadedTypes = [1]bool{ + btq.withBuild != nil, + } + ) + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*BuildTag).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { + node := &BuildTag{config: btq.config} + nodes = append(nodes, node) + node.Edges.loadedTypes = loadedTypes + return node.assignValues(columns, values) + } + if len(btq.modifiers) > 0 { + _spec.Modifiers = btq.modifiers + } + for i := range hooks { + hooks[i](ctx, _spec) + } + if err := sqlgraph.QueryNodes(ctx, btq.driver, _spec); err != nil { + return nil, err + } + if len(nodes) == 0 { + return nodes, nil + } + if query := btq.withBuild; query != nil { + if err := btq.loadBuild(ctx, query, nodes, nil, + func(n *BuildTag, e *Build) { n.Edges.Build = e }); err != nil { + return nil, err + } + } + for i := range btq.loadTotal { + if err := btq.loadTotal[i](ctx, nodes); err != nil { + return nil, err + } + } + return nodes, nil +} + +func (btq *BuildTagQuery) loadBuild(ctx context.Context, query *BuildQuery, nodes []*BuildTag, init func(*BuildTag), assign func(*BuildTag, *Build)) error { + ids := make([]int64, 0, len(nodes)) + nodeids := make(map[int64][]*BuildTag) + for i := range nodes { + fk := nodes[i].BuildID + if _, ok := nodeids[fk]; !ok { + ids = append(ids, fk) + } + nodeids[fk] = append(nodeids[fk], nodes[i]) + } + if len(ids) == 0 { + return nil + } + query.Where(build.IDIn(ids...)) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + nodes, ok := nodeids[n.ID] + if !ok { + return fmt.Errorf(`unexpected foreign-key "build_id" returned %v`, n.ID) + } + for i := range nodes { + assign(nodes[i], n) + } + } + return nil +} + +func (btq *BuildTagQuery) sqlCount(ctx context.Context) (int, error) { + _spec := btq.querySpec() + if len(btq.modifiers) > 0 { + _spec.Modifiers = btq.modifiers + } + _spec.Node.Columns = btq.ctx.Fields + if len(btq.ctx.Fields) > 0 { + _spec.Unique = btq.ctx.Unique != nil && *btq.ctx.Unique + } + return sqlgraph.CountNodes(ctx, btq.driver, _spec) +} + +func (btq *BuildTagQuery) querySpec() *sqlgraph.QuerySpec { + _spec := sqlgraph.NewQuerySpec(buildtag.Table, buildtag.Columns, sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64)) + _spec.From = btq.sql + if unique := btq.ctx.Unique; unique != nil { + _spec.Unique = *unique + } else if btq.path != nil { + _spec.Unique = true + } + if fields := btq.ctx.Fields; len(fields) > 0 { + _spec.Node.Columns = make([]string, 0, len(fields)) + _spec.Node.Columns = append(_spec.Node.Columns, buildtag.FieldID) + for i := range fields { + if fields[i] != buildtag.FieldID { + _spec.Node.Columns = append(_spec.Node.Columns, fields[i]) + } + } + if btq.withBuild != nil { + _spec.Node.AddColumnOnce(buildtag.FieldBuildID) + } + } + if ps := btq.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + if limit := btq.ctx.Limit; limit != nil { + _spec.Limit = *limit + } + if offset := btq.ctx.Offset; offset != nil { + _spec.Offset = *offset + } + if ps := btq.order; len(ps) > 0 { + _spec.Order = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + return _spec +} + +func (btq *BuildTagQuery) sqlQuery(ctx context.Context) *sql.Selector { + builder := sql.Dialect(btq.driver.Dialect()) + t1 := builder.Table(buildtag.Table) + columns := btq.ctx.Fields + if len(columns) == 0 { + columns = buildtag.Columns + } + selector := builder.Select(t1.Columns(columns...)...).From(t1) + if btq.sql != nil { + selector = btq.sql + selector.Select(selector.Columns(columns...)...) + } + if btq.ctx.Unique != nil && *btq.ctx.Unique { + selector.Distinct() + } + for _, m := range btq.modifiers { + m(selector) + } + for _, p := range btq.predicates { + p(selector) + } + for _, p := range btq.order { + p(selector) + } + if offset := btq.ctx.Offset; offset != nil { + // limit is mandatory for offset clause. We start + // with default value, and override it below if needed. + selector.Offset(*offset).Limit(math.MaxInt32) + } + if limit := btq.ctx.Limit; limit != nil { + selector.Limit(*limit) + } + return selector +} + +// Modify adds a query modifier for attaching custom logic to queries. +func (btq *BuildTagQuery) Modify(modifiers ...func(s *sql.Selector)) *BuildTagSelect { + btq.modifiers = append(btq.modifiers, modifiers...) + return btq.Select() +} + +// BuildTagGroupBy is the group-by builder for BuildTag entities. +type BuildTagGroupBy struct { + selector + build *BuildTagQuery +} + +// Aggregate adds the given aggregation functions to the group-by query. +func (btgb *BuildTagGroupBy) Aggregate(fns ...AggregateFunc) *BuildTagGroupBy { + btgb.fns = append(btgb.fns, fns...) + return btgb +} + +// Scan applies the selector query and scans the result into the given value. +func (btgb *BuildTagGroupBy) Scan(ctx context.Context, v any) error { + ctx = setContextOp(ctx, btgb.build.ctx, ent.OpQueryGroupBy) + if err := btgb.build.prepareQuery(ctx); err != nil { + return err + } + return scanWithInterceptors[*BuildTagQuery, *BuildTagGroupBy](ctx, btgb.build, btgb, btgb.build.inters, v) +} + +func (btgb *BuildTagGroupBy) sqlScan(ctx context.Context, root *BuildTagQuery, v any) error { + selector := root.sqlQuery(ctx).Select() + aggregation := make([]string, 0, len(btgb.fns)) + for _, fn := range btgb.fns { + aggregation = append(aggregation, fn(selector)) + } + if len(selector.SelectedColumns()) == 0 { + columns := make([]string, 0, len(*btgb.flds)+len(btgb.fns)) + for _, f := range *btgb.flds { + columns = append(columns, selector.C(f)) + } + columns = append(columns, aggregation...) + selector.Select(columns...) + } + selector.GroupBy(selector.Columns(*btgb.flds...)...) + if err := selector.Err(); err != nil { + return err + } + rows := &sql.Rows{} + query, args := selector.Query() + if err := btgb.build.driver.Query(ctx, query, args, rows); err != nil { + return err + } + defer rows.Close() + return sql.ScanSlice(rows, v) +} + +// BuildTagSelect is the builder for selecting fields of BuildTag entities. +type BuildTagSelect struct { + *BuildTagQuery + selector +} + +// Aggregate adds the given aggregation functions to the selector query. +func (bts *BuildTagSelect) Aggregate(fns ...AggregateFunc) *BuildTagSelect { + bts.fns = append(bts.fns, fns...) + return bts +} + +// Scan applies the selector query and scans the result into the given value. +func (bts *BuildTagSelect) Scan(ctx context.Context, v any) error { + ctx = setContextOp(ctx, bts.ctx, ent.OpQuerySelect) + if err := bts.prepareQuery(ctx); err != nil { + return err + } + return scanWithInterceptors[*BuildTagQuery, *BuildTagSelect](ctx, bts.BuildTagQuery, bts, bts.inters, v) +} + +func (bts *BuildTagSelect) sqlScan(ctx context.Context, root *BuildTagQuery, v any) error { + selector := root.sqlQuery(ctx) + aggregation := make([]string, 0, len(bts.fns)) + for _, fn := range bts.fns { + aggregation = append(aggregation, fn(selector)) + } + switch n := len(*bts.selector.flds); { + case n == 0 && len(aggregation) > 0: + selector.Select(aggregation...) + case n != 0 && len(aggregation) > 0: + selector.AppendSelect(aggregation...) + } + rows := &sql.Rows{} + query, args := selector.Query() + if err := bts.driver.Query(ctx, query, args, rows); err != nil { + return err + } + defer rows.Close() + return sql.ScanSlice(rows, v) +} + +// Modify adds a query modifier for attaching custom logic to queries. +func (bts *BuildTagSelect) Modify(modifiers ...func(s *sql.Selector)) *BuildTagSelect { + bts.modifiers = append(bts.modifiers, modifiers...) + return bts +} diff --git a/ent/gen/ent/buildtag_update.go b/ent/gen/ent/buildtag_update.go new file mode 100644 index 00000000..57ec45d7 --- /dev/null +++ b/ent/gen/ent/buildtag_update.go @@ -0,0 +1,213 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + "errors" + "fmt" + + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// BuildTagUpdate is the builder for updating BuildTag entities. +type BuildTagUpdate struct { + config + hooks []Hook + mutation *BuildTagMutation + modifiers []func(*sql.UpdateBuilder) +} + +// Where appends a list predicates to the BuildTagUpdate builder. +func (btu *BuildTagUpdate) Where(ps ...predicate.BuildTag) *BuildTagUpdate { + btu.mutation.Where(ps...) + return btu +} + +// Mutation returns the BuildTagMutation object of the builder. +func (btu *BuildTagUpdate) Mutation() *BuildTagMutation { + return btu.mutation +} + +// Save executes the query and returns the number of nodes affected by the update operation. +func (btu *BuildTagUpdate) Save(ctx context.Context) (int, error) { + return withHooks(ctx, btu.sqlSave, btu.mutation, btu.hooks) +} + +// SaveX is like Save, but panics if an error occurs. +func (btu *BuildTagUpdate) SaveX(ctx context.Context) int { + affected, err := btu.Save(ctx) + if err != nil { + panic(err) + } + return affected +} + +// Exec executes the query. +func (btu *BuildTagUpdate) Exec(ctx context.Context) error { + _, err := btu.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (btu *BuildTagUpdate) ExecX(ctx context.Context) { + if err := btu.Exec(ctx); err != nil { + panic(err) + } +} + +// check runs all checks and user-defined validators on the builder. +func (btu *BuildTagUpdate) check() error { + if btu.mutation.BuildCleared() && len(btu.mutation.BuildIDs()) > 0 { + return errors.New(`ent: clearing a required unique edge "BuildTag.build"`) + } + return nil +} + +// Modify adds a statement modifier for attaching custom logic to the UPDATE statement. +func (btu *BuildTagUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *BuildTagUpdate { + btu.modifiers = append(btu.modifiers, modifiers...) + return btu +} + +func (btu *BuildTagUpdate) sqlSave(ctx context.Context) (n int, err error) { + if err := btu.check(); err != nil { + return n, err + } + _spec := sqlgraph.NewUpdateSpec(buildtag.Table, buildtag.Columns, sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64)) + if ps := btu.mutation.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + _spec.AddModifiers(btu.modifiers...) + if n, err = sqlgraph.UpdateNodes(ctx, btu.driver, _spec); err != nil { + if _, ok := err.(*sqlgraph.NotFoundError); ok { + err = &NotFoundError{buildtag.Label} + } else if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return 0, err + } + btu.mutation.done = true + return n, nil +} + +// BuildTagUpdateOne is the builder for updating a single BuildTag entity. +type BuildTagUpdateOne struct { + config + fields []string + hooks []Hook + mutation *BuildTagMutation + modifiers []func(*sql.UpdateBuilder) +} + +// Mutation returns the BuildTagMutation object of the builder. +func (btuo *BuildTagUpdateOne) Mutation() *BuildTagMutation { + return btuo.mutation +} + +// Where appends a list predicates to the BuildTagUpdate builder. +func (btuo *BuildTagUpdateOne) Where(ps ...predicate.BuildTag) *BuildTagUpdateOne { + btuo.mutation.Where(ps...) + return btuo +} + +// Select allows selecting one or more fields (columns) of the returned entity. +// The default is selecting all fields defined in the entity schema. +func (btuo *BuildTagUpdateOne) Select(field string, fields ...string) *BuildTagUpdateOne { + btuo.fields = append([]string{field}, fields...) + return btuo +} + +// Save executes the query and returns the updated BuildTag entity. +func (btuo *BuildTagUpdateOne) Save(ctx context.Context) (*BuildTag, error) { + return withHooks(ctx, btuo.sqlSave, btuo.mutation, btuo.hooks) +} + +// SaveX is like Save, but panics if an error occurs. +func (btuo *BuildTagUpdateOne) SaveX(ctx context.Context) *BuildTag { + node, err := btuo.Save(ctx) + if err != nil { + panic(err) + } + return node +} + +// Exec executes the query on the entity. +func (btuo *BuildTagUpdateOne) Exec(ctx context.Context) error { + _, err := btuo.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (btuo *BuildTagUpdateOne) ExecX(ctx context.Context) { + if err := btuo.Exec(ctx); err != nil { + panic(err) + } +} + +// check runs all checks and user-defined validators on the builder. +func (btuo *BuildTagUpdateOne) check() error { + if btuo.mutation.BuildCleared() && len(btuo.mutation.BuildIDs()) > 0 { + return errors.New(`ent: clearing a required unique edge "BuildTag.build"`) + } + return nil +} + +// Modify adds a statement modifier for attaching custom logic to the UPDATE statement. +func (btuo *BuildTagUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *BuildTagUpdateOne { + btuo.modifiers = append(btuo.modifiers, modifiers...) + return btuo +} + +func (btuo *BuildTagUpdateOne) sqlSave(ctx context.Context) (_node *BuildTag, err error) { + if err := btuo.check(); err != nil { + return _node, err + } + _spec := sqlgraph.NewUpdateSpec(buildtag.Table, buildtag.Columns, sqlgraph.NewFieldSpec(buildtag.FieldID, field.TypeInt64)) + id, ok := btuo.mutation.ID() + if !ok { + return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "BuildTag.id" for update`)} + } + _spec.Node.ID.Value = id + if fields := btuo.fields; len(fields) > 0 { + _spec.Node.Columns = make([]string, 0, len(fields)) + _spec.Node.Columns = append(_spec.Node.Columns, buildtag.FieldID) + for _, f := range fields { + if !buildtag.ValidColumn(f) { + return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} + } + if f != buildtag.FieldID { + _spec.Node.Columns = append(_spec.Node.Columns, f) + } + } + } + if ps := btuo.mutation.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + _spec.AddModifiers(btuo.modifiers...) + _node = &BuildTag{config: btuo.config} + _spec.Assign = _node.assignValues + _spec.ScanValues = _node.scanValues + if err = sqlgraph.UpdateNode(ctx, btuo.driver, _spec); err != nil { + if _, ok := err.(*sqlgraph.NotFoundError); ok { + err = &NotFoundError{buildtag.Label} + } else if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return nil, err + } + btuo.mutation.done = true + return _node, nil +} diff --git a/ent/gen/ent/client.go b/ent/gen/ent/client.go index fef6819c..2a90f42a 100644 --- a/ent/gen/ent/client.go +++ b/ent/gen/ent/client.go @@ -25,6 +25,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/buildlogchunk" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/eventmetadata" @@ -32,6 +33,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -76,6 +78,8 @@ type Client struct { BuildGraphMetrics *BuildGraphMetricsClient // BuildLogChunk is the client for interacting with the BuildLogChunk builders. BuildLogChunk *BuildLogChunkClient + // BuildTag is the client for interacting with the BuildTag builders. + BuildTag *BuildTagClient // Configuration is the client for interacting with the Configuration builders. Configuration *ConfigurationClient // ConnectionMetadata is the client for interacting with the ConnectionMetadata builders. @@ -90,6 +94,8 @@ type Client struct { InstanceName *InstanceNameClient // InvocationFiles is the client for interacting with the InvocationFiles builders. InvocationFiles *InvocationFilesClient + // InvocationTag is the client for interacting with the InvocationTag builders. + InvocationTag *InvocationTagClient // InvocationTarget is the client for interacting with the InvocationTarget builders. InvocationTarget *InvocationTargetClient // MemoryMetrics is the client for interacting with the MemoryMetrics builders. @@ -143,6 +149,7 @@ func (c *Client) init() { c.Build = NewBuildClient(c.config) c.BuildGraphMetrics = NewBuildGraphMetricsClient(c.config) c.BuildLogChunk = NewBuildLogChunkClient(c.config) + c.BuildTag = NewBuildTagClient(c.config) c.Configuration = NewConfigurationClient(c.config) c.ConnectionMetadata = NewConnectionMetadataClient(c.config) c.EventMetadata = NewEventMetadataClient(c.config) @@ -150,6 +157,7 @@ func (c *Client) init() { c.IncompleteBuildLog = NewIncompleteBuildLogClient(c.config) c.InstanceName = NewInstanceNameClient(c.config) c.InvocationFiles = NewInvocationFilesClient(c.config) + c.InvocationTag = NewInvocationTagClient(c.config) c.InvocationTarget = NewInvocationTargetClient(c.config) c.MemoryMetrics = NewMemoryMetricsClient(c.config) c.Metrics = NewMetricsClient(c.config) @@ -267,6 +275,7 @@ func (c *Client) Tx(ctx context.Context) (*Tx, error) { Build: NewBuildClient(cfg), BuildGraphMetrics: NewBuildGraphMetricsClient(cfg), BuildLogChunk: NewBuildLogChunkClient(cfg), + BuildTag: NewBuildTagClient(cfg), Configuration: NewConfigurationClient(cfg), ConnectionMetadata: NewConnectionMetadataClient(cfg), EventMetadata: NewEventMetadataClient(cfg), @@ -274,6 +283,7 @@ func (c *Client) Tx(ctx context.Context) (*Tx, error) { IncompleteBuildLog: NewIncompleteBuildLogClient(cfg), InstanceName: NewInstanceNameClient(cfg), InvocationFiles: NewInvocationFilesClient(cfg), + InvocationTag: NewInvocationTagClient(cfg), InvocationTarget: NewInvocationTargetClient(cfg), MemoryMetrics: NewMemoryMetricsClient(cfg), Metrics: NewMetricsClient(cfg), @@ -318,6 +328,7 @@ func (c *Client) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error) Build: NewBuildClient(cfg), BuildGraphMetrics: NewBuildGraphMetricsClient(cfg), BuildLogChunk: NewBuildLogChunkClient(cfg), + BuildTag: NewBuildTagClient(cfg), Configuration: NewConfigurationClient(cfg), ConnectionMetadata: NewConnectionMetadataClient(cfg), EventMetadata: NewEventMetadataClient(cfg), @@ -325,6 +336,7 @@ func (c *Client) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error) IncompleteBuildLog: NewIncompleteBuildLogClient(cfg), InstanceName: NewInstanceNameClient(cfg), InvocationFiles: NewInvocationFilesClient(cfg), + InvocationTag: NewInvocationTagClient(cfg), InvocationTarget: NewInvocationTargetClient(cfg), MemoryMetrics: NewMemoryMetricsClient(cfg), Metrics: NewMetricsClient(cfg), @@ -371,12 +383,12 @@ func (c *Client) Use(hooks ...Hook) { for _, n := range []interface{ Use(...Hook) }{ c.Action, c.ActionCacheStatistics, c.ActionData, c.ActionSummary, c.ArtifactMetrics, c.AuthenticatedUser, c.BazelInvocation, c.Build, - c.BuildGraphMetrics, c.BuildLogChunk, c.Configuration, c.ConnectionMetadata, - c.EventMetadata, c.GarbageMetrics, c.IncompleteBuildLog, c.InstanceName, - c.InvocationFiles, c.InvocationTarget, c.MemoryMetrics, c.Metrics, - c.MissDetail, c.NetworkMetrics, c.RunnerCount, c.SourceControl, - c.SystemNetworkStats, c.Target, c.TargetKindMapping, c.TargetMetrics, - c.TestResult, c.TestSummary, c.TestTarget, c.TimingMetrics, + c.BuildGraphMetrics, c.BuildLogChunk, c.BuildTag, c.Configuration, + c.ConnectionMetadata, c.EventMetadata, c.GarbageMetrics, c.IncompleteBuildLog, + c.InstanceName, c.InvocationFiles, c.InvocationTag, c.InvocationTarget, + c.MemoryMetrics, c.Metrics, c.MissDetail, c.NetworkMetrics, c.RunnerCount, + c.SourceControl, c.SystemNetworkStats, c.Target, c.TargetKindMapping, + c.TargetMetrics, c.TestResult, c.TestSummary, c.TestTarget, c.TimingMetrics, } { n.Use(hooks...) } @@ -388,12 +400,12 @@ func (c *Client) Intercept(interceptors ...Interceptor) { for _, n := range []interface{ Intercept(...Interceptor) }{ c.Action, c.ActionCacheStatistics, c.ActionData, c.ActionSummary, c.ArtifactMetrics, c.AuthenticatedUser, c.BazelInvocation, c.Build, - c.BuildGraphMetrics, c.BuildLogChunk, c.Configuration, c.ConnectionMetadata, - c.EventMetadata, c.GarbageMetrics, c.IncompleteBuildLog, c.InstanceName, - c.InvocationFiles, c.InvocationTarget, c.MemoryMetrics, c.Metrics, - c.MissDetail, c.NetworkMetrics, c.RunnerCount, c.SourceControl, - c.SystemNetworkStats, c.Target, c.TargetKindMapping, c.TargetMetrics, - c.TestResult, c.TestSummary, c.TestTarget, c.TimingMetrics, + c.BuildGraphMetrics, c.BuildLogChunk, c.BuildTag, c.Configuration, + c.ConnectionMetadata, c.EventMetadata, c.GarbageMetrics, c.IncompleteBuildLog, + c.InstanceName, c.InvocationFiles, c.InvocationTag, c.InvocationTarget, + c.MemoryMetrics, c.Metrics, c.MissDetail, c.NetworkMetrics, c.RunnerCount, + c.SourceControl, c.SystemNetworkStats, c.Target, c.TargetKindMapping, + c.TargetMetrics, c.TestResult, c.TestSummary, c.TestTarget, c.TimingMetrics, } { n.Intercept(interceptors...) } @@ -422,6 +434,8 @@ func (c *Client) Mutate(ctx context.Context, m Mutation) (Value, error) { return c.BuildGraphMetrics.mutate(ctx, m) case *BuildLogChunkMutation: return c.BuildLogChunk.mutate(ctx, m) + case *BuildTagMutation: + return c.BuildTag.mutate(ctx, m) case *ConfigurationMutation: return c.Configuration.mutate(ctx, m) case *ConnectionMetadataMutation: @@ -436,6 +450,8 @@ func (c *Client) Mutate(ctx context.Context, m Mutation) (Value, error) { return c.InstanceName.mutate(ctx, m) case *InvocationFilesMutation: return c.InvocationFiles.mutate(ctx, m) + case *InvocationTagMutation: + return c.InvocationTag.mutate(ctx, m) case *InvocationTargetMutation: return c.InvocationTarget.mutate(ctx, m) case *MemoryMetricsMutation: @@ -1602,6 +1618,22 @@ func (c *BazelInvocationClient) QueryAuthenticatedUser(bi *BazelInvocation) *Aut return query } +// QueryTags queries the tags edge of a BazelInvocation. +func (c *BazelInvocationClient) QueryTags(bi *BazelInvocation) *InvocationTagQuery { + query := (&InvocationTagClient{config: c.config}).Query() + query.path = func(context.Context) (fromV *sql.Selector, _ error) { + id := bi.ID + step := sqlgraph.NewStep( + sqlgraph.From(bazelinvocation.Table, bazelinvocation.FieldID, id), + sqlgraph.To(invocationtag.Table, invocationtag.FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, bazelinvocation.TagsTable, bazelinvocation.TagsColumn), + ) + fromV = sqlgraph.Neighbors(bi.driver.Dialect(), step) + return fromV, nil + } + return query +} + // QueryEventMetadata queries the event_metadata edge of a BazelInvocation. func (c *BazelInvocationClient) QueryEventMetadata(bi *BazelInvocation) *EventMetadataQuery { query := (&EventMetadataClient{config: c.config}).Query() @@ -1770,7 +1802,7 @@ func (c *BazelInvocationClient) QuerySourceControl(bi *BazelInvocation) *SourceC step := sqlgraph.NewStep( sqlgraph.From(bazelinvocation.Table, bazelinvocation.FieldID, id), sqlgraph.To(sourcecontrol.Table, sourcecontrol.FieldID), - sqlgraph.Edge(sqlgraph.O2O, false, bazelinvocation.SourceControlTable, bazelinvocation.SourceControlColumn), + sqlgraph.Edge(sqlgraph.O2M, false, bazelinvocation.SourceControlTable, bazelinvocation.SourceControlColumn), ) fromV = sqlgraph.Neighbors(bi.driver.Dialect(), step) return fromV, nil @@ -1944,6 +1976,22 @@ func (c *BuildClient) QueryInvocations(b *Build) *BazelInvocationQuery { return query } +// QueryTags queries the tags edge of a Build. +func (c *BuildClient) QueryTags(b *Build) *BuildTagQuery { + query := (&BuildTagClient{config: c.config}).Query() + query.path = func(context.Context) (fromV *sql.Selector, _ error) { + id := b.ID + step := sqlgraph.NewStep( + sqlgraph.From(build.Table, build.FieldID, id), + sqlgraph.To(buildtag.Table, buildtag.FieldID), + sqlgraph.Edge(sqlgraph.O2M, false, build.TagsTable, build.TagsColumn), + ) + fromV = sqlgraph.Neighbors(b.driver.Dialect(), step) + return fromV, nil + } + return query +} + // Hooks returns the client hooks. func (c *BuildClient) Hooks() []Hook { hooks := c.hooks.Build @@ -2268,6 +2316,155 @@ func (c *BuildLogChunkClient) mutate(ctx context.Context, m *BuildLogChunkMutati } } +// BuildTagClient is a client for the BuildTag schema. +type BuildTagClient struct { + config +} + +// NewBuildTagClient returns a client for the BuildTag from the given config. +func NewBuildTagClient(c config) *BuildTagClient { + return &BuildTagClient{config: c} +} + +// Use adds a list of mutation hooks to the hooks stack. +// A call to `Use(f, g, h)` equals to `buildtag.Hooks(f(g(h())))`. +func (c *BuildTagClient) Use(hooks ...Hook) { + c.hooks.BuildTag = append(c.hooks.BuildTag, hooks...) +} + +// Intercept adds a list of query interceptors to the interceptors stack. +// A call to `Intercept(f, g, h)` equals to `buildtag.Intercept(f(g(h())))`. +func (c *BuildTagClient) Intercept(interceptors ...Interceptor) { + c.inters.BuildTag = append(c.inters.BuildTag, interceptors...) +} + +// Create returns a builder for creating a BuildTag entity. +func (c *BuildTagClient) Create() *BuildTagCreate { + mutation := newBuildTagMutation(c.config, OpCreate) + return &BuildTagCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// CreateBulk returns a builder for creating a bulk of BuildTag entities. +func (c *BuildTagClient) CreateBulk(builders ...*BuildTagCreate) *BuildTagCreateBulk { + return &BuildTagCreateBulk{config: c.config, builders: builders} +} + +// MapCreateBulk creates a bulk creation builder from the given slice. For each item in the slice, the function creates +// a builder and applies setFunc on it. +func (c *BuildTagClient) MapCreateBulk(slice any, setFunc func(*BuildTagCreate, int)) *BuildTagCreateBulk { + rv := reflect.ValueOf(slice) + if rv.Kind() != reflect.Slice { + return &BuildTagCreateBulk{err: fmt.Errorf("calling to BuildTagClient.MapCreateBulk with wrong type %T, need slice", slice)} + } + builders := make([]*BuildTagCreate, rv.Len()) + for i := 0; i < rv.Len(); i++ { + builders[i] = c.Create() + setFunc(builders[i], i) + } + return &BuildTagCreateBulk{config: c.config, builders: builders} +} + +// Update returns an update builder for BuildTag. +func (c *BuildTagClient) Update() *BuildTagUpdate { + mutation := newBuildTagMutation(c.config, OpUpdate) + return &BuildTagUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// UpdateOne returns an update builder for the given entity. +func (c *BuildTagClient) UpdateOne(bt *BuildTag) *BuildTagUpdateOne { + mutation := newBuildTagMutation(c.config, OpUpdateOne, withBuildTag(bt)) + return &BuildTagUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// UpdateOneID returns an update builder for the given id. +func (c *BuildTagClient) UpdateOneID(id int64) *BuildTagUpdateOne { + mutation := newBuildTagMutation(c.config, OpUpdateOne, withBuildTagID(id)) + return &BuildTagUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// Delete returns a delete builder for BuildTag. +func (c *BuildTagClient) Delete() *BuildTagDelete { + mutation := newBuildTagMutation(c.config, OpDelete) + return &BuildTagDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// DeleteOne returns a builder for deleting the given entity. +func (c *BuildTagClient) DeleteOne(bt *BuildTag) *BuildTagDeleteOne { + return c.DeleteOneID(bt.ID) +} + +// DeleteOneID returns a builder for deleting the given entity by its id. +func (c *BuildTagClient) DeleteOneID(id int64) *BuildTagDeleteOne { + builder := c.Delete().Where(buildtag.ID(id)) + builder.mutation.id = &id + builder.mutation.op = OpDeleteOne + return &BuildTagDeleteOne{builder} +} + +// Query returns a query builder for BuildTag. +func (c *BuildTagClient) Query() *BuildTagQuery { + return &BuildTagQuery{ + config: c.config, + ctx: &QueryContext{Type: TypeBuildTag}, + inters: c.Interceptors(), + } +} + +// Get returns a BuildTag entity by its id. +func (c *BuildTagClient) Get(ctx context.Context, id int64) (*BuildTag, error) { + return c.Query().Where(buildtag.ID(id)).Only(ctx) +} + +// GetX is like Get, but panics if an error occurs. +func (c *BuildTagClient) GetX(ctx context.Context, id int64) *BuildTag { + obj, err := c.Get(ctx, id) + if err != nil { + panic(err) + } + return obj +} + +// QueryBuild queries the build edge of a BuildTag. +func (c *BuildTagClient) QueryBuild(bt *BuildTag) *BuildQuery { + query := (&BuildClient{config: c.config}).Query() + query.path = func(context.Context) (fromV *sql.Selector, _ error) { + id := bt.ID + step := sqlgraph.NewStep( + sqlgraph.From(buildtag.Table, buildtag.FieldID, id), + sqlgraph.To(build.Table, build.FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, buildtag.BuildTable, buildtag.BuildColumn), + ) + fromV = sqlgraph.Neighbors(bt.driver.Dialect(), step) + return fromV, nil + } + return query +} + +// Hooks returns the client hooks. +func (c *BuildTagClient) Hooks() []Hook { + return c.hooks.BuildTag +} + +// Interceptors returns the client interceptors. +func (c *BuildTagClient) Interceptors() []Interceptor { + return c.inters.BuildTag +} + +func (c *BuildTagClient) mutate(ctx context.Context, m *BuildTagMutation) (Value, error) { + switch m.Op() { + case OpCreate: + return (&BuildTagCreate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx) + case OpUpdate: + return (&BuildTagUpdate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx) + case OpUpdateOne: + return (&BuildTagUpdateOne{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx) + case OpDelete, OpDeleteOne: + return (&BuildTagDelete{config: c.config, hooks: c.Hooks(), mutation: m}).Exec(ctx) + default: + return nil, fmt.Errorf("ent: unknown BuildTag mutation op: %q", m.Op()) + } +} + // ConfigurationClient is a client for the Configuration schema. type ConfigurationClient struct { config @@ -3375,6 +3572,155 @@ func (c *InvocationFilesClient) mutate(ctx context.Context, m *InvocationFilesMu } } +// InvocationTagClient is a client for the InvocationTag schema. +type InvocationTagClient struct { + config +} + +// NewInvocationTagClient returns a client for the InvocationTag from the given config. +func NewInvocationTagClient(c config) *InvocationTagClient { + return &InvocationTagClient{config: c} +} + +// Use adds a list of mutation hooks to the hooks stack. +// A call to `Use(f, g, h)` equals to `invocationtag.Hooks(f(g(h())))`. +func (c *InvocationTagClient) Use(hooks ...Hook) { + c.hooks.InvocationTag = append(c.hooks.InvocationTag, hooks...) +} + +// Intercept adds a list of query interceptors to the interceptors stack. +// A call to `Intercept(f, g, h)` equals to `invocationtag.Intercept(f(g(h())))`. +func (c *InvocationTagClient) Intercept(interceptors ...Interceptor) { + c.inters.InvocationTag = append(c.inters.InvocationTag, interceptors...) +} + +// Create returns a builder for creating a InvocationTag entity. +func (c *InvocationTagClient) Create() *InvocationTagCreate { + mutation := newInvocationTagMutation(c.config, OpCreate) + return &InvocationTagCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// CreateBulk returns a builder for creating a bulk of InvocationTag entities. +func (c *InvocationTagClient) CreateBulk(builders ...*InvocationTagCreate) *InvocationTagCreateBulk { + return &InvocationTagCreateBulk{config: c.config, builders: builders} +} + +// MapCreateBulk creates a bulk creation builder from the given slice. For each item in the slice, the function creates +// a builder and applies setFunc on it. +func (c *InvocationTagClient) MapCreateBulk(slice any, setFunc func(*InvocationTagCreate, int)) *InvocationTagCreateBulk { + rv := reflect.ValueOf(slice) + if rv.Kind() != reflect.Slice { + return &InvocationTagCreateBulk{err: fmt.Errorf("calling to InvocationTagClient.MapCreateBulk with wrong type %T, need slice", slice)} + } + builders := make([]*InvocationTagCreate, rv.Len()) + for i := 0; i < rv.Len(); i++ { + builders[i] = c.Create() + setFunc(builders[i], i) + } + return &InvocationTagCreateBulk{config: c.config, builders: builders} +} + +// Update returns an update builder for InvocationTag. +func (c *InvocationTagClient) Update() *InvocationTagUpdate { + mutation := newInvocationTagMutation(c.config, OpUpdate) + return &InvocationTagUpdate{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// UpdateOne returns an update builder for the given entity. +func (c *InvocationTagClient) UpdateOne(it *InvocationTag) *InvocationTagUpdateOne { + mutation := newInvocationTagMutation(c.config, OpUpdateOne, withInvocationTag(it)) + return &InvocationTagUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// UpdateOneID returns an update builder for the given id. +func (c *InvocationTagClient) UpdateOneID(id int64) *InvocationTagUpdateOne { + mutation := newInvocationTagMutation(c.config, OpUpdateOne, withInvocationTagID(id)) + return &InvocationTagUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// Delete returns a delete builder for InvocationTag. +func (c *InvocationTagClient) Delete() *InvocationTagDelete { + mutation := newInvocationTagMutation(c.config, OpDelete) + return &InvocationTagDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} +} + +// DeleteOne returns a builder for deleting the given entity. +func (c *InvocationTagClient) DeleteOne(it *InvocationTag) *InvocationTagDeleteOne { + return c.DeleteOneID(it.ID) +} + +// DeleteOneID returns a builder for deleting the given entity by its id. +func (c *InvocationTagClient) DeleteOneID(id int64) *InvocationTagDeleteOne { + builder := c.Delete().Where(invocationtag.ID(id)) + builder.mutation.id = &id + builder.mutation.op = OpDeleteOne + return &InvocationTagDeleteOne{builder} +} + +// Query returns a query builder for InvocationTag. +func (c *InvocationTagClient) Query() *InvocationTagQuery { + return &InvocationTagQuery{ + config: c.config, + ctx: &QueryContext{Type: TypeInvocationTag}, + inters: c.Interceptors(), + } +} + +// Get returns a InvocationTag entity by its id. +func (c *InvocationTagClient) Get(ctx context.Context, id int64) (*InvocationTag, error) { + return c.Query().Where(invocationtag.ID(id)).Only(ctx) +} + +// GetX is like Get, but panics if an error occurs. +func (c *InvocationTagClient) GetX(ctx context.Context, id int64) *InvocationTag { + obj, err := c.Get(ctx, id) + if err != nil { + panic(err) + } + return obj +} + +// QueryBazelInvocation queries the bazel_invocation edge of a InvocationTag. +func (c *InvocationTagClient) QueryBazelInvocation(it *InvocationTag) *BazelInvocationQuery { + query := (&BazelInvocationClient{config: c.config}).Query() + query.path = func(context.Context) (fromV *sql.Selector, _ error) { + id := it.ID + step := sqlgraph.NewStep( + sqlgraph.From(invocationtag.Table, invocationtag.FieldID, id), + sqlgraph.To(bazelinvocation.Table, bazelinvocation.FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, invocationtag.BazelInvocationTable, invocationtag.BazelInvocationColumn), + ) + fromV = sqlgraph.Neighbors(it.driver.Dialect(), step) + return fromV, nil + } + return query +} + +// Hooks returns the client hooks. +func (c *InvocationTagClient) Hooks() []Hook { + return c.hooks.InvocationTag +} + +// Interceptors returns the client interceptors. +func (c *InvocationTagClient) Interceptors() []Interceptor { + return c.inters.InvocationTag +} + +func (c *InvocationTagClient) mutate(ctx context.Context, m *InvocationTagMutation) (Value, error) { + switch m.Op() { + case OpCreate: + return (&InvocationTagCreate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx) + case OpUpdate: + return (&InvocationTagUpdate{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx) + case OpUpdateOne: + return (&InvocationTagUpdateOne{config: c.config, hooks: c.Hooks(), mutation: m}).Save(ctx) + case OpDelete, OpDeleteOne: + return (&InvocationTagDelete{config: c.config, hooks: c.Hooks(), mutation: m}).Exec(ctx) + default: + return nil, fmt.Errorf("ent: unknown InvocationTag mutation op: %q", m.Op()) + } +} + // InvocationTargetClient is a client for the InvocationTarget schema. type InvocationTargetClient struct { config @@ -4577,7 +4923,7 @@ func (c *SourceControlClient) QueryBazelInvocation(sc *SourceControl) *BazelInvo step := sqlgraph.NewStep( sqlgraph.From(sourcecontrol.Table, sourcecontrol.FieldID, id), sqlgraph.To(bazelinvocation.Table, bazelinvocation.FieldID), - sqlgraph.Edge(sqlgraph.O2O, true, sourcecontrol.BazelInvocationTable, sourcecontrol.BazelInvocationColumn), + sqlgraph.Edge(sqlgraph.M2O, true, sourcecontrol.BazelInvocationTable, sourcecontrol.BazelInvocationColumn), ) fromV = sqlgraph.Neighbors(sc.driver.Dialect(), step) return fromV, nil @@ -5890,20 +6236,21 @@ type ( hooks struct { Action, ActionCacheStatistics, ActionData, ActionSummary, ArtifactMetrics, AuthenticatedUser, BazelInvocation, Build, BuildGraphMetrics, BuildLogChunk, - Configuration, ConnectionMetadata, EventMetadata, GarbageMetrics, - IncompleteBuildLog, InstanceName, InvocationFiles, InvocationTarget, - MemoryMetrics, Metrics, MissDetail, NetworkMetrics, RunnerCount, SourceControl, - SystemNetworkStats, Target, TargetKindMapping, TargetMetrics, TestResult, - TestSummary, TestTarget, TimingMetrics []ent.Hook + BuildTag, Configuration, ConnectionMetadata, EventMetadata, GarbageMetrics, + IncompleteBuildLog, InstanceName, InvocationFiles, InvocationTag, + InvocationTarget, MemoryMetrics, Metrics, MissDetail, NetworkMetrics, + RunnerCount, SourceControl, SystemNetworkStats, Target, TargetKindMapping, + TargetMetrics, TestResult, TestSummary, TestTarget, TimingMetrics []ent.Hook } inters struct { Action, ActionCacheStatistics, ActionData, ActionSummary, ArtifactMetrics, AuthenticatedUser, BazelInvocation, Build, BuildGraphMetrics, BuildLogChunk, - Configuration, ConnectionMetadata, EventMetadata, GarbageMetrics, - IncompleteBuildLog, InstanceName, InvocationFiles, InvocationTarget, - MemoryMetrics, Metrics, MissDetail, NetworkMetrics, RunnerCount, SourceControl, - SystemNetworkStats, Target, TargetKindMapping, TargetMetrics, TestResult, - TestSummary, TestTarget, TimingMetrics []ent.Interceptor + BuildTag, Configuration, ConnectionMetadata, EventMetadata, GarbageMetrics, + IncompleteBuildLog, InstanceName, InvocationFiles, InvocationTag, + InvocationTarget, MemoryMetrics, Metrics, MissDetail, NetworkMetrics, + RunnerCount, SourceControl, SystemNetworkStats, Target, TargetKindMapping, + TargetMetrics, TestResult, TestSummary, TestTarget, + TimingMetrics []ent.Interceptor } ) diff --git a/ent/gen/ent/ent.go b/ent/gen/ent/ent.go index 0055b166..07a9772e 100644 --- a/ent/gen/ent/ent.go +++ b/ent/gen/ent/ent.go @@ -22,6 +22,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/buildlogchunk" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/eventmetadata" @@ -29,6 +30,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -114,6 +116,7 @@ func checkColumn(table, column string) error { build.Table: build.ValidColumn, buildgraphmetrics.Table: buildgraphmetrics.ValidColumn, buildlogchunk.Table: buildlogchunk.ValidColumn, + buildtag.Table: buildtag.ValidColumn, configuration.Table: configuration.ValidColumn, connectionmetadata.Table: connectionmetadata.ValidColumn, eventmetadata.Table: eventmetadata.ValidColumn, @@ -121,6 +124,7 @@ func checkColumn(table, column string) error { incompletebuildlog.Table: incompletebuildlog.ValidColumn, instancename.Table: instancename.ValidColumn, invocationfiles.Table: invocationfiles.ValidColumn, + invocationtag.Table: invocationtag.ValidColumn, invocationtarget.Table: invocationtarget.ValidColumn, memorymetrics.Table: memorymetrics.ValidColumn, metrics.Table: metrics.ValidColumn, diff --git a/ent/gen/ent/entql.go b/ent/gen/ent/entql.go index 934fa174..3013de40 100644 --- a/ent/gen/ent/entql.go +++ b/ent/gen/ent/entql.go @@ -13,6 +13,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/buildlogchunk" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/eventmetadata" @@ -20,6 +21,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -45,7 +47,7 @@ import ( // schemaGraph holds a representation of ent/schema at runtime. var schemaGraph = func() *sqlgraph.Schema { - graph := &sqlgraph.Schema{Nodes: make([]*sqlgraph.Node, 32)} + graph := &sqlgraph.Schema{Nodes: make([]*sqlgraph.Node, 34)} graph.Nodes[0] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: action.Table, @@ -184,14 +186,9 @@ var schemaGraph = func() *sqlgraph.Schema { bazelinvocation.FieldCreatedTimestamp: {Type: field.TypeTime, Column: bazelinvocation.FieldCreatedTimestamp}, bazelinvocation.FieldStartedAt: {Type: field.TypeTime, Column: bazelinvocation.FieldStartedAt}, bazelinvocation.FieldEndedAt: {Type: field.TypeTime, Column: bazelinvocation.FieldEndedAt}, - bazelinvocation.FieldChangeNumber: {Type: field.TypeInt, Column: bazelinvocation.FieldChangeNumber}, - bazelinvocation.FieldPatchsetNumber: {Type: field.TypeInt, Column: bazelinvocation.FieldPatchsetNumber}, bazelinvocation.FieldBepCompleted: {Type: field.TypeBool, Column: bazelinvocation.FieldBepCompleted}, - bazelinvocation.FieldStepLabel: {Type: field.TypeString, Column: bazelinvocation.FieldStepLabel}, - bazelinvocation.FieldUserEmail: {Type: field.TypeString, Column: bazelinvocation.FieldUserEmail}, - bazelinvocation.FieldUserLdap: {Type: field.TypeString, Column: bazelinvocation.FieldUserLdap}, + bazelinvocation.FieldUsername: {Type: field.TypeString, Column: bazelinvocation.FieldUsername}, bazelinvocation.FieldHostname: {Type: field.TypeString, Column: bazelinvocation.FieldHostname}, - bazelinvocation.FieldIsCiWorker: {Type: field.TypeBool, Column: bazelinvocation.FieldIsCiWorker}, bazelinvocation.FieldNumFetches: {Type: field.TypeInt64, Column: bazelinvocation.FieldNumFetches}, bazelinvocation.FieldProfileName: {Type: field.TypeString, Column: bazelinvocation.FieldProfileName}, bazelinvocation.FieldBazelVersion: {Type: field.TypeString, Column: bazelinvocation.FieldBazelVersion}, @@ -217,7 +214,6 @@ var schemaGraph = func() *sqlgraph.Schema { }, Type: "Build", Fields: map[string]*sqlgraph.FieldSpec{ - build.FieldBuildURL: {Type: field.TypeString, Column: build.FieldBuildURL}, build.FieldBuildUUID: {Type: field.TypeUUID, Column: build.FieldBuildUUID}, build.FieldTimestamp: {Type: field.TypeTime, Column: build.FieldTimestamp}, }, @@ -262,6 +258,22 @@ var schemaGraph = func() *sqlgraph.Schema { }, } graph.Nodes[10] = &sqlgraph.Node{ + NodeSpec: sqlgraph.NodeSpec{ + Table: buildtag.Table, + Columns: buildtag.Columns, + ID: &sqlgraph.FieldSpec{ + Type: field.TypeInt64, + Column: buildtag.FieldID, + }, + }, + Type: "BuildTag", + Fields: map[string]*sqlgraph.FieldSpec{ + buildtag.FieldBuildID: {Type: field.TypeInt64, Column: buildtag.FieldBuildID}, + buildtag.FieldKey: {Type: field.TypeString, Column: buildtag.FieldKey}, + buildtag.FieldValue: {Type: field.TypeString, Column: buildtag.FieldValue}, + }, + } + graph.Nodes[11] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: configuration.Table, Columns: configuration.Columns, @@ -281,7 +293,7 @@ var schemaGraph = func() *sqlgraph.Schema { configuration.FieldBazelInvocationID: {Type: field.TypeInt64, Column: configuration.FieldBazelInvocationID}, }, } - graph.Nodes[11] = &sqlgraph.Node{ + graph.Nodes[12] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: connectionmetadata.Table, Columns: connectionmetadata.Columns, @@ -295,7 +307,7 @@ var schemaGraph = func() *sqlgraph.Schema { connectionmetadata.FieldConnectionLastOpenAt: {Type: field.TypeTime, Column: connectionmetadata.FieldConnectionLastOpenAt}, }, } - graph.Nodes[12] = &sqlgraph.Node{ + graph.Nodes[13] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: eventmetadata.Table, Columns: eventmetadata.Columns, @@ -312,7 +324,7 @@ var schemaGraph = func() *sqlgraph.Schema { eventmetadata.FieldBazelInvocationID: {Type: field.TypeInt64, Column: eventmetadata.FieldBazelInvocationID}, }, } - graph.Nodes[13] = &sqlgraph.Node{ + graph.Nodes[14] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: garbagemetrics.Table, Columns: garbagemetrics.Columns, @@ -327,7 +339,7 @@ var schemaGraph = func() *sqlgraph.Schema { garbagemetrics.FieldGarbageCollected: {Type: field.TypeInt64, Column: garbagemetrics.FieldGarbageCollected}, }, } - graph.Nodes[14] = &sqlgraph.Node{ + graph.Nodes[15] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: incompletebuildlog.Table, Columns: incompletebuildlog.Columns, @@ -343,7 +355,7 @@ var schemaGraph = func() *sqlgraph.Schema { incompletebuildlog.FieldBazelInvocationID: {Type: field.TypeInt64, Column: incompletebuildlog.FieldBazelInvocationID}, }, } - graph.Nodes[15] = &sqlgraph.Node{ + graph.Nodes[16] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: instancename.Table, Columns: instancename.Columns, @@ -357,7 +369,7 @@ var schemaGraph = func() *sqlgraph.Schema { instancename.FieldName: {Type: field.TypeString, Column: instancename.FieldName}, }, } - graph.Nodes[16] = &sqlgraph.Node{ + graph.Nodes[17] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: invocationfiles.Table, Columns: invocationfiles.Columns, @@ -375,7 +387,23 @@ var schemaGraph = func() *sqlgraph.Schema { invocationfiles.FieldDigestFunction: {Type: field.TypeString, Column: invocationfiles.FieldDigestFunction}, }, } - graph.Nodes[17] = &sqlgraph.Node{ + graph.Nodes[18] = &sqlgraph.Node{ + NodeSpec: sqlgraph.NodeSpec{ + Table: invocationtag.Table, + Columns: invocationtag.Columns, + ID: &sqlgraph.FieldSpec{ + Type: field.TypeInt64, + Column: invocationtag.FieldID, + }, + }, + Type: "InvocationTag", + Fields: map[string]*sqlgraph.FieldSpec{ + invocationtag.FieldBazelInvocationID: {Type: field.TypeInt64, Column: invocationtag.FieldBazelInvocationID}, + invocationtag.FieldKey: {Type: field.TypeString, Column: invocationtag.FieldKey}, + invocationtag.FieldValue: {Type: field.TypeString, Column: invocationtag.FieldValue}, + }, + } + graph.Nodes[19] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: invocationtarget.Table, Columns: invocationtarget.Columns, @@ -395,7 +423,7 @@ var schemaGraph = func() *sqlgraph.Schema { invocationtarget.FieldAbortReason: {Type: field.TypeEnum, Column: invocationtarget.FieldAbortReason}, }, } - graph.Nodes[18] = &sqlgraph.Node{ + graph.Nodes[20] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: memorymetrics.Table, Columns: memorymetrics.Columns, @@ -411,7 +439,7 @@ var schemaGraph = func() *sqlgraph.Schema { memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: {Type: field.TypeInt64, Column: memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize}, }, } - graph.Nodes[19] = &sqlgraph.Node{ + graph.Nodes[21] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: metrics.Table, Columns: metrics.Columns, @@ -423,7 +451,7 @@ var schemaGraph = func() *sqlgraph.Schema { Type: "Metrics", Fields: map[string]*sqlgraph.FieldSpec{}, } - graph.Nodes[20] = &sqlgraph.Node{ + graph.Nodes[22] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: missdetail.Table, Columns: missdetail.Columns, @@ -438,7 +466,7 @@ var schemaGraph = func() *sqlgraph.Schema { missdetail.FieldCount: {Type: field.TypeInt32, Column: missdetail.FieldCount}, }, } - graph.Nodes[21] = &sqlgraph.Node{ + graph.Nodes[23] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: networkmetrics.Table, Columns: networkmetrics.Columns, @@ -450,7 +478,7 @@ var schemaGraph = func() *sqlgraph.Schema { Type: "NetworkMetrics", Fields: map[string]*sqlgraph.FieldSpec{}, } - graph.Nodes[22] = &sqlgraph.Node{ + graph.Nodes[24] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: runnercount.Table, Columns: runnercount.Columns, @@ -466,7 +494,7 @@ var schemaGraph = func() *sqlgraph.Schema { runnercount.FieldActionsExecuted: {Type: field.TypeInt64, Column: runnercount.FieldActionsExecuted}, }, } - graph.Nodes[23] = &sqlgraph.Node{ + graph.Nodes[25] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: sourcecontrol.Table, Columns: sourcecontrol.Columns, @@ -477,25 +505,15 @@ var schemaGraph = func() *sqlgraph.Schema { }, Type: "SourceControl", Fields: map[string]*sqlgraph.FieldSpec{ - sourcecontrol.FieldProvider: {Type: field.TypeEnum, Column: sourcecontrol.FieldProvider}, - sourcecontrol.FieldInstanceURL: {Type: field.TypeString, Column: sourcecontrol.FieldInstanceURL}, - sourcecontrol.FieldRepo: {Type: field.TypeString, Column: sourcecontrol.FieldRepo}, - sourcecontrol.FieldRefs: {Type: field.TypeString, Column: sourcecontrol.FieldRefs}, - sourcecontrol.FieldCommitSha: {Type: field.TypeString, Column: sourcecontrol.FieldCommitSha}, - sourcecontrol.FieldActor: {Type: field.TypeString, Column: sourcecontrol.FieldActor}, - sourcecontrol.FieldEventName: {Type: field.TypeString, Column: sourcecontrol.FieldEventName}, - sourcecontrol.FieldWorkflow: {Type: field.TypeString, Column: sourcecontrol.FieldWorkflow}, - sourcecontrol.FieldRunID: {Type: field.TypeString, Column: sourcecontrol.FieldRunID}, - sourcecontrol.FieldRunNumber: {Type: field.TypeString, Column: sourcecontrol.FieldRunNumber}, - sourcecontrol.FieldJob: {Type: field.TypeString, Column: sourcecontrol.FieldJob}, - sourcecontrol.FieldAction: {Type: field.TypeString, Column: sourcecontrol.FieldAction}, - sourcecontrol.FieldRunnerName: {Type: field.TypeString, Column: sourcecontrol.FieldRunnerName}, - sourcecontrol.FieldRunnerArch: {Type: field.TypeString, Column: sourcecontrol.FieldRunnerArch}, - sourcecontrol.FieldRunnerOs: {Type: field.TypeString, Column: sourcecontrol.FieldRunnerOs}, - sourcecontrol.FieldWorkspace: {Type: field.TypeString, Column: sourcecontrol.FieldWorkspace}, + sourcecontrol.FieldRepo: {Type: field.TypeString, Column: sourcecontrol.FieldRepo}, + sourcecontrol.FieldRepoURL: {Type: field.TypeString, Column: sourcecontrol.FieldRepoURL}, + sourcecontrol.FieldRef: {Type: field.TypeString, Column: sourcecontrol.FieldRef}, + sourcecontrol.FieldRefURL: {Type: field.TypeString, Column: sourcecontrol.FieldRefURL}, + sourcecontrol.FieldCommit: {Type: field.TypeString, Column: sourcecontrol.FieldCommit}, + sourcecontrol.FieldCommitURL: {Type: field.TypeString, Column: sourcecontrol.FieldCommitURL}, }, } - graph.Nodes[24] = &sqlgraph.Node{ + graph.Nodes[26] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: systemnetworkstats.Table, Columns: systemnetworkstats.Columns, @@ -516,7 +534,7 @@ var schemaGraph = func() *sqlgraph.Schema { systemnetworkstats.FieldPeakPacketsRecvPerSec: {Type: field.TypeUint64, Column: systemnetworkstats.FieldPeakPacketsRecvPerSec}, }, } - graph.Nodes[25] = &sqlgraph.Node{ + graph.Nodes[27] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: target.Table, Columns: target.Columns, @@ -532,7 +550,7 @@ var schemaGraph = func() *sqlgraph.Schema { target.FieldTargetKind: {Type: field.TypeString, Column: target.FieldTargetKind}, }, } - graph.Nodes[26] = &sqlgraph.Node{ + graph.Nodes[28] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: targetkindmapping.Table, Columns: targetkindmapping.Columns, @@ -548,7 +566,7 @@ var schemaGraph = func() *sqlgraph.Schema { targetkindmapping.FieldStartTimeInMs: {Type: field.TypeInt64, Column: targetkindmapping.FieldStartTimeInMs}, }, } - graph.Nodes[27] = &sqlgraph.Node{ + graph.Nodes[29] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: targetmetrics.Table, Columns: targetmetrics.Columns, @@ -564,7 +582,7 @@ var schemaGraph = func() *sqlgraph.Schema { targetmetrics.FieldTargetsConfiguredNotIncludingAspects: {Type: field.TypeInt64, Column: targetmetrics.FieldTargetsConfiguredNotIncludingAspects}, }, } - graph.Nodes[28] = &sqlgraph.Node{ + graph.Nodes[30] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: testresult.Table, Columns: testresult.Columns, @@ -591,7 +609,7 @@ var schemaGraph = func() *sqlgraph.Schema { testresult.FieldTimingBreakdown: {Type: field.TypeJSON, Column: testresult.FieldTimingBreakdown}, }, } - graph.Nodes[29] = &sqlgraph.Node{ + graph.Nodes[31] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: testsummary.Table, Columns: testsummary.Columns, @@ -613,7 +631,7 @@ var schemaGraph = func() *sqlgraph.Schema { testsummary.FieldTotalRunDurationInMs: {Type: field.TypeInt64, Column: testsummary.FieldTotalRunDurationInMs}, }, } - graph.Nodes[30] = &sqlgraph.Node{ + graph.Nodes[32] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: testtarget.Table, Columns: testtarget.Columns, @@ -627,7 +645,7 @@ var schemaGraph = func() *sqlgraph.Schema { testtarget.FieldTargetID: {Type: field.TypeInt64, Column: testtarget.FieldTargetID}, }, } - graph.Nodes[31] = &sqlgraph.Node{ + graph.Nodes[33] = &sqlgraph.Node{ NodeSpec: sqlgraph.NodeSpec{ Table: timingmetrics.Table, Columns: timingmetrics.Columns, @@ -813,6 +831,18 @@ var schemaGraph = func() *sqlgraph.Schema { "BazelInvocation", "AuthenticatedUser", ) + graph.MustAddE( + "tags", + &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: bazelinvocation.TagsTable, + Columns: []string{bazelinvocation.TagsColumn}, + Bidi: false, + }, + "BazelInvocation", + "InvocationTag", + ) graph.MustAddE( "event_metadata", &sqlgraph.EdgeSpec{ @@ -936,7 +966,7 @@ var schemaGraph = func() *sqlgraph.Schema { graph.MustAddE( "source_control", &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.O2M, Inverse: false, Table: bazelinvocation.SourceControlTable, Columns: []string{bazelinvocation.SourceControlColumn}, @@ -969,6 +999,18 @@ var schemaGraph = func() *sqlgraph.Schema { "Build", "BazelInvocation", ) + graph.MustAddE( + "tags", + &sqlgraph.EdgeSpec{ + Rel: sqlgraph.O2M, + Inverse: false, + Table: build.TagsTable, + Columns: []string{build.TagsColumn}, + Bidi: false, + }, + "Build", + "BuildTag", + ) graph.MustAddE( "metrics", &sqlgraph.EdgeSpec{ @@ -993,6 +1035,18 @@ var schemaGraph = func() *sqlgraph.Schema { "BuildLogChunk", "BazelInvocation", ) + graph.MustAddE( + "build", + &sqlgraph.EdgeSpec{ + Rel: sqlgraph.M2O, + Inverse: true, + Table: buildtag.BuildTable, + Columns: []string{buildtag.BuildColumn}, + Bidi: false, + }, + "BuildTag", + "Build", + ) graph.MustAddE( "bazel_invocation", &sqlgraph.EdgeSpec{ @@ -1125,6 +1179,18 @@ var schemaGraph = func() *sqlgraph.Schema { "InvocationFiles", "BazelInvocation", ) + graph.MustAddE( + "bazel_invocation", + &sqlgraph.EdgeSpec{ + Rel: sqlgraph.M2O, + Inverse: true, + Table: invocationtag.BazelInvocationTable, + Columns: []string{invocationtag.BazelInvocationColumn}, + Bidi: false, + }, + "InvocationTag", + "BazelInvocation", + ) graph.MustAddE( "bazel_invocation", &sqlgraph.EdgeSpec{ @@ -1344,7 +1410,7 @@ var schemaGraph = func() *sqlgraph.Schema { graph.MustAddE( "bazel_invocation", &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.M2O, Inverse: true, Table: sourcecontrol.BazelInvocationTable, Columns: []string{sourcecontrol.BazelInvocationColumn}, @@ -2197,34 +2263,14 @@ func (f *BazelInvocationFilter) WhereEndedAt(p entql.TimeP) { f.Where(p.Field(bazelinvocation.FieldEndedAt)) } -// WhereChangeNumber applies the entql int predicate on the change_number field. -func (f *BazelInvocationFilter) WhereChangeNumber(p entql.IntP) { - f.Where(p.Field(bazelinvocation.FieldChangeNumber)) -} - -// WherePatchsetNumber applies the entql int predicate on the patchset_number field. -func (f *BazelInvocationFilter) WherePatchsetNumber(p entql.IntP) { - f.Where(p.Field(bazelinvocation.FieldPatchsetNumber)) -} - // WhereBepCompleted applies the entql bool predicate on the bep_completed field. func (f *BazelInvocationFilter) WhereBepCompleted(p entql.BoolP) { f.Where(p.Field(bazelinvocation.FieldBepCompleted)) } -// WhereStepLabel applies the entql string predicate on the step_label field. -func (f *BazelInvocationFilter) WhereStepLabel(p entql.StringP) { - f.Where(p.Field(bazelinvocation.FieldStepLabel)) -} - -// WhereUserEmail applies the entql string predicate on the user_email field. -func (f *BazelInvocationFilter) WhereUserEmail(p entql.StringP) { - f.Where(p.Field(bazelinvocation.FieldUserEmail)) -} - -// WhereUserLdap applies the entql string predicate on the user_ldap field. -func (f *BazelInvocationFilter) WhereUserLdap(p entql.StringP) { - f.Where(p.Field(bazelinvocation.FieldUserLdap)) +// WhereUsername applies the entql string predicate on the username field. +func (f *BazelInvocationFilter) WhereUsername(p entql.StringP) { + f.Where(p.Field(bazelinvocation.FieldUsername)) } // WhereHostname applies the entql string predicate on the hostname field. @@ -2232,11 +2278,6 @@ func (f *BazelInvocationFilter) WhereHostname(p entql.StringP) { f.Where(p.Field(bazelinvocation.FieldHostname)) } -// WhereIsCiWorker applies the entql bool predicate on the is_ci_worker field. -func (f *BazelInvocationFilter) WhereIsCiWorker(p entql.BoolP) { - f.Where(p.Field(bazelinvocation.FieldIsCiWorker)) -} - // WhereNumFetches applies the entql int64 predicate on the num_fetches field. func (f *BazelInvocationFilter) WhereNumFetches(p entql.Int64P) { f.Where(p.Field(bazelinvocation.FieldNumFetches)) @@ -2339,6 +2380,20 @@ func (f *BazelInvocationFilter) WhereHasAuthenticatedUserWith(preds ...predicate }))) } +// WhereHasTags applies a predicate to check if query has an edge tags. +func (f *BazelInvocationFilter) WhereHasTags() { + f.Where(entql.HasEdge("tags")) +} + +// WhereHasTagsWith applies a predicate to check if query has an edge tags with a given conditions (other predicates). +func (f *BazelInvocationFilter) WhereHasTagsWith(preds ...predicate.InvocationTag) { + f.Where(entql.HasEdgeWith("tags", sqlgraph.WrapFunc(func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }))) +} + // WhereHasEventMetadata applies a predicate to check if query has an edge event_metadata. func (f *BazelInvocationFilter) WhereHasEventMetadata() { f.Where(entql.HasEdge("event_metadata")) @@ -2533,11 +2588,6 @@ func (f *BuildFilter) WhereID(p entql.Int64P) { f.Where(p.Field(build.FieldID)) } -// WhereBuildURL applies the entql string predicate on the build_url field. -func (f *BuildFilter) WhereBuildURL(p entql.StringP) { - f.Where(p.Field(build.FieldBuildURL)) -} - // WhereBuildUUID applies the entql [16]byte predicate on the build_uuid field. func (f *BuildFilter) WhereBuildUUID(p entql.ValueP) { f.Where(p.Field(build.FieldBuildUUID)) @@ -2576,6 +2626,20 @@ func (f *BuildFilter) WhereHasInvocationsWith(preds ...predicate.BazelInvocation }))) } +// WhereHasTags applies a predicate to check if query has an edge tags. +func (f *BuildFilter) WhereHasTags() { + f.Where(entql.HasEdge("tags")) +} + +// WhereHasTagsWith applies a predicate to check if query has an edge tags with a given conditions (other predicates). +func (f *BuildFilter) WhereHasTagsWith(preds ...predicate.BuildTag) { + f.Where(entql.HasEdgeWith("tags", sqlgraph.WrapFunc(func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }))) +} + // addPredicate implements the predicateAdder interface. func (bgmq *BuildGraphMetricsQuery) addPredicate(pred func(s *sql.Selector)) { bgmq.predicates = append(bgmq.predicates, pred) @@ -2749,6 +2813,75 @@ func (f *BuildLogChunkFilter) WhereHasBazelInvocationWith(preds ...predicate.Baz }))) } +// addPredicate implements the predicateAdder interface. +func (btq *BuildTagQuery) addPredicate(pred func(s *sql.Selector)) { + btq.predicates = append(btq.predicates, pred) +} + +// Filter returns a Filter implementation to apply filters on the BuildTagQuery builder. +func (btq *BuildTagQuery) Filter() *BuildTagFilter { + return &BuildTagFilter{config: btq.config, predicateAdder: btq} +} + +// addPredicate implements the predicateAdder interface. +func (m *BuildTagMutation) addPredicate(pred func(s *sql.Selector)) { + m.predicates = append(m.predicates, pred) +} + +// Filter returns an entql.Where implementation to apply filters on the BuildTagMutation builder. +func (m *BuildTagMutation) Filter() *BuildTagFilter { + return &BuildTagFilter{config: m.config, predicateAdder: m} +} + +// BuildTagFilter provides a generic filtering capability at runtime for BuildTagQuery. +type BuildTagFilter struct { + predicateAdder + config +} + +// Where applies the entql predicate on the query filter. +func (f *BuildTagFilter) Where(p entql.P) { + f.addPredicate(func(s *sql.Selector) { + if err := schemaGraph.EvalP(schemaGraph.Nodes[10].Type, p, s); err != nil { + s.AddError(err) + } + }) +} + +// WhereID applies the entql int64 predicate on the id field. +func (f *BuildTagFilter) WhereID(p entql.Int64P) { + f.Where(p.Field(buildtag.FieldID)) +} + +// WhereBuildID applies the entql int64 predicate on the build_id field. +func (f *BuildTagFilter) WhereBuildID(p entql.Int64P) { + f.Where(p.Field(buildtag.FieldBuildID)) +} + +// WhereKey applies the entql string predicate on the key field. +func (f *BuildTagFilter) WhereKey(p entql.StringP) { + f.Where(p.Field(buildtag.FieldKey)) +} + +// WhereValue applies the entql string predicate on the value field. +func (f *BuildTagFilter) WhereValue(p entql.StringP) { + f.Where(p.Field(buildtag.FieldValue)) +} + +// WhereHasBuild applies a predicate to check if query has an edge build. +func (f *BuildTagFilter) WhereHasBuild() { + f.Where(entql.HasEdge("build")) +} + +// WhereHasBuildWith applies a predicate to check if query has an edge build with a given conditions (other predicates). +func (f *BuildTagFilter) WhereHasBuildWith(preds ...predicate.Build) { + f.Where(entql.HasEdgeWith("build", sqlgraph.WrapFunc(func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }))) +} + // addPredicate implements the predicateAdder interface. func (cq *ConfigurationQuery) addPredicate(pred func(s *sql.Selector)) { cq.predicates = append(cq.predicates, pred) @@ -2778,7 +2911,7 @@ type ConfigurationFilter struct { // Where applies the entql predicate on the query filter. func (f *ConfigurationFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[10].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[11].Type, p, s); err != nil { s.AddError(err) } }) @@ -2895,7 +3028,7 @@ type ConnectionMetadataFilter struct { // Where applies the entql predicate on the query filter. func (f *ConnectionMetadataFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[11].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[12].Type, p, s); err != nil { s.AddError(err) } }) @@ -2954,7 +3087,7 @@ type EventMetadataFilter struct { // Where applies the entql predicate on the query filter. func (f *EventMetadataFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[12].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[13].Type, p, s); err != nil { s.AddError(err) } }) @@ -3028,7 +3161,7 @@ type GarbageMetricsFilter struct { // Where applies the entql predicate on the query filter. func (f *GarbageMetricsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[13].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[14].Type, p, s); err != nil { s.AddError(err) } }) @@ -3092,7 +3225,7 @@ type IncompleteBuildLogFilter struct { // Where applies the entql predicate on the query filter. func (f *IncompleteBuildLogFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[14].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[15].Type, p, s); err != nil { s.AddError(err) } }) @@ -3161,7 +3294,7 @@ type InstanceNameFilter struct { // Where applies the entql predicate on the query filter. func (f *InstanceNameFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[15].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[16].Type, p, s); err != nil { s.AddError(err) } }) @@ -3248,7 +3381,7 @@ type InvocationFilesFilter struct { // Where applies the entql predicate on the query filter. func (f *InvocationFilesFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[16].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[17].Type, p, s); err != nil { s.AddError(err) } }) @@ -3298,6 +3431,75 @@ func (f *InvocationFilesFilter) WhereHasBazelInvocationWith(preds ...predicate.B }))) } +// addPredicate implements the predicateAdder interface. +func (itq *InvocationTagQuery) addPredicate(pred func(s *sql.Selector)) { + itq.predicates = append(itq.predicates, pred) +} + +// Filter returns a Filter implementation to apply filters on the InvocationTagQuery builder. +func (itq *InvocationTagQuery) Filter() *InvocationTagFilter { + return &InvocationTagFilter{config: itq.config, predicateAdder: itq} +} + +// addPredicate implements the predicateAdder interface. +func (m *InvocationTagMutation) addPredicate(pred func(s *sql.Selector)) { + m.predicates = append(m.predicates, pred) +} + +// Filter returns an entql.Where implementation to apply filters on the InvocationTagMutation builder. +func (m *InvocationTagMutation) Filter() *InvocationTagFilter { + return &InvocationTagFilter{config: m.config, predicateAdder: m} +} + +// InvocationTagFilter provides a generic filtering capability at runtime for InvocationTagQuery. +type InvocationTagFilter struct { + predicateAdder + config +} + +// Where applies the entql predicate on the query filter. +func (f *InvocationTagFilter) Where(p entql.P) { + f.addPredicate(func(s *sql.Selector) { + if err := schemaGraph.EvalP(schemaGraph.Nodes[18].Type, p, s); err != nil { + s.AddError(err) + } + }) +} + +// WhereID applies the entql int64 predicate on the id field. +func (f *InvocationTagFilter) WhereID(p entql.Int64P) { + f.Where(p.Field(invocationtag.FieldID)) +} + +// WhereBazelInvocationID applies the entql int64 predicate on the bazel_invocation_id field. +func (f *InvocationTagFilter) WhereBazelInvocationID(p entql.Int64P) { + f.Where(p.Field(invocationtag.FieldBazelInvocationID)) +} + +// WhereKey applies the entql string predicate on the key field. +func (f *InvocationTagFilter) WhereKey(p entql.StringP) { + f.Where(p.Field(invocationtag.FieldKey)) +} + +// WhereValue applies the entql string predicate on the value field. +func (f *InvocationTagFilter) WhereValue(p entql.StringP) { + f.Where(p.Field(invocationtag.FieldValue)) +} + +// WhereHasBazelInvocation applies a predicate to check if query has an edge bazel_invocation. +func (f *InvocationTagFilter) WhereHasBazelInvocation() { + f.Where(entql.HasEdge("bazel_invocation")) +} + +// WhereHasBazelInvocationWith applies a predicate to check if query has an edge bazel_invocation with a given conditions (other predicates). +func (f *InvocationTagFilter) WhereHasBazelInvocationWith(preds ...predicate.BazelInvocation) { + f.Where(entql.HasEdgeWith("bazel_invocation", sqlgraph.WrapFunc(func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }))) +} + // addPredicate implements the predicateAdder interface. func (itq *InvocationTargetQuery) addPredicate(pred func(s *sql.Selector)) { itq.predicates = append(itq.predicates, pred) @@ -3327,7 +3529,7 @@ type InvocationTargetFilter struct { // Where applies the entql predicate on the query filter. func (f *InvocationTargetFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[17].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[19].Type, p, s); err != nil { s.AddError(err) } }) @@ -3458,7 +3660,7 @@ type MemoryMetricsFilter struct { // Where applies the entql predicate on the query filter. func (f *MemoryMetricsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[18].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[20].Type, p, s); err != nil { s.AddError(err) } }) @@ -3541,7 +3743,7 @@ type MetricsFilter struct { // Where applies the entql predicate on the query filter. func (f *MetricsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[19].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[21].Type, p, s); err != nil { s.AddError(err) } }) @@ -3693,7 +3895,7 @@ type MissDetailFilter struct { // Where applies the entql predicate on the query filter. func (f *MissDetailFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[20].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[22].Type, p, s); err != nil { s.AddError(err) } }) @@ -3757,7 +3959,7 @@ type NetworkMetricsFilter struct { // Where applies the entql predicate on the query filter. func (f *NetworkMetricsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[21].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[23].Type, p, s); err != nil { s.AddError(err) } }) @@ -3825,7 +4027,7 @@ type RunnerCountFilter struct { // Where applies the entql predicate on the query filter. func (f *RunnerCountFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[22].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[24].Type, p, s); err != nil { s.AddError(err) } }) @@ -3894,7 +4096,7 @@ type SourceControlFilter struct { // Where applies the entql predicate on the query filter. func (f *SourceControlFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[23].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[25].Type, p, s); err != nil { s.AddError(err) } }) @@ -3905,84 +4107,34 @@ func (f *SourceControlFilter) WhereID(p entql.Int64P) { f.Where(p.Field(sourcecontrol.FieldID)) } -// WhereProvider applies the entql string predicate on the provider field. -func (f *SourceControlFilter) WhereProvider(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldProvider)) -} - -// WhereInstanceURL applies the entql string predicate on the instance_url field. -func (f *SourceControlFilter) WhereInstanceURL(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldInstanceURL)) -} - // WhereRepo applies the entql string predicate on the repo field. func (f *SourceControlFilter) WhereRepo(p entql.StringP) { f.Where(p.Field(sourcecontrol.FieldRepo)) } -// WhereRefs applies the entql string predicate on the refs field. -func (f *SourceControlFilter) WhereRefs(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldRefs)) -} - -// WhereCommitSha applies the entql string predicate on the commit_sha field. -func (f *SourceControlFilter) WhereCommitSha(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldCommitSha)) -} - -// WhereActor applies the entql string predicate on the actor field. -func (f *SourceControlFilter) WhereActor(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldActor)) -} - -// WhereEventName applies the entql string predicate on the event_name field. -func (f *SourceControlFilter) WhereEventName(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldEventName)) -} - -// WhereWorkflow applies the entql string predicate on the workflow field. -func (f *SourceControlFilter) WhereWorkflow(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldWorkflow)) -} - -// WhereRunID applies the entql string predicate on the run_id field. -func (f *SourceControlFilter) WhereRunID(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldRunID)) -} - -// WhereRunNumber applies the entql string predicate on the run_number field. -func (f *SourceControlFilter) WhereRunNumber(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldRunNumber)) -} - -// WhereJob applies the entql string predicate on the job field. -func (f *SourceControlFilter) WhereJob(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldJob)) -} - -// WhereAction applies the entql string predicate on the action field. -func (f *SourceControlFilter) WhereAction(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldAction)) +// WhereRepoURL applies the entql string predicate on the repo_url field. +func (f *SourceControlFilter) WhereRepoURL(p entql.StringP) { + f.Where(p.Field(sourcecontrol.FieldRepoURL)) } -// WhereRunnerName applies the entql string predicate on the runner_name field. -func (f *SourceControlFilter) WhereRunnerName(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldRunnerName)) +// WhereRef applies the entql string predicate on the ref field. +func (f *SourceControlFilter) WhereRef(p entql.StringP) { + f.Where(p.Field(sourcecontrol.FieldRef)) } -// WhereRunnerArch applies the entql string predicate on the runner_arch field. -func (f *SourceControlFilter) WhereRunnerArch(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldRunnerArch)) +// WhereRefURL applies the entql string predicate on the ref_url field. +func (f *SourceControlFilter) WhereRefURL(p entql.StringP) { + f.Where(p.Field(sourcecontrol.FieldRefURL)) } -// WhereRunnerOs applies the entql string predicate on the runner_os field. -func (f *SourceControlFilter) WhereRunnerOs(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldRunnerOs)) +// WhereCommit applies the entql string predicate on the commit field. +func (f *SourceControlFilter) WhereCommit(p entql.StringP) { + f.Where(p.Field(sourcecontrol.FieldCommit)) } -// WhereWorkspace applies the entql string predicate on the workspace field. -func (f *SourceControlFilter) WhereWorkspace(p entql.StringP) { - f.Where(p.Field(sourcecontrol.FieldWorkspace)) +// WhereCommitURL applies the entql string predicate on the commit_url field. +func (f *SourceControlFilter) WhereCommitURL(p entql.StringP) { + f.Where(p.Field(sourcecontrol.FieldCommitURL)) } // WhereHasBazelInvocation applies a predicate to check if query has an edge bazel_invocation. @@ -4028,7 +4180,7 @@ type SystemNetworkStatsFilter struct { // Where applies the entql predicate on the query filter. func (f *SystemNetworkStatsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[24].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[26].Type, p, s); err != nil { s.AddError(err) } }) @@ -4122,7 +4274,7 @@ type TargetFilter struct { // Where applies the entql predicate on the query filter. func (f *TargetFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[25].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[27].Type, p, s); err != nil { s.AddError(err) } }) @@ -4233,7 +4385,7 @@ type TargetKindMappingFilter struct { // Where applies the entql predicate on the query filter. func (f *TargetKindMappingFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[26].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[28].Type, p, s); err != nil { s.AddError(err) } }) @@ -4316,7 +4468,7 @@ type TargetMetricsFilter struct { // Where applies the entql predicate on the query filter. func (f *TargetMetricsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[27].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[29].Type, p, s); err != nil { s.AddError(err) } }) @@ -4385,7 +4537,7 @@ type TestResultFilter struct { // Where applies the entql predicate on the query filter. func (f *TestResultFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[28].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[30].Type, p, s); err != nil { s.AddError(err) } }) @@ -4509,7 +4661,7 @@ type TestSummaryFilter struct { // Where applies the entql predicate on the query filter. func (f *TestSummaryFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[29].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[31].Type, p, s); err != nil { s.AddError(err) } }) @@ -4622,7 +4774,7 @@ type TestTargetFilter struct { // Where applies the entql predicate on the query filter. func (f *TestTargetFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[30].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[32].Type, p, s); err != nil { s.AddError(err) } }) @@ -4681,7 +4833,7 @@ type TimingMetricsFilter struct { // Where applies the entql predicate on the query filter. func (f *TimingMetricsFilter) Where(p entql.P) { f.addPredicate(func(s *sql.Selector) { - if err := schemaGraph.EvalP(schemaGraph.Nodes[31].Type, p, s); err != nil { + if err := schemaGraph.EvalP(schemaGraph.Nodes[33].Type, p, s); err != nil { s.AddError(err) } }) diff --git a/ent/gen/ent/gql_collection.go b/ent/gen/ent/gql_collection.go index 36d1beda..1ea5d6ae 100644 --- a/ent/gen/ent/gql_collection.go +++ b/ent/gen/ent/gql_collection.go @@ -19,10 +19,12 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/garbagemetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/missdetail" @@ -892,6 +894,95 @@ func (bi *BazelInvocationQuery) collectField(ctx context.Context, oneNode bool, } bi.withAuthenticatedUser = query + case "tags": + var ( + alias = field.Alias + path = append(path, alias) + query = (&InvocationTagClient{config: bi.config}).Query() + ) + args := newInvocationTagPaginateArgs(fieldArgs(ctx, new(InvocationTagWhereInput), path...)) + if err := validateFirstLast(args.first, args.last); err != nil { + return fmt.Errorf("validate first and last in path %q: %w", path, err) + } + pager, err := newInvocationTagPager(args.opts, args.last != nil) + if err != nil { + return fmt.Errorf("create new pager in path %q: %w", path, err) + } + if query, err = pager.applyFilter(query); err != nil { + return err + } + ignoredEdges := !hasCollectedField(ctx, append(path, edgesField)...) + if hasCollectedField(ctx, append(path, totalCountField)...) || hasCollectedField(ctx, append(path, pageInfoField)...) { + hasPagination := args.after != nil || args.first != nil || args.before != nil || args.last != nil + if hasPagination || ignoredEdges { + query := query.Clone() + bi.loadTotal = append(bi.loadTotal, func(ctx context.Context, nodes []*BazelInvocation) error { + ids := make([]driver.Value, len(nodes)) + for i := range nodes { + ids[i] = nodes[i].ID + } + var v []struct { + NodeID int64 `sql:"bazel_invocation_id"` + Count int `sql:"count"` + } + query.Where(func(s *sql.Selector) { + s.Where(sql.InValues(s.C(bazelinvocation.TagsColumn), ids...)) + }) + if err := query.GroupBy(bazelinvocation.TagsColumn).Aggregate(Count()).Scan(ctx, &v); err != nil { + return err + } + m := make(map[int64]int, len(v)) + for i := range v { + m[v[i].NodeID] = v[i].Count + } + for i := range nodes { + n := m[nodes[i].ID] + if nodes[i].Edges.totalCount[3] == nil { + nodes[i].Edges.totalCount[3] = make(map[string]int) + } + nodes[i].Edges.totalCount[3][alias] = n + } + return nil + }) + } else { + bi.loadTotal = append(bi.loadTotal, func(_ context.Context, nodes []*BazelInvocation) error { + for i := range nodes { + n := len(nodes[i].Edges.Tags) + if nodes[i].Edges.totalCount[3] == nil { + nodes[i].Edges.totalCount[3] = make(map[string]int) + } + nodes[i].Edges.totalCount[3][alias] = n + } + return nil + }) + } + } + if ignoredEdges || (args.first != nil && *args.first == 0) || (args.last != nil && *args.last == 0) { + continue + } + if query, err = pager.applyCursors(query, args.after, args.before); err != nil { + return err + } + path = append(path, edgesField, nodeField) + if field := collectedField(ctx, path...); field != nil { + if err := query.collectField(ctx, false, opCtx, *field, path, mayAddCondition(satisfies, invocationtagImplementors)...); err != nil { + return err + } + } + if limit := paginateLimit(args.first, args.last); limit > 0 { + if oneNode { + pager.applyOrder(query.Limit(limit)) + } else { + modify := entgql.LimitPerRow(bazelinvocation.TagsColumn, limit, pager.orderExpr(query)) + query.modifiers = append(query.modifiers, modify) + } + } else { + query = pager.applyOrder(query) + } + bi.WithNamedTags(alias, func(wq *InvocationTagQuery) { + *wq = *query + }) + case "connectionMetadata": var ( alias = field.Alias @@ -983,10 +1074,10 @@ func (bi *BazelInvocationQuery) collectField(ctx context.Context, oneNode bool, } for i := range nodes { n := m[nodes[i].ID] - if nodes[i].Edges.totalCount[7] == nil { - nodes[i].Edges.totalCount[7] = make(map[string]int) + if nodes[i].Edges.totalCount[8] == nil { + nodes[i].Edges.totalCount[8] = make(map[string]int) } - nodes[i].Edges.totalCount[7][alias] = n + nodes[i].Edges.totalCount[8][alias] = n } return nil }) @@ -994,10 +1085,10 @@ func (bi *BazelInvocationQuery) collectField(ctx context.Context, oneNode bool, bi.loadTotal = append(bi.loadTotal, func(_ context.Context, nodes []*BazelInvocation) error { for i := range nodes { n := len(nodes[i].Edges.InvocationTargets) - if nodes[i].Edges.totalCount[7] == nil { - nodes[i].Edges.totalCount[7] = make(map[string]int) + if nodes[i].Edges.totalCount[8] == nil { + nodes[i].Edges.totalCount[8] = make(map[string]int) } - nodes[i].Edges.totalCount[7][alias] = n + nodes[i].Edges.totalCount[8][alias] = n } return nil }) @@ -1035,10 +1126,12 @@ func (bi *BazelInvocationQuery) collectField(ctx context.Context, oneNode bool, path = append(path, alias) query = (&SourceControlClient{config: bi.config}).Query() ) - if err := query.collectField(ctx, oneNode, opCtx, field, path, mayAddCondition(satisfies, sourcecontrolImplementors)...); err != nil { + if err := query.collectField(ctx, false, opCtx, field, path, mayAddCondition(satisfies, sourcecontrolImplementors)...); err != nil { return err } - bi.withSourceControl = query + bi.WithNamedSourceControl(alias, func(wq *SourceControlQuery) { + *wq = *query + }) case "invocationID": if _, ok := fieldSeen[bazelinvocation.FieldInvocationID]; !ok { selectedFields = append(selectedFields, bazelinvocation.FieldInvocationID) @@ -1054,46 +1147,21 @@ func (bi *BazelInvocationQuery) collectField(ctx context.Context, oneNode bool, selectedFields = append(selectedFields, bazelinvocation.FieldEndedAt) fieldSeen[bazelinvocation.FieldEndedAt] = struct{}{} } - case "changeNumber": - if _, ok := fieldSeen[bazelinvocation.FieldChangeNumber]; !ok { - selectedFields = append(selectedFields, bazelinvocation.FieldChangeNumber) - fieldSeen[bazelinvocation.FieldChangeNumber] = struct{}{} - } - case "patchsetNumber": - if _, ok := fieldSeen[bazelinvocation.FieldPatchsetNumber]; !ok { - selectedFields = append(selectedFields, bazelinvocation.FieldPatchsetNumber) - fieldSeen[bazelinvocation.FieldPatchsetNumber] = struct{}{} - } case "bepCompleted": if _, ok := fieldSeen[bazelinvocation.FieldBepCompleted]; !ok { selectedFields = append(selectedFields, bazelinvocation.FieldBepCompleted) fieldSeen[bazelinvocation.FieldBepCompleted] = struct{}{} } - case "stepLabel": - if _, ok := fieldSeen[bazelinvocation.FieldStepLabel]; !ok { - selectedFields = append(selectedFields, bazelinvocation.FieldStepLabel) - fieldSeen[bazelinvocation.FieldStepLabel] = struct{}{} - } - case "userEmail": - if _, ok := fieldSeen[bazelinvocation.FieldUserEmail]; !ok { - selectedFields = append(selectedFields, bazelinvocation.FieldUserEmail) - fieldSeen[bazelinvocation.FieldUserEmail] = struct{}{} - } - case "userLdap": - if _, ok := fieldSeen[bazelinvocation.FieldUserLdap]; !ok { - selectedFields = append(selectedFields, bazelinvocation.FieldUserLdap) - fieldSeen[bazelinvocation.FieldUserLdap] = struct{}{} + case "username": + if _, ok := fieldSeen[bazelinvocation.FieldUsername]; !ok { + selectedFields = append(selectedFields, bazelinvocation.FieldUsername) + fieldSeen[bazelinvocation.FieldUsername] = struct{}{} } case "hostname": if _, ok := fieldSeen[bazelinvocation.FieldHostname]; !ok { selectedFields = append(selectedFields, bazelinvocation.FieldHostname) fieldSeen[bazelinvocation.FieldHostname] = struct{}{} } - case "isCiWorker": - if _, ok := fieldSeen[bazelinvocation.FieldIsCiWorker]; !ok { - selectedFields = append(selectedFields, bazelinvocation.FieldIsCiWorker) - fieldSeen[bazelinvocation.FieldIsCiWorker] = struct{}{} - } case "numFetches": if _, ok := fieldSeen[bazelinvocation.FieldNumFetches]; !ok { selectedFields = append(selectedFields, bazelinvocation.FieldNumFetches) @@ -1313,11 +1381,95 @@ func (b *BuildQuery) collectField(ctx context.Context, oneNode bool, opCtx *grap b.WithNamedInvocations(alias, func(wq *BazelInvocationQuery) { *wq = *query }) - case "buildURL": - if _, ok := fieldSeen[build.FieldBuildURL]; !ok { - selectedFields = append(selectedFields, build.FieldBuildURL) - fieldSeen[build.FieldBuildURL] = struct{}{} + + case "tags": + var ( + alias = field.Alias + path = append(path, alias) + query = (&BuildTagClient{config: b.config}).Query() + ) + args := newBuildTagPaginateArgs(fieldArgs(ctx, new(BuildTagWhereInput), path...)) + if err := validateFirstLast(args.first, args.last); err != nil { + return fmt.Errorf("validate first and last in path %q: %w", path, err) + } + pager, err := newBuildTagPager(args.opts, args.last != nil) + if err != nil { + return fmt.Errorf("create new pager in path %q: %w", path, err) + } + if query, err = pager.applyFilter(query); err != nil { + return err } + ignoredEdges := !hasCollectedField(ctx, append(path, edgesField)...) + if hasCollectedField(ctx, append(path, totalCountField)...) || hasCollectedField(ctx, append(path, pageInfoField)...) { + hasPagination := args.after != nil || args.first != nil || args.before != nil || args.last != nil + if hasPagination || ignoredEdges { + query := query.Clone() + b.loadTotal = append(b.loadTotal, func(ctx context.Context, nodes []*Build) error { + ids := make([]driver.Value, len(nodes)) + for i := range nodes { + ids[i] = nodes[i].ID + } + var v []struct { + NodeID int64 `sql:"build_id"` + Count int `sql:"count"` + } + query.Where(func(s *sql.Selector) { + s.Where(sql.InValues(s.C(build.TagsColumn), ids...)) + }) + if err := query.GroupBy(build.TagsColumn).Aggregate(Count()).Scan(ctx, &v); err != nil { + return err + } + m := make(map[int64]int, len(v)) + for i := range v { + m[v[i].NodeID] = v[i].Count + } + for i := range nodes { + n := m[nodes[i].ID] + if nodes[i].Edges.totalCount[2] == nil { + nodes[i].Edges.totalCount[2] = make(map[string]int) + } + nodes[i].Edges.totalCount[2][alias] = n + } + return nil + }) + } else { + b.loadTotal = append(b.loadTotal, func(_ context.Context, nodes []*Build) error { + for i := range nodes { + n := len(nodes[i].Edges.Tags) + if nodes[i].Edges.totalCount[2] == nil { + nodes[i].Edges.totalCount[2] = make(map[string]int) + } + nodes[i].Edges.totalCount[2][alias] = n + } + return nil + }) + } + } + if ignoredEdges || (args.first != nil && *args.first == 0) || (args.last != nil && *args.last == 0) { + continue + } + if query, err = pager.applyCursors(query, args.after, args.before); err != nil { + return err + } + path = append(path, edgesField, nodeField) + if field := collectedField(ctx, path...); field != nil { + if err := query.collectField(ctx, false, opCtx, *field, path, mayAddCondition(satisfies, buildtagImplementors)...); err != nil { + return err + } + } + if limit := paginateLimit(args.first, args.last); limit > 0 { + if oneNode { + pager.applyOrder(query.Limit(limit)) + } else { + modify := entgql.LimitPerRow(build.TagsColumn, limit, pager.orderExpr(query)) + query.modifiers = append(query.modifiers, modify) + } + } else { + query = pager.applyOrder(query) + } + b.WithNamedTags(alias, func(wq *BuildTagQuery) { + *wq = *query + }) case "buildUUID": if _, ok := fieldSeen[build.FieldBuildUUID]; !ok { selectedFields = append(selectedFields, build.FieldBuildUUID) @@ -1509,6 +1661,115 @@ func newBuildGraphMetricsPaginateArgs(rv map[string]any) *buildgraphmetricsPagin return args } +// CollectFields tells the query-builder to eagerly load connected nodes by resolver context. +func (bt *BuildTagQuery) CollectFields(ctx context.Context, satisfies ...string) (*BuildTagQuery, error) { + fc := graphql.GetFieldContext(ctx) + if fc == nil { + return bt, nil + } + if err := bt.collectField(ctx, false, graphql.GetOperationContext(ctx), fc.Field, nil, satisfies...); err != nil { + return nil, err + } + return bt, nil +} + +func (bt *BuildTagQuery) collectField(ctx context.Context, oneNode bool, opCtx *graphql.OperationContext, collected graphql.CollectedField, path []string, satisfies ...string) error { + path = append([]string(nil), path...) + var ( + unknownSeen bool + fieldSeen = make(map[string]struct{}, len(buildtag.Columns)) + selectedFields = []string{buildtag.FieldID} + ) + for _, field := range graphql.CollectFields(opCtx, collected.Selections, satisfies) { + switch field.Name { + + case "build": + var ( + alias = field.Alias + path = append(path, alias) + query = (&BuildClient{config: bt.config}).Query() + ) + if err := query.collectField(ctx, oneNode, opCtx, field, path, mayAddCondition(satisfies, buildImplementors)...); err != nil { + return err + } + bt.withBuild = query + if _, ok := fieldSeen[buildtag.FieldBuildID]; !ok { + selectedFields = append(selectedFields, buildtag.FieldBuildID) + fieldSeen[buildtag.FieldBuildID] = struct{}{} + } + case "key": + if _, ok := fieldSeen[buildtag.FieldKey]; !ok { + selectedFields = append(selectedFields, buildtag.FieldKey) + fieldSeen[buildtag.FieldKey] = struct{}{} + } + case "value": + if _, ok := fieldSeen[buildtag.FieldValue]; !ok { + selectedFields = append(selectedFields, buildtag.FieldValue) + fieldSeen[buildtag.FieldValue] = struct{}{} + } + case "id": + case "__typename": + default: + unknownSeen = true + } + } + if !unknownSeen { + bt.Select(selectedFields...) + } + return nil +} + +type buildtagPaginateArgs struct { + first, last *int + after, before *Cursor + opts []BuildTagPaginateOption +} + +func newBuildTagPaginateArgs(rv map[string]any) *buildtagPaginateArgs { + args := &buildtagPaginateArgs{} + if rv == nil { + return args + } + if v := rv[firstField]; v != nil { + args.first = v.(*int) + } + if v := rv[lastField]; v != nil { + args.last = v.(*int) + } + if v := rv[afterField]; v != nil { + args.after = v.(*Cursor) + } + if v := rv[beforeField]; v != nil { + args.before = v.(*Cursor) + } + if v, ok := rv[orderByField]; ok { + switch v := v.(type) { + case map[string]any: + var ( + err1, err2 error + order = &BuildTagOrder{Field: &BuildTagOrderField{}, Direction: entgql.OrderDirectionAsc} + ) + if d, ok := v[directionField]; ok { + err1 = order.Direction.UnmarshalGQL(d) + } + if f, ok := v[fieldField]; ok { + err2 = order.Field.UnmarshalGQL(f) + } + if err1 == nil && err2 == nil { + args.opts = append(args.opts, WithBuildTagOrder(order)) + } + case *BuildTagOrder: + if v != nil { + args.opts = append(args.opts, WithBuildTagOrder(v)) + } + } + } + if v, ok := rv[whereField].(*BuildTagWhereInput); ok { + args.opts = append(args.opts, WithBuildTagFilter(v.Filter)) + } + return args +} + // CollectFields tells the query-builder to eagerly load connected nodes by resolver context. func (c *ConfigurationQuery) CollectFields(ctx context.Context, satisfies ...string) (*ConfigurationQuery, error) { fc := graphql.GetFieldContext(ctx) @@ -1909,6 +2170,115 @@ func newInstanceNamePaginateArgs(rv map[string]any) *instancenamePaginateArgs { return args } +// CollectFields tells the query-builder to eagerly load connected nodes by resolver context. +func (it *InvocationTagQuery) CollectFields(ctx context.Context, satisfies ...string) (*InvocationTagQuery, error) { + fc := graphql.GetFieldContext(ctx) + if fc == nil { + return it, nil + } + if err := it.collectField(ctx, false, graphql.GetOperationContext(ctx), fc.Field, nil, satisfies...); err != nil { + return nil, err + } + return it, nil +} + +func (it *InvocationTagQuery) collectField(ctx context.Context, oneNode bool, opCtx *graphql.OperationContext, collected graphql.CollectedField, path []string, satisfies ...string) error { + path = append([]string(nil), path...) + var ( + unknownSeen bool + fieldSeen = make(map[string]struct{}, len(invocationtag.Columns)) + selectedFields = []string{invocationtag.FieldID} + ) + for _, field := range graphql.CollectFields(opCtx, collected.Selections, satisfies) { + switch field.Name { + + case "bazelInvocation": + var ( + alias = field.Alias + path = append(path, alias) + query = (&BazelInvocationClient{config: it.config}).Query() + ) + if err := query.collectField(ctx, oneNode, opCtx, field, path, mayAddCondition(satisfies, bazelinvocationImplementors)...); err != nil { + return err + } + it.withBazelInvocation = query + if _, ok := fieldSeen[invocationtag.FieldBazelInvocationID]; !ok { + selectedFields = append(selectedFields, invocationtag.FieldBazelInvocationID) + fieldSeen[invocationtag.FieldBazelInvocationID] = struct{}{} + } + case "key": + if _, ok := fieldSeen[invocationtag.FieldKey]; !ok { + selectedFields = append(selectedFields, invocationtag.FieldKey) + fieldSeen[invocationtag.FieldKey] = struct{}{} + } + case "value": + if _, ok := fieldSeen[invocationtag.FieldValue]; !ok { + selectedFields = append(selectedFields, invocationtag.FieldValue) + fieldSeen[invocationtag.FieldValue] = struct{}{} + } + case "id": + case "__typename": + default: + unknownSeen = true + } + } + if !unknownSeen { + it.Select(selectedFields...) + } + return nil +} + +type invocationtagPaginateArgs struct { + first, last *int + after, before *Cursor + opts []InvocationTagPaginateOption +} + +func newInvocationTagPaginateArgs(rv map[string]any) *invocationtagPaginateArgs { + args := &invocationtagPaginateArgs{} + if rv == nil { + return args + } + if v := rv[firstField]; v != nil { + args.first = v.(*int) + } + if v := rv[lastField]; v != nil { + args.last = v.(*int) + } + if v := rv[afterField]; v != nil { + args.after = v.(*Cursor) + } + if v := rv[beforeField]; v != nil { + args.before = v.(*Cursor) + } + if v, ok := rv[orderByField]; ok { + switch v := v.(type) { + case map[string]any: + var ( + err1, err2 error + order = &InvocationTagOrder{Field: &InvocationTagOrderField{}, Direction: entgql.OrderDirectionAsc} + ) + if d, ok := v[directionField]; ok { + err1 = order.Direction.UnmarshalGQL(d) + } + if f, ok := v[fieldField]; ok { + err2 = order.Field.UnmarshalGQL(f) + } + if err1 == nil && err2 == nil { + args.opts = append(args.opts, WithInvocationTagOrder(order)) + } + case *InvocationTagOrder: + if v != nil { + args.opts = append(args.opts, WithInvocationTagOrder(v)) + } + } + } + if v, ok := rv[whereField].(*InvocationTagWhereInput); ok { + args.opts = append(args.opts, WithInvocationTagFilter(v.Filter)) + } + return args +} + // CollectFields tells the query-builder to eagerly load connected nodes by resolver context. func (it *InvocationTargetQuery) CollectFields(ctx context.Context, satisfies ...string) (*InvocationTargetQuery, error) { fc := graphql.GetFieldContext(ctx) @@ -2588,85 +2958,35 @@ func (sc *SourceControlQuery) collectField(ctx context.Context, oneNode bool, op return err } sc.withBazelInvocation = query - case "provider": - if _, ok := fieldSeen[sourcecontrol.FieldProvider]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldProvider) - fieldSeen[sourcecontrol.FieldProvider] = struct{}{} - } - case "instanceURL": - if _, ok := fieldSeen[sourcecontrol.FieldInstanceURL]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldInstanceURL) - fieldSeen[sourcecontrol.FieldInstanceURL] = struct{}{} - } case "repo": if _, ok := fieldSeen[sourcecontrol.FieldRepo]; !ok { selectedFields = append(selectedFields, sourcecontrol.FieldRepo) fieldSeen[sourcecontrol.FieldRepo] = struct{}{} } - case "refs": - if _, ok := fieldSeen[sourcecontrol.FieldRefs]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldRefs) - fieldSeen[sourcecontrol.FieldRefs] = struct{}{} - } - case "commitSha": - if _, ok := fieldSeen[sourcecontrol.FieldCommitSha]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldCommitSha) - fieldSeen[sourcecontrol.FieldCommitSha] = struct{}{} - } - case "actor": - if _, ok := fieldSeen[sourcecontrol.FieldActor]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldActor) - fieldSeen[sourcecontrol.FieldActor] = struct{}{} - } - case "eventName": - if _, ok := fieldSeen[sourcecontrol.FieldEventName]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldEventName) - fieldSeen[sourcecontrol.FieldEventName] = struct{}{} - } - case "workflow": - if _, ok := fieldSeen[sourcecontrol.FieldWorkflow]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldWorkflow) - fieldSeen[sourcecontrol.FieldWorkflow] = struct{}{} - } - case "runID": - if _, ok := fieldSeen[sourcecontrol.FieldRunID]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldRunID) - fieldSeen[sourcecontrol.FieldRunID] = struct{}{} - } - case "runNumber": - if _, ok := fieldSeen[sourcecontrol.FieldRunNumber]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldRunNumber) - fieldSeen[sourcecontrol.FieldRunNumber] = struct{}{} - } - case "job": - if _, ok := fieldSeen[sourcecontrol.FieldJob]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldJob) - fieldSeen[sourcecontrol.FieldJob] = struct{}{} - } - case "action": - if _, ok := fieldSeen[sourcecontrol.FieldAction]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldAction) - fieldSeen[sourcecontrol.FieldAction] = struct{}{} - } - case "runnerName": - if _, ok := fieldSeen[sourcecontrol.FieldRunnerName]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldRunnerName) - fieldSeen[sourcecontrol.FieldRunnerName] = struct{}{} - } - case "runnerArch": - if _, ok := fieldSeen[sourcecontrol.FieldRunnerArch]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldRunnerArch) - fieldSeen[sourcecontrol.FieldRunnerArch] = struct{}{} - } - case "runnerOs": - if _, ok := fieldSeen[sourcecontrol.FieldRunnerOs]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldRunnerOs) - fieldSeen[sourcecontrol.FieldRunnerOs] = struct{}{} - } - case "workspace": - if _, ok := fieldSeen[sourcecontrol.FieldWorkspace]; !ok { - selectedFields = append(selectedFields, sourcecontrol.FieldWorkspace) - fieldSeen[sourcecontrol.FieldWorkspace] = struct{}{} + case "repoURL": + if _, ok := fieldSeen[sourcecontrol.FieldRepoURL]; !ok { + selectedFields = append(selectedFields, sourcecontrol.FieldRepoURL) + fieldSeen[sourcecontrol.FieldRepoURL] = struct{}{} + } + case "ref": + if _, ok := fieldSeen[sourcecontrol.FieldRef]; !ok { + selectedFields = append(selectedFields, sourcecontrol.FieldRef) + fieldSeen[sourcecontrol.FieldRef] = struct{}{} + } + case "refURL": + if _, ok := fieldSeen[sourcecontrol.FieldRefURL]; !ok { + selectedFields = append(selectedFields, sourcecontrol.FieldRefURL) + fieldSeen[sourcecontrol.FieldRefURL] = struct{}{} + } + case "commit": + if _, ok := fieldSeen[sourcecontrol.FieldCommit]; !ok { + selectedFields = append(selectedFields, sourcecontrol.FieldCommit) + fieldSeen[sourcecontrol.FieldCommit] = struct{}{} + } + case "commitURL": + if _, ok := fieldSeen[sourcecontrol.FieldCommitURL]; !ok { + selectedFields = append(selectedFields, sourcecontrol.FieldCommitURL) + fieldSeen[sourcecontrol.FieldCommitURL] = struct{}{} } case "id": case "__typename": diff --git a/ent/gen/ent/gql_edge.go b/ent/gen/ent/gql_edge.go index b5d3bd78..6d09fd8d 100644 --- a/ent/gen/ent/gql_edge.go +++ b/ent/gen/ent/gql_edge.go @@ -145,6 +145,27 @@ func (bi *BazelInvocation) AuthenticatedUser(ctx context.Context) (*Authenticate return result, MaskNotFound(err) } +func (bi *BazelInvocation) Tags( + ctx context.Context, after *Cursor, first *int, before *Cursor, last *int, orderBy *InvocationTagOrder, where *InvocationTagWhereInput, +) (*InvocationTagConnection, error) { + opts := []InvocationTagPaginateOption{ + WithInvocationTagOrder(orderBy), + WithInvocationTagFilter(where.Filter), + } + alias := graphql.GetFieldContext(ctx).Field.Alias + totalCount, hasTotalCount := bi.Edges.totalCount[3][alias] + if nodes, err := bi.NamedTags(alias); err == nil || hasTotalCount { + pager, err := newInvocationTagPager(opts, last != nil) + if err != nil { + return nil, err + } + conn := &InvocationTagConnection{Edges: []*InvocationTagEdge{}, TotalCount: totalCount} + conn.build(nodes, pager, after, first, before, last) + return conn, nil + } + return bi.QueryTags().Paginate(ctx, after, first, before, last, opts...) +} + func (bi *BazelInvocation) ConnectionMetadata(ctx context.Context) (*ConnectionMetadata, error) { result, err := bi.Edges.ConnectionMetadataOrErr() if IsNotLoaded(err) { @@ -193,7 +214,7 @@ func (bi *BazelInvocation) InvocationTargets( WithInvocationTargetFilter(where.Filter), } alias := graphql.GetFieldContext(ctx).Field.Alias - totalCount, hasTotalCount := bi.Edges.totalCount[7][alias] + totalCount, hasTotalCount := bi.Edges.totalCount[8][alias] if nodes, err := bi.NamedInvocationTargets(alias); err == nil || hasTotalCount { pager, err := newInvocationTargetPager(opts, last != nil) if err != nil { @@ -206,12 +227,16 @@ func (bi *BazelInvocation) InvocationTargets( return bi.QueryInvocationTargets().Paginate(ctx, after, first, before, last, opts...) } -func (bi *BazelInvocation) SourceControl(ctx context.Context) (*SourceControl, error) { - result, err := bi.Edges.SourceControlOrErr() +func (bi *BazelInvocation) SourceControl(ctx context.Context) (result []*SourceControl, err error) { + if fc := graphql.GetFieldContext(ctx); fc != nil && fc.Field.Alias != "" { + result, err = bi.NamedSourceControl(graphql.GetFieldContext(ctx).Field.Alias) + } else { + result, err = bi.Edges.SourceControlOrErr() + } if IsNotLoaded(err) { - result, err = bi.QuerySourceControl().Only(ctx) + result, err = bi.QuerySourceControl().All(ctx) } - return result, MaskNotFound(err) + return result, err } func (b *Build) InstanceName(ctx context.Context) (*InstanceName, error) { @@ -243,6 +268,27 @@ func (b *Build) Invocations( return b.QueryInvocations().Paginate(ctx, after, first, before, last, opts...) } +func (b *Build) Tags( + ctx context.Context, after *Cursor, first *int, before *Cursor, last *int, orderBy *BuildTagOrder, where *BuildTagWhereInput, +) (*BuildTagConnection, error) { + opts := []BuildTagPaginateOption{ + WithBuildTagOrder(orderBy), + WithBuildTagFilter(where.Filter), + } + alias := graphql.GetFieldContext(ctx).Field.Alias + totalCount, hasTotalCount := b.Edges.totalCount[2][alias] + if nodes, err := b.NamedTags(alias); err == nil || hasTotalCount { + pager, err := newBuildTagPager(opts, last != nil) + if err != nil { + return nil, err + } + conn := &BuildTagConnection{Edges: []*BuildTagEdge{}, TotalCount: totalCount} + conn.build(nodes, pager, after, first, before, last) + return conn, nil + } + return b.QueryTags().Paginate(ctx, after, first, before, last, opts...) +} + func (bgm *BuildGraphMetrics) Metrics(ctx context.Context) (*Metrics, error) { result, err := bgm.Edges.MetricsOrErr() if IsNotLoaded(err) { @@ -251,6 +297,14 @@ func (bgm *BuildGraphMetrics) Metrics(ctx context.Context) (*Metrics, error) { return result, MaskNotFound(err) } +func (bt *BuildTag) Build(ctx context.Context) (*Build, error) { + result, err := bt.Edges.BuildOrErr() + if IsNotLoaded(err) { + result, err = bt.QueryBuild().Only(ctx) + } + return result, err +} + func (c *Configuration) BazelInvocation(ctx context.Context) (*BazelInvocation, error) { result, err := c.Edges.BazelInvocationOrErr() if IsNotLoaded(err) { @@ -335,6 +389,14 @@ func (in *InstanceName) Targets(ctx context.Context) (result []*Target, err erro return result, err } +func (it *InvocationTag) BazelInvocation(ctx context.Context) (*BazelInvocation, error) { + result, err := it.Edges.BazelInvocationOrErr() + if IsNotLoaded(err) { + result, err = it.QueryBazelInvocation().Only(ctx) + } + return result, err +} + func (it *InvocationTarget) BazelInvocation(ctx context.Context) (*BazelInvocation, error) { result, err := it.Edges.BazelInvocationOrErr() if IsNotLoaded(err) { diff --git a/ent/gen/ent/gql_node.go b/ent/gen/ent/gql_node.go index dc674088..db96fc3a 100644 --- a/ent/gen/ent/gql_node.go +++ b/ent/gen/ent/gql_node.go @@ -22,10 +22,12 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/garbagemetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -94,6 +96,11 @@ var buildgraphmetricsImplementors = []string{"BuildGraphMetrics", "Node"} // IsNode implements the Node interface check for GQLGen. func (*BuildGraphMetrics) IsNode() {} +var buildtagImplementors = []string{"BuildTag", "Node"} + +// IsNode implements the Node interface check for GQLGen. +func (*BuildTag) IsNode() {} + var configurationImplementors = []string{"Configuration", "Node"} // IsNode implements the Node interface check for GQLGen. @@ -114,6 +121,11 @@ var instancenameImplementors = []string{"InstanceName", "Node"} // IsNode implements the Node interface check for GQLGen. func (*InstanceName) IsNode() {} +var invocationtagImplementors = []string{"InvocationTag", "Node"} + +// IsNode implements the Node interface check for GQLGen. +func (*InvocationTag) IsNode() {} + var invocationtargetImplementors = []string{"InvocationTarget", "Node"} // IsNode implements the Node interface check for GQLGen. @@ -323,6 +335,15 @@ func (c *Client) noder(ctx context.Context, table string, id int64) (Noder, erro } } return query.Only(ctx) + case buildtag.Table: + query := c.BuildTag.Query(). + Where(buildtag.ID(id)) + if fc := graphql.GetFieldContext(ctx); fc != nil { + if err := query.collectField(ctx, true, graphql.GetOperationContext(ctx), fc.Field, nil, buildtagImplementors...); err != nil { + return nil, err + } + } + return query.Only(ctx) case configuration.Table: query := c.Configuration.Query(). Where(configuration.ID(id)) @@ -359,6 +380,15 @@ func (c *Client) noder(ctx context.Context, table string, id int64) (Noder, erro } } return query.Only(ctx) + case invocationtag.Table: + query := c.InvocationTag.Query(). + Where(invocationtag.ID(id)) + if fc := graphql.GetFieldContext(ctx); fc != nil { + if err := query.collectField(ctx, true, graphql.GetOperationContext(ctx), fc.Field, nil, invocationtagImplementors...); err != nil { + return nil, err + } + } + return query.Only(ctx) case invocationtarget.Table: query := c.InvocationTarget.Query(). Where(invocationtarget.ID(id)) @@ -702,6 +732,22 @@ func (c *Client) noders(ctx context.Context, table string, ids []int64) ([]Noder *noder = node } } + case buildtag.Table: + query := c.BuildTag.Query(). + Where(buildtag.IDIn(ids...)) + query, err := query.CollectFields(ctx, buildtagImplementors...) + if err != nil { + return nil, err + } + nodes, err := query.All(ctx) + if err != nil { + return nil, err + } + for _, node := range nodes { + for _, noder := range idmap[node.ID] { + *noder = node + } + } case configuration.Table: query := c.Configuration.Query(). Where(configuration.IDIn(ids...)) @@ -766,6 +812,22 @@ func (c *Client) noders(ctx context.Context, table string, ids []int64) ([]Noder *noder = node } } + case invocationtag.Table: + query := c.InvocationTag.Query(). + Where(invocationtag.IDIn(ids...)) + query, err := query.CollectFields(ctx, invocationtagImplementors...) + if err != nil { + return nil, err + } + nodes, err := query.All(ctx) + if err != nil { + return nil, err + } + for _, node := range nodes { + for _, noder := range idmap[node.ID] { + *noder = node + } + } case invocationtarget.Table: query := c.InvocationTarget.Query(). Where(invocationtarget.IDIn(ids...)) diff --git a/ent/gen/ent/gql_pagination.go b/ent/gen/ent/gql_pagination.go index d0158159..86978d95 100644 --- a/ent/gen/ent/gql_pagination.go +++ b/ent/gen/ent/gql_pagination.go @@ -23,10 +23,12 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/garbagemetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -1841,17 +1843,17 @@ var ( } }, } - // BazelInvocationOrderFieldUserLdap orders BazelInvocation by user_ldap. - BazelInvocationOrderFieldUserLdap = &BazelInvocationOrderField{ + // BazelInvocationOrderFieldUsername orders BazelInvocation by username. + BazelInvocationOrderFieldUsername = &BazelInvocationOrderField{ Value: func(bi *BazelInvocation) (ent.Value, error) { - return bi.UserLdap, nil + return bi.Username, nil }, - column: bazelinvocation.FieldUserLdap, - toTerm: bazelinvocation.ByUserLdap, + column: bazelinvocation.FieldUsername, + toTerm: bazelinvocation.ByUsername, toCursor: func(bi *BazelInvocation) Cursor { return Cursor{ ID: bi.ID, - Value: bi.UserLdap, + Value: bi.Username, } }, } @@ -1863,8 +1865,8 @@ func (f BazelInvocationOrderField) String() string { switch f.column { case BazelInvocationOrderFieldStartedAt.column: str = "STARTED_AT" - case BazelInvocationOrderFieldUserLdap.column: - str = "USER_LDAP" + case BazelInvocationOrderFieldUsername.column: + str = "USERNAME" } return str } @@ -1883,8 +1885,8 @@ func (f *BazelInvocationOrderField) UnmarshalGQL(v interface{}) error { switch str { case "STARTED_AT": *f = *BazelInvocationOrderFieldStartedAt - case "USER_LDAP": - *f = *BazelInvocationOrderFieldUserLdap + case "USERNAME": + *f = *BazelInvocationOrderFieldUsername default: return fmt.Errorf("%s is not a valid BazelInvocationOrderField", str) } @@ -2477,6 +2479,302 @@ func (bgm *BuildGraphMetrics) ToEdge(order *BuildGraphMetricsOrder) *BuildGraphM } } +// BuildTagEdge is the edge representation of BuildTag. +type BuildTagEdge struct { + Node *BuildTag `json:"node"` + Cursor Cursor `json:"cursor"` +} + +// BuildTagConnection is the connection containing edges to BuildTag. +type BuildTagConnection struct { + Edges []*BuildTagEdge `json:"edges"` + PageInfo PageInfo `json:"pageInfo"` + TotalCount int `json:"totalCount"` +} + +func (c *BuildTagConnection) build(nodes []*BuildTag, pager *buildtagPager, after *Cursor, first *int, before *Cursor, last *int) { + c.PageInfo.HasNextPage = before != nil + c.PageInfo.HasPreviousPage = after != nil + if first != nil && *first+1 == len(nodes) { + c.PageInfo.HasNextPage = true + nodes = nodes[:len(nodes)-1] + } else if last != nil && *last+1 == len(nodes) { + c.PageInfo.HasPreviousPage = true + nodes = nodes[:len(nodes)-1] + } + var nodeAt func(int) *BuildTag + if last != nil { + n := len(nodes) - 1 + nodeAt = func(i int) *BuildTag { + return nodes[n-i] + } + } else { + nodeAt = func(i int) *BuildTag { + return nodes[i] + } + } + c.Edges = make([]*BuildTagEdge, len(nodes)) + for i := range nodes { + node := nodeAt(i) + c.Edges[i] = &BuildTagEdge{ + Node: node, + Cursor: pager.toCursor(node), + } + } + if l := len(c.Edges); l > 0 { + c.PageInfo.StartCursor = &c.Edges[0].Cursor + c.PageInfo.EndCursor = &c.Edges[l-1].Cursor + } + if c.TotalCount == 0 { + c.TotalCount = len(nodes) + } +} + +// BuildTagPaginateOption enables pagination customization. +type BuildTagPaginateOption func(*buildtagPager) error + +// WithBuildTagOrder configures pagination ordering. +func WithBuildTagOrder(order *BuildTagOrder) BuildTagPaginateOption { + if order == nil { + order = DefaultBuildTagOrder + } + o := *order + return func(pager *buildtagPager) error { + if err := o.Direction.Validate(); err != nil { + return err + } + if o.Field == nil { + o.Field = DefaultBuildTagOrder.Field + } + pager.order = &o + return nil + } +} + +// WithBuildTagFilter configures pagination filter. +func WithBuildTagFilter(filter func(*BuildTagQuery) (*BuildTagQuery, error)) BuildTagPaginateOption { + return func(pager *buildtagPager) error { + if filter == nil { + return errors.New("BuildTagQuery filter cannot be nil") + } + pager.filter = filter + return nil + } +} + +type buildtagPager struct { + reverse bool + order *BuildTagOrder + filter func(*BuildTagQuery) (*BuildTagQuery, error) +} + +func newBuildTagPager(opts []BuildTagPaginateOption, reverse bool) (*buildtagPager, error) { + pager := &buildtagPager{reverse: reverse} + for _, opt := range opts { + if err := opt(pager); err != nil { + return nil, err + } + } + if pager.order == nil { + pager.order = DefaultBuildTagOrder + } + return pager, nil +} + +func (p *buildtagPager) applyFilter(query *BuildTagQuery) (*BuildTagQuery, error) { + if p.filter != nil { + return p.filter(query) + } + return query, nil +} + +func (p *buildtagPager) toCursor(bt *BuildTag) Cursor { + return p.order.Field.toCursor(bt) +} + +func (p *buildtagPager) applyCursors(query *BuildTagQuery, after, before *Cursor) (*BuildTagQuery, error) { + direction := p.order.Direction + if p.reverse { + direction = direction.Reverse() + } + for _, predicate := range entgql.CursorsPredicate(after, before, DefaultBuildTagOrder.Field.column, p.order.Field.column, direction) { + query = query.Where(predicate) + } + return query, nil +} + +func (p *buildtagPager) applyOrder(query *BuildTagQuery) *BuildTagQuery { + direction := p.order.Direction + if p.reverse { + direction = direction.Reverse() + } + query = query.Order(p.order.Field.toTerm(direction.OrderTermOption())) + if p.order.Field != DefaultBuildTagOrder.Field { + query = query.Order(DefaultBuildTagOrder.Field.toTerm(direction.OrderTermOption())) + } + if len(query.ctx.Fields) > 0 { + query.ctx.AppendFieldOnce(p.order.Field.column) + } + return query +} + +func (p *buildtagPager) orderExpr(query *BuildTagQuery) sql.Querier { + direction := p.order.Direction + if p.reverse { + direction = direction.Reverse() + } + if len(query.ctx.Fields) > 0 { + query.ctx.AppendFieldOnce(p.order.Field.column) + } + return sql.ExprFunc(func(b *sql.Builder) { + b.Ident(p.order.Field.column).Pad().WriteString(string(direction)) + if p.order.Field != DefaultBuildTagOrder.Field { + b.Comma().Ident(DefaultBuildTagOrder.Field.column).Pad().WriteString(string(direction)) + } + }) +} + +// Paginate executes the query and returns a relay based cursor connection to BuildTag. +func (bt *BuildTagQuery) Paginate( + ctx context.Context, after *Cursor, first *int, + before *Cursor, last *int, opts ...BuildTagPaginateOption, +) (*BuildTagConnection, error) { + if err := validateFirstLast(first, last); err != nil { + return nil, err + } + pager, err := newBuildTagPager(opts, last != nil) + if err != nil { + return nil, err + } + if bt, err = pager.applyFilter(bt); err != nil { + return nil, err + } + conn := &BuildTagConnection{Edges: []*BuildTagEdge{}} + ignoredEdges := !hasCollectedField(ctx, edgesField) + needTotalCount := hasCollectedField(ctx, totalCountField) + needPageInfo := hasCollectedField(ctx, pageInfoField) + hasPagination := after != nil || first != nil || before != nil || last != nil + if (needTotalCount && hasPagination) || (ignoredEdges && (needTotalCount || needPageInfo)) { + c := bt.Clone() + c.ctx.Fields = nil + if conn.TotalCount, err = c.Count(ctx); err != nil { + return nil, err + } + conn.PageInfo.HasNextPage = first != nil && conn.TotalCount > 0 + conn.PageInfo.HasPreviousPage = last != nil && conn.TotalCount > 0 + } + if ignoredEdges || (first != nil && *first == 0) || (last != nil && *last == 0) { + return conn, nil + } + if bt, err = pager.applyCursors(bt, after, before); err != nil { + return nil, err + } + limit := paginateLimit(first, last) + if limit != 0 { + bt.Limit(limit) + } + if field := collectedField(ctx, edgesField, nodeField); field != nil { + if err := bt.collectField(ctx, limit == 1, graphql.GetOperationContext(ctx), *field, []string{edgesField, nodeField}); err != nil { + return nil, err + } + } + bt = pager.applyOrder(bt) + nodes, err := bt.All(ctx) + if err != nil { + return nil, err + } + conn.build(nodes, pager, after, first, before, last) + return conn, nil +} + +var ( + // BuildTagOrderFieldKey orders BuildTag by key. + BuildTagOrderFieldKey = &BuildTagOrderField{ + Value: func(bt *BuildTag) (ent.Value, error) { + return bt.Key, nil + }, + column: buildtag.FieldKey, + toTerm: buildtag.ByKey, + toCursor: func(bt *BuildTag) Cursor { + return Cursor{ + ID: bt.ID, + Value: bt.Key, + } + }, + } +) + +// String implement fmt.Stringer interface. +func (f BuildTagOrderField) String() string { + var str string + switch f.column { + case BuildTagOrderFieldKey.column: + str = "KEY" + } + return str +} + +// MarshalGQL implements graphql.Marshaler interface. +func (f BuildTagOrderField) MarshalGQL(w io.Writer) { + io.WriteString(w, strconv.Quote(f.String())) +} + +// UnmarshalGQL implements graphql.Unmarshaler interface. +func (f *BuildTagOrderField) UnmarshalGQL(v interface{}) error { + str, ok := v.(string) + if !ok { + return fmt.Errorf("BuildTagOrderField %T must be a string", v) + } + switch str { + case "KEY": + *f = *BuildTagOrderFieldKey + default: + return fmt.Errorf("%s is not a valid BuildTagOrderField", str) + } + return nil +} + +// BuildTagOrderField defines the ordering field of BuildTag. +type BuildTagOrderField struct { + // Value extracts the ordering value from the given BuildTag. + Value func(*BuildTag) (ent.Value, error) + column string // field or computed. + toTerm func(...sql.OrderTermOption) buildtag.OrderOption + toCursor func(*BuildTag) Cursor +} + +// BuildTagOrder defines the ordering of BuildTag. +type BuildTagOrder struct { + Direction OrderDirection `json:"direction"` + Field *BuildTagOrderField `json:"field"` +} + +// DefaultBuildTagOrder is the default ordering of BuildTag. +var DefaultBuildTagOrder = &BuildTagOrder{ + Direction: entgql.OrderDirectionAsc, + Field: &BuildTagOrderField{ + Value: func(bt *BuildTag) (ent.Value, error) { + return bt.ID, nil + }, + column: buildtag.FieldID, + toTerm: buildtag.ByID, + toCursor: func(bt *BuildTag) Cursor { + return Cursor{ID: bt.ID} + }, + }, +} + +// ToEdge converts BuildTag into BuildTagEdge. +func (bt *BuildTag) ToEdge(order *BuildTagOrder) *BuildTagEdge { + if order == nil { + order = DefaultBuildTagOrder + } + return &BuildTagEdge{ + Node: bt, + Cursor: order.Field.toCursor(bt), + } +} + // ConfigurationEdge is the edge representation of Configuration. type ConfigurationEdge struct { Node *Configuration `json:"node"` @@ -3473,6 +3771,302 @@ func (in *InstanceName) ToEdge(order *InstanceNameOrder) *InstanceNameEdge { } } +// InvocationTagEdge is the edge representation of InvocationTag. +type InvocationTagEdge struct { + Node *InvocationTag `json:"node"` + Cursor Cursor `json:"cursor"` +} + +// InvocationTagConnection is the connection containing edges to InvocationTag. +type InvocationTagConnection struct { + Edges []*InvocationTagEdge `json:"edges"` + PageInfo PageInfo `json:"pageInfo"` + TotalCount int `json:"totalCount"` +} + +func (c *InvocationTagConnection) build(nodes []*InvocationTag, pager *invocationtagPager, after *Cursor, first *int, before *Cursor, last *int) { + c.PageInfo.HasNextPage = before != nil + c.PageInfo.HasPreviousPage = after != nil + if first != nil && *first+1 == len(nodes) { + c.PageInfo.HasNextPage = true + nodes = nodes[:len(nodes)-1] + } else if last != nil && *last+1 == len(nodes) { + c.PageInfo.HasPreviousPage = true + nodes = nodes[:len(nodes)-1] + } + var nodeAt func(int) *InvocationTag + if last != nil { + n := len(nodes) - 1 + nodeAt = func(i int) *InvocationTag { + return nodes[n-i] + } + } else { + nodeAt = func(i int) *InvocationTag { + return nodes[i] + } + } + c.Edges = make([]*InvocationTagEdge, len(nodes)) + for i := range nodes { + node := nodeAt(i) + c.Edges[i] = &InvocationTagEdge{ + Node: node, + Cursor: pager.toCursor(node), + } + } + if l := len(c.Edges); l > 0 { + c.PageInfo.StartCursor = &c.Edges[0].Cursor + c.PageInfo.EndCursor = &c.Edges[l-1].Cursor + } + if c.TotalCount == 0 { + c.TotalCount = len(nodes) + } +} + +// InvocationTagPaginateOption enables pagination customization. +type InvocationTagPaginateOption func(*invocationtagPager) error + +// WithInvocationTagOrder configures pagination ordering. +func WithInvocationTagOrder(order *InvocationTagOrder) InvocationTagPaginateOption { + if order == nil { + order = DefaultInvocationTagOrder + } + o := *order + return func(pager *invocationtagPager) error { + if err := o.Direction.Validate(); err != nil { + return err + } + if o.Field == nil { + o.Field = DefaultInvocationTagOrder.Field + } + pager.order = &o + return nil + } +} + +// WithInvocationTagFilter configures pagination filter. +func WithInvocationTagFilter(filter func(*InvocationTagQuery) (*InvocationTagQuery, error)) InvocationTagPaginateOption { + return func(pager *invocationtagPager) error { + if filter == nil { + return errors.New("InvocationTagQuery filter cannot be nil") + } + pager.filter = filter + return nil + } +} + +type invocationtagPager struct { + reverse bool + order *InvocationTagOrder + filter func(*InvocationTagQuery) (*InvocationTagQuery, error) +} + +func newInvocationTagPager(opts []InvocationTagPaginateOption, reverse bool) (*invocationtagPager, error) { + pager := &invocationtagPager{reverse: reverse} + for _, opt := range opts { + if err := opt(pager); err != nil { + return nil, err + } + } + if pager.order == nil { + pager.order = DefaultInvocationTagOrder + } + return pager, nil +} + +func (p *invocationtagPager) applyFilter(query *InvocationTagQuery) (*InvocationTagQuery, error) { + if p.filter != nil { + return p.filter(query) + } + return query, nil +} + +func (p *invocationtagPager) toCursor(it *InvocationTag) Cursor { + return p.order.Field.toCursor(it) +} + +func (p *invocationtagPager) applyCursors(query *InvocationTagQuery, after, before *Cursor) (*InvocationTagQuery, error) { + direction := p.order.Direction + if p.reverse { + direction = direction.Reverse() + } + for _, predicate := range entgql.CursorsPredicate(after, before, DefaultInvocationTagOrder.Field.column, p.order.Field.column, direction) { + query = query.Where(predicate) + } + return query, nil +} + +func (p *invocationtagPager) applyOrder(query *InvocationTagQuery) *InvocationTagQuery { + direction := p.order.Direction + if p.reverse { + direction = direction.Reverse() + } + query = query.Order(p.order.Field.toTerm(direction.OrderTermOption())) + if p.order.Field != DefaultInvocationTagOrder.Field { + query = query.Order(DefaultInvocationTagOrder.Field.toTerm(direction.OrderTermOption())) + } + if len(query.ctx.Fields) > 0 { + query.ctx.AppendFieldOnce(p.order.Field.column) + } + return query +} + +func (p *invocationtagPager) orderExpr(query *InvocationTagQuery) sql.Querier { + direction := p.order.Direction + if p.reverse { + direction = direction.Reverse() + } + if len(query.ctx.Fields) > 0 { + query.ctx.AppendFieldOnce(p.order.Field.column) + } + return sql.ExprFunc(func(b *sql.Builder) { + b.Ident(p.order.Field.column).Pad().WriteString(string(direction)) + if p.order.Field != DefaultInvocationTagOrder.Field { + b.Comma().Ident(DefaultInvocationTagOrder.Field.column).Pad().WriteString(string(direction)) + } + }) +} + +// Paginate executes the query and returns a relay based cursor connection to InvocationTag. +func (it *InvocationTagQuery) Paginate( + ctx context.Context, after *Cursor, first *int, + before *Cursor, last *int, opts ...InvocationTagPaginateOption, +) (*InvocationTagConnection, error) { + if err := validateFirstLast(first, last); err != nil { + return nil, err + } + pager, err := newInvocationTagPager(opts, last != nil) + if err != nil { + return nil, err + } + if it, err = pager.applyFilter(it); err != nil { + return nil, err + } + conn := &InvocationTagConnection{Edges: []*InvocationTagEdge{}} + ignoredEdges := !hasCollectedField(ctx, edgesField) + needTotalCount := hasCollectedField(ctx, totalCountField) + needPageInfo := hasCollectedField(ctx, pageInfoField) + hasPagination := after != nil || first != nil || before != nil || last != nil + if (needTotalCount && hasPagination) || (ignoredEdges && (needTotalCount || needPageInfo)) { + c := it.Clone() + c.ctx.Fields = nil + if conn.TotalCount, err = c.Count(ctx); err != nil { + return nil, err + } + conn.PageInfo.HasNextPage = first != nil && conn.TotalCount > 0 + conn.PageInfo.HasPreviousPage = last != nil && conn.TotalCount > 0 + } + if ignoredEdges || (first != nil && *first == 0) || (last != nil && *last == 0) { + return conn, nil + } + if it, err = pager.applyCursors(it, after, before); err != nil { + return nil, err + } + limit := paginateLimit(first, last) + if limit != 0 { + it.Limit(limit) + } + if field := collectedField(ctx, edgesField, nodeField); field != nil { + if err := it.collectField(ctx, limit == 1, graphql.GetOperationContext(ctx), *field, []string{edgesField, nodeField}); err != nil { + return nil, err + } + } + it = pager.applyOrder(it) + nodes, err := it.All(ctx) + if err != nil { + return nil, err + } + conn.build(nodes, pager, after, first, before, last) + return conn, nil +} + +var ( + // InvocationTagOrderFieldKey orders InvocationTag by key. + InvocationTagOrderFieldKey = &InvocationTagOrderField{ + Value: func(it *InvocationTag) (ent.Value, error) { + return it.Key, nil + }, + column: invocationtag.FieldKey, + toTerm: invocationtag.ByKey, + toCursor: func(it *InvocationTag) Cursor { + return Cursor{ + ID: it.ID, + Value: it.Key, + } + }, + } +) + +// String implement fmt.Stringer interface. +func (f InvocationTagOrderField) String() string { + var str string + switch f.column { + case InvocationTagOrderFieldKey.column: + str = "KEY" + } + return str +} + +// MarshalGQL implements graphql.Marshaler interface. +func (f InvocationTagOrderField) MarshalGQL(w io.Writer) { + io.WriteString(w, strconv.Quote(f.String())) +} + +// UnmarshalGQL implements graphql.Unmarshaler interface. +func (f *InvocationTagOrderField) UnmarshalGQL(v interface{}) error { + str, ok := v.(string) + if !ok { + return fmt.Errorf("InvocationTagOrderField %T must be a string", v) + } + switch str { + case "KEY": + *f = *InvocationTagOrderFieldKey + default: + return fmt.Errorf("%s is not a valid InvocationTagOrderField", str) + } + return nil +} + +// InvocationTagOrderField defines the ordering field of InvocationTag. +type InvocationTagOrderField struct { + // Value extracts the ordering value from the given InvocationTag. + Value func(*InvocationTag) (ent.Value, error) + column string // field or computed. + toTerm func(...sql.OrderTermOption) invocationtag.OrderOption + toCursor func(*InvocationTag) Cursor +} + +// InvocationTagOrder defines the ordering of InvocationTag. +type InvocationTagOrder struct { + Direction OrderDirection `json:"direction"` + Field *InvocationTagOrderField `json:"field"` +} + +// DefaultInvocationTagOrder is the default ordering of InvocationTag. +var DefaultInvocationTagOrder = &InvocationTagOrder{ + Direction: entgql.OrderDirectionAsc, + Field: &InvocationTagOrderField{ + Value: func(it *InvocationTag) (ent.Value, error) { + return it.ID, nil + }, + column: invocationtag.FieldID, + toTerm: invocationtag.ByID, + toCursor: func(it *InvocationTag) Cursor { + return Cursor{ID: it.ID} + }, + }, +} + +// ToEdge converts InvocationTag into InvocationTagEdge. +func (it *InvocationTag) ToEdge(order *InvocationTagOrder) *InvocationTagEdge { + if order == nil { + order = DefaultInvocationTagOrder + } + return &InvocationTagEdge{ + Node: it, + Cursor: order.Field.toCursor(it), + } +} + // InvocationTargetEdge is the edge representation of InvocationTarget. type InvocationTargetEdge struct { Node *InvocationTarget `json:"node"` diff --git a/ent/gen/ent/gql_where_input.go b/ent/gen/ent/gql_where_input.go index 7c429a8b..4059818e 100644 --- a/ent/gen/ent/gql_where_input.go +++ b/ent/gen/ent/gql_where_input.go @@ -16,10 +16,12 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/garbagemetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -2969,84 +2971,26 @@ type BazelInvocationWhereInput struct { EndedAtIsNil bool `json:"endedAtIsNil,omitempty"` EndedAtNotNil bool `json:"endedAtNotNil,omitempty"` - // "change_number" field predicates. - ChangeNumber *int `json:"changeNumber,omitempty"` - ChangeNumberNEQ *int `json:"changeNumberNEQ,omitempty"` - ChangeNumberIn []int `json:"changeNumberIn,omitempty"` - ChangeNumberNotIn []int `json:"changeNumberNotIn,omitempty"` - ChangeNumberGT *int `json:"changeNumberGT,omitempty"` - ChangeNumberGTE *int `json:"changeNumberGTE,omitempty"` - ChangeNumberLT *int `json:"changeNumberLT,omitempty"` - ChangeNumberLTE *int `json:"changeNumberLTE,omitempty"` - ChangeNumberIsNil bool `json:"changeNumberIsNil,omitempty"` - ChangeNumberNotNil bool `json:"changeNumberNotNil,omitempty"` - - // "patchset_number" field predicates. - PatchsetNumber *int `json:"patchsetNumber,omitempty"` - PatchsetNumberNEQ *int `json:"patchsetNumberNEQ,omitempty"` - PatchsetNumberIn []int `json:"patchsetNumberIn,omitempty"` - PatchsetNumberNotIn []int `json:"patchsetNumberNotIn,omitempty"` - PatchsetNumberGT *int `json:"patchsetNumberGT,omitempty"` - PatchsetNumberGTE *int `json:"patchsetNumberGTE,omitempty"` - PatchsetNumberLT *int `json:"patchsetNumberLT,omitempty"` - PatchsetNumberLTE *int `json:"patchsetNumberLTE,omitempty"` - PatchsetNumberIsNil bool `json:"patchsetNumberIsNil,omitempty"` - PatchsetNumberNotNil bool `json:"patchsetNumberNotNil,omitempty"` - // "bep_completed" field predicates. BepCompleted *bool `json:"bepCompleted,omitempty"` BepCompletedNEQ *bool `json:"bepCompletedNEQ,omitempty"` - // "step_label" field predicates. - StepLabel *string `json:"stepLabel,omitempty"` - StepLabelNEQ *string `json:"stepLabelNEQ,omitempty"` - StepLabelIn []string `json:"stepLabelIn,omitempty"` - StepLabelNotIn []string `json:"stepLabelNotIn,omitempty"` - StepLabelGT *string `json:"stepLabelGT,omitempty"` - StepLabelGTE *string `json:"stepLabelGTE,omitempty"` - StepLabelLT *string `json:"stepLabelLT,omitempty"` - StepLabelLTE *string `json:"stepLabelLTE,omitempty"` - StepLabelContains *string `json:"stepLabelContains,omitempty"` - StepLabelHasPrefix *string `json:"stepLabelHasPrefix,omitempty"` - StepLabelHasSuffix *string `json:"stepLabelHasSuffix,omitempty"` - StepLabelIsNil bool `json:"stepLabelIsNil,omitempty"` - StepLabelNotNil bool `json:"stepLabelNotNil,omitempty"` - StepLabelEqualFold *string `json:"stepLabelEqualFold,omitempty"` - StepLabelContainsFold *string `json:"stepLabelContainsFold,omitempty"` - - // "user_email" field predicates. - UserEmail *string `json:"userEmail,omitempty"` - UserEmailNEQ *string `json:"userEmailNEQ,omitempty"` - UserEmailIn []string `json:"userEmailIn,omitempty"` - UserEmailNotIn []string `json:"userEmailNotIn,omitempty"` - UserEmailGT *string `json:"userEmailGT,omitempty"` - UserEmailGTE *string `json:"userEmailGTE,omitempty"` - UserEmailLT *string `json:"userEmailLT,omitempty"` - UserEmailLTE *string `json:"userEmailLTE,omitempty"` - UserEmailContains *string `json:"userEmailContains,omitempty"` - UserEmailHasPrefix *string `json:"userEmailHasPrefix,omitempty"` - UserEmailHasSuffix *string `json:"userEmailHasSuffix,omitempty"` - UserEmailIsNil bool `json:"userEmailIsNil,omitempty"` - UserEmailNotNil bool `json:"userEmailNotNil,omitempty"` - UserEmailEqualFold *string `json:"userEmailEqualFold,omitempty"` - UserEmailContainsFold *string `json:"userEmailContainsFold,omitempty"` - - // "user_ldap" field predicates. - UserLdap *string `json:"userLdap,omitempty"` - UserLdapNEQ *string `json:"userLdapNEQ,omitempty"` - UserLdapIn []string `json:"userLdapIn,omitempty"` - UserLdapNotIn []string `json:"userLdapNotIn,omitempty"` - UserLdapGT *string `json:"userLdapGT,omitempty"` - UserLdapGTE *string `json:"userLdapGTE,omitempty"` - UserLdapLT *string `json:"userLdapLT,omitempty"` - UserLdapLTE *string `json:"userLdapLTE,omitempty"` - UserLdapContains *string `json:"userLdapContains,omitempty"` - UserLdapHasPrefix *string `json:"userLdapHasPrefix,omitempty"` - UserLdapHasSuffix *string `json:"userLdapHasSuffix,omitempty"` - UserLdapIsNil bool `json:"userLdapIsNil,omitempty"` - UserLdapNotNil bool `json:"userLdapNotNil,omitempty"` - UserLdapEqualFold *string `json:"userLdapEqualFold,omitempty"` - UserLdapContainsFold *string `json:"userLdapContainsFold,omitempty"` + // "username" field predicates. + Username *string `json:"username,omitempty"` + UsernameNEQ *string `json:"usernameNEQ,omitempty"` + UsernameIn []string `json:"usernameIn,omitempty"` + UsernameNotIn []string `json:"usernameNotIn,omitempty"` + UsernameGT *string `json:"usernameGT,omitempty"` + UsernameGTE *string `json:"usernameGTE,omitempty"` + UsernameLT *string `json:"usernameLT,omitempty"` + UsernameLTE *string `json:"usernameLTE,omitempty"` + UsernameContains *string `json:"usernameContains,omitempty"` + UsernameHasPrefix *string `json:"usernameHasPrefix,omitempty"` + UsernameHasSuffix *string `json:"usernameHasSuffix,omitempty"` + UsernameIsNil bool `json:"usernameIsNil,omitempty"` + UsernameNotNil bool `json:"usernameNotNil,omitempty"` + UsernameEqualFold *string `json:"usernameEqualFold,omitempty"` + UsernameContainsFold *string `json:"usernameContainsFold,omitempty"` // "hostname" field predicates. Hostname *string `json:"hostname,omitempty"` @@ -3065,12 +3009,6 @@ type BazelInvocationWhereInput struct { HostnameEqualFold *string `json:"hostnameEqualFold,omitempty"` HostnameContainsFold *string `json:"hostnameContainsFold,omitempty"` - // "is_ci_worker" field predicates. - IsCiWorker *bool `json:"isCiWorker,omitempty"` - IsCiWorkerNEQ *bool `json:"isCiWorkerNEQ,omitempty"` - IsCiWorkerIsNil bool `json:"isCiWorkerIsNil,omitempty"` - IsCiWorkerNotNil bool `json:"isCiWorkerNotNil,omitempty"` - // "num_fetches" field predicates. NumFetches *int64 `json:"numFetches,omitempty"` NumFetchesNEQ *int64 `json:"numFetchesNEQ,omitempty"` @@ -3158,6 +3096,10 @@ type BazelInvocationWhereInput struct { HasAuthenticatedUser *bool `json:"hasAuthenticatedUser,omitempty"` HasAuthenticatedUserWith []*AuthenticatedUserWhereInput `json:"hasAuthenticatedUserWith,omitempty"` + // "tags" edge predicates. + HasTags *bool `json:"hasTags,omitempty"` + HasTagsWith []*InvocationTagWhereInput `json:"hasTagsWith,omitempty"` + // "connection_metadata" edge predicates. HasConnectionMetadata *bool `json:"hasConnectionMetadata,omitempty"` HasConnectionMetadataWith []*ConnectionMetadataWhereInput `json:"hasConnectionMetadataWith,omitempty"` @@ -3362,206 +3304,56 @@ func (i *BazelInvocationWhereInput) P() (predicate.BazelInvocation, error) { if i.EndedAtNotNil { predicates = append(predicates, bazelinvocation.EndedAtNotNil()) } - if i.ChangeNumber != nil { - predicates = append(predicates, bazelinvocation.ChangeNumberEQ(*i.ChangeNumber)) - } - if i.ChangeNumberNEQ != nil { - predicates = append(predicates, bazelinvocation.ChangeNumberNEQ(*i.ChangeNumberNEQ)) - } - if len(i.ChangeNumberIn) > 0 { - predicates = append(predicates, bazelinvocation.ChangeNumberIn(i.ChangeNumberIn...)) - } - if len(i.ChangeNumberNotIn) > 0 { - predicates = append(predicates, bazelinvocation.ChangeNumberNotIn(i.ChangeNumberNotIn...)) - } - if i.ChangeNumberGT != nil { - predicates = append(predicates, bazelinvocation.ChangeNumberGT(*i.ChangeNumberGT)) - } - if i.ChangeNumberGTE != nil { - predicates = append(predicates, bazelinvocation.ChangeNumberGTE(*i.ChangeNumberGTE)) - } - if i.ChangeNumberLT != nil { - predicates = append(predicates, bazelinvocation.ChangeNumberLT(*i.ChangeNumberLT)) - } - if i.ChangeNumberLTE != nil { - predicates = append(predicates, bazelinvocation.ChangeNumberLTE(*i.ChangeNumberLTE)) - } - if i.ChangeNumberIsNil { - predicates = append(predicates, bazelinvocation.ChangeNumberIsNil()) - } - if i.ChangeNumberNotNil { - predicates = append(predicates, bazelinvocation.ChangeNumberNotNil()) - } - if i.PatchsetNumber != nil { - predicates = append(predicates, bazelinvocation.PatchsetNumberEQ(*i.PatchsetNumber)) - } - if i.PatchsetNumberNEQ != nil { - predicates = append(predicates, bazelinvocation.PatchsetNumberNEQ(*i.PatchsetNumberNEQ)) - } - if len(i.PatchsetNumberIn) > 0 { - predicates = append(predicates, bazelinvocation.PatchsetNumberIn(i.PatchsetNumberIn...)) - } - if len(i.PatchsetNumberNotIn) > 0 { - predicates = append(predicates, bazelinvocation.PatchsetNumberNotIn(i.PatchsetNumberNotIn...)) - } - if i.PatchsetNumberGT != nil { - predicates = append(predicates, bazelinvocation.PatchsetNumberGT(*i.PatchsetNumberGT)) - } - if i.PatchsetNumberGTE != nil { - predicates = append(predicates, bazelinvocation.PatchsetNumberGTE(*i.PatchsetNumberGTE)) - } - if i.PatchsetNumberLT != nil { - predicates = append(predicates, bazelinvocation.PatchsetNumberLT(*i.PatchsetNumberLT)) - } - if i.PatchsetNumberLTE != nil { - predicates = append(predicates, bazelinvocation.PatchsetNumberLTE(*i.PatchsetNumberLTE)) - } - if i.PatchsetNumberIsNil { - predicates = append(predicates, bazelinvocation.PatchsetNumberIsNil()) - } - if i.PatchsetNumberNotNil { - predicates = append(predicates, bazelinvocation.PatchsetNumberNotNil()) - } if i.BepCompleted != nil { predicates = append(predicates, bazelinvocation.BepCompletedEQ(*i.BepCompleted)) } if i.BepCompletedNEQ != nil { predicates = append(predicates, bazelinvocation.BepCompletedNEQ(*i.BepCompletedNEQ)) } - if i.StepLabel != nil { - predicates = append(predicates, bazelinvocation.StepLabelEQ(*i.StepLabel)) - } - if i.StepLabelNEQ != nil { - predicates = append(predicates, bazelinvocation.StepLabelNEQ(*i.StepLabelNEQ)) - } - if len(i.StepLabelIn) > 0 { - predicates = append(predicates, bazelinvocation.StepLabelIn(i.StepLabelIn...)) - } - if len(i.StepLabelNotIn) > 0 { - predicates = append(predicates, bazelinvocation.StepLabelNotIn(i.StepLabelNotIn...)) - } - if i.StepLabelGT != nil { - predicates = append(predicates, bazelinvocation.StepLabelGT(*i.StepLabelGT)) - } - if i.StepLabelGTE != nil { - predicates = append(predicates, bazelinvocation.StepLabelGTE(*i.StepLabelGTE)) - } - if i.StepLabelLT != nil { - predicates = append(predicates, bazelinvocation.StepLabelLT(*i.StepLabelLT)) - } - if i.StepLabelLTE != nil { - predicates = append(predicates, bazelinvocation.StepLabelLTE(*i.StepLabelLTE)) - } - if i.StepLabelContains != nil { - predicates = append(predicates, bazelinvocation.StepLabelContains(*i.StepLabelContains)) - } - if i.StepLabelHasPrefix != nil { - predicates = append(predicates, bazelinvocation.StepLabelHasPrefix(*i.StepLabelHasPrefix)) + if i.Username != nil { + predicates = append(predicates, bazelinvocation.UsernameEQ(*i.Username)) } - if i.StepLabelHasSuffix != nil { - predicates = append(predicates, bazelinvocation.StepLabelHasSuffix(*i.StepLabelHasSuffix)) + if i.UsernameNEQ != nil { + predicates = append(predicates, bazelinvocation.UsernameNEQ(*i.UsernameNEQ)) } - if i.StepLabelIsNil { - predicates = append(predicates, bazelinvocation.StepLabelIsNil()) + if len(i.UsernameIn) > 0 { + predicates = append(predicates, bazelinvocation.UsernameIn(i.UsernameIn...)) } - if i.StepLabelNotNil { - predicates = append(predicates, bazelinvocation.StepLabelNotNil()) + if len(i.UsernameNotIn) > 0 { + predicates = append(predicates, bazelinvocation.UsernameNotIn(i.UsernameNotIn...)) } - if i.StepLabelEqualFold != nil { - predicates = append(predicates, bazelinvocation.StepLabelEqualFold(*i.StepLabelEqualFold)) + if i.UsernameGT != nil { + predicates = append(predicates, bazelinvocation.UsernameGT(*i.UsernameGT)) } - if i.StepLabelContainsFold != nil { - predicates = append(predicates, bazelinvocation.StepLabelContainsFold(*i.StepLabelContainsFold)) + if i.UsernameGTE != nil { + predicates = append(predicates, bazelinvocation.UsernameGTE(*i.UsernameGTE)) } - if i.UserEmail != nil { - predicates = append(predicates, bazelinvocation.UserEmailEQ(*i.UserEmail)) + if i.UsernameLT != nil { + predicates = append(predicates, bazelinvocation.UsernameLT(*i.UsernameLT)) } - if i.UserEmailNEQ != nil { - predicates = append(predicates, bazelinvocation.UserEmailNEQ(*i.UserEmailNEQ)) + if i.UsernameLTE != nil { + predicates = append(predicates, bazelinvocation.UsernameLTE(*i.UsernameLTE)) } - if len(i.UserEmailIn) > 0 { - predicates = append(predicates, bazelinvocation.UserEmailIn(i.UserEmailIn...)) + if i.UsernameContains != nil { + predicates = append(predicates, bazelinvocation.UsernameContains(*i.UsernameContains)) } - if len(i.UserEmailNotIn) > 0 { - predicates = append(predicates, bazelinvocation.UserEmailNotIn(i.UserEmailNotIn...)) + if i.UsernameHasPrefix != nil { + predicates = append(predicates, bazelinvocation.UsernameHasPrefix(*i.UsernameHasPrefix)) } - if i.UserEmailGT != nil { - predicates = append(predicates, bazelinvocation.UserEmailGT(*i.UserEmailGT)) + if i.UsernameHasSuffix != nil { + predicates = append(predicates, bazelinvocation.UsernameHasSuffix(*i.UsernameHasSuffix)) } - if i.UserEmailGTE != nil { - predicates = append(predicates, bazelinvocation.UserEmailGTE(*i.UserEmailGTE)) + if i.UsernameIsNil { + predicates = append(predicates, bazelinvocation.UsernameIsNil()) } - if i.UserEmailLT != nil { - predicates = append(predicates, bazelinvocation.UserEmailLT(*i.UserEmailLT)) + if i.UsernameNotNil { + predicates = append(predicates, bazelinvocation.UsernameNotNil()) } - if i.UserEmailLTE != nil { - predicates = append(predicates, bazelinvocation.UserEmailLTE(*i.UserEmailLTE)) + if i.UsernameEqualFold != nil { + predicates = append(predicates, bazelinvocation.UsernameEqualFold(*i.UsernameEqualFold)) } - if i.UserEmailContains != nil { - predicates = append(predicates, bazelinvocation.UserEmailContains(*i.UserEmailContains)) - } - if i.UserEmailHasPrefix != nil { - predicates = append(predicates, bazelinvocation.UserEmailHasPrefix(*i.UserEmailHasPrefix)) - } - if i.UserEmailHasSuffix != nil { - predicates = append(predicates, bazelinvocation.UserEmailHasSuffix(*i.UserEmailHasSuffix)) - } - if i.UserEmailIsNil { - predicates = append(predicates, bazelinvocation.UserEmailIsNil()) - } - if i.UserEmailNotNil { - predicates = append(predicates, bazelinvocation.UserEmailNotNil()) - } - if i.UserEmailEqualFold != nil { - predicates = append(predicates, bazelinvocation.UserEmailEqualFold(*i.UserEmailEqualFold)) - } - if i.UserEmailContainsFold != nil { - predicates = append(predicates, bazelinvocation.UserEmailContainsFold(*i.UserEmailContainsFold)) - } - if i.UserLdap != nil { - predicates = append(predicates, bazelinvocation.UserLdapEQ(*i.UserLdap)) - } - if i.UserLdapNEQ != nil { - predicates = append(predicates, bazelinvocation.UserLdapNEQ(*i.UserLdapNEQ)) - } - if len(i.UserLdapIn) > 0 { - predicates = append(predicates, bazelinvocation.UserLdapIn(i.UserLdapIn...)) - } - if len(i.UserLdapNotIn) > 0 { - predicates = append(predicates, bazelinvocation.UserLdapNotIn(i.UserLdapNotIn...)) - } - if i.UserLdapGT != nil { - predicates = append(predicates, bazelinvocation.UserLdapGT(*i.UserLdapGT)) - } - if i.UserLdapGTE != nil { - predicates = append(predicates, bazelinvocation.UserLdapGTE(*i.UserLdapGTE)) - } - if i.UserLdapLT != nil { - predicates = append(predicates, bazelinvocation.UserLdapLT(*i.UserLdapLT)) - } - if i.UserLdapLTE != nil { - predicates = append(predicates, bazelinvocation.UserLdapLTE(*i.UserLdapLTE)) - } - if i.UserLdapContains != nil { - predicates = append(predicates, bazelinvocation.UserLdapContains(*i.UserLdapContains)) - } - if i.UserLdapHasPrefix != nil { - predicates = append(predicates, bazelinvocation.UserLdapHasPrefix(*i.UserLdapHasPrefix)) - } - if i.UserLdapHasSuffix != nil { - predicates = append(predicates, bazelinvocation.UserLdapHasSuffix(*i.UserLdapHasSuffix)) - } - if i.UserLdapIsNil { - predicates = append(predicates, bazelinvocation.UserLdapIsNil()) - } - if i.UserLdapNotNil { - predicates = append(predicates, bazelinvocation.UserLdapNotNil()) - } - if i.UserLdapEqualFold != nil { - predicates = append(predicates, bazelinvocation.UserLdapEqualFold(*i.UserLdapEqualFold)) - } - if i.UserLdapContainsFold != nil { - predicates = append(predicates, bazelinvocation.UserLdapContainsFold(*i.UserLdapContainsFold)) + if i.UsernameContainsFold != nil { + predicates = append(predicates, bazelinvocation.UsernameContainsFold(*i.UsernameContainsFold)) } if i.Hostname != nil { predicates = append(predicates, bazelinvocation.HostnameEQ(*i.Hostname)) @@ -3608,18 +3400,6 @@ func (i *BazelInvocationWhereInput) P() (predicate.BazelInvocation, error) { if i.HostnameContainsFold != nil { predicates = append(predicates, bazelinvocation.HostnameContainsFold(*i.HostnameContainsFold)) } - if i.IsCiWorker != nil { - predicates = append(predicates, bazelinvocation.IsCiWorkerEQ(*i.IsCiWorker)) - } - if i.IsCiWorkerNEQ != nil { - predicates = append(predicates, bazelinvocation.IsCiWorkerNEQ(*i.IsCiWorkerNEQ)) - } - if i.IsCiWorkerIsNil { - predicates = append(predicates, bazelinvocation.IsCiWorkerIsNil()) - } - if i.IsCiWorkerNotNil { - predicates = append(predicates, bazelinvocation.IsCiWorkerNotNil()) - } if i.NumFetches != nil { predicates = append(predicates, bazelinvocation.NumFetchesEQ(*i.NumFetches)) } @@ -3870,6 +3650,24 @@ func (i *BazelInvocationWhereInput) P() (predicate.BazelInvocation, error) { } predicates = append(predicates, bazelinvocation.HasAuthenticatedUserWith(with...)) } + if i.HasTags != nil { + p := bazelinvocation.HasTags() + if !*i.HasTags { + p = bazelinvocation.Not(p) + } + predicates = append(predicates, p) + } + if len(i.HasTagsWith) > 0 { + with := make([]predicate.InvocationTag, 0, len(i.HasTagsWith)) + for _, w := range i.HasTagsWith { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'HasTagsWith'", err) + } + with = append(with, p) + } + predicates = append(predicates, bazelinvocation.HasTagsWith(with...)) + } if i.HasConnectionMetadata != nil { p := bazelinvocation.HasConnectionMetadata() if !*i.HasConnectionMetadata { @@ -4005,21 +3803,6 @@ type BuildWhereInput struct { IDLT *int64 `json:"idLT,omitempty"` IDLTE *int64 `json:"idLTE,omitempty"` - // "build_url" field predicates. - BuildURL *string `json:"buildURL,omitempty"` - BuildURLNEQ *string `json:"buildURLNEQ,omitempty"` - BuildURLIn []string `json:"buildURLIn,omitempty"` - BuildURLNotIn []string `json:"buildURLNotIn,omitempty"` - BuildURLGT *string `json:"buildURLGT,omitempty"` - BuildURLGTE *string `json:"buildURLGTE,omitempty"` - BuildURLLT *string `json:"buildURLLT,omitempty"` - BuildURLLTE *string `json:"buildURLLTE,omitempty"` - BuildURLContains *string `json:"buildURLContains,omitempty"` - BuildURLHasPrefix *string `json:"buildURLHasPrefix,omitempty"` - BuildURLHasSuffix *string `json:"buildURLHasSuffix,omitempty"` - BuildURLEqualFold *string `json:"buildURLEqualFold,omitempty"` - BuildURLContainsFold *string `json:"buildURLContainsFold,omitempty"` - // "build_uuid" field predicates. BuildUUID *uuid.UUID `json:"buildUUID,omitempty"` BuildUUIDNEQ *uuid.UUID `json:"buildUUIDNEQ,omitempty"` @@ -4047,6 +3830,10 @@ type BuildWhereInput struct { // "invocations" edge predicates. HasInvocations *bool `json:"hasInvocations,omitempty"` HasInvocationsWith []*BazelInvocationWhereInput `json:"hasInvocationsWith,omitempty"` + + // "tags" edge predicates. + HasTags *bool `json:"hasTags,omitempty"` + HasTagsWith []*BuildTagWhereInput `json:"hasTagsWith,omitempty"` } // AddPredicates adds custom predicates to the where input to be used during the filtering phase. @@ -4144,45 +3931,6 @@ func (i *BuildWhereInput) P() (predicate.Build, error) { if i.IDLTE != nil { predicates = append(predicates, build.IDLTE(*i.IDLTE)) } - if i.BuildURL != nil { - predicates = append(predicates, build.BuildURLEQ(*i.BuildURL)) - } - if i.BuildURLNEQ != nil { - predicates = append(predicates, build.BuildURLNEQ(*i.BuildURLNEQ)) - } - if len(i.BuildURLIn) > 0 { - predicates = append(predicates, build.BuildURLIn(i.BuildURLIn...)) - } - if len(i.BuildURLNotIn) > 0 { - predicates = append(predicates, build.BuildURLNotIn(i.BuildURLNotIn...)) - } - if i.BuildURLGT != nil { - predicates = append(predicates, build.BuildURLGT(*i.BuildURLGT)) - } - if i.BuildURLGTE != nil { - predicates = append(predicates, build.BuildURLGTE(*i.BuildURLGTE)) - } - if i.BuildURLLT != nil { - predicates = append(predicates, build.BuildURLLT(*i.BuildURLLT)) - } - if i.BuildURLLTE != nil { - predicates = append(predicates, build.BuildURLLTE(*i.BuildURLLTE)) - } - if i.BuildURLContains != nil { - predicates = append(predicates, build.BuildURLContains(*i.BuildURLContains)) - } - if i.BuildURLHasPrefix != nil { - predicates = append(predicates, build.BuildURLHasPrefix(*i.BuildURLHasPrefix)) - } - if i.BuildURLHasSuffix != nil { - predicates = append(predicates, build.BuildURLHasSuffix(*i.BuildURLHasSuffix)) - } - if i.BuildURLEqualFold != nil { - predicates = append(predicates, build.BuildURLEqualFold(*i.BuildURLEqualFold)) - } - if i.BuildURLContainsFold != nil { - predicates = append(predicates, build.BuildURLContainsFold(*i.BuildURLContainsFold)) - } if i.BuildUUID != nil { predicates = append(predicates, build.BuildUUIDEQ(*i.BuildUUID)) } @@ -4268,6 +4016,24 @@ func (i *BuildWhereInput) P() (predicate.Build, error) { } predicates = append(predicates, build.HasInvocationsWith(with...)) } + if i.HasTags != nil { + p := build.HasTags() + if !*i.HasTags { + p = build.Not(p) + } + predicates = append(predicates, p) + } + if len(i.HasTagsWith) > 0 { + with := make([]predicate.BuildTag, 0, len(i.HasTagsWith)) + for _, w := range i.HasTagsWith { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'HasTagsWith'", err) + } + with = append(with, p) + } + predicates = append(predicates, build.HasTagsWith(with...)) + } switch len(predicates) { case 0: return nil, ErrEmptyBuildWhereInput @@ -4802,6 +4568,260 @@ func (i *BuildGraphMetricsWhereInput) P() (predicate.BuildGraphMetrics, error) { } } +// BuildTagWhereInput represents a where input for filtering BuildTag queries. +type BuildTagWhereInput struct { + Predicates []predicate.BuildTag `json:"-"` + Not *BuildTagWhereInput `json:"not,omitempty"` + Or []*BuildTagWhereInput `json:"or,omitempty"` + And []*BuildTagWhereInput `json:"and,omitempty"` + + // "id" field predicates. + ID *int64 `json:"id,omitempty"` + IDNEQ *int64 `json:"idNEQ,omitempty"` + IDIn []int64 `json:"idIn,omitempty"` + IDNotIn []int64 `json:"idNotIn,omitempty"` + IDGT *int64 `json:"idGT,omitempty"` + IDGTE *int64 `json:"idGTE,omitempty"` + IDLT *int64 `json:"idLT,omitempty"` + IDLTE *int64 `json:"idLTE,omitempty"` + + // "key" field predicates. + Key *string `json:"key,omitempty"` + KeyNEQ *string `json:"keyNEQ,omitempty"` + KeyIn []string `json:"keyIn,omitempty"` + KeyNotIn []string `json:"keyNotIn,omitempty"` + KeyGT *string `json:"keyGT,omitempty"` + KeyGTE *string `json:"keyGTE,omitempty"` + KeyLT *string `json:"keyLT,omitempty"` + KeyLTE *string `json:"keyLTE,omitempty"` + KeyContains *string `json:"keyContains,omitempty"` + KeyHasPrefix *string `json:"keyHasPrefix,omitempty"` + KeyHasSuffix *string `json:"keyHasSuffix,omitempty"` + KeyEqualFold *string `json:"keyEqualFold,omitempty"` + KeyContainsFold *string `json:"keyContainsFold,omitempty"` + + // "value" field predicates. + Value *string `json:"value,omitempty"` + ValueNEQ *string `json:"valueNEQ,omitempty"` + ValueIn []string `json:"valueIn,omitempty"` + ValueNotIn []string `json:"valueNotIn,omitempty"` + ValueGT *string `json:"valueGT,omitempty"` + ValueGTE *string `json:"valueGTE,omitempty"` + ValueLT *string `json:"valueLT,omitempty"` + ValueLTE *string `json:"valueLTE,omitempty"` + ValueContains *string `json:"valueContains,omitempty"` + ValueHasPrefix *string `json:"valueHasPrefix,omitempty"` + ValueHasSuffix *string `json:"valueHasSuffix,omitempty"` + ValueEqualFold *string `json:"valueEqualFold,omitempty"` + ValueContainsFold *string `json:"valueContainsFold,omitempty"` + + // "build" edge predicates. + HasBuild *bool `json:"hasBuild,omitempty"` + HasBuildWith []*BuildWhereInput `json:"hasBuildWith,omitempty"` +} + +// AddPredicates adds custom predicates to the where input to be used during the filtering phase. +func (i *BuildTagWhereInput) AddPredicates(predicates ...predicate.BuildTag) { + i.Predicates = append(i.Predicates, predicates...) +} + +// Filter applies the BuildTagWhereInput filter on the BuildTagQuery builder. +func (i *BuildTagWhereInput) Filter(q *BuildTagQuery) (*BuildTagQuery, error) { + if i == nil { + return q, nil + } + p, err := i.P() + if err != nil { + if err == ErrEmptyBuildTagWhereInput { + return q, nil + } + return nil, err + } + return q.Where(p), nil +} + +// ErrEmptyBuildTagWhereInput is returned in case the BuildTagWhereInput is empty. +var ErrEmptyBuildTagWhereInput = errors.New("ent: empty predicate BuildTagWhereInput") + +// P returns a predicate for filtering buildtags. +// An error is returned if the input is empty or invalid. +func (i *BuildTagWhereInput) P() (predicate.BuildTag, error) { + var predicates []predicate.BuildTag + if i.Not != nil { + p, err := i.Not.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'not'", err) + } + predicates = append(predicates, buildtag.Not(p)) + } + switch n := len(i.Or); { + case n == 1: + p, err := i.Or[0].P() + if err != nil { + return nil, fmt.Errorf("%w: field 'or'", err) + } + predicates = append(predicates, p) + case n > 1: + or := make([]predicate.BuildTag, 0, n) + for _, w := range i.Or { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'or'", err) + } + or = append(or, p) + } + predicates = append(predicates, buildtag.Or(or...)) + } + switch n := len(i.And); { + case n == 1: + p, err := i.And[0].P() + if err != nil { + return nil, fmt.Errorf("%w: field 'and'", err) + } + predicates = append(predicates, p) + case n > 1: + and := make([]predicate.BuildTag, 0, n) + for _, w := range i.And { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'and'", err) + } + and = append(and, p) + } + predicates = append(predicates, buildtag.And(and...)) + } + predicates = append(predicates, i.Predicates...) + if i.ID != nil { + predicates = append(predicates, buildtag.IDEQ(*i.ID)) + } + if i.IDNEQ != nil { + predicates = append(predicates, buildtag.IDNEQ(*i.IDNEQ)) + } + if len(i.IDIn) > 0 { + predicates = append(predicates, buildtag.IDIn(i.IDIn...)) + } + if len(i.IDNotIn) > 0 { + predicates = append(predicates, buildtag.IDNotIn(i.IDNotIn...)) + } + if i.IDGT != nil { + predicates = append(predicates, buildtag.IDGT(*i.IDGT)) + } + if i.IDGTE != nil { + predicates = append(predicates, buildtag.IDGTE(*i.IDGTE)) + } + if i.IDLT != nil { + predicates = append(predicates, buildtag.IDLT(*i.IDLT)) + } + if i.IDLTE != nil { + predicates = append(predicates, buildtag.IDLTE(*i.IDLTE)) + } + if i.Key != nil { + predicates = append(predicates, buildtag.KeyEQ(*i.Key)) + } + if i.KeyNEQ != nil { + predicates = append(predicates, buildtag.KeyNEQ(*i.KeyNEQ)) + } + if len(i.KeyIn) > 0 { + predicates = append(predicates, buildtag.KeyIn(i.KeyIn...)) + } + if len(i.KeyNotIn) > 0 { + predicates = append(predicates, buildtag.KeyNotIn(i.KeyNotIn...)) + } + if i.KeyGT != nil { + predicates = append(predicates, buildtag.KeyGT(*i.KeyGT)) + } + if i.KeyGTE != nil { + predicates = append(predicates, buildtag.KeyGTE(*i.KeyGTE)) + } + if i.KeyLT != nil { + predicates = append(predicates, buildtag.KeyLT(*i.KeyLT)) + } + if i.KeyLTE != nil { + predicates = append(predicates, buildtag.KeyLTE(*i.KeyLTE)) + } + if i.KeyContains != nil { + predicates = append(predicates, buildtag.KeyContains(*i.KeyContains)) + } + if i.KeyHasPrefix != nil { + predicates = append(predicates, buildtag.KeyHasPrefix(*i.KeyHasPrefix)) + } + if i.KeyHasSuffix != nil { + predicates = append(predicates, buildtag.KeyHasSuffix(*i.KeyHasSuffix)) + } + if i.KeyEqualFold != nil { + predicates = append(predicates, buildtag.KeyEqualFold(*i.KeyEqualFold)) + } + if i.KeyContainsFold != nil { + predicates = append(predicates, buildtag.KeyContainsFold(*i.KeyContainsFold)) + } + if i.Value != nil { + predicates = append(predicates, buildtag.ValueEQ(*i.Value)) + } + if i.ValueNEQ != nil { + predicates = append(predicates, buildtag.ValueNEQ(*i.ValueNEQ)) + } + if len(i.ValueIn) > 0 { + predicates = append(predicates, buildtag.ValueIn(i.ValueIn...)) + } + if len(i.ValueNotIn) > 0 { + predicates = append(predicates, buildtag.ValueNotIn(i.ValueNotIn...)) + } + if i.ValueGT != nil { + predicates = append(predicates, buildtag.ValueGT(*i.ValueGT)) + } + if i.ValueGTE != nil { + predicates = append(predicates, buildtag.ValueGTE(*i.ValueGTE)) + } + if i.ValueLT != nil { + predicates = append(predicates, buildtag.ValueLT(*i.ValueLT)) + } + if i.ValueLTE != nil { + predicates = append(predicates, buildtag.ValueLTE(*i.ValueLTE)) + } + if i.ValueContains != nil { + predicates = append(predicates, buildtag.ValueContains(*i.ValueContains)) + } + if i.ValueHasPrefix != nil { + predicates = append(predicates, buildtag.ValueHasPrefix(*i.ValueHasPrefix)) + } + if i.ValueHasSuffix != nil { + predicates = append(predicates, buildtag.ValueHasSuffix(*i.ValueHasSuffix)) + } + if i.ValueEqualFold != nil { + predicates = append(predicates, buildtag.ValueEqualFold(*i.ValueEqualFold)) + } + if i.ValueContainsFold != nil { + predicates = append(predicates, buildtag.ValueContainsFold(*i.ValueContainsFold)) + } + + if i.HasBuild != nil { + p := buildtag.HasBuild() + if !*i.HasBuild { + p = buildtag.Not(p) + } + predicates = append(predicates, p) + } + if len(i.HasBuildWith) > 0 { + with := make([]predicate.Build, 0, len(i.HasBuildWith)) + for _, w := range i.HasBuildWith { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'HasBuildWith'", err) + } + with = append(with, p) + } + predicates = append(predicates, buildtag.HasBuildWith(with...)) + } + switch len(predicates) { + case 0: + return nil, ErrEmptyBuildTagWhereInput + case 1: + return predicates[0], nil + default: + return buildtag.And(predicates...), nil + } +} + // ConfigurationWhereInput represents a where input for filtering Configuration queries. type ConfigurationWhereInput struct { Predicates []predicate.Configuration `json:"-"` @@ -5924,12 +5944,12 @@ func (i *InstanceNameWhereInput) P() (predicate.InstanceName, error) { } } -// InvocationTargetWhereInput represents a where input for filtering InvocationTarget queries. -type InvocationTargetWhereInput struct { - Predicates []predicate.InvocationTarget `json:"-"` - Not *InvocationTargetWhereInput `json:"not,omitempty"` - Or []*InvocationTargetWhereInput `json:"or,omitempty"` - And []*InvocationTargetWhereInput `json:"and,omitempty"` +// InvocationTagWhereInput represents a where input for filtering InvocationTag queries. +type InvocationTagWhereInput struct { + Predicates []predicate.InvocationTag `json:"-"` + Not *InvocationTagWhereInput `json:"not,omitempty"` + Or []*InvocationTagWhereInput `json:"or,omitempty"` + And []*InvocationTagWhereInput `json:"and,omitempty"` // "id" field predicates. ID *int64 `json:"id,omitempty"` @@ -5941,21 +5961,275 @@ type InvocationTargetWhereInput struct { IDLT *int64 `json:"idLT,omitempty"` IDLTE *int64 `json:"idLTE,omitempty"` - // "success" field predicates. - Success *bool `json:"success,omitempty"` - SuccessNEQ *bool `json:"successNEQ,omitempty"` + // "key" field predicates. + Key *string `json:"key,omitempty"` + KeyNEQ *string `json:"keyNEQ,omitempty"` + KeyIn []string `json:"keyIn,omitempty"` + KeyNotIn []string `json:"keyNotIn,omitempty"` + KeyGT *string `json:"keyGT,omitempty"` + KeyGTE *string `json:"keyGTE,omitempty"` + KeyLT *string `json:"keyLT,omitempty"` + KeyLTE *string `json:"keyLTE,omitempty"` + KeyContains *string `json:"keyContains,omitempty"` + KeyHasPrefix *string `json:"keyHasPrefix,omitempty"` + KeyHasSuffix *string `json:"keyHasSuffix,omitempty"` + KeyEqualFold *string `json:"keyEqualFold,omitempty"` + KeyContainsFold *string `json:"keyContainsFold,omitempty"` + + // "value" field predicates. + Value *string `json:"value,omitempty"` + ValueNEQ *string `json:"valueNEQ,omitempty"` + ValueIn []string `json:"valueIn,omitempty"` + ValueNotIn []string `json:"valueNotIn,omitempty"` + ValueGT *string `json:"valueGT,omitempty"` + ValueGTE *string `json:"valueGTE,omitempty"` + ValueLT *string `json:"valueLT,omitempty"` + ValueLTE *string `json:"valueLTE,omitempty"` + ValueContains *string `json:"valueContains,omitempty"` + ValueHasPrefix *string `json:"valueHasPrefix,omitempty"` + ValueHasSuffix *string `json:"valueHasSuffix,omitempty"` + ValueEqualFold *string `json:"valueEqualFold,omitempty"` + ValueContainsFold *string `json:"valueContainsFold,omitempty"` - // "start_time_in_ms" field predicates. - StartTimeInMs *int64 `json:"startTimeInMs,omitempty"` - StartTimeInMsNEQ *int64 `json:"startTimeInMsNEQ,omitempty"` - StartTimeInMsIn []int64 `json:"startTimeInMsIn,omitempty"` - StartTimeInMsNotIn []int64 `json:"startTimeInMsNotIn,omitempty"` - StartTimeInMsGT *int64 `json:"startTimeInMsGT,omitempty"` - StartTimeInMsGTE *int64 `json:"startTimeInMsGTE,omitempty"` - StartTimeInMsLT *int64 `json:"startTimeInMsLT,omitempty"` - StartTimeInMsLTE *int64 `json:"startTimeInMsLTE,omitempty"` - StartTimeInMsIsNil bool `json:"startTimeInMsIsNil,omitempty"` - StartTimeInMsNotNil bool `json:"startTimeInMsNotNil,omitempty"` + // "bazel_invocation" edge predicates. + HasBazelInvocation *bool `json:"hasBazelInvocation,omitempty"` + HasBazelInvocationWith []*BazelInvocationWhereInput `json:"hasBazelInvocationWith,omitempty"` +} + +// AddPredicates adds custom predicates to the where input to be used during the filtering phase. +func (i *InvocationTagWhereInput) AddPredicates(predicates ...predicate.InvocationTag) { + i.Predicates = append(i.Predicates, predicates...) +} + +// Filter applies the InvocationTagWhereInput filter on the InvocationTagQuery builder. +func (i *InvocationTagWhereInput) Filter(q *InvocationTagQuery) (*InvocationTagQuery, error) { + if i == nil { + return q, nil + } + p, err := i.P() + if err != nil { + if err == ErrEmptyInvocationTagWhereInput { + return q, nil + } + return nil, err + } + return q.Where(p), nil +} + +// ErrEmptyInvocationTagWhereInput is returned in case the InvocationTagWhereInput is empty. +var ErrEmptyInvocationTagWhereInput = errors.New("ent: empty predicate InvocationTagWhereInput") + +// P returns a predicate for filtering invocationtags. +// An error is returned if the input is empty or invalid. +func (i *InvocationTagWhereInput) P() (predicate.InvocationTag, error) { + var predicates []predicate.InvocationTag + if i.Not != nil { + p, err := i.Not.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'not'", err) + } + predicates = append(predicates, invocationtag.Not(p)) + } + switch n := len(i.Or); { + case n == 1: + p, err := i.Or[0].P() + if err != nil { + return nil, fmt.Errorf("%w: field 'or'", err) + } + predicates = append(predicates, p) + case n > 1: + or := make([]predicate.InvocationTag, 0, n) + for _, w := range i.Or { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'or'", err) + } + or = append(or, p) + } + predicates = append(predicates, invocationtag.Or(or...)) + } + switch n := len(i.And); { + case n == 1: + p, err := i.And[0].P() + if err != nil { + return nil, fmt.Errorf("%w: field 'and'", err) + } + predicates = append(predicates, p) + case n > 1: + and := make([]predicate.InvocationTag, 0, n) + for _, w := range i.And { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'and'", err) + } + and = append(and, p) + } + predicates = append(predicates, invocationtag.And(and...)) + } + predicates = append(predicates, i.Predicates...) + if i.ID != nil { + predicates = append(predicates, invocationtag.IDEQ(*i.ID)) + } + if i.IDNEQ != nil { + predicates = append(predicates, invocationtag.IDNEQ(*i.IDNEQ)) + } + if len(i.IDIn) > 0 { + predicates = append(predicates, invocationtag.IDIn(i.IDIn...)) + } + if len(i.IDNotIn) > 0 { + predicates = append(predicates, invocationtag.IDNotIn(i.IDNotIn...)) + } + if i.IDGT != nil { + predicates = append(predicates, invocationtag.IDGT(*i.IDGT)) + } + if i.IDGTE != nil { + predicates = append(predicates, invocationtag.IDGTE(*i.IDGTE)) + } + if i.IDLT != nil { + predicates = append(predicates, invocationtag.IDLT(*i.IDLT)) + } + if i.IDLTE != nil { + predicates = append(predicates, invocationtag.IDLTE(*i.IDLTE)) + } + if i.Key != nil { + predicates = append(predicates, invocationtag.KeyEQ(*i.Key)) + } + if i.KeyNEQ != nil { + predicates = append(predicates, invocationtag.KeyNEQ(*i.KeyNEQ)) + } + if len(i.KeyIn) > 0 { + predicates = append(predicates, invocationtag.KeyIn(i.KeyIn...)) + } + if len(i.KeyNotIn) > 0 { + predicates = append(predicates, invocationtag.KeyNotIn(i.KeyNotIn...)) + } + if i.KeyGT != nil { + predicates = append(predicates, invocationtag.KeyGT(*i.KeyGT)) + } + if i.KeyGTE != nil { + predicates = append(predicates, invocationtag.KeyGTE(*i.KeyGTE)) + } + if i.KeyLT != nil { + predicates = append(predicates, invocationtag.KeyLT(*i.KeyLT)) + } + if i.KeyLTE != nil { + predicates = append(predicates, invocationtag.KeyLTE(*i.KeyLTE)) + } + if i.KeyContains != nil { + predicates = append(predicates, invocationtag.KeyContains(*i.KeyContains)) + } + if i.KeyHasPrefix != nil { + predicates = append(predicates, invocationtag.KeyHasPrefix(*i.KeyHasPrefix)) + } + if i.KeyHasSuffix != nil { + predicates = append(predicates, invocationtag.KeyHasSuffix(*i.KeyHasSuffix)) + } + if i.KeyEqualFold != nil { + predicates = append(predicates, invocationtag.KeyEqualFold(*i.KeyEqualFold)) + } + if i.KeyContainsFold != nil { + predicates = append(predicates, invocationtag.KeyContainsFold(*i.KeyContainsFold)) + } + if i.Value != nil { + predicates = append(predicates, invocationtag.ValueEQ(*i.Value)) + } + if i.ValueNEQ != nil { + predicates = append(predicates, invocationtag.ValueNEQ(*i.ValueNEQ)) + } + if len(i.ValueIn) > 0 { + predicates = append(predicates, invocationtag.ValueIn(i.ValueIn...)) + } + if len(i.ValueNotIn) > 0 { + predicates = append(predicates, invocationtag.ValueNotIn(i.ValueNotIn...)) + } + if i.ValueGT != nil { + predicates = append(predicates, invocationtag.ValueGT(*i.ValueGT)) + } + if i.ValueGTE != nil { + predicates = append(predicates, invocationtag.ValueGTE(*i.ValueGTE)) + } + if i.ValueLT != nil { + predicates = append(predicates, invocationtag.ValueLT(*i.ValueLT)) + } + if i.ValueLTE != nil { + predicates = append(predicates, invocationtag.ValueLTE(*i.ValueLTE)) + } + if i.ValueContains != nil { + predicates = append(predicates, invocationtag.ValueContains(*i.ValueContains)) + } + if i.ValueHasPrefix != nil { + predicates = append(predicates, invocationtag.ValueHasPrefix(*i.ValueHasPrefix)) + } + if i.ValueHasSuffix != nil { + predicates = append(predicates, invocationtag.ValueHasSuffix(*i.ValueHasSuffix)) + } + if i.ValueEqualFold != nil { + predicates = append(predicates, invocationtag.ValueEqualFold(*i.ValueEqualFold)) + } + if i.ValueContainsFold != nil { + predicates = append(predicates, invocationtag.ValueContainsFold(*i.ValueContainsFold)) + } + + if i.HasBazelInvocation != nil { + p := invocationtag.HasBazelInvocation() + if !*i.HasBazelInvocation { + p = invocationtag.Not(p) + } + predicates = append(predicates, p) + } + if len(i.HasBazelInvocationWith) > 0 { + with := make([]predicate.BazelInvocation, 0, len(i.HasBazelInvocationWith)) + for _, w := range i.HasBazelInvocationWith { + p, err := w.P() + if err != nil { + return nil, fmt.Errorf("%w: field 'HasBazelInvocationWith'", err) + } + with = append(with, p) + } + predicates = append(predicates, invocationtag.HasBazelInvocationWith(with...)) + } + switch len(predicates) { + case 0: + return nil, ErrEmptyInvocationTagWhereInput + case 1: + return predicates[0], nil + default: + return invocationtag.And(predicates...), nil + } +} + +// InvocationTargetWhereInput represents a where input for filtering InvocationTarget queries. +type InvocationTargetWhereInput struct { + Predicates []predicate.InvocationTarget `json:"-"` + Not *InvocationTargetWhereInput `json:"not,omitempty"` + Or []*InvocationTargetWhereInput `json:"or,omitempty"` + And []*InvocationTargetWhereInput `json:"and,omitempty"` + + // "id" field predicates. + ID *int64 `json:"id,omitempty"` + IDNEQ *int64 `json:"idNEQ,omitempty"` + IDIn []int64 `json:"idIn,omitempty"` + IDNotIn []int64 `json:"idNotIn,omitempty"` + IDGT *int64 `json:"idGT,omitempty"` + IDGTE *int64 `json:"idGTE,omitempty"` + IDLT *int64 `json:"idLT,omitempty"` + IDLTE *int64 `json:"idLTE,omitempty"` + + // "success" field predicates. + Success *bool `json:"success,omitempty"` + SuccessNEQ *bool `json:"successNEQ,omitempty"` + + // "start_time_in_ms" field predicates. + StartTimeInMs *int64 `json:"startTimeInMs,omitempty"` + StartTimeInMsNEQ *int64 `json:"startTimeInMsNEQ,omitempty"` + StartTimeInMsIn []int64 `json:"startTimeInMsIn,omitempty"` + StartTimeInMsNotIn []int64 `json:"startTimeInMsNotIn,omitempty"` + StartTimeInMsGT *int64 `json:"startTimeInMsGT,omitempty"` + StartTimeInMsGTE *int64 `json:"startTimeInMsGTE,omitempty"` + StartTimeInMsLT *int64 `json:"startTimeInMsLT,omitempty"` + StartTimeInMsLTE *int64 `json:"startTimeInMsLTE,omitempty"` + StartTimeInMsIsNil bool `json:"startTimeInMsIsNil,omitempty"` + StartTimeInMsNotNil bool `json:"startTimeInMsNotNil,omitempty"` // "end_time_in_ms" field predicates. EndTimeInMs *int64 `json:"endTimeInMs,omitempty"` @@ -7685,31 +7959,6 @@ type SourceControlWhereInput struct { IDLT *int64 `json:"idLT,omitempty"` IDLTE *int64 `json:"idLTE,omitempty"` - // "provider" field predicates. - Provider *sourcecontrol.Provider `json:"provider,omitempty"` - ProviderNEQ *sourcecontrol.Provider `json:"providerNEQ,omitempty"` - ProviderIn []sourcecontrol.Provider `json:"providerIn,omitempty"` - ProviderNotIn []sourcecontrol.Provider `json:"providerNotIn,omitempty"` - ProviderIsNil bool `json:"providerIsNil,omitempty"` - ProviderNotNil bool `json:"providerNotNil,omitempty"` - - // "instance_url" field predicates. - InstanceURL *string `json:"instanceURL,omitempty"` - InstanceURLNEQ *string `json:"instanceURLNEQ,omitempty"` - InstanceURLIn []string `json:"instanceURLIn,omitempty"` - InstanceURLNotIn []string `json:"instanceURLNotIn,omitempty"` - InstanceURLGT *string `json:"instanceURLGT,omitempty"` - InstanceURLGTE *string `json:"instanceURLGTE,omitempty"` - InstanceURLLT *string `json:"instanceURLLT,omitempty"` - InstanceURLLTE *string `json:"instanceURLLTE,omitempty"` - InstanceURLContains *string `json:"instanceURLContains,omitempty"` - InstanceURLHasPrefix *string `json:"instanceURLHasPrefix,omitempty"` - InstanceURLHasSuffix *string `json:"instanceURLHasSuffix,omitempty"` - InstanceURLIsNil bool `json:"instanceURLIsNil,omitempty"` - InstanceURLNotNil bool `json:"instanceURLNotNil,omitempty"` - InstanceURLEqualFold *string `json:"instanceURLEqualFold,omitempty"` - InstanceURLContainsFold *string `json:"instanceURLContainsFold,omitempty"` - // "repo" field predicates. Repo *string `json:"repo,omitempty"` RepoNEQ *string `json:"repoNEQ,omitempty"` @@ -7727,226 +7976,90 @@ type SourceControlWhereInput struct { RepoEqualFold *string `json:"repoEqualFold,omitempty"` RepoContainsFold *string `json:"repoContainsFold,omitempty"` - // "refs" field predicates. - Refs *string `json:"refs,omitempty"` - RefsNEQ *string `json:"refsNEQ,omitempty"` - RefsIn []string `json:"refsIn,omitempty"` - RefsNotIn []string `json:"refsNotIn,omitempty"` - RefsGT *string `json:"refsGT,omitempty"` - RefsGTE *string `json:"refsGTE,omitempty"` - RefsLT *string `json:"refsLT,omitempty"` - RefsLTE *string `json:"refsLTE,omitempty"` - RefsContains *string `json:"refsContains,omitempty"` - RefsHasPrefix *string `json:"refsHasPrefix,omitempty"` - RefsHasSuffix *string `json:"refsHasSuffix,omitempty"` - RefsIsNil bool `json:"refsIsNil,omitempty"` - RefsNotNil bool `json:"refsNotNil,omitempty"` - RefsEqualFold *string `json:"refsEqualFold,omitempty"` - RefsContainsFold *string `json:"refsContainsFold,omitempty"` - - // "commit_sha" field predicates. - CommitSha *string `json:"commitSha,omitempty"` - CommitShaNEQ *string `json:"commitShaNEQ,omitempty"` - CommitShaIn []string `json:"commitShaIn,omitempty"` - CommitShaNotIn []string `json:"commitShaNotIn,omitempty"` - CommitShaGT *string `json:"commitShaGT,omitempty"` - CommitShaGTE *string `json:"commitShaGTE,omitempty"` - CommitShaLT *string `json:"commitShaLT,omitempty"` - CommitShaLTE *string `json:"commitShaLTE,omitempty"` - CommitShaContains *string `json:"commitShaContains,omitempty"` - CommitShaHasPrefix *string `json:"commitShaHasPrefix,omitempty"` - CommitShaHasSuffix *string `json:"commitShaHasSuffix,omitempty"` - CommitShaIsNil bool `json:"commitShaIsNil,omitempty"` - CommitShaNotNil bool `json:"commitShaNotNil,omitempty"` - CommitShaEqualFold *string `json:"commitShaEqualFold,omitempty"` - CommitShaContainsFold *string `json:"commitShaContainsFold,omitempty"` - - // "actor" field predicates. - Actor *string `json:"actor,omitempty"` - ActorNEQ *string `json:"actorNEQ,omitempty"` - ActorIn []string `json:"actorIn,omitempty"` - ActorNotIn []string `json:"actorNotIn,omitempty"` - ActorGT *string `json:"actorGT,omitempty"` - ActorGTE *string `json:"actorGTE,omitempty"` - ActorLT *string `json:"actorLT,omitempty"` - ActorLTE *string `json:"actorLTE,omitempty"` - ActorContains *string `json:"actorContains,omitempty"` - ActorHasPrefix *string `json:"actorHasPrefix,omitempty"` - ActorHasSuffix *string `json:"actorHasSuffix,omitempty"` - ActorIsNil bool `json:"actorIsNil,omitempty"` - ActorNotNil bool `json:"actorNotNil,omitempty"` - ActorEqualFold *string `json:"actorEqualFold,omitempty"` - ActorContainsFold *string `json:"actorContainsFold,omitempty"` - - // "event_name" field predicates. - EventName *string `json:"eventName,omitempty"` - EventNameNEQ *string `json:"eventNameNEQ,omitempty"` - EventNameIn []string `json:"eventNameIn,omitempty"` - EventNameNotIn []string `json:"eventNameNotIn,omitempty"` - EventNameGT *string `json:"eventNameGT,omitempty"` - EventNameGTE *string `json:"eventNameGTE,omitempty"` - EventNameLT *string `json:"eventNameLT,omitempty"` - EventNameLTE *string `json:"eventNameLTE,omitempty"` - EventNameContains *string `json:"eventNameContains,omitempty"` - EventNameHasPrefix *string `json:"eventNameHasPrefix,omitempty"` - EventNameHasSuffix *string `json:"eventNameHasSuffix,omitempty"` - EventNameIsNil bool `json:"eventNameIsNil,omitempty"` - EventNameNotNil bool `json:"eventNameNotNil,omitempty"` - EventNameEqualFold *string `json:"eventNameEqualFold,omitempty"` - EventNameContainsFold *string `json:"eventNameContainsFold,omitempty"` - - // "workflow" field predicates. - Workflow *string `json:"workflow,omitempty"` - WorkflowNEQ *string `json:"workflowNEQ,omitempty"` - WorkflowIn []string `json:"workflowIn,omitempty"` - WorkflowNotIn []string `json:"workflowNotIn,omitempty"` - WorkflowGT *string `json:"workflowGT,omitempty"` - WorkflowGTE *string `json:"workflowGTE,omitempty"` - WorkflowLT *string `json:"workflowLT,omitempty"` - WorkflowLTE *string `json:"workflowLTE,omitempty"` - WorkflowContains *string `json:"workflowContains,omitempty"` - WorkflowHasPrefix *string `json:"workflowHasPrefix,omitempty"` - WorkflowHasSuffix *string `json:"workflowHasSuffix,omitempty"` - WorkflowIsNil bool `json:"workflowIsNil,omitempty"` - WorkflowNotNil bool `json:"workflowNotNil,omitempty"` - WorkflowEqualFold *string `json:"workflowEqualFold,omitempty"` - WorkflowContainsFold *string `json:"workflowContainsFold,omitempty"` - - // "run_id" field predicates. - RunID *string `json:"runID,omitempty"` - RunIDNEQ *string `json:"runIDNEQ,omitempty"` - RunIDIn []string `json:"runIDIn,omitempty"` - RunIDNotIn []string `json:"runIDNotIn,omitempty"` - RunIDGT *string `json:"runIDGT,omitempty"` - RunIDGTE *string `json:"runIDGTE,omitempty"` - RunIDLT *string `json:"runIDLT,omitempty"` - RunIDLTE *string `json:"runIDLTE,omitempty"` - RunIDContains *string `json:"runIDContains,omitempty"` - RunIDHasPrefix *string `json:"runIDHasPrefix,omitempty"` - RunIDHasSuffix *string `json:"runIDHasSuffix,omitempty"` - RunIDIsNil bool `json:"runIDIsNil,omitempty"` - RunIDNotNil bool `json:"runIDNotNil,omitempty"` - RunIDEqualFold *string `json:"runIDEqualFold,omitempty"` - RunIDContainsFold *string `json:"runIDContainsFold,omitempty"` - - // "run_number" field predicates. - RunNumber *string `json:"runNumber,omitempty"` - RunNumberNEQ *string `json:"runNumberNEQ,omitempty"` - RunNumberIn []string `json:"runNumberIn,omitempty"` - RunNumberNotIn []string `json:"runNumberNotIn,omitempty"` - RunNumberGT *string `json:"runNumberGT,omitempty"` - RunNumberGTE *string `json:"runNumberGTE,omitempty"` - RunNumberLT *string `json:"runNumberLT,omitempty"` - RunNumberLTE *string `json:"runNumberLTE,omitempty"` - RunNumberContains *string `json:"runNumberContains,omitempty"` - RunNumberHasPrefix *string `json:"runNumberHasPrefix,omitempty"` - RunNumberHasSuffix *string `json:"runNumberHasSuffix,omitempty"` - RunNumberIsNil bool `json:"runNumberIsNil,omitempty"` - RunNumberNotNil bool `json:"runNumberNotNil,omitempty"` - RunNumberEqualFold *string `json:"runNumberEqualFold,omitempty"` - RunNumberContainsFold *string `json:"runNumberContainsFold,omitempty"` - - // "job" field predicates. - Job *string `json:"job,omitempty"` - JobNEQ *string `json:"jobNEQ,omitempty"` - JobIn []string `json:"jobIn,omitempty"` - JobNotIn []string `json:"jobNotIn,omitempty"` - JobGT *string `json:"jobGT,omitempty"` - JobGTE *string `json:"jobGTE,omitempty"` - JobLT *string `json:"jobLT,omitempty"` - JobLTE *string `json:"jobLTE,omitempty"` - JobContains *string `json:"jobContains,omitempty"` - JobHasPrefix *string `json:"jobHasPrefix,omitempty"` - JobHasSuffix *string `json:"jobHasSuffix,omitempty"` - JobIsNil bool `json:"jobIsNil,omitempty"` - JobNotNil bool `json:"jobNotNil,omitempty"` - JobEqualFold *string `json:"jobEqualFold,omitempty"` - JobContainsFold *string `json:"jobContainsFold,omitempty"` - - // "action" field predicates. - Action *string `json:"action,omitempty"` - ActionNEQ *string `json:"actionNEQ,omitempty"` - ActionIn []string `json:"actionIn,omitempty"` - ActionNotIn []string `json:"actionNotIn,omitempty"` - ActionGT *string `json:"actionGT,omitempty"` - ActionGTE *string `json:"actionGTE,omitempty"` - ActionLT *string `json:"actionLT,omitempty"` - ActionLTE *string `json:"actionLTE,omitempty"` - ActionContains *string `json:"actionContains,omitempty"` - ActionHasPrefix *string `json:"actionHasPrefix,omitempty"` - ActionHasSuffix *string `json:"actionHasSuffix,omitempty"` - ActionIsNil bool `json:"actionIsNil,omitempty"` - ActionNotNil bool `json:"actionNotNil,omitempty"` - ActionEqualFold *string `json:"actionEqualFold,omitempty"` - ActionContainsFold *string `json:"actionContainsFold,omitempty"` - - // "runner_name" field predicates. - RunnerName *string `json:"runnerName,omitempty"` - RunnerNameNEQ *string `json:"runnerNameNEQ,omitempty"` - RunnerNameIn []string `json:"runnerNameIn,omitempty"` - RunnerNameNotIn []string `json:"runnerNameNotIn,omitempty"` - RunnerNameGT *string `json:"runnerNameGT,omitempty"` - RunnerNameGTE *string `json:"runnerNameGTE,omitempty"` - RunnerNameLT *string `json:"runnerNameLT,omitempty"` - RunnerNameLTE *string `json:"runnerNameLTE,omitempty"` - RunnerNameContains *string `json:"runnerNameContains,omitempty"` - RunnerNameHasPrefix *string `json:"runnerNameHasPrefix,omitempty"` - RunnerNameHasSuffix *string `json:"runnerNameHasSuffix,omitempty"` - RunnerNameIsNil bool `json:"runnerNameIsNil,omitempty"` - RunnerNameNotNil bool `json:"runnerNameNotNil,omitempty"` - RunnerNameEqualFold *string `json:"runnerNameEqualFold,omitempty"` - RunnerNameContainsFold *string `json:"runnerNameContainsFold,omitempty"` - - // "runner_arch" field predicates. - RunnerArch *string `json:"runnerArch,omitempty"` - RunnerArchNEQ *string `json:"runnerArchNEQ,omitempty"` - RunnerArchIn []string `json:"runnerArchIn,omitempty"` - RunnerArchNotIn []string `json:"runnerArchNotIn,omitempty"` - RunnerArchGT *string `json:"runnerArchGT,omitempty"` - RunnerArchGTE *string `json:"runnerArchGTE,omitempty"` - RunnerArchLT *string `json:"runnerArchLT,omitempty"` - RunnerArchLTE *string `json:"runnerArchLTE,omitempty"` - RunnerArchContains *string `json:"runnerArchContains,omitempty"` - RunnerArchHasPrefix *string `json:"runnerArchHasPrefix,omitempty"` - RunnerArchHasSuffix *string `json:"runnerArchHasSuffix,omitempty"` - RunnerArchIsNil bool `json:"runnerArchIsNil,omitempty"` - RunnerArchNotNil bool `json:"runnerArchNotNil,omitempty"` - RunnerArchEqualFold *string `json:"runnerArchEqualFold,omitempty"` - RunnerArchContainsFold *string `json:"runnerArchContainsFold,omitempty"` - - // "runner_os" field predicates. - RunnerOs *string `json:"runnerOs,omitempty"` - RunnerOsNEQ *string `json:"runnerOsNEQ,omitempty"` - RunnerOsIn []string `json:"runnerOsIn,omitempty"` - RunnerOsNotIn []string `json:"runnerOsNotIn,omitempty"` - RunnerOsGT *string `json:"runnerOsGT,omitempty"` - RunnerOsGTE *string `json:"runnerOsGTE,omitempty"` - RunnerOsLT *string `json:"runnerOsLT,omitempty"` - RunnerOsLTE *string `json:"runnerOsLTE,omitempty"` - RunnerOsContains *string `json:"runnerOsContains,omitempty"` - RunnerOsHasPrefix *string `json:"runnerOsHasPrefix,omitempty"` - RunnerOsHasSuffix *string `json:"runnerOsHasSuffix,omitempty"` - RunnerOsIsNil bool `json:"runnerOsIsNil,omitempty"` - RunnerOsNotNil bool `json:"runnerOsNotNil,omitempty"` - RunnerOsEqualFold *string `json:"runnerOsEqualFold,omitempty"` - RunnerOsContainsFold *string `json:"runnerOsContainsFold,omitempty"` - - // "workspace" field predicates. - Workspace *string `json:"workspace,omitempty"` - WorkspaceNEQ *string `json:"workspaceNEQ,omitempty"` - WorkspaceIn []string `json:"workspaceIn,omitempty"` - WorkspaceNotIn []string `json:"workspaceNotIn,omitempty"` - WorkspaceGT *string `json:"workspaceGT,omitempty"` - WorkspaceGTE *string `json:"workspaceGTE,omitempty"` - WorkspaceLT *string `json:"workspaceLT,omitempty"` - WorkspaceLTE *string `json:"workspaceLTE,omitempty"` - WorkspaceContains *string `json:"workspaceContains,omitempty"` - WorkspaceHasPrefix *string `json:"workspaceHasPrefix,omitempty"` - WorkspaceHasSuffix *string `json:"workspaceHasSuffix,omitempty"` - WorkspaceIsNil bool `json:"workspaceIsNil,omitempty"` - WorkspaceNotNil bool `json:"workspaceNotNil,omitempty"` - WorkspaceEqualFold *string `json:"workspaceEqualFold,omitempty"` - WorkspaceContainsFold *string `json:"workspaceContainsFold,omitempty"` + // "repo_url" field predicates. + RepoURL *string `json:"repoURL,omitempty"` + RepoURLNEQ *string `json:"repoURLNEQ,omitempty"` + RepoURLIn []string `json:"repoURLIn,omitempty"` + RepoURLNotIn []string `json:"repoURLNotIn,omitempty"` + RepoURLGT *string `json:"repoURLGT,omitempty"` + RepoURLGTE *string `json:"repoURLGTE,omitempty"` + RepoURLLT *string `json:"repoURLLT,omitempty"` + RepoURLLTE *string `json:"repoURLLTE,omitempty"` + RepoURLContains *string `json:"repoURLContains,omitempty"` + RepoURLHasPrefix *string `json:"repoURLHasPrefix,omitempty"` + RepoURLHasSuffix *string `json:"repoURLHasSuffix,omitempty"` + RepoURLIsNil bool `json:"repoURLIsNil,omitempty"` + RepoURLNotNil bool `json:"repoURLNotNil,omitempty"` + RepoURLEqualFold *string `json:"repoURLEqualFold,omitempty"` + RepoURLContainsFold *string `json:"repoURLContainsFold,omitempty"` + + // "ref" field predicates. + Ref *string `json:"ref,omitempty"` + RefNEQ *string `json:"refNEQ,omitempty"` + RefIn []string `json:"refIn,omitempty"` + RefNotIn []string `json:"refNotIn,omitempty"` + RefGT *string `json:"refGT,omitempty"` + RefGTE *string `json:"refGTE,omitempty"` + RefLT *string `json:"refLT,omitempty"` + RefLTE *string `json:"refLTE,omitempty"` + RefContains *string `json:"refContains,omitempty"` + RefHasPrefix *string `json:"refHasPrefix,omitempty"` + RefHasSuffix *string `json:"refHasSuffix,omitempty"` + RefIsNil bool `json:"refIsNil,omitempty"` + RefNotNil bool `json:"refNotNil,omitempty"` + RefEqualFold *string `json:"refEqualFold,omitempty"` + RefContainsFold *string `json:"refContainsFold,omitempty"` + + // "ref_url" field predicates. + RefURL *string `json:"refURL,omitempty"` + RefURLNEQ *string `json:"refURLNEQ,omitempty"` + RefURLIn []string `json:"refURLIn,omitempty"` + RefURLNotIn []string `json:"refURLNotIn,omitempty"` + RefURLGT *string `json:"refURLGT,omitempty"` + RefURLGTE *string `json:"refURLGTE,omitempty"` + RefURLLT *string `json:"refURLLT,omitempty"` + RefURLLTE *string `json:"refURLLTE,omitempty"` + RefURLContains *string `json:"refURLContains,omitempty"` + RefURLHasPrefix *string `json:"refURLHasPrefix,omitempty"` + RefURLHasSuffix *string `json:"refURLHasSuffix,omitempty"` + RefURLIsNil bool `json:"refURLIsNil,omitempty"` + RefURLNotNil bool `json:"refURLNotNil,omitempty"` + RefURLEqualFold *string `json:"refURLEqualFold,omitempty"` + RefURLContainsFold *string `json:"refURLContainsFold,omitempty"` + + // "commit" field predicates. + Commit *string `json:"commit,omitempty"` + CommitNEQ *string `json:"commitNEQ,omitempty"` + CommitIn []string `json:"commitIn,omitempty"` + CommitNotIn []string `json:"commitNotIn,omitempty"` + CommitGT *string `json:"commitGT,omitempty"` + CommitGTE *string `json:"commitGTE,omitempty"` + CommitLT *string `json:"commitLT,omitempty"` + CommitLTE *string `json:"commitLTE,omitempty"` + CommitContains *string `json:"commitContains,omitempty"` + CommitHasPrefix *string `json:"commitHasPrefix,omitempty"` + CommitHasSuffix *string `json:"commitHasSuffix,omitempty"` + CommitIsNil bool `json:"commitIsNil,omitempty"` + CommitNotNil bool `json:"commitNotNil,omitempty"` + CommitEqualFold *string `json:"commitEqualFold,omitempty"` + CommitContainsFold *string `json:"commitContainsFold,omitempty"` + + // "commit_url" field predicates. + CommitURL *string `json:"commitURL,omitempty"` + CommitURLNEQ *string `json:"commitURLNEQ,omitempty"` + CommitURLIn []string `json:"commitURLIn,omitempty"` + CommitURLNotIn []string `json:"commitURLNotIn,omitempty"` + CommitURLGT *string `json:"commitURLGT,omitempty"` + CommitURLGTE *string `json:"commitURLGTE,omitempty"` + CommitURLLT *string `json:"commitURLLT,omitempty"` + CommitURLLTE *string `json:"commitURLLTE,omitempty"` + CommitURLContains *string `json:"commitURLContains,omitempty"` + CommitURLHasPrefix *string `json:"commitURLHasPrefix,omitempty"` + CommitURLHasSuffix *string `json:"commitURLHasSuffix,omitempty"` + CommitURLIsNil bool `json:"commitURLIsNil,omitempty"` + CommitURLNotNil bool `json:"commitURLNotNil,omitempty"` + CommitURLEqualFold *string `json:"commitURLEqualFold,omitempty"` + CommitURLContainsFold *string `json:"commitURLContainsFold,omitempty"` // "bazel_invocation" edge predicates. HasBazelInvocation *bool `json:"hasBazelInvocation,omitempty"` @@ -8048,69 +8161,6 @@ func (i *SourceControlWhereInput) P() (predicate.SourceControl, error) { if i.IDLTE != nil { predicates = append(predicates, sourcecontrol.IDLTE(*i.IDLTE)) } - if i.Provider != nil { - predicates = append(predicates, sourcecontrol.ProviderEQ(*i.Provider)) - } - if i.ProviderNEQ != nil { - predicates = append(predicates, sourcecontrol.ProviderNEQ(*i.ProviderNEQ)) - } - if len(i.ProviderIn) > 0 { - predicates = append(predicates, sourcecontrol.ProviderIn(i.ProviderIn...)) - } - if len(i.ProviderNotIn) > 0 { - predicates = append(predicates, sourcecontrol.ProviderNotIn(i.ProviderNotIn...)) - } - if i.ProviderIsNil { - predicates = append(predicates, sourcecontrol.ProviderIsNil()) - } - if i.ProviderNotNil { - predicates = append(predicates, sourcecontrol.ProviderNotNil()) - } - if i.InstanceURL != nil { - predicates = append(predicates, sourcecontrol.InstanceURLEQ(*i.InstanceURL)) - } - if i.InstanceURLNEQ != nil { - predicates = append(predicates, sourcecontrol.InstanceURLNEQ(*i.InstanceURLNEQ)) - } - if len(i.InstanceURLIn) > 0 { - predicates = append(predicates, sourcecontrol.InstanceURLIn(i.InstanceURLIn...)) - } - if len(i.InstanceURLNotIn) > 0 { - predicates = append(predicates, sourcecontrol.InstanceURLNotIn(i.InstanceURLNotIn...)) - } - if i.InstanceURLGT != nil { - predicates = append(predicates, sourcecontrol.InstanceURLGT(*i.InstanceURLGT)) - } - if i.InstanceURLGTE != nil { - predicates = append(predicates, sourcecontrol.InstanceURLGTE(*i.InstanceURLGTE)) - } - if i.InstanceURLLT != nil { - predicates = append(predicates, sourcecontrol.InstanceURLLT(*i.InstanceURLLT)) - } - if i.InstanceURLLTE != nil { - predicates = append(predicates, sourcecontrol.InstanceURLLTE(*i.InstanceURLLTE)) - } - if i.InstanceURLContains != nil { - predicates = append(predicates, sourcecontrol.InstanceURLContains(*i.InstanceURLContains)) - } - if i.InstanceURLHasPrefix != nil { - predicates = append(predicates, sourcecontrol.InstanceURLHasPrefix(*i.InstanceURLHasPrefix)) - } - if i.InstanceURLHasSuffix != nil { - predicates = append(predicates, sourcecontrol.InstanceURLHasSuffix(*i.InstanceURLHasSuffix)) - } - if i.InstanceURLIsNil { - predicates = append(predicates, sourcecontrol.InstanceURLIsNil()) - } - if i.InstanceURLNotNil { - predicates = append(predicates, sourcecontrol.InstanceURLNotNil()) - } - if i.InstanceURLEqualFold != nil { - predicates = append(predicates, sourcecontrol.InstanceURLEqualFold(*i.InstanceURLEqualFold)) - } - if i.InstanceURLContainsFold != nil { - predicates = append(predicates, sourcecontrol.InstanceURLContainsFold(*i.InstanceURLContainsFold)) - } if i.Repo != nil { predicates = append(predicates, sourcecontrol.RepoEQ(*i.Repo)) } @@ -8156,590 +8206,230 @@ func (i *SourceControlWhereInput) P() (predicate.SourceControl, error) { if i.RepoContainsFold != nil { predicates = append(predicates, sourcecontrol.RepoContainsFold(*i.RepoContainsFold)) } - if i.Refs != nil { - predicates = append(predicates, sourcecontrol.RefsEQ(*i.Refs)) - } - if i.RefsNEQ != nil { - predicates = append(predicates, sourcecontrol.RefsNEQ(*i.RefsNEQ)) - } - if len(i.RefsIn) > 0 { - predicates = append(predicates, sourcecontrol.RefsIn(i.RefsIn...)) - } - if len(i.RefsNotIn) > 0 { - predicates = append(predicates, sourcecontrol.RefsNotIn(i.RefsNotIn...)) - } - if i.RefsGT != nil { - predicates = append(predicates, sourcecontrol.RefsGT(*i.RefsGT)) - } - if i.RefsGTE != nil { - predicates = append(predicates, sourcecontrol.RefsGTE(*i.RefsGTE)) - } - if i.RefsLT != nil { - predicates = append(predicates, sourcecontrol.RefsLT(*i.RefsLT)) - } - if i.RefsLTE != nil { - predicates = append(predicates, sourcecontrol.RefsLTE(*i.RefsLTE)) - } - if i.RefsContains != nil { - predicates = append(predicates, sourcecontrol.RefsContains(*i.RefsContains)) - } - if i.RefsHasPrefix != nil { - predicates = append(predicates, sourcecontrol.RefsHasPrefix(*i.RefsHasPrefix)) - } - if i.RefsHasSuffix != nil { - predicates = append(predicates, sourcecontrol.RefsHasSuffix(*i.RefsHasSuffix)) - } - if i.RefsIsNil { - predicates = append(predicates, sourcecontrol.RefsIsNil()) - } - if i.RefsNotNil { - predicates = append(predicates, sourcecontrol.RefsNotNil()) - } - if i.RefsEqualFold != nil { - predicates = append(predicates, sourcecontrol.RefsEqualFold(*i.RefsEqualFold)) - } - if i.RefsContainsFold != nil { - predicates = append(predicates, sourcecontrol.RefsContainsFold(*i.RefsContainsFold)) - } - if i.CommitSha != nil { - predicates = append(predicates, sourcecontrol.CommitShaEQ(*i.CommitSha)) - } - if i.CommitShaNEQ != nil { - predicates = append(predicates, sourcecontrol.CommitShaNEQ(*i.CommitShaNEQ)) - } - if len(i.CommitShaIn) > 0 { - predicates = append(predicates, sourcecontrol.CommitShaIn(i.CommitShaIn...)) - } - if len(i.CommitShaNotIn) > 0 { - predicates = append(predicates, sourcecontrol.CommitShaNotIn(i.CommitShaNotIn...)) - } - if i.CommitShaGT != nil { - predicates = append(predicates, sourcecontrol.CommitShaGT(*i.CommitShaGT)) - } - if i.CommitShaGTE != nil { - predicates = append(predicates, sourcecontrol.CommitShaGTE(*i.CommitShaGTE)) - } - if i.CommitShaLT != nil { - predicates = append(predicates, sourcecontrol.CommitShaLT(*i.CommitShaLT)) - } - if i.CommitShaLTE != nil { - predicates = append(predicates, sourcecontrol.CommitShaLTE(*i.CommitShaLTE)) - } - if i.CommitShaContains != nil { - predicates = append(predicates, sourcecontrol.CommitShaContains(*i.CommitShaContains)) - } - if i.CommitShaHasPrefix != nil { - predicates = append(predicates, sourcecontrol.CommitShaHasPrefix(*i.CommitShaHasPrefix)) - } - if i.CommitShaHasSuffix != nil { - predicates = append(predicates, sourcecontrol.CommitShaHasSuffix(*i.CommitShaHasSuffix)) - } - if i.CommitShaIsNil { - predicates = append(predicates, sourcecontrol.CommitShaIsNil()) - } - if i.CommitShaNotNil { - predicates = append(predicates, sourcecontrol.CommitShaNotNil()) - } - if i.CommitShaEqualFold != nil { - predicates = append(predicates, sourcecontrol.CommitShaEqualFold(*i.CommitShaEqualFold)) - } - if i.CommitShaContainsFold != nil { - predicates = append(predicates, sourcecontrol.CommitShaContainsFold(*i.CommitShaContainsFold)) - } - if i.Actor != nil { - predicates = append(predicates, sourcecontrol.ActorEQ(*i.Actor)) - } - if i.ActorNEQ != nil { - predicates = append(predicates, sourcecontrol.ActorNEQ(*i.ActorNEQ)) - } - if len(i.ActorIn) > 0 { - predicates = append(predicates, sourcecontrol.ActorIn(i.ActorIn...)) - } - if len(i.ActorNotIn) > 0 { - predicates = append(predicates, sourcecontrol.ActorNotIn(i.ActorNotIn...)) - } - if i.ActorGT != nil { - predicates = append(predicates, sourcecontrol.ActorGT(*i.ActorGT)) - } - if i.ActorGTE != nil { - predicates = append(predicates, sourcecontrol.ActorGTE(*i.ActorGTE)) - } - if i.ActorLT != nil { - predicates = append(predicates, sourcecontrol.ActorLT(*i.ActorLT)) - } - if i.ActorLTE != nil { - predicates = append(predicates, sourcecontrol.ActorLTE(*i.ActorLTE)) - } - if i.ActorContains != nil { - predicates = append(predicates, sourcecontrol.ActorContains(*i.ActorContains)) - } - if i.ActorHasPrefix != nil { - predicates = append(predicates, sourcecontrol.ActorHasPrefix(*i.ActorHasPrefix)) - } - if i.ActorHasSuffix != nil { - predicates = append(predicates, sourcecontrol.ActorHasSuffix(*i.ActorHasSuffix)) - } - if i.ActorIsNil { - predicates = append(predicates, sourcecontrol.ActorIsNil()) - } - if i.ActorNotNil { - predicates = append(predicates, sourcecontrol.ActorNotNil()) - } - if i.ActorEqualFold != nil { - predicates = append(predicates, sourcecontrol.ActorEqualFold(*i.ActorEqualFold)) - } - if i.ActorContainsFold != nil { - predicates = append(predicates, sourcecontrol.ActorContainsFold(*i.ActorContainsFold)) - } - if i.EventName != nil { - predicates = append(predicates, sourcecontrol.EventNameEQ(*i.EventName)) - } - if i.EventNameNEQ != nil { - predicates = append(predicates, sourcecontrol.EventNameNEQ(*i.EventNameNEQ)) - } - if len(i.EventNameIn) > 0 { - predicates = append(predicates, sourcecontrol.EventNameIn(i.EventNameIn...)) - } - if len(i.EventNameNotIn) > 0 { - predicates = append(predicates, sourcecontrol.EventNameNotIn(i.EventNameNotIn...)) - } - if i.EventNameGT != nil { - predicates = append(predicates, sourcecontrol.EventNameGT(*i.EventNameGT)) - } - if i.EventNameGTE != nil { - predicates = append(predicates, sourcecontrol.EventNameGTE(*i.EventNameGTE)) - } - if i.EventNameLT != nil { - predicates = append(predicates, sourcecontrol.EventNameLT(*i.EventNameLT)) - } - if i.EventNameLTE != nil { - predicates = append(predicates, sourcecontrol.EventNameLTE(*i.EventNameLTE)) - } - if i.EventNameContains != nil { - predicates = append(predicates, sourcecontrol.EventNameContains(*i.EventNameContains)) - } - if i.EventNameHasPrefix != nil { - predicates = append(predicates, sourcecontrol.EventNameHasPrefix(*i.EventNameHasPrefix)) - } - if i.EventNameHasSuffix != nil { - predicates = append(predicates, sourcecontrol.EventNameHasSuffix(*i.EventNameHasSuffix)) - } - if i.EventNameIsNil { - predicates = append(predicates, sourcecontrol.EventNameIsNil()) - } - if i.EventNameNotNil { - predicates = append(predicates, sourcecontrol.EventNameNotNil()) - } - if i.EventNameEqualFold != nil { - predicates = append(predicates, sourcecontrol.EventNameEqualFold(*i.EventNameEqualFold)) - } - if i.EventNameContainsFold != nil { - predicates = append(predicates, sourcecontrol.EventNameContainsFold(*i.EventNameContainsFold)) - } - if i.Workflow != nil { - predicates = append(predicates, sourcecontrol.WorkflowEQ(*i.Workflow)) - } - if i.WorkflowNEQ != nil { - predicates = append(predicates, sourcecontrol.WorkflowNEQ(*i.WorkflowNEQ)) - } - if len(i.WorkflowIn) > 0 { - predicates = append(predicates, sourcecontrol.WorkflowIn(i.WorkflowIn...)) - } - if len(i.WorkflowNotIn) > 0 { - predicates = append(predicates, sourcecontrol.WorkflowNotIn(i.WorkflowNotIn...)) - } - if i.WorkflowGT != nil { - predicates = append(predicates, sourcecontrol.WorkflowGT(*i.WorkflowGT)) - } - if i.WorkflowGTE != nil { - predicates = append(predicates, sourcecontrol.WorkflowGTE(*i.WorkflowGTE)) - } - if i.WorkflowLT != nil { - predicates = append(predicates, sourcecontrol.WorkflowLT(*i.WorkflowLT)) - } - if i.WorkflowLTE != nil { - predicates = append(predicates, sourcecontrol.WorkflowLTE(*i.WorkflowLTE)) - } - if i.WorkflowContains != nil { - predicates = append(predicates, sourcecontrol.WorkflowContains(*i.WorkflowContains)) - } - if i.WorkflowHasPrefix != nil { - predicates = append(predicates, sourcecontrol.WorkflowHasPrefix(*i.WorkflowHasPrefix)) - } - if i.WorkflowHasSuffix != nil { - predicates = append(predicates, sourcecontrol.WorkflowHasSuffix(*i.WorkflowHasSuffix)) - } - if i.WorkflowIsNil { - predicates = append(predicates, sourcecontrol.WorkflowIsNil()) - } - if i.WorkflowNotNil { - predicates = append(predicates, sourcecontrol.WorkflowNotNil()) - } - if i.WorkflowEqualFold != nil { - predicates = append(predicates, sourcecontrol.WorkflowEqualFold(*i.WorkflowEqualFold)) - } - if i.WorkflowContainsFold != nil { - predicates = append(predicates, sourcecontrol.WorkflowContainsFold(*i.WorkflowContainsFold)) - } - if i.RunID != nil { - predicates = append(predicates, sourcecontrol.RunIDEQ(*i.RunID)) - } - if i.RunIDNEQ != nil { - predicates = append(predicates, sourcecontrol.RunIDNEQ(*i.RunIDNEQ)) - } - if len(i.RunIDIn) > 0 { - predicates = append(predicates, sourcecontrol.RunIDIn(i.RunIDIn...)) - } - if len(i.RunIDNotIn) > 0 { - predicates = append(predicates, sourcecontrol.RunIDNotIn(i.RunIDNotIn...)) - } - if i.RunIDGT != nil { - predicates = append(predicates, sourcecontrol.RunIDGT(*i.RunIDGT)) - } - if i.RunIDGTE != nil { - predicates = append(predicates, sourcecontrol.RunIDGTE(*i.RunIDGTE)) - } - if i.RunIDLT != nil { - predicates = append(predicates, sourcecontrol.RunIDLT(*i.RunIDLT)) - } - if i.RunIDLTE != nil { - predicates = append(predicates, sourcecontrol.RunIDLTE(*i.RunIDLTE)) - } - if i.RunIDContains != nil { - predicates = append(predicates, sourcecontrol.RunIDContains(*i.RunIDContains)) - } - if i.RunIDHasPrefix != nil { - predicates = append(predicates, sourcecontrol.RunIDHasPrefix(*i.RunIDHasPrefix)) - } - if i.RunIDHasSuffix != nil { - predicates = append(predicates, sourcecontrol.RunIDHasSuffix(*i.RunIDHasSuffix)) - } - if i.RunIDIsNil { - predicates = append(predicates, sourcecontrol.RunIDIsNil()) - } - if i.RunIDNotNil { - predicates = append(predicates, sourcecontrol.RunIDNotNil()) - } - if i.RunIDEqualFold != nil { - predicates = append(predicates, sourcecontrol.RunIDEqualFold(*i.RunIDEqualFold)) - } - if i.RunIDContainsFold != nil { - predicates = append(predicates, sourcecontrol.RunIDContainsFold(*i.RunIDContainsFold)) - } - if i.RunNumber != nil { - predicates = append(predicates, sourcecontrol.RunNumberEQ(*i.RunNumber)) - } - if i.RunNumberNEQ != nil { - predicates = append(predicates, sourcecontrol.RunNumberNEQ(*i.RunNumberNEQ)) - } - if len(i.RunNumberIn) > 0 { - predicates = append(predicates, sourcecontrol.RunNumberIn(i.RunNumberIn...)) - } - if len(i.RunNumberNotIn) > 0 { - predicates = append(predicates, sourcecontrol.RunNumberNotIn(i.RunNumberNotIn...)) - } - if i.RunNumberGT != nil { - predicates = append(predicates, sourcecontrol.RunNumberGT(*i.RunNumberGT)) - } - if i.RunNumberGTE != nil { - predicates = append(predicates, sourcecontrol.RunNumberGTE(*i.RunNumberGTE)) - } - if i.RunNumberLT != nil { - predicates = append(predicates, sourcecontrol.RunNumberLT(*i.RunNumberLT)) - } - if i.RunNumberLTE != nil { - predicates = append(predicates, sourcecontrol.RunNumberLTE(*i.RunNumberLTE)) - } - if i.RunNumberContains != nil { - predicates = append(predicates, sourcecontrol.RunNumberContains(*i.RunNumberContains)) - } - if i.RunNumberHasPrefix != nil { - predicates = append(predicates, sourcecontrol.RunNumberHasPrefix(*i.RunNumberHasPrefix)) - } - if i.RunNumberHasSuffix != nil { - predicates = append(predicates, sourcecontrol.RunNumberHasSuffix(*i.RunNumberHasSuffix)) - } - if i.RunNumberIsNil { - predicates = append(predicates, sourcecontrol.RunNumberIsNil()) - } - if i.RunNumberNotNil { - predicates = append(predicates, sourcecontrol.RunNumberNotNil()) - } - if i.RunNumberEqualFold != nil { - predicates = append(predicates, sourcecontrol.RunNumberEqualFold(*i.RunNumberEqualFold)) - } - if i.RunNumberContainsFold != nil { - predicates = append(predicates, sourcecontrol.RunNumberContainsFold(*i.RunNumberContainsFold)) - } - if i.Job != nil { - predicates = append(predicates, sourcecontrol.JobEQ(*i.Job)) - } - if i.JobNEQ != nil { - predicates = append(predicates, sourcecontrol.JobNEQ(*i.JobNEQ)) - } - if len(i.JobIn) > 0 { - predicates = append(predicates, sourcecontrol.JobIn(i.JobIn...)) - } - if len(i.JobNotIn) > 0 { - predicates = append(predicates, sourcecontrol.JobNotIn(i.JobNotIn...)) - } - if i.JobGT != nil { - predicates = append(predicates, sourcecontrol.JobGT(*i.JobGT)) - } - if i.JobGTE != nil { - predicates = append(predicates, sourcecontrol.JobGTE(*i.JobGTE)) - } - if i.JobLT != nil { - predicates = append(predicates, sourcecontrol.JobLT(*i.JobLT)) - } - if i.JobLTE != nil { - predicates = append(predicates, sourcecontrol.JobLTE(*i.JobLTE)) - } - if i.JobContains != nil { - predicates = append(predicates, sourcecontrol.JobContains(*i.JobContains)) - } - if i.JobHasPrefix != nil { - predicates = append(predicates, sourcecontrol.JobHasPrefix(*i.JobHasPrefix)) - } - if i.JobHasSuffix != nil { - predicates = append(predicates, sourcecontrol.JobHasSuffix(*i.JobHasSuffix)) - } - if i.JobIsNil { - predicates = append(predicates, sourcecontrol.JobIsNil()) - } - if i.JobNotNil { - predicates = append(predicates, sourcecontrol.JobNotNil()) - } - if i.JobEqualFold != nil { - predicates = append(predicates, sourcecontrol.JobEqualFold(*i.JobEqualFold)) - } - if i.JobContainsFold != nil { - predicates = append(predicates, sourcecontrol.JobContainsFold(*i.JobContainsFold)) - } - if i.Action != nil { - predicates = append(predicates, sourcecontrol.ActionEQ(*i.Action)) + if i.RepoURL != nil { + predicates = append(predicates, sourcecontrol.RepoURLEQ(*i.RepoURL)) } - if i.ActionNEQ != nil { - predicates = append(predicates, sourcecontrol.ActionNEQ(*i.ActionNEQ)) + if i.RepoURLNEQ != nil { + predicates = append(predicates, sourcecontrol.RepoURLNEQ(*i.RepoURLNEQ)) } - if len(i.ActionIn) > 0 { - predicates = append(predicates, sourcecontrol.ActionIn(i.ActionIn...)) + if len(i.RepoURLIn) > 0 { + predicates = append(predicates, sourcecontrol.RepoURLIn(i.RepoURLIn...)) } - if len(i.ActionNotIn) > 0 { - predicates = append(predicates, sourcecontrol.ActionNotIn(i.ActionNotIn...)) + if len(i.RepoURLNotIn) > 0 { + predicates = append(predicates, sourcecontrol.RepoURLNotIn(i.RepoURLNotIn...)) } - if i.ActionGT != nil { - predicates = append(predicates, sourcecontrol.ActionGT(*i.ActionGT)) + if i.RepoURLGT != nil { + predicates = append(predicates, sourcecontrol.RepoURLGT(*i.RepoURLGT)) } - if i.ActionGTE != nil { - predicates = append(predicates, sourcecontrol.ActionGTE(*i.ActionGTE)) + if i.RepoURLGTE != nil { + predicates = append(predicates, sourcecontrol.RepoURLGTE(*i.RepoURLGTE)) } - if i.ActionLT != nil { - predicates = append(predicates, sourcecontrol.ActionLT(*i.ActionLT)) + if i.RepoURLLT != nil { + predicates = append(predicates, sourcecontrol.RepoURLLT(*i.RepoURLLT)) } - if i.ActionLTE != nil { - predicates = append(predicates, sourcecontrol.ActionLTE(*i.ActionLTE)) + if i.RepoURLLTE != nil { + predicates = append(predicates, sourcecontrol.RepoURLLTE(*i.RepoURLLTE)) } - if i.ActionContains != nil { - predicates = append(predicates, sourcecontrol.ActionContains(*i.ActionContains)) + if i.RepoURLContains != nil { + predicates = append(predicates, sourcecontrol.RepoURLContains(*i.RepoURLContains)) } - if i.ActionHasPrefix != nil { - predicates = append(predicates, sourcecontrol.ActionHasPrefix(*i.ActionHasPrefix)) + if i.RepoURLHasPrefix != nil { + predicates = append(predicates, sourcecontrol.RepoURLHasPrefix(*i.RepoURLHasPrefix)) } - if i.ActionHasSuffix != nil { - predicates = append(predicates, sourcecontrol.ActionHasSuffix(*i.ActionHasSuffix)) + if i.RepoURLHasSuffix != nil { + predicates = append(predicates, sourcecontrol.RepoURLHasSuffix(*i.RepoURLHasSuffix)) } - if i.ActionIsNil { - predicates = append(predicates, sourcecontrol.ActionIsNil()) + if i.RepoURLIsNil { + predicates = append(predicates, sourcecontrol.RepoURLIsNil()) } - if i.ActionNotNil { - predicates = append(predicates, sourcecontrol.ActionNotNil()) + if i.RepoURLNotNil { + predicates = append(predicates, sourcecontrol.RepoURLNotNil()) } - if i.ActionEqualFold != nil { - predicates = append(predicates, sourcecontrol.ActionEqualFold(*i.ActionEqualFold)) + if i.RepoURLEqualFold != nil { + predicates = append(predicates, sourcecontrol.RepoURLEqualFold(*i.RepoURLEqualFold)) } - if i.ActionContainsFold != nil { - predicates = append(predicates, sourcecontrol.ActionContainsFold(*i.ActionContainsFold)) + if i.RepoURLContainsFold != nil { + predicates = append(predicates, sourcecontrol.RepoURLContainsFold(*i.RepoURLContainsFold)) } - if i.RunnerName != nil { - predicates = append(predicates, sourcecontrol.RunnerNameEQ(*i.RunnerName)) + if i.Ref != nil { + predicates = append(predicates, sourcecontrol.RefEQ(*i.Ref)) } - if i.RunnerNameNEQ != nil { - predicates = append(predicates, sourcecontrol.RunnerNameNEQ(*i.RunnerNameNEQ)) + if i.RefNEQ != nil { + predicates = append(predicates, sourcecontrol.RefNEQ(*i.RefNEQ)) } - if len(i.RunnerNameIn) > 0 { - predicates = append(predicates, sourcecontrol.RunnerNameIn(i.RunnerNameIn...)) + if len(i.RefIn) > 0 { + predicates = append(predicates, sourcecontrol.RefIn(i.RefIn...)) } - if len(i.RunnerNameNotIn) > 0 { - predicates = append(predicates, sourcecontrol.RunnerNameNotIn(i.RunnerNameNotIn...)) + if len(i.RefNotIn) > 0 { + predicates = append(predicates, sourcecontrol.RefNotIn(i.RefNotIn...)) } - if i.RunnerNameGT != nil { - predicates = append(predicates, sourcecontrol.RunnerNameGT(*i.RunnerNameGT)) + if i.RefGT != nil { + predicates = append(predicates, sourcecontrol.RefGT(*i.RefGT)) } - if i.RunnerNameGTE != nil { - predicates = append(predicates, sourcecontrol.RunnerNameGTE(*i.RunnerNameGTE)) + if i.RefGTE != nil { + predicates = append(predicates, sourcecontrol.RefGTE(*i.RefGTE)) } - if i.RunnerNameLT != nil { - predicates = append(predicates, sourcecontrol.RunnerNameLT(*i.RunnerNameLT)) + if i.RefLT != nil { + predicates = append(predicates, sourcecontrol.RefLT(*i.RefLT)) } - if i.RunnerNameLTE != nil { - predicates = append(predicates, sourcecontrol.RunnerNameLTE(*i.RunnerNameLTE)) + if i.RefLTE != nil { + predicates = append(predicates, sourcecontrol.RefLTE(*i.RefLTE)) } - if i.RunnerNameContains != nil { - predicates = append(predicates, sourcecontrol.RunnerNameContains(*i.RunnerNameContains)) + if i.RefContains != nil { + predicates = append(predicates, sourcecontrol.RefContains(*i.RefContains)) } - if i.RunnerNameHasPrefix != nil { - predicates = append(predicates, sourcecontrol.RunnerNameHasPrefix(*i.RunnerNameHasPrefix)) + if i.RefHasPrefix != nil { + predicates = append(predicates, sourcecontrol.RefHasPrefix(*i.RefHasPrefix)) } - if i.RunnerNameHasSuffix != nil { - predicates = append(predicates, sourcecontrol.RunnerNameHasSuffix(*i.RunnerNameHasSuffix)) + if i.RefHasSuffix != nil { + predicates = append(predicates, sourcecontrol.RefHasSuffix(*i.RefHasSuffix)) } - if i.RunnerNameIsNil { - predicates = append(predicates, sourcecontrol.RunnerNameIsNil()) + if i.RefIsNil { + predicates = append(predicates, sourcecontrol.RefIsNil()) } - if i.RunnerNameNotNil { - predicates = append(predicates, sourcecontrol.RunnerNameNotNil()) + if i.RefNotNil { + predicates = append(predicates, sourcecontrol.RefNotNil()) } - if i.RunnerNameEqualFold != nil { - predicates = append(predicates, sourcecontrol.RunnerNameEqualFold(*i.RunnerNameEqualFold)) + if i.RefEqualFold != nil { + predicates = append(predicates, sourcecontrol.RefEqualFold(*i.RefEqualFold)) } - if i.RunnerNameContainsFold != nil { - predicates = append(predicates, sourcecontrol.RunnerNameContainsFold(*i.RunnerNameContainsFold)) + if i.RefContainsFold != nil { + predicates = append(predicates, sourcecontrol.RefContainsFold(*i.RefContainsFold)) } - if i.RunnerArch != nil { - predicates = append(predicates, sourcecontrol.RunnerArchEQ(*i.RunnerArch)) + if i.RefURL != nil { + predicates = append(predicates, sourcecontrol.RefURLEQ(*i.RefURL)) } - if i.RunnerArchNEQ != nil { - predicates = append(predicates, sourcecontrol.RunnerArchNEQ(*i.RunnerArchNEQ)) + if i.RefURLNEQ != nil { + predicates = append(predicates, sourcecontrol.RefURLNEQ(*i.RefURLNEQ)) } - if len(i.RunnerArchIn) > 0 { - predicates = append(predicates, sourcecontrol.RunnerArchIn(i.RunnerArchIn...)) + if len(i.RefURLIn) > 0 { + predicates = append(predicates, sourcecontrol.RefURLIn(i.RefURLIn...)) } - if len(i.RunnerArchNotIn) > 0 { - predicates = append(predicates, sourcecontrol.RunnerArchNotIn(i.RunnerArchNotIn...)) + if len(i.RefURLNotIn) > 0 { + predicates = append(predicates, sourcecontrol.RefURLNotIn(i.RefURLNotIn...)) } - if i.RunnerArchGT != nil { - predicates = append(predicates, sourcecontrol.RunnerArchGT(*i.RunnerArchGT)) + if i.RefURLGT != nil { + predicates = append(predicates, sourcecontrol.RefURLGT(*i.RefURLGT)) } - if i.RunnerArchGTE != nil { - predicates = append(predicates, sourcecontrol.RunnerArchGTE(*i.RunnerArchGTE)) + if i.RefURLGTE != nil { + predicates = append(predicates, sourcecontrol.RefURLGTE(*i.RefURLGTE)) } - if i.RunnerArchLT != nil { - predicates = append(predicates, sourcecontrol.RunnerArchLT(*i.RunnerArchLT)) + if i.RefURLLT != nil { + predicates = append(predicates, sourcecontrol.RefURLLT(*i.RefURLLT)) } - if i.RunnerArchLTE != nil { - predicates = append(predicates, sourcecontrol.RunnerArchLTE(*i.RunnerArchLTE)) + if i.RefURLLTE != nil { + predicates = append(predicates, sourcecontrol.RefURLLTE(*i.RefURLLTE)) } - if i.RunnerArchContains != nil { - predicates = append(predicates, sourcecontrol.RunnerArchContains(*i.RunnerArchContains)) + if i.RefURLContains != nil { + predicates = append(predicates, sourcecontrol.RefURLContains(*i.RefURLContains)) } - if i.RunnerArchHasPrefix != nil { - predicates = append(predicates, sourcecontrol.RunnerArchHasPrefix(*i.RunnerArchHasPrefix)) + if i.RefURLHasPrefix != nil { + predicates = append(predicates, sourcecontrol.RefURLHasPrefix(*i.RefURLHasPrefix)) } - if i.RunnerArchHasSuffix != nil { - predicates = append(predicates, sourcecontrol.RunnerArchHasSuffix(*i.RunnerArchHasSuffix)) + if i.RefURLHasSuffix != nil { + predicates = append(predicates, sourcecontrol.RefURLHasSuffix(*i.RefURLHasSuffix)) } - if i.RunnerArchIsNil { - predicates = append(predicates, sourcecontrol.RunnerArchIsNil()) + if i.RefURLIsNil { + predicates = append(predicates, sourcecontrol.RefURLIsNil()) } - if i.RunnerArchNotNil { - predicates = append(predicates, sourcecontrol.RunnerArchNotNil()) + if i.RefURLNotNil { + predicates = append(predicates, sourcecontrol.RefURLNotNil()) } - if i.RunnerArchEqualFold != nil { - predicates = append(predicates, sourcecontrol.RunnerArchEqualFold(*i.RunnerArchEqualFold)) + if i.RefURLEqualFold != nil { + predicates = append(predicates, sourcecontrol.RefURLEqualFold(*i.RefURLEqualFold)) } - if i.RunnerArchContainsFold != nil { - predicates = append(predicates, sourcecontrol.RunnerArchContainsFold(*i.RunnerArchContainsFold)) + if i.RefURLContainsFold != nil { + predicates = append(predicates, sourcecontrol.RefURLContainsFold(*i.RefURLContainsFold)) } - if i.RunnerOs != nil { - predicates = append(predicates, sourcecontrol.RunnerOsEQ(*i.RunnerOs)) + if i.Commit != nil { + predicates = append(predicates, sourcecontrol.CommitEQ(*i.Commit)) } - if i.RunnerOsNEQ != nil { - predicates = append(predicates, sourcecontrol.RunnerOsNEQ(*i.RunnerOsNEQ)) + if i.CommitNEQ != nil { + predicates = append(predicates, sourcecontrol.CommitNEQ(*i.CommitNEQ)) } - if len(i.RunnerOsIn) > 0 { - predicates = append(predicates, sourcecontrol.RunnerOsIn(i.RunnerOsIn...)) + if len(i.CommitIn) > 0 { + predicates = append(predicates, sourcecontrol.CommitIn(i.CommitIn...)) } - if len(i.RunnerOsNotIn) > 0 { - predicates = append(predicates, sourcecontrol.RunnerOsNotIn(i.RunnerOsNotIn...)) + if len(i.CommitNotIn) > 0 { + predicates = append(predicates, sourcecontrol.CommitNotIn(i.CommitNotIn...)) } - if i.RunnerOsGT != nil { - predicates = append(predicates, sourcecontrol.RunnerOsGT(*i.RunnerOsGT)) + if i.CommitGT != nil { + predicates = append(predicates, sourcecontrol.CommitGT(*i.CommitGT)) } - if i.RunnerOsGTE != nil { - predicates = append(predicates, sourcecontrol.RunnerOsGTE(*i.RunnerOsGTE)) + if i.CommitGTE != nil { + predicates = append(predicates, sourcecontrol.CommitGTE(*i.CommitGTE)) } - if i.RunnerOsLT != nil { - predicates = append(predicates, sourcecontrol.RunnerOsLT(*i.RunnerOsLT)) + if i.CommitLT != nil { + predicates = append(predicates, sourcecontrol.CommitLT(*i.CommitLT)) } - if i.RunnerOsLTE != nil { - predicates = append(predicates, sourcecontrol.RunnerOsLTE(*i.RunnerOsLTE)) + if i.CommitLTE != nil { + predicates = append(predicates, sourcecontrol.CommitLTE(*i.CommitLTE)) } - if i.RunnerOsContains != nil { - predicates = append(predicates, sourcecontrol.RunnerOsContains(*i.RunnerOsContains)) + if i.CommitContains != nil { + predicates = append(predicates, sourcecontrol.CommitContains(*i.CommitContains)) } - if i.RunnerOsHasPrefix != nil { - predicates = append(predicates, sourcecontrol.RunnerOsHasPrefix(*i.RunnerOsHasPrefix)) + if i.CommitHasPrefix != nil { + predicates = append(predicates, sourcecontrol.CommitHasPrefix(*i.CommitHasPrefix)) } - if i.RunnerOsHasSuffix != nil { - predicates = append(predicates, sourcecontrol.RunnerOsHasSuffix(*i.RunnerOsHasSuffix)) + if i.CommitHasSuffix != nil { + predicates = append(predicates, sourcecontrol.CommitHasSuffix(*i.CommitHasSuffix)) } - if i.RunnerOsIsNil { - predicates = append(predicates, sourcecontrol.RunnerOsIsNil()) + if i.CommitIsNil { + predicates = append(predicates, sourcecontrol.CommitIsNil()) } - if i.RunnerOsNotNil { - predicates = append(predicates, sourcecontrol.RunnerOsNotNil()) + if i.CommitNotNil { + predicates = append(predicates, sourcecontrol.CommitNotNil()) } - if i.RunnerOsEqualFold != nil { - predicates = append(predicates, sourcecontrol.RunnerOsEqualFold(*i.RunnerOsEqualFold)) + if i.CommitEqualFold != nil { + predicates = append(predicates, sourcecontrol.CommitEqualFold(*i.CommitEqualFold)) } - if i.RunnerOsContainsFold != nil { - predicates = append(predicates, sourcecontrol.RunnerOsContainsFold(*i.RunnerOsContainsFold)) + if i.CommitContainsFold != nil { + predicates = append(predicates, sourcecontrol.CommitContainsFold(*i.CommitContainsFold)) } - if i.Workspace != nil { - predicates = append(predicates, sourcecontrol.WorkspaceEQ(*i.Workspace)) + if i.CommitURL != nil { + predicates = append(predicates, sourcecontrol.CommitURLEQ(*i.CommitURL)) } - if i.WorkspaceNEQ != nil { - predicates = append(predicates, sourcecontrol.WorkspaceNEQ(*i.WorkspaceNEQ)) + if i.CommitURLNEQ != nil { + predicates = append(predicates, sourcecontrol.CommitURLNEQ(*i.CommitURLNEQ)) } - if len(i.WorkspaceIn) > 0 { - predicates = append(predicates, sourcecontrol.WorkspaceIn(i.WorkspaceIn...)) + if len(i.CommitURLIn) > 0 { + predicates = append(predicates, sourcecontrol.CommitURLIn(i.CommitURLIn...)) } - if len(i.WorkspaceNotIn) > 0 { - predicates = append(predicates, sourcecontrol.WorkspaceNotIn(i.WorkspaceNotIn...)) + if len(i.CommitURLNotIn) > 0 { + predicates = append(predicates, sourcecontrol.CommitURLNotIn(i.CommitURLNotIn...)) } - if i.WorkspaceGT != nil { - predicates = append(predicates, sourcecontrol.WorkspaceGT(*i.WorkspaceGT)) + if i.CommitURLGT != nil { + predicates = append(predicates, sourcecontrol.CommitURLGT(*i.CommitURLGT)) } - if i.WorkspaceGTE != nil { - predicates = append(predicates, sourcecontrol.WorkspaceGTE(*i.WorkspaceGTE)) + if i.CommitURLGTE != nil { + predicates = append(predicates, sourcecontrol.CommitURLGTE(*i.CommitURLGTE)) } - if i.WorkspaceLT != nil { - predicates = append(predicates, sourcecontrol.WorkspaceLT(*i.WorkspaceLT)) + if i.CommitURLLT != nil { + predicates = append(predicates, sourcecontrol.CommitURLLT(*i.CommitURLLT)) } - if i.WorkspaceLTE != nil { - predicates = append(predicates, sourcecontrol.WorkspaceLTE(*i.WorkspaceLTE)) + if i.CommitURLLTE != nil { + predicates = append(predicates, sourcecontrol.CommitURLLTE(*i.CommitURLLTE)) } - if i.WorkspaceContains != nil { - predicates = append(predicates, sourcecontrol.WorkspaceContains(*i.WorkspaceContains)) + if i.CommitURLContains != nil { + predicates = append(predicates, sourcecontrol.CommitURLContains(*i.CommitURLContains)) } - if i.WorkspaceHasPrefix != nil { - predicates = append(predicates, sourcecontrol.WorkspaceHasPrefix(*i.WorkspaceHasPrefix)) + if i.CommitURLHasPrefix != nil { + predicates = append(predicates, sourcecontrol.CommitURLHasPrefix(*i.CommitURLHasPrefix)) } - if i.WorkspaceHasSuffix != nil { - predicates = append(predicates, sourcecontrol.WorkspaceHasSuffix(*i.WorkspaceHasSuffix)) + if i.CommitURLHasSuffix != nil { + predicates = append(predicates, sourcecontrol.CommitURLHasSuffix(*i.CommitURLHasSuffix)) } - if i.WorkspaceIsNil { - predicates = append(predicates, sourcecontrol.WorkspaceIsNil()) + if i.CommitURLIsNil { + predicates = append(predicates, sourcecontrol.CommitURLIsNil()) } - if i.WorkspaceNotNil { - predicates = append(predicates, sourcecontrol.WorkspaceNotNil()) + if i.CommitURLNotNil { + predicates = append(predicates, sourcecontrol.CommitURLNotNil()) } - if i.WorkspaceEqualFold != nil { - predicates = append(predicates, sourcecontrol.WorkspaceEqualFold(*i.WorkspaceEqualFold)) + if i.CommitURLEqualFold != nil { + predicates = append(predicates, sourcecontrol.CommitURLEqualFold(*i.CommitURLEqualFold)) } - if i.WorkspaceContainsFold != nil { - predicates = append(predicates, sourcecontrol.WorkspaceContainsFold(*i.WorkspaceContainsFold)) + if i.CommitURLContainsFold != nil { + predicates = append(predicates, sourcecontrol.CommitURLContainsFold(*i.CommitURLContainsFold)) } if i.HasBazelInvocation != nil { diff --git a/ent/gen/ent/hook/hook.go b/ent/gen/ent/hook/hook.go index 04686864..c59d0e19 100644 --- a/ent/gen/ent/hook/hook.go +++ b/ent/gen/ent/hook/hook.go @@ -129,6 +129,18 @@ func (f BuildLogChunkFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Valu return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.BuildLogChunkMutation", m) } +// The BuildTagFunc type is an adapter to allow the use of ordinary +// function as BuildTag mutator. +type BuildTagFunc func(context.Context, *ent.BuildTagMutation) (ent.Value, error) + +// Mutate calls f(ctx, m). +func (f BuildTagFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { + if mv, ok := m.(*ent.BuildTagMutation); ok { + return f(ctx, mv) + } + return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.BuildTagMutation", m) +} + // The ConfigurationFunc type is an adapter to allow the use of ordinary // function as Configuration mutator. type ConfigurationFunc func(context.Context, *ent.ConfigurationMutation) (ent.Value, error) @@ -213,6 +225,18 @@ func (f InvocationFilesFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Va return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.InvocationFilesMutation", m) } +// The InvocationTagFunc type is an adapter to allow the use of ordinary +// function as InvocationTag mutator. +type InvocationTagFunc func(context.Context, *ent.InvocationTagMutation) (ent.Value, error) + +// Mutate calls f(ctx, m). +func (f InvocationTagFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { + if mv, ok := m.(*ent.InvocationTagMutation); ok { + return f(ctx, mv) + } + return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.InvocationTagMutation", m) +} + // The InvocationTargetFunc type is an adapter to allow the use of ordinary // function as InvocationTarget mutator. type InvocationTargetFunc func(context.Context, *ent.InvocationTargetMutation) (ent.Value, error) diff --git a/ent/gen/ent/invocationtag.go b/ent/gen/ent/invocationtag.go new file mode 100644 index 00000000..79c011d4 --- /dev/null +++ b/ent/gen/ent/invocationtag.go @@ -0,0 +1,156 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "fmt" + "strings" + + "entgo.io/ent" + "entgo.io/ent/dialect/sql" + "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" +) + +// InvocationTag is the model entity for the InvocationTag schema. +type InvocationTag struct { + config `json:"-"` + // ID of the ent. + ID int64 `json:"id,omitempty"` + // BazelInvocationID holds the value of the "bazel_invocation_id" field. + BazelInvocationID int64 `json:"bazel_invocation_id,omitempty"` + // Key holds the value of the "key" field. + Key string `json:"key,omitempty"` + // Value holds the value of the "value" field. + Value string `json:"value,omitempty"` + // Edges holds the relations/edges for other nodes in the graph. + // The values are being populated by the InvocationTagQuery when eager-loading is set. + Edges InvocationTagEdges `json:"edges"` + selectValues sql.SelectValues +} + +// InvocationTagEdges holds the relations/edges for other nodes in the graph. +type InvocationTagEdges struct { + // BazelInvocation holds the value of the bazel_invocation edge. + BazelInvocation *BazelInvocation `json:"bazel_invocation,omitempty"` + // loadedTypes holds the information for reporting if a + // type was loaded (or requested) in eager-loading or not. + loadedTypes [1]bool + // totalCount holds the count of the edges above. + totalCount [1]map[string]int +} + +// BazelInvocationOrErr returns the BazelInvocation value or an error if the edge +// was not loaded in eager-loading, or loaded but was not found. +func (e InvocationTagEdges) BazelInvocationOrErr() (*BazelInvocation, error) { + if e.BazelInvocation != nil { + return e.BazelInvocation, nil + } else if e.loadedTypes[0] { + return nil, &NotFoundError{label: bazelinvocation.Label} + } + return nil, &NotLoadedError{edge: "bazel_invocation"} +} + +// scanValues returns the types for scanning values from sql.Rows. +func (*InvocationTag) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) + for i := range columns { + switch columns[i] { + case invocationtag.FieldID, invocationtag.FieldBazelInvocationID: + values[i] = new(sql.NullInt64) + case invocationtag.FieldKey, invocationtag.FieldValue: + values[i] = new(sql.NullString) + default: + values[i] = new(sql.UnknownType) + } + } + return values, nil +} + +// assignValues assigns the values that were returned from sql.Rows (after scanning) +// to the InvocationTag fields. +func (it *InvocationTag) assignValues(columns []string, values []any) error { + if m, n := len(values), len(columns); m < n { + return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) + } + for i := range columns { + switch columns[i] { + case invocationtag.FieldID: + value, ok := values[i].(*sql.NullInt64) + if !ok { + return fmt.Errorf("unexpected type %T for field id", value) + } + it.ID = int64(value.Int64) + case invocationtag.FieldBazelInvocationID: + if value, ok := values[i].(*sql.NullInt64); !ok { + return fmt.Errorf("unexpected type %T for field bazel_invocation_id", values[i]) + } else if value.Valid { + it.BazelInvocationID = value.Int64 + } + case invocationtag.FieldKey: + if value, ok := values[i].(*sql.NullString); !ok { + return fmt.Errorf("unexpected type %T for field key", values[i]) + } else if value.Valid { + it.Key = value.String + } + case invocationtag.FieldValue: + if value, ok := values[i].(*sql.NullString); !ok { + return fmt.Errorf("unexpected type %T for field value", values[i]) + } else if value.Valid { + it.Value = value.String + } + default: + it.selectValues.Set(columns[i], values[i]) + } + } + return nil +} + +// GetValue returns the ent.Value that was dynamically selected and assigned to the InvocationTag. +// This includes values selected through modifiers, order, etc. +func (it *InvocationTag) GetValue(name string) (ent.Value, error) { + return it.selectValues.Get(name) +} + +// QueryBazelInvocation queries the "bazel_invocation" edge of the InvocationTag entity. +func (it *InvocationTag) QueryBazelInvocation() *BazelInvocationQuery { + return NewInvocationTagClient(it.config).QueryBazelInvocation(it) +} + +// Update returns a builder for updating this InvocationTag. +// Note that you need to call InvocationTag.Unwrap() before calling this method if this InvocationTag +// was returned from a transaction, and the transaction was committed or rolled back. +func (it *InvocationTag) Update() *InvocationTagUpdateOne { + return NewInvocationTagClient(it.config).UpdateOne(it) +} + +// Unwrap unwraps the InvocationTag entity that was returned from a transaction after it was closed, +// so that all future queries will be executed through the driver which created the transaction. +func (it *InvocationTag) Unwrap() *InvocationTag { + _tx, ok := it.config.driver.(*txDriver) + if !ok { + panic("ent: InvocationTag is not a transactional entity") + } + it.config.driver = _tx.drv + return it +} + +// String implements the fmt.Stringer. +func (it *InvocationTag) String() string { + var builder strings.Builder + builder.WriteString("InvocationTag(") + builder.WriteString(fmt.Sprintf("id=%v, ", it.ID)) + builder.WriteString("bazel_invocation_id=") + builder.WriteString(fmt.Sprintf("%v", it.BazelInvocationID)) + builder.WriteString(", ") + builder.WriteString("key=") + builder.WriteString(it.Key) + builder.WriteString(", ") + builder.WriteString("value=") + builder.WriteString(it.Value) + builder.WriteByte(')') + return builder.String() +} + +// InvocationTags is a parsable slice of InvocationTag. +type InvocationTags []*InvocationTag diff --git a/ent/gen/ent/invocationtag/BUILD.bazel b/ent/gen/ent/invocationtag/BUILD.bazel new file mode 100644 index 00000000..6269b5b3 --- /dev/null +++ b/ent/gen/ent/invocationtag/BUILD.bazel @@ -0,0 +1,16 @@ +load("@rules_go//go:def.bzl", "go_library") + +go_library( + name = "invocationtag", + srcs = [ + "invocationtag.go", + "where.go", + ], + importpath = "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag", + visibility = ["//visibility:public"], + deps = [ + "//ent/gen/ent/predicate", + "@io_entgo_ent//dialect/sql", + "@io_entgo_ent//dialect/sql/sqlgraph", + ], +) diff --git a/ent/gen/ent/invocationtag/invocationtag.go b/ent/gen/ent/invocationtag/invocationtag.go new file mode 100644 index 00000000..3c8c131c --- /dev/null +++ b/ent/gen/ent/invocationtag/invocationtag.go @@ -0,0 +1,87 @@ +// Code generated by ent, DO NOT EDIT. + +package invocationtag + +import ( + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" +) + +const ( + // Label holds the string label denoting the invocationtag type in the database. + Label = "invocation_tag" + // FieldID holds the string denoting the id field in the database. + FieldID = "id" + // FieldBazelInvocationID holds the string denoting the bazel_invocation_id field in the database. + FieldBazelInvocationID = "bazel_invocation_id" + // FieldKey holds the string denoting the key field in the database. + FieldKey = "key" + // FieldValue holds the string denoting the value field in the database. + FieldValue = "value" + // EdgeBazelInvocation holds the string denoting the bazel_invocation edge name in mutations. + EdgeBazelInvocation = "bazel_invocation" + // Table holds the table name of the invocationtag in the database. + Table = "invocation_tags" + // BazelInvocationTable is the table that holds the bazel_invocation relation/edge. + BazelInvocationTable = "invocation_tags" + // BazelInvocationInverseTable is the table name for the BazelInvocation entity. + // It exists in this package in order to avoid circular dependency with the "bazelinvocation" package. + BazelInvocationInverseTable = "bazel_invocations" + // BazelInvocationColumn is the table column denoting the bazel_invocation relation/edge. + BazelInvocationColumn = "bazel_invocation_id" +) + +// Columns holds all SQL columns for invocationtag fields. +var Columns = []string{ + FieldID, + FieldBazelInvocationID, + FieldKey, + FieldValue, +} + +// ValidColumn reports if the column name is valid (part of the table columns). +func ValidColumn(column string) bool { + for i := range Columns { + if column == Columns[i] { + return true + } + } + return false +} + +// OrderOption defines the ordering options for the InvocationTag queries. +type OrderOption func(*sql.Selector) + +// ByID orders the results by the id field. +func ByID(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldID, opts...).ToFunc() +} + +// ByBazelInvocationID orders the results by the bazel_invocation_id field. +func ByBazelInvocationID(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldBazelInvocationID, opts...).ToFunc() +} + +// ByKey orders the results by the key field. +func ByKey(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldKey, opts...).ToFunc() +} + +// ByValue orders the results by the value field. +func ByValue(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldValue, opts...).ToFunc() +} + +// ByBazelInvocationField orders the results by bazel_invocation field. +func ByBazelInvocationField(field string, opts ...sql.OrderTermOption) OrderOption { + return func(s *sql.Selector) { + sqlgraph.OrderByNeighborTerms(s, newBazelInvocationStep(), sql.OrderByField(field, opts...)) + } +} +func newBazelInvocationStep() *sqlgraph.Step { + return sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.To(BazelInvocationInverseTable, FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, BazelInvocationTable, BazelInvocationColumn), + ) +} diff --git a/ent/gen/ent/invocationtag/where.go b/ent/gen/ent/invocationtag/where.go new file mode 100644 index 00000000..b873d06d --- /dev/null +++ b/ent/gen/ent/invocationtag/where.go @@ -0,0 +1,257 @@ +// Code generated by ent, DO NOT EDIT. + +package invocationtag + +import ( + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// ID filters vertices based on their ID field. +func ID(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldID, id)) +} + +// IDEQ applies the EQ predicate on the ID field. +func IDEQ(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldID, id)) +} + +// IDNEQ applies the NEQ predicate on the ID field. +func IDNEQ(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNEQ(FieldID, id)) +} + +// IDIn applies the In predicate on the ID field. +func IDIn(ids ...int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldIn(FieldID, ids...)) +} + +// IDNotIn applies the NotIn predicate on the ID field. +func IDNotIn(ids ...int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNotIn(FieldID, ids...)) +} + +// IDGT applies the GT predicate on the ID field. +func IDGT(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldGT(FieldID, id)) +} + +// IDGTE applies the GTE predicate on the ID field. +func IDGTE(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldGTE(FieldID, id)) +} + +// IDLT applies the LT predicate on the ID field. +func IDLT(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldLT(FieldID, id)) +} + +// IDLTE applies the LTE predicate on the ID field. +func IDLTE(id int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldLTE(FieldID, id)) +} + +// BazelInvocationID applies equality check predicate on the "bazel_invocation_id" field. It's identical to BazelInvocationIDEQ. +func BazelInvocationID(v int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldBazelInvocationID, v)) +} + +// Key applies equality check predicate on the "key" field. It's identical to KeyEQ. +func Key(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldKey, v)) +} + +// Value applies equality check predicate on the "value" field. It's identical to ValueEQ. +func Value(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldValue, v)) +} + +// BazelInvocationIDEQ applies the EQ predicate on the "bazel_invocation_id" field. +func BazelInvocationIDEQ(v int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldBazelInvocationID, v)) +} + +// BazelInvocationIDNEQ applies the NEQ predicate on the "bazel_invocation_id" field. +func BazelInvocationIDNEQ(v int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNEQ(FieldBazelInvocationID, v)) +} + +// BazelInvocationIDIn applies the In predicate on the "bazel_invocation_id" field. +func BazelInvocationIDIn(vs ...int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldIn(FieldBazelInvocationID, vs...)) +} + +// BazelInvocationIDNotIn applies the NotIn predicate on the "bazel_invocation_id" field. +func BazelInvocationIDNotIn(vs ...int64) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNotIn(FieldBazelInvocationID, vs...)) +} + +// KeyEQ applies the EQ predicate on the "key" field. +func KeyEQ(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldKey, v)) +} + +// KeyNEQ applies the NEQ predicate on the "key" field. +func KeyNEQ(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNEQ(FieldKey, v)) +} + +// KeyIn applies the In predicate on the "key" field. +func KeyIn(vs ...string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldIn(FieldKey, vs...)) +} + +// KeyNotIn applies the NotIn predicate on the "key" field. +func KeyNotIn(vs ...string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNotIn(FieldKey, vs...)) +} + +// KeyGT applies the GT predicate on the "key" field. +func KeyGT(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldGT(FieldKey, v)) +} + +// KeyGTE applies the GTE predicate on the "key" field. +func KeyGTE(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldGTE(FieldKey, v)) +} + +// KeyLT applies the LT predicate on the "key" field. +func KeyLT(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldLT(FieldKey, v)) +} + +// KeyLTE applies the LTE predicate on the "key" field. +func KeyLTE(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldLTE(FieldKey, v)) +} + +// KeyContains applies the Contains predicate on the "key" field. +func KeyContains(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldContains(FieldKey, v)) +} + +// KeyHasPrefix applies the HasPrefix predicate on the "key" field. +func KeyHasPrefix(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldHasPrefix(FieldKey, v)) +} + +// KeyHasSuffix applies the HasSuffix predicate on the "key" field. +func KeyHasSuffix(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldHasSuffix(FieldKey, v)) +} + +// KeyEqualFold applies the EqualFold predicate on the "key" field. +func KeyEqualFold(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEqualFold(FieldKey, v)) +} + +// KeyContainsFold applies the ContainsFold predicate on the "key" field. +func KeyContainsFold(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldContainsFold(FieldKey, v)) +} + +// ValueEQ applies the EQ predicate on the "value" field. +func ValueEQ(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEQ(FieldValue, v)) +} + +// ValueNEQ applies the NEQ predicate on the "value" field. +func ValueNEQ(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNEQ(FieldValue, v)) +} + +// ValueIn applies the In predicate on the "value" field. +func ValueIn(vs ...string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldIn(FieldValue, vs...)) +} + +// ValueNotIn applies the NotIn predicate on the "value" field. +func ValueNotIn(vs ...string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldNotIn(FieldValue, vs...)) +} + +// ValueGT applies the GT predicate on the "value" field. +func ValueGT(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldGT(FieldValue, v)) +} + +// ValueGTE applies the GTE predicate on the "value" field. +func ValueGTE(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldGTE(FieldValue, v)) +} + +// ValueLT applies the LT predicate on the "value" field. +func ValueLT(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldLT(FieldValue, v)) +} + +// ValueLTE applies the LTE predicate on the "value" field. +func ValueLTE(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldLTE(FieldValue, v)) +} + +// ValueContains applies the Contains predicate on the "value" field. +func ValueContains(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldContains(FieldValue, v)) +} + +// ValueHasPrefix applies the HasPrefix predicate on the "value" field. +func ValueHasPrefix(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldHasPrefix(FieldValue, v)) +} + +// ValueHasSuffix applies the HasSuffix predicate on the "value" field. +func ValueHasSuffix(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldHasSuffix(FieldValue, v)) +} + +// ValueEqualFold applies the EqualFold predicate on the "value" field. +func ValueEqualFold(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldEqualFold(FieldValue, v)) +} + +// ValueContainsFold applies the ContainsFold predicate on the "value" field. +func ValueContainsFold(v string) predicate.InvocationTag { + return predicate.InvocationTag(sql.FieldContainsFold(FieldValue, v)) +} + +// HasBazelInvocation applies the HasEdge predicate on the "bazel_invocation" edge. +func HasBazelInvocation() predicate.InvocationTag { + return predicate.InvocationTag(func(s *sql.Selector) { + step := sqlgraph.NewStep( + sqlgraph.From(Table, FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, BazelInvocationTable, BazelInvocationColumn), + ) + sqlgraph.HasNeighbors(s, step) + }) +} + +// HasBazelInvocationWith applies the HasEdge predicate on the "bazel_invocation" edge with a given conditions (other predicates). +func HasBazelInvocationWith(preds ...predicate.BazelInvocation) predicate.InvocationTag { + return predicate.InvocationTag(func(s *sql.Selector) { + step := newBazelInvocationStep() + sqlgraph.HasNeighborsWith(s, step, func(s *sql.Selector) { + for _, p := range preds { + p(s) + } + }) + }) +} + +// And groups predicates with the AND operator between them. +func And(predicates ...predicate.InvocationTag) predicate.InvocationTag { + return predicate.InvocationTag(sql.AndPredicates(predicates...)) +} + +// Or groups predicates with the OR operator between them. +func Or(predicates ...predicate.InvocationTag) predicate.InvocationTag { + return predicate.InvocationTag(sql.OrPredicates(predicates...)) +} + +// Not applies the not operator on the given predicate. +func Not(p predicate.InvocationTag) predicate.InvocationTag { + return predicate.InvocationTag(sql.NotPredicates(p)) +} diff --git a/ent/gen/ent/invocationtag_create.go b/ent/gen/ent/invocationtag_create.go new file mode 100644 index 00000000..6be6f9c1 --- /dev/null +++ b/ent/gen/ent/invocationtag_create.go @@ -0,0 +1,510 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + "errors" + "fmt" + + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" +) + +// InvocationTagCreate is the builder for creating a InvocationTag entity. +type InvocationTagCreate struct { + config + mutation *InvocationTagMutation + hooks []Hook + conflict []sql.ConflictOption +} + +// SetBazelInvocationID sets the "bazel_invocation_id" field. +func (itc *InvocationTagCreate) SetBazelInvocationID(i int64) *InvocationTagCreate { + itc.mutation.SetBazelInvocationID(i) + return itc +} + +// SetKey sets the "key" field. +func (itc *InvocationTagCreate) SetKey(s string) *InvocationTagCreate { + itc.mutation.SetKey(s) + return itc +} + +// SetValue sets the "value" field. +func (itc *InvocationTagCreate) SetValue(s string) *InvocationTagCreate { + itc.mutation.SetValue(s) + return itc +} + +// SetID sets the "id" field. +func (itc *InvocationTagCreate) SetID(i int64) *InvocationTagCreate { + itc.mutation.SetID(i) + return itc +} + +// SetBazelInvocation sets the "bazel_invocation" edge to the BazelInvocation entity. +func (itc *InvocationTagCreate) SetBazelInvocation(b *BazelInvocation) *InvocationTagCreate { + return itc.SetBazelInvocationID(b.ID) +} + +// Mutation returns the InvocationTagMutation object of the builder. +func (itc *InvocationTagCreate) Mutation() *InvocationTagMutation { + return itc.mutation +} + +// Save creates the InvocationTag in the database. +func (itc *InvocationTagCreate) Save(ctx context.Context) (*InvocationTag, error) { + return withHooks(ctx, itc.sqlSave, itc.mutation, itc.hooks) +} + +// SaveX calls Save and panics if Save returns an error. +func (itc *InvocationTagCreate) SaveX(ctx context.Context) *InvocationTag { + v, err := itc.Save(ctx) + if err != nil { + panic(err) + } + return v +} + +// Exec executes the query. +func (itc *InvocationTagCreate) Exec(ctx context.Context) error { + _, err := itc.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (itc *InvocationTagCreate) ExecX(ctx context.Context) { + if err := itc.Exec(ctx); err != nil { + panic(err) + } +} + +// check runs all checks and user-defined validators on the builder. +func (itc *InvocationTagCreate) check() error { + if _, ok := itc.mutation.BazelInvocationID(); !ok { + return &ValidationError{Name: "bazel_invocation_id", err: errors.New(`ent: missing required field "InvocationTag.bazel_invocation_id"`)} + } + if _, ok := itc.mutation.Key(); !ok { + return &ValidationError{Name: "key", err: errors.New(`ent: missing required field "InvocationTag.key"`)} + } + if _, ok := itc.mutation.Value(); !ok { + return &ValidationError{Name: "value", err: errors.New(`ent: missing required field "InvocationTag.value"`)} + } + if len(itc.mutation.BazelInvocationIDs()) == 0 { + return &ValidationError{Name: "bazel_invocation", err: errors.New(`ent: missing required edge "InvocationTag.bazel_invocation"`)} + } + return nil +} + +func (itc *InvocationTagCreate) sqlSave(ctx context.Context) (*InvocationTag, error) { + if err := itc.check(); err != nil { + return nil, err + } + _node, _spec := itc.createSpec() + if err := sqlgraph.CreateNode(ctx, itc.driver, _spec); err != nil { + if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return nil, err + } + if _spec.ID.Value != _node.ID { + id := _spec.ID.Value.(int64) + _node.ID = int64(id) + } + itc.mutation.id = &_node.ID + itc.mutation.done = true + return _node, nil +} + +func (itc *InvocationTagCreate) createSpec() (*InvocationTag, *sqlgraph.CreateSpec) { + var ( + _node = &InvocationTag{config: itc.config} + _spec = sqlgraph.NewCreateSpec(invocationtag.Table, sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64)) + ) + _spec.OnConflict = itc.conflict + if id, ok := itc.mutation.ID(); ok { + _node.ID = id + _spec.ID.Value = id + } + if value, ok := itc.mutation.Key(); ok { + _spec.SetField(invocationtag.FieldKey, field.TypeString, value) + _node.Key = value + } + if value, ok := itc.mutation.Value(); ok { + _spec.SetField(invocationtag.FieldValue, field.TypeString, value) + _node.Value = value + } + if nodes := itc.mutation.BazelInvocationIDs(); len(nodes) > 0 { + edge := &sqlgraph.EdgeSpec{ + Rel: sqlgraph.M2O, + Inverse: true, + Table: invocationtag.BazelInvocationTable, + Columns: []string{invocationtag.BazelInvocationColumn}, + Bidi: false, + Target: &sqlgraph.EdgeTarget{ + IDSpec: sqlgraph.NewFieldSpec(bazelinvocation.FieldID, field.TypeInt64), + }, + } + for _, k := range nodes { + edge.Target.Nodes = append(edge.Target.Nodes, k) + } + _node.BazelInvocationID = nodes[0] + _spec.Edges = append(_spec.Edges, edge) + } + return _node, _spec +} + +// OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause +// of the `INSERT` statement. For example: +// +// client.InvocationTag.Create(). +// SetBazelInvocationID(v). +// OnConflict( +// // Update the row with the new values +// // the was proposed for insertion. +// sql.ResolveWithNewValues(), +// ). +// // Override some of the fields with custom +// // update values. +// Update(func(u *ent.InvocationTagUpsert) { +// SetBazelInvocationID(v+v). +// }). +// Exec(ctx) +func (itc *InvocationTagCreate) OnConflict(opts ...sql.ConflictOption) *InvocationTagUpsertOne { + itc.conflict = opts + return &InvocationTagUpsertOne{ + create: itc, + } +} + +// OnConflictColumns calls `OnConflict` and configures the columns +// as conflict target. Using this option is equivalent to using: +// +// client.InvocationTag.Create(). +// OnConflict(sql.ConflictColumns(columns...)). +// Exec(ctx) +func (itc *InvocationTagCreate) OnConflictColumns(columns ...string) *InvocationTagUpsertOne { + itc.conflict = append(itc.conflict, sql.ConflictColumns(columns...)) + return &InvocationTagUpsertOne{ + create: itc, + } +} + +type ( + // InvocationTagUpsertOne is the builder for "upsert"-ing + // one InvocationTag node. + InvocationTagUpsertOne struct { + create *InvocationTagCreate + } + + // InvocationTagUpsert is the "OnConflict" setter. + InvocationTagUpsert struct { + *sql.UpdateSet + } +) + +// UpdateNewValues updates the mutable fields using the new values that were set on create except the ID field. +// Using this option is equivalent to using: +// +// client.InvocationTag.Create(). +// OnConflict( +// sql.ResolveWithNewValues(), +// sql.ResolveWith(func(u *sql.UpdateSet) { +// u.SetIgnore(invocationtag.FieldID) +// }), +// ). +// Exec(ctx) +func (u *InvocationTagUpsertOne) UpdateNewValues() *InvocationTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { + if _, exists := u.create.mutation.ID(); exists { + s.SetIgnore(invocationtag.FieldID) + } + if _, exists := u.create.mutation.BazelInvocationID(); exists { + s.SetIgnore(invocationtag.FieldBazelInvocationID) + } + if _, exists := u.create.mutation.Key(); exists { + s.SetIgnore(invocationtag.FieldKey) + } + if _, exists := u.create.mutation.Value(); exists { + s.SetIgnore(invocationtag.FieldValue) + } + })) + return u +} + +// Ignore sets each column to itself in case of conflict. +// Using this option is equivalent to using: +// +// client.InvocationTag.Create(). +// OnConflict(sql.ResolveWithIgnore()). +// Exec(ctx) +func (u *InvocationTagUpsertOne) Ignore() *InvocationTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) + return u +} + +// DoNothing configures the conflict_action to `DO NOTHING`. +// Supported only by SQLite and PostgreSQL. +func (u *InvocationTagUpsertOne) DoNothing() *InvocationTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.DoNothing()) + return u +} + +// Update allows overriding fields `UPDATE` values. See the InvocationTagCreate.OnConflict +// documentation for more info. +func (u *InvocationTagUpsertOne) Update(set func(*InvocationTagUpsert)) *InvocationTagUpsertOne { + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { + set(&InvocationTagUpsert{UpdateSet: update}) + })) + return u +} + +// Exec executes the query. +func (u *InvocationTagUpsertOne) Exec(ctx context.Context) error { + if len(u.create.conflict) == 0 { + return errors.New("ent: missing options for InvocationTagCreate.OnConflict") + } + return u.create.Exec(ctx) +} + +// ExecX is like Exec, but panics if an error occurs. +func (u *InvocationTagUpsertOne) ExecX(ctx context.Context) { + if err := u.create.Exec(ctx); err != nil { + panic(err) + } +} + +// Exec executes the UPSERT query and returns the inserted/updated ID. +func (u *InvocationTagUpsertOne) ID(ctx context.Context) (id int64, err error) { + node, err := u.create.Save(ctx) + if err != nil { + return id, err + } + return node.ID, nil +} + +// IDX is like ID, but panics if an error occurs. +func (u *InvocationTagUpsertOne) IDX(ctx context.Context) int64 { + id, err := u.ID(ctx) + if err != nil { + panic(err) + } + return id +} + +// InvocationTagCreateBulk is the builder for creating many InvocationTag entities in bulk. +type InvocationTagCreateBulk struct { + config + err error + builders []*InvocationTagCreate + conflict []sql.ConflictOption +} + +// Save creates the InvocationTag entities in the database. +func (itcb *InvocationTagCreateBulk) Save(ctx context.Context) ([]*InvocationTag, error) { + if itcb.err != nil { + return nil, itcb.err + } + specs := make([]*sqlgraph.CreateSpec, len(itcb.builders)) + nodes := make([]*InvocationTag, len(itcb.builders)) + mutators := make([]Mutator, len(itcb.builders)) + for i := range itcb.builders { + func(i int, root context.Context) { + builder := itcb.builders[i] + var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) { + mutation, ok := m.(*InvocationTagMutation) + if !ok { + return nil, fmt.Errorf("unexpected mutation type %T", m) + } + if err := builder.check(); err != nil { + return nil, err + } + builder.mutation = mutation + var err error + nodes[i], specs[i] = builder.createSpec() + if i < len(mutators)-1 { + _, err = mutators[i+1].Mutate(root, itcb.builders[i+1].mutation) + } else { + spec := &sqlgraph.BatchCreateSpec{Nodes: specs} + spec.OnConflict = itcb.conflict + // Invoke the actual operation on the latest mutation in the chain. + if err = sqlgraph.BatchCreate(ctx, itcb.driver, spec); err != nil { + if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + } + } + if err != nil { + return nil, err + } + mutation.id = &nodes[i].ID + if specs[i].ID.Value != nil && nodes[i].ID == 0 { + id := specs[i].ID.Value.(int64) + nodes[i].ID = int64(id) + } + mutation.done = true + return nodes[i], nil + }) + for i := len(builder.hooks) - 1; i >= 0; i-- { + mut = builder.hooks[i](mut) + } + mutators[i] = mut + }(i, ctx) + } + if len(mutators) > 0 { + if _, err := mutators[0].Mutate(ctx, itcb.builders[0].mutation); err != nil { + return nil, err + } + } + return nodes, nil +} + +// SaveX is like Save, but panics if an error occurs. +func (itcb *InvocationTagCreateBulk) SaveX(ctx context.Context) []*InvocationTag { + v, err := itcb.Save(ctx) + if err != nil { + panic(err) + } + return v +} + +// Exec executes the query. +func (itcb *InvocationTagCreateBulk) Exec(ctx context.Context) error { + _, err := itcb.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (itcb *InvocationTagCreateBulk) ExecX(ctx context.Context) { + if err := itcb.Exec(ctx); err != nil { + panic(err) + } +} + +// OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause +// of the `INSERT` statement. For example: +// +// client.InvocationTag.CreateBulk(builders...). +// OnConflict( +// // Update the row with the new values +// // the was proposed for insertion. +// sql.ResolveWithNewValues(), +// ). +// // Override some of the fields with custom +// // update values. +// Update(func(u *ent.InvocationTagUpsert) { +// SetBazelInvocationID(v+v). +// }). +// Exec(ctx) +func (itcb *InvocationTagCreateBulk) OnConflict(opts ...sql.ConflictOption) *InvocationTagUpsertBulk { + itcb.conflict = opts + return &InvocationTagUpsertBulk{ + create: itcb, + } +} + +// OnConflictColumns calls `OnConflict` and configures the columns +// as conflict target. Using this option is equivalent to using: +// +// client.InvocationTag.Create(). +// OnConflict(sql.ConflictColumns(columns...)). +// Exec(ctx) +func (itcb *InvocationTagCreateBulk) OnConflictColumns(columns ...string) *InvocationTagUpsertBulk { + itcb.conflict = append(itcb.conflict, sql.ConflictColumns(columns...)) + return &InvocationTagUpsertBulk{ + create: itcb, + } +} + +// InvocationTagUpsertBulk is the builder for "upsert"-ing +// a bulk of InvocationTag nodes. +type InvocationTagUpsertBulk struct { + create *InvocationTagCreateBulk +} + +// UpdateNewValues updates the mutable fields using the new values that +// were set on create. Using this option is equivalent to using: +// +// client.InvocationTag.Create(). +// OnConflict( +// sql.ResolveWithNewValues(), +// sql.ResolveWith(func(u *sql.UpdateSet) { +// u.SetIgnore(invocationtag.FieldID) +// }), +// ). +// Exec(ctx) +func (u *InvocationTagUpsertBulk) UpdateNewValues() *InvocationTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.ResolveWithNewValues()) + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(s *sql.UpdateSet) { + for _, b := range u.create.builders { + if _, exists := b.mutation.ID(); exists { + s.SetIgnore(invocationtag.FieldID) + } + if _, exists := b.mutation.BazelInvocationID(); exists { + s.SetIgnore(invocationtag.FieldBazelInvocationID) + } + if _, exists := b.mutation.Key(); exists { + s.SetIgnore(invocationtag.FieldKey) + } + if _, exists := b.mutation.Value(); exists { + s.SetIgnore(invocationtag.FieldValue) + } + } + })) + return u +} + +// Ignore sets each column to itself in case of conflict. +// Using this option is equivalent to using: +// +// client.InvocationTag.Create(). +// OnConflict(sql.ResolveWithIgnore()). +// Exec(ctx) +func (u *InvocationTagUpsertBulk) Ignore() *InvocationTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.ResolveWithIgnore()) + return u +} + +// DoNothing configures the conflict_action to `DO NOTHING`. +// Supported only by SQLite and PostgreSQL. +func (u *InvocationTagUpsertBulk) DoNothing() *InvocationTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.DoNothing()) + return u +} + +// Update allows overriding fields `UPDATE` values. See the InvocationTagCreateBulk.OnConflict +// documentation for more info. +func (u *InvocationTagUpsertBulk) Update(set func(*InvocationTagUpsert)) *InvocationTagUpsertBulk { + u.create.conflict = append(u.create.conflict, sql.ResolveWith(func(update *sql.UpdateSet) { + set(&InvocationTagUpsert{UpdateSet: update}) + })) + return u +} + +// Exec executes the query. +func (u *InvocationTagUpsertBulk) Exec(ctx context.Context) error { + if u.create.err != nil { + return u.create.err + } + for i, b := range u.create.builders { + if len(b.conflict) != 0 { + return fmt.Errorf("ent: OnConflict was set for builder %d. Set it on the InvocationTagCreateBulk instead", i) + } + } + if len(u.create.conflict) == 0 { + return errors.New("ent: missing options for InvocationTagCreateBulk.OnConflict") + } + return u.create.Exec(ctx) +} + +// ExecX is like Exec, but panics if an error occurs. +func (u *InvocationTagUpsertBulk) ExecX(ctx context.Context) { + if err := u.create.Exec(ctx); err != nil { + panic(err) + } +} diff --git a/ent/gen/ent/invocationtag_delete.go b/ent/gen/ent/invocationtag_delete.go new file mode 100644 index 00000000..2fde6198 --- /dev/null +++ b/ent/gen/ent/invocationtag_delete.go @@ -0,0 +1,88 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// InvocationTagDelete is the builder for deleting a InvocationTag entity. +type InvocationTagDelete struct { + config + hooks []Hook + mutation *InvocationTagMutation +} + +// Where appends a list predicates to the InvocationTagDelete builder. +func (itd *InvocationTagDelete) Where(ps ...predicate.InvocationTag) *InvocationTagDelete { + itd.mutation.Where(ps...) + return itd +} + +// Exec executes the deletion query and returns how many vertices were deleted. +func (itd *InvocationTagDelete) Exec(ctx context.Context) (int, error) { + return withHooks(ctx, itd.sqlExec, itd.mutation, itd.hooks) +} + +// ExecX is like Exec, but panics if an error occurs. +func (itd *InvocationTagDelete) ExecX(ctx context.Context) int { + n, err := itd.Exec(ctx) + if err != nil { + panic(err) + } + return n +} + +func (itd *InvocationTagDelete) sqlExec(ctx context.Context) (int, error) { + _spec := sqlgraph.NewDeleteSpec(invocationtag.Table, sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64)) + if ps := itd.mutation.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + affected, err := sqlgraph.DeleteNodes(ctx, itd.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + itd.mutation.done = true + return affected, err +} + +// InvocationTagDeleteOne is the builder for deleting a single InvocationTag entity. +type InvocationTagDeleteOne struct { + itd *InvocationTagDelete +} + +// Where appends a list predicates to the InvocationTagDelete builder. +func (itdo *InvocationTagDeleteOne) Where(ps ...predicate.InvocationTag) *InvocationTagDeleteOne { + itdo.itd.mutation.Where(ps...) + return itdo +} + +// Exec executes the deletion query. +func (itdo *InvocationTagDeleteOne) Exec(ctx context.Context) error { + n, err := itdo.itd.Exec(ctx) + switch { + case err != nil: + return err + case n == 0: + return &NotFoundError{invocationtag.Label} + default: + return nil + } +} + +// ExecX is like Exec, but panics if an error occurs. +func (itdo *InvocationTagDeleteOne) ExecX(ctx context.Context) { + if err := itdo.Exec(ctx); err != nil { + panic(err) + } +} diff --git a/ent/gen/ent/invocationtag_query.go b/ent/gen/ent/invocationtag_query.go new file mode 100644 index 00000000..60226b02 --- /dev/null +++ b/ent/gen/ent/invocationtag_query.go @@ -0,0 +1,635 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + "fmt" + "math" + + "entgo.io/ent" + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// InvocationTagQuery is the builder for querying InvocationTag entities. +type InvocationTagQuery struct { + config + ctx *QueryContext + order []invocationtag.OrderOption + inters []Interceptor + predicates []predicate.InvocationTag + withBazelInvocation *BazelInvocationQuery + loadTotal []func(context.Context, []*InvocationTag) error + modifiers []func(*sql.Selector) + // intermediate query (i.e. traversal path). + sql *sql.Selector + path func(context.Context) (*sql.Selector, error) +} + +// Where adds a new predicate for the InvocationTagQuery builder. +func (itq *InvocationTagQuery) Where(ps ...predicate.InvocationTag) *InvocationTagQuery { + itq.predicates = append(itq.predicates, ps...) + return itq +} + +// Limit the number of records to be returned by this query. +func (itq *InvocationTagQuery) Limit(limit int) *InvocationTagQuery { + itq.ctx.Limit = &limit + return itq +} + +// Offset to start from. +func (itq *InvocationTagQuery) Offset(offset int) *InvocationTagQuery { + itq.ctx.Offset = &offset + return itq +} + +// Unique configures the query builder to filter duplicate records on query. +// By default, unique is set to true, and can be disabled using this method. +func (itq *InvocationTagQuery) Unique(unique bool) *InvocationTagQuery { + itq.ctx.Unique = &unique + return itq +} + +// Order specifies how the records should be ordered. +func (itq *InvocationTagQuery) Order(o ...invocationtag.OrderOption) *InvocationTagQuery { + itq.order = append(itq.order, o...) + return itq +} + +// QueryBazelInvocation chains the current query on the "bazel_invocation" edge. +func (itq *InvocationTagQuery) QueryBazelInvocation() *BazelInvocationQuery { + query := (&BazelInvocationClient{config: itq.config}).Query() + query.path = func(ctx context.Context) (fromU *sql.Selector, err error) { + if err := itq.prepareQuery(ctx); err != nil { + return nil, err + } + selector := itq.sqlQuery(ctx) + if err := selector.Err(); err != nil { + return nil, err + } + step := sqlgraph.NewStep( + sqlgraph.From(invocationtag.Table, invocationtag.FieldID, selector), + sqlgraph.To(bazelinvocation.Table, bazelinvocation.FieldID), + sqlgraph.Edge(sqlgraph.M2O, true, invocationtag.BazelInvocationTable, invocationtag.BazelInvocationColumn), + ) + fromU = sqlgraph.SetNeighbors(itq.driver.Dialect(), step) + return fromU, nil + } + return query +} + +// First returns the first InvocationTag entity from the query. +// Returns a *NotFoundError when no InvocationTag was found. +func (itq *InvocationTagQuery) First(ctx context.Context) (*InvocationTag, error) { + nodes, err := itq.Limit(1).All(setContextOp(ctx, itq.ctx, ent.OpQueryFirst)) + if err != nil { + return nil, err + } + if len(nodes) == 0 { + return nil, &NotFoundError{invocationtag.Label} + } + return nodes[0], nil +} + +// FirstX is like First, but panics if an error occurs. +func (itq *InvocationTagQuery) FirstX(ctx context.Context) *InvocationTag { + node, err := itq.First(ctx) + if err != nil && !IsNotFound(err) { + panic(err) + } + return node +} + +// FirstID returns the first InvocationTag ID from the query. +// Returns a *NotFoundError when no InvocationTag ID was found. +func (itq *InvocationTagQuery) FirstID(ctx context.Context) (id int64, err error) { + var ids []int64 + if ids, err = itq.Limit(1).IDs(setContextOp(ctx, itq.ctx, ent.OpQueryFirstID)); err != nil { + return + } + if len(ids) == 0 { + err = &NotFoundError{invocationtag.Label} + return + } + return ids[0], nil +} + +// FirstIDX is like FirstID, but panics if an error occurs. +func (itq *InvocationTagQuery) FirstIDX(ctx context.Context) int64 { + id, err := itq.FirstID(ctx) + if err != nil && !IsNotFound(err) { + panic(err) + } + return id +} + +// Only returns a single InvocationTag entity found by the query, ensuring it only returns one. +// Returns a *NotSingularError when more than one InvocationTag entity is found. +// Returns a *NotFoundError when no InvocationTag entities are found. +func (itq *InvocationTagQuery) Only(ctx context.Context) (*InvocationTag, error) { + nodes, err := itq.Limit(2).All(setContextOp(ctx, itq.ctx, ent.OpQueryOnly)) + if err != nil { + return nil, err + } + switch len(nodes) { + case 1: + return nodes[0], nil + case 0: + return nil, &NotFoundError{invocationtag.Label} + default: + return nil, &NotSingularError{invocationtag.Label} + } +} + +// OnlyX is like Only, but panics if an error occurs. +func (itq *InvocationTagQuery) OnlyX(ctx context.Context) *InvocationTag { + node, err := itq.Only(ctx) + if err != nil { + panic(err) + } + return node +} + +// OnlyID is like Only, but returns the only InvocationTag ID in the query. +// Returns a *NotSingularError when more than one InvocationTag ID is found. +// Returns a *NotFoundError when no entities are found. +func (itq *InvocationTagQuery) OnlyID(ctx context.Context) (id int64, err error) { + var ids []int64 + if ids, err = itq.Limit(2).IDs(setContextOp(ctx, itq.ctx, ent.OpQueryOnlyID)); err != nil { + return + } + switch len(ids) { + case 1: + id = ids[0] + case 0: + err = &NotFoundError{invocationtag.Label} + default: + err = &NotSingularError{invocationtag.Label} + } + return +} + +// OnlyIDX is like OnlyID, but panics if an error occurs. +func (itq *InvocationTagQuery) OnlyIDX(ctx context.Context) int64 { + id, err := itq.OnlyID(ctx) + if err != nil { + panic(err) + } + return id +} + +// All executes the query and returns a list of InvocationTags. +func (itq *InvocationTagQuery) All(ctx context.Context) ([]*InvocationTag, error) { + ctx = setContextOp(ctx, itq.ctx, ent.OpQueryAll) + if err := itq.prepareQuery(ctx); err != nil { + return nil, err + } + qr := querierAll[[]*InvocationTag, *InvocationTagQuery]() + return withInterceptors[[]*InvocationTag](ctx, itq, qr, itq.inters) +} + +// AllX is like All, but panics if an error occurs. +func (itq *InvocationTagQuery) AllX(ctx context.Context) []*InvocationTag { + nodes, err := itq.All(ctx) + if err != nil { + panic(err) + } + return nodes +} + +// IDs executes the query and returns a list of InvocationTag IDs. +func (itq *InvocationTagQuery) IDs(ctx context.Context) (ids []int64, err error) { + if itq.ctx.Unique == nil && itq.path != nil { + itq.Unique(true) + } + ctx = setContextOp(ctx, itq.ctx, ent.OpQueryIDs) + if err = itq.Select(invocationtag.FieldID).Scan(ctx, &ids); err != nil { + return nil, err + } + return ids, nil +} + +// IDsX is like IDs, but panics if an error occurs. +func (itq *InvocationTagQuery) IDsX(ctx context.Context) []int64 { + ids, err := itq.IDs(ctx) + if err != nil { + panic(err) + } + return ids +} + +// Count returns the count of the given query. +func (itq *InvocationTagQuery) Count(ctx context.Context) (int, error) { + ctx = setContextOp(ctx, itq.ctx, ent.OpQueryCount) + if err := itq.prepareQuery(ctx); err != nil { + return 0, err + } + return withInterceptors[int](ctx, itq, querierCount[*InvocationTagQuery](), itq.inters) +} + +// CountX is like Count, but panics if an error occurs. +func (itq *InvocationTagQuery) CountX(ctx context.Context) int { + count, err := itq.Count(ctx) + if err != nil { + panic(err) + } + return count +} + +// Exist returns true if the query has elements in the graph. +func (itq *InvocationTagQuery) Exist(ctx context.Context) (bool, error) { + ctx = setContextOp(ctx, itq.ctx, ent.OpQueryExist) + switch _, err := itq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: + return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil + } +} + +// ExistX is like Exist, but panics if an error occurs. +func (itq *InvocationTagQuery) ExistX(ctx context.Context) bool { + exist, err := itq.Exist(ctx) + if err != nil { + panic(err) + } + return exist +} + +// Clone returns a duplicate of the InvocationTagQuery builder, including all associated steps. It can be +// used to prepare common query builders and use them differently after the clone is made. +func (itq *InvocationTagQuery) Clone() *InvocationTagQuery { + if itq == nil { + return nil + } + return &InvocationTagQuery{ + config: itq.config, + ctx: itq.ctx.Clone(), + order: append([]invocationtag.OrderOption{}, itq.order...), + inters: append([]Interceptor{}, itq.inters...), + predicates: append([]predicate.InvocationTag{}, itq.predicates...), + withBazelInvocation: itq.withBazelInvocation.Clone(), + // clone intermediate query. + sql: itq.sql.Clone(), + path: itq.path, + modifiers: append([]func(*sql.Selector){}, itq.modifiers...), + } +} + +// WithBazelInvocation tells the query-builder to eager-load the nodes that are connected to +// the "bazel_invocation" edge. The optional arguments are used to configure the query builder of the edge. +func (itq *InvocationTagQuery) WithBazelInvocation(opts ...func(*BazelInvocationQuery)) *InvocationTagQuery { + query := (&BazelInvocationClient{config: itq.config}).Query() + for _, opt := range opts { + opt(query) + } + itq.withBazelInvocation = query + return itq +} + +// GroupBy is used to group vertices by one or more fields/columns. +// It is often used with aggregate functions, like: count, max, mean, min, sum. +// +// Example: +// +// var v []struct { +// BazelInvocationID int64 `json:"bazel_invocation_id,omitempty"` +// Count int `json:"count,omitempty"` +// } +// +// client.InvocationTag.Query(). +// GroupBy(invocationtag.FieldBazelInvocationID). +// Aggregate(ent.Count()). +// Scan(ctx, &v) +func (itq *InvocationTagQuery) GroupBy(field string, fields ...string) *InvocationTagGroupBy { + itq.ctx.Fields = append([]string{field}, fields...) + grbuild := &InvocationTagGroupBy{build: itq} + grbuild.flds = &itq.ctx.Fields + grbuild.label = invocationtag.Label + grbuild.scan = grbuild.Scan + return grbuild +} + +// Select allows the selection one or more fields/columns for the given query, +// instead of selecting all fields in the entity. +// +// Example: +// +// var v []struct { +// BazelInvocationID int64 `json:"bazel_invocation_id,omitempty"` +// } +// +// client.InvocationTag.Query(). +// Select(invocationtag.FieldBazelInvocationID). +// Scan(ctx, &v) +func (itq *InvocationTagQuery) Select(fields ...string) *InvocationTagSelect { + itq.ctx.Fields = append(itq.ctx.Fields, fields...) + sbuild := &InvocationTagSelect{InvocationTagQuery: itq} + sbuild.label = invocationtag.Label + sbuild.flds, sbuild.scan = &itq.ctx.Fields, sbuild.Scan + return sbuild +} + +// Aggregate returns a InvocationTagSelect configured with the given aggregations. +func (itq *InvocationTagQuery) Aggregate(fns ...AggregateFunc) *InvocationTagSelect { + return itq.Select().Aggregate(fns...) +} + +func (itq *InvocationTagQuery) prepareQuery(ctx context.Context) error { + for _, inter := range itq.inters { + if inter == nil { + return fmt.Errorf("ent: uninitialized interceptor (forgotten import ent/runtime?)") + } + if trv, ok := inter.(Traverser); ok { + if err := trv.Traverse(ctx, itq); err != nil { + return err + } + } + } + for _, f := range itq.ctx.Fields { + if !invocationtag.ValidColumn(f) { + return &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} + } + } + if itq.path != nil { + prev, err := itq.path(ctx) + if err != nil { + return err + } + itq.sql = prev + } + return nil +} + +func (itq *InvocationTagQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*InvocationTag, error) { + var ( + nodes = []*InvocationTag{} + _spec = itq.querySpec() + loadedTypes = [1]bool{ + itq.withBazelInvocation != nil, + } + ) + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*InvocationTag).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { + node := &InvocationTag{config: itq.config} + nodes = append(nodes, node) + node.Edges.loadedTypes = loadedTypes + return node.assignValues(columns, values) + } + if len(itq.modifiers) > 0 { + _spec.Modifiers = itq.modifiers + } + for i := range hooks { + hooks[i](ctx, _spec) + } + if err := sqlgraph.QueryNodes(ctx, itq.driver, _spec); err != nil { + return nil, err + } + if len(nodes) == 0 { + return nodes, nil + } + if query := itq.withBazelInvocation; query != nil { + if err := itq.loadBazelInvocation(ctx, query, nodes, nil, + func(n *InvocationTag, e *BazelInvocation) { n.Edges.BazelInvocation = e }); err != nil { + return nil, err + } + } + for i := range itq.loadTotal { + if err := itq.loadTotal[i](ctx, nodes); err != nil { + return nil, err + } + } + return nodes, nil +} + +func (itq *InvocationTagQuery) loadBazelInvocation(ctx context.Context, query *BazelInvocationQuery, nodes []*InvocationTag, init func(*InvocationTag), assign func(*InvocationTag, *BazelInvocation)) error { + ids := make([]int64, 0, len(nodes)) + nodeids := make(map[int64][]*InvocationTag) + for i := range nodes { + fk := nodes[i].BazelInvocationID + if _, ok := nodeids[fk]; !ok { + ids = append(ids, fk) + } + nodeids[fk] = append(nodeids[fk], nodes[i]) + } + if len(ids) == 0 { + return nil + } + query.Where(bazelinvocation.IDIn(ids...)) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + nodes, ok := nodeids[n.ID] + if !ok { + return fmt.Errorf(`unexpected foreign-key "bazel_invocation_id" returned %v`, n.ID) + } + for i := range nodes { + assign(nodes[i], n) + } + } + return nil +} + +func (itq *InvocationTagQuery) sqlCount(ctx context.Context) (int, error) { + _spec := itq.querySpec() + if len(itq.modifiers) > 0 { + _spec.Modifiers = itq.modifiers + } + _spec.Node.Columns = itq.ctx.Fields + if len(itq.ctx.Fields) > 0 { + _spec.Unique = itq.ctx.Unique != nil && *itq.ctx.Unique + } + return sqlgraph.CountNodes(ctx, itq.driver, _spec) +} + +func (itq *InvocationTagQuery) querySpec() *sqlgraph.QuerySpec { + _spec := sqlgraph.NewQuerySpec(invocationtag.Table, invocationtag.Columns, sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64)) + _spec.From = itq.sql + if unique := itq.ctx.Unique; unique != nil { + _spec.Unique = *unique + } else if itq.path != nil { + _spec.Unique = true + } + if fields := itq.ctx.Fields; len(fields) > 0 { + _spec.Node.Columns = make([]string, 0, len(fields)) + _spec.Node.Columns = append(_spec.Node.Columns, invocationtag.FieldID) + for i := range fields { + if fields[i] != invocationtag.FieldID { + _spec.Node.Columns = append(_spec.Node.Columns, fields[i]) + } + } + if itq.withBazelInvocation != nil { + _spec.Node.AddColumnOnce(invocationtag.FieldBazelInvocationID) + } + } + if ps := itq.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + if limit := itq.ctx.Limit; limit != nil { + _spec.Limit = *limit + } + if offset := itq.ctx.Offset; offset != nil { + _spec.Offset = *offset + } + if ps := itq.order; len(ps) > 0 { + _spec.Order = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + return _spec +} + +func (itq *InvocationTagQuery) sqlQuery(ctx context.Context) *sql.Selector { + builder := sql.Dialect(itq.driver.Dialect()) + t1 := builder.Table(invocationtag.Table) + columns := itq.ctx.Fields + if len(columns) == 0 { + columns = invocationtag.Columns + } + selector := builder.Select(t1.Columns(columns...)...).From(t1) + if itq.sql != nil { + selector = itq.sql + selector.Select(selector.Columns(columns...)...) + } + if itq.ctx.Unique != nil && *itq.ctx.Unique { + selector.Distinct() + } + for _, m := range itq.modifiers { + m(selector) + } + for _, p := range itq.predicates { + p(selector) + } + for _, p := range itq.order { + p(selector) + } + if offset := itq.ctx.Offset; offset != nil { + // limit is mandatory for offset clause. We start + // with default value, and override it below if needed. + selector.Offset(*offset).Limit(math.MaxInt32) + } + if limit := itq.ctx.Limit; limit != nil { + selector.Limit(*limit) + } + return selector +} + +// Modify adds a query modifier for attaching custom logic to queries. +func (itq *InvocationTagQuery) Modify(modifiers ...func(s *sql.Selector)) *InvocationTagSelect { + itq.modifiers = append(itq.modifiers, modifiers...) + return itq.Select() +} + +// InvocationTagGroupBy is the group-by builder for InvocationTag entities. +type InvocationTagGroupBy struct { + selector + build *InvocationTagQuery +} + +// Aggregate adds the given aggregation functions to the group-by query. +func (itgb *InvocationTagGroupBy) Aggregate(fns ...AggregateFunc) *InvocationTagGroupBy { + itgb.fns = append(itgb.fns, fns...) + return itgb +} + +// Scan applies the selector query and scans the result into the given value. +func (itgb *InvocationTagGroupBy) Scan(ctx context.Context, v any) error { + ctx = setContextOp(ctx, itgb.build.ctx, ent.OpQueryGroupBy) + if err := itgb.build.prepareQuery(ctx); err != nil { + return err + } + return scanWithInterceptors[*InvocationTagQuery, *InvocationTagGroupBy](ctx, itgb.build, itgb, itgb.build.inters, v) +} + +func (itgb *InvocationTagGroupBy) sqlScan(ctx context.Context, root *InvocationTagQuery, v any) error { + selector := root.sqlQuery(ctx).Select() + aggregation := make([]string, 0, len(itgb.fns)) + for _, fn := range itgb.fns { + aggregation = append(aggregation, fn(selector)) + } + if len(selector.SelectedColumns()) == 0 { + columns := make([]string, 0, len(*itgb.flds)+len(itgb.fns)) + for _, f := range *itgb.flds { + columns = append(columns, selector.C(f)) + } + columns = append(columns, aggregation...) + selector.Select(columns...) + } + selector.GroupBy(selector.Columns(*itgb.flds...)...) + if err := selector.Err(); err != nil { + return err + } + rows := &sql.Rows{} + query, args := selector.Query() + if err := itgb.build.driver.Query(ctx, query, args, rows); err != nil { + return err + } + defer rows.Close() + return sql.ScanSlice(rows, v) +} + +// InvocationTagSelect is the builder for selecting fields of InvocationTag entities. +type InvocationTagSelect struct { + *InvocationTagQuery + selector +} + +// Aggregate adds the given aggregation functions to the selector query. +func (its *InvocationTagSelect) Aggregate(fns ...AggregateFunc) *InvocationTagSelect { + its.fns = append(its.fns, fns...) + return its +} + +// Scan applies the selector query and scans the result into the given value. +func (its *InvocationTagSelect) Scan(ctx context.Context, v any) error { + ctx = setContextOp(ctx, its.ctx, ent.OpQuerySelect) + if err := its.prepareQuery(ctx); err != nil { + return err + } + return scanWithInterceptors[*InvocationTagQuery, *InvocationTagSelect](ctx, its.InvocationTagQuery, its, its.inters, v) +} + +func (its *InvocationTagSelect) sqlScan(ctx context.Context, root *InvocationTagQuery, v any) error { + selector := root.sqlQuery(ctx) + aggregation := make([]string, 0, len(its.fns)) + for _, fn := range its.fns { + aggregation = append(aggregation, fn(selector)) + } + switch n := len(*its.selector.flds); { + case n == 0 && len(aggregation) > 0: + selector.Select(aggregation...) + case n != 0 && len(aggregation) > 0: + selector.AppendSelect(aggregation...) + } + rows := &sql.Rows{} + query, args := selector.Query() + if err := its.driver.Query(ctx, query, args, rows); err != nil { + return err + } + defer rows.Close() + return sql.ScanSlice(rows, v) +} + +// Modify adds a query modifier for attaching custom logic to queries. +func (its *InvocationTagSelect) Modify(modifiers ...func(s *sql.Selector)) *InvocationTagSelect { + its.modifiers = append(its.modifiers, modifiers...) + return its +} diff --git a/ent/gen/ent/invocationtag_update.go b/ent/gen/ent/invocationtag_update.go new file mode 100644 index 00000000..1977147d --- /dev/null +++ b/ent/gen/ent/invocationtag_update.go @@ -0,0 +1,213 @@ +// Code generated by ent, DO NOT EDIT. + +package ent + +import ( + "context" + "errors" + "fmt" + + "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" + "entgo.io/ent/schema/field" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" + "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" +) + +// InvocationTagUpdate is the builder for updating InvocationTag entities. +type InvocationTagUpdate struct { + config + hooks []Hook + mutation *InvocationTagMutation + modifiers []func(*sql.UpdateBuilder) +} + +// Where appends a list predicates to the InvocationTagUpdate builder. +func (itu *InvocationTagUpdate) Where(ps ...predicate.InvocationTag) *InvocationTagUpdate { + itu.mutation.Where(ps...) + return itu +} + +// Mutation returns the InvocationTagMutation object of the builder. +func (itu *InvocationTagUpdate) Mutation() *InvocationTagMutation { + return itu.mutation +} + +// Save executes the query and returns the number of nodes affected by the update operation. +func (itu *InvocationTagUpdate) Save(ctx context.Context) (int, error) { + return withHooks(ctx, itu.sqlSave, itu.mutation, itu.hooks) +} + +// SaveX is like Save, but panics if an error occurs. +func (itu *InvocationTagUpdate) SaveX(ctx context.Context) int { + affected, err := itu.Save(ctx) + if err != nil { + panic(err) + } + return affected +} + +// Exec executes the query. +func (itu *InvocationTagUpdate) Exec(ctx context.Context) error { + _, err := itu.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (itu *InvocationTagUpdate) ExecX(ctx context.Context) { + if err := itu.Exec(ctx); err != nil { + panic(err) + } +} + +// check runs all checks and user-defined validators on the builder. +func (itu *InvocationTagUpdate) check() error { + if itu.mutation.BazelInvocationCleared() && len(itu.mutation.BazelInvocationIDs()) > 0 { + return errors.New(`ent: clearing a required unique edge "InvocationTag.bazel_invocation"`) + } + return nil +} + +// Modify adds a statement modifier for attaching custom logic to the UPDATE statement. +func (itu *InvocationTagUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *InvocationTagUpdate { + itu.modifiers = append(itu.modifiers, modifiers...) + return itu +} + +func (itu *InvocationTagUpdate) sqlSave(ctx context.Context) (n int, err error) { + if err := itu.check(); err != nil { + return n, err + } + _spec := sqlgraph.NewUpdateSpec(invocationtag.Table, invocationtag.Columns, sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64)) + if ps := itu.mutation.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + _spec.AddModifiers(itu.modifiers...) + if n, err = sqlgraph.UpdateNodes(ctx, itu.driver, _spec); err != nil { + if _, ok := err.(*sqlgraph.NotFoundError); ok { + err = &NotFoundError{invocationtag.Label} + } else if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return 0, err + } + itu.mutation.done = true + return n, nil +} + +// InvocationTagUpdateOne is the builder for updating a single InvocationTag entity. +type InvocationTagUpdateOne struct { + config + fields []string + hooks []Hook + mutation *InvocationTagMutation + modifiers []func(*sql.UpdateBuilder) +} + +// Mutation returns the InvocationTagMutation object of the builder. +func (ituo *InvocationTagUpdateOne) Mutation() *InvocationTagMutation { + return ituo.mutation +} + +// Where appends a list predicates to the InvocationTagUpdate builder. +func (ituo *InvocationTagUpdateOne) Where(ps ...predicate.InvocationTag) *InvocationTagUpdateOne { + ituo.mutation.Where(ps...) + return ituo +} + +// Select allows selecting one or more fields (columns) of the returned entity. +// The default is selecting all fields defined in the entity schema. +func (ituo *InvocationTagUpdateOne) Select(field string, fields ...string) *InvocationTagUpdateOne { + ituo.fields = append([]string{field}, fields...) + return ituo +} + +// Save executes the query and returns the updated InvocationTag entity. +func (ituo *InvocationTagUpdateOne) Save(ctx context.Context) (*InvocationTag, error) { + return withHooks(ctx, ituo.sqlSave, ituo.mutation, ituo.hooks) +} + +// SaveX is like Save, but panics if an error occurs. +func (ituo *InvocationTagUpdateOne) SaveX(ctx context.Context) *InvocationTag { + node, err := ituo.Save(ctx) + if err != nil { + panic(err) + } + return node +} + +// Exec executes the query on the entity. +func (ituo *InvocationTagUpdateOne) Exec(ctx context.Context) error { + _, err := ituo.Save(ctx) + return err +} + +// ExecX is like Exec, but panics if an error occurs. +func (ituo *InvocationTagUpdateOne) ExecX(ctx context.Context) { + if err := ituo.Exec(ctx); err != nil { + panic(err) + } +} + +// check runs all checks and user-defined validators on the builder. +func (ituo *InvocationTagUpdateOne) check() error { + if ituo.mutation.BazelInvocationCleared() && len(ituo.mutation.BazelInvocationIDs()) > 0 { + return errors.New(`ent: clearing a required unique edge "InvocationTag.bazel_invocation"`) + } + return nil +} + +// Modify adds a statement modifier for attaching custom logic to the UPDATE statement. +func (ituo *InvocationTagUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *InvocationTagUpdateOne { + ituo.modifiers = append(ituo.modifiers, modifiers...) + return ituo +} + +func (ituo *InvocationTagUpdateOne) sqlSave(ctx context.Context) (_node *InvocationTag, err error) { + if err := ituo.check(); err != nil { + return _node, err + } + _spec := sqlgraph.NewUpdateSpec(invocationtag.Table, invocationtag.Columns, sqlgraph.NewFieldSpec(invocationtag.FieldID, field.TypeInt64)) + id, ok := ituo.mutation.ID() + if !ok { + return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "InvocationTag.id" for update`)} + } + _spec.Node.ID.Value = id + if fields := ituo.fields; len(fields) > 0 { + _spec.Node.Columns = make([]string, 0, len(fields)) + _spec.Node.Columns = append(_spec.Node.Columns, invocationtag.FieldID) + for _, f := range fields { + if !invocationtag.ValidColumn(f) { + return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} + } + if f != invocationtag.FieldID { + _spec.Node.Columns = append(_spec.Node.Columns, f) + } + } + } + if ps := ituo.mutation.predicates; len(ps) > 0 { + _spec.Predicate = func(selector *sql.Selector) { + for i := range ps { + ps[i](selector) + } + } + } + _spec.AddModifiers(ituo.modifiers...) + _node = &InvocationTag{config: ituo.config} + _spec.Assign = _node.assignValues + _spec.ScanValues = _node.scanValues + if err = sqlgraph.UpdateNode(ctx, ituo.driver, _spec); err != nil { + if _, ok := err.(*sqlgraph.NotFoundError); ok { + err = &NotFoundError{invocationtag.Label} + } else if sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return nil, err + } + ituo.mutation.done = true + return _node, nil +} diff --git a/ent/gen/ent/migrate/schema.go b/ent/gen/ent/migrate/schema.go index df35b597..4405b270 100644 --- a/ent/gen/ent/migrate/schema.go +++ b/ent/gen/ent/migrate/schema.go @@ -222,14 +222,9 @@ var ( {Name: "created_timestamp", Type: field.TypeTime}, {Name: "started_at", Type: field.TypeTime, Nullable: true}, {Name: "ended_at", Type: field.TypeTime, Nullable: true}, - {Name: "change_number", Type: field.TypeInt, Nullable: true}, - {Name: "patchset_number", Type: field.TypeInt, Nullable: true}, {Name: "bep_completed", Type: field.TypeBool, Default: false}, - {Name: "step_label", Type: field.TypeString, Nullable: true}, - {Name: "user_email", Type: field.TypeString, Nullable: true}, - {Name: "user_ldap", Type: field.TypeString, Nullable: true}, + {Name: "username", Type: field.TypeString, Nullable: true}, {Name: "hostname", Type: field.TypeString, Nullable: true}, - {Name: "is_ci_worker", Type: field.TypeBool, Nullable: true}, {Name: "num_fetches", Type: field.TypeInt64, Nullable: true}, {Name: "profile_name", Type: field.TypeString, Nullable: true}, {Name: "bazel_version", Type: field.TypeString, Nullable: true}, @@ -254,19 +249,19 @@ var ( ForeignKeys: []*schema.ForeignKey{ { Symbol: "bazel_invocations_authenticated_users_bazel_invocations", - Columns: []*schema.Column{BazelInvocationsColumns[25]}, + Columns: []*schema.Column{BazelInvocationsColumns[20]}, RefColumns: []*schema.Column{AuthenticatedUsersColumns[0]}, OnDelete: schema.SetNull, }, { Symbol: "bazel_invocations_builds_invocations", - Columns: []*schema.Column{BazelInvocationsColumns[26]}, + Columns: []*schema.Column{BazelInvocationsColumns[21]}, RefColumns: []*schema.Column{BuildsColumns[0]}, OnDelete: schema.Cascade, }, { Symbol: "bazel_invocations_instance_names_bazel_invocations", - Columns: []*schema.Column{BazelInvocationsColumns[27]}, + Columns: []*schema.Column{BazelInvocationsColumns[22]}, RefColumns: []*schema.Column{InstanceNamesColumns[0]}, OnDelete: schema.NoAction, }, @@ -290,24 +285,23 @@ var ( { Name: "bazelinvocation_build_invocations", Unique: false, - Columns: []*schema.Column{BazelInvocationsColumns[26]}, + Columns: []*schema.Column{BazelInvocationsColumns[21]}, }, { Name: "bazelinvocation_instance_name_bazel_invocations", Unique: false, - Columns: []*schema.Column{BazelInvocationsColumns[27]}, + Columns: []*schema.Column{BazelInvocationsColumns[22]}, }, { Name: "bazelinvocation_authenticated_user_bazel_invocations", Unique: false, - Columns: []*schema.Column{BazelInvocationsColumns[25]}, + Columns: []*schema.Column{BazelInvocationsColumns[20]}, }, }, } // BuildsColumns holds the columns for the "builds" table. BuildsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt64, Increment: true}, - {Name: "build_url", Type: field.TypeString}, {Name: "build_uuid", Type: field.TypeUUID, Unique: true}, {Name: "timestamp", Type: field.TypeTime}, {Name: "instance_name_builds", Type: field.TypeInt64}, @@ -320,7 +314,7 @@ var ( ForeignKeys: []*schema.ForeignKey{ { Symbol: "builds_instance_names_builds", - Columns: []*schema.Column{BuildsColumns[4]}, + Columns: []*schema.Column{BuildsColumns[3]}, RefColumns: []*schema.Column{InstanceNamesColumns[0]}, OnDelete: schema.NoAction, }, @@ -329,27 +323,17 @@ var ( { Name: "build_build_uuid", Unique: false, - Columns: []*schema.Column{BuildsColumns[2]}, - }, - { - Name: "build_build_url", - Unique: false, Columns: []*schema.Column{BuildsColumns[1]}, }, { Name: "build_timestamp", Unique: false, - Columns: []*schema.Column{BuildsColumns[3]}, + Columns: []*schema.Column{BuildsColumns[2]}, }, { Name: "build_instance_name_builds", Unique: false, - Columns: []*schema.Column{BuildsColumns[4]}, - }, - { - Name: "build_build_url_instance_name_builds", - Unique: true, - Columns: []*schema.Column{BuildsColumns[1], BuildsColumns[4]}, + Columns: []*schema.Column{BuildsColumns[3]}, }, }, } @@ -423,6 +407,39 @@ var ( }, }, } + // BuildTagsColumns holds the columns for the "build_tags" table. + BuildTagsColumns = []*schema.Column{ + {Name: "id", Type: field.TypeInt64, Increment: true}, + {Name: "key", Type: field.TypeString}, + {Name: "value", Type: field.TypeString}, + {Name: "build_id", Type: field.TypeInt64}, + } + // BuildTagsTable holds the schema information for the "build_tags" table. + BuildTagsTable = &schema.Table{ + Name: "build_tags", + Columns: BuildTagsColumns, + PrimaryKey: []*schema.Column{BuildTagsColumns[0]}, + ForeignKeys: []*schema.ForeignKey{ + { + Symbol: "build_tags_builds_tags", + Columns: []*schema.Column{BuildTagsColumns[3]}, + RefColumns: []*schema.Column{BuildsColumns[0]}, + OnDelete: schema.Cascade, + }, + }, + Indexes: []*schema.Index{ + { + Name: "buildtag_build_id", + Unique: false, + Columns: []*schema.Column{BuildTagsColumns[3]}, + }, + { + Name: "buildtag_key_value_build_id", + Unique: true, + Columns: []*schema.Column{BuildTagsColumns[1], BuildTagsColumns[2], BuildTagsColumns[3]}, + }, + }, + } // ConfigurationsColumns holds the columns for the "configurations" table. ConfigurationsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt64, Increment: true}, @@ -629,6 +646,39 @@ var ( }, }, } + // InvocationTagsColumns holds the columns for the "invocation_tags" table. + InvocationTagsColumns = []*schema.Column{ + {Name: "id", Type: field.TypeInt64, Increment: true}, + {Name: "key", Type: field.TypeString}, + {Name: "value", Type: field.TypeString}, + {Name: "bazel_invocation_id", Type: field.TypeInt64}, + } + // InvocationTagsTable holds the schema information for the "invocation_tags" table. + InvocationTagsTable = &schema.Table{ + Name: "invocation_tags", + Columns: InvocationTagsColumns, + PrimaryKey: []*schema.Column{InvocationTagsColumns[0]}, + ForeignKeys: []*schema.ForeignKey{ + { + Symbol: "invocation_tags_bazel_invocations_tags", + Columns: []*schema.Column{InvocationTagsColumns[3]}, + RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, + OnDelete: schema.Cascade, + }, + }, + Indexes: []*schema.Index{ + { + Name: "invocationtag_bazel_invocation_id", + Unique: false, + Columns: []*schema.Column{InvocationTagsColumns[3]}, + }, + { + Name: "invocationtag_key_bazel_invocation_id", + Unique: true, + Columns: []*schema.Column{InvocationTagsColumns[1], InvocationTagsColumns[3]}, + }, + }, + } // InvocationTargetsColumns holds the columns for the "invocation_targets" table. InvocationTargetsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt64, Increment: true}, @@ -832,23 +882,13 @@ var ( // SourceControlsColumns holds the columns for the "source_controls" table. SourceControlsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt64, Increment: true}, - {Name: "provider", Type: field.TypeEnum, Nullable: true, Enums: []string{"GITHUB", "GITLAB"}}, - {Name: "instance_url", Type: field.TypeString, Nullable: true}, {Name: "repo", Type: field.TypeString, Nullable: true}, - {Name: "refs", Type: field.TypeString, Nullable: true}, - {Name: "commit_sha", Type: field.TypeString, Nullable: true}, - {Name: "actor", Type: field.TypeString, Nullable: true}, - {Name: "event_name", Type: field.TypeString, Nullable: true}, - {Name: "workflow", Type: field.TypeString, Nullable: true}, - {Name: "run_id", Type: field.TypeString, Nullable: true}, - {Name: "run_number", Type: field.TypeString, Nullable: true}, - {Name: "job", Type: field.TypeString, Nullable: true}, - {Name: "action", Type: field.TypeString, Nullable: true}, - {Name: "runner_name", Type: field.TypeString, Nullable: true}, - {Name: "runner_arch", Type: field.TypeString, Nullable: true}, - {Name: "runner_os", Type: field.TypeString, Nullable: true}, - {Name: "workspace", Type: field.TypeString, Nullable: true}, - {Name: "bazel_invocation_source_control", Type: field.TypeInt64, Unique: true, Nullable: true}, + {Name: "repo_url", Type: field.TypeString, Nullable: true}, + {Name: "ref", Type: field.TypeString, Nullable: true}, + {Name: "ref_url", Type: field.TypeString, Nullable: true}, + {Name: "commit", Type: field.TypeString, Nullable: true}, + {Name: "commit_url", Type: field.TypeString, Nullable: true}, + {Name: "bazel_invocation_source_control", Type: field.TypeInt64, Nullable: true}, } // SourceControlsTable holds the schema information for the "source_controls" table. SourceControlsTable = &schema.Table{ @@ -858,7 +898,7 @@ var ( ForeignKeys: []*schema.ForeignKey{ { Symbol: "source_controls_bazel_invocations_source_control", - Columns: []*schema.Column{SourceControlsColumns[17]}, + Columns: []*schema.Column{SourceControlsColumns[7]}, RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, OnDelete: schema.Cascade, }, @@ -867,7 +907,7 @@ var ( { Name: "sourcecontrol_bazel_invocation_source_control", Unique: false, - Columns: []*schema.Column{SourceControlsColumns[17]}, + Columns: []*schema.Column{SourceControlsColumns[7]}, }, }, } @@ -1159,6 +1199,7 @@ var ( BuildsTable, BuildGraphMetricsTable, BuildLogChunksTable, + BuildTagsTable, ConfigurationsTable, ConnectionMetadataTable, EventMetadataTable, @@ -1166,6 +1207,7 @@ var ( IncompleteBuildLogsTable, InstanceNamesTable, InvocationFilesTable, + InvocationTagsTable, InvocationTargetsTable, MemoryMetricsTable, MetricsTable, @@ -1197,12 +1239,14 @@ func init() { BuildsTable.ForeignKeys[0].RefTable = InstanceNamesTable BuildGraphMetricsTable.ForeignKeys[0].RefTable = MetricsTable BuildLogChunksTable.ForeignKeys[0].RefTable = BazelInvocationsTable + BuildTagsTable.ForeignKeys[0].RefTable = BuildsTable ConfigurationsTable.ForeignKeys[0].RefTable = BazelInvocationsTable ConnectionMetadataTable.ForeignKeys[0].RefTable = BazelInvocationsTable EventMetadataTable.ForeignKeys[0].RefTable = BazelInvocationsTable GarbageMetricsTable.ForeignKeys[0].RefTable = MemoryMetricsTable IncompleteBuildLogsTable.ForeignKeys[0].RefTable = BazelInvocationsTable InvocationFilesTable.ForeignKeys[0].RefTable = BazelInvocationsTable + InvocationTagsTable.ForeignKeys[0].RefTable = BazelInvocationsTable InvocationTargetsTable.ForeignKeys[0].RefTable = BazelInvocationsTable InvocationTargetsTable.ForeignKeys[1].RefTable = ConfigurationsTable InvocationTargetsTable.ForeignKeys[2].RefTable = TargetsTable diff --git a/ent/gen/ent/mutation.go b/ent/gen/ent/mutation.go index a3f1b4dc..a561da48 100644 --- a/ent/gen/ent/mutation.go +++ b/ent/gen/ent/mutation.go @@ -21,6 +21,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/build" "github.com/buildbarn/bb-portal/ent/gen/ent/buildgraphmetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/buildlogchunk" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/ent/gen/ent/configuration" "github.com/buildbarn/bb-portal/ent/gen/ent/connectionmetadata" "github.com/buildbarn/bb-portal/ent/gen/ent/eventmetadata" @@ -28,6 +29,7 @@ import ( "github.com/buildbarn/bb-portal/ent/gen/ent/incompletebuildlog" "github.com/buildbarn/bb-portal/ent/gen/ent/instancename" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationfiles" + "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtag" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" "github.com/buildbarn/bb-portal/ent/gen/ent/memorymetrics" "github.com/buildbarn/bb-portal/ent/gen/ent/metrics" @@ -67,6 +69,7 @@ const ( TypeBuild = "Build" TypeBuildGraphMetrics = "BuildGraphMetrics" TypeBuildLogChunk = "BuildLogChunk" + TypeBuildTag = "BuildTag" TypeConfiguration = "Configuration" TypeConnectionMetadata = "ConnectionMetadata" TypeEventMetadata = "EventMetadata" @@ -74,6 +77,7 @@ const ( TypeIncompleteBuildLog = "IncompleteBuildLog" TypeInstanceName = "InstanceName" TypeInvocationFiles = "InvocationFiles" + TypeInvocationTag = "InvocationTag" TypeInvocationTarget = "InvocationTarget" TypeMemoryMetrics = "MemoryMetrics" TypeMetrics = "Metrics" @@ -6666,16 +6670,9 @@ type BazelInvocationMutation struct { created_timestamp *time.Time started_at *time.Time ended_at *time.Time - change_number *int - addchange_number *int - patchset_number *int - addpatchset_number *int bep_completed *bool - step_label *string - user_email *string - user_ldap *string + username *string hostname *string - is_ci_worker *bool num_fetches *int64 addnum_fetches *int64 profile_name *string @@ -6697,6 +6694,9 @@ type BazelInvocationMutation struct { clearedbuild bool authenticated_user *int64 clearedauthenticated_user bool + tags map[int64]struct{} + removedtags map[int64]struct{} + clearedtags bool event_metadata *int64 clearedevent_metadata bool connection_metadata *int64 @@ -6724,7 +6724,8 @@ type BazelInvocationMutation struct { target_kind_mappings map[int64]struct{} removedtarget_kind_mappings map[int64]struct{} clearedtarget_kind_mappings bool - source_control *int64 + source_control map[int64]struct{} + removedsource_control map[int64]struct{} clearedsource_control bool done bool oldValue func(context.Context) (*BazelInvocation, error) @@ -7005,146 +7006,6 @@ func (m *BazelInvocationMutation) ResetEndedAt() { delete(m.clearedFields, bazelinvocation.FieldEndedAt) } -// SetChangeNumber sets the "change_number" field. -func (m *BazelInvocationMutation) SetChangeNumber(i int) { - m.change_number = &i - m.addchange_number = nil -} - -// ChangeNumber returns the value of the "change_number" field in the mutation. -func (m *BazelInvocationMutation) ChangeNumber() (r int, exists bool) { - v := m.change_number - if v == nil { - return - } - return *v, true -} - -// OldChangeNumber returns the old "change_number" field's value of the BazelInvocation entity. -// If the BazelInvocation object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BazelInvocationMutation) OldChangeNumber(ctx context.Context) (v int, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldChangeNumber is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldChangeNumber requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldChangeNumber: %w", err) - } - return oldValue.ChangeNumber, nil -} - -// AddChangeNumber adds i to the "change_number" field. -func (m *BazelInvocationMutation) AddChangeNumber(i int) { - if m.addchange_number != nil { - *m.addchange_number += i - } else { - m.addchange_number = &i - } -} - -// AddedChangeNumber returns the value that was added to the "change_number" field in this mutation. -func (m *BazelInvocationMutation) AddedChangeNumber() (r int, exists bool) { - v := m.addchange_number - if v == nil { - return - } - return *v, true -} - -// ClearChangeNumber clears the value of the "change_number" field. -func (m *BazelInvocationMutation) ClearChangeNumber() { - m.change_number = nil - m.addchange_number = nil - m.clearedFields[bazelinvocation.FieldChangeNumber] = struct{}{} -} - -// ChangeNumberCleared returns if the "change_number" field was cleared in this mutation. -func (m *BazelInvocationMutation) ChangeNumberCleared() bool { - _, ok := m.clearedFields[bazelinvocation.FieldChangeNumber] - return ok -} - -// ResetChangeNumber resets all changes to the "change_number" field. -func (m *BazelInvocationMutation) ResetChangeNumber() { - m.change_number = nil - m.addchange_number = nil - delete(m.clearedFields, bazelinvocation.FieldChangeNumber) -} - -// SetPatchsetNumber sets the "patchset_number" field. -func (m *BazelInvocationMutation) SetPatchsetNumber(i int) { - m.patchset_number = &i - m.addpatchset_number = nil -} - -// PatchsetNumber returns the value of the "patchset_number" field in the mutation. -func (m *BazelInvocationMutation) PatchsetNumber() (r int, exists bool) { - v := m.patchset_number - if v == nil { - return - } - return *v, true -} - -// OldPatchsetNumber returns the old "patchset_number" field's value of the BazelInvocation entity. -// If the BazelInvocation object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BazelInvocationMutation) OldPatchsetNumber(ctx context.Context) (v int, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldPatchsetNumber is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldPatchsetNumber requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldPatchsetNumber: %w", err) - } - return oldValue.PatchsetNumber, nil -} - -// AddPatchsetNumber adds i to the "patchset_number" field. -func (m *BazelInvocationMutation) AddPatchsetNumber(i int) { - if m.addpatchset_number != nil { - *m.addpatchset_number += i - } else { - m.addpatchset_number = &i - } -} - -// AddedPatchsetNumber returns the value that was added to the "patchset_number" field in this mutation. -func (m *BazelInvocationMutation) AddedPatchsetNumber() (r int, exists bool) { - v := m.addpatchset_number - if v == nil { - return - } - return *v, true -} - -// ClearPatchsetNumber clears the value of the "patchset_number" field. -func (m *BazelInvocationMutation) ClearPatchsetNumber() { - m.patchset_number = nil - m.addpatchset_number = nil - m.clearedFields[bazelinvocation.FieldPatchsetNumber] = struct{}{} -} - -// PatchsetNumberCleared returns if the "patchset_number" field was cleared in this mutation. -func (m *BazelInvocationMutation) PatchsetNumberCleared() bool { - _, ok := m.clearedFields[bazelinvocation.FieldPatchsetNumber] - return ok -} - -// ResetPatchsetNumber resets all changes to the "patchset_number" field. -func (m *BazelInvocationMutation) ResetPatchsetNumber() { - m.patchset_number = nil - m.addpatchset_number = nil - delete(m.clearedFields, bazelinvocation.FieldPatchsetNumber) -} - // SetBepCompleted sets the "bep_completed" field. func (m *BazelInvocationMutation) SetBepCompleted(b bool) { m.bep_completed = &b @@ -7181,151 +7042,53 @@ func (m *BazelInvocationMutation) ResetBepCompleted() { m.bep_completed = nil } -// SetStepLabel sets the "step_label" field. -func (m *BazelInvocationMutation) SetStepLabel(s string) { - m.step_label = &s -} - -// StepLabel returns the value of the "step_label" field in the mutation. -func (m *BazelInvocationMutation) StepLabel() (r string, exists bool) { - v := m.step_label - if v == nil { - return - } - return *v, true -} - -// OldStepLabel returns the old "step_label" field's value of the BazelInvocation entity. -// If the BazelInvocation object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BazelInvocationMutation) OldStepLabel(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldStepLabel is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldStepLabel requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldStepLabel: %w", err) - } - return oldValue.StepLabel, nil -} - -// ClearStepLabel clears the value of the "step_label" field. -func (m *BazelInvocationMutation) ClearStepLabel() { - m.step_label = nil - m.clearedFields[bazelinvocation.FieldStepLabel] = struct{}{} -} - -// StepLabelCleared returns if the "step_label" field was cleared in this mutation. -func (m *BazelInvocationMutation) StepLabelCleared() bool { - _, ok := m.clearedFields[bazelinvocation.FieldStepLabel] - return ok -} - -// ResetStepLabel resets all changes to the "step_label" field. -func (m *BazelInvocationMutation) ResetStepLabel() { - m.step_label = nil - delete(m.clearedFields, bazelinvocation.FieldStepLabel) +// SetUsername sets the "username" field. +func (m *BazelInvocationMutation) SetUsername(s string) { + m.username = &s } -// SetUserEmail sets the "user_email" field. -func (m *BazelInvocationMutation) SetUserEmail(s string) { - m.user_email = &s -} - -// UserEmail returns the value of the "user_email" field in the mutation. -func (m *BazelInvocationMutation) UserEmail() (r string, exists bool) { - v := m.user_email - if v == nil { - return - } - return *v, true -} - -// OldUserEmail returns the old "user_email" field's value of the BazelInvocation entity. -// If the BazelInvocation object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BazelInvocationMutation) OldUserEmail(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldUserEmail is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldUserEmail requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldUserEmail: %w", err) - } - return oldValue.UserEmail, nil -} - -// ClearUserEmail clears the value of the "user_email" field. -func (m *BazelInvocationMutation) ClearUserEmail() { - m.user_email = nil - m.clearedFields[bazelinvocation.FieldUserEmail] = struct{}{} -} - -// UserEmailCleared returns if the "user_email" field was cleared in this mutation. -func (m *BazelInvocationMutation) UserEmailCleared() bool { - _, ok := m.clearedFields[bazelinvocation.FieldUserEmail] - return ok -} - -// ResetUserEmail resets all changes to the "user_email" field. -func (m *BazelInvocationMutation) ResetUserEmail() { - m.user_email = nil - delete(m.clearedFields, bazelinvocation.FieldUserEmail) -} - -// SetUserLdap sets the "user_ldap" field. -func (m *BazelInvocationMutation) SetUserLdap(s string) { - m.user_ldap = &s -} - -// UserLdap returns the value of the "user_ldap" field in the mutation. -func (m *BazelInvocationMutation) UserLdap() (r string, exists bool) { - v := m.user_ldap +// Username returns the value of the "username" field in the mutation. +func (m *BazelInvocationMutation) Username() (r string, exists bool) { + v := m.username if v == nil { return } return *v, true } -// OldUserLdap returns the old "user_ldap" field's value of the BazelInvocation entity. +// OldUsername returns the old "username" field's value of the BazelInvocation entity. // If the BazelInvocation object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BazelInvocationMutation) OldUserLdap(ctx context.Context) (v string, err error) { +func (m *BazelInvocationMutation) OldUsername(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldUserLdap is only allowed on UpdateOne operations") + return v, errors.New("OldUsername is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldUserLdap requires an ID field in the mutation") + return v, errors.New("OldUsername requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldUserLdap: %w", err) + return v, fmt.Errorf("querying old value for OldUsername: %w", err) } - return oldValue.UserLdap, nil + return oldValue.Username, nil } -// ClearUserLdap clears the value of the "user_ldap" field. -func (m *BazelInvocationMutation) ClearUserLdap() { - m.user_ldap = nil - m.clearedFields[bazelinvocation.FieldUserLdap] = struct{}{} +// ClearUsername clears the value of the "username" field. +func (m *BazelInvocationMutation) ClearUsername() { + m.username = nil + m.clearedFields[bazelinvocation.FieldUsername] = struct{}{} } -// UserLdapCleared returns if the "user_ldap" field was cleared in this mutation. -func (m *BazelInvocationMutation) UserLdapCleared() bool { - _, ok := m.clearedFields[bazelinvocation.FieldUserLdap] +// UsernameCleared returns if the "username" field was cleared in this mutation. +func (m *BazelInvocationMutation) UsernameCleared() bool { + _, ok := m.clearedFields[bazelinvocation.FieldUsername] return ok } -// ResetUserLdap resets all changes to the "user_ldap" field. -func (m *BazelInvocationMutation) ResetUserLdap() { - m.user_ldap = nil - delete(m.clearedFields, bazelinvocation.FieldUserLdap) +// ResetUsername resets all changes to the "username" field. +func (m *BazelInvocationMutation) ResetUsername() { + m.username = nil + delete(m.clearedFields, bazelinvocation.FieldUsername) } // SetHostname sets the "hostname" field. @@ -7377,55 +7140,6 @@ func (m *BazelInvocationMutation) ResetHostname() { delete(m.clearedFields, bazelinvocation.FieldHostname) } -// SetIsCiWorker sets the "is_ci_worker" field. -func (m *BazelInvocationMutation) SetIsCiWorker(b bool) { - m.is_ci_worker = &b -} - -// IsCiWorker returns the value of the "is_ci_worker" field in the mutation. -func (m *BazelInvocationMutation) IsCiWorker() (r bool, exists bool) { - v := m.is_ci_worker - if v == nil { - return - } - return *v, true -} - -// OldIsCiWorker returns the old "is_ci_worker" field's value of the BazelInvocation entity. -// If the BazelInvocation object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BazelInvocationMutation) OldIsCiWorker(ctx context.Context) (v bool, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldIsCiWorker is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldIsCiWorker requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldIsCiWorker: %w", err) - } - return oldValue.IsCiWorker, nil -} - -// ClearIsCiWorker clears the value of the "is_ci_worker" field. -func (m *BazelInvocationMutation) ClearIsCiWorker() { - m.is_ci_worker = nil - m.clearedFields[bazelinvocation.FieldIsCiWorker] = struct{}{} -} - -// IsCiWorkerCleared returns if the "is_ci_worker" field was cleared in this mutation. -func (m *BazelInvocationMutation) IsCiWorkerCleared() bool { - _, ok := m.clearedFields[bazelinvocation.FieldIsCiWorker] - return ok -} - -// ResetIsCiWorker resets all changes to the "is_ci_worker" field. -func (m *BazelInvocationMutation) ResetIsCiWorker() { - m.is_ci_worker = nil - delete(m.clearedFields, bazelinvocation.FieldIsCiWorker) -} - // SetNumFetches sets the "num_fetches" field. func (m *BazelInvocationMutation) SetNumFetches(i int64) { m.num_fetches = &i @@ -8121,6 +7835,60 @@ func (m *BazelInvocationMutation) ResetAuthenticatedUser() { m.clearedauthenticated_user = false } +// AddTagIDs adds the "tags" edge to the InvocationTag entity by ids. +func (m *BazelInvocationMutation) AddTagIDs(ids ...int64) { + if m.tags == nil { + m.tags = make(map[int64]struct{}) + } + for i := range ids { + m.tags[ids[i]] = struct{}{} + } +} + +// ClearTags clears the "tags" edge to the InvocationTag entity. +func (m *BazelInvocationMutation) ClearTags() { + m.clearedtags = true +} + +// TagsCleared reports if the "tags" edge to the InvocationTag entity was cleared. +func (m *BazelInvocationMutation) TagsCleared() bool { + return m.clearedtags +} + +// RemoveTagIDs removes the "tags" edge to the InvocationTag entity by IDs. +func (m *BazelInvocationMutation) RemoveTagIDs(ids ...int64) { + if m.removedtags == nil { + m.removedtags = make(map[int64]struct{}) + } + for i := range ids { + delete(m.tags, ids[i]) + m.removedtags[ids[i]] = struct{}{} + } +} + +// RemovedTags returns the removed IDs of the "tags" edge to the InvocationTag entity. +func (m *BazelInvocationMutation) RemovedTagsIDs() (ids []int64) { + for id := range m.removedtags { + ids = append(ids, id) + } + return +} + +// TagsIDs returns the "tags" edge IDs in the mutation. +func (m *BazelInvocationMutation) TagsIDs() (ids []int64) { + for id := range m.tags { + ids = append(ids, id) + } + return +} + +// ResetTags resets all changes to the "tags" edge. +func (m *BazelInvocationMutation) ResetTags() { + m.tags = nil + m.clearedtags = false + m.removedtags = nil +} + // SetEventMetadataID sets the "event_metadata" edge to the EventMetadata entity by id. func (m *BazelInvocationMutation) SetEventMetadataID(id int64) { m.event_metadata = &id @@ -8616,9 +8384,14 @@ func (m *BazelInvocationMutation) ResetTargetKindMappings() { m.removedtarget_kind_mappings = nil } -// SetSourceControlID sets the "source_control" edge to the SourceControl entity by id. -func (m *BazelInvocationMutation) SetSourceControlID(id int64) { - m.source_control = &id +// AddSourceControlIDs adds the "source_control" edge to the SourceControl entity by ids. +func (m *BazelInvocationMutation) AddSourceControlIDs(ids ...int64) { + if m.source_control == nil { + m.source_control = make(map[int64]struct{}) + } + for i := range ids { + m.source_control[ids[i]] = struct{}{} + } } // ClearSourceControl clears the "source_control" edge to the SourceControl entity. @@ -8631,20 +8404,29 @@ func (m *BazelInvocationMutation) SourceControlCleared() bool { return m.clearedsource_control } -// SourceControlID returns the "source_control" edge ID in the mutation. -func (m *BazelInvocationMutation) SourceControlID() (id int64, exists bool) { - if m.source_control != nil { - return *m.source_control, true +// RemoveSourceControlIDs removes the "source_control" edge to the SourceControl entity by IDs. +func (m *BazelInvocationMutation) RemoveSourceControlIDs(ids ...int64) { + if m.removedsource_control == nil { + m.removedsource_control = make(map[int64]struct{}) + } + for i := range ids { + delete(m.source_control, ids[i]) + m.removedsource_control[ids[i]] = struct{}{} + } +} + +// RemovedSourceControl returns the removed IDs of the "source_control" edge to the SourceControl entity. +func (m *BazelInvocationMutation) RemovedSourceControlIDs() (ids []int64) { + for id := range m.removedsource_control { + ids = append(ids, id) } return } // SourceControlIDs returns the "source_control" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// SourceControlID instead. It exists only for internal usage by the builders. func (m *BazelInvocationMutation) SourceControlIDs() (ids []int64) { - if id := m.source_control; id != nil { - ids = append(ids, *id) + for id := range m.source_control { + ids = append(ids, id) } return } @@ -8653,6 +8435,7 @@ func (m *BazelInvocationMutation) SourceControlIDs() (ids []int64) { func (m *BazelInvocationMutation) ResetSourceControl() { m.source_control = nil m.clearedsource_control = false + m.removedsource_control = nil } // Where appends a list predicates to the BazelInvocationMutation builder. @@ -8689,7 +8472,7 @@ func (m *BazelInvocationMutation) Type() string { // order to get all numeric fields that were incremented/decremented, call // AddedFields(). func (m *BazelInvocationMutation) Fields() []string { - fields := make([]string, 0, 24) + fields := make([]string, 0, 19) if m.invocation_id != nil { fields = append(fields, bazelinvocation.FieldInvocationID) } @@ -8702,30 +8485,15 @@ func (m *BazelInvocationMutation) Fields() []string { if m.ended_at != nil { fields = append(fields, bazelinvocation.FieldEndedAt) } - if m.change_number != nil { - fields = append(fields, bazelinvocation.FieldChangeNumber) - } - if m.patchset_number != nil { - fields = append(fields, bazelinvocation.FieldPatchsetNumber) - } if m.bep_completed != nil { fields = append(fields, bazelinvocation.FieldBepCompleted) } - if m.step_label != nil { - fields = append(fields, bazelinvocation.FieldStepLabel) - } - if m.user_email != nil { - fields = append(fields, bazelinvocation.FieldUserEmail) - } - if m.user_ldap != nil { - fields = append(fields, bazelinvocation.FieldUserLdap) + if m.username != nil { + fields = append(fields, bazelinvocation.FieldUsername) } if m.hostname != nil { fields = append(fields, bazelinvocation.FieldHostname) } - if m.is_ci_worker != nil { - fields = append(fields, bazelinvocation.FieldIsCiWorker) - } if m.num_fetches != nil { fields = append(fields, bazelinvocation.FieldNumFetches) } @@ -8778,22 +8546,12 @@ func (m *BazelInvocationMutation) Field(name string) (ent.Value, bool) { return m.StartedAt() case bazelinvocation.FieldEndedAt: return m.EndedAt() - case bazelinvocation.FieldChangeNumber: - return m.ChangeNumber() - case bazelinvocation.FieldPatchsetNumber: - return m.PatchsetNumber() case bazelinvocation.FieldBepCompleted: return m.BepCompleted() - case bazelinvocation.FieldStepLabel: - return m.StepLabel() - case bazelinvocation.FieldUserEmail: - return m.UserEmail() - case bazelinvocation.FieldUserLdap: - return m.UserLdap() + case bazelinvocation.FieldUsername: + return m.Username() case bazelinvocation.FieldHostname: return m.Hostname() - case bazelinvocation.FieldIsCiWorker: - return m.IsCiWorker() case bazelinvocation.FieldNumFetches: return m.NumFetches() case bazelinvocation.FieldProfileName: @@ -8835,22 +8593,12 @@ func (m *BazelInvocationMutation) OldField(ctx context.Context, name string) (en return m.OldStartedAt(ctx) case bazelinvocation.FieldEndedAt: return m.OldEndedAt(ctx) - case bazelinvocation.FieldChangeNumber: - return m.OldChangeNumber(ctx) - case bazelinvocation.FieldPatchsetNumber: - return m.OldPatchsetNumber(ctx) case bazelinvocation.FieldBepCompleted: return m.OldBepCompleted(ctx) - case bazelinvocation.FieldStepLabel: - return m.OldStepLabel(ctx) - case bazelinvocation.FieldUserEmail: - return m.OldUserEmail(ctx) - case bazelinvocation.FieldUserLdap: - return m.OldUserLdap(ctx) + case bazelinvocation.FieldUsername: + return m.OldUsername(ctx) case bazelinvocation.FieldHostname: return m.OldHostname(ctx) - case bazelinvocation.FieldIsCiWorker: - return m.OldIsCiWorker(ctx) case bazelinvocation.FieldNumFetches: return m.OldNumFetches(ctx) case bazelinvocation.FieldProfileName: @@ -8912,20 +8660,6 @@ func (m *BazelInvocationMutation) SetField(name string, value ent.Value) error { } m.SetEndedAt(v) return nil - case bazelinvocation.FieldChangeNumber: - v, ok := value.(int) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetChangeNumber(v) - return nil - case bazelinvocation.FieldPatchsetNumber: - v, ok := value.(int) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetPatchsetNumber(v) - return nil case bazelinvocation.FieldBepCompleted: v, ok := value.(bool) if !ok { @@ -8933,26 +8667,12 @@ func (m *BazelInvocationMutation) SetField(name string, value ent.Value) error { } m.SetBepCompleted(v) return nil - case bazelinvocation.FieldStepLabel: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetStepLabel(v) - return nil - case bazelinvocation.FieldUserEmail: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetUserEmail(v) - return nil - case bazelinvocation.FieldUserLdap: + case bazelinvocation.FieldUsername: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetUserLdap(v) + m.SetUsername(v) return nil case bazelinvocation.FieldHostname: v, ok := value.(string) @@ -8961,13 +8681,6 @@ func (m *BazelInvocationMutation) SetField(name string, value ent.Value) error { } m.SetHostname(v) return nil - case bazelinvocation.FieldIsCiWorker: - v, ok := value.(bool) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetIsCiWorker(v) - return nil case bazelinvocation.FieldNumFetches: v, ok := value.(int64) if !ok { @@ -9060,12 +8773,6 @@ func (m *BazelInvocationMutation) SetField(name string, value ent.Value) error { // this mutation. func (m *BazelInvocationMutation) AddedFields() []string { var fields []string - if m.addchange_number != nil { - fields = append(fields, bazelinvocation.FieldChangeNumber) - } - if m.addpatchset_number != nil { - fields = append(fields, bazelinvocation.FieldPatchsetNumber) - } if m.addnum_fetches != nil { fields = append(fields, bazelinvocation.FieldNumFetches) } @@ -9080,10 +8787,6 @@ func (m *BazelInvocationMutation) AddedFields() []string { // was not set, or was not defined in the schema. func (m *BazelInvocationMutation) AddedField(name string) (ent.Value, bool) { switch name { - case bazelinvocation.FieldChangeNumber: - return m.AddedChangeNumber() - case bazelinvocation.FieldPatchsetNumber: - return m.AddedPatchsetNumber() case bazelinvocation.FieldNumFetches: return m.AddedNumFetches() case bazelinvocation.FieldExitCodeCode: @@ -9097,20 +8800,6 @@ func (m *BazelInvocationMutation) AddedField(name string) (ent.Value, bool) { // type. func (m *BazelInvocationMutation) AddField(name string, value ent.Value) error { switch name { - case bazelinvocation.FieldChangeNumber: - v, ok := value.(int) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddChangeNumber(v) - return nil - case bazelinvocation.FieldPatchsetNumber: - v, ok := value.(int) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddPatchsetNumber(v) - return nil case bazelinvocation.FieldNumFetches: v, ok := value.(int64) if !ok { @@ -9139,27 +8828,12 @@ func (m *BazelInvocationMutation) ClearedFields() []string { if m.FieldCleared(bazelinvocation.FieldEndedAt) { fields = append(fields, bazelinvocation.FieldEndedAt) } - if m.FieldCleared(bazelinvocation.FieldChangeNumber) { - fields = append(fields, bazelinvocation.FieldChangeNumber) - } - if m.FieldCleared(bazelinvocation.FieldPatchsetNumber) { - fields = append(fields, bazelinvocation.FieldPatchsetNumber) - } - if m.FieldCleared(bazelinvocation.FieldStepLabel) { - fields = append(fields, bazelinvocation.FieldStepLabel) - } - if m.FieldCleared(bazelinvocation.FieldUserEmail) { - fields = append(fields, bazelinvocation.FieldUserEmail) - } - if m.FieldCleared(bazelinvocation.FieldUserLdap) { - fields = append(fields, bazelinvocation.FieldUserLdap) + if m.FieldCleared(bazelinvocation.FieldUsername) { + fields = append(fields, bazelinvocation.FieldUsername) } if m.FieldCleared(bazelinvocation.FieldHostname) { fields = append(fields, bazelinvocation.FieldHostname) } - if m.FieldCleared(bazelinvocation.FieldIsCiWorker) { - fields = append(fields, bazelinvocation.FieldIsCiWorker) - } if m.FieldCleared(bazelinvocation.FieldNumFetches) { fields = append(fields, bazelinvocation.FieldNumFetches) } @@ -9204,27 +8878,12 @@ func (m *BazelInvocationMutation) ClearField(name string) error { case bazelinvocation.FieldEndedAt: m.ClearEndedAt() return nil - case bazelinvocation.FieldChangeNumber: - m.ClearChangeNumber() - return nil - case bazelinvocation.FieldPatchsetNumber: - m.ClearPatchsetNumber() - return nil - case bazelinvocation.FieldStepLabel: - m.ClearStepLabel() - return nil - case bazelinvocation.FieldUserEmail: - m.ClearUserEmail() - return nil - case bazelinvocation.FieldUserLdap: - m.ClearUserLdap() + case bazelinvocation.FieldUsername: + m.ClearUsername() return nil case bazelinvocation.FieldHostname: m.ClearHostname() return nil - case bazelinvocation.FieldIsCiWorker: - m.ClearIsCiWorker() - return nil case bazelinvocation.FieldNumFetches: m.ClearNumFetches() return nil @@ -9269,30 +8928,15 @@ func (m *BazelInvocationMutation) ResetField(name string) error { case bazelinvocation.FieldEndedAt: m.ResetEndedAt() return nil - case bazelinvocation.FieldChangeNumber: - m.ResetChangeNumber() - return nil - case bazelinvocation.FieldPatchsetNumber: - m.ResetPatchsetNumber() - return nil case bazelinvocation.FieldBepCompleted: m.ResetBepCompleted() return nil - case bazelinvocation.FieldStepLabel: - m.ResetStepLabel() - return nil - case bazelinvocation.FieldUserEmail: - m.ResetUserEmail() - return nil - case bazelinvocation.FieldUserLdap: - m.ResetUserLdap() + case bazelinvocation.FieldUsername: + m.ResetUsername() return nil case bazelinvocation.FieldHostname: m.ResetHostname() return nil - case bazelinvocation.FieldIsCiWorker: - m.ResetIsCiWorker() - return nil case bazelinvocation.FieldNumFetches: m.ResetNumFetches() return nil @@ -9335,7 +8979,7 @@ func (m *BazelInvocationMutation) ResetField(name string) error { // AddedEdges returns all edge names that were set/added in this mutation. func (m *BazelInvocationMutation) AddedEdges() []string { - edges := make([]string, 0, 14) + edges := make([]string, 0, 15) if m.instance_name != nil { edges = append(edges, bazelinvocation.EdgeInstanceName) } @@ -9345,6 +8989,9 @@ func (m *BazelInvocationMutation) AddedEdges() []string { if m.authenticated_user != nil { edges = append(edges, bazelinvocation.EdgeAuthenticatedUser) } + if m.tags != nil { + edges = append(edges, bazelinvocation.EdgeTags) + } if m.event_metadata != nil { edges = append(edges, bazelinvocation.EdgeEventMetadata) } @@ -9397,6 +9044,12 @@ func (m *BazelInvocationMutation) AddedIDs(name string) []ent.Value { if id := m.authenticated_user; id != nil { return []ent.Value{*id} } + case bazelinvocation.EdgeTags: + ids := make([]ent.Value, 0, len(m.tags)) + for id := range m.tags { + ids = append(ids, id) + } + return ids case bazelinvocation.EdgeEventMetadata: if id := m.event_metadata; id != nil { return []ent.Value{*id} @@ -9452,16 +9105,21 @@ func (m *BazelInvocationMutation) AddedIDs(name string) []ent.Value { } return ids case bazelinvocation.EdgeSourceControl: - if id := m.source_control; id != nil { - return []ent.Value{*id} + ids := make([]ent.Value, 0, len(m.source_control)) + for id := range m.source_control { + ids = append(ids, id) } + return ids } return nil } // RemovedEdges returns all edge names that were removed in this mutation. func (m *BazelInvocationMutation) RemovedEdges() []string { - edges := make([]string, 0, 14) + edges := make([]string, 0, 15) + if m.removedtags != nil { + edges = append(edges, bazelinvocation.EdgeTags) + } if m.removedconfigurations != nil { edges = append(edges, bazelinvocation.EdgeConfigurations) } @@ -9483,6 +9141,9 @@ func (m *BazelInvocationMutation) RemovedEdges() []string { if m.removedtarget_kind_mappings != nil { edges = append(edges, bazelinvocation.EdgeTargetKindMappings) } + if m.removedsource_control != nil { + edges = append(edges, bazelinvocation.EdgeSourceControl) + } return edges } @@ -9490,6 +9151,12 @@ func (m *BazelInvocationMutation) RemovedEdges() []string { // the given name in this mutation. func (m *BazelInvocationMutation) RemovedIDs(name string) []ent.Value { switch name { + case bazelinvocation.EdgeTags: + ids := make([]ent.Value, 0, len(m.removedtags)) + for id := range m.removedtags { + ids = append(ids, id) + } + return ids case bazelinvocation.EdgeConfigurations: ids := make([]ent.Value, 0, len(m.removedconfigurations)) for id := range m.removedconfigurations { @@ -9532,13 +9199,19 @@ func (m *BazelInvocationMutation) RemovedIDs(name string) []ent.Value { ids = append(ids, id) } return ids + case bazelinvocation.EdgeSourceControl: + ids := make([]ent.Value, 0, len(m.removedsource_control)) + for id := range m.removedsource_control { + ids = append(ids, id) + } + return ids } return nil } // ClearedEdges returns all edge names that were cleared in this mutation. func (m *BazelInvocationMutation) ClearedEdges() []string { - edges := make([]string, 0, 14) + edges := make([]string, 0, 15) if m.clearedinstance_name { edges = append(edges, bazelinvocation.EdgeInstanceName) } @@ -9548,6 +9221,9 @@ func (m *BazelInvocationMutation) ClearedEdges() []string { if m.clearedauthenticated_user { edges = append(edges, bazelinvocation.EdgeAuthenticatedUser) } + if m.clearedtags { + edges = append(edges, bazelinvocation.EdgeTags) + } if m.clearedevent_metadata { edges = append(edges, bazelinvocation.EdgeEventMetadata) } @@ -9594,6 +9270,8 @@ func (m *BazelInvocationMutation) EdgeCleared(name string) bool { return m.clearedbuild case bazelinvocation.EdgeAuthenticatedUser: return m.clearedauthenticated_user + case bazelinvocation.EdgeTags: + return m.clearedtags case bazelinvocation.EdgeEventMetadata: return m.clearedevent_metadata case bazelinvocation.EdgeConnectionMetadata: @@ -9642,9 +9320,6 @@ func (m *BazelInvocationMutation) ClearEdge(name string) error { case bazelinvocation.EdgeMetrics: m.ClearMetrics() return nil - case bazelinvocation.EdgeSourceControl: - m.ClearSourceControl() - return nil } return fmt.Errorf("unknown BazelInvocation unique edge %s", name) } @@ -9662,6 +9337,9 @@ func (m *BazelInvocationMutation) ResetEdge(name string) error { case bazelinvocation.EdgeAuthenticatedUser: m.ResetAuthenticatedUser() return nil + case bazelinvocation.EdgeTags: + m.ResetTags() + return nil case bazelinvocation.EdgeEventMetadata: m.ResetEventMetadata() return nil @@ -9705,7 +9383,6 @@ type BuildMutation struct { op Op typ string id *int64 - build_url *string build_uuid *uuid.UUID timestamp *time.Time clearedFields map[string]struct{} @@ -9714,6 +9391,9 @@ type BuildMutation struct { invocations map[int64]struct{} removedinvocations map[int64]struct{} clearedinvocations bool + tags map[int64]struct{} + removedtags map[int64]struct{} + clearedtags bool done bool oldValue func(context.Context) (*Build, error) predicates []predicate.Build @@ -9823,42 +9503,6 @@ func (m *BuildMutation) IDs(ctx context.Context) ([]int64, error) { } } -// SetBuildURL sets the "build_url" field. -func (m *BuildMutation) SetBuildURL(s string) { - m.build_url = &s -} - -// BuildURL returns the value of the "build_url" field in the mutation. -func (m *BuildMutation) BuildURL() (r string, exists bool) { - v := m.build_url - if v == nil { - return - } - return *v, true -} - -// OldBuildURL returns the old "build_url" field's value of the Build entity. -// If the Build object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *BuildMutation) OldBuildURL(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldBuildURL is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldBuildURL requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldBuildURL: %w", err) - } - return oldValue.BuildURL, nil -} - -// ResetBuildURL resets all changes to the "build_url" field. -func (m *BuildMutation) ResetBuildURL() { - m.build_url = nil -} - // SetBuildUUID sets the "build_uuid" field. func (m *BuildMutation) SetBuildUUID(u uuid.UUID) { m.build_uuid = &u @@ -10024,6 +9668,60 @@ func (m *BuildMutation) ResetInvocations() { m.removedinvocations = nil } +// AddTagIDs adds the "tags" edge to the BuildTag entity by ids. +func (m *BuildMutation) AddTagIDs(ids ...int64) { + if m.tags == nil { + m.tags = make(map[int64]struct{}) + } + for i := range ids { + m.tags[ids[i]] = struct{}{} + } +} + +// ClearTags clears the "tags" edge to the BuildTag entity. +func (m *BuildMutation) ClearTags() { + m.clearedtags = true +} + +// TagsCleared reports if the "tags" edge to the BuildTag entity was cleared. +func (m *BuildMutation) TagsCleared() bool { + return m.clearedtags +} + +// RemoveTagIDs removes the "tags" edge to the BuildTag entity by IDs. +func (m *BuildMutation) RemoveTagIDs(ids ...int64) { + if m.removedtags == nil { + m.removedtags = make(map[int64]struct{}) + } + for i := range ids { + delete(m.tags, ids[i]) + m.removedtags[ids[i]] = struct{}{} + } +} + +// RemovedTags returns the removed IDs of the "tags" edge to the BuildTag entity. +func (m *BuildMutation) RemovedTagsIDs() (ids []int64) { + for id := range m.removedtags { + ids = append(ids, id) + } + return +} + +// TagsIDs returns the "tags" edge IDs in the mutation. +func (m *BuildMutation) TagsIDs() (ids []int64) { + for id := range m.tags { + ids = append(ids, id) + } + return +} + +// ResetTags resets all changes to the "tags" edge. +func (m *BuildMutation) ResetTags() { + m.tags = nil + m.clearedtags = false + m.removedtags = nil +} + // Where appends a list predicates to the BuildMutation builder. func (m *BuildMutation) Where(ps ...predicate.Build) { m.predicates = append(m.predicates, ps...) @@ -10058,10 +9756,7 @@ func (m *BuildMutation) Type() string { // order to get all numeric fields that were incremented/decremented, call // AddedFields(). func (m *BuildMutation) Fields() []string { - fields := make([]string, 0, 3) - if m.build_url != nil { - fields = append(fields, build.FieldBuildURL) - } + fields := make([]string, 0, 2) if m.build_uuid != nil { fields = append(fields, build.FieldBuildUUID) } @@ -10076,8 +9771,6 @@ func (m *BuildMutation) Fields() []string { // schema. func (m *BuildMutation) Field(name string) (ent.Value, bool) { switch name { - case build.FieldBuildURL: - return m.BuildURL() case build.FieldBuildUUID: return m.BuildUUID() case build.FieldTimestamp: @@ -10091,8 +9784,6 @@ func (m *BuildMutation) Field(name string) (ent.Value, bool) { // database failed. func (m *BuildMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case build.FieldBuildURL: - return m.OldBuildURL(ctx) case build.FieldBuildUUID: return m.OldBuildUUID(ctx) case build.FieldTimestamp: @@ -10106,13 +9797,6 @@ func (m *BuildMutation) OldField(ctx context.Context, name string) (ent.Value, e // type. func (m *BuildMutation) SetField(name string, value ent.Value) error { switch name { - case build.FieldBuildURL: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetBuildURL(v) - return nil case build.FieldBuildUUID: v, ok := value.(uuid.UUID) if !ok { @@ -10176,9 +9860,6 @@ func (m *BuildMutation) ClearField(name string) error { // It returns an error if the field is not defined in the schema. func (m *BuildMutation) ResetField(name string) error { switch name { - case build.FieldBuildURL: - m.ResetBuildURL() - return nil case build.FieldBuildUUID: m.ResetBuildUUID() return nil @@ -10191,13 +9872,16 @@ func (m *BuildMutation) ResetField(name string) error { // AddedEdges returns all edge names that were set/added in this mutation. func (m *BuildMutation) AddedEdges() []string { - edges := make([]string, 0, 2) + edges := make([]string, 0, 3) if m.instance_name != nil { edges = append(edges, build.EdgeInstanceName) } if m.invocations != nil { edges = append(edges, build.EdgeInvocations) } + if m.tags != nil { + edges = append(edges, build.EdgeTags) + } return edges } @@ -10215,16 +9899,25 @@ func (m *BuildMutation) AddedIDs(name string) []ent.Value { ids = append(ids, id) } return ids + case build.EdgeTags: + ids := make([]ent.Value, 0, len(m.tags)) + for id := range m.tags { + ids = append(ids, id) + } + return ids } return nil } // RemovedEdges returns all edge names that were removed in this mutation. func (m *BuildMutation) RemovedEdges() []string { - edges := make([]string, 0, 2) + edges := make([]string, 0, 3) if m.removedinvocations != nil { edges = append(edges, build.EdgeInvocations) } + if m.removedtags != nil { + edges = append(edges, build.EdgeTags) + } return edges } @@ -10238,19 +9931,28 @@ func (m *BuildMutation) RemovedIDs(name string) []ent.Value { ids = append(ids, id) } return ids + case build.EdgeTags: + ids := make([]ent.Value, 0, len(m.removedtags)) + for id := range m.removedtags { + ids = append(ids, id) + } + return ids } return nil } // ClearedEdges returns all edge names that were cleared in this mutation. func (m *BuildMutation) ClearedEdges() []string { - edges := make([]string, 0, 2) + edges := make([]string, 0, 3) if m.clearedinstance_name { edges = append(edges, build.EdgeInstanceName) } if m.clearedinvocations { edges = append(edges, build.EdgeInvocations) } + if m.clearedtags { + edges = append(edges, build.EdgeTags) + } return edges } @@ -10262,6 +9964,8 @@ func (m *BuildMutation) EdgeCleared(name string) bool { return m.clearedinstance_name case build.EdgeInvocations: return m.clearedinvocations + case build.EdgeTags: + return m.clearedtags } return false } @@ -10287,6 +9991,9 @@ func (m *BuildMutation) ResetEdge(name string) error { case build.EdgeInvocations: m.ResetInvocations() return nil + case build.EdgeTags: + m.ResetTags() + return nil } return fmt.Errorf("unknown Build edge %s", name) } @@ -12268,43 +11975,33 @@ func (m *BuildLogChunkMutation) ResetEdge(name string) error { return fmt.Errorf("unknown BuildLogChunk edge %s", name) } -// ConfigurationMutation represents an operation that mutates the Configuration nodes in the graph. -type ConfigurationMutation struct { +// BuildTagMutation represents an operation that mutates the BuildTag nodes in the graph. +type BuildTagMutation struct { config - op Op - typ string - id *int64 - configuration_id *string - mnemonic *string - platform_name *string - cpu *string - make_variables *map[string]string - is_tool *bool - clearedFields map[string]struct{} - bazel_invocation *int64 - clearedbazel_invocation bool - invocation_targets map[int64]struct{} - removedinvocation_targets map[int64]struct{} - clearedinvocation_targets bool - actions map[int64]struct{} - removedactions map[int64]struct{} - clearedactions bool - done bool - oldValue func(context.Context) (*Configuration, error) - predicates []predicate.Configuration + op Op + typ string + id *int64 + key *string + value *string + clearedFields map[string]struct{} + build *int64 + clearedbuild bool + done bool + oldValue func(context.Context) (*BuildTag, error) + predicates []predicate.BuildTag } -var _ ent.Mutation = (*ConfigurationMutation)(nil) +var _ ent.Mutation = (*BuildTagMutation)(nil) -// configurationOption allows management of the mutation configuration using functional options. -type configurationOption func(*ConfigurationMutation) +// buildtagOption allows management of the mutation configuration using functional options. +type buildtagOption func(*BuildTagMutation) -// newConfigurationMutation creates new mutation for the Configuration entity. -func newConfigurationMutation(c config, op Op, opts ...configurationOption) *ConfigurationMutation { - m := &ConfigurationMutation{ +// newBuildTagMutation creates new mutation for the BuildTag entity. +func newBuildTagMutation(c config, op Op, opts ...buildtagOption) *BuildTagMutation { + m := &BuildTagMutation{ config: c, op: op, - typ: TypeConfiguration, + typ: TypeBuildTag, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -12313,20 +12010,20 @@ func newConfigurationMutation(c config, op Op, opts ...configurationOption) *Con return m } -// withConfigurationID sets the ID field of the mutation. -func withConfigurationID(id int64) configurationOption { - return func(m *ConfigurationMutation) { +// withBuildTagID sets the ID field of the mutation. +func withBuildTagID(id int64) buildtagOption { + return func(m *BuildTagMutation) { var ( err error once sync.Once - value *Configuration + value *BuildTag ) - m.oldValue = func(ctx context.Context) (*Configuration, error) { + m.oldValue = func(ctx context.Context) (*BuildTag, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().Configuration.Get(ctx, id) + value, err = m.Client().BuildTag.Get(ctx, id) } }) return value, err @@ -12335,10 +12032,10 @@ func withConfigurationID(id int64) configurationOption { } } -// withConfiguration sets the old Configuration of the mutation. -func withConfiguration(node *Configuration) configurationOption { - return func(m *ConfigurationMutation) { - m.oldValue = func(context.Context) (*Configuration, error) { +// withBuildTag sets the old BuildTag of the mutation. +func withBuildTag(node *BuildTag) buildtagOption { + return func(m *BuildTagMutation) { + m.oldValue = func(context.Context) (*BuildTag, error) { return node, nil } m.id = &node.ID @@ -12347,7 +12044,7 @@ func withConfiguration(node *Configuration) configurationOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m ConfigurationMutation) Client() *Client { +func (m BuildTagMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -12355,7 +12052,7 @@ func (m ConfigurationMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m ConfigurationMutation) Tx() (*Tx, error) { +func (m BuildTagMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -12365,14 +12062,14 @@ func (m ConfigurationMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of Configuration entities. -func (m *ConfigurationMutation) SetID(id int64) { +// operation is only accepted on creation of BuildTag entities. +func (m *BuildTagMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *ConfigurationMutation) ID() (id int64, exists bool) { +func (m *BuildTagMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -12383,7 +12080,7 @@ func (m *ConfigurationMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *ConfigurationMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *BuildTagMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -12392,1043 +12089,851 @@ func (m *ConfigurationMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().Configuration.Query().Where(m.predicates...).IDs(ctx) + return m.Client().BuildTag.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetConfigurationID sets the "configuration_id" field. -func (m *ConfigurationMutation) SetConfigurationID(s string) { - m.configuration_id = &s +// SetBuildID sets the "build_id" field. +func (m *BuildTagMutation) SetBuildID(i int64) { + m.build = &i } -// ConfigurationID returns the value of the "configuration_id" field in the mutation. -func (m *ConfigurationMutation) ConfigurationID() (r string, exists bool) { - v := m.configuration_id +// BuildID returns the value of the "build_id" field in the mutation. +func (m *BuildTagMutation) BuildID() (r int64, exists bool) { + v := m.build if v == nil { return } return *v, true } -// OldConfigurationID returns the old "configuration_id" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// OldBuildID returns the old "build_id" field's value of the BuildTag entity. +// If the BuildTag object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldConfigurationID(ctx context.Context) (v string, err error) { +func (m *BuildTagMutation) OldBuildID(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldConfigurationID is only allowed on UpdateOne operations") + return v, errors.New("OldBuildID is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldConfigurationID requires an ID field in the mutation") + return v, errors.New("OldBuildID requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldConfigurationID: %w", err) + return v, fmt.Errorf("querying old value for OldBuildID: %w", err) } - return oldValue.ConfigurationID, nil + return oldValue.BuildID, nil } -// ResetConfigurationID resets all changes to the "configuration_id" field. -func (m *ConfigurationMutation) ResetConfigurationID() { - m.configuration_id = nil +// ResetBuildID resets all changes to the "build_id" field. +func (m *BuildTagMutation) ResetBuildID() { + m.build = nil } -// SetMnemonic sets the "mnemonic" field. -func (m *ConfigurationMutation) SetMnemonic(s string) { - m.mnemonic = &s +// SetKey sets the "key" field. +func (m *BuildTagMutation) SetKey(s string) { + m.key = &s } -// Mnemonic returns the value of the "mnemonic" field in the mutation. -func (m *ConfigurationMutation) Mnemonic() (r string, exists bool) { - v := m.mnemonic +// Key returns the value of the "key" field in the mutation. +func (m *BuildTagMutation) Key() (r string, exists bool) { + v := m.key if v == nil { return } return *v, true } -// OldMnemonic returns the old "mnemonic" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// OldKey returns the old "key" field's value of the BuildTag entity. +// If the BuildTag object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldMnemonic(ctx context.Context) (v string, err error) { +func (m *BuildTagMutation) OldKey(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldMnemonic is only allowed on UpdateOne operations") + return v, errors.New("OldKey is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldMnemonic requires an ID field in the mutation") + return v, errors.New("OldKey requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldMnemonic: %w", err) + return v, fmt.Errorf("querying old value for OldKey: %w", err) } - return oldValue.Mnemonic, nil -} - -// ClearMnemonic clears the value of the "mnemonic" field. -func (m *ConfigurationMutation) ClearMnemonic() { - m.mnemonic = nil - m.clearedFields[configuration.FieldMnemonic] = struct{}{} -} - -// MnemonicCleared returns if the "mnemonic" field was cleared in this mutation. -func (m *ConfigurationMutation) MnemonicCleared() bool { - _, ok := m.clearedFields[configuration.FieldMnemonic] - return ok + return oldValue.Key, nil } -// ResetMnemonic resets all changes to the "mnemonic" field. -func (m *ConfigurationMutation) ResetMnemonic() { - m.mnemonic = nil - delete(m.clearedFields, configuration.FieldMnemonic) +// ResetKey resets all changes to the "key" field. +func (m *BuildTagMutation) ResetKey() { + m.key = nil } -// SetPlatformName sets the "platform_name" field. -func (m *ConfigurationMutation) SetPlatformName(s string) { - m.platform_name = &s +// SetValue sets the "value" field. +func (m *BuildTagMutation) SetValue(s string) { + m.value = &s } -// PlatformName returns the value of the "platform_name" field in the mutation. -func (m *ConfigurationMutation) PlatformName() (r string, exists bool) { - v := m.platform_name +// Value returns the value of the "value" field in the mutation. +func (m *BuildTagMutation) Value() (r string, exists bool) { + v := m.value if v == nil { return } return *v, true } -// OldPlatformName returns the old "platform_name" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// OldValue returns the old "value" field's value of the BuildTag entity. +// If the BuildTag object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldPlatformName(ctx context.Context) (v string, err error) { +func (m *BuildTagMutation) OldValue(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldPlatformName is only allowed on UpdateOne operations") + return v, errors.New("OldValue is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldPlatformName requires an ID field in the mutation") + return v, errors.New("OldValue requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldPlatformName: %w", err) + return v, fmt.Errorf("querying old value for OldValue: %w", err) } - return oldValue.PlatformName, nil + return oldValue.Value, nil } -// ClearPlatformName clears the value of the "platform_name" field. -func (m *ConfigurationMutation) ClearPlatformName() { - m.platform_name = nil - m.clearedFields[configuration.FieldPlatformName] = struct{}{} -} - -// PlatformNameCleared returns if the "platform_name" field was cleared in this mutation. -func (m *ConfigurationMutation) PlatformNameCleared() bool { - _, ok := m.clearedFields[configuration.FieldPlatformName] - return ok +// ResetValue resets all changes to the "value" field. +func (m *BuildTagMutation) ResetValue() { + m.value = nil } -// ResetPlatformName resets all changes to the "platform_name" field. -func (m *ConfigurationMutation) ResetPlatformName() { - m.platform_name = nil - delete(m.clearedFields, configuration.FieldPlatformName) +// ClearBuild clears the "build" edge to the Build entity. +func (m *BuildTagMutation) ClearBuild() { + m.clearedbuild = true + m.clearedFields[buildtag.FieldBuildID] = struct{}{} } -// SetCPU sets the "cpu" field. -func (m *ConfigurationMutation) SetCPU(s string) { - m.cpu = &s +// BuildCleared reports if the "build" edge to the Build entity was cleared. +func (m *BuildTagMutation) BuildCleared() bool { + return m.clearedbuild } -// CPU returns the value of the "cpu" field in the mutation. -func (m *ConfigurationMutation) CPU() (r string, exists bool) { - v := m.cpu - if v == nil { - return +// BuildIDs returns the "build" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// BuildID instead. It exists only for internal usage by the builders. +func (m *BuildTagMutation) BuildIDs() (ids []int64) { + if id := m.build; id != nil { + ids = append(ids, *id) } - return *v, true + return } -// OldCPU returns the old "cpu" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldCPU(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldCPU is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldCPU requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldCPU: %w", err) - } - return oldValue.CPU, nil +// ResetBuild resets all changes to the "build" edge. +func (m *BuildTagMutation) ResetBuild() { + m.build = nil + m.clearedbuild = false } -// ClearCPU clears the value of the "cpu" field. -func (m *ConfigurationMutation) ClearCPU() { - m.cpu = nil - m.clearedFields[configuration.FieldCPU] = struct{}{} +// Where appends a list predicates to the BuildTagMutation builder. +func (m *BuildTagMutation) Where(ps ...predicate.BuildTag) { + m.predicates = append(m.predicates, ps...) } -// CPUCleared returns if the "cpu" field was cleared in this mutation. -func (m *ConfigurationMutation) CPUCleared() bool { - _, ok := m.clearedFields[configuration.FieldCPU] - return ok +// WhereP appends storage-level predicates to the BuildTagMutation builder. Using this method, +// users can use type-assertion to append predicates that do not depend on any generated package. +func (m *BuildTagMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.BuildTag, len(ps)) + for i := range ps { + p[i] = ps[i] + } + m.Where(p...) } -// ResetCPU resets all changes to the "cpu" field. -func (m *ConfigurationMutation) ResetCPU() { - m.cpu = nil - delete(m.clearedFields, configuration.FieldCPU) +// Op returns the operation name. +func (m *BuildTagMutation) Op() Op { + return m.op } -// SetMakeVariables sets the "make_variables" field. -func (m *ConfigurationMutation) SetMakeVariables(value map[string]string) { - m.make_variables = &value +// SetOp allows setting the mutation operation. +func (m *BuildTagMutation) SetOp(op Op) { + m.op = op } -// MakeVariables returns the value of the "make_variables" field in the mutation. -func (m *ConfigurationMutation) MakeVariables() (r map[string]string, exists bool) { - v := m.make_variables - if v == nil { - return - } - return *v, true +// Type returns the node type of this mutation (BuildTag). +func (m *BuildTagMutation) Type() string { + return m.typ } -// OldMakeVariables returns the old "make_variables" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldMakeVariables(ctx context.Context) (v map[string]string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldMakeVariables is only allowed on UpdateOne operations") +// Fields returns all fields that were changed during this mutation. Note that in +// order to get all numeric fields that were incremented/decremented, call +// AddedFields(). +func (m *BuildTagMutation) Fields() []string { + fields := make([]string, 0, 3) + if m.build != nil { + fields = append(fields, buildtag.FieldBuildID) } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldMakeVariables requires an ID field in the mutation") + if m.key != nil { + fields = append(fields, buildtag.FieldKey) } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldMakeVariables: %w", err) + if m.value != nil { + fields = append(fields, buildtag.FieldValue) } - return oldValue.MakeVariables, nil + return fields } -// ClearMakeVariables clears the value of the "make_variables" field. -func (m *ConfigurationMutation) ClearMakeVariables() { - m.make_variables = nil - m.clearedFields[configuration.FieldMakeVariables] = struct{}{} +// Field returns the value of a field with the given name. The second boolean +// return value indicates that this field was not set, or was not defined in the +// schema. +func (m *BuildTagMutation) Field(name string) (ent.Value, bool) { + switch name { + case buildtag.FieldBuildID: + return m.BuildID() + case buildtag.FieldKey: + return m.Key() + case buildtag.FieldValue: + return m.Value() + } + return nil, false } -// MakeVariablesCleared returns if the "make_variables" field was cleared in this mutation. -func (m *ConfigurationMutation) MakeVariablesCleared() bool { - _, ok := m.clearedFields[configuration.FieldMakeVariables] - return ok +// OldField returns the old value of the field from the database. An error is +// returned if the mutation operation is not UpdateOne, or the query to the +// database failed. +func (m *BuildTagMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + switch name { + case buildtag.FieldBuildID: + return m.OldBuildID(ctx) + case buildtag.FieldKey: + return m.OldKey(ctx) + case buildtag.FieldValue: + return m.OldValue(ctx) + } + return nil, fmt.Errorf("unknown BuildTag field %s", name) } -// ResetMakeVariables resets all changes to the "make_variables" field. -func (m *ConfigurationMutation) ResetMakeVariables() { - m.make_variables = nil - delete(m.clearedFields, configuration.FieldMakeVariables) +// SetField sets the value of a field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *BuildTagMutation) SetField(name string, value ent.Value) error { + switch name { + case buildtag.FieldBuildID: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetBuildID(v) + return nil + case buildtag.FieldKey: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetKey(v) + return nil + case buildtag.FieldValue: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetValue(v) + return nil + } + return fmt.Errorf("unknown BuildTag field %s", name) } -// SetIsTool sets the "is_tool" field. -func (m *ConfigurationMutation) SetIsTool(b bool) { - m.is_tool = &b +// AddedFields returns all numeric fields that were incremented/decremented during +// this mutation. +func (m *BuildTagMutation) AddedFields() []string { + var fields []string + return fields } -// IsTool returns the value of the "is_tool" field in the mutation. -func (m *ConfigurationMutation) IsTool() (r bool, exists bool) { - v := m.is_tool - if v == nil { - return +// AddedField returns the numeric value that was incremented/decremented on a field +// with the given name. The second boolean return value indicates that this field +// was not set, or was not defined in the schema. +func (m *BuildTagMutation) AddedField(name string) (ent.Value, bool) { + switch name { } - return *v, true + return nil, false } -// OldIsTool returns the old "is_tool" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldIsTool(ctx context.Context) (v bool, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldIsTool is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldIsTool requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldIsTool: %w", err) +// AddField adds the value to the field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *BuildTagMutation) AddField(name string, value ent.Value) error { + switch name { } - return oldValue.IsTool, nil + return fmt.Errorf("unknown BuildTag numeric field %s", name) } -// ClearIsTool clears the value of the "is_tool" field. -func (m *ConfigurationMutation) ClearIsTool() { - m.is_tool = nil - m.clearedFields[configuration.FieldIsTool] = struct{}{} +// ClearedFields returns all nullable fields that were cleared during this +// mutation. +func (m *BuildTagMutation) ClearedFields() []string { + return nil } -// IsToolCleared returns if the "is_tool" field was cleared in this mutation. -func (m *ConfigurationMutation) IsToolCleared() bool { - _, ok := m.clearedFields[configuration.FieldIsTool] +// FieldCleared returns a boolean indicating if a field with the given name was +// cleared in this mutation. +func (m *BuildTagMutation) FieldCleared(name string) bool { + _, ok := m.clearedFields[name] return ok } -// ResetIsTool resets all changes to the "is_tool" field. -func (m *ConfigurationMutation) ResetIsTool() { - m.is_tool = nil - delete(m.clearedFields, configuration.FieldIsTool) -} - -// SetBazelInvocationID sets the "bazel_invocation_id" field. -func (m *ConfigurationMutation) SetBazelInvocationID(i int64) { - m.bazel_invocation = &i +// ClearField clears the value of the field with the given name. It returns an +// error if the field is not defined in the schema. +func (m *BuildTagMutation) ClearField(name string) error { + return fmt.Errorf("unknown BuildTag nullable field %s", name) } -// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. -func (m *ConfigurationMutation) BazelInvocationID() (r int64, exists bool) { - v := m.bazel_invocation - if v == nil { - return +// ResetField resets all changes in the mutation for the field with the given name. +// It returns an error if the field is not defined in the schema. +func (m *BuildTagMutation) ResetField(name string) error { + switch name { + case buildtag.FieldBuildID: + m.ResetBuildID() + return nil + case buildtag.FieldKey: + m.ResetKey() + return nil + case buildtag.FieldValue: + m.ResetValue() + return nil } - return *v, true + return fmt.Errorf("unknown BuildTag field %s", name) } -// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the Configuration entity. -// If the Configuration object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConfigurationMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) +// AddedEdges returns all edge names that were set/added in this mutation. +func (m *BuildTagMutation) AddedEdges() []string { + edges := make([]string, 0, 1) + if m.build != nil { + edges = append(edges, buildtag.EdgeBuild) } - return oldValue.BazelInvocationID, nil + return edges } -// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. -func (m *ConfigurationMutation) ResetBazelInvocationID() { - m.bazel_invocation = nil +// AddedIDs returns all IDs (to other nodes) that were added for the given edge +// name in this mutation. +func (m *BuildTagMutation) AddedIDs(name string) []ent.Value { + switch name { + case buildtag.EdgeBuild: + if id := m.build; id != nil { + return []ent.Value{*id} + } + } + return nil } -// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *ConfigurationMutation) ClearBazelInvocation() { - m.clearedbazel_invocation = true - m.clearedFields[configuration.FieldBazelInvocationID] = struct{}{} +// RemovedEdges returns all edge names that were removed in this mutation. +func (m *BuildTagMutation) RemovedEdges() []string { + edges := make([]string, 0, 1) + return edges } -// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *ConfigurationMutation) BazelInvocationCleared() bool { - return m.clearedbazel_invocation +// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with +// the given name in this mutation. +func (m *BuildTagMutation) RemovedIDs(name string) []ent.Value { + return nil } -// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *ConfigurationMutation) BazelInvocationIDs() (ids []int64) { - if id := m.bazel_invocation; id != nil { - ids = append(ids, *id) +// ClearedEdges returns all edge names that were cleared in this mutation. +func (m *BuildTagMutation) ClearedEdges() []string { + edges := make([]string, 0, 1) + if m.clearedbuild { + edges = append(edges, buildtag.EdgeBuild) } - return -} - -// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *ConfigurationMutation) ResetBazelInvocation() { - m.bazel_invocation = nil - m.clearedbazel_invocation = false + return edges } -// AddInvocationTargetIDs adds the "invocation_targets" edge to the InvocationTarget entity by ids. -func (m *ConfigurationMutation) AddInvocationTargetIDs(ids ...int64) { - if m.invocation_targets == nil { - m.invocation_targets = make(map[int64]struct{}) - } - for i := range ids { - m.invocation_targets[ids[i]] = struct{}{} +// EdgeCleared returns a boolean which indicates if the edge with the given name +// was cleared in this mutation. +func (m *BuildTagMutation) EdgeCleared(name string) bool { + switch name { + case buildtag.EdgeBuild: + return m.clearedbuild } + return false } -// ClearInvocationTargets clears the "invocation_targets" edge to the InvocationTarget entity. -func (m *ConfigurationMutation) ClearInvocationTargets() { - m.clearedinvocation_targets = true +// ClearEdge clears the value of the edge with the given name. It returns an error +// if that edge is not defined in the schema. +func (m *BuildTagMutation) ClearEdge(name string) error { + switch name { + case buildtag.EdgeBuild: + m.ClearBuild() + return nil + } + return fmt.Errorf("unknown BuildTag unique edge %s", name) } -// InvocationTargetsCleared reports if the "invocation_targets" edge to the InvocationTarget entity was cleared. -func (m *ConfigurationMutation) InvocationTargetsCleared() bool { - return m.clearedinvocation_targets +// ResetEdge resets all changes to the edge with the given name in this mutation. +// It returns an error if the edge is not defined in the schema. +func (m *BuildTagMutation) ResetEdge(name string) error { + switch name { + case buildtag.EdgeBuild: + m.ResetBuild() + return nil + } + return fmt.Errorf("unknown BuildTag edge %s", name) } -// RemoveInvocationTargetIDs removes the "invocation_targets" edge to the InvocationTarget entity by IDs. -func (m *ConfigurationMutation) RemoveInvocationTargetIDs(ids ...int64) { - if m.removedinvocation_targets == nil { - m.removedinvocation_targets = make(map[int64]struct{}) - } - for i := range ids { - delete(m.invocation_targets, ids[i]) - m.removedinvocation_targets[ids[i]] = struct{}{} - } +// ConfigurationMutation represents an operation that mutates the Configuration nodes in the graph. +type ConfigurationMutation struct { + config + op Op + typ string + id *int64 + configuration_id *string + mnemonic *string + platform_name *string + cpu *string + make_variables *map[string]string + is_tool *bool + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + invocation_targets map[int64]struct{} + removedinvocation_targets map[int64]struct{} + clearedinvocation_targets bool + actions map[int64]struct{} + removedactions map[int64]struct{} + clearedactions bool + done bool + oldValue func(context.Context) (*Configuration, error) + predicates []predicate.Configuration } -// RemovedInvocationTargets returns the removed IDs of the "invocation_targets" edge to the InvocationTarget entity. -func (m *ConfigurationMutation) RemovedInvocationTargetsIDs() (ids []int64) { - for id := range m.removedinvocation_targets { - ids = append(ids, id) - } - return -} +var _ ent.Mutation = (*ConfigurationMutation)(nil) -// InvocationTargetsIDs returns the "invocation_targets" edge IDs in the mutation. -func (m *ConfigurationMutation) InvocationTargetsIDs() (ids []int64) { - for id := range m.invocation_targets { - ids = append(ids, id) +// configurationOption allows management of the mutation configuration using functional options. +type configurationOption func(*ConfigurationMutation) + +// newConfigurationMutation creates new mutation for the Configuration entity. +func newConfigurationMutation(c config, op Op, opts ...configurationOption) *ConfigurationMutation { + m := &ConfigurationMutation{ + config: c, + op: op, + typ: TypeConfiguration, + clearedFields: make(map[string]struct{}), } - return + for _, opt := range opts { + opt(m) + } + return m } -// ResetInvocationTargets resets all changes to the "invocation_targets" edge. -func (m *ConfigurationMutation) ResetInvocationTargets() { - m.invocation_targets = nil - m.clearedinvocation_targets = false - m.removedinvocation_targets = nil +// withConfigurationID sets the ID field of the mutation. +func withConfigurationID(id int64) configurationOption { + return func(m *ConfigurationMutation) { + var ( + err error + once sync.Once + value *Configuration + ) + m.oldValue = func(ctx context.Context) (*Configuration, error) { + once.Do(func() { + if m.done { + err = errors.New("querying old values post mutation is not allowed") + } else { + value, err = m.Client().Configuration.Get(ctx, id) + } + }) + return value, err + } + m.id = &id + } } -// AddActionIDs adds the "actions" edge to the Action entity by ids. -func (m *ConfigurationMutation) AddActionIDs(ids ...int64) { - if m.actions == nil { - m.actions = make(map[int64]struct{}) - } - for i := range ids { - m.actions[ids[i]] = struct{}{} +// withConfiguration sets the old Configuration of the mutation. +func withConfiguration(node *Configuration) configurationOption { + return func(m *ConfigurationMutation) { + m.oldValue = func(context.Context) (*Configuration, error) { + return node, nil + } + m.id = &node.ID } } -// ClearActions clears the "actions" edge to the Action entity. -func (m *ConfigurationMutation) ClearActions() { - m.clearedactions = true +// Client returns a new `ent.Client` from the mutation. If the mutation was +// executed in a transaction (ent.Tx), a transactional client is returned. +func (m ConfigurationMutation) Client() *Client { + client := &Client{config: m.config} + client.init() + return client } -// ActionsCleared reports if the "actions" edge to the Action entity was cleared. -func (m *ConfigurationMutation) ActionsCleared() bool { - return m.clearedactions +// Tx returns an `ent.Tx` for mutations that were executed in transactions; +// it returns an error otherwise. +func (m ConfigurationMutation) Tx() (*Tx, error) { + if _, ok := m.driver.(*txDriver); !ok { + return nil, errors.New("ent: mutation is not running in a transaction") + } + tx := &Tx{config: m.config} + tx.init() + return tx, nil } -// RemoveActionIDs removes the "actions" edge to the Action entity by IDs. -func (m *ConfigurationMutation) RemoveActionIDs(ids ...int64) { - if m.removedactions == nil { - m.removedactions = make(map[int64]struct{}) - } - for i := range ids { - delete(m.actions, ids[i]) - m.removedactions[ids[i]] = struct{}{} - } +// SetID sets the value of the id field. Note that this +// operation is only accepted on creation of Configuration entities. +func (m *ConfigurationMutation) SetID(id int64) { + m.id = &id } -// RemovedActions returns the removed IDs of the "actions" edge to the Action entity. -func (m *ConfigurationMutation) RemovedActionsIDs() (ids []int64) { - for id := range m.removedactions { - ids = append(ids, id) +// ID returns the ID value in the mutation. Note that the ID is only available +// if it was provided to the builder or after it was returned from the database. +func (m *ConfigurationMutation) ID() (id int64, exists bool) { + if m.id == nil { + return } - return + return *m.id, true } -// ActionsIDs returns the "actions" edge IDs in the mutation. -func (m *ConfigurationMutation) ActionsIDs() (ids []int64) { - for id := range m.actions { - ids = append(ids, id) +// IDs queries the database and returns the entity ids that match the mutation's predicate. +// That means, if the mutation is applied within a transaction with an isolation level such +// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated +// or updated by the mutation. +func (m *ConfigurationMutation) IDs(ctx context.Context) ([]int64, error) { + switch { + case m.op.Is(OpUpdateOne | OpDeleteOne): + id, exists := m.ID() + if exists { + return []int64{id}, nil + } + fallthrough + case m.op.Is(OpUpdate | OpDelete): + return m.Client().Configuration.Query().Where(m.predicates...).IDs(ctx) + default: + return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } - return } -// ResetActions resets all changes to the "actions" edge. -func (m *ConfigurationMutation) ResetActions() { - m.actions = nil - m.clearedactions = false - m.removedactions = nil +// SetConfigurationID sets the "configuration_id" field. +func (m *ConfigurationMutation) SetConfigurationID(s string) { + m.configuration_id = &s } -// Where appends a list predicates to the ConfigurationMutation builder. -func (m *ConfigurationMutation) Where(ps ...predicate.Configuration) { - m.predicates = append(m.predicates, ps...) +// ConfigurationID returns the value of the "configuration_id" field in the mutation. +func (m *ConfigurationMutation) ConfigurationID() (r string, exists bool) { + v := m.configuration_id + if v == nil { + return + } + return *v, true } -// WhereP appends storage-level predicates to the ConfigurationMutation builder. Using this method, -// users can use type-assertion to append predicates that do not depend on any generated package. -func (m *ConfigurationMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.Configuration, len(ps)) - for i := range ps { - p[i] = ps[i] +// OldConfigurationID returns the old "configuration_id" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *ConfigurationMutation) OldConfigurationID(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldConfigurationID is only allowed on UpdateOne operations") } - m.Where(p...) + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldConfigurationID requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldConfigurationID: %w", err) + } + return oldValue.ConfigurationID, nil } -// Op returns the operation name. -func (m *ConfigurationMutation) Op() Op { - return m.op +// ResetConfigurationID resets all changes to the "configuration_id" field. +func (m *ConfigurationMutation) ResetConfigurationID() { + m.configuration_id = nil } -// SetOp allows setting the mutation operation. -func (m *ConfigurationMutation) SetOp(op Op) { - m.op = op +// SetMnemonic sets the "mnemonic" field. +func (m *ConfigurationMutation) SetMnemonic(s string) { + m.mnemonic = &s } -// Type returns the node type of this mutation (Configuration). -func (m *ConfigurationMutation) Type() string { - return m.typ +// Mnemonic returns the value of the "mnemonic" field in the mutation. +func (m *ConfigurationMutation) Mnemonic() (r string, exists bool) { + v := m.mnemonic + if v == nil { + return + } + return *v, true } -// Fields returns all fields that were changed during this mutation. Note that in -// order to get all numeric fields that were incremented/decremented, call -// AddedFields(). -func (m *ConfigurationMutation) Fields() []string { - fields := make([]string, 0, 7) - if m.configuration_id != nil { - fields = append(fields, configuration.FieldConfigurationID) - } - if m.mnemonic != nil { - fields = append(fields, configuration.FieldMnemonic) - } - if m.platform_name != nil { - fields = append(fields, configuration.FieldPlatformName) - } - if m.cpu != nil { - fields = append(fields, configuration.FieldCPU) - } - if m.make_variables != nil { - fields = append(fields, configuration.FieldMakeVariables) +// OldMnemonic returns the old "mnemonic" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *ConfigurationMutation) OldMnemonic(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldMnemonic is only allowed on UpdateOne operations") } - if m.is_tool != nil { - fields = append(fields, configuration.FieldIsTool) + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldMnemonic requires an ID field in the mutation") } - if m.bazel_invocation != nil { - fields = append(fields, configuration.FieldBazelInvocationID) + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldMnemonic: %w", err) } - return fields + return oldValue.Mnemonic, nil } -// Field returns the value of a field with the given name. The second boolean -// return value indicates that this field was not set, or was not defined in the -// schema. -func (m *ConfigurationMutation) Field(name string) (ent.Value, bool) { - switch name { - case configuration.FieldConfigurationID: - return m.ConfigurationID() - case configuration.FieldMnemonic: - return m.Mnemonic() - case configuration.FieldPlatformName: - return m.PlatformName() - case configuration.FieldCPU: - return m.CPU() - case configuration.FieldMakeVariables: - return m.MakeVariables() - case configuration.FieldIsTool: - return m.IsTool() - case configuration.FieldBazelInvocationID: - return m.BazelInvocationID() - } - return nil, false -} - -// OldField returns the old value of the field from the database. An error is -// returned if the mutation operation is not UpdateOne, or the query to the -// database failed. -func (m *ConfigurationMutation) OldField(ctx context.Context, name string) (ent.Value, error) { - switch name { - case configuration.FieldConfigurationID: - return m.OldConfigurationID(ctx) - case configuration.FieldMnemonic: - return m.OldMnemonic(ctx) - case configuration.FieldPlatformName: - return m.OldPlatformName(ctx) - case configuration.FieldCPU: - return m.OldCPU(ctx) - case configuration.FieldMakeVariables: - return m.OldMakeVariables(ctx) - case configuration.FieldIsTool: - return m.OldIsTool(ctx) - case configuration.FieldBazelInvocationID: - return m.OldBazelInvocationID(ctx) - } - return nil, fmt.Errorf("unknown Configuration field %s", name) +// ClearMnemonic clears the value of the "mnemonic" field. +func (m *ConfigurationMutation) ClearMnemonic() { + m.mnemonic = nil + m.clearedFields[configuration.FieldMnemonic] = struct{}{} } -// SetField sets the value of a field with the given name. It returns an error if -// the field is not defined in the schema, or if the type mismatched the field -// type. -func (m *ConfigurationMutation) SetField(name string, value ent.Value) error { - switch name { - case configuration.FieldConfigurationID: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetConfigurationID(v) - return nil - case configuration.FieldMnemonic: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetMnemonic(v) - return nil - case configuration.FieldPlatformName: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetPlatformName(v) - return nil - case configuration.FieldCPU: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetCPU(v) - return nil - case configuration.FieldMakeVariables: - v, ok := value.(map[string]string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetMakeVariables(v) - return nil - case configuration.FieldIsTool: - v, ok := value.(bool) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetIsTool(v) - return nil - case configuration.FieldBazelInvocationID: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetBazelInvocationID(v) - return nil - } - return fmt.Errorf("unknown Configuration field %s", name) +// MnemonicCleared returns if the "mnemonic" field was cleared in this mutation. +func (m *ConfigurationMutation) MnemonicCleared() bool { + _, ok := m.clearedFields[configuration.FieldMnemonic] + return ok } -// AddedFields returns all numeric fields that were incremented/decremented during -// this mutation. -func (m *ConfigurationMutation) AddedFields() []string { - var fields []string - return fields +// ResetMnemonic resets all changes to the "mnemonic" field. +func (m *ConfigurationMutation) ResetMnemonic() { + m.mnemonic = nil + delete(m.clearedFields, configuration.FieldMnemonic) } -// AddedField returns the numeric value that was incremented/decremented on a field -// with the given name. The second boolean return value indicates that this field -// was not set, or was not defined in the schema. -func (m *ConfigurationMutation) AddedField(name string) (ent.Value, bool) { - switch name { - } - return nil, false +// SetPlatformName sets the "platform_name" field. +func (m *ConfigurationMutation) SetPlatformName(s string) { + m.platform_name = &s } -// AddField adds the value to the field with the given name. It returns an error if -// the field is not defined in the schema, or if the type mismatched the field -// type. -func (m *ConfigurationMutation) AddField(name string, value ent.Value) error { - switch name { +// PlatformName returns the value of the "platform_name" field in the mutation. +func (m *ConfigurationMutation) PlatformName() (r string, exists bool) { + v := m.platform_name + if v == nil { + return } - return fmt.Errorf("unknown Configuration numeric field %s", name) + return *v, true } -// ClearedFields returns all nullable fields that were cleared during this -// mutation. -func (m *ConfigurationMutation) ClearedFields() []string { - var fields []string - if m.FieldCleared(configuration.FieldMnemonic) { - fields = append(fields, configuration.FieldMnemonic) - } - if m.FieldCleared(configuration.FieldPlatformName) { - fields = append(fields, configuration.FieldPlatformName) - } - if m.FieldCleared(configuration.FieldCPU) { - fields = append(fields, configuration.FieldCPU) - } - if m.FieldCleared(configuration.FieldMakeVariables) { - fields = append(fields, configuration.FieldMakeVariables) - } - if m.FieldCleared(configuration.FieldIsTool) { - fields = append(fields, configuration.FieldIsTool) +// OldPlatformName returns the old "platform_name" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *ConfigurationMutation) OldPlatformName(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldPlatformName is only allowed on UpdateOne operations") } - return fields -} - -// FieldCleared returns a boolean indicating if a field with the given name was -// cleared in this mutation. -func (m *ConfigurationMutation) FieldCleared(name string) bool { - _, ok := m.clearedFields[name] - return ok -} - -// ClearField clears the value of the field with the given name. It returns an -// error if the field is not defined in the schema. -func (m *ConfigurationMutation) ClearField(name string) error { - switch name { - case configuration.FieldMnemonic: - m.ClearMnemonic() - return nil - case configuration.FieldPlatformName: - m.ClearPlatformName() - return nil - case configuration.FieldCPU: - m.ClearCPU() - return nil - case configuration.FieldMakeVariables: - m.ClearMakeVariables() - return nil - case configuration.FieldIsTool: - m.ClearIsTool() - return nil + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldPlatformName requires an ID field in the mutation") } - return fmt.Errorf("unknown Configuration nullable field %s", name) -} - -// ResetField resets all changes in the mutation for the field with the given name. -// It returns an error if the field is not defined in the schema. -func (m *ConfigurationMutation) ResetField(name string) error { - switch name { - case configuration.FieldConfigurationID: - m.ResetConfigurationID() - return nil - case configuration.FieldMnemonic: - m.ResetMnemonic() - return nil - case configuration.FieldPlatformName: - m.ResetPlatformName() - return nil - case configuration.FieldCPU: - m.ResetCPU() - return nil - case configuration.FieldMakeVariables: - m.ResetMakeVariables() - return nil - case configuration.FieldIsTool: - m.ResetIsTool() - return nil - case configuration.FieldBazelInvocationID: - m.ResetBazelInvocationID() - return nil + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldPlatformName: %w", err) } - return fmt.Errorf("unknown Configuration field %s", name) + return oldValue.PlatformName, nil } -// AddedEdges returns all edge names that were set/added in this mutation. -func (m *ConfigurationMutation) AddedEdges() []string { - edges := make([]string, 0, 3) - if m.bazel_invocation != nil { - edges = append(edges, configuration.EdgeBazelInvocation) - } - if m.invocation_targets != nil { - edges = append(edges, configuration.EdgeInvocationTargets) - } - if m.actions != nil { - edges = append(edges, configuration.EdgeActions) - } - return edges +// ClearPlatformName clears the value of the "platform_name" field. +func (m *ConfigurationMutation) ClearPlatformName() { + m.platform_name = nil + m.clearedFields[configuration.FieldPlatformName] = struct{}{} } -// AddedIDs returns all IDs (to other nodes) that were added for the given edge -// name in this mutation. -func (m *ConfigurationMutation) AddedIDs(name string) []ent.Value { - switch name { - case configuration.EdgeBazelInvocation: - if id := m.bazel_invocation; id != nil { - return []ent.Value{*id} - } - case configuration.EdgeInvocationTargets: - ids := make([]ent.Value, 0, len(m.invocation_targets)) - for id := range m.invocation_targets { - ids = append(ids, id) - } - return ids - case configuration.EdgeActions: - ids := make([]ent.Value, 0, len(m.actions)) - for id := range m.actions { - ids = append(ids, id) - } - return ids - } - return nil +// PlatformNameCleared returns if the "platform_name" field was cleared in this mutation. +func (m *ConfigurationMutation) PlatformNameCleared() bool { + _, ok := m.clearedFields[configuration.FieldPlatformName] + return ok } -// RemovedEdges returns all edge names that were removed in this mutation. -func (m *ConfigurationMutation) RemovedEdges() []string { - edges := make([]string, 0, 3) - if m.removedinvocation_targets != nil { - edges = append(edges, configuration.EdgeInvocationTargets) - } - if m.removedactions != nil { - edges = append(edges, configuration.EdgeActions) - } - return edges +// ResetPlatformName resets all changes to the "platform_name" field. +func (m *ConfigurationMutation) ResetPlatformName() { + m.platform_name = nil + delete(m.clearedFields, configuration.FieldPlatformName) } -// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with -// the given name in this mutation. -func (m *ConfigurationMutation) RemovedIDs(name string) []ent.Value { - switch name { - case configuration.EdgeInvocationTargets: - ids := make([]ent.Value, 0, len(m.removedinvocation_targets)) - for id := range m.removedinvocation_targets { - ids = append(ids, id) - } - return ids - case configuration.EdgeActions: - ids := make([]ent.Value, 0, len(m.removedactions)) - for id := range m.removedactions { - ids = append(ids, id) - } - return ids +// SetCPU sets the "cpu" field. +func (m *ConfigurationMutation) SetCPU(s string) { + m.cpu = &s +} + +// CPU returns the value of the "cpu" field in the mutation. +func (m *ConfigurationMutation) CPU() (r string, exists bool) { + v := m.cpu + if v == nil { + return } - return nil + return *v, true } -// ClearedEdges returns all edge names that were cleared in this mutation. -func (m *ConfigurationMutation) ClearedEdges() []string { - edges := make([]string, 0, 3) - if m.clearedbazel_invocation { - edges = append(edges, configuration.EdgeBazelInvocation) +// OldCPU returns the old "cpu" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *ConfigurationMutation) OldCPU(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldCPU is only allowed on UpdateOne operations") } - if m.clearedinvocation_targets { - edges = append(edges, configuration.EdgeInvocationTargets) + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldCPU requires an ID field in the mutation") } - if m.clearedactions { - edges = append(edges, configuration.EdgeActions) + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldCPU: %w", err) } - return edges + return oldValue.CPU, nil } -// EdgeCleared returns a boolean which indicates if the edge with the given name -// was cleared in this mutation. -func (m *ConfigurationMutation) EdgeCleared(name string) bool { - switch name { - case configuration.EdgeBazelInvocation: - return m.clearedbazel_invocation - case configuration.EdgeInvocationTargets: - return m.clearedinvocation_targets - case configuration.EdgeActions: - return m.clearedactions - } - return false +// ClearCPU clears the value of the "cpu" field. +func (m *ConfigurationMutation) ClearCPU() { + m.cpu = nil + m.clearedFields[configuration.FieldCPU] = struct{}{} } -// ClearEdge clears the value of the edge with the given name. It returns an error -// if that edge is not defined in the schema. -func (m *ConfigurationMutation) ClearEdge(name string) error { - switch name { - case configuration.EdgeBazelInvocation: - m.ClearBazelInvocation() - return nil - } - return fmt.Errorf("unknown Configuration unique edge %s", name) +// CPUCleared returns if the "cpu" field was cleared in this mutation. +func (m *ConfigurationMutation) CPUCleared() bool { + _, ok := m.clearedFields[configuration.FieldCPU] + return ok } -// ResetEdge resets all changes to the edge with the given name in this mutation. -// It returns an error if the edge is not defined in the schema. -func (m *ConfigurationMutation) ResetEdge(name string) error { - switch name { - case configuration.EdgeBazelInvocation: - m.ResetBazelInvocation() - return nil - case configuration.EdgeInvocationTargets: - m.ResetInvocationTargets() - return nil - case configuration.EdgeActions: - m.ResetActions() - return nil - } - return fmt.Errorf("unknown Configuration edge %s", name) +// ResetCPU resets all changes to the "cpu" field. +func (m *ConfigurationMutation) ResetCPU() { + m.cpu = nil + delete(m.clearedFields, configuration.FieldCPU) } -// ConnectionMetadataMutation represents an operation that mutates the ConnectionMetadata nodes in the graph. -type ConnectionMetadataMutation struct { - config - op Op - typ string - id *int64 - connection_last_open_at *time.Time - clearedFields map[string]struct{} - bazel_invocation *int64 - clearedbazel_invocation bool - done bool - oldValue func(context.Context) (*ConnectionMetadata, error) - predicates []predicate.ConnectionMetadata +// SetMakeVariables sets the "make_variables" field. +func (m *ConfigurationMutation) SetMakeVariables(value map[string]string) { + m.make_variables = &value } -var _ ent.Mutation = (*ConnectionMetadataMutation)(nil) - -// connectionmetadataOption allows management of the mutation configuration using functional options. -type connectionmetadataOption func(*ConnectionMetadataMutation) - -// newConnectionMetadataMutation creates new mutation for the ConnectionMetadata entity. -func newConnectionMetadataMutation(c config, op Op, opts ...connectionmetadataOption) *ConnectionMetadataMutation { - m := &ConnectionMetadataMutation{ - config: c, - op: op, - typ: TypeConnectionMetadata, - clearedFields: make(map[string]struct{}), - } - for _, opt := range opts { - opt(m) +// MakeVariables returns the value of the "make_variables" field in the mutation. +func (m *ConfigurationMutation) MakeVariables() (r map[string]string, exists bool) { + v := m.make_variables + if v == nil { + return } - return m + return *v, true } -// withConnectionMetadataID sets the ID field of the mutation. -func withConnectionMetadataID(id int64) connectionmetadataOption { - return func(m *ConnectionMetadataMutation) { - var ( - err error - once sync.Once - value *ConnectionMetadata - ) - m.oldValue = func(ctx context.Context) (*ConnectionMetadata, error) { - once.Do(func() { - if m.done { - err = errors.New("querying old values post mutation is not allowed") - } else { - value, err = m.Client().ConnectionMetadata.Get(ctx, id) - } - }) - return value, err - } - m.id = &id +// OldMakeVariables returns the old "make_variables" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *ConfigurationMutation) OldMakeVariables(ctx context.Context) (v map[string]string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldMakeVariables is only allowed on UpdateOne operations") } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldMakeVariables requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldMakeVariables: %w", err) + } + return oldValue.MakeVariables, nil } -// withConnectionMetadata sets the old ConnectionMetadata of the mutation. -func withConnectionMetadata(node *ConnectionMetadata) connectionmetadataOption { - return func(m *ConnectionMetadataMutation) { - m.oldValue = func(context.Context) (*ConnectionMetadata, error) { - return node, nil - } - m.id = &node.ID - } +// ClearMakeVariables clears the value of the "make_variables" field. +func (m *ConfigurationMutation) ClearMakeVariables() { + m.make_variables = nil + m.clearedFields[configuration.FieldMakeVariables] = struct{}{} } -// Client returns a new `ent.Client` from the mutation. If the mutation was -// executed in a transaction (ent.Tx), a transactional client is returned. -func (m ConnectionMetadataMutation) Client() *Client { - client := &Client{config: m.config} - client.init() - return client +// MakeVariablesCleared returns if the "make_variables" field was cleared in this mutation. +func (m *ConfigurationMutation) MakeVariablesCleared() bool { + _, ok := m.clearedFields[configuration.FieldMakeVariables] + return ok } -// Tx returns an `ent.Tx` for mutations that were executed in transactions; -// it returns an error otherwise. -func (m ConnectionMetadataMutation) Tx() (*Tx, error) { - if _, ok := m.driver.(*txDriver); !ok { - return nil, errors.New("ent: mutation is not running in a transaction") - } - tx := &Tx{config: m.config} - tx.init() - return tx, nil +// ResetMakeVariables resets all changes to the "make_variables" field. +func (m *ConfigurationMutation) ResetMakeVariables() { + m.make_variables = nil + delete(m.clearedFields, configuration.FieldMakeVariables) } -// SetID sets the value of the id field. Note that this -// operation is only accepted on creation of ConnectionMetadata entities. -func (m *ConnectionMetadataMutation) SetID(id int64) { - m.id = &id +// SetIsTool sets the "is_tool" field. +func (m *ConfigurationMutation) SetIsTool(b bool) { + m.is_tool = &b } -// ID returns the ID value in the mutation. Note that the ID is only available -// if it was provided to the builder or after it was returned from the database. -func (m *ConnectionMetadataMutation) ID() (id int64, exists bool) { - if m.id == nil { +// IsTool returns the value of the "is_tool" field in the mutation. +func (m *ConfigurationMutation) IsTool() (r bool, exists bool) { + v := m.is_tool + if v == nil { return } - return *m.id, true + return *v, true } -// IDs queries the database and returns the entity ids that match the mutation's predicate. -// That means, if the mutation is applied within a transaction with an isolation level such -// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated -// or updated by the mutation. -func (m *ConnectionMetadataMutation) IDs(ctx context.Context) ([]int64, error) { - switch { - case m.op.Is(OpUpdateOne | OpDeleteOne): - id, exists := m.ID() - if exists { - return []int64{id}, nil - } - fallthrough - case m.op.Is(OpUpdate | OpDelete): - return m.Client().ConnectionMetadata.Query().Where(m.predicates...).IDs(ctx) - default: - return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) +// OldIsTool returns the old "is_tool" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *ConfigurationMutation) OldIsTool(ctx context.Context) (v bool, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldIsTool is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldIsTool requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldIsTool: %w", err) } + return oldValue.IsTool, nil } -// SetConnectionLastOpenAt sets the "connection_last_open_at" field. -func (m *ConnectionMetadataMutation) SetConnectionLastOpenAt(t time.Time) { - m.connection_last_open_at = &t +// ClearIsTool clears the value of the "is_tool" field. +func (m *ConfigurationMutation) ClearIsTool() { + m.is_tool = nil + m.clearedFields[configuration.FieldIsTool] = struct{}{} +} + +// IsToolCleared returns if the "is_tool" field was cleared in this mutation. +func (m *ConfigurationMutation) IsToolCleared() bool { + _, ok := m.clearedFields[configuration.FieldIsTool] + return ok +} + +// ResetIsTool resets all changes to the "is_tool" field. +func (m *ConfigurationMutation) ResetIsTool() { + m.is_tool = nil + delete(m.clearedFields, configuration.FieldIsTool) +} + +// SetBazelInvocationID sets the "bazel_invocation_id" field. +func (m *ConfigurationMutation) SetBazelInvocationID(i int64) { + m.bazel_invocation = &i } -// ConnectionLastOpenAt returns the value of the "connection_last_open_at" field in the mutation. -func (m *ConnectionMetadataMutation) ConnectionLastOpenAt() (r time.Time, exists bool) { - v := m.connection_last_open_at +// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. +func (m *ConfigurationMutation) BazelInvocationID() (r int64, exists bool) { + v := m.bazel_invocation if v == nil { return } return *v, true } -// OldConnectionLastOpenAt returns the old "connection_last_open_at" field's value of the ConnectionMetadata entity. -// If the ConnectionMetadata object wasn't provided to the builder, the object is fetched from the database. +// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the Configuration entity. +// If the Configuration object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *ConnectionMetadataMutation) OldConnectionLastOpenAt(ctx context.Context) (v time.Time, err error) { +func (m *ConfigurationMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldConnectionLastOpenAt is only allowed on UpdateOne operations") + return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldConnectionLastOpenAt requires an ID field in the mutation") + return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldConnectionLastOpenAt: %w", err) + return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) } - return oldValue.ConnectionLastOpenAt, nil -} - -// ResetConnectionLastOpenAt resets all changes to the "connection_last_open_at" field. -func (m *ConnectionMetadataMutation) ResetConnectionLastOpenAt() { - m.connection_last_open_at = nil + return oldValue.BazelInvocationID, nil } -// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. -func (m *ConnectionMetadataMutation) SetBazelInvocationID(id int64) { - m.bazel_invocation = &id +// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. +func (m *ConfigurationMutation) ResetBazelInvocationID() { + m.bazel_invocation = nil } // ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *ConnectionMetadataMutation) ClearBazelInvocation() { +func (m *ConfigurationMutation) ClearBazelInvocation() { m.clearedbazel_invocation = true + m.clearedFields[configuration.FieldBazelInvocationID] = struct{}{} } // BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *ConnectionMetadataMutation) BazelInvocationCleared() bool { +func (m *ConfigurationMutation) BazelInvocationCleared() bool { return m.clearedbazel_invocation } -// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. -func (m *ConnectionMetadataMutation) BazelInvocationID() (id int64, exists bool) { - if m.bazel_invocation != nil { - return *m.bazel_invocation, true - } - return -} - // BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use // BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *ConnectionMetadataMutation) BazelInvocationIDs() (ids []int64) { +func (m *ConfigurationMutation) BazelInvocationIDs() (ids []int64) { if id := m.bazel_invocation; id != nil { ids = append(ids, *id) } @@ -13436,20 +12941,128 @@ func (m *ConnectionMetadataMutation) BazelInvocationIDs() (ids []int64) { } // ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *ConnectionMetadataMutation) ResetBazelInvocation() { +func (m *ConfigurationMutation) ResetBazelInvocation() { m.bazel_invocation = nil m.clearedbazel_invocation = false } -// Where appends a list predicates to the ConnectionMetadataMutation builder. -func (m *ConnectionMetadataMutation) Where(ps ...predicate.ConnectionMetadata) { +// AddInvocationTargetIDs adds the "invocation_targets" edge to the InvocationTarget entity by ids. +func (m *ConfigurationMutation) AddInvocationTargetIDs(ids ...int64) { + if m.invocation_targets == nil { + m.invocation_targets = make(map[int64]struct{}) + } + for i := range ids { + m.invocation_targets[ids[i]] = struct{}{} + } +} + +// ClearInvocationTargets clears the "invocation_targets" edge to the InvocationTarget entity. +func (m *ConfigurationMutation) ClearInvocationTargets() { + m.clearedinvocation_targets = true +} + +// InvocationTargetsCleared reports if the "invocation_targets" edge to the InvocationTarget entity was cleared. +func (m *ConfigurationMutation) InvocationTargetsCleared() bool { + return m.clearedinvocation_targets +} + +// RemoveInvocationTargetIDs removes the "invocation_targets" edge to the InvocationTarget entity by IDs. +func (m *ConfigurationMutation) RemoveInvocationTargetIDs(ids ...int64) { + if m.removedinvocation_targets == nil { + m.removedinvocation_targets = make(map[int64]struct{}) + } + for i := range ids { + delete(m.invocation_targets, ids[i]) + m.removedinvocation_targets[ids[i]] = struct{}{} + } +} + +// RemovedInvocationTargets returns the removed IDs of the "invocation_targets" edge to the InvocationTarget entity. +func (m *ConfigurationMutation) RemovedInvocationTargetsIDs() (ids []int64) { + for id := range m.removedinvocation_targets { + ids = append(ids, id) + } + return +} + +// InvocationTargetsIDs returns the "invocation_targets" edge IDs in the mutation. +func (m *ConfigurationMutation) InvocationTargetsIDs() (ids []int64) { + for id := range m.invocation_targets { + ids = append(ids, id) + } + return +} + +// ResetInvocationTargets resets all changes to the "invocation_targets" edge. +func (m *ConfigurationMutation) ResetInvocationTargets() { + m.invocation_targets = nil + m.clearedinvocation_targets = false + m.removedinvocation_targets = nil +} + +// AddActionIDs adds the "actions" edge to the Action entity by ids. +func (m *ConfigurationMutation) AddActionIDs(ids ...int64) { + if m.actions == nil { + m.actions = make(map[int64]struct{}) + } + for i := range ids { + m.actions[ids[i]] = struct{}{} + } +} + +// ClearActions clears the "actions" edge to the Action entity. +func (m *ConfigurationMutation) ClearActions() { + m.clearedactions = true +} + +// ActionsCleared reports if the "actions" edge to the Action entity was cleared. +func (m *ConfigurationMutation) ActionsCleared() bool { + return m.clearedactions +} + +// RemoveActionIDs removes the "actions" edge to the Action entity by IDs. +func (m *ConfigurationMutation) RemoveActionIDs(ids ...int64) { + if m.removedactions == nil { + m.removedactions = make(map[int64]struct{}) + } + for i := range ids { + delete(m.actions, ids[i]) + m.removedactions[ids[i]] = struct{}{} + } +} + +// RemovedActions returns the removed IDs of the "actions" edge to the Action entity. +func (m *ConfigurationMutation) RemovedActionsIDs() (ids []int64) { + for id := range m.removedactions { + ids = append(ids, id) + } + return +} + +// ActionsIDs returns the "actions" edge IDs in the mutation. +func (m *ConfigurationMutation) ActionsIDs() (ids []int64) { + for id := range m.actions { + ids = append(ids, id) + } + return +} + +// ResetActions resets all changes to the "actions" edge. +func (m *ConfigurationMutation) ResetActions() { + m.actions = nil + m.clearedactions = false + m.removedactions = nil +} + +// Where appends a list predicates to the ConfigurationMutation builder. +func (m *ConfigurationMutation) Where(ps ...predicate.Configuration) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the ConnectionMetadataMutation builder. Using this method, +// WhereP appends storage-level predicates to the ConfigurationMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *ConnectionMetadataMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.ConnectionMetadata, len(ps)) +func (m *ConfigurationMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.Configuration, len(ps)) for i := range ps { p[i] = ps[i] } @@ -13457,27 +13070,45 @@ func (m *ConnectionMetadataMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *ConnectionMetadataMutation) Op() Op { +func (m *ConfigurationMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *ConnectionMetadataMutation) SetOp(op Op) { +func (m *ConfigurationMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (ConnectionMetadata). -func (m *ConnectionMetadataMutation) Type() string { +// Type returns the node type of this mutation (Configuration). +func (m *ConfigurationMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *ConnectionMetadataMutation) Fields() []string { - fields := make([]string, 0, 1) - if m.connection_last_open_at != nil { - fields = append(fields, connectionmetadata.FieldConnectionLastOpenAt) +func (m *ConfigurationMutation) Fields() []string { + fields := make([]string, 0, 7) + if m.configuration_id != nil { + fields = append(fields, configuration.FieldConfigurationID) + } + if m.mnemonic != nil { + fields = append(fields, configuration.FieldMnemonic) + } + if m.platform_name != nil { + fields = append(fields, configuration.FieldPlatformName) + } + if m.cpu != nil { + fields = append(fields, configuration.FieldCPU) + } + if m.make_variables != nil { + fields = append(fields, configuration.FieldMakeVariables) + } + if m.is_tool != nil { + fields = append(fields, configuration.FieldIsTool) + } + if m.bazel_invocation != nil { + fields = append(fields, configuration.FieldBazelInvocationID) } return fields } @@ -13485,10 +13116,22 @@ func (m *ConnectionMetadataMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *ConnectionMetadataMutation) Field(name string) (ent.Value, bool) { +func (m *ConfigurationMutation) Field(name string) (ent.Value, bool) { switch name { - case connectionmetadata.FieldConnectionLastOpenAt: - return m.ConnectionLastOpenAt() + case configuration.FieldConfigurationID: + return m.ConfigurationID() + case configuration.FieldMnemonic: + return m.Mnemonic() + case configuration.FieldPlatformName: + return m.PlatformName() + case configuration.FieldCPU: + return m.CPU() + case configuration.FieldMakeVariables: + return m.MakeVariables() + case configuration.FieldIsTool: + return m.IsTool() + case configuration.FieldBazelInvocationID: + return m.BazelInvocationID() } return nil, false } @@ -13496,185 +13139,344 @@ func (m *ConnectionMetadataMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *ConnectionMetadataMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *ConfigurationMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case connectionmetadata.FieldConnectionLastOpenAt: - return m.OldConnectionLastOpenAt(ctx) + case configuration.FieldConfigurationID: + return m.OldConfigurationID(ctx) + case configuration.FieldMnemonic: + return m.OldMnemonic(ctx) + case configuration.FieldPlatformName: + return m.OldPlatformName(ctx) + case configuration.FieldCPU: + return m.OldCPU(ctx) + case configuration.FieldMakeVariables: + return m.OldMakeVariables(ctx) + case configuration.FieldIsTool: + return m.OldIsTool(ctx) + case configuration.FieldBazelInvocationID: + return m.OldBazelInvocationID(ctx) } - return nil, fmt.Errorf("unknown ConnectionMetadata field %s", name) + return nil, fmt.Errorf("unknown Configuration field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *ConnectionMetadataMutation) SetField(name string, value ent.Value) error { +func (m *ConfigurationMutation) SetField(name string, value ent.Value) error { switch name { - case connectionmetadata.FieldConnectionLastOpenAt: - v, ok := value.(time.Time) + case configuration.FieldConfigurationID: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetConfigurationID(v) + return nil + case configuration.FieldMnemonic: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetMnemonic(v) + return nil + case configuration.FieldPlatformName: + v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetConnectionLastOpenAt(v) + m.SetPlatformName(v) + return nil + case configuration.FieldCPU: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetCPU(v) + return nil + case configuration.FieldMakeVariables: + v, ok := value.(map[string]string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetMakeVariables(v) + return nil + case configuration.FieldIsTool: + v, ok := value.(bool) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetIsTool(v) + return nil + case configuration.FieldBazelInvocationID: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetBazelInvocationID(v) return nil } - return fmt.Errorf("unknown ConnectionMetadata field %s", name) + return fmt.Errorf("unknown Configuration field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *ConnectionMetadataMutation) AddedFields() []string { - return nil +func (m *ConfigurationMutation) AddedFields() []string { + var fields []string + return fields } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *ConnectionMetadataMutation) AddedField(name string) (ent.Value, bool) { +func (m *ConfigurationMutation) AddedField(name string) (ent.Value, bool) { + switch name { + } return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *ConnectionMetadataMutation) AddField(name string, value ent.Value) error { +func (m *ConfigurationMutation) AddField(name string, value ent.Value) error { switch name { } - return fmt.Errorf("unknown ConnectionMetadata numeric field %s", name) + return fmt.Errorf("unknown Configuration numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *ConnectionMetadataMutation) ClearedFields() []string { - return nil +func (m *ConfigurationMutation) ClearedFields() []string { + var fields []string + if m.FieldCleared(configuration.FieldMnemonic) { + fields = append(fields, configuration.FieldMnemonic) + } + if m.FieldCleared(configuration.FieldPlatformName) { + fields = append(fields, configuration.FieldPlatformName) + } + if m.FieldCleared(configuration.FieldCPU) { + fields = append(fields, configuration.FieldCPU) + } + if m.FieldCleared(configuration.FieldMakeVariables) { + fields = append(fields, configuration.FieldMakeVariables) + } + if m.FieldCleared(configuration.FieldIsTool) { + fields = append(fields, configuration.FieldIsTool) + } + return fields } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *ConnectionMetadataMutation) FieldCleared(name string) bool { +func (m *ConfigurationMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *ConnectionMetadataMutation) ClearField(name string) error { - return fmt.Errorf("unknown ConnectionMetadata nullable field %s", name) +func (m *ConfigurationMutation) ClearField(name string) error { + switch name { + case configuration.FieldMnemonic: + m.ClearMnemonic() + return nil + case configuration.FieldPlatformName: + m.ClearPlatformName() + return nil + case configuration.FieldCPU: + m.ClearCPU() + return nil + case configuration.FieldMakeVariables: + m.ClearMakeVariables() + return nil + case configuration.FieldIsTool: + m.ClearIsTool() + return nil + } + return fmt.Errorf("unknown Configuration nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *ConnectionMetadataMutation) ResetField(name string) error { +func (m *ConfigurationMutation) ResetField(name string) error { switch name { - case connectionmetadata.FieldConnectionLastOpenAt: - m.ResetConnectionLastOpenAt() + case configuration.FieldConfigurationID: + m.ResetConfigurationID() + return nil + case configuration.FieldMnemonic: + m.ResetMnemonic() + return nil + case configuration.FieldPlatformName: + m.ResetPlatformName() + return nil + case configuration.FieldCPU: + m.ResetCPU() + return nil + case configuration.FieldMakeVariables: + m.ResetMakeVariables() + return nil + case configuration.FieldIsTool: + m.ResetIsTool() + return nil + case configuration.FieldBazelInvocationID: + m.ResetBazelInvocationID() return nil } - return fmt.Errorf("unknown ConnectionMetadata field %s", name) + return fmt.Errorf("unknown Configuration field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *ConnectionMetadataMutation) AddedEdges() []string { - edges := make([]string, 0, 1) +func (m *ConfigurationMutation) AddedEdges() []string { + edges := make([]string, 0, 3) if m.bazel_invocation != nil { - edges = append(edges, connectionmetadata.EdgeBazelInvocation) + edges = append(edges, configuration.EdgeBazelInvocation) + } + if m.invocation_targets != nil { + edges = append(edges, configuration.EdgeInvocationTargets) + } + if m.actions != nil { + edges = append(edges, configuration.EdgeActions) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *ConnectionMetadataMutation) AddedIDs(name string) []ent.Value { +func (m *ConfigurationMutation) AddedIDs(name string) []ent.Value { switch name { - case connectionmetadata.EdgeBazelInvocation: + case configuration.EdgeBazelInvocation: if id := m.bazel_invocation; id != nil { return []ent.Value{*id} } + case configuration.EdgeInvocationTargets: + ids := make([]ent.Value, 0, len(m.invocation_targets)) + for id := range m.invocation_targets { + ids = append(ids, id) + } + return ids + case configuration.EdgeActions: + ids := make([]ent.Value, 0, len(m.actions)) + for id := range m.actions { + ids = append(ids, id) + } + return ids } return nil } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *ConnectionMetadataMutation) RemovedEdges() []string { - edges := make([]string, 0, 1) +func (m *ConfigurationMutation) RemovedEdges() []string { + edges := make([]string, 0, 3) + if m.removedinvocation_targets != nil { + edges = append(edges, configuration.EdgeInvocationTargets) + } + if m.removedactions != nil { + edges = append(edges, configuration.EdgeActions) + } return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *ConnectionMetadataMutation) RemovedIDs(name string) []ent.Value { +func (m *ConfigurationMutation) RemovedIDs(name string) []ent.Value { + switch name { + case configuration.EdgeInvocationTargets: + ids := make([]ent.Value, 0, len(m.removedinvocation_targets)) + for id := range m.removedinvocation_targets { + ids = append(ids, id) + } + return ids + case configuration.EdgeActions: + ids := make([]ent.Value, 0, len(m.removedactions)) + for id := range m.removedactions { + ids = append(ids, id) + } + return ids + } return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *ConnectionMetadataMutation) ClearedEdges() []string { - edges := make([]string, 0, 1) +func (m *ConfigurationMutation) ClearedEdges() []string { + edges := make([]string, 0, 3) if m.clearedbazel_invocation { - edges = append(edges, connectionmetadata.EdgeBazelInvocation) + edges = append(edges, configuration.EdgeBazelInvocation) + } + if m.clearedinvocation_targets { + edges = append(edges, configuration.EdgeInvocationTargets) + } + if m.clearedactions { + edges = append(edges, configuration.EdgeActions) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *ConnectionMetadataMutation) EdgeCleared(name string) bool { +func (m *ConfigurationMutation) EdgeCleared(name string) bool { switch name { - case connectionmetadata.EdgeBazelInvocation: + case configuration.EdgeBazelInvocation: return m.clearedbazel_invocation + case configuration.EdgeInvocationTargets: + return m.clearedinvocation_targets + case configuration.EdgeActions: + return m.clearedactions } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *ConnectionMetadataMutation) ClearEdge(name string) error { +func (m *ConfigurationMutation) ClearEdge(name string) error { switch name { - case connectionmetadata.EdgeBazelInvocation: + case configuration.EdgeBazelInvocation: m.ClearBazelInvocation() return nil } - return fmt.Errorf("unknown ConnectionMetadata unique edge %s", name) + return fmt.Errorf("unknown Configuration unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *ConnectionMetadataMutation) ResetEdge(name string) error { +func (m *ConfigurationMutation) ResetEdge(name string) error { switch name { - case connectionmetadata.EdgeBazelInvocation: + case configuration.EdgeBazelInvocation: m.ResetBazelInvocation() return nil + case configuration.EdgeInvocationTargets: + m.ResetInvocationTargets() + return nil + case configuration.EdgeActions: + m.ResetActions() + return nil } - return fmt.Errorf("unknown ConnectionMetadata edge %s", name) + return fmt.Errorf("unknown Configuration edge %s", name) } -// EventMetadataMutation represents an operation that mutates the EventMetadata nodes in the graph. -type EventMetadataMutation struct { +// ConnectionMetadataMutation represents an operation that mutates the ConnectionMetadata nodes in the graph. +type ConnectionMetadataMutation struct { config op Op typ string id *int64 - handled *[]byte - event_received_at *time.Time - version *int64 - addversion *int64 + connection_last_open_at *time.Time clearedFields map[string]struct{} bazel_invocation *int64 clearedbazel_invocation bool done bool - oldValue func(context.Context) (*EventMetadata, error) - predicates []predicate.EventMetadata + oldValue func(context.Context) (*ConnectionMetadata, error) + predicates []predicate.ConnectionMetadata } -var _ ent.Mutation = (*EventMetadataMutation)(nil) +var _ ent.Mutation = (*ConnectionMetadataMutation)(nil) -// eventmetadataOption allows management of the mutation configuration using functional options. -type eventmetadataOption func(*EventMetadataMutation) +// connectionmetadataOption allows management of the mutation configuration using functional options. +type connectionmetadataOption func(*ConnectionMetadataMutation) -// newEventMetadataMutation creates new mutation for the EventMetadata entity. -func newEventMetadataMutation(c config, op Op, opts ...eventmetadataOption) *EventMetadataMutation { - m := &EventMetadataMutation{ +// newConnectionMetadataMutation creates new mutation for the ConnectionMetadata entity. +func newConnectionMetadataMutation(c config, op Op, opts ...connectionmetadataOption) *ConnectionMetadataMutation { + m := &ConnectionMetadataMutation{ config: c, op: op, - typ: TypeEventMetadata, + typ: TypeConnectionMetadata, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -13683,20 +13485,20 @@ func newEventMetadataMutation(c config, op Op, opts ...eventmetadataOption) *Eve return m } -// withEventMetadataID sets the ID field of the mutation. -func withEventMetadataID(id int64) eventmetadataOption { - return func(m *EventMetadataMutation) { +// withConnectionMetadataID sets the ID field of the mutation. +func withConnectionMetadataID(id int64) connectionmetadataOption { + return func(m *ConnectionMetadataMutation) { var ( err error once sync.Once - value *EventMetadata + value *ConnectionMetadata ) - m.oldValue = func(ctx context.Context) (*EventMetadata, error) { + m.oldValue = func(ctx context.Context) (*ConnectionMetadata, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().EventMetadata.Get(ctx, id) + value, err = m.Client().ConnectionMetadata.Get(ctx, id) } }) return value, err @@ -13705,10 +13507,10 @@ func withEventMetadataID(id int64) eventmetadataOption { } } -// withEventMetadata sets the old EventMetadata of the mutation. -func withEventMetadata(node *EventMetadata) eventmetadataOption { - return func(m *EventMetadataMutation) { - m.oldValue = func(context.Context) (*EventMetadata, error) { +// withConnectionMetadata sets the old ConnectionMetadata of the mutation. +func withConnectionMetadata(node *ConnectionMetadata) connectionmetadataOption { + return func(m *ConnectionMetadataMutation) { + m.oldValue = func(context.Context) (*ConnectionMetadata, error) { return node, nil } m.id = &node.ID @@ -13717,7 +13519,7 @@ func withEventMetadata(node *EventMetadata) eventmetadataOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m EventMetadataMutation) Client() *Client { +func (m ConnectionMetadataMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -13725,7 +13527,7 @@ func (m EventMetadataMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m EventMetadataMutation) Tx() (*Tx, error) { +func (m ConnectionMetadataMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -13735,14 +13537,14 @@ func (m EventMetadataMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of EventMetadata entities. -func (m *EventMetadataMutation) SetID(id int64) { +// operation is only accepted on creation of ConnectionMetadata entities. +func (m *ConnectionMetadataMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *EventMetadataMutation) ID() (id int64, exists bool) { +func (m *ConnectionMetadataMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -13753,7 +13555,7 @@ func (m *EventMetadataMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *EventMetadataMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *ConnectionMetadataMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -13762,191 +13564,75 @@ func (m *EventMetadataMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().EventMetadata.Query().Where(m.predicates...).IDs(ctx) + return m.Client().ConnectionMetadata.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetHandled sets the "handled" field. -func (m *EventMetadataMutation) SetHandled(b []byte) { - m.handled = &b -} - -// Handled returns the value of the "handled" field in the mutation. -func (m *EventMetadataMutation) Handled() (r []byte, exists bool) { - v := m.handled - if v == nil { - return - } - return *v, true -} - -// OldHandled returns the old "handled" field's value of the EventMetadata entity. -// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *EventMetadataMutation) OldHandled(ctx context.Context) (v []byte, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldHandled is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldHandled requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldHandled: %w", err) - } - return oldValue.Handled, nil -} - -// ResetHandled resets all changes to the "handled" field. -func (m *EventMetadataMutation) ResetHandled() { - m.handled = nil -} - -// SetEventReceivedAt sets the "event_received_at" field. -func (m *EventMetadataMutation) SetEventReceivedAt(t time.Time) { - m.event_received_at = &t -} - -// EventReceivedAt returns the value of the "event_received_at" field in the mutation. -func (m *EventMetadataMutation) EventReceivedAt() (r time.Time, exists bool) { - v := m.event_received_at - if v == nil { - return - } - return *v, true -} - -// OldEventReceivedAt returns the old "event_received_at" field's value of the EventMetadata entity. -// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *EventMetadataMutation) OldEventReceivedAt(ctx context.Context) (v time.Time, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldEventReceivedAt is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldEventReceivedAt requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldEventReceivedAt: %w", err) - } - return oldValue.EventReceivedAt, nil -} - -// ResetEventReceivedAt resets all changes to the "event_received_at" field. -func (m *EventMetadataMutation) ResetEventReceivedAt() { - m.event_received_at = nil -} - -// SetVersion sets the "version" field. -func (m *EventMetadataMutation) SetVersion(i int64) { - m.version = &i - m.addversion = nil +// SetConnectionLastOpenAt sets the "connection_last_open_at" field. +func (m *ConnectionMetadataMutation) SetConnectionLastOpenAt(t time.Time) { + m.connection_last_open_at = &t } -// Version returns the value of the "version" field in the mutation. -func (m *EventMetadataMutation) Version() (r int64, exists bool) { - v := m.version +// ConnectionLastOpenAt returns the value of the "connection_last_open_at" field in the mutation. +func (m *ConnectionMetadataMutation) ConnectionLastOpenAt() (r time.Time, exists bool) { + v := m.connection_last_open_at if v == nil { return } return *v, true } -// OldVersion returns the old "version" field's value of the EventMetadata entity. -// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. +// OldConnectionLastOpenAt returns the old "connection_last_open_at" field's value of the ConnectionMetadata entity. +// If the ConnectionMetadata object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *EventMetadataMutation) OldVersion(ctx context.Context) (v int64, err error) { +func (m *ConnectionMetadataMutation) OldConnectionLastOpenAt(ctx context.Context) (v time.Time, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldVersion is only allowed on UpdateOne operations") + return v, errors.New("OldConnectionLastOpenAt is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldVersion requires an ID field in the mutation") + return v, errors.New("OldConnectionLastOpenAt requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldVersion: %w", err) - } - return oldValue.Version, nil -} - -// AddVersion adds i to the "version" field. -func (m *EventMetadataMutation) AddVersion(i int64) { - if m.addversion != nil { - *m.addversion += i - } else { - m.addversion = &i - } -} - -// AddedVersion returns the value that was added to the "version" field in this mutation. -func (m *EventMetadataMutation) AddedVersion() (r int64, exists bool) { - v := m.addversion - if v == nil { - return - } - return *v, true -} - -// ResetVersion resets all changes to the "version" field. -func (m *EventMetadataMutation) ResetVersion() { - m.version = nil - m.addversion = nil -} - -// SetBazelInvocationID sets the "bazel_invocation_id" field. -func (m *EventMetadataMutation) SetBazelInvocationID(i int64) { - m.bazel_invocation = &i -} - -// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. -func (m *EventMetadataMutation) BazelInvocationID() (r int64, exists bool) { - v := m.bazel_invocation - if v == nil { - return + return v, fmt.Errorf("querying old value for OldConnectionLastOpenAt: %w", err) } - return *v, true + return oldValue.ConnectionLastOpenAt, nil } -// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the EventMetadata entity. -// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *EventMetadataMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) - } - return oldValue.BazelInvocationID, nil +// ResetConnectionLastOpenAt resets all changes to the "connection_last_open_at" field. +func (m *ConnectionMetadataMutation) ResetConnectionLastOpenAt() { + m.connection_last_open_at = nil } -// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. -func (m *EventMetadataMutation) ResetBazelInvocationID() { - m.bazel_invocation = nil +// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. +func (m *ConnectionMetadataMutation) SetBazelInvocationID(id int64) { + m.bazel_invocation = &id } // ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *EventMetadataMutation) ClearBazelInvocation() { +func (m *ConnectionMetadataMutation) ClearBazelInvocation() { m.clearedbazel_invocation = true - m.clearedFields[eventmetadata.FieldBazelInvocationID] = struct{}{} } // BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *EventMetadataMutation) BazelInvocationCleared() bool { +func (m *ConnectionMetadataMutation) BazelInvocationCleared() bool { return m.clearedbazel_invocation } +// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. +func (m *ConnectionMetadataMutation) BazelInvocationID() (id int64, exists bool) { + if m.bazel_invocation != nil { + return *m.bazel_invocation, true + } + return +} + // BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use // BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *EventMetadataMutation) BazelInvocationIDs() (ids []int64) { +func (m *ConnectionMetadataMutation) BazelInvocationIDs() (ids []int64) { if id := m.bazel_invocation; id != nil { ids = append(ids, *id) } @@ -13954,20 +13640,20 @@ func (m *EventMetadataMutation) BazelInvocationIDs() (ids []int64) { } // ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *EventMetadataMutation) ResetBazelInvocation() { +func (m *ConnectionMetadataMutation) ResetBazelInvocation() { m.bazel_invocation = nil m.clearedbazel_invocation = false } -// Where appends a list predicates to the EventMetadataMutation builder. -func (m *EventMetadataMutation) Where(ps ...predicate.EventMetadata) { +// Where appends a list predicates to the ConnectionMetadataMutation builder. +func (m *ConnectionMetadataMutation) Where(ps ...predicate.ConnectionMetadata) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the EventMetadataMutation builder. Using this method, +// WhereP appends storage-level predicates to the ConnectionMetadataMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *EventMetadataMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.EventMetadata, len(ps)) +func (m *ConnectionMetadataMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.ConnectionMetadata, len(ps)) for i := range ps { p[i] = ps[i] } @@ -13975,36 +13661,27 @@ func (m *EventMetadataMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *EventMetadataMutation) Op() Op { +func (m *ConnectionMetadataMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *EventMetadataMutation) SetOp(op Op) { +func (m *ConnectionMetadataMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (EventMetadata). -func (m *EventMetadataMutation) Type() string { +// Type returns the node type of this mutation (ConnectionMetadata). +func (m *ConnectionMetadataMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *EventMetadataMutation) Fields() []string { - fields := make([]string, 0, 4) - if m.handled != nil { - fields = append(fields, eventmetadata.FieldHandled) - } - if m.event_received_at != nil { - fields = append(fields, eventmetadata.FieldEventReceivedAt) - } - if m.version != nil { - fields = append(fields, eventmetadata.FieldVersion) - } - if m.bazel_invocation != nil { - fields = append(fields, eventmetadata.FieldBazelInvocationID) +func (m *ConnectionMetadataMutation) Fields() []string { + fields := make([]string, 0, 1) + if m.connection_last_open_at != nil { + fields = append(fields, connectionmetadata.FieldConnectionLastOpenAt) } return fields } @@ -14012,16 +13689,10 @@ func (m *EventMetadataMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *EventMetadataMutation) Field(name string) (ent.Value, bool) { +func (m *ConnectionMetadataMutation) Field(name string) (ent.Value, bool) { switch name { - case eventmetadata.FieldHandled: - return m.Handled() - case eventmetadata.FieldEventReceivedAt: - return m.EventReceivedAt() - case eventmetadata.FieldVersion: - return m.Version() - case eventmetadata.FieldBazelInvocationID: - return m.BazelInvocationID() + case connectionmetadata.FieldConnectionLastOpenAt: + return m.ConnectionLastOpenAt() } return nil, false } @@ -14029,147 +13700,96 @@ func (m *EventMetadataMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *EventMetadataMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *ConnectionMetadataMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case eventmetadata.FieldHandled: - return m.OldHandled(ctx) - case eventmetadata.FieldEventReceivedAt: - return m.OldEventReceivedAt(ctx) - case eventmetadata.FieldVersion: - return m.OldVersion(ctx) - case eventmetadata.FieldBazelInvocationID: - return m.OldBazelInvocationID(ctx) + case connectionmetadata.FieldConnectionLastOpenAt: + return m.OldConnectionLastOpenAt(ctx) } - return nil, fmt.Errorf("unknown EventMetadata field %s", name) + return nil, fmt.Errorf("unknown ConnectionMetadata field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *EventMetadataMutation) SetField(name string, value ent.Value) error { +func (m *ConnectionMetadataMutation) SetField(name string, value ent.Value) error { switch name { - case eventmetadata.FieldHandled: - v, ok := value.([]byte) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetHandled(v) - return nil - case eventmetadata.FieldEventReceivedAt: + case connectionmetadata.FieldConnectionLastOpenAt: v, ok := value.(time.Time) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetEventReceivedAt(v) - return nil - case eventmetadata.FieldVersion: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetVersion(v) - return nil - case eventmetadata.FieldBazelInvocationID: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetBazelInvocationID(v) + m.SetConnectionLastOpenAt(v) return nil } - return fmt.Errorf("unknown EventMetadata field %s", name) + return fmt.Errorf("unknown ConnectionMetadata field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *EventMetadataMutation) AddedFields() []string { - var fields []string - if m.addversion != nil { - fields = append(fields, eventmetadata.FieldVersion) - } - return fields +func (m *ConnectionMetadataMutation) AddedFields() []string { + return nil } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *EventMetadataMutation) AddedField(name string) (ent.Value, bool) { - switch name { - case eventmetadata.FieldVersion: - return m.AddedVersion() - } +func (m *ConnectionMetadataMutation) AddedField(name string) (ent.Value, bool) { return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *EventMetadataMutation) AddField(name string, value ent.Value) error { +func (m *ConnectionMetadataMutation) AddField(name string, value ent.Value) error { switch name { - case eventmetadata.FieldVersion: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddVersion(v) - return nil } - return fmt.Errorf("unknown EventMetadata numeric field %s", name) + return fmt.Errorf("unknown ConnectionMetadata numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *EventMetadataMutation) ClearedFields() []string { +func (m *ConnectionMetadataMutation) ClearedFields() []string { return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *EventMetadataMutation) FieldCleared(name string) bool { +func (m *ConnectionMetadataMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *EventMetadataMutation) ClearField(name string) error { - return fmt.Errorf("unknown EventMetadata nullable field %s", name) +func (m *ConnectionMetadataMutation) ClearField(name string) error { + return fmt.Errorf("unknown ConnectionMetadata nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *EventMetadataMutation) ResetField(name string) error { +func (m *ConnectionMetadataMutation) ResetField(name string) error { switch name { - case eventmetadata.FieldHandled: - m.ResetHandled() - return nil - case eventmetadata.FieldEventReceivedAt: - m.ResetEventReceivedAt() - return nil - case eventmetadata.FieldVersion: - m.ResetVersion() - return nil - case eventmetadata.FieldBazelInvocationID: - m.ResetBazelInvocationID() + case connectionmetadata.FieldConnectionLastOpenAt: + m.ResetConnectionLastOpenAt() return nil } - return fmt.Errorf("unknown EventMetadata field %s", name) + return fmt.Errorf("unknown ConnectionMetadata field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *EventMetadataMutation) AddedEdges() []string { +func (m *ConnectionMetadataMutation) AddedEdges() []string { edges := make([]string, 0, 1) if m.bazel_invocation != nil { - edges = append(edges, eventmetadata.EdgeBazelInvocation) + edges = append(edges, connectionmetadata.EdgeBazelInvocation) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *EventMetadataMutation) AddedIDs(name string) []ent.Value { +func (m *ConnectionMetadataMutation) AddedIDs(name string) []ent.Value { switch name { - case eventmetadata.EdgeBazelInvocation: + case connectionmetadata.EdgeBazelInvocation: if id := m.bazel_invocation; id != nil { return []ent.Value{*id} } @@ -14178,31 +13798,31 @@ func (m *EventMetadataMutation) AddedIDs(name string) []ent.Value { } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *EventMetadataMutation) RemovedEdges() []string { +func (m *ConnectionMetadataMutation) RemovedEdges() []string { edges := make([]string, 0, 1) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *EventMetadataMutation) RemovedIDs(name string) []ent.Value { +func (m *ConnectionMetadataMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *EventMetadataMutation) ClearedEdges() []string { +func (m *ConnectionMetadataMutation) ClearedEdges() []string { edges := make([]string, 0, 1) if m.clearedbazel_invocation { - edges = append(edges, eventmetadata.EdgeBazelInvocation) + edges = append(edges, connectionmetadata.EdgeBazelInvocation) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *EventMetadataMutation) EdgeCleared(name string) bool { +func (m *ConnectionMetadataMutation) EdgeCleared(name string) bool { switch name { - case eventmetadata.EdgeBazelInvocation: + case connectionmetadata.EdgeBazelInvocation: return m.clearedbazel_invocation } return false @@ -14210,54 +13830,55 @@ func (m *EventMetadataMutation) EdgeCleared(name string) bool { // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *EventMetadataMutation) ClearEdge(name string) error { +func (m *ConnectionMetadataMutation) ClearEdge(name string) error { switch name { - case eventmetadata.EdgeBazelInvocation: + case connectionmetadata.EdgeBazelInvocation: m.ClearBazelInvocation() return nil } - return fmt.Errorf("unknown EventMetadata unique edge %s", name) + return fmt.Errorf("unknown ConnectionMetadata unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *EventMetadataMutation) ResetEdge(name string) error { +func (m *ConnectionMetadataMutation) ResetEdge(name string) error { switch name { - case eventmetadata.EdgeBazelInvocation: + case connectionmetadata.EdgeBazelInvocation: m.ResetBazelInvocation() return nil } - return fmt.Errorf("unknown EventMetadata edge %s", name) + return fmt.Errorf("unknown ConnectionMetadata edge %s", name) } -// GarbageMetricsMutation represents an operation that mutates the GarbageMetrics nodes in the graph. -type GarbageMetricsMutation struct { +// EventMetadataMutation represents an operation that mutates the EventMetadata nodes in the graph. +type EventMetadataMutation struct { config - op Op - typ string - id *int64 - _type *string - garbage_collected *int64 - addgarbage_collected *int64 - clearedFields map[string]struct{} - memory_metrics *int64 - clearedmemory_metrics bool - done bool - oldValue func(context.Context) (*GarbageMetrics, error) - predicates []predicate.GarbageMetrics + op Op + typ string + id *int64 + handled *[]byte + event_received_at *time.Time + version *int64 + addversion *int64 + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + done bool + oldValue func(context.Context) (*EventMetadata, error) + predicates []predicate.EventMetadata } -var _ ent.Mutation = (*GarbageMetricsMutation)(nil) +var _ ent.Mutation = (*EventMetadataMutation)(nil) -// garbagemetricsOption allows management of the mutation configuration using functional options. -type garbagemetricsOption func(*GarbageMetricsMutation) +// eventmetadataOption allows management of the mutation configuration using functional options. +type eventmetadataOption func(*EventMetadataMutation) -// newGarbageMetricsMutation creates new mutation for the GarbageMetrics entity. -func newGarbageMetricsMutation(c config, op Op, opts ...garbagemetricsOption) *GarbageMetricsMutation { - m := &GarbageMetricsMutation{ +// newEventMetadataMutation creates new mutation for the EventMetadata entity. +func newEventMetadataMutation(c config, op Op, opts ...eventmetadataOption) *EventMetadataMutation { + m := &EventMetadataMutation{ config: c, op: op, - typ: TypeGarbageMetrics, + typ: TypeEventMetadata, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -14266,20 +13887,20 @@ func newGarbageMetricsMutation(c config, op Op, opts ...garbagemetricsOption) *G return m } -// withGarbageMetricsID sets the ID field of the mutation. -func withGarbageMetricsID(id int64) garbagemetricsOption { - return func(m *GarbageMetricsMutation) { +// withEventMetadataID sets the ID field of the mutation. +func withEventMetadataID(id int64) eventmetadataOption { + return func(m *EventMetadataMutation) { var ( err error once sync.Once - value *GarbageMetrics + value *EventMetadata ) - m.oldValue = func(ctx context.Context) (*GarbageMetrics, error) { + m.oldValue = func(ctx context.Context) (*EventMetadata, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().GarbageMetrics.Get(ctx, id) + value, err = m.Client().EventMetadata.Get(ctx, id) } }) return value, err @@ -14288,10 +13909,10 @@ func withGarbageMetricsID(id int64) garbagemetricsOption { } } -// withGarbageMetrics sets the old GarbageMetrics of the mutation. -func withGarbageMetrics(node *GarbageMetrics) garbagemetricsOption { - return func(m *GarbageMetricsMutation) { - m.oldValue = func(context.Context) (*GarbageMetrics, error) { +// withEventMetadata sets the old EventMetadata of the mutation. +func withEventMetadata(node *EventMetadata) eventmetadataOption { + return func(m *EventMetadataMutation) { + m.oldValue = func(context.Context) (*EventMetadata, error) { return node, nil } m.id = &node.ID @@ -14300,7 +13921,7 @@ func withGarbageMetrics(node *GarbageMetrics) garbagemetricsOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m GarbageMetricsMutation) Client() *Client { +func (m EventMetadataMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -14308,7 +13929,7 @@ func (m GarbageMetricsMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m GarbageMetricsMutation) Tx() (*Tx, error) { +func (m EventMetadataMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -14318,14 +13939,14 @@ func (m GarbageMetricsMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of GarbageMetrics entities. -func (m *GarbageMetricsMutation) SetID(id int64) { +// operation is only accepted on creation of EventMetadata entities. +func (m *EventMetadataMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *GarbageMetricsMutation) ID() (id int64, exists bool) { +func (m *EventMetadataMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -14336,7 +13957,7 @@ func (m *GarbageMetricsMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *GarbageMetricsMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *EventMetadataMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -14345,179 +13966,212 @@ func (m *GarbageMetricsMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().GarbageMetrics.Query().Where(m.predicates...).IDs(ctx) + return m.Client().EventMetadata.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetType sets the "type" field. -func (m *GarbageMetricsMutation) SetType(s string) { - m._type = &s +// SetHandled sets the "handled" field. +func (m *EventMetadataMutation) SetHandled(b []byte) { + m.handled = &b } -// GetType returns the value of the "type" field in the mutation. -func (m *GarbageMetricsMutation) GetType() (r string, exists bool) { - v := m._type +// Handled returns the value of the "handled" field in the mutation. +func (m *EventMetadataMutation) Handled() (r []byte, exists bool) { + v := m.handled if v == nil { return } return *v, true } -// OldType returns the old "type" field's value of the GarbageMetrics entity. -// If the GarbageMetrics object wasn't provided to the builder, the object is fetched from the database. +// OldHandled returns the old "handled" field's value of the EventMetadata entity. +// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *GarbageMetricsMutation) OldType(ctx context.Context) (v string, err error) { +func (m *EventMetadataMutation) OldHandled(ctx context.Context) (v []byte, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldType is only allowed on UpdateOne operations") + return v, errors.New("OldHandled is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldType requires an ID field in the mutation") + return v, errors.New("OldHandled requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldType: %w", err) + return v, fmt.Errorf("querying old value for OldHandled: %w", err) } - return oldValue.Type, nil + return oldValue.Handled, nil } -// ClearType clears the value of the "type" field. -func (m *GarbageMetricsMutation) ClearType() { - m._type = nil - m.clearedFields[garbagemetrics.FieldType] = struct{}{} +// ResetHandled resets all changes to the "handled" field. +func (m *EventMetadataMutation) ResetHandled() { + m.handled = nil } -// TypeCleared returns if the "type" field was cleared in this mutation. -func (m *GarbageMetricsMutation) TypeCleared() bool { - _, ok := m.clearedFields[garbagemetrics.FieldType] - return ok +// SetEventReceivedAt sets the "event_received_at" field. +func (m *EventMetadataMutation) SetEventReceivedAt(t time.Time) { + m.event_received_at = &t } -// ResetType resets all changes to the "type" field. -func (m *GarbageMetricsMutation) ResetType() { - m._type = nil - delete(m.clearedFields, garbagemetrics.FieldType) +// EventReceivedAt returns the value of the "event_received_at" field in the mutation. +func (m *EventMetadataMutation) EventReceivedAt() (r time.Time, exists bool) { + v := m.event_received_at + if v == nil { + return + } + return *v, true +} + +// OldEventReceivedAt returns the old "event_received_at" field's value of the EventMetadata entity. +// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *EventMetadataMutation) OldEventReceivedAt(ctx context.Context) (v time.Time, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldEventReceivedAt is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldEventReceivedAt requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldEventReceivedAt: %w", err) + } + return oldValue.EventReceivedAt, nil +} + +// ResetEventReceivedAt resets all changes to the "event_received_at" field. +func (m *EventMetadataMutation) ResetEventReceivedAt() { + m.event_received_at = nil } -// SetGarbageCollected sets the "garbage_collected" field. -func (m *GarbageMetricsMutation) SetGarbageCollected(i int64) { - m.garbage_collected = &i - m.addgarbage_collected = nil +// SetVersion sets the "version" field. +func (m *EventMetadataMutation) SetVersion(i int64) { + m.version = &i + m.addversion = nil } -// GarbageCollected returns the value of the "garbage_collected" field in the mutation. -func (m *GarbageMetricsMutation) GarbageCollected() (r int64, exists bool) { - v := m.garbage_collected +// Version returns the value of the "version" field in the mutation. +func (m *EventMetadataMutation) Version() (r int64, exists bool) { + v := m.version if v == nil { return } return *v, true } -// OldGarbageCollected returns the old "garbage_collected" field's value of the GarbageMetrics entity. -// If the GarbageMetrics object wasn't provided to the builder, the object is fetched from the database. +// OldVersion returns the old "version" field's value of the EventMetadata entity. +// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *GarbageMetricsMutation) OldGarbageCollected(ctx context.Context) (v int64, err error) { +func (m *EventMetadataMutation) OldVersion(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldGarbageCollected is only allowed on UpdateOne operations") + return v, errors.New("OldVersion is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldGarbageCollected requires an ID field in the mutation") + return v, errors.New("OldVersion requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldGarbageCollected: %w", err) + return v, fmt.Errorf("querying old value for OldVersion: %w", err) } - return oldValue.GarbageCollected, nil + return oldValue.Version, nil } -// AddGarbageCollected adds i to the "garbage_collected" field. -func (m *GarbageMetricsMutation) AddGarbageCollected(i int64) { - if m.addgarbage_collected != nil { - *m.addgarbage_collected += i +// AddVersion adds i to the "version" field. +func (m *EventMetadataMutation) AddVersion(i int64) { + if m.addversion != nil { + *m.addversion += i } else { - m.addgarbage_collected = &i + m.addversion = &i } } -// AddedGarbageCollected returns the value that was added to the "garbage_collected" field in this mutation. -func (m *GarbageMetricsMutation) AddedGarbageCollected() (r int64, exists bool) { - v := m.addgarbage_collected +// AddedVersion returns the value that was added to the "version" field in this mutation. +func (m *EventMetadataMutation) AddedVersion() (r int64, exists bool) { + v := m.addversion if v == nil { return } return *v, true } -// ClearGarbageCollected clears the value of the "garbage_collected" field. -func (m *GarbageMetricsMutation) ClearGarbageCollected() { - m.garbage_collected = nil - m.addgarbage_collected = nil - m.clearedFields[garbagemetrics.FieldGarbageCollected] = struct{}{} +// ResetVersion resets all changes to the "version" field. +func (m *EventMetadataMutation) ResetVersion() { + m.version = nil + m.addversion = nil } -// GarbageCollectedCleared returns if the "garbage_collected" field was cleared in this mutation. -func (m *GarbageMetricsMutation) GarbageCollectedCleared() bool { - _, ok := m.clearedFields[garbagemetrics.FieldGarbageCollected] - return ok +// SetBazelInvocationID sets the "bazel_invocation_id" field. +func (m *EventMetadataMutation) SetBazelInvocationID(i int64) { + m.bazel_invocation = &i } -// ResetGarbageCollected resets all changes to the "garbage_collected" field. -func (m *GarbageMetricsMutation) ResetGarbageCollected() { - m.garbage_collected = nil - m.addgarbage_collected = nil - delete(m.clearedFields, garbagemetrics.FieldGarbageCollected) +// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. +func (m *EventMetadataMutation) BazelInvocationID() (r int64, exists bool) { + v := m.bazel_invocation + if v == nil { + return + } + return *v, true } -// SetMemoryMetricsID sets the "memory_metrics" edge to the MemoryMetrics entity by id. -func (m *GarbageMetricsMutation) SetMemoryMetricsID(id int64) { - m.memory_metrics = &id +// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the EventMetadata entity. +// If the EventMetadata object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *EventMetadataMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) + } + return oldValue.BazelInvocationID, nil } -// ClearMemoryMetrics clears the "memory_metrics" edge to the MemoryMetrics entity. -func (m *GarbageMetricsMutation) ClearMemoryMetrics() { - m.clearedmemory_metrics = true +// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. +func (m *EventMetadataMutation) ResetBazelInvocationID() { + m.bazel_invocation = nil } -// MemoryMetricsCleared reports if the "memory_metrics" edge to the MemoryMetrics entity was cleared. -func (m *GarbageMetricsMutation) MemoryMetricsCleared() bool { - return m.clearedmemory_metrics +// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. +func (m *EventMetadataMutation) ClearBazelInvocation() { + m.clearedbazel_invocation = true + m.clearedFields[eventmetadata.FieldBazelInvocationID] = struct{}{} } -// MemoryMetricsID returns the "memory_metrics" edge ID in the mutation. -func (m *GarbageMetricsMutation) MemoryMetricsID() (id int64, exists bool) { - if m.memory_metrics != nil { - return *m.memory_metrics, true - } - return +// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. +func (m *EventMetadataMutation) BazelInvocationCleared() bool { + return m.clearedbazel_invocation } -// MemoryMetricsIDs returns the "memory_metrics" edge IDs in the mutation. +// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// MemoryMetricsID instead. It exists only for internal usage by the builders. -func (m *GarbageMetricsMutation) MemoryMetricsIDs() (ids []int64) { - if id := m.memory_metrics; id != nil { +// BazelInvocationID instead. It exists only for internal usage by the builders. +func (m *EventMetadataMutation) BazelInvocationIDs() (ids []int64) { + if id := m.bazel_invocation; id != nil { ids = append(ids, *id) } return } -// ResetMemoryMetrics resets all changes to the "memory_metrics" edge. -func (m *GarbageMetricsMutation) ResetMemoryMetrics() { - m.memory_metrics = nil - m.clearedmemory_metrics = false +// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. +func (m *EventMetadataMutation) ResetBazelInvocation() { + m.bazel_invocation = nil + m.clearedbazel_invocation = false } -// Where appends a list predicates to the GarbageMetricsMutation builder. -func (m *GarbageMetricsMutation) Where(ps ...predicate.GarbageMetrics) { +// Where appends a list predicates to the EventMetadataMutation builder. +func (m *EventMetadataMutation) Where(ps ...predicate.EventMetadata) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the GarbageMetricsMutation builder. Using this method, +// WhereP appends storage-level predicates to the EventMetadataMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *GarbageMetricsMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.GarbageMetrics, len(ps)) +func (m *EventMetadataMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.EventMetadata, len(ps)) for i := range ps { p[i] = ps[i] } @@ -14525,30 +14179,36 @@ func (m *GarbageMetricsMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *GarbageMetricsMutation) Op() Op { +func (m *EventMetadataMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *GarbageMetricsMutation) SetOp(op Op) { +func (m *EventMetadataMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (GarbageMetrics). -func (m *GarbageMetricsMutation) Type() string { +// Type returns the node type of this mutation (EventMetadata). +func (m *EventMetadataMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *GarbageMetricsMutation) Fields() []string { - fields := make([]string, 0, 2) - if m._type != nil { - fields = append(fields, garbagemetrics.FieldType) +func (m *EventMetadataMutation) Fields() []string { + fields := make([]string, 0, 4) + if m.handled != nil { + fields = append(fields, eventmetadata.FieldHandled) } - if m.garbage_collected != nil { - fields = append(fields, garbagemetrics.FieldGarbageCollected) + if m.event_received_at != nil { + fields = append(fields, eventmetadata.FieldEventReceivedAt) + } + if m.version != nil { + fields = append(fields, eventmetadata.FieldVersion) + } + if m.bazel_invocation != nil { + fields = append(fields, eventmetadata.FieldBazelInvocationID) } return fields } @@ -14556,12 +14216,16 @@ func (m *GarbageMetricsMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *GarbageMetricsMutation) Field(name string) (ent.Value, bool) { +func (m *EventMetadataMutation) Field(name string) (ent.Value, bool) { switch name { - case garbagemetrics.FieldType: - return m.GetType() - case garbagemetrics.FieldGarbageCollected: - return m.GarbageCollected() + case eventmetadata.FieldHandled: + return m.Handled() + case eventmetadata.FieldEventReceivedAt: + return m.EventReceivedAt() + case eventmetadata.FieldVersion: + return m.Version() + case eventmetadata.FieldBazelInvocationID: + return m.BazelInvocationID() } return nil, false } @@ -14569,45 +14233,63 @@ func (m *GarbageMetricsMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *GarbageMetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *EventMetadataMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case garbagemetrics.FieldType: - return m.OldType(ctx) - case garbagemetrics.FieldGarbageCollected: - return m.OldGarbageCollected(ctx) + case eventmetadata.FieldHandled: + return m.OldHandled(ctx) + case eventmetadata.FieldEventReceivedAt: + return m.OldEventReceivedAt(ctx) + case eventmetadata.FieldVersion: + return m.OldVersion(ctx) + case eventmetadata.FieldBazelInvocationID: + return m.OldBazelInvocationID(ctx) } - return nil, fmt.Errorf("unknown GarbageMetrics field %s", name) + return nil, fmt.Errorf("unknown EventMetadata field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *GarbageMetricsMutation) SetField(name string, value ent.Value) error { +func (m *EventMetadataMutation) SetField(name string, value ent.Value) error { switch name { - case garbagemetrics.FieldType: - v, ok := value.(string) + case eventmetadata.FieldHandled: + v, ok := value.([]byte) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetType(v) + m.SetHandled(v) return nil - case garbagemetrics.FieldGarbageCollected: + case eventmetadata.FieldEventReceivedAt: + v, ok := value.(time.Time) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetEventReceivedAt(v) + return nil + case eventmetadata.FieldVersion: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetGarbageCollected(v) + m.SetVersion(v) + return nil + case eventmetadata.FieldBazelInvocationID: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetBazelInvocationID(v) return nil } - return fmt.Errorf("unknown GarbageMetrics field %s", name) + return fmt.Errorf("unknown EventMetadata field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *GarbageMetricsMutation) AddedFields() []string { +func (m *EventMetadataMutation) AddedFields() []string { var fields []string - if m.addgarbage_collected != nil { - fields = append(fields, garbagemetrics.FieldGarbageCollected) + if m.addversion != nil { + fields = append(fields, eventmetadata.FieldVersion) } return fields } @@ -14615,10 +14297,10 @@ func (m *GarbageMetricsMutation) AddedFields() []string { // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *GarbageMetricsMutation) AddedField(name string) (ent.Value, bool) { +func (m *EventMetadataMutation) AddedField(name string) (ent.Value, bool) { switch name { - case garbagemetrics.FieldGarbageCollected: - return m.AddedGarbageCollected() + case eventmetadata.FieldVersion: + return m.AddedVersion() } return nil, false } @@ -14626,82 +14308,73 @@ func (m *GarbageMetricsMutation) AddedField(name string) (ent.Value, bool) { // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *GarbageMetricsMutation) AddField(name string, value ent.Value) error { +func (m *EventMetadataMutation) AddField(name string, value ent.Value) error { switch name { - case garbagemetrics.FieldGarbageCollected: + case eventmetadata.FieldVersion: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.AddGarbageCollected(v) + m.AddVersion(v) return nil } - return fmt.Errorf("unknown GarbageMetrics numeric field %s", name) + return fmt.Errorf("unknown EventMetadata numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *GarbageMetricsMutation) ClearedFields() []string { - var fields []string - if m.FieldCleared(garbagemetrics.FieldType) { - fields = append(fields, garbagemetrics.FieldType) - } - if m.FieldCleared(garbagemetrics.FieldGarbageCollected) { - fields = append(fields, garbagemetrics.FieldGarbageCollected) - } - return fields +func (m *EventMetadataMutation) ClearedFields() []string { + return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *GarbageMetricsMutation) FieldCleared(name string) bool { +func (m *EventMetadataMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *GarbageMetricsMutation) ClearField(name string) error { - switch name { - case garbagemetrics.FieldType: - m.ClearType() - return nil - case garbagemetrics.FieldGarbageCollected: - m.ClearGarbageCollected() - return nil - } - return fmt.Errorf("unknown GarbageMetrics nullable field %s", name) +func (m *EventMetadataMutation) ClearField(name string) error { + return fmt.Errorf("unknown EventMetadata nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *GarbageMetricsMutation) ResetField(name string) error { +func (m *EventMetadataMutation) ResetField(name string) error { switch name { - case garbagemetrics.FieldType: - m.ResetType() + case eventmetadata.FieldHandled: + m.ResetHandled() return nil - case garbagemetrics.FieldGarbageCollected: - m.ResetGarbageCollected() + case eventmetadata.FieldEventReceivedAt: + m.ResetEventReceivedAt() + return nil + case eventmetadata.FieldVersion: + m.ResetVersion() + return nil + case eventmetadata.FieldBazelInvocationID: + m.ResetBazelInvocationID() return nil } - return fmt.Errorf("unknown GarbageMetrics field %s", name) + return fmt.Errorf("unknown EventMetadata field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *GarbageMetricsMutation) AddedEdges() []string { +func (m *EventMetadataMutation) AddedEdges() []string { edges := make([]string, 0, 1) - if m.memory_metrics != nil { - edges = append(edges, garbagemetrics.EdgeMemoryMetrics) + if m.bazel_invocation != nil { + edges = append(edges, eventmetadata.EdgeBazelInvocation) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *GarbageMetricsMutation) AddedIDs(name string) []ent.Value { +func (m *EventMetadataMutation) AddedIDs(name string) []ent.Value { switch name { - case garbagemetrics.EdgeMemoryMetrics: - if id := m.memory_metrics; id != nil { + case eventmetadata.EdgeBazelInvocation: + if id := m.bazel_invocation; id != nil { return []ent.Value{*id} } } @@ -14709,86 +14382,86 @@ func (m *GarbageMetricsMutation) AddedIDs(name string) []ent.Value { } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *GarbageMetricsMutation) RemovedEdges() []string { +func (m *EventMetadataMutation) RemovedEdges() []string { edges := make([]string, 0, 1) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *GarbageMetricsMutation) RemovedIDs(name string) []ent.Value { +func (m *EventMetadataMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *GarbageMetricsMutation) ClearedEdges() []string { +func (m *EventMetadataMutation) ClearedEdges() []string { edges := make([]string, 0, 1) - if m.clearedmemory_metrics { - edges = append(edges, garbagemetrics.EdgeMemoryMetrics) + if m.clearedbazel_invocation { + edges = append(edges, eventmetadata.EdgeBazelInvocation) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *GarbageMetricsMutation) EdgeCleared(name string) bool { +func (m *EventMetadataMutation) EdgeCleared(name string) bool { switch name { - case garbagemetrics.EdgeMemoryMetrics: - return m.clearedmemory_metrics + case eventmetadata.EdgeBazelInvocation: + return m.clearedbazel_invocation } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *GarbageMetricsMutation) ClearEdge(name string) error { +func (m *EventMetadataMutation) ClearEdge(name string) error { switch name { - case garbagemetrics.EdgeMemoryMetrics: - m.ClearMemoryMetrics() + case eventmetadata.EdgeBazelInvocation: + m.ClearBazelInvocation() return nil } - return fmt.Errorf("unknown GarbageMetrics unique edge %s", name) + return fmt.Errorf("unknown EventMetadata unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *GarbageMetricsMutation) ResetEdge(name string) error { +func (m *EventMetadataMutation) ResetEdge(name string) error { switch name { - case garbagemetrics.EdgeMemoryMetrics: - m.ResetMemoryMetrics() + case eventmetadata.EdgeBazelInvocation: + m.ResetBazelInvocation() return nil } - return fmt.Errorf("unknown GarbageMetrics edge %s", name) + return fmt.Errorf("unknown EventMetadata edge %s", name) } -// IncompleteBuildLogMutation represents an operation that mutates the IncompleteBuildLog nodes in the graph. -type IncompleteBuildLogMutation struct { +// GarbageMetricsMutation represents an operation that mutates the GarbageMetrics nodes in the graph. +type GarbageMetricsMutation struct { config - op Op - typ string - id *int64 - snippet_id *int32 - addsnippet_id *int32 - log_snippet *[]byte - clearedFields map[string]struct{} - bazel_invocation *int64 - clearedbazel_invocation bool - done bool - oldValue func(context.Context) (*IncompleteBuildLog, error) - predicates []predicate.IncompleteBuildLog + op Op + typ string + id *int64 + _type *string + garbage_collected *int64 + addgarbage_collected *int64 + clearedFields map[string]struct{} + memory_metrics *int64 + clearedmemory_metrics bool + done bool + oldValue func(context.Context) (*GarbageMetrics, error) + predicates []predicate.GarbageMetrics } -var _ ent.Mutation = (*IncompleteBuildLogMutation)(nil) +var _ ent.Mutation = (*GarbageMetricsMutation)(nil) -// incompletebuildlogOption allows management of the mutation configuration using functional options. -type incompletebuildlogOption func(*IncompleteBuildLogMutation) +// garbagemetricsOption allows management of the mutation configuration using functional options. +type garbagemetricsOption func(*GarbageMetricsMutation) -// newIncompleteBuildLogMutation creates new mutation for the IncompleteBuildLog entity. -func newIncompleteBuildLogMutation(c config, op Op, opts ...incompletebuildlogOption) *IncompleteBuildLogMutation { - m := &IncompleteBuildLogMutation{ +// newGarbageMetricsMutation creates new mutation for the GarbageMetrics entity. +func newGarbageMetricsMutation(c config, op Op, opts ...garbagemetricsOption) *GarbageMetricsMutation { + m := &GarbageMetricsMutation{ config: c, op: op, - typ: TypeIncompleteBuildLog, + typ: TypeGarbageMetrics, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -14797,20 +14470,20 @@ func newIncompleteBuildLogMutation(c config, op Op, opts ...incompletebuildlogOp return m } -// withIncompleteBuildLogID sets the ID field of the mutation. -func withIncompleteBuildLogID(id int64) incompletebuildlogOption { - return func(m *IncompleteBuildLogMutation) { +// withGarbageMetricsID sets the ID field of the mutation. +func withGarbageMetricsID(id int64) garbagemetricsOption { + return func(m *GarbageMetricsMutation) { var ( err error once sync.Once - value *IncompleteBuildLog + value *GarbageMetrics ) - m.oldValue = func(ctx context.Context) (*IncompleteBuildLog, error) { + m.oldValue = func(ctx context.Context) (*GarbageMetrics, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().IncompleteBuildLog.Get(ctx, id) + value, err = m.Client().GarbageMetrics.Get(ctx, id) } }) return value, err @@ -14819,10 +14492,10 @@ func withIncompleteBuildLogID(id int64) incompletebuildlogOption { } } -// withIncompleteBuildLog sets the old IncompleteBuildLog of the mutation. -func withIncompleteBuildLog(node *IncompleteBuildLog) incompletebuildlogOption { - return func(m *IncompleteBuildLogMutation) { - m.oldValue = func(context.Context) (*IncompleteBuildLog, error) { +// withGarbageMetrics sets the old GarbageMetrics of the mutation. +func withGarbageMetrics(node *GarbageMetrics) garbagemetricsOption { + return func(m *GarbageMetricsMutation) { + m.oldValue = func(context.Context) (*GarbageMetrics, error) { return node, nil } m.id = &node.ID @@ -14831,7 +14504,7 @@ func withIncompleteBuildLog(node *IncompleteBuildLog) incompletebuildlogOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m IncompleteBuildLogMutation) Client() *Client { +func (m GarbageMetricsMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -14839,7 +14512,7 @@ func (m IncompleteBuildLogMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m IncompleteBuildLogMutation) Tx() (*Tx, error) { +func (m GarbageMetricsMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -14849,14 +14522,14 @@ func (m IncompleteBuildLogMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of IncompleteBuildLog entities. -func (m *IncompleteBuildLogMutation) SetID(id int64) { +// operation is only accepted on creation of GarbageMetrics entities. +func (m *GarbageMetricsMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *IncompleteBuildLogMutation) ID() (id int64, exists bool) { +func (m *GarbageMetricsMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -14867,7 +14540,7 @@ func (m *IncompleteBuildLogMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *IncompleteBuildLogMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *GarbageMetricsMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -14876,176 +14549,179 @@ func (m *IncompleteBuildLogMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().IncompleteBuildLog.Query().Where(m.predicates...).IDs(ctx) + return m.Client().GarbageMetrics.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetSnippetID sets the "snippet_id" field. -func (m *IncompleteBuildLogMutation) SetSnippetID(i int32) { - m.snippet_id = &i - m.addsnippet_id = nil +// SetType sets the "type" field. +func (m *GarbageMetricsMutation) SetType(s string) { + m._type = &s } -// SnippetID returns the value of the "snippet_id" field in the mutation. -func (m *IncompleteBuildLogMutation) SnippetID() (r int32, exists bool) { - v := m.snippet_id +// GetType returns the value of the "type" field in the mutation. +func (m *GarbageMetricsMutation) GetType() (r string, exists bool) { + v := m._type if v == nil { return } return *v, true } -// OldSnippetID returns the old "snippet_id" field's value of the IncompleteBuildLog entity. -// If the IncompleteBuildLog object wasn't provided to the builder, the object is fetched from the database. +// OldType returns the old "type" field's value of the GarbageMetrics entity. +// If the GarbageMetrics object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *IncompleteBuildLogMutation) OldSnippetID(ctx context.Context) (v int32, err error) { +func (m *GarbageMetricsMutation) OldType(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldSnippetID is only allowed on UpdateOne operations") + return v, errors.New("OldType is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldSnippetID requires an ID field in the mutation") + return v, errors.New("OldType requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldSnippetID: %w", err) + return v, fmt.Errorf("querying old value for OldType: %w", err) } - return oldValue.SnippetID, nil + return oldValue.Type, nil } -// AddSnippetID adds i to the "snippet_id" field. -func (m *IncompleteBuildLogMutation) AddSnippetID(i int32) { - if m.addsnippet_id != nil { - *m.addsnippet_id += i - } else { - m.addsnippet_id = &i - } +// ClearType clears the value of the "type" field. +func (m *GarbageMetricsMutation) ClearType() { + m._type = nil + m.clearedFields[garbagemetrics.FieldType] = struct{}{} } -// AddedSnippetID returns the value that was added to the "snippet_id" field in this mutation. -func (m *IncompleteBuildLogMutation) AddedSnippetID() (r int32, exists bool) { - v := m.addsnippet_id - if v == nil { - return - } - return *v, true +// TypeCleared returns if the "type" field was cleared in this mutation. +func (m *GarbageMetricsMutation) TypeCleared() bool { + _, ok := m.clearedFields[garbagemetrics.FieldType] + return ok } -// ResetSnippetID resets all changes to the "snippet_id" field. -func (m *IncompleteBuildLogMutation) ResetSnippetID() { - m.snippet_id = nil - m.addsnippet_id = nil +// ResetType resets all changes to the "type" field. +func (m *GarbageMetricsMutation) ResetType() { + m._type = nil + delete(m.clearedFields, garbagemetrics.FieldType) } -// SetLogSnippet sets the "log_snippet" field. -func (m *IncompleteBuildLogMutation) SetLogSnippet(b []byte) { - m.log_snippet = &b +// SetGarbageCollected sets the "garbage_collected" field. +func (m *GarbageMetricsMutation) SetGarbageCollected(i int64) { + m.garbage_collected = &i + m.addgarbage_collected = nil } -// LogSnippet returns the value of the "log_snippet" field in the mutation. -func (m *IncompleteBuildLogMutation) LogSnippet() (r []byte, exists bool) { - v := m.log_snippet +// GarbageCollected returns the value of the "garbage_collected" field in the mutation. +func (m *GarbageMetricsMutation) GarbageCollected() (r int64, exists bool) { + v := m.garbage_collected if v == nil { return } return *v, true } -// OldLogSnippet returns the old "log_snippet" field's value of the IncompleteBuildLog entity. -// If the IncompleteBuildLog object wasn't provided to the builder, the object is fetched from the database. +// OldGarbageCollected returns the old "garbage_collected" field's value of the GarbageMetrics entity. +// If the GarbageMetrics object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *IncompleteBuildLogMutation) OldLogSnippet(ctx context.Context) (v []byte, err error) { +func (m *GarbageMetricsMutation) OldGarbageCollected(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldLogSnippet is only allowed on UpdateOne operations") + return v, errors.New("OldGarbageCollected is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldLogSnippet requires an ID field in the mutation") + return v, errors.New("OldGarbageCollected requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldLogSnippet: %w", err) + return v, fmt.Errorf("querying old value for OldGarbageCollected: %w", err) } - return oldValue.LogSnippet, nil -} - -// ResetLogSnippet resets all changes to the "log_snippet" field. -func (m *IncompleteBuildLogMutation) ResetLogSnippet() { - m.log_snippet = nil + return oldValue.GarbageCollected, nil } -// SetBazelInvocationID sets the "bazel_invocation_id" field. -func (m *IncompleteBuildLogMutation) SetBazelInvocationID(i int64) { - m.bazel_invocation = &i +// AddGarbageCollected adds i to the "garbage_collected" field. +func (m *GarbageMetricsMutation) AddGarbageCollected(i int64) { + if m.addgarbage_collected != nil { + *m.addgarbage_collected += i + } else { + m.addgarbage_collected = &i + } } -// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. -func (m *IncompleteBuildLogMutation) BazelInvocationID() (r int64, exists bool) { - v := m.bazel_invocation +// AddedGarbageCollected returns the value that was added to the "garbage_collected" field in this mutation. +func (m *GarbageMetricsMutation) AddedGarbageCollected() (r int64, exists bool) { + v := m.addgarbage_collected if v == nil { return } return *v, true } -// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the IncompleteBuildLog entity. -// If the IncompleteBuildLog object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *IncompleteBuildLogMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) - } - return oldValue.BazelInvocationID, nil +// ClearGarbageCollected clears the value of the "garbage_collected" field. +func (m *GarbageMetricsMutation) ClearGarbageCollected() { + m.garbage_collected = nil + m.addgarbage_collected = nil + m.clearedFields[garbagemetrics.FieldGarbageCollected] = struct{}{} } -// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. -func (m *IncompleteBuildLogMutation) ResetBazelInvocationID() { - m.bazel_invocation = nil +// GarbageCollectedCleared returns if the "garbage_collected" field was cleared in this mutation. +func (m *GarbageMetricsMutation) GarbageCollectedCleared() bool { + _, ok := m.clearedFields[garbagemetrics.FieldGarbageCollected] + return ok } -// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *IncompleteBuildLogMutation) ClearBazelInvocation() { - m.clearedbazel_invocation = true - m.clearedFields[incompletebuildlog.FieldBazelInvocationID] = struct{}{} +// ResetGarbageCollected resets all changes to the "garbage_collected" field. +func (m *GarbageMetricsMutation) ResetGarbageCollected() { + m.garbage_collected = nil + m.addgarbage_collected = nil + delete(m.clearedFields, garbagemetrics.FieldGarbageCollected) } -// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *IncompleteBuildLogMutation) BazelInvocationCleared() bool { - return m.clearedbazel_invocation +// SetMemoryMetricsID sets the "memory_metrics" edge to the MemoryMetrics entity by id. +func (m *GarbageMetricsMutation) SetMemoryMetricsID(id int64) { + m.memory_metrics = &id } -// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. +// ClearMemoryMetrics clears the "memory_metrics" edge to the MemoryMetrics entity. +func (m *GarbageMetricsMutation) ClearMemoryMetrics() { + m.clearedmemory_metrics = true +} + +// MemoryMetricsCleared reports if the "memory_metrics" edge to the MemoryMetrics entity was cleared. +func (m *GarbageMetricsMutation) MemoryMetricsCleared() bool { + return m.clearedmemory_metrics +} + +// MemoryMetricsID returns the "memory_metrics" edge ID in the mutation. +func (m *GarbageMetricsMutation) MemoryMetricsID() (id int64, exists bool) { + if m.memory_metrics != nil { + return *m.memory_metrics, true + } + return +} + +// MemoryMetricsIDs returns the "memory_metrics" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *IncompleteBuildLogMutation) BazelInvocationIDs() (ids []int64) { - if id := m.bazel_invocation; id != nil { +// MemoryMetricsID instead. It exists only for internal usage by the builders. +func (m *GarbageMetricsMutation) MemoryMetricsIDs() (ids []int64) { + if id := m.memory_metrics; id != nil { ids = append(ids, *id) } return } -// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *IncompleteBuildLogMutation) ResetBazelInvocation() { - m.bazel_invocation = nil - m.clearedbazel_invocation = false +// ResetMemoryMetrics resets all changes to the "memory_metrics" edge. +func (m *GarbageMetricsMutation) ResetMemoryMetrics() { + m.memory_metrics = nil + m.clearedmemory_metrics = false } -// Where appends a list predicates to the IncompleteBuildLogMutation builder. -func (m *IncompleteBuildLogMutation) Where(ps ...predicate.IncompleteBuildLog) { +// Where appends a list predicates to the GarbageMetricsMutation builder. +func (m *GarbageMetricsMutation) Where(ps ...predicate.GarbageMetrics) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the IncompleteBuildLogMutation builder. Using this method, +// WhereP appends storage-level predicates to the GarbageMetricsMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *IncompleteBuildLogMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.IncompleteBuildLog, len(ps)) +func (m *GarbageMetricsMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.GarbageMetrics, len(ps)) for i := range ps { p[i] = ps[i] } @@ -15053,33 +14729,30 @@ func (m *IncompleteBuildLogMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *IncompleteBuildLogMutation) Op() Op { +func (m *GarbageMetricsMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *IncompleteBuildLogMutation) SetOp(op Op) { +func (m *GarbageMetricsMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (IncompleteBuildLog). -func (m *IncompleteBuildLogMutation) Type() string { +// Type returns the node type of this mutation (GarbageMetrics). +func (m *GarbageMetricsMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *IncompleteBuildLogMutation) Fields() []string { - fields := make([]string, 0, 3) - if m.snippet_id != nil { - fields = append(fields, incompletebuildlog.FieldSnippetID) - } - if m.log_snippet != nil { - fields = append(fields, incompletebuildlog.FieldLogSnippet) +func (m *GarbageMetricsMutation) Fields() []string { + fields := make([]string, 0, 2) + if m._type != nil { + fields = append(fields, garbagemetrics.FieldType) } - if m.bazel_invocation != nil { - fields = append(fields, incompletebuildlog.FieldBazelInvocationID) + if m.garbage_collected != nil { + fields = append(fields, garbagemetrics.FieldGarbageCollected) } return fields } @@ -15087,14 +14760,12 @@ func (m *IncompleteBuildLogMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *IncompleteBuildLogMutation) Field(name string) (ent.Value, bool) { +func (m *GarbageMetricsMutation) Field(name string) (ent.Value, bool) { switch name { - case incompletebuildlog.FieldSnippetID: - return m.SnippetID() - case incompletebuildlog.FieldLogSnippet: - return m.LogSnippet() - case incompletebuildlog.FieldBazelInvocationID: - return m.BazelInvocationID() + case garbagemetrics.FieldType: + return m.GetType() + case garbagemetrics.FieldGarbageCollected: + return m.GarbageCollected() } return nil, false } @@ -15102,54 +14773,45 @@ func (m *IncompleteBuildLogMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *IncompleteBuildLogMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *GarbageMetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case incompletebuildlog.FieldSnippetID: - return m.OldSnippetID(ctx) - case incompletebuildlog.FieldLogSnippet: - return m.OldLogSnippet(ctx) - case incompletebuildlog.FieldBazelInvocationID: - return m.OldBazelInvocationID(ctx) + case garbagemetrics.FieldType: + return m.OldType(ctx) + case garbagemetrics.FieldGarbageCollected: + return m.OldGarbageCollected(ctx) } - return nil, fmt.Errorf("unknown IncompleteBuildLog field %s", name) + return nil, fmt.Errorf("unknown GarbageMetrics field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *IncompleteBuildLogMutation) SetField(name string, value ent.Value) error { +func (m *GarbageMetricsMutation) SetField(name string, value ent.Value) error { switch name { - case incompletebuildlog.FieldSnippetID: - v, ok := value.(int32) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetSnippetID(v) - return nil - case incompletebuildlog.FieldLogSnippet: - v, ok := value.([]byte) + case garbagemetrics.FieldType: + v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetLogSnippet(v) + m.SetType(v) return nil - case incompletebuildlog.FieldBazelInvocationID: + case garbagemetrics.FieldGarbageCollected: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetBazelInvocationID(v) + m.SetGarbageCollected(v) return nil } - return fmt.Errorf("unknown IncompleteBuildLog field %s", name) + return fmt.Errorf("unknown GarbageMetrics field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *IncompleteBuildLogMutation) AddedFields() []string { +func (m *GarbageMetricsMutation) AddedFields() []string { var fields []string - if m.addsnippet_id != nil { - fields = append(fields, incompletebuildlog.FieldSnippetID) + if m.addgarbage_collected != nil { + fields = append(fields, garbagemetrics.FieldGarbageCollected) } return fields } @@ -15157,10 +14819,10 @@ func (m *IncompleteBuildLogMutation) AddedFields() []string { // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *IncompleteBuildLogMutation) AddedField(name string) (ent.Value, bool) { +func (m *GarbageMetricsMutation) AddedField(name string) (ent.Value, bool) { switch name { - case incompletebuildlog.FieldSnippetID: - return m.AddedSnippetID() + case garbagemetrics.FieldGarbageCollected: + return m.AddedGarbageCollected() } return nil, false } @@ -15168,70 +14830,82 @@ func (m *IncompleteBuildLogMutation) AddedField(name string) (ent.Value, bool) { // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *IncompleteBuildLogMutation) AddField(name string, value ent.Value) error { +func (m *GarbageMetricsMutation) AddField(name string, value ent.Value) error { switch name { - case incompletebuildlog.FieldSnippetID: - v, ok := value.(int32) + case garbagemetrics.FieldGarbageCollected: + v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.AddSnippetID(v) + m.AddGarbageCollected(v) return nil } - return fmt.Errorf("unknown IncompleteBuildLog numeric field %s", name) + return fmt.Errorf("unknown GarbageMetrics numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *IncompleteBuildLogMutation) ClearedFields() []string { - return nil +func (m *GarbageMetricsMutation) ClearedFields() []string { + var fields []string + if m.FieldCleared(garbagemetrics.FieldType) { + fields = append(fields, garbagemetrics.FieldType) + } + if m.FieldCleared(garbagemetrics.FieldGarbageCollected) { + fields = append(fields, garbagemetrics.FieldGarbageCollected) + } + return fields } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *IncompleteBuildLogMutation) FieldCleared(name string) bool { +func (m *GarbageMetricsMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *IncompleteBuildLogMutation) ClearField(name string) error { - return fmt.Errorf("unknown IncompleteBuildLog nullable field %s", name) +func (m *GarbageMetricsMutation) ClearField(name string) error { + switch name { + case garbagemetrics.FieldType: + m.ClearType() + return nil + case garbagemetrics.FieldGarbageCollected: + m.ClearGarbageCollected() + return nil + } + return fmt.Errorf("unknown GarbageMetrics nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *IncompleteBuildLogMutation) ResetField(name string) error { +func (m *GarbageMetricsMutation) ResetField(name string) error { switch name { - case incompletebuildlog.FieldSnippetID: - m.ResetSnippetID() - return nil - case incompletebuildlog.FieldLogSnippet: - m.ResetLogSnippet() + case garbagemetrics.FieldType: + m.ResetType() return nil - case incompletebuildlog.FieldBazelInvocationID: - m.ResetBazelInvocationID() + case garbagemetrics.FieldGarbageCollected: + m.ResetGarbageCollected() return nil } - return fmt.Errorf("unknown IncompleteBuildLog field %s", name) + return fmt.Errorf("unknown GarbageMetrics field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *IncompleteBuildLogMutation) AddedEdges() []string { +func (m *GarbageMetricsMutation) AddedEdges() []string { edges := make([]string, 0, 1) - if m.bazel_invocation != nil { - edges = append(edges, incompletebuildlog.EdgeBazelInvocation) + if m.memory_metrics != nil { + edges = append(edges, garbagemetrics.EdgeMemoryMetrics) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *IncompleteBuildLogMutation) AddedIDs(name string) []ent.Value { +func (m *GarbageMetricsMutation) AddedIDs(name string) []ent.Value { switch name { - case incompletebuildlog.EdgeBazelInvocation: - if id := m.bazel_invocation; id != nil { + case garbagemetrics.EdgeMemoryMetrics: + if id := m.memory_metrics; id != nil { return []ent.Value{*id} } } @@ -15239,91 +14913,86 @@ func (m *IncompleteBuildLogMutation) AddedIDs(name string) []ent.Value { } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *IncompleteBuildLogMutation) RemovedEdges() []string { +func (m *GarbageMetricsMutation) RemovedEdges() []string { edges := make([]string, 0, 1) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *IncompleteBuildLogMutation) RemovedIDs(name string) []ent.Value { +func (m *GarbageMetricsMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *IncompleteBuildLogMutation) ClearedEdges() []string { +func (m *GarbageMetricsMutation) ClearedEdges() []string { edges := make([]string, 0, 1) - if m.clearedbazel_invocation { - edges = append(edges, incompletebuildlog.EdgeBazelInvocation) + if m.clearedmemory_metrics { + edges = append(edges, garbagemetrics.EdgeMemoryMetrics) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *IncompleteBuildLogMutation) EdgeCleared(name string) bool { +func (m *GarbageMetricsMutation) EdgeCleared(name string) bool { switch name { - case incompletebuildlog.EdgeBazelInvocation: - return m.clearedbazel_invocation + case garbagemetrics.EdgeMemoryMetrics: + return m.clearedmemory_metrics } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *IncompleteBuildLogMutation) ClearEdge(name string) error { +func (m *GarbageMetricsMutation) ClearEdge(name string) error { switch name { - case incompletebuildlog.EdgeBazelInvocation: - m.ClearBazelInvocation() + case garbagemetrics.EdgeMemoryMetrics: + m.ClearMemoryMetrics() return nil } - return fmt.Errorf("unknown IncompleteBuildLog unique edge %s", name) + return fmt.Errorf("unknown GarbageMetrics unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *IncompleteBuildLogMutation) ResetEdge(name string) error { +func (m *GarbageMetricsMutation) ResetEdge(name string) error { switch name { - case incompletebuildlog.EdgeBazelInvocation: - m.ResetBazelInvocation() + case garbagemetrics.EdgeMemoryMetrics: + m.ResetMemoryMetrics() return nil } - return fmt.Errorf("unknown IncompleteBuildLog edge %s", name) + return fmt.Errorf("unknown GarbageMetrics edge %s", name) } -// InstanceNameMutation represents an operation that mutates the InstanceName nodes in the graph. -type InstanceNameMutation struct { +// IncompleteBuildLogMutation represents an operation that mutates the IncompleteBuildLog nodes in the graph. +type IncompleteBuildLogMutation struct { config - op Op - typ string - id *int64 - name *string - clearedFields map[string]struct{} - bazel_invocations map[int64]struct{} - removedbazel_invocations map[int64]struct{} - clearedbazel_invocations bool - builds map[int64]struct{} - removedbuilds map[int64]struct{} - clearedbuilds bool - targets map[int64]struct{} - removedtargets map[int64]struct{} - clearedtargets bool - done bool - oldValue func(context.Context) (*InstanceName, error) - predicates []predicate.InstanceName + op Op + typ string + id *int64 + snippet_id *int32 + addsnippet_id *int32 + log_snippet *[]byte + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + done bool + oldValue func(context.Context) (*IncompleteBuildLog, error) + predicates []predicate.IncompleteBuildLog } -var _ ent.Mutation = (*InstanceNameMutation)(nil) +var _ ent.Mutation = (*IncompleteBuildLogMutation)(nil) -// instancenameOption allows management of the mutation configuration using functional options. -type instancenameOption func(*InstanceNameMutation) +// incompletebuildlogOption allows management of the mutation configuration using functional options. +type incompletebuildlogOption func(*IncompleteBuildLogMutation) -// newInstanceNameMutation creates new mutation for the InstanceName entity. -func newInstanceNameMutation(c config, op Op, opts ...instancenameOption) *InstanceNameMutation { - m := &InstanceNameMutation{ +// newIncompleteBuildLogMutation creates new mutation for the IncompleteBuildLog entity. +func newIncompleteBuildLogMutation(c config, op Op, opts ...incompletebuildlogOption) *IncompleteBuildLogMutation { + m := &IncompleteBuildLogMutation{ config: c, op: op, - typ: TypeInstanceName, + typ: TypeIncompleteBuildLog, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -15332,20 +15001,20 @@ func newInstanceNameMutation(c config, op Op, opts ...instancenameOption) *Insta return m } -// withInstanceNameID sets the ID field of the mutation. -func withInstanceNameID(id int64) instancenameOption { - return func(m *InstanceNameMutation) { +// withIncompleteBuildLogID sets the ID field of the mutation. +func withIncompleteBuildLogID(id int64) incompletebuildlogOption { + return func(m *IncompleteBuildLogMutation) { var ( err error once sync.Once - value *InstanceName + value *IncompleteBuildLog ) - m.oldValue = func(ctx context.Context) (*InstanceName, error) { + m.oldValue = func(ctx context.Context) (*IncompleteBuildLog, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().InstanceName.Get(ctx, id) + value, err = m.Client().IncompleteBuildLog.Get(ctx, id) } }) return value, err @@ -15354,10 +15023,10 @@ func withInstanceNameID(id int64) instancenameOption { } } -// withInstanceName sets the old InstanceName of the mutation. -func withInstanceName(node *InstanceName) instancenameOption { - return func(m *InstanceNameMutation) { - m.oldValue = func(context.Context) (*InstanceName, error) { +// withIncompleteBuildLog sets the old IncompleteBuildLog of the mutation. +func withIncompleteBuildLog(node *IncompleteBuildLog) incompletebuildlogOption { + return func(m *IncompleteBuildLogMutation) { + m.oldValue = func(context.Context) (*IncompleteBuildLog, error) { return node, nil } m.id = &node.ID @@ -15366,7 +15035,7 @@ func withInstanceName(node *InstanceName) instancenameOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m InstanceNameMutation) Client() *Client { +func (m IncompleteBuildLogMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -15374,7 +15043,7 @@ func (m InstanceNameMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m InstanceNameMutation) Tx() (*Tx, error) { +func (m IncompleteBuildLogMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -15384,14 +15053,14 @@ func (m InstanceNameMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of InstanceName entities. -func (m *InstanceNameMutation) SetID(id int64) { +// operation is only accepted on creation of IncompleteBuildLog entities. +func (m *IncompleteBuildLogMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *InstanceNameMutation) ID() (id int64, exists bool) { +func (m *IncompleteBuildLogMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -15402,7 +15071,7 @@ func (m *InstanceNameMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *InstanceNameMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *IncompleteBuildLogMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -15411,219 +15080,176 @@ func (m *InstanceNameMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().InstanceName.Query().Where(m.predicates...).IDs(ctx) + return m.Client().IncompleteBuildLog.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetName sets the "name" field. -func (m *InstanceNameMutation) SetName(s string) { - m.name = &s +// SetSnippetID sets the "snippet_id" field. +func (m *IncompleteBuildLogMutation) SetSnippetID(i int32) { + m.snippet_id = &i + m.addsnippet_id = nil } -// Name returns the value of the "name" field in the mutation. -func (m *InstanceNameMutation) Name() (r string, exists bool) { - v := m.name +// SnippetID returns the value of the "snippet_id" field in the mutation. +func (m *IncompleteBuildLogMutation) SnippetID() (r int32, exists bool) { + v := m.snippet_id if v == nil { return } return *v, true } -// OldName returns the old "name" field's value of the InstanceName entity. -// If the InstanceName object wasn't provided to the builder, the object is fetched from the database. +// OldSnippetID returns the old "snippet_id" field's value of the IncompleteBuildLog entity. +// If the IncompleteBuildLog object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InstanceNameMutation) OldName(ctx context.Context) (v string, err error) { +func (m *IncompleteBuildLogMutation) OldSnippetID(ctx context.Context) (v int32, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldName is only allowed on UpdateOne operations") + return v, errors.New("OldSnippetID is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldName requires an ID field in the mutation") + return v, errors.New("OldSnippetID requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldName: %w", err) - } - return oldValue.Name, nil -} - -// ResetName resets all changes to the "name" field. -func (m *InstanceNameMutation) ResetName() { - m.name = nil -} - -// AddBazelInvocationIDs adds the "bazel_invocations" edge to the BazelInvocation entity by ids. -func (m *InstanceNameMutation) AddBazelInvocationIDs(ids ...int64) { - if m.bazel_invocations == nil { - m.bazel_invocations = make(map[int64]struct{}) - } - for i := range ids { - m.bazel_invocations[ids[i]] = struct{}{} - } -} - -// ClearBazelInvocations clears the "bazel_invocations" edge to the BazelInvocation entity. -func (m *InstanceNameMutation) ClearBazelInvocations() { - m.clearedbazel_invocations = true -} - -// BazelInvocationsCleared reports if the "bazel_invocations" edge to the BazelInvocation entity was cleared. -func (m *InstanceNameMutation) BazelInvocationsCleared() bool { - return m.clearedbazel_invocations -} - -// RemoveBazelInvocationIDs removes the "bazel_invocations" edge to the BazelInvocation entity by IDs. -func (m *InstanceNameMutation) RemoveBazelInvocationIDs(ids ...int64) { - if m.removedbazel_invocations == nil { - m.removedbazel_invocations = make(map[int64]struct{}) - } - for i := range ids { - delete(m.bazel_invocations, ids[i]) - m.removedbazel_invocations[ids[i]] = struct{}{} - } -} - -// RemovedBazelInvocations returns the removed IDs of the "bazel_invocations" edge to the BazelInvocation entity. -func (m *InstanceNameMutation) RemovedBazelInvocationsIDs() (ids []int64) { - for id := range m.removedbazel_invocations { - ids = append(ids, id) + return v, fmt.Errorf("querying old value for OldSnippetID: %w", err) } - return + return oldValue.SnippetID, nil } -// BazelInvocationsIDs returns the "bazel_invocations" edge IDs in the mutation. -func (m *InstanceNameMutation) BazelInvocationsIDs() (ids []int64) { - for id := range m.bazel_invocations { - ids = append(ids, id) +// AddSnippetID adds i to the "snippet_id" field. +func (m *IncompleteBuildLogMutation) AddSnippetID(i int32) { + if m.addsnippet_id != nil { + *m.addsnippet_id += i + } else { + m.addsnippet_id = &i } - return -} - -// ResetBazelInvocations resets all changes to the "bazel_invocations" edge. -func (m *InstanceNameMutation) ResetBazelInvocations() { - m.bazel_invocations = nil - m.clearedbazel_invocations = false - m.removedbazel_invocations = nil } -// AddBuildIDs adds the "builds" edge to the Build entity by ids. -func (m *InstanceNameMutation) AddBuildIDs(ids ...int64) { - if m.builds == nil { - m.builds = make(map[int64]struct{}) - } - for i := range ids { - m.builds[ids[i]] = struct{}{} +// AddedSnippetID returns the value that was added to the "snippet_id" field in this mutation. +func (m *IncompleteBuildLogMutation) AddedSnippetID() (r int32, exists bool) { + v := m.addsnippet_id + if v == nil { + return } + return *v, true } -// ClearBuilds clears the "builds" edge to the Build entity. -func (m *InstanceNameMutation) ClearBuilds() { - m.clearedbuilds = true -} - -// BuildsCleared reports if the "builds" edge to the Build entity was cleared. -func (m *InstanceNameMutation) BuildsCleared() bool { - return m.clearedbuilds +// ResetSnippetID resets all changes to the "snippet_id" field. +func (m *IncompleteBuildLogMutation) ResetSnippetID() { + m.snippet_id = nil + m.addsnippet_id = nil } -// RemoveBuildIDs removes the "builds" edge to the Build entity by IDs. -func (m *InstanceNameMutation) RemoveBuildIDs(ids ...int64) { - if m.removedbuilds == nil { - m.removedbuilds = make(map[int64]struct{}) - } - for i := range ids { - delete(m.builds, ids[i]) - m.removedbuilds[ids[i]] = struct{}{} - } +// SetLogSnippet sets the "log_snippet" field. +func (m *IncompleteBuildLogMutation) SetLogSnippet(b []byte) { + m.log_snippet = &b } -// RemovedBuilds returns the removed IDs of the "builds" edge to the Build entity. -func (m *InstanceNameMutation) RemovedBuildsIDs() (ids []int64) { - for id := range m.removedbuilds { - ids = append(ids, id) +// LogSnippet returns the value of the "log_snippet" field in the mutation. +func (m *IncompleteBuildLogMutation) LogSnippet() (r []byte, exists bool) { + v := m.log_snippet + if v == nil { + return } - return + return *v, true } -// BuildsIDs returns the "builds" edge IDs in the mutation. -func (m *InstanceNameMutation) BuildsIDs() (ids []int64) { - for id := range m.builds { - ids = append(ids, id) +// OldLogSnippet returns the old "log_snippet" field's value of the IncompleteBuildLog entity. +// If the IncompleteBuildLog object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *IncompleteBuildLogMutation) OldLogSnippet(ctx context.Context) (v []byte, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldLogSnippet is only allowed on UpdateOne operations") } - return -} - -// ResetBuilds resets all changes to the "builds" edge. -func (m *InstanceNameMutation) ResetBuilds() { - m.builds = nil - m.clearedbuilds = false - m.removedbuilds = nil -} - -// AddTargetIDs adds the "targets" edge to the Target entity by ids. -func (m *InstanceNameMutation) AddTargetIDs(ids ...int64) { - if m.targets == nil { - m.targets = make(map[int64]struct{}) + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldLogSnippet requires an ID field in the mutation") } - for i := range ids { - m.targets[ids[i]] = struct{}{} + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldLogSnippet: %w", err) } + return oldValue.LogSnippet, nil } -// ClearTargets clears the "targets" edge to the Target entity. -func (m *InstanceNameMutation) ClearTargets() { - m.clearedtargets = true +// ResetLogSnippet resets all changes to the "log_snippet" field. +func (m *IncompleteBuildLogMutation) ResetLogSnippet() { + m.log_snippet = nil } -// TargetsCleared reports if the "targets" edge to the Target entity was cleared. -func (m *InstanceNameMutation) TargetsCleared() bool { - return m.clearedtargets +// SetBazelInvocationID sets the "bazel_invocation_id" field. +func (m *IncompleteBuildLogMutation) SetBazelInvocationID(i int64) { + m.bazel_invocation = &i } -// RemoveTargetIDs removes the "targets" edge to the Target entity by IDs. -func (m *InstanceNameMutation) RemoveTargetIDs(ids ...int64) { - if m.removedtargets == nil { - m.removedtargets = make(map[int64]struct{}) - } - for i := range ids { - delete(m.targets, ids[i]) - m.removedtargets[ids[i]] = struct{}{} +// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. +func (m *IncompleteBuildLogMutation) BazelInvocationID() (r int64, exists bool) { + v := m.bazel_invocation + if v == nil { + return } + return *v, true } -// RemovedTargets returns the removed IDs of the "targets" edge to the Target entity. -func (m *InstanceNameMutation) RemovedTargetsIDs() (ids []int64) { - for id := range m.removedtargets { - ids = append(ids, id) +// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the IncompleteBuildLog entity. +// If the IncompleteBuildLog object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *IncompleteBuildLogMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") } - return + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) + } + return oldValue.BazelInvocationID, nil } -// TargetsIDs returns the "targets" edge IDs in the mutation. -func (m *InstanceNameMutation) TargetsIDs() (ids []int64) { - for id := range m.targets { - ids = append(ids, id) +// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. +func (m *IncompleteBuildLogMutation) ResetBazelInvocationID() { + m.bazel_invocation = nil +} + +// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. +func (m *IncompleteBuildLogMutation) ClearBazelInvocation() { + m.clearedbazel_invocation = true + m.clearedFields[incompletebuildlog.FieldBazelInvocationID] = struct{}{} +} + +// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. +func (m *IncompleteBuildLogMutation) BazelInvocationCleared() bool { + return m.clearedbazel_invocation +} + +// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// BazelInvocationID instead. It exists only for internal usage by the builders. +func (m *IncompleteBuildLogMutation) BazelInvocationIDs() (ids []int64) { + if id := m.bazel_invocation; id != nil { + ids = append(ids, *id) } return } -// ResetTargets resets all changes to the "targets" edge. -func (m *InstanceNameMutation) ResetTargets() { - m.targets = nil - m.clearedtargets = false - m.removedtargets = nil +// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. +func (m *IncompleteBuildLogMutation) ResetBazelInvocation() { + m.bazel_invocation = nil + m.clearedbazel_invocation = false } -// Where appends a list predicates to the InstanceNameMutation builder. -func (m *InstanceNameMutation) Where(ps ...predicate.InstanceName) { +// Where appends a list predicates to the IncompleteBuildLogMutation builder. +func (m *IncompleteBuildLogMutation) Where(ps ...predicate.IncompleteBuildLog) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the InstanceNameMutation builder. Using this method, +// WhereP appends storage-level predicates to the IncompleteBuildLogMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *InstanceNameMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.InstanceName, len(ps)) +func (m *IncompleteBuildLogMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.IncompleteBuildLog, len(ps)) for i := range ps { p[i] = ps[i] } @@ -15631,27 +15257,33 @@ func (m *InstanceNameMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *InstanceNameMutation) Op() Op { +func (m *IncompleteBuildLogMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *InstanceNameMutation) SetOp(op Op) { +func (m *IncompleteBuildLogMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (InstanceName). -func (m *InstanceNameMutation) Type() string { +// Type returns the node type of this mutation (IncompleteBuildLog). +func (m *IncompleteBuildLogMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *InstanceNameMutation) Fields() []string { - fields := make([]string, 0, 1) - if m.name != nil { - fields = append(fields, instancename.FieldName) +func (m *IncompleteBuildLogMutation) Fields() []string { + fields := make([]string, 0, 3) + if m.snippet_id != nil { + fields = append(fields, incompletebuildlog.FieldSnippetID) + } + if m.log_snippet != nil { + fields = append(fields, incompletebuildlog.FieldLogSnippet) + } + if m.bazel_invocation != nil { + fields = append(fields, incompletebuildlog.FieldBazelInvocationID) } return fields } @@ -15659,10 +15291,14 @@ func (m *InstanceNameMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *InstanceNameMutation) Field(name string) (ent.Value, bool) { +func (m *IncompleteBuildLogMutation) Field(name string) (ent.Value, bool) { switch name { - case instancename.FieldName: - return m.Name() + case incompletebuildlog.FieldSnippetID: + return m.SnippetID() + case incompletebuildlog.FieldLogSnippet: + return m.LogSnippet() + case incompletebuildlog.FieldBazelInvocationID: + return m.BazelInvocationID() } return nil, false } @@ -15670,249 +15306,228 @@ func (m *InstanceNameMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *InstanceNameMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *IncompleteBuildLogMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case instancename.FieldName: - return m.OldName(ctx) + case incompletebuildlog.FieldSnippetID: + return m.OldSnippetID(ctx) + case incompletebuildlog.FieldLogSnippet: + return m.OldLogSnippet(ctx) + case incompletebuildlog.FieldBazelInvocationID: + return m.OldBazelInvocationID(ctx) } - return nil, fmt.Errorf("unknown InstanceName field %s", name) + return nil, fmt.Errorf("unknown IncompleteBuildLog field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *InstanceNameMutation) SetField(name string, value ent.Value) error { +func (m *IncompleteBuildLogMutation) SetField(name string, value ent.Value) error { switch name { - case instancename.FieldName: - v, ok := value.(string) + case incompletebuildlog.FieldSnippetID: + v, ok := value.(int32) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetName(v) + m.SetSnippetID(v) + return nil + case incompletebuildlog.FieldLogSnippet: + v, ok := value.([]byte) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetLogSnippet(v) + return nil + case incompletebuildlog.FieldBazelInvocationID: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetBazelInvocationID(v) return nil } - return fmt.Errorf("unknown InstanceName field %s", name) + return fmt.Errorf("unknown IncompleteBuildLog field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *InstanceNameMutation) AddedFields() []string { - return nil +func (m *IncompleteBuildLogMutation) AddedFields() []string { + var fields []string + if m.addsnippet_id != nil { + fields = append(fields, incompletebuildlog.FieldSnippetID) + } + return fields } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *InstanceNameMutation) AddedField(name string) (ent.Value, bool) { +func (m *IncompleteBuildLogMutation) AddedField(name string) (ent.Value, bool) { + switch name { + case incompletebuildlog.FieldSnippetID: + return m.AddedSnippetID() + } return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *InstanceNameMutation) AddField(name string, value ent.Value) error { +func (m *IncompleteBuildLogMutation) AddField(name string, value ent.Value) error { switch name { + case incompletebuildlog.FieldSnippetID: + v, ok := value.(int32) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddSnippetID(v) + return nil } - return fmt.Errorf("unknown InstanceName numeric field %s", name) + return fmt.Errorf("unknown IncompleteBuildLog numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *InstanceNameMutation) ClearedFields() []string { +func (m *IncompleteBuildLogMutation) ClearedFields() []string { return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *InstanceNameMutation) FieldCleared(name string) bool { +func (m *IncompleteBuildLogMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *InstanceNameMutation) ClearField(name string) error { - return fmt.Errorf("unknown InstanceName nullable field %s", name) +func (m *IncompleteBuildLogMutation) ClearField(name string) error { + return fmt.Errorf("unknown IncompleteBuildLog nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *InstanceNameMutation) ResetField(name string) error { +func (m *IncompleteBuildLogMutation) ResetField(name string) error { switch name { - case instancename.FieldName: - m.ResetName() + case incompletebuildlog.FieldSnippetID: + m.ResetSnippetID() + return nil + case incompletebuildlog.FieldLogSnippet: + m.ResetLogSnippet() + return nil + case incompletebuildlog.FieldBazelInvocationID: + m.ResetBazelInvocationID() return nil } - return fmt.Errorf("unknown InstanceName field %s", name) + return fmt.Errorf("unknown IncompleteBuildLog field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *InstanceNameMutation) AddedEdges() []string { - edges := make([]string, 0, 3) - if m.bazel_invocations != nil { - edges = append(edges, instancename.EdgeBazelInvocations) - } - if m.builds != nil { - edges = append(edges, instancename.EdgeBuilds) - } - if m.targets != nil { - edges = append(edges, instancename.EdgeTargets) +func (m *IncompleteBuildLogMutation) AddedEdges() []string { + edges := make([]string, 0, 1) + if m.bazel_invocation != nil { + edges = append(edges, incompletebuildlog.EdgeBazelInvocation) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *InstanceNameMutation) AddedIDs(name string) []ent.Value { - switch name { - case instancename.EdgeBazelInvocations: - ids := make([]ent.Value, 0, len(m.bazel_invocations)) - for id := range m.bazel_invocations { - ids = append(ids, id) - } - return ids - case instancename.EdgeBuilds: - ids := make([]ent.Value, 0, len(m.builds)) - for id := range m.builds { - ids = append(ids, id) - } - return ids - case instancename.EdgeTargets: - ids := make([]ent.Value, 0, len(m.targets)) - for id := range m.targets { - ids = append(ids, id) - } - return ids - } - return nil -} - -// RemovedEdges returns all edge names that were removed in this mutation. -func (m *InstanceNameMutation) RemovedEdges() []string { - edges := make([]string, 0, 3) - if m.removedbazel_invocations != nil { - edges = append(edges, instancename.EdgeBazelInvocations) - } - if m.removedbuilds != nil { - edges = append(edges, instancename.EdgeBuilds) - } - if m.removedtargets != nil { - edges = append(edges, instancename.EdgeTargets) +func (m *IncompleteBuildLogMutation) AddedIDs(name string) []ent.Value { + switch name { + case incompletebuildlog.EdgeBazelInvocation: + if id := m.bazel_invocation; id != nil { + return []ent.Value{*id} + } } + return nil +} + +// RemovedEdges returns all edge names that were removed in this mutation. +func (m *IncompleteBuildLogMutation) RemovedEdges() []string { + edges := make([]string, 0, 1) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *InstanceNameMutation) RemovedIDs(name string) []ent.Value { - switch name { - case instancename.EdgeBazelInvocations: - ids := make([]ent.Value, 0, len(m.removedbazel_invocations)) - for id := range m.removedbazel_invocations { - ids = append(ids, id) - } - return ids - case instancename.EdgeBuilds: - ids := make([]ent.Value, 0, len(m.removedbuilds)) - for id := range m.removedbuilds { - ids = append(ids, id) - } - return ids - case instancename.EdgeTargets: - ids := make([]ent.Value, 0, len(m.removedtargets)) - for id := range m.removedtargets { - ids = append(ids, id) - } - return ids - } +func (m *IncompleteBuildLogMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *InstanceNameMutation) ClearedEdges() []string { - edges := make([]string, 0, 3) - if m.clearedbazel_invocations { - edges = append(edges, instancename.EdgeBazelInvocations) - } - if m.clearedbuilds { - edges = append(edges, instancename.EdgeBuilds) - } - if m.clearedtargets { - edges = append(edges, instancename.EdgeTargets) +func (m *IncompleteBuildLogMutation) ClearedEdges() []string { + edges := make([]string, 0, 1) + if m.clearedbazel_invocation { + edges = append(edges, incompletebuildlog.EdgeBazelInvocation) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *InstanceNameMutation) EdgeCleared(name string) bool { +func (m *IncompleteBuildLogMutation) EdgeCleared(name string) bool { switch name { - case instancename.EdgeBazelInvocations: - return m.clearedbazel_invocations - case instancename.EdgeBuilds: - return m.clearedbuilds - case instancename.EdgeTargets: - return m.clearedtargets + case incompletebuildlog.EdgeBazelInvocation: + return m.clearedbazel_invocation } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *InstanceNameMutation) ClearEdge(name string) error { +func (m *IncompleteBuildLogMutation) ClearEdge(name string) error { switch name { + case incompletebuildlog.EdgeBazelInvocation: + m.ClearBazelInvocation() + return nil } - return fmt.Errorf("unknown InstanceName unique edge %s", name) + return fmt.Errorf("unknown IncompleteBuildLog unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *InstanceNameMutation) ResetEdge(name string) error { +func (m *IncompleteBuildLogMutation) ResetEdge(name string) error { switch name { - case instancename.EdgeBazelInvocations: - m.ResetBazelInvocations() - return nil - case instancename.EdgeBuilds: - m.ResetBuilds() - return nil - case instancename.EdgeTargets: - m.ResetTargets() + case incompletebuildlog.EdgeBazelInvocation: + m.ResetBazelInvocation() return nil } - return fmt.Errorf("unknown InstanceName edge %s", name) + return fmt.Errorf("unknown IncompleteBuildLog edge %s", name) } -// InvocationFilesMutation represents an operation that mutates the InvocationFiles nodes in the graph. -type InvocationFilesMutation struct { +// InstanceNameMutation represents an operation that mutates the InstanceName nodes in the graph. +type InstanceNameMutation struct { config - op Op - typ string - id *int64 - name *string - content *string - digest *string - size_bytes *int64 - addsize_bytes *int64 - digest_function *string - clearedFields map[string]struct{} - bazel_invocation *int64 - clearedbazel_invocation bool - done bool - oldValue func(context.Context) (*InvocationFiles, error) - predicates []predicate.InvocationFiles + op Op + typ string + id *int64 + name *string + clearedFields map[string]struct{} + bazel_invocations map[int64]struct{} + removedbazel_invocations map[int64]struct{} + clearedbazel_invocations bool + builds map[int64]struct{} + removedbuilds map[int64]struct{} + clearedbuilds bool + targets map[int64]struct{} + removedtargets map[int64]struct{} + clearedtargets bool + done bool + oldValue func(context.Context) (*InstanceName, error) + predicates []predicate.InstanceName } -var _ ent.Mutation = (*InvocationFilesMutation)(nil) +var _ ent.Mutation = (*InstanceNameMutation)(nil) -// invocationfilesOption allows management of the mutation configuration using functional options. -type invocationfilesOption func(*InvocationFilesMutation) +// instancenameOption allows management of the mutation configuration using functional options. +type instancenameOption func(*InstanceNameMutation) -// newInvocationFilesMutation creates new mutation for the InvocationFiles entity. -func newInvocationFilesMutation(c config, op Op, opts ...invocationfilesOption) *InvocationFilesMutation { - m := &InvocationFilesMutation{ +// newInstanceNameMutation creates new mutation for the InstanceName entity. +func newInstanceNameMutation(c config, op Op, opts ...instancenameOption) *InstanceNameMutation { + m := &InstanceNameMutation{ config: c, op: op, - typ: TypeInvocationFiles, + typ: TypeInstanceName, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -15921,20 +15536,20 @@ func newInvocationFilesMutation(c config, op Op, opts ...invocationfilesOption) return m } -// withInvocationFilesID sets the ID field of the mutation. -func withInvocationFilesID(id int64) invocationfilesOption { - return func(m *InvocationFilesMutation) { +// withInstanceNameID sets the ID field of the mutation. +func withInstanceNameID(id int64) instancenameOption { + return func(m *InstanceNameMutation) { var ( err error once sync.Once - value *InvocationFiles + value *InstanceName ) - m.oldValue = func(ctx context.Context) (*InvocationFiles, error) { + m.oldValue = func(ctx context.Context) (*InstanceName, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().InvocationFiles.Get(ctx, id) + value, err = m.Client().InstanceName.Get(ctx, id) } }) return value, err @@ -15943,10 +15558,10 @@ func withInvocationFilesID(id int64) invocationfilesOption { } } -// withInvocationFiles sets the old InvocationFiles of the mutation. -func withInvocationFiles(node *InvocationFiles) invocationfilesOption { - return func(m *InvocationFilesMutation) { - m.oldValue = func(context.Context) (*InvocationFiles, error) { +// withInstanceName sets the old InstanceName of the mutation. +func withInstanceName(node *InstanceName) instancenameOption { + return func(m *InstanceNameMutation) { + m.oldValue = func(context.Context) (*InstanceName, error) { return node, nil } m.id = &node.ID @@ -15955,7 +15570,7 @@ func withInvocationFiles(node *InvocationFiles) invocationfilesOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m InvocationFilesMutation) Client() *Client { +func (m InstanceNameMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -15963,350 +15578,256 @@ func (m InvocationFilesMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m InvocationFilesMutation) Tx() (*Tx, error) { - if _, ok := m.driver.(*txDriver); !ok { - return nil, errors.New("ent: mutation is not running in a transaction") - } - tx := &Tx{config: m.config} - tx.init() - return tx, nil -} - -// SetID sets the value of the id field. Note that this -// operation is only accepted on creation of InvocationFiles entities. -func (m *InvocationFilesMutation) SetID(id int64) { - m.id = &id -} - -// ID returns the ID value in the mutation. Note that the ID is only available -// if it was provided to the builder or after it was returned from the database. -func (m *InvocationFilesMutation) ID() (id int64, exists bool) { - if m.id == nil { - return - } - return *m.id, true -} - -// IDs queries the database and returns the entity ids that match the mutation's predicate. -// That means, if the mutation is applied within a transaction with an isolation level such -// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated -// or updated by the mutation. -func (m *InvocationFilesMutation) IDs(ctx context.Context) ([]int64, error) { - switch { - case m.op.Is(OpUpdateOne | OpDeleteOne): - id, exists := m.ID() - if exists { - return []int64{id}, nil - } - fallthrough - case m.op.Is(OpUpdate | OpDelete): - return m.Client().InvocationFiles.Query().Where(m.predicates...).IDs(ctx) - default: - return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) - } -} - -// SetName sets the "name" field. -func (m *InvocationFilesMutation) SetName(s string) { - m.name = &s -} - -// Name returns the value of the "name" field in the mutation. -func (m *InvocationFilesMutation) Name() (r string, exists bool) { - v := m.name - if v == nil { - return - } - return *v, true -} - -// OldName returns the old "name" field's value of the InvocationFiles entity. -// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationFilesMutation) OldName(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldName is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldName requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldName: %w", err) - } - return oldValue.Name, nil -} - -// ResetName resets all changes to the "name" field. -func (m *InvocationFilesMutation) ResetName() { - m.name = nil -} - -// SetContent sets the "content" field. -func (m *InvocationFilesMutation) SetContent(s string) { - m.content = &s -} - -// Content returns the value of the "content" field in the mutation. -func (m *InvocationFilesMutation) Content() (r string, exists bool) { - v := m.content - if v == nil { - return - } - return *v, true -} - -// OldContent returns the old "content" field's value of the InvocationFiles entity. -// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationFilesMutation) OldContent(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldContent is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldContent requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldContent: %w", err) +func (m InstanceNameMutation) Tx() (*Tx, error) { + if _, ok := m.driver.(*txDriver); !ok { + return nil, errors.New("ent: mutation is not running in a transaction") } - return oldValue.Content, nil + tx := &Tx{config: m.config} + tx.init() + return tx, nil } -// ClearContent clears the value of the "content" field. -func (m *InvocationFilesMutation) ClearContent() { - m.content = nil - m.clearedFields[invocationfiles.FieldContent] = struct{}{} +// SetID sets the value of the id field. Note that this +// operation is only accepted on creation of InstanceName entities. +func (m *InstanceNameMutation) SetID(id int64) { + m.id = &id } -// ContentCleared returns if the "content" field was cleared in this mutation. -func (m *InvocationFilesMutation) ContentCleared() bool { - _, ok := m.clearedFields[invocationfiles.FieldContent] - return ok +// ID returns the ID value in the mutation. Note that the ID is only available +// if it was provided to the builder or after it was returned from the database. +func (m *InstanceNameMutation) ID() (id int64, exists bool) { + if m.id == nil { + return + } + return *m.id, true } -// ResetContent resets all changes to the "content" field. -func (m *InvocationFilesMutation) ResetContent() { - m.content = nil - delete(m.clearedFields, invocationfiles.FieldContent) +// IDs queries the database and returns the entity ids that match the mutation's predicate. +// That means, if the mutation is applied within a transaction with an isolation level such +// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated +// or updated by the mutation. +func (m *InstanceNameMutation) IDs(ctx context.Context) ([]int64, error) { + switch { + case m.op.Is(OpUpdateOne | OpDeleteOne): + id, exists := m.ID() + if exists { + return []int64{id}, nil + } + fallthrough + case m.op.Is(OpUpdate | OpDelete): + return m.Client().InstanceName.Query().Where(m.predicates...).IDs(ctx) + default: + return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) + } } -// SetDigest sets the "digest" field. -func (m *InvocationFilesMutation) SetDigest(s string) { - m.digest = &s +// SetName sets the "name" field. +func (m *InstanceNameMutation) SetName(s string) { + m.name = &s } -// Digest returns the value of the "digest" field in the mutation. -func (m *InvocationFilesMutation) Digest() (r string, exists bool) { - v := m.digest +// Name returns the value of the "name" field in the mutation. +func (m *InstanceNameMutation) Name() (r string, exists bool) { + v := m.name if v == nil { return } return *v, true } -// OldDigest returns the old "digest" field's value of the InvocationFiles entity. -// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. +// OldName returns the old "name" field's value of the InstanceName entity. +// If the InstanceName object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationFilesMutation) OldDigest(ctx context.Context) (v string, err error) { +func (m *InstanceNameMutation) OldName(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldDigest is only allowed on UpdateOne operations") + return v, errors.New("OldName is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldDigest requires an ID field in the mutation") + return v, errors.New("OldName requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldDigest: %w", err) + return v, fmt.Errorf("querying old value for OldName: %w", err) } - return oldValue.Digest, nil -} - -// ClearDigest clears the value of the "digest" field. -func (m *InvocationFilesMutation) ClearDigest() { - m.digest = nil - m.clearedFields[invocationfiles.FieldDigest] = struct{}{} + return oldValue.Name, nil } -// DigestCleared returns if the "digest" field was cleared in this mutation. -func (m *InvocationFilesMutation) DigestCleared() bool { - _, ok := m.clearedFields[invocationfiles.FieldDigest] - return ok +// ResetName resets all changes to the "name" field. +func (m *InstanceNameMutation) ResetName() { + m.name = nil } -// ResetDigest resets all changes to the "digest" field. -func (m *InvocationFilesMutation) ResetDigest() { - m.digest = nil - delete(m.clearedFields, invocationfiles.FieldDigest) +// AddBazelInvocationIDs adds the "bazel_invocations" edge to the BazelInvocation entity by ids. +func (m *InstanceNameMutation) AddBazelInvocationIDs(ids ...int64) { + if m.bazel_invocations == nil { + m.bazel_invocations = make(map[int64]struct{}) + } + for i := range ids { + m.bazel_invocations[ids[i]] = struct{}{} + } } -// SetSizeBytes sets the "size_bytes" field. -func (m *InvocationFilesMutation) SetSizeBytes(i int64) { - m.size_bytes = &i - m.addsize_bytes = nil +// ClearBazelInvocations clears the "bazel_invocations" edge to the BazelInvocation entity. +func (m *InstanceNameMutation) ClearBazelInvocations() { + m.clearedbazel_invocations = true } -// SizeBytes returns the value of the "size_bytes" field in the mutation. -func (m *InvocationFilesMutation) SizeBytes() (r int64, exists bool) { - v := m.size_bytes - if v == nil { - return - } - return *v, true +// BazelInvocationsCleared reports if the "bazel_invocations" edge to the BazelInvocation entity was cleared. +func (m *InstanceNameMutation) BazelInvocationsCleared() bool { + return m.clearedbazel_invocations } -// OldSizeBytes returns the old "size_bytes" field's value of the InvocationFiles entity. -// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationFilesMutation) OldSizeBytes(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldSizeBytes is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldSizeBytes requires an ID field in the mutation") +// RemoveBazelInvocationIDs removes the "bazel_invocations" edge to the BazelInvocation entity by IDs. +func (m *InstanceNameMutation) RemoveBazelInvocationIDs(ids ...int64) { + if m.removedbazel_invocations == nil { + m.removedbazel_invocations = make(map[int64]struct{}) } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldSizeBytes: %w", err) + for i := range ids { + delete(m.bazel_invocations, ids[i]) + m.removedbazel_invocations[ids[i]] = struct{}{} } - return oldValue.SizeBytes, nil } -// AddSizeBytes adds i to the "size_bytes" field. -func (m *InvocationFilesMutation) AddSizeBytes(i int64) { - if m.addsize_bytes != nil { - *m.addsize_bytes += i - } else { - m.addsize_bytes = &i +// RemovedBazelInvocations returns the removed IDs of the "bazel_invocations" edge to the BazelInvocation entity. +func (m *InstanceNameMutation) RemovedBazelInvocationsIDs() (ids []int64) { + for id := range m.removedbazel_invocations { + ids = append(ids, id) } + return } -// AddedSizeBytes returns the value that was added to the "size_bytes" field in this mutation. -func (m *InvocationFilesMutation) AddedSizeBytes() (r int64, exists bool) { - v := m.addsize_bytes - if v == nil { - return +// BazelInvocationsIDs returns the "bazel_invocations" edge IDs in the mutation. +func (m *InstanceNameMutation) BazelInvocationsIDs() (ids []int64) { + for id := range m.bazel_invocations { + ids = append(ids, id) } - return *v, true + return } -// ClearSizeBytes clears the value of the "size_bytes" field. -func (m *InvocationFilesMutation) ClearSizeBytes() { - m.size_bytes = nil - m.addsize_bytes = nil - m.clearedFields[invocationfiles.FieldSizeBytes] = struct{}{} +// ResetBazelInvocations resets all changes to the "bazel_invocations" edge. +func (m *InstanceNameMutation) ResetBazelInvocations() { + m.bazel_invocations = nil + m.clearedbazel_invocations = false + m.removedbazel_invocations = nil } -// SizeBytesCleared returns if the "size_bytes" field was cleared in this mutation. -func (m *InvocationFilesMutation) SizeBytesCleared() bool { - _, ok := m.clearedFields[invocationfiles.FieldSizeBytes] - return ok +// AddBuildIDs adds the "builds" edge to the Build entity by ids. +func (m *InstanceNameMutation) AddBuildIDs(ids ...int64) { + if m.builds == nil { + m.builds = make(map[int64]struct{}) + } + for i := range ids { + m.builds[ids[i]] = struct{}{} + } } -// ResetSizeBytes resets all changes to the "size_bytes" field. -func (m *InvocationFilesMutation) ResetSizeBytes() { - m.size_bytes = nil - m.addsize_bytes = nil - delete(m.clearedFields, invocationfiles.FieldSizeBytes) +// ClearBuilds clears the "builds" edge to the Build entity. +func (m *InstanceNameMutation) ClearBuilds() { + m.clearedbuilds = true } -// SetDigestFunction sets the "digest_function" field. -func (m *InvocationFilesMutation) SetDigestFunction(s string) { - m.digest_function = &s +// BuildsCleared reports if the "builds" edge to the Build entity was cleared. +func (m *InstanceNameMutation) BuildsCleared() bool { + return m.clearedbuilds } -// DigestFunction returns the value of the "digest_function" field in the mutation. -func (m *InvocationFilesMutation) DigestFunction() (r string, exists bool) { - v := m.digest_function - if v == nil { - return +// RemoveBuildIDs removes the "builds" edge to the Build entity by IDs. +func (m *InstanceNameMutation) RemoveBuildIDs(ids ...int64) { + if m.removedbuilds == nil { + m.removedbuilds = make(map[int64]struct{}) + } + for i := range ids { + delete(m.builds, ids[i]) + m.removedbuilds[ids[i]] = struct{}{} } - return *v, true } -// OldDigestFunction returns the old "digest_function" field's value of the InvocationFiles entity. -// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationFilesMutation) OldDigestFunction(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldDigestFunction is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldDigestFunction requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldDigestFunction: %w", err) +// RemovedBuilds returns the removed IDs of the "builds" edge to the Build entity. +func (m *InstanceNameMutation) RemovedBuildsIDs() (ids []int64) { + for id := range m.removedbuilds { + ids = append(ids, id) } - return oldValue.DigestFunction, nil + return } -// ClearDigestFunction clears the value of the "digest_function" field. -func (m *InvocationFilesMutation) ClearDigestFunction() { - m.digest_function = nil - m.clearedFields[invocationfiles.FieldDigestFunction] = struct{}{} +// BuildsIDs returns the "builds" edge IDs in the mutation. +func (m *InstanceNameMutation) BuildsIDs() (ids []int64) { + for id := range m.builds { + ids = append(ids, id) + } + return } -// DigestFunctionCleared returns if the "digest_function" field was cleared in this mutation. -func (m *InvocationFilesMutation) DigestFunctionCleared() bool { - _, ok := m.clearedFields[invocationfiles.FieldDigestFunction] - return ok +// ResetBuilds resets all changes to the "builds" edge. +func (m *InstanceNameMutation) ResetBuilds() { + m.builds = nil + m.clearedbuilds = false + m.removedbuilds = nil } -// ResetDigestFunction resets all changes to the "digest_function" field. -func (m *InvocationFilesMutation) ResetDigestFunction() { - m.digest_function = nil - delete(m.clearedFields, invocationfiles.FieldDigestFunction) +// AddTargetIDs adds the "targets" edge to the Target entity by ids. +func (m *InstanceNameMutation) AddTargetIDs(ids ...int64) { + if m.targets == nil { + m.targets = make(map[int64]struct{}) + } + for i := range ids { + m.targets[ids[i]] = struct{}{} + } } -// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. -func (m *InvocationFilesMutation) SetBazelInvocationID(id int64) { - m.bazel_invocation = &id +// ClearTargets clears the "targets" edge to the Target entity. +func (m *InstanceNameMutation) ClearTargets() { + m.clearedtargets = true } -// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *InvocationFilesMutation) ClearBazelInvocation() { - m.clearedbazel_invocation = true +// TargetsCleared reports if the "targets" edge to the Target entity was cleared. +func (m *InstanceNameMutation) TargetsCleared() bool { + return m.clearedtargets } -// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *InvocationFilesMutation) BazelInvocationCleared() bool { - return m.clearedbazel_invocation +// RemoveTargetIDs removes the "targets" edge to the Target entity by IDs. +func (m *InstanceNameMutation) RemoveTargetIDs(ids ...int64) { + if m.removedtargets == nil { + m.removedtargets = make(map[int64]struct{}) + } + for i := range ids { + delete(m.targets, ids[i]) + m.removedtargets[ids[i]] = struct{}{} + } } -// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. -func (m *InvocationFilesMutation) BazelInvocationID() (id int64, exists bool) { - if m.bazel_invocation != nil { - return *m.bazel_invocation, true +// RemovedTargets returns the removed IDs of the "targets" edge to the Target entity. +func (m *InstanceNameMutation) RemovedTargetsIDs() (ids []int64) { + for id := range m.removedtargets { + ids = append(ids, id) } return } -// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *InvocationFilesMutation) BazelInvocationIDs() (ids []int64) { - if id := m.bazel_invocation; id != nil { - ids = append(ids, *id) +// TargetsIDs returns the "targets" edge IDs in the mutation. +func (m *InstanceNameMutation) TargetsIDs() (ids []int64) { + for id := range m.targets { + ids = append(ids, id) } return } -// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *InvocationFilesMutation) ResetBazelInvocation() { - m.bazel_invocation = nil - m.clearedbazel_invocation = false +// ResetTargets resets all changes to the "targets" edge. +func (m *InstanceNameMutation) ResetTargets() { + m.targets = nil + m.clearedtargets = false + m.removedtargets = nil } -// Where appends a list predicates to the InvocationFilesMutation builder. -func (m *InvocationFilesMutation) Where(ps ...predicate.InvocationFiles) { +// Where appends a list predicates to the InstanceNameMutation builder. +func (m *InstanceNameMutation) Where(ps ...predicate.InstanceName) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the InvocationFilesMutation builder. Using this method, +// WhereP appends storage-level predicates to the InstanceNameMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *InvocationFilesMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.InvocationFiles, len(ps)) +func (m *InstanceNameMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.InstanceName, len(ps)) for i := range ps { p[i] = ps[i] } @@ -16314,39 +15835,27 @@ func (m *InvocationFilesMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *InvocationFilesMutation) Op() Op { +func (m *InstanceNameMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *InvocationFilesMutation) SetOp(op Op) { +func (m *InstanceNameMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (InvocationFiles). -func (m *InvocationFilesMutation) Type() string { +// Type returns the node type of this mutation (InstanceName). +func (m *InstanceNameMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *InvocationFilesMutation) Fields() []string { - fields := make([]string, 0, 5) +func (m *InstanceNameMutation) Fields() []string { + fields := make([]string, 0, 1) if m.name != nil { - fields = append(fields, invocationfiles.FieldName) - } - if m.content != nil { - fields = append(fields, invocationfiles.FieldContent) - } - if m.digest != nil { - fields = append(fields, invocationfiles.FieldDigest) - } - if m.size_bytes != nil { - fields = append(fields, invocationfiles.FieldSizeBytes) - } - if m.digest_function != nil { - fields = append(fields, invocationfiles.FieldDigestFunction) + fields = append(fields, instancename.FieldName) } return fields } @@ -16354,18 +15863,10 @@ func (m *InvocationFilesMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *InvocationFilesMutation) Field(name string) (ent.Value, bool) { +func (m *InstanceNameMutation) Field(name string) (ent.Value, bool) { switch name { - case invocationfiles.FieldName: + case instancename.FieldName: return m.Name() - case invocationfiles.FieldContent: - return m.Content() - case invocationfiles.FieldDigest: - return m.Digest() - case invocationfiles.FieldSizeBytes: - return m.SizeBytes() - case invocationfiles.FieldDigestFunction: - return m.DigestFunction() } return nil, false } @@ -16373,289 +15874,249 @@ func (m *InvocationFilesMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *InvocationFilesMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *InstanceNameMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case invocationfiles.FieldName: + case instancename.FieldName: return m.OldName(ctx) - case invocationfiles.FieldContent: - return m.OldContent(ctx) - case invocationfiles.FieldDigest: - return m.OldDigest(ctx) - case invocationfiles.FieldSizeBytes: - return m.OldSizeBytes(ctx) - case invocationfiles.FieldDigestFunction: - return m.OldDigestFunction(ctx) } - return nil, fmt.Errorf("unknown InvocationFiles field %s", name) + return nil, fmt.Errorf("unknown InstanceName field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *InvocationFilesMutation) SetField(name string, value ent.Value) error { +func (m *InstanceNameMutation) SetField(name string, value ent.Value) error { switch name { - case invocationfiles.FieldName: + case instancename.FieldName: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } m.SetName(v) return nil - case invocationfiles.FieldContent: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetContent(v) - return nil - case invocationfiles.FieldDigest: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetDigest(v) - return nil - case invocationfiles.FieldSizeBytes: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetSizeBytes(v) - return nil - case invocationfiles.FieldDigestFunction: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetDigestFunction(v) - return nil } - return fmt.Errorf("unknown InvocationFiles field %s", name) + return fmt.Errorf("unknown InstanceName field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *InvocationFilesMutation) AddedFields() []string { - var fields []string - if m.addsize_bytes != nil { - fields = append(fields, invocationfiles.FieldSizeBytes) - } - return fields +func (m *InstanceNameMutation) AddedFields() []string { + return nil } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *InvocationFilesMutation) AddedField(name string) (ent.Value, bool) { - switch name { - case invocationfiles.FieldSizeBytes: - return m.AddedSizeBytes() - } +func (m *InstanceNameMutation) AddedField(name string) (ent.Value, bool) { return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *InvocationFilesMutation) AddField(name string, value ent.Value) error { +func (m *InstanceNameMutation) AddField(name string, value ent.Value) error { switch name { - case invocationfiles.FieldSizeBytes: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddSizeBytes(v) - return nil } - return fmt.Errorf("unknown InvocationFiles numeric field %s", name) + return fmt.Errorf("unknown InstanceName numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *InvocationFilesMutation) ClearedFields() []string { - var fields []string - if m.FieldCleared(invocationfiles.FieldContent) { - fields = append(fields, invocationfiles.FieldContent) - } - if m.FieldCleared(invocationfiles.FieldDigest) { - fields = append(fields, invocationfiles.FieldDigest) - } - if m.FieldCleared(invocationfiles.FieldSizeBytes) { - fields = append(fields, invocationfiles.FieldSizeBytes) - } - if m.FieldCleared(invocationfiles.FieldDigestFunction) { - fields = append(fields, invocationfiles.FieldDigestFunction) - } - return fields +func (m *InstanceNameMutation) ClearedFields() []string { + return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *InvocationFilesMutation) FieldCleared(name string) bool { +func (m *InstanceNameMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *InvocationFilesMutation) ClearField(name string) error { - switch name { - case invocationfiles.FieldContent: - m.ClearContent() - return nil - case invocationfiles.FieldDigest: - m.ClearDigest() - return nil - case invocationfiles.FieldSizeBytes: - m.ClearSizeBytes() - return nil - case invocationfiles.FieldDigestFunction: - m.ClearDigestFunction() - return nil - } - return fmt.Errorf("unknown InvocationFiles nullable field %s", name) +func (m *InstanceNameMutation) ClearField(name string) error { + return fmt.Errorf("unknown InstanceName nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *InvocationFilesMutation) ResetField(name string) error { +func (m *InstanceNameMutation) ResetField(name string) error { switch name { - case invocationfiles.FieldName: + case instancename.FieldName: m.ResetName() return nil - case invocationfiles.FieldContent: - m.ResetContent() - return nil - case invocationfiles.FieldDigest: - m.ResetDigest() - return nil - case invocationfiles.FieldSizeBytes: - m.ResetSizeBytes() - return nil - case invocationfiles.FieldDigestFunction: - m.ResetDigestFunction() - return nil } - return fmt.Errorf("unknown InvocationFiles field %s", name) + return fmt.Errorf("unknown InstanceName field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *InvocationFilesMutation) AddedEdges() []string { - edges := make([]string, 0, 1) - if m.bazel_invocation != nil { - edges = append(edges, invocationfiles.EdgeBazelInvocation) +func (m *InstanceNameMutation) AddedEdges() []string { + edges := make([]string, 0, 3) + if m.bazel_invocations != nil { + edges = append(edges, instancename.EdgeBazelInvocations) + } + if m.builds != nil { + edges = append(edges, instancename.EdgeBuilds) + } + if m.targets != nil { + edges = append(edges, instancename.EdgeTargets) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *InvocationFilesMutation) AddedIDs(name string) []ent.Value { +func (m *InstanceNameMutation) AddedIDs(name string) []ent.Value { switch name { - case invocationfiles.EdgeBazelInvocation: - if id := m.bazel_invocation; id != nil { - return []ent.Value{*id} + case instancename.EdgeBazelInvocations: + ids := make([]ent.Value, 0, len(m.bazel_invocations)) + for id := range m.bazel_invocations { + ids = append(ids, id) + } + return ids + case instancename.EdgeBuilds: + ids := make([]ent.Value, 0, len(m.builds)) + for id := range m.builds { + ids = append(ids, id) + } + return ids + case instancename.EdgeTargets: + ids := make([]ent.Value, 0, len(m.targets)) + for id := range m.targets { + ids = append(ids, id) } + return ids } return nil } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *InvocationFilesMutation) RemovedEdges() []string { - edges := make([]string, 0, 1) +func (m *InstanceNameMutation) RemovedEdges() []string { + edges := make([]string, 0, 3) + if m.removedbazel_invocations != nil { + edges = append(edges, instancename.EdgeBazelInvocations) + } + if m.removedbuilds != nil { + edges = append(edges, instancename.EdgeBuilds) + } + if m.removedtargets != nil { + edges = append(edges, instancename.EdgeTargets) + } return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *InvocationFilesMutation) RemovedIDs(name string) []ent.Value { +func (m *InstanceNameMutation) RemovedIDs(name string) []ent.Value { + switch name { + case instancename.EdgeBazelInvocations: + ids := make([]ent.Value, 0, len(m.removedbazel_invocations)) + for id := range m.removedbazel_invocations { + ids = append(ids, id) + } + return ids + case instancename.EdgeBuilds: + ids := make([]ent.Value, 0, len(m.removedbuilds)) + for id := range m.removedbuilds { + ids = append(ids, id) + } + return ids + case instancename.EdgeTargets: + ids := make([]ent.Value, 0, len(m.removedtargets)) + for id := range m.removedtargets { + ids = append(ids, id) + } + return ids + } return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *InvocationFilesMutation) ClearedEdges() []string { - edges := make([]string, 0, 1) - if m.clearedbazel_invocation { - edges = append(edges, invocationfiles.EdgeBazelInvocation) +func (m *InstanceNameMutation) ClearedEdges() []string { + edges := make([]string, 0, 3) + if m.clearedbazel_invocations { + edges = append(edges, instancename.EdgeBazelInvocations) + } + if m.clearedbuilds { + edges = append(edges, instancename.EdgeBuilds) + } + if m.clearedtargets { + edges = append(edges, instancename.EdgeTargets) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *InvocationFilesMutation) EdgeCleared(name string) bool { +func (m *InstanceNameMutation) EdgeCleared(name string) bool { switch name { - case invocationfiles.EdgeBazelInvocation: - return m.clearedbazel_invocation + case instancename.EdgeBazelInvocations: + return m.clearedbazel_invocations + case instancename.EdgeBuilds: + return m.clearedbuilds + case instancename.EdgeTargets: + return m.clearedtargets } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *InvocationFilesMutation) ClearEdge(name string) error { +func (m *InstanceNameMutation) ClearEdge(name string) error { switch name { - case invocationfiles.EdgeBazelInvocation: - m.ClearBazelInvocation() - return nil } - return fmt.Errorf("unknown InvocationFiles unique edge %s", name) + return fmt.Errorf("unknown InstanceName unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *InvocationFilesMutation) ResetEdge(name string) error { +func (m *InstanceNameMutation) ResetEdge(name string) error { switch name { - case invocationfiles.EdgeBazelInvocation: - m.ResetBazelInvocation() + case instancename.EdgeBazelInvocations: + m.ResetBazelInvocations() + return nil + case instancename.EdgeBuilds: + m.ResetBuilds() + return nil + case instancename.EdgeTargets: + m.ResetTargets() return nil } - return fmt.Errorf("unknown InvocationFiles edge %s", name) + return fmt.Errorf("unknown InstanceName edge %s", name) } -// InvocationTargetMutation represents an operation that mutates the InvocationTarget nodes in the graph. -type InvocationTargetMutation struct { +// InvocationFilesMutation represents an operation that mutates the InvocationFiles nodes in the graph. +type InvocationFilesMutation struct { config op Op typ string id *int64 - success *bool - tags *[]string - appendtags []string - start_time_in_ms *int64 - addstart_time_in_ms *int64 - end_time_in_ms *int64 - addend_time_in_ms *int64 - duration_in_ms *int64 - addduration_in_ms *int64 - failure_message *string - abort_reason *invocationtarget.AbortReason + name *string + content *string + digest *string + size_bytes *int64 + addsize_bytes *int64 + digest_function *string clearedFields map[string]struct{} bazel_invocation *int64 clearedbazel_invocation bool - target *int64 - clearedtarget bool - configuration *int64 - clearedconfiguration bool - test_summary map[int64]struct{} - removedtest_summary map[int64]struct{} - clearedtest_summary bool done bool - oldValue func(context.Context) (*InvocationTarget, error) - predicates []predicate.InvocationTarget + oldValue func(context.Context) (*InvocationFiles, error) + predicates []predicate.InvocationFiles } -var _ ent.Mutation = (*InvocationTargetMutation)(nil) +var _ ent.Mutation = (*InvocationFilesMutation)(nil) -// invocationtargetOption allows management of the mutation configuration using functional options. -type invocationtargetOption func(*InvocationTargetMutation) +// invocationfilesOption allows management of the mutation configuration using functional options. +type invocationfilesOption func(*InvocationFilesMutation) -// newInvocationTargetMutation creates new mutation for the InvocationTarget entity. -func newInvocationTargetMutation(c config, op Op, opts ...invocationtargetOption) *InvocationTargetMutation { - m := &InvocationTargetMutation{ +// newInvocationFilesMutation creates new mutation for the InvocationFiles entity. +func newInvocationFilesMutation(c config, op Op, opts ...invocationfilesOption) *InvocationFilesMutation { + m := &InvocationFilesMutation{ config: c, op: op, - typ: TypeInvocationTarget, + typ: TypeInvocationFiles, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -16664,20 +16125,20 @@ func newInvocationTargetMutation(c config, op Op, opts ...invocationtargetOption return m } -// withInvocationTargetID sets the ID field of the mutation. -func withInvocationTargetID(id int64) invocationtargetOption { - return func(m *InvocationTargetMutation) { +// withInvocationFilesID sets the ID field of the mutation. +func withInvocationFilesID(id int64) invocationfilesOption { + return func(m *InvocationFilesMutation) { var ( err error once sync.Once - value *InvocationTarget + value *InvocationFiles ) - m.oldValue = func(ctx context.Context) (*InvocationTarget, error) { + m.oldValue = func(ctx context.Context) (*InvocationFiles, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().InvocationTarget.Get(ctx, id) + value, err = m.Client().InvocationFiles.Get(ctx, id) } }) return value, err @@ -16686,10 +16147,10 @@ func withInvocationTargetID(id int64) invocationtargetOption { } } -// withInvocationTarget sets the old InvocationTarget of the mutation. -func withInvocationTarget(node *InvocationTarget) invocationtargetOption { - return func(m *InvocationTargetMutation) { - m.oldValue = func(context.Context) (*InvocationTarget, error) { +// withInvocationFiles sets the old InvocationFiles of the mutation. +func withInvocationFiles(node *InvocationFiles) invocationfilesOption { + return func(m *InvocationFilesMutation) { + m.oldValue = func(context.Context) (*InvocationFiles, error) { return node, nil } m.id = &node.ID @@ -16698,7 +16159,7 @@ func withInvocationTarget(node *InvocationTarget) invocationtargetOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m InvocationTargetMutation) Client() *Client { +func (m InvocationFilesMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -16706,625 +16167,920 @@ func (m InvocationTargetMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m InvocationTargetMutation) Tx() (*Tx, error) { +func (m InvocationFilesMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } - tx := &Tx{config: m.config} - tx.init() - return tx, nil + tx := &Tx{config: m.config} + tx.init() + return tx, nil +} + +// SetID sets the value of the id field. Note that this +// operation is only accepted on creation of InvocationFiles entities. +func (m *InvocationFilesMutation) SetID(id int64) { + m.id = &id +} + +// ID returns the ID value in the mutation. Note that the ID is only available +// if it was provided to the builder or after it was returned from the database. +func (m *InvocationFilesMutation) ID() (id int64, exists bool) { + if m.id == nil { + return + } + return *m.id, true +} + +// IDs queries the database and returns the entity ids that match the mutation's predicate. +// That means, if the mutation is applied within a transaction with an isolation level such +// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated +// or updated by the mutation. +func (m *InvocationFilesMutation) IDs(ctx context.Context) ([]int64, error) { + switch { + case m.op.Is(OpUpdateOne | OpDeleteOne): + id, exists := m.ID() + if exists { + return []int64{id}, nil + } + fallthrough + case m.op.Is(OpUpdate | OpDelete): + return m.Client().InvocationFiles.Query().Where(m.predicates...).IDs(ctx) + default: + return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) + } +} + +// SetName sets the "name" field. +func (m *InvocationFilesMutation) SetName(s string) { + m.name = &s +} + +// Name returns the value of the "name" field in the mutation. +func (m *InvocationFilesMutation) Name() (r string, exists bool) { + v := m.name + if v == nil { + return + } + return *v, true +} + +// OldName returns the old "name" field's value of the InvocationFiles entity. +// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationFilesMutation) OldName(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldName is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldName requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldName: %w", err) + } + return oldValue.Name, nil +} + +// ResetName resets all changes to the "name" field. +func (m *InvocationFilesMutation) ResetName() { + m.name = nil +} + +// SetContent sets the "content" field. +func (m *InvocationFilesMutation) SetContent(s string) { + m.content = &s +} + +// Content returns the value of the "content" field in the mutation. +func (m *InvocationFilesMutation) Content() (r string, exists bool) { + v := m.content + if v == nil { + return + } + return *v, true +} + +// OldContent returns the old "content" field's value of the InvocationFiles entity. +// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationFilesMutation) OldContent(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldContent is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldContent requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldContent: %w", err) + } + return oldValue.Content, nil } -// SetID sets the value of the id field. Note that this -// operation is only accepted on creation of InvocationTarget entities. -func (m *InvocationTargetMutation) SetID(id int64) { - m.id = &id +// ClearContent clears the value of the "content" field. +func (m *InvocationFilesMutation) ClearContent() { + m.content = nil + m.clearedFields[invocationfiles.FieldContent] = struct{}{} } -// ID returns the ID value in the mutation. Note that the ID is only available -// if it was provided to the builder or after it was returned from the database. -func (m *InvocationTargetMutation) ID() (id int64, exists bool) { - if m.id == nil { - return - } - return *m.id, true +// ContentCleared returns if the "content" field was cleared in this mutation. +func (m *InvocationFilesMutation) ContentCleared() bool { + _, ok := m.clearedFields[invocationfiles.FieldContent] + return ok } -// IDs queries the database and returns the entity ids that match the mutation's predicate. -// That means, if the mutation is applied within a transaction with an isolation level such -// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated -// or updated by the mutation. -func (m *InvocationTargetMutation) IDs(ctx context.Context) ([]int64, error) { - switch { - case m.op.Is(OpUpdateOne | OpDeleteOne): - id, exists := m.ID() - if exists { - return []int64{id}, nil - } - fallthrough - case m.op.Is(OpUpdate | OpDelete): - return m.Client().InvocationTarget.Query().Where(m.predicates...).IDs(ctx) - default: - return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) - } +// ResetContent resets all changes to the "content" field. +func (m *InvocationFilesMutation) ResetContent() { + m.content = nil + delete(m.clearedFields, invocationfiles.FieldContent) } -// SetSuccess sets the "success" field. -func (m *InvocationTargetMutation) SetSuccess(b bool) { - m.success = &b +// SetDigest sets the "digest" field. +func (m *InvocationFilesMutation) SetDigest(s string) { + m.digest = &s } -// Success returns the value of the "success" field in the mutation. -func (m *InvocationTargetMutation) Success() (r bool, exists bool) { - v := m.success +// Digest returns the value of the "digest" field in the mutation. +func (m *InvocationFilesMutation) Digest() (r string, exists bool) { + v := m.digest if v == nil { return } return *v, true } -// OldSuccess returns the old "success" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// OldDigest returns the old "digest" field's value of the InvocationFiles entity. +// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldSuccess(ctx context.Context) (v bool, err error) { +func (m *InvocationFilesMutation) OldDigest(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldSuccess is only allowed on UpdateOne operations") + return v, errors.New("OldDigest is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldSuccess requires an ID field in the mutation") + return v, errors.New("OldDigest requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldSuccess: %w", err) + return v, fmt.Errorf("querying old value for OldDigest: %w", err) } - return oldValue.Success, nil + return oldValue.Digest, nil } -// ResetSuccess resets all changes to the "success" field. -func (m *InvocationTargetMutation) ResetSuccess() { - m.success = nil +// ClearDigest clears the value of the "digest" field. +func (m *InvocationFilesMutation) ClearDigest() { + m.digest = nil + m.clearedFields[invocationfiles.FieldDigest] = struct{}{} } -// SetTags sets the "tags" field. -func (m *InvocationTargetMutation) SetTags(s []string) { - m.tags = &s - m.appendtags = nil +// DigestCleared returns if the "digest" field was cleared in this mutation. +func (m *InvocationFilesMutation) DigestCleared() bool { + _, ok := m.clearedFields[invocationfiles.FieldDigest] + return ok } -// Tags returns the value of the "tags" field in the mutation. -func (m *InvocationTargetMutation) Tags() (r []string, exists bool) { - v := m.tags +// ResetDigest resets all changes to the "digest" field. +func (m *InvocationFilesMutation) ResetDigest() { + m.digest = nil + delete(m.clearedFields, invocationfiles.FieldDigest) +} + +// SetSizeBytes sets the "size_bytes" field. +func (m *InvocationFilesMutation) SetSizeBytes(i int64) { + m.size_bytes = &i + m.addsize_bytes = nil +} + +// SizeBytes returns the value of the "size_bytes" field in the mutation. +func (m *InvocationFilesMutation) SizeBytes() (r int64, exists bool) { + v := m.size_bytes if v == nil { return } return *v, true } -// OldTags returns the old "tags" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// OldSizeBytes returns the old "size_bytes" field's value of the InvocationFiles entity. +// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldTags(ctx context.Context) (v []string, err error) { +func (m *InvocationFilesMutation) OldSizeBytes(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldTags is only allowed on UpdateOne operations") + return v, errors.New("OldSizeBytes is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldTags requires an ID field in the mutation") + return v, errors.New("OldSizeBytes requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldTags: %w", err) + return v, fmt.Errorf("querying old value for OldSizeBytes: %w", err) } - return oldValue.Tags, nil + return oldValue.SizeBytes, nil } -// AppendTags adds s to the "tags" field. -func (m *InvocationTargetMutation) AppendTags(s []string) { - m.appendtags = append(m.appendtags, s...) +// AddSizeBytes adds i to the "size_bytes" field. +func (m *InvocationFilesMutation) AddSizeBytes(i int64) { + if m.addsize_bytes != nil { + *m.addsize_bytes += i + } else { + m.addsize_bytes = &i + } } -// AppendedTags returns the list of values that were appended to the "tags" field in this mutation. -func (m *InvocationTargetMutation) AppendedTags() ([]string, bool) { - if len(m.appendtags) == 0 { - return nil, false +// AddedSizeBytes returns the value that was added to the "size_bytes" field in this mutation. +func (m *InvocationFilesMutation) AddedSizeBytes() (r int64, exists bool) { + v := m.addsize_bytes + if v == nil { + return } - return m.appendtags, true + return *v, true } -// ClearTags clears the value of the "tags" field. -func (m *InvocationTargetMutation) ClearTags() { - m.tags = nil - m.appendtags = nil - m.clearedFields[invocationtarget.FieldTags] = struct{}{} +// ClearSizeBytes clears the value of the "size_bytes" field. +func (m *InvocationFilesMutation) ClearSizeBytes() { + m.size_bytes = nil + m.addsize_bytes = nil + m.clearedFields[invocationfiles.FieldSizeBytes] = struct{}{} } -// TagsCleared returns if the "tags" field was cleared in this mutation. -func (m *InvocationTargetMutation) TagsCleared() bool { - _, ok := m.clearedFields[invocationtarget.FieldTags] +// SizeBytesCleared returns if the "size_bytes" field was cleared in this mutation. +func (m *InvocationFilesMutation) SizeBytesCleared() bool { + _, ok := m.clearedFields[invocationfiles.FieldSizeBytes] return ok } -// ResetTags resets all changes to the "tags" field. -func (m *InvocationTargetMutation) ResetTags() { - m.tags = nil - m.appendtags = nil - delete(m.clearedFields, invocationtarget.FieldTags) +// ResetSizeBytes resets all changes to the "size_bytes" field. +func (m *InvocationFilesMutation) ResetSizeBytes() { + m.size_bytes = nil + m.addsize_bytes = nil + delete(m.clearedFields, invocationfiles.FieldSizeBytes) } -// SetStartTimeInMs sets the "start_time_in_ms" field. -func (m *InvocationTargetMutation) SetStartTimeInMs(i int64) { - m.start_time_in_ms = &i - m.addstart_time_in_ms = nil +// SetDigestFunction sets the "digest_function" field. +func (m *InvocationFilesMutation) SetDigestFunction(s string) { + m.digest_function = &s } -// StartTimeInMs returns the value of the "start_time_in_ms" field in the mutation. -func (m *InvocationTargetMutation) StartTimeInMs() (r int64, exists bool) { - v := m.start_time_in_ms +// DigestFunction returns the value of the "digest_function" field in the mutation. +func (m *InvocationFilesMutation) DigestFunction() (r string, exists bool) { + v := m.digest_function if v == nil { return } return *v, true } -// OldStartTimeInMs returns the old "start_time_in_ms" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// OldDigestFunction returns the old "digest_function" field's value of the InvocationFiles entity. +// If the InvocationFiles object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldStartTimeInMs(ctx context.Context) (v int64, err error) { +func (m *InvocationFilesMutation) OldDigestFunction(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldStartTimeInMs is only allowed on UpdateOne operations") + return v, errors.New("OldDigestFunction is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldStartTimeInMs requires an ID field in the mutation") + return v, errors.New("OldDigestFunction requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldStartTimeInMs: %w", err) + return v, fmt.Errorf("querying old value for OldDigestFunction: %w", err) } - return oldValue.StartTimeInMs, nil + return oldValue.DigestFunction, nil } -// AddStartTimeInMs adds i to the "start_time_in_ms" field. -func (m *InvocationTargetMutation) AddStartTimeInMs(i int64) { - if m.addstart_time_in_ms != nil { - *m.addstart_time_in_ms += i - } else { - m.addstart_time_in_ms = &i - } +// ClearDigestFunction clears the value of the "digest_function" field. +func (m *InvocationFilesMutation) ClearDigestFunction() { + m.digest_function = nil + m.clearedFields[invocationfiles.FieldDigestFunction] = struct{}{} } -// AddedStartTimeInMs returns the value that was added to the "start_time_in_ms" field in this mutation. -func (m *InvocationTargetMutation) AddedStartTimeInMs() (r int64, exists bool) { - v := m.addstart_time_in_ms - if v == nil { - return - } - return *v, true +// DigestFunctionCleared returns if the "digest_function" field was cleared in this mutation. +func (m *InvocationFilesMutation) DigestFunctionCleared() bool { + _, ok := m.clearedFields[invocationfiles.FieldDigestFunction] + return ok } -// ClearStartTimeInMs clears the value of the "start_time_in_ms" field. -func (m *InvocationTargetMutation) ClearStartTimeInMs() { - m.start_time_in_ms = nil - m.addstart_time_in_ms = nil - m.clearedFields[invocationtarget.FieldStartTimeInMs] = struct{}{} +// ResetDigestFunction resets all changes to the "digest_function" field. +func (m *InvocationFilesMutation) ResetDigestFunction() { + m.digest_function = nil + delete(m.clearedFields, invocationfiles.FieldDigestFunction) } -// StartTimeInMsCleared returns if the "start_time_in_ms" field was cleared in this mutation. -func (m *InvocationTargetMutation) StartTimeInMsCleared() bool { - _, ok := m.clearedFields[invocationtarget.FieldStartTimeInMs] - return ok +// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. +func (m *InvocationFilesMutation) SetBazelInvocationID(id int64) { + m.bazel_invocation = &id } -// ResetStartTimeInMs resets all changes to the "start_time_in_ms" field. -func (m *InvocationTargetMutation) ResetStartTimeInMs() { - m.start_time_in_ms = nil - m.addstart_time_in_ms = nil - delete(m.clearedFields, invocationtarget.FieldStartTimeInMs) +// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. +func (m *InvocationFilesMutation) ClearBazelInvocation() { + m.clearedbazel_invocation = true } -// SetEndTimeInMs sets the "end_time_in_ms" field. -func (m *InvocationTargetMutation) SetEndTimeInMs(i int64) { - m.end_time_in_ms = &i - m.addend_time_in_ms = nil +// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. +func (m *InvocationFilesMutation) BazelInvocationCleared() bool { + return m.clearedbazel_invocation +} + +// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. +func (m *InvocationFilesMutation) BazelInvocationID() (id int64, exists bool) { + if m.bazel_invocation != nil { + return *m.bazel_invocation, true + } + return } -// EndTimeInMs returns the value of the "end_time_in_ms" field in the mutation. -func (m *InvocationTargetMutation) EndTimeInMs() (r int64, exists bool) { - v := m.end_time_in_ms - if v == nil { - return +// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// BazelInvocationID instead. It exists only for internal usage by the builders. +func (m *InvocationFilesMutation) BazelInvocationIDs() (ids []int64) { + if id := m.bazel_invocation; id != nil { + ids = append(ids, *id) } - return *v, true + return } -// OldEndTimeInMs returns the old "end_time_in_ms" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldEndTimeInMs(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldEndTimeInMs is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldEndTimeInMs requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldEndTimeInMs: %w", err) - } - return oldValue.EndTimeInMs, nil +// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. +func (m *InvocationFilesMutation) ResetBazelInvocation() { + m.bazel_invocation = nil + m.clearedbazel_invocation = false } -// AddEndTimeInMs adds i to the "end_time_in_ms" field. -func (m *InvocationTargetMutation) AddEndTimeInMs(i int64) { - if m.addend_time_in_ms != nil { - *m.addend_time_in_ms += i - } else { - m.addend_time_in_ms = &i - } +// Where appends a list predicates to the InvocationFilesMutation builder. +func (m *InvocationFilesMutation) Where(ps ...predicate.InvocationFiles) { + m.predicates = append(m.predicates, ps...) } -// AddedEndTimeInMs returns the value that was added to the "end_time_in_ms" field in this mutation. -func (m *InvocationTargetMutation) AddedEndTimeInMs() (r int64, exists bool) { - v := m.addend_time_in_ms - if v == nil { - return +// WhereP appends storage-level predicates to the InvocationFilesMutation builder. Using this method, +// users can use type-assertion to append predicates that do not depend on any generated package. +func (m *InvocationFilesMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.InvocationFiles, len(ps)) + for i := range ps { + p[i] = ps[i] } - return *v, true + m.Where(p...) } -// ClearEndTimeInMs clears the value of the "end_time_in_ms" field. -func (m *InvocationTargetMutation) ClearEndTimeInMs() { - m.end_time_in_ms = nil - m.addend_time_in_ms = nil - m.clearedFields[invocationtarget.FieldEndTimeInMs] = struct{}{} +// Op returns the operation name. +func (m *InvocationFilesMutation) Op() Op { + return m.op } -// EndTimeInMsCleared returns if the "end_time_in_ms" field was cleared in this mutation. -func (m *InvocationTargetMutation) EndTimeInMsCleared() bool { - _, ok := m.clearedFields[invocationtarget.FieldEndTimeInMs] - return ok +// SetOp allows setting the mutation operation. +func (m *InvocationFilesMutation) SetOp(op Op) { + m.op = op } -// ResetEndTimeInMs resets all changes to the "end_time_in_ms" field. -func (m *InvocationTargetMutation) ResetEndTimeInMs() { - m.end_time_in_ms = nil - m.addend_time_in_ms = nil - delete(m.clearedFields, invocationtarget.FieldEndTimeInMs) +// Type returns the node type of this mutation (InvocationFiles). +func (m *InvocationFilesMutation) Type() string { + return m.typ } -// SetDurationInMs sets the "duration_in_ms" field. -func (m *InvocationTargetMutation) SetDurationInMs(i int64) { - m.duration_in_ms = &i - m.addduration_in_ms = nil +// Fields returns all fields that were changed during this mutation. Note that in +// order to get all numeric fields that were incremented/decremented, call +// AddedFields(). +func (m *InvocationFilesMutation) Fields() []string { + fields := make([]string, 0, 5) + if m.name != nil { + fields = append(fields, invocationfiles.FieldName) + } + if m.content != nil { + fields = append(fields, invocationfiles.FieldContent) + } + if m.digest != nil { + fields = append(fields, invocationfiles.FieldDigest) + } + if m.size_bytes != nil { + fields = append(fields, invocationfiles.FieldSizeBytes) + } + if m.digest_function != nil { + fields = append(fields, invocationfiles.FieldDigestFunction) + } + return fields } -// DurationInMs returns the value of the "duration_in_ms" field in the mutation. -func (m *InvocationTargetMutation) DurationInMs() (r int64, exists bool) { - v := m.duration_in_ms - if v == nil { - return +// Field returns the value of a field with the given name. The second boolean +// return value indicates that this field was not set, or was not defined in the +// schema. +func (m *InvocationFilesMutation) Field(name string) (ent.Value, bool) { + switch name { + case invocationfiles.FieldName: + return m.Name() + case invocationfiles.FieldContent: + return m.Content() + case invocationfiles.FieldDigest: + return m.Digest() + case invocationfiles.FieldSizeBytes: + return m.SizeBytes() + case invocationfiles.FieldDigestFunction: + return m.DigestFunction() } - return *v, true + return nil, false } -// OldDurationInMs returns the old "duration_in_ms" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldDurationInMs(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldDurationInMs is only allowed on UpdateOne operations") +// OldField returns the old value of the field from the database. An error is +// returned if the mutation operation is not UpdateOne, or the query to the +// database failed. +func (m *InvocationFilesMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + switch name { + case invocationfiles.FieldName: + return m.OldName(ctx) + case invocationfiles.FieldContent: + return m.OldContent(ctx) + case invocationfiles.FieldDigest: + return m.OldDigest(ctx) + case invocationfiles.FieldSizeBytes: + return m.OldSizeBytes(ctx) + case invocationfiles.FieldDigestFunction: + return m.OldDigestFunction(ctx) } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldDurationInMs requires an ID field in the mutation") + return nil, fmt.Errorf("unknown InvocationFiles field %s", name) +} + +// SetField sets the value of a field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *InvocationFilesMutation) SetField(name string, value ent.Value) error { + switch name { + case invocationfiles.FieldName: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetName(v) + return nil + case invocationfiles.FieldContent: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetContent(v) + return nil + case invocationfiles.FieldDigest: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetDigest(v) + return nil + case invocationfiles.FieldSizeBytes: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetSizeBytes(v) + return nil + case invocationfiles.FieldDigestFunction: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetDigestFunction(v) + return nil } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldDurationInMs: %w", err) + return fmt.Errorf("unknown InvocationFiles field %s", name) +} + +// AddedFields returns all numeric fields that were incremented/decremented during +// this mutation. +func (m *InvocationFilesMutation) AddedFields() []string { + var fields []string + if m.addsize_bytes != nil { + fields = append(fields, invocationfiles.FieldSizeBytes) } - return oldValue.DurationInMs, nil + return fields } -// AddDurationInMs adds i to the "duration_in_ms" field. -func (m *InvocationTargetMutation) AddDurationInMs(i int64) { - if m.addduration_in_ms != nil { - *m.addduration_in_ms += i - } else { - m.addduration_in_ms = &i +// AddedField returns the numeric value that was incremented/decremented on a field +// with the given name. The second boolean return value indicates that this field +// was not set, or was not defined in the schema. +func (m *InvocationFilesMutation) AddedField(name string) (ent.Value, bool) { + switch name { + case invocationfiles.FieldSizeBytes: + return m.AddedSizeBytes() } + return nil, false } -// AddedDurationInMs returns the value that was added to the "duration_in_ms" field in this mutation. -func (m *InvocationTargetMutation) AddedDurationInMs() (r int64, exists bool) { - v := m.addduration_in_ms - if v == nil { - return +// AddField adds the value to the field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *InvocationFilesMutation) AddField(name string, value ent.Value) error { + switch name { + case invocationfiles.FieldSizeBytes: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddSizeBytes(v) + return nil } - return *v, true + return fmt.Errorf("unknown InvocationFiles numeric field %s", name) } -// ClearDurationInMs clears the value of the "duration_in_ms" field. -func (m *InvocationTargetMutation) ClearDurationInMs() { - m.duration_in_ms = nil - m.addduration_in_ms = nil - m.clearedFields[invocationtarget.FieldDurationInMs] = struct{}{} +// ClearedFields returns all nullable fields that were cleared during this +// mutation. +func (m *InvocationFilesMutation) ClearedFields() []string { + var fields []string + if m.FieldCleared(invocationfiles.FieldContent) { + fields = append(fields, invocationfiles.FieldContent) + } + if m.FieldCleared(invocationfiles.FieldDigest) { + fields = append(fields, invocationfiles.FieldDigest) + } + if m.FieldCleared(invocationfiles.FieldSizeBytes) { + fields = append(fields, invocationfiles.FieldSizeBytes) + } + if m.FieldCleared(invocationfiles.FieldDigestFunction) { + fields = append(fields, invocationfiles.FieldDigestFunction) + } + return fields } -// DurationInMsCleared returns if the "duration_in_ms" field was cleared in this mutation. -func (m *InvocationTargetMutation) DurationInMsCleared() bool { - _, ok := m.clearedFields[invocationtarget.FieldDurationInMs] +// FieldCleared returns a boolean indicating if a field with the given name was +// cleared in this mutation. +func (m *InvocationFilesMutation) FieldCleared(name string) bool { + _, ok := m.clearedFields[name] return ok } -// ResetDurationInMs resets all changes to the "duration_in_ms" field. -func (m *InvocationTargetMutation) ResetDurationInMs() { - m.duration_in_ms = nil - m.addduration_in_ms = nil - delete(m.clearedFields, invocationtarget.FieldDurationInMs) +// ClearField clears the value of the field with the given name. It returns an +// error if the field is not defined in the schema. +func (m *InvocationFilesMutation) ClearField(name string) error { + switch name { + case invocationfiles.FieldContent: + m.ClearContent() + return nil + case invocationfiles.FieldDigest: + m.ClearDigest() + return nil + case invocationfiles.FieldSizeBytes: + m.ClearSizeBytes() + return nil + case invocationfiles.FieldDigestFunction: + m.ClearDigestFunction() + return nil + } + return fmt.Errorf("unknown InvocationFiles nullable field %s", name) } -// SetFailureMessage sets the "failure_message" field. -func (m *InvocationTargetMutation) SetFailureMessage(s string) { - m.failure_message = &s +// ResetField resets all changes in the mutation for the field with the given name. +// It returns an error if the field is not defined in the schema. +func (m *InvocationFilesMutation) ResetField(name string) error { + switch name { + case invocationfiles.FieldName: + m.ResetName() + return nil + case invocationfiles.FieldContent: + m.ResetContent() + return nil + case invocationfiles.FieldDigest: + m.ResetDigest() + return nil + case invocationfiles.FieldSizeBytes: + m.ResetSizeBytes() + return nil + case invocationfiles.FieldDigestFunction: + m.ResetDigestFunction() + return nil + } + return fmt.Errorf("unknown InvocationFiles field %s", name) } -// FailureMessage returns the value of the "failure_message" field in the mutation. -func (m *InvocationTargetMutation) FailureMessage() (r string, exists bool) { - v := m.failure_message - if v == nil { - return +// AddedEdges returns all edge names that were set/added in this mutation. +func (m *InvocationFilesMutation) AddedEdges() []string { + edges := make([]string, 0, 1) + if m.bazel_invocation != nil { + edges = append(edges, invocationfiles.EdgeBazelInvocation) } - return *v, true + return edges } -// OldFailureMessage returns the old "failure_message" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldFailureMessage(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldFailureMessage is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldFailureMessage requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldFailureMessage: %w", err) +// AddedIDs returns all IDs (to other nodes) that were added for the given edge +// name in this mutation. +func (m *InvocationFilesMutation) AddedIDs(name string) []ent.Value { + switch name { + case invocationfiles.EdgeBazelInvocation: + if id := m.bazel_invocation; id != nil { + return []ent.Value{*id} + } } - return oldValue.FailureMessage, nil + return nil } -// ClearFailureMessage clears the value of the "failure_message" field. -func (m *InvocationTargetMutation) ClearFailureMessage() { - m.failure_message = nil - m.clearedFields[invocationtarget.FieldFailureMessage] = struct{}{} +// RemovedEdges returns all edge names that were removed in this mutation. +func (m *InvocationFilesMutation) RemovedEdges() []string { + edges := make([]string, 0, 1) + return edges } -// FailureMessageCleared returns if the "failure_message" field was cleared in this mutation. -func (m *InvocationTargetMutation) FailureMessageCleared() bool { - _, ok := m.clearedFields[invocationtarget.FieldFailureMessage] - return ok +// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with +// the given name in this mutation. +func (m *InvocationFilesMutation) RemovedIDs(name string) []ent.Value { + return nil } -// ResetFailureMessage resets all changes to the "failure_message" field. -func (m *InvocationTargetMutation) ResetFailureMessage() { - m.failure_message = nil - delete(m.clearedFields, invocationtarget.FieldFailureMessage) +// ClearedEdges returns all edge names that were cleared in this mutation. +func (m *InvocationFilesMutation) ClearedEdges() []string { + edges := make([]string, 0, 1) + if m.clearedbazel_invocation { + edges = append(edges, invocationfiles.EdgeBazelInvocation) + } + return edges } -// SetAbortReason sets the "abort_reason" field. -func (m *InvocationTargetMutation) SetAbortReason(ir invocationtarget.AbortReason) { - m.abort_reason = &ir +// EdgeCleared returns a boolean which indicates if the edge with the given name +// was cleared in this mutation. +func (m *InvocationFilesMutation) EdgeCleared(name string) bool { + switch name { + case invocationfiles.EdgeBazelInvocation: + return m.clearedbazel_invocation + } + return false } -// AbortReason returns the value of the "abort_reason" field in the mutation. -func (m *InvocationTargetMutation) AbortReason() (r invocationtarget.AbortReason, exists bool) { - v := m.abort_reason - if v == nil { - return +// ClearEdge clears the value of the edge with the given name. It returns an error +// if that edge is not defined in the schema. +func (m *InvocationFilesMutation) ClearEdge(name string) error { + switch name { + case invocationfiles.EdgeBazelInvocation: + m.ClearBazelInvocation() + return nil } - return *v, true + return fmt.Errorf("unknown InvocationFiles unique edge %s", name) } -// OldAbortReason returns the old "abort_reason" field's value of the InvocationTarget entity. -// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *InvocationTargetMutation) OldAbortReason(ctx context.Context) (v invocationtarget.AbortReason, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldAbortReason is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldAbortReason requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldAbortReason: %w", err) +// ResetEdge resets all changes to the edge with the given name in this mutation. +// It returns an error if the edge is not defined in the schema. +func (m *InvocationFilesMutation) ResetEdge(name string) error { + switch name { + case invocationfiles.EdgeBazelInvocation: + m.ResetBazelInvocation() + return nil } - return oldValue.AbortReason, nil + return fmt.Errorf("unknown InvocationFiles edge %s", name) } -// ResetAbortReason resets all changes to the "abort_reason" field. -func (m *InvocationTargetMutation) ResetAbortReason() { - m.abort_reason = nil +// InvocationTagMutation represents an operation that mutates the InvocationTag nodes in the graph. +type InvocationTagMutation struct { + config + op Op + typ string + id *int64 + key *string + value *string + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + done bool + oldValue func(context.Context) (*InvocationTag, error) + predicates []predicate.InvocationTag } -// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. -func (m *InvocationTargetMutation) SetBazelInvocationID(id int64) { - m.bazel_invocation = &id -} +var _ ent.Mutation = (*InvocationTagMutation)(nil) -// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *InvocationTargetMutation) ClearBazelInvocation() { - m.clearedbazel_invocation = true +// invocationtagOption allows management of the mutation configuration using functional options. +type invocationtagOption func(*InvocationTagMutation) + +// newInvocationTagMutation creates new mutation for the InvocationTag entity. +func newInvocationTagMutation(c config, op Op, opts ...invocationtagOption) *InvocationTagMutation { + m := &InvocationTagMutation{ + config: c, + op: op, + typ: TypeInvocationTag, + clearedFields: make(map[string]struct{}), + } + for _, opt := range opts { + opt(m) + } + return m } -// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *InvocationTargetMutation) BazelInvocationCleared() bool { - return m.clearedbazel_invocation +// withInvocationTagID sets the ID field of the mutation. +func withInvocationTagID(id int64) invocationtagOption { + return func(m *InvocationTagMutation) { + var ( + err error + once sync.Once + value *InvocationTag + ) + m.oldValue = func(ctx context.Context) (*InvocationTag, error) { + once.Do(func() { + if m.done { + err = errors.New("querying old values post mutation is not allowed") + } else { + value, err = m.Client().InvocationTag.Get(ctx, id) + } + }) + return value, err + } + m.id = &id + } } -// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. -func (m *InvocationTargetMutation) BazelInvocationID() (id int64, exists bool) { - if m.bazel_invocation != nil { - return *m.bazel_invocation, true +// withInvocationTag sets the old InvocationTag of the mutation. +func withInvocationTag(node *InvocationTag) invocationtagOption { + return func(m *InvocationTagMutation) { + m.oldValue = func(context.Context) (*InvocationTag, error) { + return node, nil + } + m.id = &node.ID } - return } -// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *InvocationTargetMutation) BazelInvocationIDs() (ids []int64) { - if id := m.bazel_invocation; id != nil { - ids = append(ids, *id) +// Client returns a new `ent.Client` from the mutation. If the mutation was +// executed in a transaction (ent.Tx), a transactional client is returned. +func (m InvocationTagMutation) Client() *Client { + client := &Client{config: m.config} + client.init() + return client +} + +// Tx returns an `ent.Tx` for mutations that were executed in transactions; +// it returns an error otherwise. +func (m InvocationTagMutation) Tx() (*Tx, error) { + if _, ok := m.driver.(*txDriver); !ok { + return nil, errors.New("ent: mutation is not running in a transaction") } - return + tx := &Tx{config: m.config} + tx.init() + return tx, nil } -// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *InvocationTargetMutation) ResetBazelInvocation() { - m.bazel_invocation = nil - m.clearedbazel_invocation = false +// SetID sets the value of the id field. Note that this +// operation is only accepted on creation of InvocationTag entities. +func (m *InvocationTagMutation) SetID(id int64) { + m.id = &id } -// SetTargetID sets the "target" edge to the Target entity by id. -func (m *InvocationTargetMutation) SetTargetID(id int64) { - m.target = &id +// ID returns the ID value in the mutation. Note that the ID is only available +// if it was provided to the builder or after it was returned from the database. +func (m *InvocationTagMutation) ID() (id int64, exists bool) { + if m.id == nil { + return + } + return *m.id, true } -// ClearTarget clears the "target" edge to the Target entity. -func (m *InvocationTargetMutation) ClearTarget() { - m.clearedtarget = true +// IDs queries the database and returns the entity ids that match the mutation's predicate. +// That means, if the mutation is applied within a transaction with an isolation level such +// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated +// or updated by the mutation. +func (m *InvocationTagMutation) IDs(ctx context.Context) ([]int64, error) { + switch { + case m.op.Is(OpUpdateOne | OpDeleteOne): + id, exists := m.ID() + if exists { + return []int64{id}, nil + } + fallthrough + case m.op.Is(OpUpdate | OpDelete): + return m.Client().InvocationTag.Query().Where(m.predicates...).IDs(ctx) + default: + return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) + } } -// TargetCleared reports if the "target" edge to the Target entity was cleared. -func (m *InvocationTargetMutation) TargetCleared() bool { - return m.clearedtarget +// SetBazelInvocationID sets the "bazel_invocation_id" field. +func (m *InvocationTagMutation) SetBazelInvocationID(i int64) { + m.bazel_invocation = &i } -// TargetID returns the "target" edge ID in the mutation. -func (m *InvocationTargetMutation) TargetID() (id int64, exists bool) { - if m.target != nil { - return *m.target, true +// BazelInvocationID returns the value of the "bazel_invocation_id" field in the mutation. +func (m *InvocationTagMutation) BazelInvocationID() (r int64, exists bool) { + v := m.bazel_invocation + if v == nil { + return } - return + return *v, true } -// TargetIDs returns the "target" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// TargetID instead. It exists only for internal usage by the builders. -func (m *InvocationTargetMutation) TargetIDs() (ids []int64) { - if id := m.target; id != nil { - ids = append(ids, *id) +// OldBazelInvocationID returns the old "bazel_invocation_id" field's value of the InvocationTag entity. +// If the InvocationTag object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTagMutation) OldBazelInvocationID(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldBazelInvocationID is only allowed on UpdateOne operations") } - return -} - -// ResetTarget resets all changes to the "target" edge. -func (m *InvocationTargetMutation) ResetTarget() { - m.target = nil - m.clearedtarget = false + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldBazelInvocationID requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldBazelInvocationID: %w", err) + } + return oldValue.BazelInvocationID, nil } -// SetConfigurationID sets the "configuration" edge to the Configuration entity by id. -func (m *InvocationTargetMutation) SetConfigurationID(id int64) { - m.configuration = &id +// ResetBazelInvocationID resets all changes to the "bazel_invocation_id" field. +func (m *InvocationTagMutation) ResetBazelInvocationID() { + m.bazel_invocation = nil } -// ClearConfiguration clears the "configuration" edge to the Configuration entity. -func (m *InvocationTargetMutation) ClearConfiguration() { - m.clearedconfiguration = true +// SetKey sets the "key" field. +func (m *InvocationTagMutation) SetKey(s string) { + m.key = &s } -// ConfigurationCleared reports if the "configuration" edge to the Configuration entity was cleared. -func (m *InvocationTargetMutation) ConfigurationCleared() bool { - return m.clearedconfiguration +// Key returns the value of the "key" field in the mutation. +func (m *InvocationTagMutation) Key() (r string, exists bool) { + v := m.key + if v == nil { + return + } + return *v, true } -// ConfigurationID returns the "configuration" edge ID in the mutation. -func (m *InvocationTargetMutation) ConfigurationID() (id int64, exists bool) { - if m.configuration != nil { - return *m.configuration, true +// OldKey returns the old "key" field's value of the InvocationTag entity. +// If the InvocationTag object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTagMutation) OldKey(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldKey is only allowed on UpdateOne operations") } - return + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldKey requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldKey: %w", err) + } + return oldValue.Key, nil } -// ConfigurationIDs returns the "configuration" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// ConfigurationID instead. It exists only for internal usage by the builders. -func (m *InvocationTargetMutation) ConfigurationIDs() (ids []int64) { - if id := m.configuration; id != nil { - ids = append(ids, *id) - } - return +// ResetKey resets all changes to the "key" field. +func (m *InvocationTagMutation) ResetKey() { + m.key = nil } -// ResetConfiguration resets all changes to the "configuration" edge. -func (m *InvocationTargetMutation) ResetConfiguration() { - m.configuration = nil - m.clearedconfiguration = false +// SetValue sets the "value" field. +func (m *InvocationTagMutation) SetValue(s string) { + m.value = &s } -// AddTestSummaryIDs adds the "test_summary" edge to the TestSummary entity by ids. -func (m *InvocationTargetMutation) AddTestSummaryIDs(ids ...int64) { - if m.test_summary == nil { - m.test_summary = make(map[int64]struct{}) - } - for i := range ids { - m.test_summary[ids[i]] = struct{}{} +// Value returns the value of the "value" field in the mutation. +func (m *InvocationTagMutation) Value() (r string, exists bool) { + v := m.value + if v == nil { + return } + return *v, true } -// ClearTestSummary clears the "test_summary" edge to the TestSummary entity. -func (m *InvocationTargetMutation) ClearTestSummary() { - m.clearedtest_summary = true +// OldValue returns the old "value" field's value of the InvocationTag entity. +// If the InvocationTag object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTagMutation) OldValue(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldValue is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldValue requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldValue: %w", err) + } + return oldValue.Value, nil } -// TestSummaryCleared reports if the "test_summary" edge to the TestSummary entity was cleared. -func (m *InvocationTargetMutation) TestSummaryCleared() bool { - return m.clearedtest_summary +// ResetValue resets all changes to the "value" field. +func (m *InvocationTagMutation) ResetValue() { + m.value = nil } -// RemoveTestSummaryIDs removes the "test_summary" edge to the TestSummary entity by IDs. -func (m *InvocationTargetMutation) RemoveTestSummaryIDs(ids ...int64) { - if m.removedtest_summary == nil { - m.removedtest_summary = make(map[int64]struct{}) - } - for i := range ids { - delete(m.test_summary, ids[i]) - m.removedtest_summary[ids[i]] = struct{}{} - } +// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. +func (m *InvocationTagMutation) ClearBazelInvocation() { + m.clearedbazel_invocation = true + m.clearedFields[invocationtag.FieldBazelInvocationID] = struct{}{} } -// RemovedTestSummary returns the removed IDs of the "test_summary" edge to the TestSummary entity. -func (m *InvocationTargetMutation) RemovedTestSummaryIDs() (ids []int64) { - for id := range m.removedtest_summary { - ids = append(ids, id) - } - return +// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. +func (m *InvocationTagMutation) BazelInvocationCleared() bool { + return m.clearedbazel_invocation } -// TestSummaryIDs returns the "test_summary" edge IDs in the mutation. -func (m *InvocationTargetMutation) TestSummaryIDs() (ids []int64) { - for id := range m.test_summary { - ids = append(ids, id) +// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// BazelInvocationID instead. It exists only for internal usage by the builders. +func (m *InvocationTagMutation) BazelInvocationIDs() (ids []int64) { + if id := m.bazel_invocation; id != nil { + ids = append(ids, *id) } return } -// ResetTestSummary resets all changes to the "test_summary" edge. -func (m *InvocationTargetMutation) ResetTestSummary() { - m.test_summary = nil - m.clearedtest_summary = false - m.removedtest_summary = nil +// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. +func (m *InvocationTagMutation) ResetBazelInvocation() { + m.bazel_invocation = nil + m.clearedbazel_invocation = false } -// Where appends a list predicates to the InvocationTargetMutation builder. -func (m *InvocationTargetMutation) Where(ps ...predicate.InvocationTarget) { +// Where appends a list predicates to the InvocationTagMutation builder. +func (m *InvocationTagMutation) Where(ps ...predicate.InvocationTag) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the InvocationTargetMutation builder. Using this method, +// WhereP appends storage-level predicates to the InvocationTagMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *InvocationTargetMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.InvocationTarget, len(ps)) +func (m *InvocationTagMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.InvocationTag, len(ps)) for i := range ps { p[i] = ps[i] } @@ -17332,45 +17088,33 @@ func (m *InvocationTargetMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *InvocationTargetMutation) Op() Op { +func (m *InvocationTagMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *InvocationTargetMutation) SetOp(op Op) { +func (m *InvocationTagMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (InvocationTarget). -func (m *InvocationTargetMutation) Type() string { +// Type returns the node type of this mutation (InvocationTag). +func (m *InvocationTagMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *InvocationTargetMutation) Fields() []string { - fields := make([]string, 0, 7) - if m.success != nil { - fields = append(fields, invocationtarget.FieldSuccess) - } - if m.tags != nil { - fields = append(fields, invocationtarget.FieldTags) - } - if m.start_time_in_ms != nil { - fields = append(fields, invocationtarget.FieldStartTimeInMs) - } - if m.end_time_in_ms != nil { - fields = append(fields, invocationtarget.FieldEndTimeInMs) - } - if m.duration_in_ms != nil { - fields = append(fields, invocationtarget.FieldDurationInMs) +func (m *InvocationTagMutation) Fields() []string { + fields := make([]string, 0, 3) + if m.bazel_invocation != nil { + fields = append(fields, invocationtag.FieldBazelInvocationID) } - if m.failure_message != nil { - fields = append(fields, invocationtarget.FieldFailureMessage) + if m.key != nil { + fields = append(fields, invocationtag.FieldKey) } - if m.abort_reason != nil { - fields = append(fields, invocationtarget.FieldAbortReason) + if m.value != nil { + fields = append(fields, invocationtag.FieldValue) } return fields } @@ -17378,22 +17122,14 @@ func (m *InvocationTargetMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *InvocationTargetMutation) Field(name string) (ent.Value, bool) { +func (m *InvocationTagMutation) Field(name string) (ent.Value, bool) { switch name { - case invocationtarget.FieldSuccess: - return m.Success() - case invocationtarget.FieldTags: - return m.Tags() - case invocationtarget.FieldStartTimeInMs: - return m.StartTimeInMs() - case invocationtarget.FieldEndTimeInMs: - return m.EndTimeInMs() - case invocationtarget.FieldDurationInMs: - return m.DurationInMs() - case invocationtarget.FieldFailureMessage: - return m.FailureMessage() - case invocationtarget.FieldAbortReason: - return m.AbortReason() + case invocationtag.FieldBazelInvocationID: + return m.BazelInvocationID() + case invocationtag.FieldKey: + return m.Key() + case invocationtag.FieldValue: + return m.Value() } return nil, false } @@ -17401,111 +17137,60 @@ func (m *InvocationTargetMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *InvocationTargetMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *InvocationTagMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case invocationtarget.FieldSuccess: - return m.OldSuccess(ctx) - case invocationtarget.FieldTags: - return m.OldTags(ctx) - case invocationtarget.FieldStartTimeInMs: - return m.OldStartTimeInMs(ctx) - case invocationtarget.FieldEndTimeInMs: - return m.OldEndTimeInMs(ctx) - case invocationtarget.FieldDurationInMs: - return m.OldDurationInMs(ctx) - case invocationtarget.FieldFailureMessage: - return m.OldFailureMessage(ctx) - case invocationtarget.FieldAbortReason: - return m.OldAbortReason(ctx) + case invocationtag.FieldBazelInvocationID: + return m.OldBazelInvocationID(ctx) + case invocationtag.FieldKey: + return m.OldKey(ctx) + case invocationtag.FieldValue: + return m.OldValue(ctx) } - return nil, fmt.Errorf("unknown InvocationTarget field %s", name) + return nil, fmt.Errorf("unknown InvocationTag field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *InvocationTargetMutation) SetField(name string, value ent.Value) error { +func (m *InvocationTagMutation) SetField(name string, value ent.Value) error { switch name { - case invocationtarget.FieldSuccess: - v, ok := value.(bool) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetSuccess(v) - return nil - case invocationtarget.FieldTags: - v, ok := value.([]string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetTags(v) - return nil - case invocationtarget.FieldStartTimeInMs: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetStartTimeInMs(v) - return nil - case invocationtarget.FieldEndTimeInMs: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetEndTimeInMs(v) - return nil - case invocationtarget.FieldDurationInMs: + case invocationtag.FieldBazelInvocationID: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetDurationInMs(v) + m.SetBazelInvocationID(v) return nil - case invocationtarget.FieldFailureMessage: + case invocationtag.FieldKey: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetFailureMessage(v) + m.SetKey(v) return nil - case invocationtarget.FieldAbortReason: - v, ok := value.(invocationtarget.AbortReason) + case invocationtag.FieldValue: + v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetAbortReason(v) + m.SetValue(v) return nil } - return fmt.Errorf("unknown InvocationTarget field %s", name) + return fmt.Errorf("unknown InvocationTag field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *InvocationTargetMutation) AddedFields() []string { +func (m *InvocationTagMutation) AddedFields() []string { var fields []string - if m.addstart_time_in_ms != nil { - fields = append(fields, invocationtarget.FieldStartTimeInMs) - } - if m.addend_time_in_ms != nil { - fields = append(fields, invocationtarget.FieldEndTimeInMs) - } - if m.addduration_in_ms != nil { - fields = append(fields, invocationtarget.FieldDurationInMs) - } return fields } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *InvocationTargetMutation) AddedField(name string) (ent.Value, bool) { +func (m *InvocationTagMutation) AddedField(name string) (ent.Value, bool) { switch name { - case invocationtarget.FieldStartTimeInMs: - return m.AddedStartTimeInMs() - case invocationtarget.FieldEndTimeInMs: - return m.AddedEndTimeInMs() - case invocationtarget.FieldDurationInMs: - return m.AddedDurationInMs() } return nil, false } @@ -17513,286 +17198,165 @@ func (m *InvocationTargetMutation) AddedField(name string) (ent.Value, bool) { // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *InvocationTargetMutation) AddField(name string, value ent.Value) error { +func (m *InvocationTagMutation) AddField(name string, value ent.Value) error { switch name { - case invocationtarget.FieldStartTimeInMs: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddStartTimeInMs(v) - return nil - case invocationtarget.FieldEndTimeInMs: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddEndTimeInMs(v) - return nil - case invocationtarget.FieldDurationInMs: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddDurationInMs(v) - return nil } - return fmt.Errorf("unknown InvocationTarget numeric field %s", name) + return fmt.Errorf("unknown InvocationTag numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *InvocationTargetMutation) ClearedFields() []string { - var fields []string - if m.FieldCleared(invocationtarget.FieldTags) { - fields = append(fields, invocationtarget.FieldTags) - } - if m.FieldCleared(invocationtarget.FieldStartTimeInMs) { - fields = append(fields, invocationtarget.FieldStartTimeInMs) - } - if m.FieldCleared(invocationtarget.FieldEndTimeInMs) { - fields = append(fields, invocationtarget.FieldEndTimeInMs) - } - if m.FieldCleared(invocationtarget.FieldDurationInMs) { - fields = append(fields, invocationtarget.FieldDurationInMs) - } - if m.FieldCleared(invocationtarget.FieldFailureMessage) { - fields = append(fields, invocationtarget.FieldFailureMessage) - } - return fields +func (m *InvocationTagMutation) ClearedFields() []string { + return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *InvocationTargetMutation) FieldCleared(name string) bool { +func (m *InvocationTagMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *InvocationTargetMutation) ClearField(name string) error { - switch name { - case invocationtarget.FieldTags: - m.ClearTags() - return nil - case invocationtarget.FieldStartTimeInMs: - m.ClearStartTimeInMs() - return nil - case invocationtarget.FieldEndTimeInMs: - m.ClearEndTimeInMs() - return nil - case invocationtarget.FieldDurationInMs: - m.ClearDurationInMs() - return nil - case invocationtarget.FieldFailureMessage: - m.ClearFailureMessage() - return nil - } - return fmt.Errorf("unknown InvocationTarget nullable field %s", name) +func (m *InvocationTagMutation) ClearField(name string) error { + return fmt.Errorf("unknown InvocationTag nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *InvocationTargetMutation) ResetField(name string) error { +func (m *InvocationTagMutation) ResetField(name string) error { switch name { - case invocationtarget.FieldSuccess: - m.ResetSuccess() - return nil - case invocationtarget.FieldTags: - m.ResetTags() - return nil - case invocationtarget.FieldStartTimeInMs: - m.ResetStartTimeInMs() - return nil - case invocationtarget.FieldEndTimeInMs: - m.ResetEndTimeInMs() - return nil - case invocationtarget.FieldDurationInMs: - m.ResetDurationInMs() + case invocationtag.FieldBazelInvocationID: + m.ResetBazelInvocationID() return nil - case invocationtarget.FieldFailureMessage: - m.ResetFailureMessage() + case invocationtag.FieldKey: + m.ResetKey() return nil - case invocationtarget.FieldAbortReason: - m.ResetAbortReason() + case invocationtag.FieldValue: + m.ResetValue() return nil } - return fmt.Errorf("unknown InvocationTarget field %s", name) + return fmt.Errorf("unknown InvocationTag field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *InvocationTargetMutation) AddedEdges() []string { - edges := make([]string, 0, 4) +func (m *InvocationTagMutation) AddedEdges() []string { + edges := make([]string, 0, 1) if m.bazel_invocation != nil { - edges = append(edges, invocationtarget.EdgeBazelInvocation) - } - if m.target != nil { - edges = append(edges, invocationtarget.EdgeTarget) - } - if m.configuration != nil { - edges = append(edges, invocationtarget.EdgeConfiguration) - } - if m.test_summary != nil { - edges = append(edges, invocationtarget.EdgeTestSummary) + edges = append(edges, invocationtag.EdgeBazelInvocation) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *InvocationTargetMutation) AddedIDs(name string) []ent.Value { +func (m *InvocationTagMutation) AddedIDs(name string) []ent.Value { switch name { - case invocationtarget.EdgeBazelInvocation: + case invocationtag.EdgeBazelInvocation: if id := m.bazel_invocation; id != nil { return []ent.Value{*id} } - case invocationtarget.EdgeTarget: - if id := m.target; id != nil { - return []ent.Value{*id} - } - case invocationtarget.EdgeConfiguration: - if id := m.configuration; id != nil { - return []ent.Value{*id} - } - case invocationtarget.EdgeTestSummary: - ids := make([]ent.Value, 0, len(m.test_summary)) - for id := range m.test_summary { - ids = append(ids, id) - } - return ids } return nil } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *InvocationTargetMutation) RemovedEdges() []string { - edges := make([]string, 0, 4) - if m.removedtest_summary != nil { - edges = append(edges, invocationtarget.EdgeTestSummary) - } +func (m *InvocationTagMutation) RemovedEdges() []string { + edges := make([]string, 0, 1) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *InvocationTargetMutation) RemovedIDs(name string) []ent.Value { - switch name { - case invocationtarget.EdgeTestSummary: - ids := make([]ent.Value, 0, len(m.removedtest_summary)) - for id := range m.removedtest_summary { - ids = append(ids, id) - } - return ids - } +func (m *InvocationTagMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *InvocationTargetMutation) ClearedEdges() []string { - edges := make([]string, 0, 4) +func (m *InvocationTagMutation) ClearedEdges() []string { + edges := make([]string, 0, 1) if m.clearedbazel_invocation { - edges = append(edges, invocationtarget.EdgeBazelInvocation) - } - if m.clearedtarget { - edges = append(edges, invocationtarget.EdgeTarget) - } - if m.clearedconfiguration { - edges = append(edges, invocationtarget.EdgeConfiguration) - } - if m.clearedtest_summary { - edges = append(edges, invocationtarget.EdgeTestSummary) + edges = append(edges, invocationtag.EdgeBazelInvocation) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *InvocationTargetMutation) EdgeCleared(name string) bool { +func (m *InvocationTagMutation) EdgeCleared(name string) bool { switch name { - case invocationtarget.EdgeBazelInvocation: + case invocationtag.EdgeBazelInvocation: return m.clearedbazel_invocation - case invocationtarget.EdgeTarget: - return m.clearedtarget - case invocationtarget.EdgeConfiguration: - return m.clearedconfiguration - case invocationtarget.EdgeTestSummary: - return m.clearedtest_summary } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *InvocationTargetMutation) ClearEdge(name string) error { +func (m *InvocationTagMutation) ClearEdge(name string) error { switch name { - case invocationtarget.EdgeBazelInvocation: + case invocationtag.EdgeBazelInvocation: m.ClearBazelInvocation() return nil - case invocationtarget.EdgeTarget: - m.ClearTarget() - return nil - case invocationtarget.EdgeConfiguration: - m.ClearConfiguration() - return nil } - return fmt.Errorf("unknown InvocationTarget unique edge %s", name) + return fmt.Errorf("unknown InvocationTag unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *InvocationTargetMutation) ResetEdge(name string) error { +func (m *InvocationTagMutation) ResetEdge(name string) error { switch name { - case invocationtarget.EdgeBazelInvocation: + case invocationtag.EdgeBazelInvocation: m.ResetBazelInvocation() return nil - case invocationtarget.EdgeTarget: - m.ResetTarget() - return nil - case invocationtarget.EdgeConfiguration: - m.ResetConfiguration() - return nil - case invocationtarget.EdgeTestSummary: - m.ResetTestSummary() - return nil } - return fmt.Errorf("unknown InvocationTarget edge %s", name) + return fmt.Errorf("unknown InvocationTag edge %s", name) } -// MemoryMetricsMutation represents an operation that mutates the MemoryMetrics nodes in the graph. -type MemoryMetricsMutation struct { +// InvocationTargetMutation represents an operation that mutates the InvocationTarget nodes in the graph. +type InvocationTargetMutation struct { config - op Op - typ string - id *int64 - peak_post_gc_heap_size *int64 - addpeak_post_gc_heap_size *int64 - used_heap_size_post_build *int64 - addused_heap_size_post_build *int64 - peak_post_gc_tenured_space_heap_size *int64 - addpeak_post_gc_tenured_space_heap_size *int64 - clearedFields map[string]struct{} - metrics *int64 - clearedmetrics bool - garbage_metrics map[int64]struct{} - removedgarbage_metrics map[int64]struct{} - clearedgarbage_metrics bool - done bool - oldValue func(context.Context) (*MemoryMetrics, error) - predicates []predicate.MemoryMetrics + op Op + typ string + id *int64 + success *bool + tags *[]string + appendtags []string + start_time_in_ms *int64 + addstart_time_in_ms *int64 + end_time_in_ms *int64 + addend_time_in_ms *int64 + duration_in_ms *int64 + addduration_in_ms *int64 + failure_message *string + abort_reason *invocationtarget.AbortReason + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + target *int64 + clearedtarget bool + configuration *int64 + clearedconfiguration bool + test_summary map[int64]struct{} + removedtest_summary map[int64]struct{} + clearedtest_summary bool + done bool + oldValue func(context.Context) (*InvocationTarget, error) + predicates []predicate.InvocationTarget } -var _ ent.Mutation = (*MemoryMetricsMutation)(nil) +var _ ent.Mutation = (*InvocationTargetMutation)(nil) -// memorymetricsOption allows management of the mutation configuration using functional options. -type memorymetricsOption func(*MemoryMetricsMutation) +// invocationtargetOption allows management of the mutation configuration using functional options. +type invocationtargetOption func(*InvocationTargetMutation) -// newMemoryMetricsMutation creates new mutation for the MemoryMetrics entity. -func newMemoryMetricsMutation(c config, op Op, opts ...memorymetricsOption) *MemoryMetricsMutation { - m := &MemoryMetricsMutation{ +// newInvocationTargetMutation creates new mutation for the InvocationTarget entity. +func newInvocationTargetMutation(c config, op Op, opts ...invocationtargetOption) *InvocationTargetMutation { + m := &InvocationTargetMutation{ config: c, op: op, - typ: TypeMemoryMetrics, + typ: TypeInvocationTarget, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -17801,20 +17365,20 @@ func newMemoryMetricsMutation(c config, op Op, opts ...memorymetricsOption) *Mem return m } -// withMemoryMetricsID sets the ID field of the mutation. -func withMemoryMetricsID(id int64) memorymetricsOption { - return func(m *MemoryMetricsMutation) { +// withInvocationTargetID sets the ID field of the mutation. +func withInvocationTargetID(id int64) invocationtargetOption { + return func(m *InvocationTargetMutation) { var ( err error once sync.Once - value *MemoryMetrics + value *InvocationTarget ) - m.oldValue = func(ctx context.Context) (*MemoryMetrics, error) { + m.oldValue = func(ctx context.Context) (*InvocationTarget, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().MemoryMetrics.Get(ctx, id) + value, err = m.Client().InvocationTarget.Get(ctx, id) } }) return value, err @@ -17823,10 +17387,10 @@ func withMemoryMetricsID(id int64) memorymetricsOption { } } -// withMemoryMetrics sets the old MemoryMetrics of the mutation. -func withMemoryMetrics(node *MemoryMetrics) memorymetricsOption { - return func(m *MemoryMetricsMutation) { - m.oldValue = func(context.Context) (*MemoryMetrics, error) { +// withInvocationTarget sets the old InvocationTarget of the mutation. +func withInvocationTarget(node *InvocationTarget) invocationtargetOption { + return func(m *InvocationTargetMutation) { + m.oldValue = func(context.Context) (*InvocationTarget, error) { return node, nil } m.id = &node.ID @@ -17835,7 +17399,7 @@ func withMemoryMetrics(node *MemoryMetrics) memorymetricsOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m MemoryMetricsMutation) Client() *Client { +func (m InvocationTargetMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -17843,7 +17407,7 @@ func (m MemoryMetricsMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m MemoryMetricsMutation) Tx() (*Tx, error) { +func (m InvocationTargetMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -17853,14 +17417,14 @@ func (m MemoryMetricsMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of MemoryMetrics entities. -func (m *MemoryMetricsMutation) SetID(id int64) { +// operation is only accepted on creation of InvocationTarget entities. +func (m *InvocationTargetMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *MemoryMetricsMutation) ID() (id int64, exists bool) { +func (m *InvocationTargetMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -17871,7 +17435,7 @@ func (m *MemoryMetricsMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *MemoryMetricsMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *InvocationTargetMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -17880,324 +17444,588 @@ func (m *MemoryMetricsMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().MemoryMetrics.Query().Where(m.predicates...).IDs(ctx) + return m.Client().InvocationTarget.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetPeakPostGcHeapSize sets the "peak_post_gc_heap_size" field. -func (m *MemoryMetricsMutation) SetPeakPostGcHeapSize(i int64) { - m.peak_post_gc_heap_size = &i - m.addpeak_post_gc_heap_size = nil +// SetSuccess sets the "success" field. +func (m *InvocationTargetMutation) SetSuccess(b bool) { + m.success = &b +} + +// Success returns the value of the "success" field in the mutation. +func (m *InvocationTargetMutation) Success() (r bool, exists bool) { + v := m.success + if v == nil { + return + } + return *v, true +} + +// OldSuccess returns the old "success" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTargetMutation) OldSuccess(ctx context.Context) (v bool, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldSuccess is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldSuccess requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldSuccess: %w", err) + } + return oldValue.Success, nil +} + +// ResetSuccess resets all changes to the "success" field. +func (m *InvocationTargetMutation) ResetSuccess() { + m.success = nil +} + +// SetTags sets the "tags" field. +func (m *InvocationTargetMutation) SetTags(s []string) { + m.tags = &s + m.appendtags = nil +} + +// Tags returns the value of the "tags" field in the mutation. +func (m *InvocationTargetMutation) Tags() (r []string, exists bool) { + v := m.tags + if v == nil { + return + } + return *v, true +} + +// OldTags returns the old "tags" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTargetMutation) OldTags(ctx context.Context) (v []string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldTags is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldTags requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldTags: %w", err) + } + return oldValue.Tags, nil +} + +// AppendTags adds s to the "tags" field. +func (m *InvocationTargetMutation) AppendTags(s []string) { + m.appendtags = append(m.appendtags, s...) +} + +// AppendedTags returns the list of values that were appended to the "tags" field in this mutation. +func (m *InvocationTargetMutation) AppendedTags() ([]string, bool) { + if len(m.appendtags) == 0 { + return nil, false + } + return m.appendtags, true +} + +// ClearTags clears the value of the "tags" field. +func (m *InvocationTargetMutation) ClearTags() { + m.tags = nil + m.appendtags = nil + m.clearedFields[invocationtarget.FieldTags] = struct{}{} +} + +// TagsCleared returns if the "tags" field was cleared in this mutation. +func (m *InvocationTargetMutation) TagsCleared() bool { + _, ok := m.clearedFields[invocationtarget.FieldTags] + return ok +} + +// ResetTags resets all changes to the "tags" field. +func (m *InvocationTargetMutation) ResetTags() { + m.tags = nil + m.appendtags = nil + delete(m.clearedFields, invocationtarget.FieldTags) +} + +// SetStartTimeInMs sets the "start_time_in_ms" field. +func (m *InvocationTargetMutation) SetStartTimeInMs(i int64) { + m.start_time_in_ms = &i + m.addstart_time_in_ms = nil +} + +// StartTimeInMs returns the value of the "start_time_in_ms" field in the mutation. +func (m *InvocationTargetMutation) StartTimeInMs() (r int64, exists bool) { + v := m.start_time_in_ms + if v == nil { + return + } + return *v, true +} + +// OldStartTimeInMs returns the old "start_time_in_ms" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTargetMutation) OldStartTimeInMs(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldStartTimeInMs is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldStartTimeInMs requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldStartTimeInMs: %w", err) + } + return oldValue.StartTimeInMs, nil +} + +// AddStartTimeInMs adds i to the "start_time_in_ms" field. +func (m *InvocationTargetMutation) AddStartTimeInMs(i int64) { + if m.addstart_time_in_ms != nil { + *m.addstart_time_in_ms += i + } else { + m.addstart_time_in_ms = &i + } +} + +// AddedStartTimeInMs returns the value that was added to the "start_time_in_ms" field in this mutation. +func (m *InvocationTargetMutation) AddedStartTimeInMs() (r int64, exists bool) { + v := m.addstart_time_in_ms + if v == nil { + return + } + return *v, true +} + +// ClearStartTimeInMs clears the value of the "start_time_in_ms" field. +func (m *InvocationTargetMutation) ClearStartTimeInMs() { + m.start_time_in_ms = nil + m.addstart_time_in_ms = nil + m.clearedFields[invocationtarget.FieldStartTimeInMs] = struct{}{} +} + +// StartTimeInMsCleared returns if the "start_time_in_ms" field was cleared in this mutation. +func (m *InvocationTargetMutation) StartTimeInMsCleared() bool { + _, ok := m.clearedFields[invocationtarget.FieldStartTimeInMs] + return ok +} + +// ResetStartTimeInMs resets all changes to the "start_time_in_ms" field. +func (m *InvocationTargetMutation) ResetStartTimeInMs() { + m.start_time_in_ms = nil + m.addstart_time_in_ms = nil + delete(m.clearedFields, invocationtarget.FieldStartTimeInMs) +} + +// SetEndTimeInMs sets the "end_time_in_ms" field. +func (m *InvocationTargetMutation) SetEndTimeInMs(i int64) { + m.end_time_in_ms = &i + m.addend_time_in_ms = nil +} + +// EndTimeInMs returns the value of the "end_time_in_ms" field in the mutation. +func (m *InvocationTargetMutation) EndTimeInMs() (r int64, exists bool) { + v := m.end_time_in_ms + if v == nil { + return + } + return *v, true +} + +// OldEndTimeInMs returns the old "end_time_in_ms" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *InvocationTargetMutation) OldEndTimeInMs(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldEndTimeInMs is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldEndTimeInMs requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldEndTimeInMs: %w", err) + } + return oldValue.EndTimeInMs, nil +} + +// AddEndTimeInMs adds i to the "end_time_in_ms" field. +func (m *InvocationTargetMutation) AddEndTimeInMs(i int64) { + if m.addend_time_in_ms != nil { + *m.addend_time_in_ms += i + } else { + m.addend_time_in_ms = &i + } +} + +// AddedEndTimeInMs returns the value that was added to the "end_time_in_ms" field in this mutation. +func (m *InvocationTargetMutation) AddedEndTimeInMs() (r int64, exists bool) { + v := m.addend_time_in_ms + if v == nil { + return + } + return *v, true +} + +// ClearEndTimeInMs clears the value of the "end_time_in_ms" field. +func (m *InvocationTargetMutation) ClearEndTimeInMs() { + m.end_time_in_ms = nil + m.addend_time_in_ms = nil + m.clearedFields[invocationtarget.FieldEndTimeInMs] = struct{}{} +} + +// EndTimeInMsCleared returns if the "end_time_in_ms" field was cleared in this mutation. +func (m *InvocationTargetMutation) EndTimeInMsCleared() bool { + _, ok := m.clearedFields[invocationtarget.FieldEndTimeInMs] + return ok } -// PeakPostGcHeapSize returns the value of the "peak_post_gc_heap_size" field in the mutation. -func (m *MemoryMetricsMutation) PeakPostGcHeapSize() (r int64, exists bool) { - v := m.peak_post_gc_heap_size +// ResetEndTimeInMs resets all changes to the "end_time_in_ms" field. +func (m *InvocationTargetMutation) ResetEndTimeInMs() { + m.end_time_in_ms = nil + m.addend_time_in_ms = nil + delete(m.clearedFields, invocationtarget.FieldEndTimeInMs) +} + +// SetDurationInMs sets the "duration_in_ms" field. +func (m *InvocationTargetMutation) SetDurationInMs(i int64) { + m.duration_in_ms = &i + m.addduration_in_ms = nil +} + +// DurationInMs returns the value of the "duration_in_ms" field in the mutation. +func (m *InvocationTargetMutation) DurationInMs() (r int64, exists bool) { + v := m.duration_in_ms if v == nil { return } return *v, true } -// OldPeakPostGcHeapSize returns the old "peak_post_gc_heap_size" field's value of the MemoryMetrics entity. -// If the MemoryMetrics object wasn't provided to the builder, the object is fetched from the database. +// OldDurationInMs returns the old "duration_in_ms" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *MemoryMetricsMutation) OldPeakPostGcHeapSize(ctx context.Context) (v int64, err error) { +func (m *InvocationTargetMutation) OldDurationInMs(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldPeakPostGcHeapSize is only allowed on UpdateOne operations") + return v, errors.New("OldDurationInMs is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldPeakPostGcHeapSize requires an ID field in the mutation") + return v, errors.New("OldDurationInMs requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldPeakPostGcHeapSize: %w", err) + return v, fmt.Errorf("querying old value for OldDurationInMs: %w", err) } - return oldValue.PeakPostGcHeapSize, nil + return oldValue.DurationInMs, nil } -// AddPeakPostGcHeapSize adds i to the "peak_post_gc_heap_size" field. -func (m *MemoryMetricsMutation) AddPeakPostGcHeapSize(i int64) { - if m.addpeak_post_gc_heap_size != nil { - *m.addpeak_post_gc_heap_size += i +// AddDurationInMs adds i to the "duration_in_ms" field. +func (m *InvocationTargetMutation) AddDurationInMs(i int64) { + if m.addduration_in_ms != nil { + *m.addduration_in_ms += i } else { - m.addpeak_post_gc_heap_size = &i + m.addduration_in_ms = &i } } -// AddedPeakPostGcHeapSize returns the value that was added to the "peak_post_gc_heap_size" field in this mutation. -func (m *MemoryMetricsMutation) AddedPeakPostGcHeapSize() (r int64, exists bool) { - v := m.addpeak_post_gc_heap_size +// AddedDurationInMs returns the value that was added to the "duration_in_ms" field in this mutation. +func (m *InvocationTargetMutation) AddedDurationInMs() (r int64, exists bool) { + v := m.addduration_in_ms if v == nil { return } return *v, true } -// ClearPeakPostGcHeapSize clears the value of the "peak_post_gc_heap_size" field. -func (m *MemoryMetricsMutation) ClearPeakPostGcHeapSize() { - m.peak_post_gc_heap_size = nil - m.addpeak_post_gc_heap_size = nil - m.clearedFields[memorymetrics.FieldPeakPostGcHeapSize] = struct{}{} +// ClearDurationInMs clears the value of the "duration_in_ms" field. +func (m *InvocationTargetMutation) ClearDurationInMs() { + m.duration_in_ms = nil + m.addduration_in_ms = nil + m.clearedFields[invocationtarget.FieldDurationInMs] = struct{}{} } -// PeakPostGcHeapSizeCleared returns if the "peak_post_gc_heap_size" field was cleared in this mutation. -func (m *MemoryMetricsMutation) PeakPostGcHeapSizeCleared() bool { - _, ok := m.clearedFields[memorymetrics.FieldPeakPostGcHeapSize] +// DurationInMsCleared returns if the "duration_in_ms" field was cleared in this mutation. +func (m *InvocationTargetMutation) DurationInMsCleared() bool { + _, ok := m.clearedFields[invocationtarget.FieldDurationInMs] return ok } -// ResetPeakPostGcHeapSize resets all changes to the "peak_post_gc_heap_size" field. -func (m *MemoryMetricsMutation) ResetPeakPostGcHeapSize() { - m.peak_post_gc_heap_size = nil - m.addpeak_post_gc_heap_size = nil - delete(m.clearedFields, memorymetrics.FieldPeakPostGcHeapSize) +// ResetDurationInMs resets all changes to the "duration_in_ms" field. +func (m *InvocationTargetMutation) ResetDurationInMs() { + m.duration_in_ms = nil + m.addduration_in_ms = nil + delete(m.clearedFields, invocationtarget.FieldDurationInMs) } -// SetUsedHeapSizePostBuild sets the "used_heap_size_post_build" field. -func (m *MemoryMetricsMutation) SetUsedHeapSizePostBuild(i int64) { - m.used_heap_size_post_build = &i - m.addused_heap_size_post_build = nil +// SetFailureMessage sets the "failure_message" field. +func (m *InvocationTargetMutation) SetFailureMessage(s string) { + m.failure_message = &s } -// UsedHeapSizePostBuild returns the value of the "used_heap_size_post_build" field in the mutation. -func (m *MemoryMetricsMutation) UsedHeapSizePostBuild() (r int64, exists bool) { - v := m.used_heap_size_post_build +// FailureMessage returns the value of the "failure_message" field in the mutation. +func (m *InvocationTargetMutation) FailureMessage() (r string, exists bool) { + v := m.failure_message if v == nil { return } return *v, true } -// OldUsedHeapSizePostBuild returns the old "used_heap_size_post_build" field's value of the MemoryMetrics entity. -// If the MemoryMetrics object wasn't provided to the builder, the object is fetched from the database. +// OldFailureMessage returns the old "failure_message" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *MemoryMetricsMutation) OldUsedHeapSizePostBuild(ctx context.Context) (v int64, err error) { +func (m *InvocationTargetMutation) OldFailureMessage(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldUsedHeapSizePostBuild is only allowed on UpdateOne operations") + return v, errors.New("OldFailureMessage is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldUsedHeapSizePostBuild requires an ID field in the mutation") + return v, errors.New("OldFailureMessage requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldUsedHeapSizePostBuild: %w", err) - } - return oldValue.UsedHeapSizePostBuild, nil -} - -// AddUsedHeapSizePostBuild adds i to the "used_heap_size_post_build" field. -func (m *MemoryMetricsMutation) AddUsedHeapSizePostBuild(i int64) { - if m.addused_heap_size_post_build != nil { - *m.addused_heap_size_post_build += i - } else { - m.addused_heap_size_post_build = &i - } -} - -// AddedUsedHeapSizePostBuild returns the value that was added to the "used_heap_size_post_build" field in this mutation. -func (m *MemoryMetricsMutation) AddedUsedHeapSizePostBuild() (r int64, exists bool) { - v := m.addused_heap_size_post_build - if v == nil { - return + return v, fmt.Errorf("querying old value for OldFailureMessage: %w", err) } - return *v, true + return oldValue.FailureMessage, nil } -// ClearUsedHeapSizePostBuild clears the value of the "used_heap_size_post_build" field. -func (m *MemoryMetricsMutation) ClearUsedHeapSizePostBuild() { - m.used_heap_size_post_build = nil - m.addused_heap_size_post_build = nil - m.clearedFields[memorymetrics.FieldUsedHeapSizePostBuild] = struct{}{} +// ClearFailureMessage clears the value of the "failure_message" field. +func (m *InvocationTargetMutation) ClearFailureMessage() { + m.failure_message = nil + m.clearedFields[invocationtarget.FieldFailureMessage] = struct{}{} } -// UsedHeapSizePostBuildCleared returns if the "used_heap_size_post_build" field was cleared in this mutation. -func (m *MemoryMetricsMutation) UsedHeapSizePostBuildCleared() bool { - _, ok := m.clearedFields[memorymetrics.FieldUsedHeapSizePostBuild] +// FailureMessageCleared returns if the "failure_message" field was cleared in this mutation. +func (m *InvocationTargetMutation) FailureMessageCleared() bool { + _, ok := m.clearedFields[invocationtarget.FieldFailureMessage] return ok } -// ResetUsedHeapSizePostBuild resets all changes to the "used_heap_size_post_build" field. -func (m *MemoryMetricsMutation) ResetUsedHeapSizePostBuild() { - m.used_heap_size_post_build = nil - m.addused_heap_size_post_build = nil - delete(m.clearedFields, memorymetrics.FieldUsedHeapSizePostBuild) +// ResetFailureMessage resets all changes to the "failure_message" field. +func (m *InvocationTargetMutation) ResetFailureMessage() { + m.failure_message = nil + delete(m.clearedFields, invocationtarget.FieldFailureMessage) } -// SetPeakPostGcTenuredSpaceHeapSize sets the "peak_post_gc_tenured_space_heap_size" field. -func (m *MemoryMetricsMutation) SetPeakPostGcTenuredSpaceHeapSize(i int64) { - m.peak_post_gc_tenured_space_heap_size = &i - m.addpeak_post_gc_tenured_space_heap_size = nil +// SetAbortReason sets the "abort_reason" field. +func (m *InvocationTargetMutation) SetAbortReason(ir invocationtarget.AbortReason) { + m.abort_reason = &ir } -// PeakPostGcTenuredSpaceHeapSize returns the value of the "peak_post_gc_tenured_space_heap_size" field in the mutation. -func (m *MemoryMetricsMutation) PeakPostGcTenuredSpaceHeapSize() (r int64, exists bool) { - v := m.peak_post_gc_tenured_space_heap_size +// AbortReason returns the value of the "abort_reason" field in the mutation. +func (m *InvocationTargetMutation) AbortReason() (r invocationtarget.AbortReason, exists bool) { + v := m.abort_reason if v == nil { return } return *v, true } -// OldPeakPostGcTenuredSpaceHeapSize returns the old "peak_post_gc_tenured_space_heap_size" field's value of the MemoryMetrics entity. -// If the MemoryMetrics object wasn't provided to the builder, the object is fetched from the database. +// OldAbortReason returns the old "abort_reason" field's value of the InvocationTarget entity. +// If the InvocationTarget object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *MemoryMetricsMutation) OldPeakPostGcTenuredSpaceHeapSize(ctx context.Context) (v int64, err error) { +func (m *InvocationTargetMutation) OldAbortReason(ctx context.Context) (v invocationtarget.AbortReason, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldPeakPostGcTenuredSpaceHeapSize is only allowed on UpdateOne operations") + return v, errors.New("OldAbortReason is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldPeakPostGcTenuredSpaceHeapSize requires an ID field in the mutation") + return v, errors.New("OldAbortReason requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldPeakPostGcTenuredSpaceHeapSize: %w", err) + return v, fmt.Errorf("querying old value for OldAbortReason: %w", err) } - return oldValue.PeakPostGcTenuredSpaceHeapSize, nil + return oldValue.AbortReason, nil } -// AddPeakPostGcTenuredSpaceHeapSize adds i to the "peak_post_gc_tenured_space_heap_size" field. -func (m *MemoryMetricsMutation) AddPeakPostGcTenuredSpaceHeapSize(i int64) { - if m.addpeak_post_gc_tenured_space_heap_size != nil { - *m.addpeak_post_gc_tenured_space_heap_size += i - } else { - m.addpeak_post_gc_tenured_space_heap_size = &i +// ResetAbortReason resets all changes to the "abort_reason" field. +func (m *InvocationTargetMutation) ResetAbortReason() { + m.abort_reason = nil +} + +// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. +func (m *InvocationTargetMutation) SetBazelInvocationID(id int64) { + m.bazel_invocation = &id +} + +// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. +func (m *InvocationTargetMutation) ClearBazelInvocation() { + m.clearedbazel_invocation = true +} + +// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. +func (m *InvocationTargetMutation) BazelInvocationCleared() bool { + return m.clearedbazel_invocation +} + +// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. +func (m *InvocationTargetMutation) BazelInvocationID() (id int64, exists bool) { + if m.bazel_invocation != nil { + return *m.bazel_invocation, true } + return } -// AddedPeakPostGcTenuredSpaceHeapSize returns the value that was added to the "peak_post_gc_tenured_space_heap_size" field in this mutation. -func (m *MemoryMetricsMutation) AddedPeakPostGcTenuredSpaceHeapSize() (r int64, exists bool) { - v := m.addpeak_post_gc_tenured_space_heap_size - if v == nil { - return +// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// BazelInvocationID instead. It exists only for internal usage by the builders. +func (m *InvocationTargetMutation) BazelInvocationIDs() (ids []int64) { + if id := m.bazel_invocation; id != nil { + ids = append(ids, *id) } - return *v, true + return } -// ClearPeakPostGcTenuredSpaceHeapSize clears the value of the "peak_post_gc_tenured_space_heap_size" field. -func (m *MemoryMetricsMutation) ClearPeakPostGcTenuredSpaceHeapSize() { - m.peak_post_gc_tenured_space_heap_size = nil - m.addpeak_post_gc_tenured_space_heap_size = nil - m.clearedFields[memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize] = struct{}{} +// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. +func (m *InvocationTargetMutation) ResetBazelInvocation() { + m.bazel_invocation = nil + m.clearedbazel_invocation = false +} + +// SetTargetID sets the "target" edge to the Target entity by id. +func (m *InvocationTargetMutation) SetTargetID(id int64) { + m.target = &id +} + +// ClearTarget clears the "target" edge to the Target entity. +func (m *InvocationTargetMutation) ClearTarget() { + m.clearedtarget = true +} + +// TargetCleared reports if the "target" edge to the Target entity was cleared. +func (m *InvocationTargetMutation) TargetCleared() bool { + return m.clearedtarget +} + +// TargetID returns the "target" edge ID in the mutation. +func (m *InvocationTargetMutation) TargetID() (id int64, exists bool) { + if m.target != nil { + return *m.target, true + } + return } -// PeakPostGcTenuredSpaceHeapSizeCleared returns if the "peak_post_gc_tenured_space_heap_size" field was cleared in this mutation. -func (m *MemoryMetricsMutation) PeakPostGcTenuredSpaceHeapSizeCleared() bool { - _, ok := m.clearedFields[memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize] - return ok +// TargetIDs returns the "target" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// TargetID instead. It exists only for internal usage by the builders. +func (m *InvocationTargetMutation) TargetIDs() (ids []int64) { + if id := m.target; id != nil { + ids = append(ids, *id) + } + return } -// ResetPeakPostGcTenuredSpaceHeapSize resets all changes to the "peak_post_gc_tenured_space_heap_size" field. -func (m *MemoryMetricsMutation) ResetPeakPostGcTenuredSpaceHeapSize() { - m.peak_post_gc_tenured_space_heap_size = nil - m.addpeak_post_gc_tenured_space_heap_size = nil - delete(m.clearedFields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) +// ResetTarget resets all changes to the "target" edge. +func (m *InvocationTargetMutation) ResetTarget() { + m.target = nil + m.clearedtarget = false } -// SetMetricsID sets the "metrics" edge to the Metrics entity by id. -func (m *MemoryMetricsMutation) SetMetricsID(id int64) { - m.metrics = &id +// SetConfigurationID sets the "configuration" edge to the Configuration entity by id. +func (m *InvocationTargetMutation) SetConfigurationID(id int64) { + m.configuration = &id } -// ClearMetrics clears the "metrics" edge to the Metrics entity. -func (m *MemoryMetricsMutation) ClearMetrics() { - m.clearedmetrics = true +// ClearConfiguration clears the "configuration" edge to the Configuration entity. +func (m *InvocationTargetMutation) ClearConfiguration() { + m.clearedconfiguration = true } -// MetricsCleared reports if the "metrics" edge to the Metrics entity was cleared. -func (m *MemoryMetricsMutation) MetricsCleared() bool { - return m.clearedmetrics +// ConfigurationCleared reports if the "configuration" edge to the Configuration entity was cleared. +func (m *InvocationTargetMutation) ConfigurationCleared() bool { + return m.clearedconfiguration } -// MetricsID returns the "metrics" edge ID in the mutation. -func (m *MemoryMetricsMutation) MetricsID() (id int64, exists bool) { - if m.metrics != nil { - return *m.metrics, true +// ConfigurationID returns the "configuration" edge ID in the mutation. +func (m *InvocationTargetMutation) ConfigurationID() (id int64, exists bool) { + if m.configuration != nil { + return *m.configuration, true } return } -// MetricsIDs returns the "metrics" edge IDs in the mutation. +// ConfigurationIDs returns the "configuration" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// MetricsID instead. It exists only for internal usage by the builders. -func (m *MemoryMetricsMutation) MetricsIDs() (ids []int64) { - if id := m.metrics; id != nil { +// ConfigurationID instead. It exists only for internal usage by the builders. +func (m *InvocationTargetMutation) ConfigurationIDs() (ids []int64) { + if id := m.configuration; id != nil { ids = append(ids, *id) } return } -// ResetMetrics resets all changes to the "metrics" edge. -func (m *MemoryMetricsMutation) ResetMetrics() { - m.metrics = nil - m.clearedmetrics = false +// ResetConfiguration resets all changes to the "configuration" edge. +func (m *InvocationTargetMutation) ResetConfiguration() { + m.configuration = nil + m.clearedconfiguration = false } -// AddGarbageMetricIDs adds the "garbage_metrics" edge to the GarbageMetrics entity by ids. -func (m *MemoryMetricsMutation) AddGarbageMetricIDs(ids ...int64) { - if m.garbage_metrics == nil { - m.garbage_metrics = make(map[int64]struct{}) +// AddTestSummaryIDs adds the "test_summary" edge to the TestSummary entity by ids. +func (m *InvocationTargetMutation) AddTestSummaryIDs(ids ...int64) { + if m.test_summary == nil { + m.test_summary = make(map[int64]struct{}) } for i := range ids { - m.garbage_metrics[ids[i]] = struct{}{} + m.test_summary[ids[i]] = struct{}{} } } -// ClearGarbageMetrics clears the "garbage_metrics" edge to the GarbageMetrics entity. -func (m *MemoryMetricsMutation) ClearGarbageMetrics() { - m.clearedgarbage_metrics = true +// ClearTestSummary clears the "test_summary" edge to the TestSummary entity. +func (m *InvocationTargetMutation) ClearTestSummary() { + m.clearedtest_summary = true } -// GarbageMetricsCleared reports if the "garbage_metrics" edge to the GarbageMetrics entity was cleared. -func (m *MemoryMetricsMutation) GarbageMetricsCleared() bool { - return m.clearedgarbage_metrics +// TestSummaryCleared reports if the "test_summary" edge to the TestSummary entity was cleared. +func (m *InvocationTargetMutation) TestSummaryCleared() bool { + return m.clearedtest_summary } -// RemoveGarbageMetricIDs removes the "garbage_metrics" edge to the GarbageMetrics entity by IDs. -func (m *MemoryMetricsMutation) RemoveGarbageMetricIDs(ids ...int64) { - if m.removedgarbage_metrics == nil { - m.removedgarbage_metrics = make(map[int64]struct{}) +// RemoveTestSummaryIDs removes the "test_summary" edge to the TestSummary entity by IDs. +func (m *InvocationTargetMutation) RemoveTestSummaryIDs(ids ...int64) { + if m.removedtest_summary == nil { + m.removedtest_summary = make(map[int64]struct{}) } for i := range ids { - delete(m.garbage_metrics, ids[i]) - m.removedgarbage_metrics[ids[i]] = struct{}{} + delete(m.test_summary, ids[i]) + m.removedtest_summary[ids[i]] = struct{}{} } } -// RemovedGarbageMetrics returns the removed IDs of the "garbage_metrics" edge to the GarbageMetrics entity. -func (m *MemoryMetricsMutation) RemovedGarbageMetricsIDs() (ids []int64) { - for id := range m.removedgarbage_metrics { +// RemovedTestSummary returns the removed IDs of the "test_summary" edge to the TestSummary entity. +func (m *InvocationTargetMutation) RemovedTestSummaryIDs() (ids []int64) { + for id := range m.removedtest_summary { ids = append(ids, id) } return } -// GarbageMetricsIDs returns the "garbage_metrics" edge IDs in the mutation. -func (m *MemoryMetricsMutation) GarbageMetricsIDs() (ids []int64) { - for id := range m.garbage_metrics { +// TestSummaryIDs returns the "test_summary" edge IDs in the mutation. +func (m *InvocationTargetMutation) TestSummaryIDs() (ids []int64) { + for id := range m.test_summary { ids = append(ids, id) } return } -// ResetGarbageMetrics resets all changes to the "garbage_metrics" edge. -func (m *MemoryMetricsMutation) ResetGarbageMetrics() { - m.garbage_metrics = nil - m.clearedgarbage_metrics = false - m.removedgarbage_metrics = nil +// ResetTestSummary resets all changes to the "test_summary" edge. +func (m *InvocationTargetMutation) ResetTestSummary() { + m.test_summary = nil + m.clearedtest_summary = false + m.removedtest_summary = nil } -// Where appends a list predicates to the MemoryMetricsMutation builder. -func (m *MemoryMetricsMutation) Where(ps ...predicate.MemoryMetrics) { +// Where appends a list predicates to the InvocationTargetMutation builder. +func (m *InvocationTargetMutation) Where(ps ...predicate.InvocationTarget) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the MemoryMetricsMutation builder. Using this method, +// WhereP appends storage-level predicates to the InvocationTargetMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *MemoryMetricsMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.MemoryMetrics, len(ps)) +func (m *InvocationTargetMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.InvocationTarget, len(ps)) for i := range ps { p[i] = ps[i] } @@ -18205,33 +18033,45 @@ func (m *MemoryMetricsMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *MemoryMetricsMutation) Op() Op { +func (m *InvocationTargetMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *MemoryMetricsMutation) SetOp(op Op) { +func (m *InvocationTargetMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (MemoryMetrics). -func (m *MemoryMetricsMutation) Type() string { +// Type returns the node type of this mutation (InvocationTarget). +func (m *InvocationTargetMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *MemoryMetricsMutation) Fields() []string { - fields := make([]string, 0, 3) - if m.peak_post_gc_heap_size != nil { - fields = append(fields, memorymetrics.FieldPeakPostGcHeapSize) +func (m *InvocationTargetMutation) Fields() []string { + fields := make([]string, 0, 7) + if m.success != nil { + fields = append(fields, invocationtarget.FieldSuccess) } - if m.used_heap_size_post_build != nil { - fields = append(fields, memorymetrics.FieldUsedHeapSizePostBuild) + if m.tags != nil { + fields = append(fields, invocationtarget.FieldTags) } - if m.peak_post_gc_tenured_space_heap_size != nil { - fields = append(fields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) + if m.start_time_in_ms != nil { + fields = append(fields, invocationtarget.FieldStartTimeInMs) + } + if m.end_time_in_ms != nil { + fields = append(fields, invocationtarget.FieldEndTimeInMs) + } + if m.duration_in_ms != nil { + fields = append(fields, invocationtarget.FieldDurationInMs) + } + if m.failure_message != nil { + fields = append(fields, invocationtarget.FieldFailureMessage) + } + if m.abort_reason != nil { + fields = append(fields, invocationtarget.FieldAbortReason) } return fields } @@ -18239,14 +18079,22 @@ func (m *MemoryMetricsMutation) Fields() []string { // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *MemoryMetricsMutation) Field(name string) (ent.Value, bool) { +func (m *InvocationTargetMutation) Field(name string) (ent.Value, bool) { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: - return m.PeakPostGcHeapSize() - case memorymetrics.FieldUsedHeapSizePostBuild: - return m.UsedHeapSizePostBuild() - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: - return m.PeakPostGcTenuredSpaceHeapSize() + case invocationtarget.FieldSuccess: + return m.Success() + case invocationtarget.FieldTags: + return m.Tags() + case invocationtarget.FieldStartTimeInMs: + return m.StartTimeInMs() + case invocationtarget.FieldEndTimeInMs: + return m.EndTimeInMs() + case invocationtarget.FieldDurationInMs: + return m.DurationInMs() + case invocationtarget.FieldFailureMessage: + return m.FailureMessage() + case invocationtarget.FieldAbortReason: + return m.AbortReason() } return nil, false } @@ -18254,60 +18102,96 @@ func (m *MemoryMetricsMutation) Field(name string) (ent.Value, bool) { // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *MemoryMetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { +func (m *InvocationTargetMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: - return m.OldPeakPostGcHeapSize(ctx) - case memorymetrics.FieldUsedHeapSizePostBuild: - return m.OldUsedHeapSizePostBuild(ctx) - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: - return m.OldPeakPostGcTenuredSpaceHeapSize(ctx) + case invocationtarget.FieldSuccess: + return m.OldSuccess(ctx) + case invocationtarget.FieldTags: + return m.OldTags(ctx) + case invocationtarget.FieldStartTimeInMs: + return m.OldStartTimeInMs(ctx) + case invocationtarget.FieldEndTimeInMs: + return m.OldEndTimeInMs(ctx) + case invocationtarget.FieldDurationInMs: + return m.OldDurationInMs(ctx) + case invocationtarget.FieldFailureMessage: + return m.OldFailureMessage(ctx) + case invocationtarget.FieldAbortReason: + return m.OldAbortReason(ctx) } - return nil, fmt.Errorf("unknown MemoryMetrics field %s", name) + return nil, fmt.Errorf("unknown InvocationTarget field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *MemoryMetricsMutation) SetField(name string, value ent.Value) error { +func (m *InvocationTargetMutation) SetField(name string, value ent.Value) error { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: + case invocationtarget.FieldSuccess: + v, ok := value.(bool) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetSuccess(v) + return nil + case invocationtarget.FieldTags: + v, ok := value.([]string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetTags(v) + return nil + case invocationtarget.FieldStartTimeInMs: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetPeakPostGcHeapSize(v) + m.SetStartTimeInMs(v) return nil - case memorymetrics.FieldUsedHeapSizePostBuild: + case invocationtarget.FieldEndTimeInMs: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetUsedHeapSizePostBuild(v) + m.SetEndTimeInMs(v) return nil - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + case invocationtarget.FieldDurationInMs: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetPeakPostGcTenuredSpaceHeapSize(v) + m.SetDurationInMs(v) + return nil + case invocationtarget.FieldFailureMessage: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetFailureMessage(v) + return nil + case invocationtarget.FieldAbortReason: + v, ok := value.(invocationtarget.AbortReason) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetAbortReason(v) return nil } - return fmt.Errorf("unknown MemoryMetrics field %s", name) + return fmt.Errorf("unknown InvocationTarget field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *MemoryMetricsMutation) AddedFields() []string { +func (m *InvocationTargetMutation) AddedFields() []string { var fields []string - if m.addpeak_post_gc_heap_size != nil { - fields = append(fields, memorymetrics.FieldPeakPostGcHeapSize) + if m.addstart_time_in_ms != nil { + fields = append(fields, invocationtarget.FieldStartTimeInMs) } - if m.addused_heap_size_post_build != nil { - fields = append(fields, memorymetrics.FieldUsedHeapSizePostBuild) + if m.addend_time_in_ms != nil { + fields = append(fields, invocationtarget.FieldEndTimeInMs) } - if m.addpeak_post_gc_tenured_space_heap_size != nil { - fields = append(fields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) + if m.addduration_in_ms != nil { + fields = append(fields, invocationtarget.FieldDurationInMs) } return fields } @@ -18315,14 +18199,14 @@ func (m *MemoryMetricsMutation) AddedFields() []string { // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *MemoryMetricsMutation) AddedField(name string) (ent.Value, bool) { +func (m *InvocationTargetMutation) AddedField(name string) (ent.Value, bool) { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: - return m.AddedPeakPostGcHeapSize() - case memorymetrics.FieldUsedHeapSizePostBuild: - return m.AddedUsedHeapSizePostBuild() - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: - return m.AddedPeakPostGcTenuredSpaceHeapSize() + case invocationtarget.FieldStartTimeInMs: + return m.AddedStartTimeInMs() + case invocationtarget.FieldEndTimeInMs: + return m.AddedEndTimeInMs() + case invocationtarget.FieldDurationInMs: + return m.AddedDurationInMs() } return nil, false } @@ -18330,113 +18214,151 @@ func (m *MemoryMetricsMutation) AddedField(name string) (ent.Value, bool) { // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *MemoryMetricsMutation) AddField(name string, value ent.Value) error { +func (m *InvocationTargetMutation) AddField(name string, value ent.Value) error { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: + case invocationtarget.FieldStartTimeInMs: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.AddPeakPostGcHeapSize(v) + m.AddStartTimeInMs(v) return nil - case memorymetrics.FieldUsedHeapSizePostBuild: + case invocationtarget.FieldEndTimeInMs: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.AddUsedHeapSizePostBuild(v) + m.AddEndTimeInMs(v) return nil - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + case invocationtarget.FieldDurationInMs: v, ok := value.(int64) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.AddPeakPostGcTenuredSpaceHeapSize(v) + m.AddDurationInMs(v) return nil } - return fmt.Errorf("unknown MemoryMetrics numeric field %s", name) + return fmt.Errorf("unknown InvocationTarget numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *MemoryMetricsMutation) ClearedFields() []string { +func (m *InvocationTargetMutation) ClearedFields() []string { var fields []string - if m.FieldCleared(memorymetrics.FieldPeakPostGcHeapSize) { - fields = append(fields, memorymetrics.FieldPeakPostGcHeapSize) + if m.FieldCleared(invocationtarget.FieldTags) { + fields = append(fields, invocationtarget.FieldTags) } - if m.FieldCleared(memorymetrics.FieldUsedHeapSizePostBuild) { - fields = append(fields, memorymetrics.FieldUsedHeapSizePostBuild) + if m.FieldCleared(invocationtarget.FieldStartTimeInMs) { + fields = append(fields, invocationtarget.FieldStartTimeInMs) } - if m.FieldCleared(memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) { - fields = append(fields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) + if m.FieldCleared(invocationtarget.FieldEndTimeInMs) { + fields = append(fields, invocationtarget.FieldEndTimeInMs) + } + if m.FieldCleared(invocationtarget.FieldDurationInMs) { + fields = append(fields, invocationtarget.FieldDurationInMs) + } + if m.FieldCleared(invocationtarget.FieldFailureMessage) { + fields = append(fields, invocationtarget.FieldFailureMessage) } return fields } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *MemoryMetricsMutation) FieldCleared(name string) bool { +func (m *InvocationTargetMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *MemoryMetricsMutation) ClearField(name string) error { +func (m *InvocationTargetMutation) ClearField(name string) error { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: - m.ClearPeakPostGcHeapSize() + case invocationtarget.FieldTags: + m.ClearTags() return nil - case memorymetrics.FieldUsedHeapSizePostBuild: - m.ClearUsedHeapSizePostBuild() + case invocationtarget.FieldStartTimeInMs: + m.ClearStartTimeInMs() return nil - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: - m.ClearPeakPostGcTenuredSpaceHeapSize() + case invocationtarget.FieldEndTimeInMs: + m.ClearEndTimeInMs() + return nil + case invocationtarget.FieldDurationInMs: + m.ClearDurationInMs() + return nil + case invocationtarget.FieldFailureMessage: + m.ClearFailureMessage() return nil } - return fmt.Errorf("unknown MemoryMetrics nullable field %s", name) + return fmt.Errorf("unknown InvocationTarget nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *MemoryMetricsMutation) ResetField(name string) error { +func (m *InvocationTargetMutation) ResetField(name string) error { switch name { - case memorymetrics.FieldPeakPostGcHeapSize: - m.ResetPeakPostGcHeapSize() + case invocationtarget.FieldSuccess: + m.ResetSuccess() return nil - case memorymetrics.FieldUsedHeapSizePostBuild: - m.ResetUsedHeapSizePostBuild() + case invocationtarget.FieldTags: + m.ResetTags() return nil - case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: - m.ResetPeakPostGcTenuredSpaceHeapSize() + case invocationtarget.FieldStartTimeInMs: + m.ResetStartTimeInMs() + return nil + case invocationtarget.FieldEndTimeInMs: + m.ResetEndTimeInMs() + return nil + case invocationtarget.FieldDurationInMs: + m.ResetDurationInMs() + return nil + case invocationtarget.FieldFailureMessage: + m.ResetFailureMessage() + return nil + case invocationtarget.FieldAbortReason: + m.ResetAbortReason() return nil } - return fmt.Errorf("unknown MemoryMetrics field %s", name) + return fmt.Errorf("unknown InvocationTarget field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *MemoryMetricsMutation) AddedEdges() []string { - edges := make([]string, 0, 2) - if m.metrics != nil { - edges = append(edges, memorymetrics.EdgeMetrics) +func (m *InvocationTargetMutation) AddedEdges() []string { + edges := make([]string, 0, 4) + if m.bazel_invocation != nil { + edges = append(edges, invocationtarget.EdgeBazelInvocation) } - if m.garbage_metrics != nil { - edges = append(edges, memorymetrics.EdgeGarbageMetrics) + if m.target != nil { + edges = append(edges, invocationtarget.EdgeTarget) + } + if m.configuration != nil { + edges = append(edges, invocationtarget.EdgeConfiguration) + } + if m.test_summary != nil { + edges = append(edges, invocationtarget.EdgeTestSummary) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *MemoryMetricsMutation) AddedIDs(name string) []ent.Value { +func (m *InvocationTargetMutation) AddedIDs(name string) []ent.Value { switch name { - case memorymetrics.EdgeMetrics: - if id := m.metrics; id != nil { + case invocationtarget.EdgeBazelInvocation: + if id := m.bazel_invocation; id != nil { return []ent.Value{*id} } - case memorymetrics.EdgeGarbageMetrics: - ids := make([]ent.Value, 0, len(m.garbage_metrics)) - for id := range m.garbage_metrics { + case invocationtarget.EdgeTarget: + if id := m.target; id != nil { + return []ent.Value{*id} + } + case invocationtarget.EdgeConfiguration: + if id := m.configuration; id != nil { + return []ent.Value{*id} + } + case invocationtarget.EdgeTestSummary: + ids := make([]ent.Value, 0, len(m.test_summary)) + for id := range m.test_summary { ids = append(ids, id) } return ids @@ -18445,21 +18367,21 @@ func (m *MemoryMetricsMutation) AddedIDs(name string) []ent.Value { } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *MemoryMetricsMutation) RemovedEdges() []string { - edges := make([]string, 0, 2) - if m.removedgarbage_metrics != nil { - edges = append(edges, memorymetrics.EdgeGarbageMetrics) +func (m *InvocationTargetMutation) RemovedEdges() []string { + edges := make([]string, 0, 4) + if m.removedtest_summary != nil { + edges = append(edges, invocationtarget.EdgeTestSummary) } return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *MemoryMetricsMutation) RemovedIDs(name string) []ent.Value { +func (m *InvocationTargetMutation) RemovedIDs(name string) []ent.Value { switch name { - case memorymetrics.EdgeGarbageMetrics: - ids := make([]ent.Value, 0, len(m.removedgarbage_metrics)) - for id := range m.removedgarbage_metrics { + case invocationtarget.EdgeTestSummary: + ids := make([]ent.Value, 0, len(m.removedtest_summary)) + for id := range m.removedtest_summary { ids = append(ids, id) } return ids @@ -18468,93 +18390,110 @@ func (m *MemoryMetricsMutation) RemovedIDs(name string) []ent.Value { } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *MemoryMetricsMutation) ClearedEdges() []string { - edges := make([]string, 0, 2) - if m.clearedmetrics { - edges = append(edges, memorymetrics.EdgeMetrics) +func (m *InvocationTargetMutation) ClearedEdges() []string { + edges := make([]string, 0, 4) + if m.clearedbazel_invocation { + edges = append(edges, invocationtarget.EdgeBazelInvocation) } - if m.clearedgarbage_metrics { - edges = append(edges, memorymetrics.EdgeGarbageMetrics) + if m.clearedtarget { + edges = append(edges, invocationtarget.EdgeTarget) + } + if m.clearedconfiguration { + edges = append(edges, invocationtarget.EdgeConfiguration) + } + if m.clearedtest_summary { + edges = append(edges, invocationtarget.EdgeTestSummary) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *MemoryMetricsMutation) EdgeCleared(name string) bool { +func (m *InvocationTargetMutation) EdgeCleared(name string) bool { switch name { - case memorymetrics.EdgeMetrics: - return m.clearedmetrics - case memorymetrics.EdgeGarbageMetrics: - return m.clearedgarbage_metrics + case invocationtarget.EdgeBazelInvocation: + return m.clearedbazel_invocation + case invocationtarget.EdgeTarget: + return m.clearedtarget + case invocationtarget.EdgeConfiguration: + return m.clearedconfiguration + case invocationtarget.EdgeTestSummary: + return m.clearedtest_summary } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *MemoryMetricsMutation) ClearEdge(name string) error { +func (m *InvocationTargetMutation) ClearEdge(name string) error { switch name { - case memorymetrics.EdgeMetrics: - m.ClearMetrics() + case invocationtarget.EdgeBazelInvocation: + m.ClearBazelInvocation() + return nil + case invocationtarget.EdgeTarget: + m.ClearTarget() + return nil + case invocationtarget.EdgeConfiguration: + m.ClearConfiguration() return nil } - return fmt.Errorf("unknown MemoryMetrics unique edge %s", name) + return fmt.Errorf("unknown InvocationTarget unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *MemoryMetricsMutation) ResetEdge(name string) error { +func (m *InvocationTargetMutation) ResetEdge(name string) error { switch name { - case memorymetrics.EdgeMetrics: - m.ResetMetrics() - return nil - case memorymetrics.EdgeGarbageMetrics: - m.ResetGarbageMetrics() + case invocationtarget.EdgeBazelInvocation: + m.ResetBazelInvocation() return nil - } - return fmt.Errorf("unknown MemoryMetrics edge %s", name) -} - -// MetricsMutation represents an operation that mutates the Metrics nodes in the graph. -type MetricsMutation struct { - config - op Op - typ string - id *int64 - clearedFields map[string]struct{} - bazel_invocation *int64 - clearedbazel_invocation bool - action_summary *int64 - clearedaction_summary bool - memory_metrics *int64 - clearedmemory_metrics bool - target_metrics *int64 - clearedtarget_metrics bool - timing_metrics *int64 - clearedtiming_metrics bool - artifact_metrics *int64 - clearedartifact_metrics bool - network_metrics *int64 - clearednetwork_metrics bool - build_graph_metrics *int64 - clearedbuild_graph_metrics bool - done bool - oldValue func(context.Context) (*Metrics, error) - predicates []predicate.Metrics + case invocationtarget.EdgeTarget: + m.ResetTarget() + return nil + case invocationtarget.EdgeConfiguration: + m.ResetConfiguration() + return nil + case invocationtarget.EdgeTestSummary: + m.ResetTestSummary() + return nil + } + return fmt.Errorf("unknown InvocationTarget edge %s", name) } -var _ ent.Mutation = (*MetricsMutation)(nil) +// MemoryMetricsMutation represents an operation that mutates the MemoryMetrics nodes in the graph. +type MemoryMetricsMutation struct { + config + op Op + typ string + id *int64 + peak_post_gc_heap_size *int64 + addpeak_post_gc_heap_size *int64 + used_heap_size_post_build *int64 + addused_heap_size_post_build *int64 + peak_post_gc_tenured_space_heap_size *int64 + addpeak_post_gc_tenured_space_heap_size *int64 + clearedFields map[string]struct{} + metrics *int64 + clearedmetrics bool + garbage_metrics map[int64]struct{} + removedgarbage_metrics map[int64]struct{} + clearedgarbage_metrics bool + done bool + oldValue func(context.Context) (*MemoryMetrics, error) + predicates []predicate.MemoryMetrics +} -// metricsOption allows management of the mutation configuration using functional options. -type metricsOption func(*MetricsMutation) +var _ ent.Mutation = (*MemoryMetricsMutation)(nil) -// newMetricsMutation creates new mutation for the Metrics entity. -func newMetricsMutation(c config, op Op, opts ...metricsOption) *MetricsMutation { - m := &MetricsMutation{ +// memorymetricsOption allows management of the mutation configuration using functional options. +type memorymetricsOption func(*MemoryMetricsMutation) + +// newMemoryMetricsMutation creates new mutation for the MemoryMetrics entity. +func newMemoryMetricsMutation(c config, op Op, opts ...memorymetricsOption) *MemoryMetricsMutation { + m := &MemoryMetricsMutation{ config: c, op: op, - typ: TypeMetrics, + typ: TypeMemoryMetrics, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -18563,20 +18502,20 @@ func newMetricsMutation(c config, op Op, opts ...metricsOption) *MetricsMutation return m } -// withMetricsID sets the ID field of the mutation. -func withMetricsID(id int64) metricsOption { - return func(m *MetricsMutation) { +// withMemoryMetricsID sets the ID field of the mutation. +func withMemoryMetricsID(id int64) memorymetricsOption { + return func(m *MemoryMetricsMutation) { var ( err error once sync.Once - value *Metrics + value *MemoryMetrics ) - m.oldValue = func(ctx context.Context) (*Metrics, error) { + m.oldValue = func(ctx context.Context) (*MemoryMetrics, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().Metrics.Get(ctx, id) + value, err = m.Client().MemoryMetrics.Get(ctx, id) } }) return value, err @@ -18585,10 +18524,10 @@ func withMetricsID(id int64) metricsOption { } } -// withMetrics sets the old Metrics of the mutation. -func withMetrics(node *Metrics) metricsOption { - return func(m *MetricsMutation) { - m.oldValue = func(context.Context) (*Metrics, error) { +// withMemoryMetrics sets the old MemoryMetrics of the mutation. +func withMemoryMetrics(node *MemoryMetrics) memorymetricsOption { + return func(m *MemoryMetricsMutation) { + m.oldValue = func(context.Context) (*MemoryMetrics, error) { return node, nil } m.id = &node.ID @@ -18597,7 +18536,7 @@ func withMetrics(node *Metrics) metricsOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m MetricsMutation) Client() *Client { +func (m MemoryMetricsMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -18605,7 +18544,7 @@ func (m MetricsMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m MetricsMutation) Tx() (*Tx, error) { +func (m MemoryMetricsMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -18615,14 +18554,14 @@ func (m MetricsMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of Metrics entities. -func (m *MetricsMutation) SetID(id int64) { +// operation is only accepted on creation of MemoryMetrics entities. +func (m *MemoryMetricsMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *MetricsMutation) ID() (id int64, exists bool) { +func (m *MemoryMetricsMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -18633,7 +18572,7 @@ func (m *MetricsMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *MetricsMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *MemoryMetricsMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -18642,905 +18581,1095 @@ func (m *MetricsMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().Metrics.Query().Where(m.predicates...).IDs(ctx) + return m.Client().MemoryMetrics.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. -func (m *MetricsMutation) SetBazelInvocationID(id int64) { - m.bazel_invocation = &id +// SetPeakPostGcHeapSize sets the "peak_post_gc_heap_size" field. +func (m *MemoryMetricsMutation) SetPeakPostGcHeapSize(i int64) { + m.peak_post_gc_heap_size = &i + m.addpeak_post_gc_heap_size = nil } -// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. -func (m *MetricsMutation) ClearBazelInvocation() { - m.clearedbazel_invocation = true +// PeakPostGcHeapSize returns the value of the "peak_post_gc_heap_size" field in the mutation. +func (m *MemoryMetricsMutation) PeakPostGcHeapSize() (r int64, exists bool) { + v := m.peak_post_gc_heap_size + if v == nil { + return + } + return *v, true } -// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. -func (m *MetricsMutation) BazelInvocationCleared() bool { - return m.clearedbazel_invocation +// OldPeakPostGcHeapSize returns the old "peak_post_gc_heap_size" field's value of the MemoryMetrics entity. +// If the MemoryMetrics object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *MemoryMetricsMutation) OldPeakPostGcHeapSize(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldPeakPostGcHeapSize is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldPeakPostGcHeapSize requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldPeakPostGcHeapSize: %w", err) + } + return oldValue.PeakPostGcHeapSize, nil } -// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. -func (m *MetricsMutation) BazelInvocationID() (id int64, exists bool) { - if m.bazel_invocation != nil { - return *m.bazel_invocation, true +// AddPeakPostGcHeapSize adds i to the "peak_post_gc_heap_size" field. +func (m *MemoryMetricsMutation) AddPeakPostGcHeapSize(i int64) { + if m.addpeak_post_gc_heap_size != nil { + *m.addpeak_post_gc_heap_size += i + } else { + m.addpeak_post_gc_heap_size = &i } - return } -// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// BazelInvocationID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) BazelInvocationIDs() (ids []int64) { - if id := m.bazel_invocation; id != nil { - ids = append(ids, *id) +// AddedPeakPostGcHeapSize returns the value that was added to the "peak_post_gc_heap_size" field in this mutation. +func (m *MemoryMetricsMutation) AddedPeakPostGcHeapSize() (r int64, exists bool) { + v := m.addpeak_post_gc_heap_size + if v == nil { + return } - return + return *v, true } -// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. -func (m *MetricsMutation) ResetBazelInvocation() { - m.bazel_invocation = nil - m.clearedbazel_invocation = false +// ClearPeakPostGcHeapSize clears the value of the "peak_post_gc_heap_size" field. +func (m *MemoryMetricsMutation) ClearPeakPostGcHeapSize() { + m.peak_post_gc_heap_size = nil + m.addpeak_post_gc_heap_size = nil + m.clearedFields[memorymetrics.FieldPeakPostGcHeapSize] = struct{}{} } -// SetActionSummaryID sets the "action_summary" edge to the ActionSummary entity by id. -func (m *MetricsMutation) SetActionSummaryID(id int64) { - m.action_summary = &id +// PeakPostGcHeapSizeCleared returns if the "peak_post_gc_heap_size" field was cleared in this mutation. +func (m *MemoryMetricsMutation) PeakPostGcHeapSizeCleared() bool { + _, ok := m.clearedFields[memorymetrics.FieldPeakPostGcHeapSize] + return ok } -// ClearActionSummary clears the "action_summary" edge to the ActionSummary entity. -func (m *MetricsMutation) ClearActionSummary() { - m.clearedaction_summary = true +// ResetPeakPostGcHeapSize resets all changes to the "peak_post_gc_heap_size" field. +func (m *MemoryMetricsMutation) ResetPeakPostGcHeapSize() { + m.peak_post_gc_heap_size = nil + m.addpeak_post_gc_heap_size = nil + delete(m.clearedFields, memorymetrics.FieldPeakPostGcHeapSize) } -// ActionSummaryCleared reports if the "action_summary" edge to the ActionSummary entity was cleared. -func (m *MetricsMutation) ActionSummaryCleared() bool { - return m.clearedaction_summary +// SetUsedHeapSizePostBuild sets the "used_heap_size_post_build" field. +func (m *MemoryMetricsMutation) SetUsedHeapSizePostBuild(i int64) { + m.used_heap_size_post_build = &i + m.addused_heap_size_post_build = nil } -// ActionSummaryID returns the "action_summary" edge ID in the mutation. -func (m *MetricsMutation) ActionSummaryID() (id int64, exists bool) { - if m.action_summary != nil { - return *m.action_summary, true +// UsedHeapSizePostBuild returns the value of the "used_heap_size_post_build" field in the mutation. +func (m *MemoryMetricsMutation) UsedHeapSizePostBuild() (r int64, exists bool) { + v := m.used_heap_size_post_build + if v == nil { + return } - return + return *v, true } -// ActionSummaryIDs returns the "action_summary" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// ActionSummaryID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) ActionSummaryIDs() (ids []int64) { - if id := m.action_summary; id != nil { - ids = append(ids, *id) +// OldUsedHeapSizePostBuild returns the old "used_heap_size_post_build" field's value of the MemoryMetrics entity. +// If the MemoryMetrics object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *MemoryMetricsMutation) OldUsedHeapSizePostBuild(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldUsedHeapSizePostBuild is only allowed on UpdateOne operations") } - return + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldUsedHeapSizePostBuild requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldUsedHeapSizePostBuild: %w", err) + } + return oldValue.UsedHeapSizePostBuild, nil } -// ResetActionSummary resets all changes to the "action_summary" edge. -func (m *MetricsMutation) ResetActionSummary() { - m.action_summary = nil - m.clearedaction_summary = false +// AddUsedHeapSizePostBuild adds i to the "used_heap_size_post_build" field. +func (m *MemoryMetricsMutation) AddUsedHeapSizePostBuild(i int64) { + if m.addused_heap_size_post_build != nil { + *m.addused_heap_size_post_build += i + } else { + m.addused_heap_size_post_build = &i + } +} + +// AddedUsedHeapSizePostBuild returns the value that was added to the "used_heap_size_post_build" field in this mutation. +func (m *MemoryMetricsMutation) AddedUsedHeapSizePostBuild() (r int64, exists bool) { + v := m.addused_heap_size_post_build + if v == nil { + return + } + return *v, true +} + +// ClearUsedHeapSizePostBuild clears the value of the "used_heap_size_post_build" field. +func (m *MemoryMetricsMutation) ClearUsedHeapSizePostBuild() { + m.used_heap_size_post_build = nil + m.addused_heap_size_post_build = nil + m.clearedFields[memorymetrics.FieldUsedHeapSizePostBuild] = struct{}{} +} + +// UsedHeapSizePostBuildCleared returns if the "used_heap_size_post_build" field was cleared in this mutation. +func (m *MemoryMetricsMutation) UsedHeapSizePostBuildCleared() bool { + _, ok := m.clearedFields[memorymetrics.FieldUsedHeapSizePostBuild] + return ok +} + +// ResetUsedHeapSizePostBuild resets all changes to the "used_heap_size_post_build" field. +func (m *MemoryMetricsMutation) ResetUsedHeapSizePostBuild() { + m.used_heap_size_post_build = nil + m.addused_heap_size_post_build = nil + delete(m.clearedFields, memorymetrics.FieldUsedHeapSizePostBuild) +} + +// SetPeakPostGcTenuredSpaceHeapSize sets the "peak_post_gc_tenured_space_heap_size" field. +func (m *MemoryMetricsMutation) SetPeakPostGcTenuredSpaceHeapSize(i int64) { + m.peak_post_gc_tenured_space_heap_size = &i + m.addpeak_post_gc_tenured_space_heap_size = nil +} + +// PeakPostGcTenuredSpaceHeapSize returns the value of the "peak_post_gc_tenured_space_heap_size" field in the mutation. +func (m *MemoryMetricsMutation) PeakPostGcTenuredSpaceHeapSize() (r int64, exists bool) { + v := m.peak_post_gc_tenured_space_heap_size + if v == nil { + return + } + return *v, true } -// SetMemoryMetricsID sets the "memory_metrics" edge to the MemoryMetrics entity by id. -func (m *MetricsMutation) SetMemoryMetricsID(id int64) { - m.memory_metrics = &id +// OldPeakPostGcTenuredSpaceHeapSize returns the old "peak_post_gc_tenured_space_heap_size" field's value of the MemoryMetrics entity. +// If the MemoryMetrics object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *MemoryMetricsMutation) OldPeakPostGcTenuredSpaceHeapSize(ctx context.Context) (v int64, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldPeakPostGcTenuredSpaceHeapSize is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldPeakPostGcTenuredSpaceHeapSize requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldPeakPostGcTenuredSpaceHeapSize: %w", err) + } + return oldValue.PeakPostGcTenuredSpaceHeapSize, nil } -// ClearMemoryMetrics clears the "memory_metrics" edge to the MemoryMetrics entity. -func (m *MetricsMutation) ClearMemoryMetrics() { - m.clearedmemory_metrics = true +// AddPeakPostGcTenuredSpaceHeapSize adds i to the "peak_post_gc_tenured_space_heap_size" field. +func (m *MemoryMetricsMutation) AddPeakPostGcTenuredSpaceHeapSize(i int64) { + if m.addpeak_post_gc_tenured_space_heap_size != nil { + *m.addpeak_post_gc_tenured_space_heap_size += i + } else { + m.addpeak_post_gc_tenured_space_heap_size = &i + } } -// MemoryMetricsCleared reports if the "memory_metrics" edge to the MemoryMetrics entity was cleared. -func (m *MetricsMutation) MemoryMetricsCleared() bool { - return m.clearedmemory_metrics +// AddedPeakPostGcTenuredSpaceHeapSize returns the value that was added to the "peak_post_gc_tenured_space_heap_size" field in this mutation. +func (m *MemoryMetricsMutation) AddedPeakPostGcTenuredSpaceHeapSize() (r int64, exists bool) { + v := m.addpeak_post_gc_tenured_space_heap_size + if v == nil { + return + } + return *v, true } -// MemoryMetricsID returns the "memory_metrics" edge ID in the mutation. -func (m *MetricsMutation) MemoryMetricsID() (id int64, exists bool) { - if m.memory_metrics != nil { - return *m.memory_metrics, true - } - return +// ClearPeakPostGcTenuredSpaceHeapSize clears the value of the "peak_post_gc_tenured_space_heap_size" field. +func (m *MemoryMetricsMutation) ClearPeakPostGcTenuredSpaceHeapSize() { + m.peak_post_gc_tenured_space_heap_size = nil + m.addpeak_post_gc_tenured_space_heap_size = nil + m.clearedFields[memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize] = struct{}{} } -// MemoryMetricsIDs returns the "memory_metrics" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// MemoryMetricsID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) MemoryMetricsIDs() (ids []int64) { - if id := m.memory_metrics; id != nil { - ids = append(ids, *id) - } - return +// PeakPostGcTenuredSpaceHeapSizeCleared returns if the "peak_post_gc_tenured_space_heap_size" field was cleared in this mutation. +func (m *MemoryMetricsMutation) PeakPostGcTenuredSpaceHeapSizeCleared() bool { + _, ok := m.clearedFields[memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize] + return ok } -// ResetMemoryMetrics resets all changes to the "memory_metrics" edge. -func (m *MetricsMutation) ResetMemoryMetrics() { - m.memory_metrics = nil - m.clearedmemory_metrics = false +// ResetPeakPostGcTenuredSpaceHeapSize resets all changes to the "peak_post_gc_tenured_space_heap_size" field. +func (m *MemoryMetricsMutation) ResetPeakPostGcTenuredSpaceHeapSize() { + m.peak_post_gc_tenured_space_heap_size = nil + m.addpeak_post_gc_tenured_space_heap_size = nil + delete(m.clearedFields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) } -// SetTargetMetricsID sets the "target_metrics" edge to the TargetMetrics entity by id. -func (m *MetricsMutation) SetTargetMetricsID(id int64) { - m.target_metrics = &id +// SetMetricsID sets the "metrics" edge to the Metrics entity by id. +func (m *MemoryMetricsMutation) SetMetricsID(id int64) { + m.metrics = &id } -// ClearTargetMetrics clears the "target_metrics" edge to the TargetMetrics entity. -func (m *MetricsMutation) ClearTargetMetrics() { - m.clearedtarget_metrics = true +// ClearMetrics clears the "metrics" edge to the Metrics entity. +func (m *MemoryMetricsMutation) ClearMetrics() { + m.clearedmetrics = true } -// TargetMetricsCleared reports if the "target_metrics" edge to the TargetMetrics entity was cleared. -func (m *MetricsMutation) TargetMetricsCleared() bool { - return m.clearedtarget_metrics +// MetricsCleared reports if the "metrics" edge to the Metrics entity was cleared. +func (m *MemoryMetricsMutation) MetricsCleared() bool { + return m.clearedmetrics } -// TargetMetricsID returns the "target_metrics" edge ID in the mutation. -func (m *MetricsMutation) TargetMetricsID() (id int64, exists bool) { - if m.target_metrics != nil { - return *m.target_metrics, true +// MetricsID returns the "metrics" edge ID in the mutation. +func (m *MemoryMetricsMutation) MetricsID() (id int64, exists bool) { + if m.metrics != nil { + return *m.metrics, true } return } -// TargetMetricsIDs returns the "target_metrics" edge IDs in the mutation. +// MetricsIDs returns the "metrics" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// TargetMetricsID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) TargetMetricsIDs() (ids []int64) { - if id := m.target_metrics; id != nil { +// MetricsID instead. It exists only for internal usage by the builders. +func (m *MemoryMetricsMutation) MetricsIDs() (ids []int64) { + if id := m.metrics; id != nil { ids = append(ids, *id) } return } -// ResetTargetMetrics resets all changes to the "target_metrics" edge. -func (m *MetricsMutation) ResetTargetMetrics() { - m.target_metrics = nil - m.clearedtarget_metrics = false +// ResetMetrics resets all changes to the "metrics" edge. +func (m *MemoryMetricsMutation) ResetMetrics() { + m.metrics = nil + m.clearedmetrics = false } -// SetTimingMetricsID sets the "timing_metrics" edge to the TimingMetrics entity by id. -func (m *MetricsMutation) SetTimingMetricsID(id int64) { - m.timing_metrics = &id +// AddGarbageMetricIDs adds the "garbage_metrics" edge to the GarbageMetrics entity by ids. +func (m *MemoryMetricsMutation) AddGarbageMetricIDs(ids ...int64) { + if m.garbage_metrics == nil { + m.garbage_metrics = make(map[int64]struct{}) + } + for i := range ids { + m.garbage_metrics[ids[i]] = struct{}{} + } } -// ClearTimingMetrics clears the "timing_metrics" edge to the TimingMetrics entity. -func (m *MetricsMutation) ClearTimingMetrics() { - m.clearedtiming_metrics = true +// ClearGarbageMetrics clears the "garbage_metrics" edge to the GarbageMetrics entity. +func (m *MemoryMetricsMutation) ClearGarbageMetrics() { + m.clearedgarbage_metrics = true } -// TimingMetricsCleared reports if the "timing_metrics" edge to the TimingMetrics entity was cleared. -func (m *MetricsMutation) TimingMetricsCleared() bool { - return m.clearedtiming_metrics +// GarbageMetricsCleared reports if the "garbage_metrics" edge to the GarbageMetrics entity was cleared. +func (m *MemoryMetricsMutation) GarbageMetricsCleared() bool { + return m.clearedgarbage_metrics } -// TimingMetricsID returns the "timing_metrics" edge ID in the mutation. -func (m *MetricsMutation) TimingMetricsID() (id int64, exists bool) { - if m.timing_metrics != nil { - return *m.timing_metrics, true +// RemoveGarbageMetricIDs removes the "garbage_metrics" edge to the GarbageMetrics entity by IDs. +func (m *MemoryMetricsMutation) RemoveGarbageMetricIDs(ids ...int64) { + if m.removedgarbage_metrics == nil { + m.removedgarbage_metrics = make(map[int64]struct{}) + } + for i := range ids { + delete(m.garbage_metrics, ids[i]) + m.removedgarbage_metrics[ids[i]] = struct{}{} } - return } -// TimingMetricsIDs returns the "timing_metrics" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// TimingMetricsID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) TimingMetricsIDs() (ids []int64) { - if id := m.timing_metrics; id != nil { - ids = append(ids, *id) +// RemovedGarbageMetrics returns the removed IDs of the "garbage_metrics" edge to the GarbageMetrics entity. +func (m *MemoryMetricsMutation) RemovedGarbageMetricsIDs() (ids []int64) { + for id := range m.removedgarbage_metrics { + ids = append(ids, id) } return } -// ResetTimingMetrics resets all changes to the "timing_metrics" edge. -func (m *MetricsMutation) ResetTimingMetrics() { - m.timing_metrics = nil - m.clearedtiming_metrics = false -} - -// SetArtifactMetricsID sets the "artifact_metrics" edge to the ArtifactMetrics entity by id. -func (m *MetricsMutation) SetArtifactMetricsID(id int64) { - m.artifact_metrics = &id -} - -// ClearArtifactMetrics clears the "artifact_metrics" edge to the ArtifactMetrics entity. -func (m *MetricsMutation) ClearArtifactMetrics() { - m.clearedartifact_metrics = true +// GarbageMetricsIDs returns the "garbage_metrics" edge IDs in the mutation. +func (m *MemoryMetricsMutation) GarbageMetricsIDs() (ids []int64) { + for id := range m.garbage_metrics { + ids = append(ids, id) + } + return } -// ArtifactMetricsCleared reports if the "artifact_metrics" edge to the ArtifactMetrics entity was cleared. -func (m *MetricsMutation) ArtifactMetricsCleared() bool { - return m.clearedartifact_metrics +// ResetGarbageMetrics resets all changes to the "garbage_metrics" edge. +func (m *MemoryMetricsMutation) ResetGarbageMetrics() { + m.garbage_metrics = nil + m.clearedgarbage_metrics = false + m.removedgarbage_metrics = nil } -// ArtifactMetricsID returns the "artifact_metrics" edge ID in the mutation. -func (m *MetricsMutation) ArtifactMetricsID() (id int64, exists bool) { - if m.artifact_metrics != nil { - return *m.artifact_metrics, true - } - return +// Where appends a list predicates to the MemoryMetricsMutation builder. +func (m *MemoryMetricsMutation) Where(ps ...predicate.MemoryMetrics) { + m.predicates = append(m.predicates, ps...) } -// ArtifactMetricsIDs returns the "artifact_metrics" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// ArtifactMetricsID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) ArtifactMetricsIDs() (ids []int64) { - if id := m.artifact_metrics; id != nil { - ids = append(ids, *id) +// WhereP appends storage-level predicates to the MemoryMetricsMutation builder. Using this method, +// users can use type-assertion to append predicates that do not depend on any generated package. +func (m *MemoryMetricsMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.MemoryMetrics, len(ps)) + for i := range ps { + p[i] = ps[i] } - return + m.Where(p...) } -// ResetArtifactMetrics resets all changes to the "artifact_metrics" edge. -func (m *MetricsMutation) ResetArtifactMetrics() { - m.artifact_metrics = nil - m.clearedartifact_metrics = false +// Op returns the operation name. +func (m *MemoryMetricsMutation) Op() Op { + return m.op } -// SetNetworkMetricsID sets the "network_metrics" edge to the NetworkMetrics entity by id. -func (m *MetricsMutation) SetNetworkMetricsID(id int64) { - m.network_metrics = &id +// SetOp allows setting the mutation operation. +func (m *MemoryMetricsMutation) SetOp(op Op) { + m.op = op } -// ClearNetworkMetrics clears the "network_metrics" edge to the NetworkMetrics entity. -func (m *MetricsMutation) ClearNetworkMetrics() { - m.clearednetwork_metrics = true +// Type returns the node type of this mutation (MemoryMetrics). +func (m *MemoryMetricsMutation) Type() string { + return m.typ } -// NetworkMetricsCleared reports if the "network_metrics" edge to the NetworkMetrics entity was cleared. -func (m *MetricsMutation) NetworkMetricsCleared() bool { - return m.clearednetwork_metrics +// Fields returns all fields that were changed during this mutation. Note that in +// order to get all numeric fields that were incremented/decremented, call +// AddedFields(). +func (m *MemoryMetricsMutation) Fields() []string { + fields := make([]string, 0, 3) + if m.peak_post_gc_heap_size != nil { + fields = append(fields, memorymetrics.FieldPeakPostGcHeapSize) + } + if m.used_heap_size_post_build != nil { + fields = append(fields, memorymetrics.FieldUsedHeapSizePostBuild) + } + if m.peak_post_gc_tenured_space_heap_size != nil { + fields = append(fields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) + } + return fields } -// NetworkMetricsID returns the "network_metrics" edge ID in the mutation. -func (m *MetricsMutation) NetworkMetricsID() (id int64, exists bool) { - if m.network_metrics != nil { - return *m.network_metrics, true +// Field returns the value of a field with the given name. The second boolean +// return value indicates that this field was not set, or was not defined in the +// schema. +func (m *MemoryMetricsMutation) Field(name string) (ent.Value, bool) { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + return m.PeakPostGcHeapSize() + case memorymetrics.FieldUsedHeapSizePostBuild: + return m.UsedHeapSizePostBuild() + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + return m.PeakPostGcTenuredSpaceHeapSize() } - return + return nil, false } -// NetworkMetricsIDs returns the "network_metrics" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// NetworkMetricsID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) NetworkMetricsIDs() (ids []int64) { - if id := m.network_metrics; id != nil { - ids = append(ids, *id) +// OldField returns the old value of the field from the database. An error is +// returned if the mutation operation is not UpdateOne, or the query to the +// database failed. +func (m *MemoryMetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + return m.OldPeakPostGcHeapSize(ctx) + case memorymetrics.FieldUsedHeapSizePostBuild: + return m.OldUsedHeapSizePostBuild(ctx) + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + return m.OldPeakPostGcTenuredSpaceHeapSize(ctx) } - return -} - -// ResetNetworkMetrics resets all changes to the "network_metrics" edge. -func (m *MetricsMutation) ResetNetworkMetrics() { - m.network_metrics = nil - m.clearednetwork_metrics = false + return nil, fmt.Errorf("unknown MemoryMetrics field %s", name) } -// SetBuildGraphMetricsID sets the "build_graph_metrics" edge to the BuildGraphMetrics entity by id. -func (m *MetricsMutation) SetBuildGraphMetricsID(id int64) { - m.build_graph_metrics = &id +// SetField sets the value of a field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *MemoryMetricsMutation) SetField(name string, value ent.Value) error { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetPeakPostGcHeapSize(v) + return nil + case memorymetrics.FieldUsedHeapSizePostBuild: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetUsedHeapSizePostBuild(v) + return nil + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetPeakPostGcTenuredSpaceHeapSize(v) + return nil + } + return fmt.Errorf("unknown MemoryMetrics field %s", name) } -// ClearBuildGraphMetrics clears the "build_graph_metrics" edge to the BuildGraphMetrics entity. -func (m *MetricsMutation) ClearBuildGraphMetrics() { - m.clearedbuild_graph_metrics = true +// AddedFields returns all numeric fields that were incremented/decremented during +// this mutation. +func (m *MemoryMetricsMutation) AddedFields() []string { + var fields []string + if m.addpeak_post_gc_heap_size != nil { + fields = append(fields, memorymetrics.FieldPeakPostGcHeapSize) + } + if m.addused_heap_size_post_build != nil { + fields = append(fields, memorymetrics.FieldUsedHeapSizePostBuild) + } + if m.addpeak_post_gc_tenured_space_heap_size != nil { + fields = append(fields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) + } + return fields } -// BuildGraphMetricsCleared reports if the "build_graph_metrics" edge to the BuildGraphMetrics entity was cleared. -func (m *MetricsMutation) BuildGraphMetricsCleared() bool { - return m.clearedbuild_graph_metrics +// AddedField returns the numeric value that was incremented/decremented on a field +// with the given name. The second boolean return value indicates that this field +// was not set, or was not defined in the schema. +func (m *MemoryMetricsMutation) AddedField(name string) (ent.Value, bool) { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + return m.AddedPeakPostGcHeapSize() + case memorymetrics.FieldUsedHeapSizePostBuild: + return m.AddedUsedHeapSizePostBuild() + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + return m.AddedPeakPostGcTenuredSpaceHeapSize() + } + return nil, false } -// BuildGraphMetricsID returns the "build_graph_metrics" edge ID in the mutation. -func (m *MetricsMutation) BuildGraphMetricsID() (id int64, exists bool) { - if m.build_graph_metrics != nil { - return *m.build_graph_metrics, true +// AddField adds the value to the field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *MemoryMetricsMutation) AddField(name string, value ent.Value) error { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddPeakPostGcHeapSize(v) + return nil + case memorymetrics.FieldUsedHeapSizePostBuild: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddUsedHeapSizePostBuild(v) + return nil + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddPeakPostGcTenuredSpaceHeapSize(v) + return nil } - return + return fmt.Errorf("unknown MemoryMetrics numeric field %s", name) } -// BuildGraphMetricsIDs returns the "build_graph_metrics" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// BuildGraphMetricsID instead. It exists only for internal usage by the builders. -func (m *MetricsMutation) BuildGraphMetricsIDs() (ids []int64) { - if id := m.build_graph_metrics; id != nil { - ids = append(ids, *id) +// ClearedFields returns all nullable fields that were cleared during this +// mutation. +func (m *MemoryMetricsMutation) ClearedFields() []string { + var fields []string + if m.FieldCleared(memorymetrics.FieldPeakPostGcHeapSize) { + fields = append(fields, memorymetrics.FieldPeakPostGcHeapSize) } - return + if m.FieldCleared(memorymetrics.FieldUsedHeapSizePostBuild) { + fields = append(fields, memorymetrics.FieldUsedHeapSizePostBuild) + } + if m.FieldCleared(memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) { + fields = append(fields, memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize) + } + return fields } -// ResetBuildGraphMetrics resets all changes to the "build_graph_metrics" edge. -func (m *MetricsMutation) ResetBuildGraphMetrics() { - m.build_graph_metrics = nil - m.clearedbuild_graph_metrics = false +// FieldCleared returns a boolean indicating if a field with the given name was +// cleared in this mutation. +func (m *MemoryMetricsMutation) FieldCleared(name string) bool { + _, ok := m.clearedFields[name] + return ok } -// Where appends a list predicates to the MetricsMutation builder. -func (m *MetricsMutation) Where(ps ...predicate.Metrics) { - m.predicates = append(m.predicates, ps...) +// ClearField clears the value of the field with the given name. It returns an +// error if the field is not defined in the schema. +func (m *MemoryMetricsMutation) ClearField(name string) error { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + m.ClearPeakPostGcHeapSize() + return nil + case memorymetrics.FieldUsedHeapSizePostBuild: + m.ClearUsedHeapSizePostBuild() + return nil + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + m.ClearPeakPostGcTenuredSpaceHeapSize() + return nil + } + return fmt.Errorf("unknown MemoryMetrics nullable field %s", name) } -// WhereP appends storage-level predicates to the MetricsMutation builder. Using this method, -// users can use type-assertion to append predicates that do not depend on any generated package. -func (m *MetricsMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.Metrics, len(ps)) - for i := range ps { - p[i] = ps[i] +// ResetField resets all changes in the mutation for the field with the given name. +// It returns an error if the field is not defined in the schema. +func (m *MemoryMetricsMutation) ResetField(name string) error { + switch name { + case memorymetrics.FieldPeakPostGcHeapSize: + m.ResetPeakPostGcHeapSize() + return nil + case memorymetrics.FieldUsedHeapSizePostBuild: + m.ResetUsedHeapSizePostBuild() + return nil + case memorymetrics.FieldPeakPostGcTenuredSpaceHeapSize: + m.ResetPeakPostGcTenuredSpaceHeapSize() + return nil } - m.Where(p...) + return fmt.Errorf("unknown MemoryMetrics field %s", name) } -// Op returns the operation name. -func (m *MetricsMutation) Op() Op { - return m.op +// AddedEdges returns all edge names that were set/added in this mutation. +func (m *MemoryMetricsMutation) AddedEdges() []string { + edges := make([]string, 0, 2) + if m.metrics != nil { + edges = append(edges, memorymetrics.EdgeMetrics) + } + if m.garbage_metrics != nil { + edges = append(edges, memorymetrics.EdgeGarbageMetrics) + } + return edges } -// SetOp allows setting the mutation operation. -func (m *MetricsMutation) SetOp(op Op) { - m.op = op +// AddedIDs returns all IDs (to other nodes) that were added for the given edge +// name in this mutation. +func (m *MemoryMetricsMutation) AddedIDs(name string) []ent.Value { + switch name { + case memorymetrics.EdgeMetrics: + if id := m.metrics; id != nil { + return []ent.Value{*id} + } + case memorymetrics.EdgeGarbageMetrics: + ids := make([]ent.Value, 0, len(m.garbage_metrics)) + for id := range m.garbage_metrics { + ids = append(ids, id) + } + return ids + } + return nil } -// Type returns the node type of this mutation (Metrics). -func (m *MetricsMutation) Type() string { - return m.typ +// RemovedEdges returns all edge names that were removed in this mutation. +func (m *MemoryMetricsMutation) RemovedEdges() []string { + edges := make([]string, 0, 2) + if m.removedgarbage_metrics != nil { + edges = append(edges, memorymetrics.EdgeGarbageMetrics) + } + return edges } -// Fields returns all fields that were changed during this mutation. Note that in -// order to get all numeric fields that were incremented/decremented, call -// AddedFields(). -func (m *MetricsMutation) Fields() []string { - fields := make([]string, 0, 0) - return fields +// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with +// the given name in this mutation. +func (m *MemoryMetricsMutation) RemovedIDs(name string) []ent.Value { + switch name { + case memorymetrics.EdgeGarbageMetrics: + ids := make([]ent.Value, 0, len(m.removedgarbage_metrics)) + for id := range m.removedgarbage_metrics { + ids = append(ids, id) + } + return ids + } + return nil } -// Field returns the value of a field with the given name. The second boolean -// return value indicates that this field was not set, or was not defined in the -// schema. -func (m *MetricsMutation) Field(name string) (ent.Value, bool) { - return nil, false +// ClearedEdges returns all edge names that were cleared in this mutation. +func (m *MemoryMetricsMutation) ClearedEdges() []string { + edges := make([]string, 0, 2) + if m.clearedmetrics { + edges = append(edges, memorymetrics.EdgeMetrics) + } + if m.clearedgarbage_metrics { + edges = append(edges, memorymetrics.EdgeGarbageMetrics) + } + return edges } -// OldField returns the old value of the field from the database. An error is -// returned if the mutation operation is not UpdateOne, or the query to the -// database failed. -func (m *MetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { - return nil, fmt.Errorf("unknown Metrics field %s", name) +// EdgeCleared returns a boolean which indicates if the edge with the given name +// was cleared in this mutation. +func (m *MemoryMetricsMutation) EdgeCleared(name string) bool { + switch name { + case memorymetrics.EdgeMetrics: + return m.clearedmetrics + case memorymetrics.EdgeGarbageMetrics: + return m.clearedgarbage_metrics + } + return false } -// SetField sets the value of a field with the given name. It returns an error if -// the field is not defined in the schema, or if the type mismatched the field -// type. -func (m *MetricsMutation) SetField(name string, value ent.Value) error { +// ClearEdge clears the value of the edge with the given name. It returns an error +// if that edge is not defined in the schema. +func (m *MemoryMetricsMutation) ClearEdge(name string) error { switch name { + case memorymetrics.EdgeMetrics: + m.ClearMetrics() + return nil } - return fmt.Errorf("unknown Metrics field %s", name) + return fmt.Errorf("unknown MemoryMetrics unique edge %s", name) } -// AddedFields returns all numeric fields that were incremented/decremented during -// this mutation. -func (m *MetricsMutation) AddedFields() []string { - return nil +// ResetEdge resets all changes to the edge with the given name in this mutation. +// It returns an error if the edge is not defined in the schema. +func (m *MemoryMetricsMutation) ResetEdge(name string) error { + switch name { + case memorymetrics.EdgeMetrics: + m.ResetMetrics() + return nil + case memorymetrics.EdgeGarbageMetrics: + m.ResetGarbageMetrics() + return nil + } + return fmt.Errorf("unknown MemoryMetrics edge %s", name) } -// AddedField returns the numeric value that was incremented/decremented on a field -// with the given name. The second boolean return value indicates that this field -// was not set, or was not defined in the schema. -func (m *MetricsMutation) AddedField(name string) (ent.Value, bool) { - return nil, false +// MetricsMutation represents an operation that mutates the Metrics nodes in the graph. +type MetricsMutation struct { + config + op Op + typ string + id *int64 + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + action_summary *int64 + clearedaction_summary bool + memory_metrics *int64 + clearedmemory_metrics bool + target_metrics *int64 + clearedtarget_metrics bool + timing_metrics *int64 + clearedtiming_metrics bool + artifact_metrics *int64 + clearedartifact_metrics bool + network_metrics *int64 + clearednetwork_metrics bool + build_graph_metrics *int64 + clearedbuild_graph_metrics bool + done bool + oldValue func(context.Context) (*Metrics, error) + predicates []predicate.Metrics } -// AddField adds the value to the field with the given name. It returns an error if -// the field is not defined in the schema, or if the type mismatched the field -// type. -func (m *MetricsMutation) AddField(name string, value ent.Value) error { - return fmt.Errorf("unknown Metrics numeric field %s", name) -} +var _ ent.Mutation = (*MetricsMutation)(nil) -// ClearedFields returns all nullable fields that were cleared during this -// mutation. -func (m *MetricsMutation) ClearedFields() []string { - return nil +// metricsOption allows management of the mutation configuration using functional options. +type metricsOption func(*MetricsMutation) + +// newMetricsMutation creates new mutation for the Metrics entity. +func newMetricsMutation(c config, op Op, opts ...metricsOption) *MetricsMutation { + m := &MetricsMutation{ + config: c, + op: op, + typ: TypeMetrics, + clearedFields: make(map[string]struct{}), + } + for _, opt := range opts { + opt(m) + } + return m } -// FieldCleared returns a boolean indicating if a field with the given name was -// cleared in this mutation. -func (m *MetricsMutation) FieldCleared(name string) bool { - _, ok := m.clearedFields[name] - return ok +// withMetricsID sets the ID field of the mutation. +func withMetricsID(id int64) metricsOption { + return func(m *MetricsMutation) { + var ( + err error + once sync.Once + value *Metrics + ) + m.oldValue = func(ctx context.Context) (*Metrics, error) { + once.Do(func() { + if m.done { + err = errors.New("querying old values post mutation is not allowed") + } else { + value, err = m.Client().Metrics.Get(ctx, id) + } + }) + return value, err + } + m.id = &id + } } -// ClearField clears the value of the field with the given name. It returns an -// error if the field is not defined in the schema. -func (m *MetricsMutation) ClearField(name string) error { - return fmt.Errorf("unknown Metrics nullable field %s", name) +// withMetrics sets the old Metrics of the mutation. +func withMetrics(node *Metrics) metricsOption { + return func(m *MetricsMutation) { + m.oldValue = func(context.Context) (*Metrics, error) { + return node, nil + } + m.id = &node.ID + } } -// ResetField resets all changes in the mutation for the field with the given name. -// It returns an error if the field is not defined in the schema. -func (m *MetricsMutation) ResetField(name string) error { - return fmt.Errorf("unknown Metrics field %s", name) +// Client returns a new `ent.Client` from the mutation. If the mutation was +// executed in a transaction (ent.Tx), a transactional client is returned. +func (m MetricsMutation) Client() *Client { + client := &Client{config: m.config} + client.init() + return client } -// AddedEdges returns all edge names that were set/added in this mutation. -func (m *MetricsMutation) AddedEdges() []string { - edges := make([]string, 0, 8) - if m.bazel_invocation != nil { - edges = append(edges, metrics.EdgeBazelInvocation) - } - if m.action_summary != nil { - edges = append(edges, metrics.EdgeActionSummary) - } - if m.memory_metrics != nil { - edges = append(edges, metrics.EdgeMemoryMetrics) - } - if m.target_metrics != nil { - edges = append(edges, metrics.EdgeTargetMetrics) - } - if m.timing_metrics != nil { - edges = append(edges, metrics.EdgeTimingMetrics) - } - if m.artifact_metrics != nil { - edges = append(edges, metrics.EdgeArtifactMetrics) - } - if m.network_metrics != nil { - edges = append(edges, metrics.EdgeNetworkMetrics) +// Tx returns an `ent.Tx` for mutations that were executed in transactions; +// it returns an error otherwise. +func (m MetricsMutation) Tx() (*Tx, error) { + if _, ok := m.driver.(*txDriver); !ok { + return nil, errors.New("ent: mutation is not running in a transaction") } - if m.build_graph_metrics != nil { - edges = append(edges, metrics.EdgeBuildGraphMetrics) + tx := &Tx{config: m.config} + tx.init() + return tx, nil +} + +// SetID sets the value of the id field. Note that this +// operation is only accepted on creation of Metrics entities. +func (m *MetricsMutation) SetID(id int64) { + m.id = &id +} + +// ID returns the ID value in the mutation. Note that the ID is only available +// if it was provided to the builder or after it was returned from the database. +func (m *MetricsMutation) ID() (id int64, exists bool) { + if m.id == nil { + return } - return edges + return *m.id, true } -// AddedIDs returns all IDs (to other nodes) that were added for the given edge -// name in this mutation. -func (m *MetricsMutation) AddedIDs(name string) []ent.Value { - switch name { - case metrics.EdgeBazelInvocation: - if id := m.bazel_invocation; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeActionSummary: - if id := m.action_summary; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeMemoryMetrics: - if id := m.memory_metrics; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeTargetMetrics: - if id := m.target_metrics; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeTimingMetrics: - if id := m.timing_metrics; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeArtifactMetrics: - if id := m.artifact_metrics; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeNetworkMetrics: - if id := m.network_metrics; id != nil { - return []ent.Value{*id} - } - case metrics.EdgeBuildGraphMetrics: - if id := m.build_graph_metrics; id != nil { - return []ent.Value{*id} +// IDs queries the database and returns the entity ids that match the mutation's predicate. +// That means, if the mutation is applied within a transaction with an isolation level such +// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated +// or updated by the mutation. +func (m *MetricsMutation) IDs(ctx context.Context) ([]int64, error) { + switch { + case m.op.Is(OpUpdateOne | OpDeleteOne): + id, exists := m.ID() + if exists { + return []int64{id}, nil } + fallthrough + case m.op.Is(OpUpdate | OpDelete): + return m.Client().Metrics.Query().Where(m.predicates...).IDs(ctx) + default: + return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } - return nil } -// RemovedEdges returns all edge names that were removed in this mutation. -func (m *MetricsMutation) RemovedEdges() []string { - edges := make([]string, 0, 8) - return edges +// SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. +func (m *MetricsMutation) SetBazelInvocationID(id int64) { + m.bazel_invocation = &id } -// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with -// the given name in this mutation. -func (m *MetricsMutation) RemovedIDs(name string) []ent.Value { - return nil +// ClearBazelInvocation clears the "bazel_invocation" edge to the BazelInvocation entity. +func (m *MetricsMutation) ClearBazelInvocation() { + m.clearedbazel_invocation = true } -// ClearedEdges returns all edge names that were cleared in this mutation. -func (m *MetricsMutation) ClearedEdges() []string { - edges := make([]string, 0, 8) - if m.clearedbazel_invocation { - edges = append(edges, metrics.EdgeBazelInvocation) - } - if m.clearedaction_summary { - edges = append(edges, metrics.EdgeActionSummary) - } - if m.clearedmemory_metrics { - edges = append(edges, metrics.EdgeMemoryMetrics) - } - if m.clearedtarget_metrics { - edges = append(edges, metrics.EdgeTargetMetrics) - } - if m.clearedtiming_metrics { - edges = append(edges, metrics.EdgeTimingMetrics) - } - if m.clearedartifact_metrics { - edges = append(edges, metrics.EdgeArtifactMetrics) - } - if m.clearednetwork_metrics { - edges = append(edges, metrics.EdgeNetworkMetrics) - } - if m.clearedbuild_graph_metrics { - edges = append(edges, metrics.EdgeBuildGraphMetrics) +// BazelInvocationCleared reports if the "bazel_invocation" edge to the BazelInvocation entity was cleared. +func (m *MetricsMutation) BazelInvocationCleared() bool { + return m.clearedbazel_invocation +} + +// BazelInvocationID returns the "bazel_invocation" edge ID in the mutation. +func (m *MetricsMutation) BazelInvocationID() (id int64, exists bool) { + if m.bazel_invocation != nil { + return *m.bazel_invocation, true } - return edges + return } -// EdgeCleared returns a boolean which indicates if the edge with the given name -// was cleared in this mutation. -func (m *MetricsMutation) EdgeCleared(name string) bool { - switch name { - case metrics.EdgeBazelInvocation: - return m.clearedbazel_invocation - case metrics.EdgeActionSummary: - return m.clearedaction_summary - case metrics.EdgeMemoryMetrics: - return m.clearedmemory_metrics - case metrics.EdgeTargetMetrics: - return m.clearedtarget_metrics - case metrics.EdgeTimingMetrics: - return m.clearedtiming_metrics - case metrics.EdgeArtifactMetrics: - return m.clearedartifact_metrics - case metrics.EdgeNetworkMetrics: - return m.clearednetwork_metrics - case metrics.EdgeBuildGraphMetrics: - return m.clearedbuild_graph_metrics +// BazelInvocationIDs returns the "bazel_invocation" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// BazelInvocationID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) BazelInvocationIDs() (ids []int64) { + if id := m.bazel_invocation; id != nil { + ids = append(ids, *id) } - return false + return } -// ClearEdge clears the value of the edge with the given name. It returns an error -// if that edge is not defined in the schema. -func (m *MetricsMutation) ClearEdge(name string) error { - switch name { - case metrics.EdgeBazelInvocation: - m.ClearBazelInvocation() - return nil - case metrics.EdgeActionSummary: - m.ClearActionSummary() - return nil - case metrics.EdgeMemoryMetrics: - m.ClearMemoryMetrics() - return nil - case metrics.EdgeTargetMetrics: - m.ClearTargetMetrics() - return nil - case metrics.EdgeTimingMetrics: - m.ClearTimingMetrics() - return nil - case metrics.EdgeArtifactMetrics: - m.ClearArtifactMetrics() - return nil - case metrics.EdgeNetworkMetrics: - m.ClearNetworkMetrics() - return nil - case metrics.EdgeBuildGraphMetrics: - m.ClearBuildGraphMetrics() - return nil +// ResetBazelInvocation resets all changes to the "bazel_invocation" edge. +func (m *MetricsMutation) ResetBazelInvocation() { + m.bazel_invocation = nil + m.clearedbazel_invocation = false +} + +// SetActionSummaryID sets the "action_summary" edge to the ActionSummary entity by id. +func (m *MetricsMutation) SetActionSummaryID(id int64) { + m.action_summary = &id +} + +// ClearActionSummary clears the "action_summary" edge to the ActionSummary entity. +func (m *MetricsMutation) ClearActionSummary() { + m.clearedaction_summary = true +} + +// ActionSummaryCleared reports if the "action_summary" edge to the ActionSummary entity was cleared. +func (m *MetricsMutation) ActionSummaryCleared() bool { + return m.clearedaction_summary +} + +// ActionSummaryID returns the "action_summary" edge ID in the mutation. +func (m *MetricsMutation) ActionSummaryID() (id int64, exists bool) { + if m.action_summary != nil { + return *m.action_summary, true } - return fmt.Errorf("unknown Metrics unique edge %s", name) + return } -// ResetEdge resets all changes to the edge with the given name in this mutation. -// It returns an error if the edge is not defined in the schema. -func (m *MetricsMutation) ResetEdge(name string) error { - switch name { - case metrics.EdgeBazelInvocation: - m.ResetBazelInvocation() - return nil - case metrics.EdgeActionSummary: - m.ResetActionSummary() - return nil - case metrics.EdgeMemoryMetrics: - m.ResetMemoryMetrics() - return nil - case metrics.EdgeTargetMetrics: - m.ResetTargetMetrics() - return nil - case metrics.EdgeTimingMetrics: - m.ResetTimingMetrics() - return nil - case metrics.EdgeArtifactMetrics: - m.ResetArtifactMetrics() - return nil - case metrics.EdgeNetworkMetrics: - m.ResetNetworkMetrics() - return nil - case metrics.EdgeBuildGraphMetrics: - m.ResetBuildGraphMetrics() - return nil +// ActionSummaryIDs returns the "action_summary" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// ActionSummaryID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) ActionSummaryIDs() (ids []int64) { + if id := m.action_summary; id != nil { + ids = append(ids, *id) } - return fmt.Errorf("unknown Metrics edge %s", name) + return } -// MissDetailMutation represents an operation that mutates the MissDetail nodes in the graph. -type MissDetailMutation struct { - config - op Op - typ string - id *int64 - reason *string - count *int32 - addcount *int32 - clearedFields map[string]struct{} - action_cache_statistics *int64 - clearedaction_cache_statistics bool - done bool - oldValue func(context.Context) (*MissDetail, error) - predicates []predicate.MissDetail +// ResetActionSummary resets all changes to the "action_summary" edge. +func (m *MetricsMutation) ResetActionSummary() { + m.action_summary = nil + m.clearedaction_summary = false } -var _ ent.Mutation = (*MissDetailMutation)(nil) +// SetMemoryMetricsID sets the "memory_metrics" edge to the MemoryMetrics entity by id. +func (m *MetricsMutation) SetMemoryMetricsID(id int64) { + m.memory_metrics = &id +} -// missdetailOption allows management of the mutation configuration using functional options. -type missdetailOption func(*MissDetailMutation) +// ClearMemoryMetrics clears the "memory_metrics" edge to the MemoryMetrics entity. +func (m *MetricsMutation) ClearMemoryMetrics() { + m.clearedmemory_metrics = true +} -// newMissDetailMutation creates new mutation for the MissDetail entity. -func newMissDetailMutation(c config, op Op, opts ...missdetailOption) *MissDetailMutation { - m := &MissDetailMutation{ - config: c, - op: op, - typ: TypeMissDetail, - clearedFields: make(map[string]struct{}), +// MemoryMetricsCleared reports if the "memory_metrics" edge to the MemoryMetrics entity was cleared. +func (m *MetricsMutation) MemoryMetricsCleared() bool { + return m.clearedmemory_metrics +} + +// MemoryMetricsID returns the "memory_metrics" edge ID in the mutation. +func (m *MetricsMutation) MemoryMetricsID() (id int64, exists bool) { + if m.memory_metrics != nil { + return *m.memory_metrics, true } - for _, opt := range opts { - opt(m) + return +} + +// MemoryMetricsIDs returns the "memory_metrics" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// MemoryMetricsID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) MemoryMetricsIDs() (ids []int64) { + if id := m.memory_metrics; id != nil { + ids = append(ids, *id) } - return m + return +} + +// ResetMemoryMetrics resets all changes to the "memory_metrics" edge. +func (m *MetricsMutation) ResetMemoryMetrics() { + m.memory_metrics = nil + m.clearedmemory_metrics = false +} + +// SetTargetMetricsID sets the "target_metrics" edge to the TargetMetrics entity by id. +func (m *MetricsMutation) SetTargetMetricsID(id int64) { + m.target_metrics = &id +} + +// ClearTargetMetrics clears the "target_metrics" edge to the TargetMetrics entity. +func (m *MetricsMutation) ClearTargetMetrics() { + m.clearedtarget_metrics = true +} + +// TargetMetricsCleared reports if the "target_metrics" edge to the TargetMetrics entity was cleared. +func (m *MetricsMutation) TargetMetricsCleared() bool { + return m.clearedtarget_metrics } -// withMissDetailID sets the ID field of the mutation. -func withMissDetailID(id int64) missdetailOption { - return func(m *MissDetailMutation) { - var ( - err error - once sync.Once - value *MissDetail - ) - m.oldValue = func(ctx context.Context) (*MissDetail, error) { - once.Do(func() { - if m.done { - err = errors.New("querying old values post mutation is not allowed") - } else { - value, err = m.Client().MissDetail.Get(ctx, id) - } - }) - return value, err - } - m.id = &id +// TargetMetricsID returns the "target_metrics" edge ID in the mutation. +func (m *MetricsMutation) TargetMetricsID() (id int64, exists bool) { + if m.target_metrics != nil { + return *m.target_metrics, true } + return } -// withMissDetail sets the old MissDetail of the mutation. -func withMissDetail(node *MissDetail) missdetailOption { - return func(m *MissDetailMutation) { - m.oldValue = func(context.Context) (*MissDetail, error) { - return node, nil - } - m.id = &node.ID +// TargetMetricsIDs returns the "target_metrics" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// TargetMetricsID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) TargetMetricsIDs() (ids []int64) { + if id := m.target_metrics; id != nil { + ids = append(ids, *id) } + return } -// Client returns a new `ent.Client` from the mutation. If the mutation was -// executed in a transaction (ent.Tx), a transactional client is returned. -func (m MissDetailMutation) Client() *Client { - client := &Client{config: m.config} - client.init() - return client +// ResetTargetMetrics resets all changes to the "target_metrics" edge. +func (m *MetricsMutation) ResetTargetMetrics() { + m.target_metrics = nil + m.clearedtarget_metrics = false } -// Tx returns an `ent.Tx` for mutations that were executed in transactions; -// it returns an error otherwise. -func (m MissDetailMutation) Tx() (*Tx, error) { - if _, ok := m.driver.(*txDriver); !ok { - return nil, errors.New("ent: mutation is not running in a transaction") - } - tx := &Tx{config: m.config} - tx.init() - return tx, nil +// SetTimingMetricsID sets the "timing_metrics" edge to the TimingMetrics entity by id. +func (m *MetricsMutation) SetTimingMetricsID(id int64) { + m.timing_metrics = &id } -// SetID sets the value of the id field. Note that this -// operation is only accepted on creation of MissDetail entities. -func (m *MissDetailMutation) SetID(id int64) { - m.id = &id +// ClearTimingMetrics clears the "timing_metrics" edge to the TimingMetrics entity. +func (m *MetricsMutation) ClearTimingMetrics() { + m.clearedtiming_metrics = true } -// ID returns the ID value in the mutation. Note that the ID is only available -// if it was provided to the builder or after it was returned from the database. -func (m *MissDetailMutation) ID() (id int64, exists bool) { - if m.id == nil { - return - } - return *m.id, true +// TimingMetricsCleared reports if the "timing_metrics" edge to the TimingMetrics entity was cleared. +func (m *MetricsMutation) TimingMetricsCleared() bool { + return m.clearedtiming_metrics } -// IDs queries the database and returns the entity ids that match the mutation's predicate. -// That means, if the mutation is applied within a transaction with an isolation level such -// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated -// or updated by the mutation. -func (m *MissDetailMutation) IDs(ctx context.Context) ([]int64, error) { - switch { - case m.op.Is(OpUpdateOne | OpDeleteOne): - id, exists := m.ID() - if exists { - return []int64{id}, nil - } - fallthrough - case m.op.Is(OpUpdate | OpDelete): - return m.Client().MissDetail.Query().Where(m.predicates...).IDs(ctx) - default: - return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) +// TimingMetricsID returns the "timing_metrics" edge ID in the mutation. +func (m *MetricsMutation) TimingMetricsID() (id int64, exists bool) { + if m.timing_metrics != nil { + return *m.timing_metrics, true } + return } -// SetReason sets the "reason" field. -func (m *MissDetailMutation) SetReason(s string) { - m.reason = &s +// TimingMetricsIDs returns the "timing_metrics" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// TimingMetricsID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) TimingMetricsIDs() (ids []int64) { + if id := m.timing_metrics; id != nil { + ids = append(ids, *id) + } + return } -// Reason returns the value of the "reason" field in the mutation. -func (m *MissDetailMutation) Reason() (r string, exists bool) { - v := m.reason - if v == nil { - return - } - return *v, true +// ResetTimingMetrics resets all changes to the "timing_metrics" edge. +func (m *MetricsMutation) ResetTimingMetrics() { + m.timing_metrics = nil + m.clearedtiming_metrics = false } -// OldReason returns the old "reason" field's value of the MissDetail entity. -// If the MissDetail object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *MissDetailMutation) OldReason(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldReason is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldReason requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldReason: %w", err) - } - return oldValue.Reason, nil +// SetArtifactMetricsID sets the "artifact_metrics" edge to the ArtifactMetrics entity by id. +func (m *MetricsMutation) SetArtifactMetricsID(id int64) { + m.artifact_metrics = &id } -// ResetReason resets all changes to the "reason" field. -func (m *MissDetailMutation) ResetReason() { - m.reason = nil +// ClearArtifactMetrics clears the "artifact_metrics" edge to the ArtifactMetrics entity. +func (m *MetricsMutation) ClearArtifactMetrics() { + m.clearedartifact_metrics = true } -// SetCount sets the "count" field. -func (m *MissDetailMutation) SetCount(i int32) { - m.count = &i - m.addcount = nil +// ArtifactMetricsCleared reports if the "artifact_metrics" edge to the ArtifactMetrics entity was cleared. +func (m *MetricsMutation) ArtifactMetricsCleared() bool { + return m.clearedartifact_metrics } -// Count returns the value of the "count" field in the mutation. -func (m *MissDetailMutation) Count() (r int32, exists bool) { - v := m.count - if v == nil { - return +// ArtifactMetricsID returns the "artifact_metrics" edge ID in the mutation. +func (m *MetricsMutation) ArtifactMetricsID() (id int64, exists bool) { + if m.artifact_metrics != nil { + return *m.artifact_metrics, true } - return *v, true + return } -// OldCount returns the old "count" field's value of the MissDetail entity. -// If the MissDetail object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *MissDetailMutation) OldCount(ctx context.Context) (v int32, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldCount is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldCount requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldCount: %w", err) +// ArtifactMetricsIDs returns the "artifact_metrics" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// ArtifactMetricsID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) ArtifactMetricsIDs() (ids []int64) { + if id := m.artifact_metrics; id != nil { + ids = append(ids, *id) } - return oldValue.Count, nil + return } -// AddCount adds i to the "count" field. -func (m *MissDetailMutation) AddCount(i int32) { - if m.addcount != nil { - *m.addcount += i - } else { - m.addcount = &i - } +// ResetArtifactMetrics resets all changes to the "artifact_metrics" edge. +func (m *MetricsMutation) ResetArtifactMetrics() { + m.artifact_metrics = nil + m.clearedartifact_metrics = false } -// AddedCount returns the value that was added to the "count" field in this mutation. -func (m *MissDetailMutation) AddedCount() (r int32, exists bool) { - v := m.addcount - if v == nil { - return - } - return *v, true +// SetNetworkMetricsID sets the "network_metrics" edge to the NetworkMetrics entity by id. +func (m *MetricsMutation) SetNetworkMetricsID(id int64) { + m.network_metrics = &id } -// ClearCount clears the value of the "count" field. -func (m *MissDetailMutation) ClearCount() { - m.count = nil - m.addcount = nil - m.clearedFields[missdetail.FieldCount] = struct{}{} +// ClearNetworkMetrics clears the "network_metrics" edge to the NetworkMetrics entity. +func (m *MetricsMutation) ClearNetworkMetrics() { + m.clearednetwork_metrics = true } -// CountCleared returns if the "count" field was cleared in this mutation. -func (m *MissDetailMutation) CountCleared() bool { - _, ok := m.clearedFields[missdetail.FieldCount] - return ok +// NetworkMetricsCleared reports if the "network_metrics" edge to the NetworkMetrics entity was cleared. +func (m *MetricsMutation) NetworkMetricsCleared() bool { + return m.clearednetwork_metrics } -// ResetCount resets all changes to the "count" field. -func (m *MissDetailMutation) ResetCount() { - m.count = nil - m.addcount = nil - delete(m.clearedFields, missdetail.FieldCount) +// NetworkMetricsID returns the "network_metrics" edge ID in the mutation. +func (m *MetricsMutation) NetworkMetricsID() (id int64, exists bool) { + if m.network_metrics != nil { + return *m.network_metrics, true + } + return } -// SetActionCacheStatisticsID sets the "action_cache_statistics" edge to the ActionCacheStatistics entity by id. -func (m *MissDetailMutation) SetActionCacheStatisticsID(id int64) { - m.action_cache_statistics = &id +// NetworkMetricsIDs returns the "network_metrics" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// NetworkMetricsID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) NetworkMetricsIDs() (ids []int64) { + if id := m.network_metrics; id != nil { + ids = append(ids, *id) + } + return } -// ClearActionCacheStatistics clears the "action_cache_statistics" edge to the ActionCacheStatistics entity. -func (m *MissDetailMutation) ClearActionCacheStatistics() { - m.clearedaction_cache_statistics = true +// ResetNetworkMetrics resets all changes to the "network_metrics" edge. +func (m *MetricsMutation) ResetNetworkMetrics() { + m.network_metrics = nil + m.clearednetwork_metrics = false +} + +// SetBuildGraphMetricsID sets the "build_graph_metrics" edge to the BuildGraphMetrics entity by id. +func (m *MetricsMutation) SetBuildGraphMetricsID(id int64) { + m.build_graph_metrics = &id +} + +// ClearBuildGraphMetrics clears the "build_graph_metrics" edge to the BuildGraphMetrics entity. +func (m *MetricsMutation) ClearBuildGraphMetrics() { + m.clearedbuild_graph_metrics = true } -// ActionCacheStatisticsCleared reports if the "action_cache_statistics" edge to the ActionCacheStatistics entity was cleared. -func (m *MissDetailMutation) ActionCacheStatisticsCleared() bool { - return m.clearedaction_cache_statistics +// BuildGraphMetricsCleared reports if the "build_graph_metrics" edge to the BuildGraphMetrics entity was cleared. +func (m *MetricsMutation) BuildGraphMetricsCleared() bool { + return m.clearedbuild_graph_metrics } -// ActionCacheStatisticsID returns the "action_cache_statistics" edge ID in the mutation. -func (m *MissDetailMutation) ActionCacheStatisticsID() (id int64, exists bool) { - if m.action_cache_statistics != nil { - return *m.action_cache_statistics, true +// BuildGraphMetricsID returns the "build_graph_metrics" edge ID in the mutation. +func (m *MetricsMutation) BuildGraphMetricsID() (id int64, exists bool) { + if m.build_graph_metrics != nil { + return *m.build_graph_metrics, true } return } -// ActionCacheStatisticsIDs returns the "action_cache_statistics" edge IDs in the mutation. +// BuildGraphMetricsIDs returns the "build_graph_metrics" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// ActionCacheStatisticsID instead. It exists only for internal usage by the builders. -func (m *MissDetailMutation) ActionCacheStatisticsIDs() (ids []int64) { - if id := m.action_cache_statistics; id != nil { +// BuildGraphMetricsID instead. It exists only for internal usage by the builders. +func (m *MetricsMutation) BuildGraphMetricsIDs() (ids []int64) { + if id := m.build_graph_metrics; id != nil { ids = append(ids, *id) } return } -// ResetActionCacheStatistics resets all changes to the "action_cache_statistics" edge. -func (m *MissDetailMutation) ResetActionCacheStatistics() { - m.action_cache_statistics = nil - m.clearedaction_cache_statistics = false +// ResetBuildGraphMetrics resets all changes to the "build_graph_metrics" edge. +func (m *MetricsMutation) ResetBuildGraphMetrics() { + m.build_graph_metrics = nil + m.clearedbuild_graph_metrics = false } -// Where appends a list predicates to the MissDetailMutation builder. -func (m *MissDetailMutation) Where(ps ...predicate.MissDetail) { +// Where appends a list predicates to the MetricsMutation builder. +func (m *MetricsMutation) Where(ps ...predicate.Metrics) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the MissDetailMutation builder. Using this method, +// WhereP appends storage-level predicates to the MetricsMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *MissDetailMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.MissDetail, len(ps)) +func (m *MetricsMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.Metrics, len(ps)) for i := range ps { p[i] = ps[i] } @@ -19548,263 +19677,324 @@ func (m *MissDetailMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *MissDetailMutation) Op() Op { +func (m *MetricsMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *MissDetailMutation) SetOp(op Op) { +func (m *MetricsMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (MissDetail). -func (m *MissDetailMutation) Type() string { +// Type returns the node type of this mutation (Metrics). +func (m *MetricsMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *MissDetailMutation) Fields() []string { - fields := make([]string, 0, 2) - if m.reason != nil { - fields = append(fields, missdetail.FieldReason) - } - if m.count != nil { - fields = append(fields, missdetail.FieldCount) - } +func (m *MetricsMutation) Fields() []string { + fields := make([]string, 0, 0) return fields } // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *MissDetailMutation) Field(name string) (ent.Value, bool) { - switch name { - case missdetail.FieldReason: - return m.Reason() - case missdetail.FieldCount: - return m.Count() - } +func (m *MetricsMutation) Field(name string) (ent.Value, bool) { return nil, false } // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *MissDetailMutation) OldField(ctx context.Context, name string) (ent.Value, error) { - switch name { - case missdetail.FieldReason: - return m.OldReason(ctx) - case missdetail.FieldCount: - return m.OldCount(ctx) - } - return nil, fmt.Errorf("unknown MissDetail field %s", name) +func (m *MetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + return nil, fmt.Errorf("unknown Metrics field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *MissDetailMutation) SetField(name string, value ent.Value) error { +func (m *MetricsMutation) SetField(name string, value ent.Value) error { switch name { - case missdetail.FieldReason: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetReason(v) - return nil - case missdetail.FieldCount: - v, ok := value.(int32) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetCount(v) - return nil } - return fmt.Errorf("unknown MissDetail field %s", name) + return fmt.Errorf("unknown Metrics field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *MissDetailMutation) AddedFields() []string { - var fields []string - if m.addcount != nil { - fields = append(fields, missdetail.FieldCount) - } - return fields +func (m *MetricsMutation) AddedFields() []string { + return nil } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *MissDetailMutation) AddedField(name string) (ent.Value, bool) { - switch name { - case missdetail.FieldCount: - return m.AddedCount() - } +func (m *MetricsMutation) AddedField(name string) (ent.Value, bool) { return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *MissDetailMutation) AddField(name string, value ent.Value) error { - switch name { - case missdetail.FieldCount: - v, ok := value.(int32) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddCount(v) - return nil - } - return fmt.Errorf("unknown MissDetail numeric field %s", name) +func (m *MetricsMutation) AddField(name string, value ent.Value) error { + return fmt.Errorf("unknown Metrics numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *MissDetailMutation) ClearedFields() []string { - var fields []string - if m.FieldCleared(missdetail.FieldCount) { - fields = append(fields, missdetail.FieldCount) - } - return fields +func (m *MetricsMutation) ClearedFields() []string { + return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *MissDetailMutation) FieldCleared(name string) bool { +func (m *MetricsMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *MissDetailMutation) ClearField(name string) error { - switch name { - case missdetail.FieldCount: - m.ClearCount() - return nil - } - return fmt.Errorf("unknown MissDetail nullable field %s", name) +func (m *MetricsMutation) ClearField(name string) error { + return fmt.Errorf("unknown Metrics nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *MissDetailMutation) ResetField(name string) error { - switch name { - case missdetail.FieldReason: - m.ResetReason() - return nil - case missdetail.FieldCount: - m.ResetCount() - return nil - } - return fmt.Errorf("unknown MissDetail field %s", name) +func (m *MetricsMutation) ResetField(name string) error { + return fmt.Errorf("unknown Metrics field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *MissDetailMutation) AddedEdges() []string { - edges := make([]string, 0, 1) - if m.action_cache_statistics != nil { - edges = append(edges, missdetail.EdgeActionCacheStatistics) +func (m *MetricsMutation) AddedEdges() []string { + edges := make([]string, 0, 8) + if m.bazel_invocation != nil { + edges = append(edges, metrics.EdgeBazelInvocation) + } + if m.action_summary != nil { + edges = append(edges, metrics.EdgeActionSummary) + } + if m.memory_metrics != nil { + edges = append(edges, metrics.EdgeMemoryMetrics) + } + if m.target_metrics != nil { + edges = append(edges, metrics.EdgeTargetMetrics) + } + if m.timing_metrics != nil { + edges = append(edges, metrics.EdgeTimingMetrics) + } + if m.artifact_metrics != nil { + edges = append(edges, metrics.EdgeArtifactMetrics) + } + if m.network_metrics != nil { + edges = append(edges, metrics.EdgeNetworkMetrics) + } + if m.build_graph_metrics != nil { + edges = append(edges, metrics.EdgeBuildGraphMetrics) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *MissDetailMutation) AddedIDs(name string) []ent.Value { +func (m *MetricsMutation) AddedIDs(name string) []ent.Value { switch name { - case missdetail.EdgeActionCacheStatistics: - if id := m.action_cache_statistics; id != nil { + case metrics.EdgeBazelInvocation: + if id := m.bazel_invocation; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeActionSummary: + if id := m.action_summary; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeMemoryMetrics: + if id := m.memory_metrics; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeTargetMetrics: + if id := m.target_metrics; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeTimingMetrics: + if id := m.timing_metrics; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeArtifactMetrics: + if id := m.artifact_metrics; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeNetworkMetrics: + if id := m.network_metrics; id != nil { + return []ent.Value{*id} + } + case metrics.EdgeBuildGraphMetrics: + if id := m.build_graph_metrics; id != nil { return []ent.Value{*id} } } - return nil -} - -// RemovedEdges returns all edge names that were removed in this mutation. -func (m *MissDetailMutation) RemovedEdges() []string { - edges := make([]string, 0, 1) - return edges -} - -// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with -// the given name in this mutation. -func (m *MissDetailMutation) RemovedIDs(name string) []ent.Value { - return nil -} - -// ClearedEdges returns all edge names that were cleared in this mutation. -func (m *MissDetailMutation) ClearedEdges() []string { - edges := make([]string, 0, 1) - if m.clearedaction_cache_statistics { - edges = append(edges, missdetail.EdgeActionCacheStatistics) + return nil +} + +// RemovedEdges returns all edge names that were removed in this mutation. +func (m *MetricsMutation) RemovedEdges() []string { + edges := make([]string, 0, 8) + return edges +} + +// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with +// the given name in this mutation. +func (m *MetricsMutation) RemovedIDs(name string) []ent.Value { + return nil +} + +// ClearedEdges returns all edge names that were cleared in this mutation. +func (m *MetricsMutation) ClearedEdges() []string { + edges := make([]string, 0, 8) + if m.clearedbazel_invocation { + edges = append(edges, metrics.EdgeBazelInvocation) + } + if m.clearedaction_summary { + edges = append(edges, metrics.EdgeActionSummary) + } + if m.clearedmemory_metrics { + edges = append(edges, metrics.EdgeMemoryMetrics) + } + if m.clearedtarget_metrics { + edges = append(edges, metrics.EdgeTargetMetrics) + } + if m.clearedtiming_metrics { + edges = append(edges, metrics.EdgeTimingMetrics) + } + if m.clearedartifact_metrics { + edges = append(edges, metrics.EdgeArtifactMetrics) + } + if m.clearednetwork_metrics { + edges = append(edges, metrics.EdgeNetworkMetrics) + } + if m.clearedbuild_graph_metrics { + edges = append(edges, metrics.EdgeBuildGraphMetrics) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *MissDetailMutation) EdgeCleared(name string) bool { +func (m *MetricsMutation) EdgeCleared(name string) bool { switch name { - case missdetail.EdgeActionCacheStatistics: - return m.clearedaction_cache_statistics + case metrics.EdgeBazelInvocation: + return m.clearedbazel_invocation + case metrics.EdgeActionSummary: + return m.clearedaction_summary + case metrics.EdgeMemoryMetrics: + return m.clearedmemory_metrics + case metrics.EdgeTargetMetrics: + return m.clearedtarget_metrics + case metrics.EdgeTimingMetrics: + return m.clearedtiming_metrics + case metrics.EdgeArtifactMetrics: + return m.clearedartifact_metrics + case metrics.EdgeNetworkMetrics: + return m.clearednetwork_metrics + case metrics.EdgeBuildGraphMetrics: + return m.clearedbuild_graph_metrics } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *MissDetailMutation) ClearEdge(name string) error { +func (m *MetricsMutation) ClearEdge(name string) error { switch name { - case missdetail.EdgeActionCacheStatistics: - m.ClearActionCacheStatistics() + case metrics.EdgeBazelInvocation: + m.ClearBazelInvocation() + return nil + case metrics.EdgeActionSummary: + m.ClearActionSummary() + return nil + case metrics.EdgeMemoryMetrics: + m.ClearMemoryMetrics() + return nil + case metrics.EdgeTargetMetrics: + m.ClearTargetMetrics() + return nil + case metrics.EdgeTimingMetrics: + m.ClearTimingMetrics() + return nil + case metrics.EdgeArtifactMetrics: + m.ClearArtifactMetrics() + return nil + case metrics.EdgeNetworkMetrics: + m.ClearNetworkMetrics() + return nil + case metrics.EdgeBuildGraphMetrics: + m.ClearBuildGraphMetrics() return nil } - return fmt.Errorf("unknown MissDetail unique edge %s", name) + return fmt.Errorf("unknown Metrics unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *MissDetailMutation) ResetEdge(name string) error { +func (m *MetricsMutation) ResetEdge(name string) error { switch name { - case missdetail.EdgeActionCacheStatistics: - m.ResetActionCacheStatistics() + case metrics.EdgeBazelInvocation: + m.ResetBazelInvocation() + return nil + case metrics.EdgeActionSummary: + m.ResetActionSummary() + return nil + case metrics.EdgeMemoryMetrics: + m.ResetMemoryMetrics() + return nil + case metrics.EdgeTargetMetrics: + m.ResetTargetMetrics() + return nil + case metrics.EdgeTimingMetrics: + m.ResetTimingMetrics() + return nil + case metrics.EdgeArtifactMetrics: + m.ResetArtifactMetrics() + return nil + case metrics.EdgeNetworkMetrics: + m.ResetNetworkMetrics() + return nil + case metrics.EdgeBuildGraphMetrics: + m.ResetBuildGraphMetrics() return nil } - return fmt.Errorf("unknown MissDetail edge %s", name) + return fmt.Errorf("unknown Metrics edge %s", name) } -// NetworkMetricsMutation represents an operation that mutates the NetworkMetrics nodes in the graph. -type NetworkMetricsMutation struct { +// MissDetailMutation represents an operation that mutates the MissDetail nodes in the graph. +type MissDetailMutation struct { config - op Op - typ string - id *int64 - clearedFields map[string]struct{} - metrics *int64 - clearedmetrics bool - system_network_stats *int64 - clearedsystem_network_stats bool - done bool - oldValue func(context.Context) (*NetworkMetrics, error) - predicates []predicate.NetworkMetrics + op Op + typ string + id *int64 + reason *string + count *int32 + addcount *int32 + clearedFields map[string]struct{} + action_cache_statistics *int64 + clearedaction_cache_statistics bool + done bool + oldValue func(context.Context) (*MissDetail, error) + predicates []predicate.MissDetail } -var _ ent.Mutation = (*NetworkMetricsMutation)(nil) +var _ ent.Mutation = (*MissDetailMutation)(nil) -// networkmetricsOption allows management of the mutation configuration using functional options. -type networkmetricsOption func(*NetworkMetricsMutation) +// missdetailOption allows management of the mutation configuration using functional options. +type missdetailOption func(*MissDetailMutation) -// newNetworkMetricsMutation creates new mutation for the NetworkMetrics entity. -func newNetworkMetricsMutation(c config, op Op, opts ...networkmetricsOption) *NetworkMetricsMutation { - m := &NetworkMetricsMutation{ +// newMissDetailMutation creates new mutation for the MissDetail entity. +func newMissDetailMutation(c config, op Op, opts ...missdetailOption) *MissDetailMutation { + m := &MissDetailMutation{ config: c, op: op, - typ: TypeNetworkMetrics, + typ: TypeMissDetail, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -19813,20 +20003,20 @@ func newNetworkMetricsMutation(c config, op Op, opts ...networkmetricsOption) *N return m } -// withNetworkMetricsID sets the ID field of the mutation. -func withNetworkMetricsID(id int64) networkmetricsOption { - return func(m *NetworkMetricsMutation) { +// withMissDetailID sets the ID field of the mutation. +func withMissDetailID(id int64) missdetailOption { + return func(m *MissDetailMutation) { var ( err error once sync.Once - value *NetworkMetrics + value *MissDetail ) - m.oldValue = func(ctx context.Context) (*NetworkMetrics, error) { + m.oldValue = func(ctx context.Context) (*MissDetail, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().NetworkMetrics.Get(ctx, id) + value, err = m.Client().MissDetail.Get(ctx, id) } }) return value, err @@ -19835,10 +20025,10 @@ func withNetworkMetricsID(id int64) networkmetricsOption { } } -// withNetworkMetrics sets the old NetworkMetrics of the mutation. -func withNetworkMetrics(node *NetworkMetrics) networkmetricsOption { - return func(m *NetworkMetricsMutation) { - m.oldValue = func(context.Context) (*NetworkMetrics, error) { +// withMissDetail sets the old MissDetail of the mutation. +func withMissDetail(node *MissDetail) missdetailOption { + return func(m *MissDetailMutation) { + m.oldValue = func(context.Context) (*MissDetail, error) { return node, nil } m.id = &node.ID @@ -19847,7 +20037,7 @@ func withNetworkMetrics(node *NetworkMetrics) networkmetricsOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m NetworkMetricsMutation) Client() *Client { +func (m MissDetailMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -19855,7 +20045,7 @@ func (m NetworkMetricsMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m NetworkMetricsMutation) Tx() (*Tx, error) { +func (m MissDetailMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -19865,14 +20055,14 @@ func (m NetworkMetricsMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of NetworkMetrics entities. -func (m *NetworkMetricsMutation) SetID(id int64) { +// operation is only accepted on creation of MissDetail entities. +func (m *MissDetailMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *NetworkMetricsMutation) ID() (id int64, exists bool) { +func (m *MissDetailMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -19883,7 +20073,7 @@ func (m *NetworkMetricsMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *NetworkMetricsMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *MissDetailMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -19892,99 +20082,166 @@ func (m *NetworkMetricsMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().NetworkMetrics.Query().Where(m.predicates...).IDs(ctx) + return m.Client().MissDetail.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetMetricsID sets the "metrics" edge to the Metrics entity by id. -func (m *NetworkMetricsMutation) SetMetricsID(id int64) { - m.metrics = &id +// SetReason sets the "reason" field. +func (m *MissDetailMutation) SetReason(s string) { + m.reason = &s } -// ClearMetrics clears the "metrics" edge to the Metrics entity. -func (m *NetworkMetricsMutation) ClearMetrics() { - m.clearedmetrics = true +// Reason returns the value of the "reason" field in the mutation. +func (m *MissDetailMutation) Reason() (r string, exists bool) { + v := m.reason + if v == nil { + return + } + return *v, true } -// MetricsCleared reports if the "metrics" edge to the Metrics entity was cleared. -func (m *NetworkMetricsMutation) MetricsCleared() bool { - return m.clearedmetrics +// OldReason returns the old "reason" field's value of the MissDetail entity. +// If the MissDetail object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *MissDetailMutation) OldReason(ctx context.Context) (v string, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldReason is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldReason requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldReason: %w", err) + } + return oldValue.Reason, nil +} + +// ResetReason resets all changes to the "reason" field. +func (m *MissDetailMutation) ResetReason() { + m.reason = nil +} + +// SetCount sets the "count" field. +func (m *MissDetailMutation) SetCount(i int32) { + m.count = &i + m.addcount = nil +} + +// Count returns the value of the "count" field in the mutation. +func (m *MissDetailMutation) Count() (r int32, exists bool) { + v := m.count + if v == nil { + return + } + return *v, true +} + +// OldCount returns the old "count" field's value of the MissDetail entity. +// If the MissDetail object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *MissDetailMutation) OldCount(ctx context.Context) (v int32, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldCount is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldCount requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldCount: %w", err) + } + return oldValue.Count, nil +} + +// AddCount adds i to the "count" field. +func (m *MissDetailMutation) AddCount(i int32) { + if m.addcount != nil { + *m.addcount += i + } else { + m.addcount = &i + } } -// MetricsID returns the "metrics" edge ID in the mutation. -func (m *NetworkMetricsMutation) MetricsID() (id int64, exists bool) { - if m.metrics != nil { - return *m.metrics, true +// AddedCount returns the value that was added to the "count" field in this mutation. +func (m *MissDetailMutation) AddedCount() (r int32, exists bool) { + v := m.addcount + if v == nil { + return } - return + return *v, true } -// MetricsIDs returns the "metrics" edge IDs in the mutation. -// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// MetricsID instead. It exists only for internal usage by the builders. -func (m *NetworkMetricsMutation) MetricsIDs() (ids []int64) { - if id := m.metrics; id != nil { - ids = append(ids, *id) - } - return +// ClearCount clears the value of the "count" field. +func (m *MissDetailMutation) ClearCount() { + m.count = nil + m.addcount = nil + m.clearedFields[missdetail.FieldCount] = struct{}{} } -// ResetMetrics resets all changes to the "metrics" edge. -func (m *NetworkMetricsMutation) ResetMetrics() { - m.metrics = nil - m.clearedmetrics = false +// CountCleared returns if the "count" field was cleared in this mutation. +func (m *MissDetailMutation) CountCleared() bool { + _, ok := m.clearedFields[missdetail.FieldCount] + return ok } -// SetSystemNetworkStatsID sets the "system_network_stats" edge to the SystemNetworkStats entity by id. -func (m *NetworkMetricsMutation) SetSystemNetworkStatsID(id int64) { - m.system_network_stats = &id +// ResetCount resets all changes to the "count" field. +func (m *MissDetailMutation) ResetCount() { + m.count = nil + m.addcount = nil + delete(m.clearedFields, missdetail.FieldCount) } -// ClearSystemNetworkStats clears the "system_network_stats" edge to the SystemNetworkStats entity. -func (m *NetworkMetricsMutation) ClearSystemNetworkStats() { - m.clearedsystem_network_stats = true +// SetActionCacheStatisticsID sets the "action_cache_statistics" edge to the ActionCacheStatistics entity by id. +func (m *MissDetailMutation) SetActionCacheStatisticsID(id int64) { + m.action_cache_statistics = &id } -// SystemNetworkStatsCleared reports if the "system_network_stats" edge to the SystemNetworkStats entity was cleared. -func (m *NetworkMetricsMutation) SystemNetworkStatsCleared() bool { - return m.clearedsystem_network_stats +// ClearActionCacheStatistics clears the "action_cache_statistics" edge to the ActionCacheStatistics entity. +func (m *MissDetailMutation) ClearActionCacheStatistics() { + m.clearedaction_cache_statistics = true } -// SystemNetworkStatsID returns the "system_network_stats" edge ID in the mutation. -func (m *NetworkMetricsMutation) SystemNetworkStatsID() (id int64, exists bool) { - if m.system_network_stats != nil { - return *m.system_network_stats, true +// ActionCacheStatisticsCleared reports if the "action_cache_statistics" edge to the ActionCacheStatistics entity was cleared. +func (m *MissDetailMutation) ActionCacheStatisticsCleared() bool { + return m.clearedaction_cache_statistics +} + +// ActionCacheStatisticsID returns the "action_cache_statistics" edge ID in the mutation. +func (m *MissDetailMutation) ActionCacheStatisticsID() (id int64, exists bool) { + if m.action_cache_statistics != nil { + return *m.action_cache_statistics, true } return } -// SystemNetworkStatsIDs returns the "system_network_stats" edge IDs in the mutation. +// ActionCacheStatisticsIDs returns the "action_cache_statistics" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// SystemNetworkStatsID instead. It exists only for internal usage by the builders. -func (m *NetworkMetricsMutation) SystemNetworkStatsIDs() (ids []int64) { - if id := m.system_network_stats; id != nil { +// ActionCacheStatisticsID instead. It exists only for internal usage by the builders. +func (m *MissDetailMutation) ActionCacheStatisticsIDs() (ids []int64) { + if id := m.action_cache_statistics; id != nil { ids = append(ids, *id) } return } -// ResetSystemNetworkStats resets all changes to the "system_network_stats" edge. -func (m *NetworkMetricsMutation) ResetSystemNetworkStats() { - m.system_network_stats = nil - m.clearedsystem_network_stats = false +// ResetActionCacheStatistics resets all changes to the "action_cache_statistics" edge. +func (m *MissDetailMutation) ResetActionCacheStatistics() { + m.action_cache_statistics = nil + m.clearedaction_cache_statistics = false } -// Where appends a list predicates to the NetworkMetricsMutation builder. -func (m *NetworkMetricsMutation) Where(ps ...predicate.NetworkMetrics) { +// Where appends a list predicates to the MissDetailMutation builder. +func (m *MissDetailMutation) Where(ps ...predicate.MissDetail) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the NetworkMetricsMutation builder. Using this method, +// WhereP appends storage-level predicates to the MissDetailMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *NetworkMetricsMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.NetworkMetrics, len(ps)) +func (m *MissDetailMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.MissDetail, len(ps)) for i := range ps { p[i] = ps[i] } @@ -19992,118 +20249,177 @@ func (m *NetworkMetricsMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *NetworkMetricsMutation) Op() Op { +func (m *MissDetailMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *NetworkMetricsMutation) SetOp(op Op) { +func (m *MissDetailMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (NetworkMetrics). -func (m *NetworkMetricsMutation) Type() string { +// Type returns the node type of this mutation (MissDetail). +func (m *MissDetailMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *NetworkMetricsMutation) Fields() []string { - fields := make([]string, 0, 0) +func (m *MissDetailMutation) Fields() []string { + fields := make([]string, 0, 2) + if m.reason != nil { + fields = append(fields, missdetail.FieldReason) + } + if m.count != nil { + fields = append(fields, missdetail.FieldCount) + } return fields } // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *NetworkMetricsMutation) Field(name string) (ent.Value, bool) { +func (m *MissDetailMutation) Field(name string) (ent.Value, bool) { + switch name { + case missdetail.FieldReason: + return m.Reason() + case missdetail.FieldCount: + return m.Count() + } return nil, false } // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *NetworkMetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { - return nil, fmt.Errorf("unknown NetworkMetrics field %s", name) +func (m *MissDetailMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + switch name { + case missdetail.FieldReason: + return m.OldReason(ctx) + case missdetail.FieldCount: + return m.OldCount(ctx) + } + return nil, fmt.Errorf("unknown MissDetail field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *NetworkMetricsMutation) SetField(name string, value ent.Value) error { +func (m *MissDetailMutation) SetField(name string, value ent.Value) error { switch name { + case missdetail.FieldReason: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetReason(v) + return nil + case missdetail.FieldCount: + v, ok := value.(int32) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetCount(v) + return nil } - return fmt.Errorf("unknown NetworkMetrics field %s", name) + return fmt.Errorf("unknown MissDetail field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *NetworkMetricsMutation) AddedFields() []string { - return nil +func (m *MissDetailMutation) AddedFields() []string { + var fields []string + if m.addcount != nil { + fields = append(fields, missdetail.FieldCount) + } + return fields } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *NetworkMetricsMutation) AddedField(name string) (ent.Value, bool) { +func (m *MissDetailMutation) AddedField(name string) (ent.Value, bool) { + switch name { + case missdetail.FieldCount: + return m.AddedCount() + } return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *NetworkMetricsMutation) AddField(name string, value ent.Value) error { - return fmt.Errorf("unknown NetworkMetrics numeric field %s", name) +func (m *MissDetailMutation) AddField(name string, value ent.Value) error { + switch name { + case missdetail.FieldCount: + v, ok := value.(int32) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddCount(v) + return nil + } + return fmt.Errorf("unknown MissDetail numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *NetworkMetricsMutation) ClearedFields() []string { - return nil +func (m *MissDetailMutation) ClearedFields() []string { + var fields []string + if m.FieldCleared(missdetail.FieldCount) { + fields = append(fields, missdetail.FieldCount) + } + return fields } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *NetworkMetricsMutation) FieldCleared(name string) bool { +func (m *MissDetailMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *NetworkMetricsMutation) ClearField(name string) error { - return fmt.Errorf("unknown NetworkMetrics nullable field %s", name) +func (m *MissDetailMutation) ClearField(name string) error { + switch name { + case missdetail.FieldCount: + m.ClearCount() + return nil + } + return fmt.Errorf("unknown MissDetail nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *NetworkMetricsMutation) ResetField(name string) error { - return fmt.Errorf("unknown NetworkMetrics field %s", name) +func (m *MissDetailMutation) ResetField(name string) error { + switch name { + case missdetail.FieldReason: + m.ResetReason() + return nil + case missdetail.FieldCount: + m.ResetCount() + return nil + } + return fmt.Errorf("unknown MissDetail field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *NetworkMetricsMutation) AddedEdges() []string { - edges := make([]string, 0, 2) - if m.metrics != nil { - edges = append(edges, networkmetrics.EdgeMetrics) - } - if m.system_network_stats != nil { - edges = append(edges, networkmetrics.EdgeSystemNetworkStats) +func (m *MissDetailMutation) AddedEdges() []string { + edges := make([]string, 0, 1) + if m.action_cache_statistics != nil { + edges = append(edges, missdetail.EdgeActionCacheStatistics) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *NetworkMetricsMutation) AddedIDs(name string) []ent.Value { +func (m *MissDetailMutation) AddedIDs(name string) []ent.Value { switch name { - case networkmetrics.EdgeMetrics: - if id := m.metrics; id != nil { - return []ent.Value{*id} - } - case networkmetrics.EdgeSystemNetworkStats: - if id := m.system_network_stats; id != nil { + case missdetail.EdgeActionCacheStatistics: + if id := m.action_cache_statistics; id != nil { return []ent.Value{*id} } } @@ -20111,98 +20427,85 @@ func (m *NetworkMetricsMutation) AddedIDs(name string) []ent.Value { } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *NetworkMetricsMutation) RemovedEdges() []string { - edges := make([]string, 0, 2) +func (m *MissDetailMutation) RemovedEdges() []string { + edges := make([]string, 0, 1) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *NetworkMetricsMutation) RemovedIDs(name string) []ent.Value { +func (m *MissDetailMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *NetworkMetricsMutation) ClearedEdges() []string { - edges := make([]string, 0, 2) - if m.clearedmetrics { - edges = append(edges, networkmetrics.EdgeMetrics) - } - if m.clearedsystem_network_stats { - edges = append(edges, networkmetrics.EdgeSystemNetworkStats) +func (m *MissDetailMutation) ClearedEdges() []string { + edges := make([]string, 0, 1) + if m.clearedaction_cache_statistics { + edges = append(edges, missdetail.EdgeActionCacheStatistics) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *NetworkMetricsMutation) EdgeCleared(name string) bool { +func (m *MissDetailMutation) EdgeCleared(name string) bool { switch name { - case networkmetrics.EdgeMetrics: - return m.clearedmetrics - case networkmetrics.EdgeSystemNetworkStats: - return m.clearedsystem_network_stats + case missdetail.EdgeActionCacheStatistics: + return m.clearedaction_cache_statistics } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *NetworkMetricsMutation) ClearEdge(name string) error { +func (m *MissDetailMutation) ClearEdge(name string) error { switch name { - case networkmetrics.EdgeMetrics: - m.ClearMetrics() - return nil - case networkmetrics.EdgeSystemNetworkStats: - m.ClearSystemNetworkStats() + case missdetail.EdgeActionCacheStatistics: + m.ClearActionCacheStatistics() return nil } - return fmt.Errorf("unknown NetworkMetrics unique edge %s", name) + return fmt.Errorf("unknown MissDetail unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *NetworkMetricsMutation) ResetEdge(name string) error { +func (m *MissDetailMutation) ResetEdge(name string) error { switch name { - case networkmetrics.EdgeMetrics: - m.ResetMetrics() - return nil - case networkmetrics.EdgeSystemNetworkStats: - m.ResetSystemNetworkStats() + case missdetail.EdgeActionCacheStatistics: + m.ResetActionCacheStatistics() return nil } - return fmt.Errorf("unknown NetworkMetrics edge %s", name) + return fmt.Errorf("unknown MissDetail edge %s", name) } -// RunnerCountMutation represents an operation that mutates the RunnerCount nodes in the graph. -type RunnerCountMutation struct { +// NetworkMetricsMutation represents an operation that mutates the NetworkMetrics nodes in the graph. +type NetworkMetricsMutation struct { config - op Op - typ string - id *int64 - name *string - exec_kind *string - actions_executed *int64 - addactions_executed *int64 - clearedFields map[string]struct{} - action_summary *int64 - clearedaction_summary bool - done bool - oldValue func(context.Context) (*RunnerCount, error) - predicates []predicate.RunnerCount + op Op + typ string + id *int64 + clearedFields map[string]struct{} + metrics *int64 + clearedmetrics bool + system_network_stats *int64 + clearedsystem_network_stats bool + done bool + oldValue func(context.Context) (*NetworkMetrics, error) + predicates []predicate.NetworkMetrics } -var _ ent.Mutation = (*RunnerCountMutation)(nil) +var _ ent.Mutation = (*NetworkMetricsMutation)(nil) -// runnercountOption allows management of the mutation configuration using functional options. -type runnercountOption func(*RunnerCountMutation) +// networkmetricsOption allows management of the mutation configuration using functional options. +type networkmetricsOption func(*NetworkMetricsMutation) -// newRunnerCountMutation creates new mutation for the RunnerCount entity. -func newRunnerCountMutation(c config, op Op, opts ...runnercountOption) *RunnerCountMutation { - m := &RunnerCountMutation{ +// newNetworkMetricsMutation creates new mutation for the NetworkMetrics entity. +func newNetworkMetricsMutation(c config, op Op, opts ...networkmetricsOption) *NetworkMetricsMutation { + m := &NetworkMetricsMutation{ config: c, op: op, - typ: TypeRunnerCount, + typ: TypeNetworkMetrics, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -20211,20 +20514,20 @@ func newRunnerCountMutation(c config, op Op, opts ...runnercountOption) *RunnerC return m } -// withRunnerCountID sets the ID field of the mutation. -func withRunnerCountID(id int64) runnercountOption { - return func(m *RunnerCountMutation) { +// withNetworkMetricsID sets the ID field of the mutation. +func withNetworkMetricsID(id int64) networkmetricsOption { + return func(m *NetworkMetricsMutation) { var ( err error once sync.Once - value *RunnerCount + value *NetworkMetrics ) - m.oldValue = func(ctx context.Context) (*RunnerCount, error) { + m.oldValue = func(ctx context.Context) (*NetworkMetrics, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().RunnerCount.Get(ctx, id) + value, err = m.Client().NetworkMetrics.Get(ctx, id) } }) return value, err @@ -20233,10 +20536,10 @@ func withRunnerCountID(id int64) runnercountOption { } } -// withRunnerCount sets the old RunnerCount of the mutation. -func withRunnerCount(node *RunnerCount) runnercountOption { - return func(m *RunnerCountMutation) { - m.oldValue = func(context.Context) (*RunnerCount, error) { +// withNetworkMetrics sets the old NetworkMetrics of the mutation. +func withNetworkMetrics(node *NetworkMetrics) networkmetricsOption { + return func(m *NetworkMetricsMutation) { + m.oldValue = func(context.Context) (*NetworkMetrics, error) { return node, nil } m.id = &node.ID @@ -20245,7 +20548,7 @@ func withRunnerCount(node *RunnerCount) runnercountOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m RunnerCountMutation) Client() *Client { +func (m NetworkMetricsMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -20253,7 +20556,7 @@ func (m RunnerCountMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m RunnerCountMutation) Tx() (*Tx, error) { +func (m NetworkMetricsMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -20263,14 +20566,14 @@ func (m RunnerCountMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of RunnerCount entities. -func (m *RunnerCountMutation) SetID(id int64) { +// operation is only accepted on creation of NetworkMetrics entities. +func (m *NetworkMetricsMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *RunnerCountMutation) ID() (id int64, exists bool) { +func (m *NetworkMetricsMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -20281,7 +20584,7 @@ func (m *RunnerCountMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *RunnerCountMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *NetworkMetricsMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -20290,228 +20593,99 @@ func (m *RunnerCountMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().RunnerCount.Query().Where(m.predicates...).IDs(ctx) + return m.Client().NetworkMetrics.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetName sets the "name" field. -func (m *RunnerCountMutation) SetName(s string) { - m.name = &s -} - -// Name returns the value of the "name" field in the mutation. -func (m *RunnerCountMutation) Name() (r string, exists bool) { - v := m.name - if v == nil { - return - } - return *v, true -} - -// OldName returns the old "name" field's value of the RunnerCount entity. -// If the RunnerCount object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *RunnerCountMutation) OldName(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldName is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldName requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldName: %w", err) - } - return oldValue.Name, nil -} - -// ClearName clears the value of the "name" field. -func (m *RunnerCountMutation) ClearName() { - m.name = nil - m.clearedFields[runnercount.FieldName] = struct{}{} -} - -// NameCleared returns if the "name" field was cleared in this mutation. -func (m *RunnerCountMutation) NameCleared() bool { - _, ok := m.clearedFields[runnercount.FieldName] - return ok -} - -// ResetName resets all changes to the "name" field. -func (m *RunnerCountMutation) ResetName() { - m.name = nil - delete(m.clearedFields, runnercount.FieldName) -} - -// SetExecKind sets the "exec_kind" field. -func (m *RunnerCountMutation) SetExecKind(s string) { - m.exec_kind = &s -} - -// ExecKind returns the value of the "exec_kind" field in the mutation. -func (m *RunnerCountMutation) ExecKind() (r string, exists bool) { - v := m.exec_kind - if v == nil { - return - } - return *v, true -} - -// OldExecKind returns the old "exec_kind" field's value of the RunnerCount entity. -// If the RunnerCount object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *RunnerCountMutation) OldExecKind(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldExecKind is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldExecKind requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldExecKind: %w", err) - } - return oldValue.ExecKind, nil -} - -// ClearExecKind clears the value of the "exec_kind" field. -func (m *RunnerCountMutation) ClearExecKind() { - m.exec_kind = nil - m.clearedFields[runnercount.FieldExecKind] = struct{}{} -} - -// ExecKindCleared returns if the "exec_kind" field was cleared in this mutation. -func (m *RunnerCountMutation) ExecKindCleared() bool { - _, ok := m.clearedFields[runnercount.FieldExecKind] - return ok -} - -// ResetExecKind resets all changes to the "exec_kind" field. -func (m *RunnerCountMutation) ResetExecKind() { - m.exec_kind = nil - delete(m.clearedFields, runnercount.FieldExecKind) -} - -// SetActionsExecuted sets the "actions_executed" field. -func (m *RunnerCountMutation) SetActionsExecuted(i int64) { - m.actions_executed = &i - m.addactions_executed = nil -} - -// ActionsExecuted returns the value of the "actions_executed" field in the mutation. -func (m *RunnerCountMutation) ActionsExecuted() (r int64, exists bool) { - v := m.actions_executed - if v == nil { - return - } - return *v, true +// SetMetricsID sets the "metrics" edge to the Metrics entity by id. +func (m *NetworkMetricsMutation) SetMetricsID(id int64) { + m.metrics = &id } -// OldActionsExecuted returns the old "actions_executed" field's value of the RunnerCount entity. -// If the RunnerCount object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *RunnerCountMutation) OldActionsExecuted(ctx context.Context) (v int64, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldActionsExecuted is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldActionsExecuted requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldActionsExecuted: %w", err) - } - return oldValue.ActionsExecuted, nil +// ClearMetrics clears the "metrics" edge to the Metrics entity. +func (m *NetworkMetricsMutation) ClearMetrics() { + m.clearedmetrics = true } -// AddActionsExecuted adds i to the "actions_executed" field. -func (m *RunnerCountMutation) AddActionsExecuted(i int64) { - if m.addactions_executed != nil { - *m.addactions_executed += i - } else { - m.addactions_executed = &i - } +// MetricsCleared reports if the "metrics" edge to the Metrics entity was cleared. +func (m *NetworkMetricsMutation) MetricsCleared() bool { + return m.clearedmetrics } -// AddedActionsExecuted returns the value that was added to the "actions_executed" field in this mutation. -func (m *RunnerCountMutation) AddedActionsExecuted() (r int64, exists bool) { - v := m.addactions_executed - if v == nil { - return +// MetricsID returns the "metrics" edge ID in the mutation. +func (m *NetworkMetricsMutation) MetricsID() (id int64, exists bool) { + if m.metrics != nil { + return *m.metrics, true } - return *v, true -} - -// ClearActionsExecuted clears the value of the "actions_executed" field. -func (m *RunnerCountMutation) ClearActionsExecuted() { - m.actions_executed = nil - m.addactions_executed = nil - m.clearedFields[runnercount.FieldActionsExecuted] = struct{}{} -} - -// ActionsExecutedCleared returns if the "actions_executed" field was cleared in this mutation. -func (m *RunnerCountMutation) ActionsExecutedCleared() bool { - _, ok := m.clearedFields[runnercount.FieldActionsExecuted] - return ok + return } -// ResetActionsExecuted resets all changes to the "actions_executed" field. -func (m *RunnerCountMutation) ResetActionsExecuted() { - m.actions_executed = nil - m.addactions_executed = nil - delete(m.clearedFields, runnercount.FieldActionsExecuted) +// MetricsIDs returns the "metrics" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// MetricsID instead. It exists only for internal usage by the builders. +func (m *NetworkMetricsMutation) MetricsIDs() (ids []int64) { + if id := m.metrics; id != nil { + ids = append(ids, *id) + } + return } -// SetActionSummaryID sets the "action_summary" edge to the ActionSummary entity by id. -func (m *RunnerCountMutation) SetActionSummaryID(id int64) { - m.action_summary = &id +// ResetMetrics resets all changes to the "metrics" edge. +func (m *NetworkMetricsMutation) ResetMetrics() { + m.metrics = nil + m.clearedmetrics = false } -// ClearActionSummary clears the "action_summary" edge to the ActionSummary entity. -func (m *RunnerCountMutation) ClearActionSummary() { - m.clearedaction_summary = true +// SetSystemNetworkStatsID sets the "system_network_stats" edge to the SystemNetworkStats entity by id. +func (m *NetworkMetricsMutation) SetSystemNetworkStatsID(id int64) { + m.system_network_stats = &id } -// ActionSummaryCleared reports if the "action_summary" edge to the ActionSummary entity was cleared. -func (m *RunnerCountMutation) ActionSummaryCleared() bool { - return m.clearedaction_summary +// ClearSystemNetworkStats clears the "system_network_stats" edge to the SystemNetworkStats entity. +func (m *NetworkMetricsMutation) ClearSystemNetworkStats() { + m.clearedsystem_network_stats = true } -// ActionSummaryID returns the "action_summary" edge ID in the mutation. -func (m *RunnerCountMutation) ActionSummaryID() (id int64, exists bool) { - if m.action_summary != nil { - return *m.action_summary, true +// SystemNetworkStatsCleared reports if the "system_network_stats" edge to the SystemNetworkStats entity was cleared. +func (m *NetworkMetricsMutation) SystemNetworkStatsCleared() bool { + return m.clearedsystem_network_stats +} + +// SystemNetworkStatsID returns the "system_network_stats" edge ID in the mutation. +func (m *NetworkMetricsMutation) SystemNetworkStatsID() (id int64, exists bool) { + if m.system_network_stats != nil { + return *m.system_network_stats, true } return } -// ActionSummaryIDs returns the "action_summary" edge IDs in the mutation. +// SystemNetworkStatsIDs returns the "system_network_stats" edge IDs in the mutation. // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use -// ActionSummaryID instead. It exists only for internal usage by the builders. -func (m *RunnerCountMutation) ActionSummaryIDs() (ids []int64) { - if id := m.action_summary; id != nil { +// SystemNetworkStatsID instead. It exists only for internal usage by the builders. +func (m *NetworkMetricsMutation) SystemNetworkStatsIDs() (ids []int64) { + if id := m.system_network_stats; id != nil { ids = append(ids, *id) } return } -// ResetActionSummary resets all changes to the "action_summary" edge. -func (m *RunnerCountMutation) ResetActionSummary() { - m.action_summary = nil - m.clearedaction_summary = false +// ResetSystemNetworkStats resets all changes to the "system_network_stats" edge. +func (m *NetworkMetricsMutation) ResetSystemNetworkStats() { + m.system_network_stats = nil + m.clearedsystem_network_stats = false } -// Where appends a list predicates to the RunnerCountMutation builder. -func (m *RunnerCountMutation) Where(ps ...predicate.RunnerCount) { +// Where appends a list predicates to the NetworkMetricsMutation builder. +func (m *NetworkMetricsMutation) Where(ps ...predicate.NetworkMetrics) { m.predicates = append(m.predicates, ps...) } -// WhereP appends storage-level predicates to the RunnerCountMutation builder. Using this method, +// WhereP appends storage-level predicates to the NetworkMetricsMutation builder. Using this method, // users can use type-assertion to append predicates that do not depend on any generated package. -func (m *RunnerCountMutation) WhereP(ps ...func(*sql.Selector)) { - p := make([]predicate.RunnerCount, len(ps)) +func (m *NetworkMetricsMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.NetworkMetrics, len(ps)) for i := range ps { p[i] = ps[i] } @@ -20519,206 +20693,118 @@ func (m *RunnerCountMutation) WhereP(ps ...func(*sql.Selector)) { } // Op returns the operation name. -func (m *RunnerCountMutation) Op() Op { +func (m *NetworkMetricsMutation) Op() Op { return m.op } // SetOp allows setting the mutation operation. -func (m *RunnerCountMutation) SetOp(op Op) { +func (m *NetworkMetricsMutation) SetOp(op Op) { m.op = op } -// Type returns the node type of this mutation (RunnerCount). -func (m *RunnerCountMutation) Type() string { +// Type returns the node type of this mutation (NetworkMetrics). +func (m *NetworkMetricsMutation) Type() string { return m.typ } // Fields returns all fields that were changed during this mutation. Note that in // order to get all numeric fields that were incremented/decremented, call // AddedFields(). -func (m *RunnerCountMutation) Fields() []string { - fields := make([]string, 0, 3) - if m.name != nil { - fields = append(fields, runnercount.FieldName) - } - if m.exec_kind != nil { - fields = append(fields, runnercount.FieldExecKind) - } - if m.actions_executed != nil { - fields = append(fields, runnercount.FieldActionsExecuted) - } +func (m *NetworkMetricsMutation) Fields() []string { + fields := make([]string, 0, 0) return fields } // Field returns the value of a field with the given name. The second boolean // return value indicates that this field was not set, or was not defined in the // schema. -func (m *RunnerCountMutation) Field(name string) (ent.Value, bool) { - switch name { - case runnercount.FieldName: - return m.Name() - case runnercount.FieldExecKind: - return m.ExecKind() - case runnercount.FieldActionsExecuted: - return m.ActionsExecuted() - } +func (m *NetworkMetricsMutation) Field(name string) (ent.Value, bool) { return nil, false } // OldField returns the old value of the field from the database. An error is // returned if the mutation operation is not UpdateOne, or the query to the // database failed. -func (m *RunnerCountMutation) OldField(ctx context.Context, name string) (ent.Value, error) { - switch name { - case runnercount.FieldName: - return m.OldName(ctx) - case runnercount.FieldExecKind: - return m.OldExecKind(ctx) - case runnercount.FieldActionsExecuted: - return m.OldActionsExecuted(ctx) - } - return nil, fmt.Errorf("unknown RunnerCount field %s", name) +func (m *NetworkMetricsMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + return nil, fmt.Errorf("unknown NetworkMetrics field %s", name) } // SetField sets the value of a field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *RunnerCountMutation) SetField(name string, value ent.Value) error { +func (m *NetworkMetricsMutation) SetField(name string, value ent.Value) error { switch name { - case runnercount.FieldName: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetName(v) - return nil - case runnercount.FieldExecKind: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetExecKind(v) - return nil - case runnercount.FieldActionsExecuted: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetActionsExecuted(v) - return nil } - return fmt.Errorf("unknown RunnerCount field %s", name) + return fmt.Errorf("unknown NetworkMetrics field %s", name) } // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. -func (m *RunnerCountMutation) AddedFields() []string { - var fields []string - if m.addactions_executed != nil { - fields = append(fields, runnercount.FieldActionsExecuted) - } - return fields +func (m *NetworkMetricsMutation) AddedFields() []string { + return nil } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. -func (m *RunnerCountMutation) AddedField(name string) (ent.Value, bool) { - switch name { - case runnercount.FieldActionsExecuted: - return m.AddedActionsExecuted() - } +func (m *NetworkMetricsMutation) AddedField(name string) (ent.Value, bool) { return nil, false } // AddField adds the value to the field with the given name. It returns an error if // the field is not defined in the schema, or if the type mismatched the field // type. -func (m *RunnerCountMutation) AddField(name string, value ent.Value) error { - switch name { - case runnercount.FieldActionsExecuted: - v, ok := value.(int64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddActionsExecuted(v) - return nil - } - return fmt.Errorf("unknown RunnerCount numeric field %s", name) +func (m *NetworkMetricsMutation) AddField(name string, value ent.Value) error { + return fmt.Errorf("unknown NetworkMetrics numeric field %s", name) } // ClearedFields returns all nullable fields that were cleared during this // mutation. -func (m *RunnerCountMutation) ClearedFields() []string { - var fields []string - if m.FieldCleared(runnercount.FieldName) { - fields = append(fields, runnercount.FieldName) - } - if m.FieldCleared(runnercount.FieldExecKind) { - fields = append(fields, runnercount.FieldExecKind) - } - if m.FieldCleared(runnercount.FieldActionsExecuted) { - fields = append(fields, runnercount.FieldActionsExecuted) - } - return fields +func (m *NetworkMetricsMutation) ClearedFields() []string { + return nil } // FieldCleared returns a boolean indicating if a field with the given name was // cleared in this mutation. -func (m *RunnerCountMutation) FieldCleared(name string) bool { +func (m *NetworkMetricsMutation) FieldCleared(name string) bool { _, ok := m.clearedFields[name] return ok } // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. -func (m *RunnerCountMutation) ClearField(name string) error { - switch name { - case runnercount.FieldName: - m.ClearName() - return nil - case runnercount.FieldExecKind: - m.ClearExecKind() - return nil - case runnercount.FieldActionsExecuted: - m.ClearActionsExecuted() - return nil - } - return fmt.Errorf("unknown RunnerCount nullable field %s", name) +func (m *NetworkMetricsMutation) ClearField(name string) error { + return fmt.Errorf("unknown NetworkMetrics nullable field %s", name) } // ResetField resets all changes in the mutation for the field with the given name. // It returns an error if the field is not defined in the schema. -func (m *RunnerCountMutation) ResetField(name string) error { - switch name { - case runnercount.FieldName: - m.ResetName() - return nil - case runnercount.FieldExecKind: - m.ResetExecKind() - return nil - case runnercount.FieldActionsExecuted: - m.ResetActionsExecuted() - return nil - } - return fmt.Errorf("unknown RunnerCount field %s", name) +func (m *NetworkMetricsMutation) ResetField(name string) error { + return fmt.Errorf("unknown NetworkMetrics field %s", name) } // AddedEdges returns all edge names that were set/added in this mutation. -func (m *RunnerCountMutation) AddedEdges() []string { - edges := make([]string, 0, 1) - if m.action_summary != nil { - edges = append(edges, runnercount.EdgeActionSummary) +func (m *NetworkMetricsMutation) AddedEdges() []string { + edges := make([]string, 0, 2) + if m.metrics != nil { + edges = append(edges, networkmetrics.EdgeMetrics) + } + if m.system_network_stats != nil { + edges = append(edges, networkmetrics.EdgeSystemNetworkStats) } return edges } // AddedIDs returns all IDs (to other nodes) that were added for the given edge // name in this mutation. -func (m *RunnerCountMutation) AddedIDs(name string) []ent.Value { +func (m *NetworkMetricsMutation) AddedIDs(name string) []ent.Value { switch name { - case runnercount.EdgeActionSummary: - if id := m.action_summary; id != nil { + case networkmetrics.EdgeMetrics: + if id := m.metrics; id != nil { + return []ent.Value{*id} + } + case networkmetrics.EdgeSystemNetworkStats: + if id := m.system_network_stats; id != nil { return []ent.Value{*id} } } @@ -20726,99 +20812,98 @@ func (m *RunnerCountMutation) AddedIDs(name string) []ent.Value { } // RemovedEdges returns all edge names that were removed in this mutation. -func (m *RunnerCountMutation) RemovedEdges() []string { - edges := make([]string, 0, 1) +func (m *NetworkMetricsMutation) RemovedEdges() []string { + edges := make([]string, 0, 2) return edges } // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. -func (m *RunnerCountMutation) RemovedIDs(name string) []ent.Value { +func (m *NetworkMetricsMutation) RemovedIDs(name string) []ent.Value { return nil } // ClearedEdges returns all edge names that were cleared in this mutation. -func (m *RunnerCountMutation) ClearedEdges() []string { - edges := make([]string, 0, 1) - if m.clearedaction_summary { - edges = append(edges, runnercount.EdgeActionSummary) +func (m *NetworkMetricsMutation) ClearedEdges() []string { + edges := make([]string, 0, 2) + if m.clearedmetrics { + edges = append(edges, networkmetrics.EdgeMetrics) + } + if m.clearedsystem_network_stats { + edges = append(edges, networkmetrics.EdgeSystemNetworkStats) } return edges } // EdgeCleared returns a boolean which indicates if the edge with the given name // was cleared in this mutation. -func (m *RunnerCountMutation) EdgeCleared(name string) bool { - switch name { - case runnercount.EdgeActionSummary: - return m.clearedaction_summary +func (m *NetworkMetricsMutation) EdgeCleared(name string) bool { + switch name { + case networkmetrics.EdgeMetrics: + return m.clearedmetrics + case networkmetrics.EdgeSystemNetworkStats: + return m.clearedsystem_network_stats } return false } // ClearEdge clears the value of the edge with the given name. It returns an error // if that edge is not defined in the schema. -func (m *RunnerCountMutation) ClearEdge(name string) error { +func (m *NetworkMetricsMutation) ClearEdge(name string) error { switch name { - case runnercount.EdgeActionSummary: - m.ClearActionSummary() + case networkmetrics.EdgeMetrics: + m.ClearMetrics() + return nil + case networkmetrics.EdgeSystemNetworkStats: + m.ClearSystemNetworkStats() return nil } - return fmt.Errorf("unknown RunnerCount unique edge %s", name) + return fmt.Errorf("unknown NetworkMetrics unique edge %s", name) } // ResetEdge resets all changes to the edge with the given name in this mutation. // It returns an error if the edge is not defined in the schema. -func (m *RunnerCountMutation) ResetEdge(name string) error { +func (m *NetworkMetricsMutation) ResetEdge(name string) error { switch name { - case runnercount.EdgeActionSummary: - m.ResetActionSummary() + case networkmetrics.EdgeMetrics: + m.ResetMetrics() + return nil + case networkmetrics.EdgeSystemNetworkStats: + m.ResetSystemNetworkStats() return nil } - return fmt.Errorf("unknown RunnerCount edge %s", name) + return fmt.Errorf("unknown NetworkMetrics edge %s", name) } -// SourceControlMutation represents an operation that mutates the SourceControl nodes in the graph. -type SourceControlMutation struct { +// RunnerCountMutation represents an operation that mutates the RunnerCount nodes in the graph. +type RunnerCountMutation struct { config - op Op - typ string - id *int64 - provider *sourcecontrol.Provider - instance_url *string - repo *string - refs *string - commit_sha *string - actor *string - event_name *string - workflow *string - run_id *string - run_number *string - job *string - action *string - runner_name *string - runner_arch *string - runner_os *string - workspace *string - clearedFields map[string]struct{} - bazel_invocation *int64 - clearedbazel_invocation bool - done bool - oldValue func(context.Context) (*SourceControl, error) - predicates []predicate.SourceControl + op Op + typ string + id *int64 + name *string + exec_kind *string + actions_executed *int64 + addactions_executed *int64 + clearedFields map[string]struct{} + action_summary *int64 + clearedaction_summary bool + done bool + oldValue func(context.Context) (*RunnerCount, error) + predicates []predicate.RunnerCount } -var _ ent.Mutation = (*SourceControlMutation)(nil) +var _ ent.Mutation = (*RunnerCountMutation)(nil) -// sourcecontrolOption allows management of the mutation configuration using functional options. -type sourcecontrolOption func(*SourceControlMutation) +// runnercountOption allows management of the mutation configuration using functional options. +type runnercountOption func(*RunnerCountMutation) -// newSourceControlMutation creates new mutation for the SourceControl entity. -func newSourceControlMutation(c config, op Op, opts ...sourcecontrolOption) *SourceControlMutation { - m := &SourceControlMutation{ +// newRunnerCountMutation creates new mutation for the RunnerCount entity. +func newRunnerCountMutation(c config, op Op, opts ...runnercountOption) *RunnerCountMutation { + m := &RunnerCountMutation{ config: c, op: op, - typ: TypeSourceControl, + typ: TypeRunnerCount, clearedFields: make(map[string]struct{}), } for _, opt := range opts { @@ -20827,20 +20912,20 @@ func newSourceControlMutation(c config, op Op, opts ...sourcecontrolOption) *Sou return m } -// withSourceControlID sets the ID field of the mutation. -func withSourceControlID(id int64) sourcecontrolOption { - return func(m *SourceControlMutation) { +// withRunnerCountID sets the ID field of the mutation. +func withRunnerCountID(id int64) runnercountOption { + return func(m *RunnerCountMutation) { var ( err error once sync.Once - value *SourceControl + value *RunnerCount ) - m.oldValue = func(ctx context.Context) (*SourceControl, error) { + m.oldValue = func(ctx context.Context) (*RunnerCount, error) { once.Do(func() { if m.done { err = errors.New("querying old values post mutation is not allowed") } else { - value, err = m.Client().SourceControl.Get(ctx, id) + value, err = m.Client().RunnerCount.Get(ctx, id) } }) return value, err @@ -20849,10 +20934,10 @@ func withSourceControlID(id int64) sourcecontrolOption { } } -// withSourceControl sets the old SourceControl of the mutation. -func withSourceControl(node *SourceControl) sourcecontrolOption { - return func(m *SourceControlMutation) { - m.oldValue = func(context.Context) (*SourceControl, error) { +// withRunnerCount sets the old RunnerCount of the mutation. +func withRunnerCount(node *RunnerCount) runnercountOption { + return func(m *RunnerCountMutation) { + m.oldValue = func(context.Context) (*RunnerCount, error) { return node, nil } m.id = &node.ID @@ -20861,7 +20946,7 @@ func withSourceControl(node *SourceControl) sourcecontrolOption { // Client returns a new `ent.Client` from the mutation. If the mutation was // executed in a transaction (ent.Tx), a transactional client is returned. -func (m SourceControlMutation) Client() *Client { +func (m RunnerCountMutation) Client() *Client { client := &Client{config: m.config} client.init() return client @@ -20869,7 +20954,7 @@ func (m SourceControlMutation) Client() *Client { // Tx returns an `ent.Tx` for mutations that were executed in transactions; // it returns an error otherwise. -func (m SourceControlMutation) Tx() (*Tx, error) { +func (m RunnerCountMutation) Tx() (*Tx, error) { if _, ok := m.driver.(*txDriver); !ok { return nil, errors.New("ent: mutation is not running in a transaction") } @@ -20879,14 +20964,14 @@ func (m SourceControlMutation) Tx() (*Tx, error) { } // SetID sets the value of the id field. Note that this -// operation is only accepted on creation of SourceControl entities. -func (m *SourceControlMutation) SetID(id int64) { +// operation is only accepted on creation of RunnerCount entities. +func (m *RunnerCountMutation) SetID(id int64) { m.id = &id } // ID returns the ID value in the mutation. Note that the ID is only available // if it was provided to the builder or after it was returned from the database. -func (m *SourceControlMutation) ID() (id int64, exists bool) { +func (m *RunnerCountMutation) ID() (id int64, exists bool) { if m.id == nil { return } @@ -20897,7 +20982,7 @@ func (m *SourceControlMutation) ID() (id int64, exists bool) { // That means, if the mutation is applied within a transaction with an isolation level such // as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated // or updated by the mutation. -func (m *SourceControlMutation) IDs(ctx context.Context) ([]int64, error) { +func (m *RunnerCountMutation) IDs(ctx context.Context) ([]int64, error) { switch { case m.op.Is(OpUpdateOne | OpDeleteOne): id, exists := m.ID() @@ -20906,794 +20991,910 @@ func (m *SourceControlMutation) IDs(ctx context.Context) ([]int64, error) { } fallthrough case m.op.Is(OpUpdate | OpDelete): - return m.Client().SourceControl.Query().Where(m.predicates...).IDs(ctx) + return m.Client().RunnerCount.Query().Where(m.predicates...).IDs(ctx) default: return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } } -// SetProvider sets the "provider" field. -func (m *SourceControlMutation) SetProvider(s sourcecontrol.Provider) { - m.provider = &s +// SetName sets the "name" field. +func (m *RunnerCountMutation) SetName(s string) { + m.name = &s } -// Provider returns the value of the "provider" field in the mutation. -func (m *SourceControlMutation) Provider() (r sourcecontrol.Provider, exists bool) { - v := m.provider +// Name returns the value of the "name" field in the mutation. +func (m *RunnerCountMutation) Name() (r string, exists bool) { + v := m.name if v == nil { return } return *v, true } -// OldProvider returns the old "provider" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. +// OldName returns the old "name" field's value of the RunnerCount entity. +// If the RunnerCount object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldProvider(ctx context.Context) (v sourcecontrol.Provider, err error) { +func (m *RunnerCountMutation) OldName(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldProvider is only allowed on UpdateOne operations") + return v, errors.New("OldName is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldProvider requires an ID field in the mutation") + return v, errors.New("OldName requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldProvider: %w", err) + return v, fmt.Errorf("querying old value for OldName: %w", err) } - return oldValue.Provider, nil + return oldValue.Name, nil } -// ClearProvider clears the value of the "provider" field. -func (m *SourceControlMutation) ClearProvider() { - m.provider = nil - m.clearedFields[sourcecontrol.FieldProvider] = struct{}{} +// ClearName clears the value of the "name" field. +func (m *RunnerCountMutation) ClearName() { + m.name = nil + m.clearedFields[runnercount.FieldName] = struct{}{} } -// ProviderCleared returns if the "provider" field was cleared in this mutation. -func (m *SourceControlMutation) ProviderCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldProvider] +// NameCleared returns if the "name" field was cleared in this mutation. +func (m *RunnerCountMutation) NameCleared() bool { + _, ok := m.clearedFields[runnercount.FieldName] return ok } -// ResetProvider resets all changes to the "provider" field. -func (m *SourceControlMutation) ResetProvider() { - m.provider = nil - delete(m.clearedFields, sourcecontrol.FieldProvider) +// ResetName resets all changes to the "name" field. +func (m *RunnerCountMutation) ResetName() { + m.name = nil + delete(m.clearedFields, runnercount.FieldName) } -// SetInstanceURL sets the "instance_url" field. -func (m *SourceControlMutation) SetInstanceURL(s string) { - m.instance_url = &s +// SetExecKind sets the "exec_kind" field. +func (m *RunnerCountMutation) SetExecKind(s string) { + m.exec_kind = &s } -// InstanceURL returns the value of the "instance_url" field in the mutation. -func (m *SourceControlMutation) InstanceURL() (r string, exists bool) { - v := m.instance_url +// ExecKind returns the value of the "exec_kind" field in the mutation. +func (m *RunnerCountMutation) ExecKind() (r string, exists bool) { + v := m.exec_kind if v == nil { return } return *v, true } -// OldInstanceURL returns the old "instance_url" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. +// OldExecKind returns the old "exec_kind" field's value of the RunnerCount entity. +// If the RunnerCount object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldInstanceURL(ctx context.Context) (v string, err error) { +func (m *RunnerCountMutation) OldExecKind(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldInstanceURL is only allowed on UpdateOne operations") + return v, errors.New("OldExecKind is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldInstanceURL requires an ID field in the mutation") + return v, errors.New("OldExecKind requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldInstanceURL: %w", err) + return v, fmt.Errorf("querying old value for OldExecKind: %w", err) } - return oldValue.InstanceURL, nil + return oldValue.ExecKind, nil } -// ClearInstanceURL clears the value of the "instance_url" field. -func (m *SourceControlMutation) ClearInstanceURL() { - m.instance_url = nil - m.clearedFields[sourcecontrol.FieldInstanceURL] = struct{}{} +// ClearExecKind clears the value of the "exec_kind" field. +func (m *RunnerCountMutation) ClearExecKind() { + m.exec_kind = nil + m.clearedFields[runnercount.FieldExecKind] = struct{}{} } -// InstanceURLCleared returns if the "instance_url" field was cleared in this mutation. -func (m *SourceControlMutation) InstanceURLCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldInstanceURL] +// ExecKindCleared returns if the "exec_kind" field was cleared in this mutation. +func (m *RunnerCountMutation) ExecKindCleared() bool { + _, ok := m.clearedFields[runnercount.FieldExecKind] return ok } -// ResetInstanceURL resets all changes to the "instance_url" field. -func (m *SourceControlMutation) ResetInstanceURL() { - m.instance_url = nil - delete(m.clearedFields, sourcecontrol.FieldInstanceURL) +// ResetExecKind resets all changes to the "exec_kind" field. +func (m *RunnerCountMutation) ResetExecKind() { + m.exec_kind = nil + delete(m.clearedFields, runnercount.FieldExecKind) } -// SetRepo sets the "repo" field. -func (m *SourceControlMutation) SetRepo(s string) { - m.repo = &s +// SetActionsExecuted sets the "actions_executed" field. +func (m *RunnerCountMutation) SetActionsExecuted(i int64) { + m.actions_executed = &i + m.addactions_executed = nil } -// Repo returns the value of the "repo" field in the mutation. -func (m *SourceControlMutation) Repo() (r string, exists bool) { - v := m.repo +// ActionsExecuted returns the value of the "actions_executed" field in the mutation. +func (m *RunnerCountMutation) ActionsExecuted() (r int64, exists bool) { + v := m.actions_executed if v == nil { return } return *v, true } -// OldRepo returns the old "repo" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. +// OldActionsExecuted returns the old "actions_executed" field's value of the RunnerCount entity. +// If the RunnerCount object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRepo(ctx context.Context) (v string, err error) { +func (m *RunnerCountMutation) OldActionsExecuted(ctx context.Context) (v int64, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRepo is only allowed on UpdateOne operations") + return v, errors.New("OldActionsExecuted is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRepo requires an ID field in the mutation") + return v, errors.New("OldActionsExecuted requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldRepo: %w", err) + return v, fmt.Errorf("querying old value for OldActionsExecuted: %w", err) } - return oldValue.Repo, nil + return oldValue.ActionsExecuted, nil } -// ClearRepo clears the value of the "repo" field. -func (m *SourceControlMutation) ClearRepo() { - m.repo = nil - m.clearedFields[sourcecontrol.FieldRepo] = struct{}{} +// AddActionsExecuted adds i to the "actions_executed" field. +func (m *RunnerCountMutation) AddActionsExecuted(i int64) { + if m.addactions_executed != nil { + *m.addactions_executed += i + } else { + m.addactions_executed = &i + } } -// RepoCleared returns if the "repo" field was cleared in this mutation. -func (m *SourceControlMutation) RepoCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRepo] +// AddedActionsExecuted returns the value that was added to the "actions_executed" field in this mutation. +func (m *RunnerCountMutation) AddedActionsExecuted() (r int64, exists bool) { + v := m.addactions_executed + if v == nil { + return + } + return *v, true +} + +// ClearActionsExecuted clears the value of the "actions_executed" field. +func (m *RunnerCountMutation) ClearActionsExecuted() { + m.actions_executed = nil + m.addactions_executed = nil + m.clearedFields[runnercount.FieldActionsExecuted] = struct{}{} +} + +// ActionsExecutedCleared returns if the "actions_executed" field was cleared in this mutation. +func (m *RunnerCountMutation) ActionsExecutedCleared() bool { + _, ok := m.clearedFields[runnercount.FieldActionsExecuted] return ok } -// ResetRepo resets all changes to the "repo" field. -func (m *SourceControlMutation) ResetRepo() { - m.repo = nil - delete(m.clearedFields, sourcecontrol.FieldRepo) +// ResetActionsExecuted resets all changes to the "actions_executed" field. +func (m *RunnerCountMutation) ResetActionsExecuted() { + m.actions_executed = nil + m.addactions_executed = nil + delete(m.clearedFields, runnercount.FieldActionsExecuted) +} + +// SetActionSummaryID sets the "action_summary" edge to the ActionSummary entity by id. +func (m *RunnerCountMutation) SetActionSummaryID(id int64) { + m.action_summary = &id } -// SetRefs sets the "refs" field. -func (m *SourceControlMutation) SetRefs(s string) { - m.refs = &s +// ClearActionSummary clears the "action_summary" edge to the ActionSummary entity. +func (m *RunnerCountMutation) ClearActionSummary() { + m.clearedaction_summary = true } -// Refs returns the value of the "refs" field in the mutation. -func (m *SourceControlMutation) Refs() (r string, exists bool) { - v := m.refs - if v == nil { - return - } - return *v, true +// ActionSummaryCleared reports if the "action_summary" edge to the ActionSummary entity was cleared. +func (m *RunnerCountMutation) ActionSummaryCleared() bool { + return m.clearedaction_summary } -// OldRefs returns the old "refs" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRefs(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRefs is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRefs requires an ID field in the mutation") +// ActionSummaryID returns the "action_summary" edge ID in the mutation. +func (m *RunnerCountMutation) ActionSummaryID() (id int64, exists bool) { + if m.action_summary != nil { + return *m.action_summary, true } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldRefs: %w", err) + return +} + +// ActionSummaryIDs returns the "action_summary" edge IDs in the mutation. +// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use +// ActionSummaryID instead. It exists only for internal usage by the builders. +func (m *RunnerCountMutation) ActionSummaryIDs() (ids []int64) { + if id := m.action_summary; id != nil { + ids = append(ids, *id) } - return oldValue.Refs, nil + return } -// ClearRefs clears the value of the "refs" field. -func (m *SourceControlMutation) ClearRefs() { - m.refs = nil - m.clearedFields[sourcecontrol.FieldRefs] = struct{}{} +// ResetActionSummary resets all changes to the "action_summary" edge. +func (m *RunnerCountMutation) ResetActionSummary() { + m.action_summary = nil + m.clearedaction_summary = false } -// RefsCleared returns if the "refs" field was cleared in this mutation. -func (m *SourceControlMutation) RefsCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRefs] - return ok +// Where appends a list predicates to the RunnerCountMutation builder. +func (m *RunnerCountMutation) Where(ps ...predicate.RunnerCount) { + m.predicates = append(m.predicates, ps...) } -// ResetRefs resets all changes to the "refs" field. -func (m *SourceControlMutation) ResetRefs() { - m.refs = nil - delete(m.clearedFields, sourcecontrol.FieldRefs) +// WhereP appends storage-level predicates to the RunnerCountMutation builder. Using this method, +// users can use type-assertion to append predicates that do not depend on any generated package. +func (m *RunnerCountMutation) WhereP(ps ...func(*sql.Selector)) { + p := make([]predicate.RunnerCount, len(ps)) + for i := range ps { + p[i] = ps[i] + } + m.Where(p...) } -// SetCommitSha sets the "commit_sha" field. -func (m *SourceControlMutation) SetCommitSha(s string) { - m.commit_sha = &s +// Op returns the operation name. +func (m *RunnerCountMutation) Op() Op { + return m.op } -// CommitSha returns the value of the "commit_sha" field in the mutation. -func (m *SourceControlMutation) CommitSha() (r string, exists bool) { - v := m.commit_sha - if v == nil { - return - } - return *v, true +// SetOp allows setting the mutation operation. +func (m *RunnerCountMutation) SetOp(op Op) { + m.op = op } -// OldCommitSha returns the old "commit_sha" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldCommitSha(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldCommitSha is only allowed on UpdateOne operations") +// Type returns the node type of this mutation (RunnerCount). +func (m *RunnerCountMutation) Type() string { + return m.typ +} + +// Fields returns all fields that were changed during this mutation. Note that in +// order to get all numeric fields that were incremented/decremented, call +// AddedFields(). +func (m *RunnerCountMutation) Fields() []string { + fields := make([]string, 0, 3) + if m.name != nil { + fields = append(fields, runnercount.FieldName) } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldCommitSha requires an ID field in the mutation") + if m.exec_kind != nil { + fields = append(fields, runnercount.FieldExecKind) } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldCommitSha: %w", err) + if m.actions_executed != nil { + fields = append(fields, runnercount.FieldActionsExecuted) } - return oldValue.CommitSha, nil + return fields } -// ClearCommitSha clears the value of the "commit_sha" field. -func (m *SourceControlMutation) ClearCommitSha() { - m.commit_sha = nil - m.clearedFields[sourcecontrol.FieldCommitSha] = struct{}{} +// Field returns the value of a field with the given name. The second boolean +// return value indicates that this field was not set, or was not defined in the +// schema. +func (m *RunnerCountMutation) Field(name string) (ent.Value, bool) { + switch name { + case runnercount.FieldName: + return m.Name() + case runnercount.FieldExecKind: + return m.ExecKind() + case runnercount.FieldActionsExecuted: + return m.ActionsExecuted() + } + return nil, false } -// CommitShaCleared returns if the "commit_sha" field was cleared in this mutation. -func (m *SourceControlMutation) CommitShaCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldCommitSha] - return ok +// OldField returns the old value of the field from the database. An error is +// returned if the mutation operation is not UpdateOne, or the query to the +// database failed. +func (m *RunnerCountMutation) OldField(ctx context.Context, name string) (ent.Value, error) { + switch name { + case runnercount.FieldName: + return m.OldName(ctx) + case runnercount.FieldExecKind: + return m.OldExecKind(ctx) + case runnercount.FieldActionsExecuted: + return m.OldActionsExecuted(ctx) + } + return nil, fmt.Errorf("unknown RunnerCount field %s", name) } -// ResetCommitSha resets all changes to the "commit_sha" field. -func (m *SourceControlMutation) ResetCommitSha() { - m.commit_sha = nil - delete(m.clearedFields, sourcecontrol.FieldCommitSha) +// SetField sets the value of a field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *RunnerCountMutation) SetField(name string, value ent.Value) error { + switch name { + case runnercount.FieldName: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetName(v) + return nil + case runnercount.FieldExecKind: + v, ok := value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetExecKind(v) + return nil + case runnercount.FieldActionsExecuted: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetActionsExecuted(v) + return nil + } + return fmt.Errorf("unknown RunnerCount field %s", name) } -// SetActor sets the "actor" field. -func (m *SourceControlMutation) SetActor(s string) { - m.actor = &s +// AddedFields returns all numeric fields that were incremented/decremented during +// this mutation. +func (m *RunnerCountMutation) AddedFields() []string { + var fields []string + if m.addactions_executed != nil { + fields = append(fields, runnercount.FieldActionsExecuted) + } + return fields } -// Actor returns the value of the "actor" field in the mutation. -func (m *SourceControlMutation) Actor() (r string, exists bool) { - v := m.actor - if v == nil { - return +// AddedField returns the numeric value that was incremented/decremented on a field +// with the given name. The second boolean return value indicates that this field +// was not set, or was not defined in the schema. +func (m *RunnerCountMutation) AddedField(name string) (ent.Value, bool) { + switch name { + case runnercount.FieldActionsExecuted: + return m.AddedActionsExecuted() } - return *v, true + return nil, false } -// OldActor returns the old "actor" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldActor(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldActor is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldActor requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldActor: %w", err) +// AddField adds the value to the field with the given name. It returns an error if +// the field is not defined in the schema, or if the type mismatched the field +// type. +func (m *RunnerCountMutation) AddField(name string, value ent.Value) error { + switch name { + case runnercount.FieldActionsExecuted: + v, ok := value.(int64) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.AddActionsExecuted(v) + return nil } - return oldValue.Actor, nil + return fmt.Errorf("unknown RunnerCount numeric field %s", name) } -// ClearActor clears the value of the "actor" field. -func (m *SourceControlMutation) ClearActor() { - m.actor = nil - m.clearedFields[sourcecontrol.FieldActor] = struct{}{} +// ClearedFields returns all nullable fields that were cleared during this +// mutation. +func (m *RunnerCountMutation) ClearedFields() []string { + var fields []string + if m.FieldCleared(runnercount.FieldName) { + fields = append(fields, runnercount.FieldName) + } + if m.FieldCleared(runnercount.FieldExecKind) { + fields = append(fields, runnercount.FieldExecKind) + } + if m.FieldCleared(runnercount.FieldActionsExecuted) { + fields = append(fields, runnercount.FieldActionsExecuted) + } + return fields } -// ActorCleared returns if the "actor" field was cleared in this mutation. -func (m *SourceControlMutation) ActorCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldActor] +// FieldCleared returns a boolean indicating if a field with the given name was +// cleared in this mutation. +func (m *RunnerCountMutation) FieldCleared(name string) bool { + _, ok := m.clearedFields[name] return ok } -// ResetActor resets all changes to the "actor" field. -func (m *SourceControlMutation) ResetActor() { - m.actor = nil - delete(m.clearedFields, sourcecontrol.FieldActor) -} - -// SetEventName sets the "event_name" field. -func (m *SourceControlMutation) SetEventName(s string) { - m.event_name = &s -} - -// EventName returns the value of the "event_name" field in the mutation. -func (m *SourceControlMutation) EventName() (r string, exists bool) { - v := m.event_name - if v == nil { - return +// ClearField clears the value of the field with the given name. It returns an +// error if the field is not defined in the schema. +func (m *RunnerCountMutation) ClearField(name string) error { + switch name { + case runnercount.FieldName: + m.ClearName() + return nil + case runnercount.FieldExecKind: + m.ClearExecKind() + return nil + case runnercount.FieldActionsExecuted: + m.ClearActionsExecuted() + return nil } - return *v, true + return fmt.Errorf("unknown RunnerCount nullable field %s", name) } -// OldEventName returns the old "event_name" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldEventName(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldEventName is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldEventName requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldEventName: %w", err) +// ResetField resets all changes in the mutation for the field with the given name. +// It returns an error if the field is not defined in the schema. +func (m *RunnerCountMutation) ResetField(name string) error { + switch name { + case runnercount.FieldName: + m.ResetName() + return nil + case runnercount.FieldExecKind: + m.ResetExecKind() + return nil + case runnercount.FieldActionsExecuted: + m.ResetActionsExecuted() + return nil } - return oldValue.EventName, nil + return fmt.Errorf("unknown RunnerCount field %s", name) } -// ClearEventName clears the value of the "event_name" field. -func (m *SourceControlMutation) ClearEventName() { - m.event_name = nil - m.clearedFields[sourcecontrol.FieldEventName] = struct{}{} +// AddedEdges returns all edge names that were set/added in this mutation. +func (m *RunnerCountMutation) AddedEdges() []string { + edges := make([]string, 0, 1) + if m.action_summary != nil { + edges = append(edges, runnercount.EdgeActionSummary) + } + return edges } -// EventNameCleared returns if the "event_name" field was cleared in this mutation. -func (m *SourceControlMutation) EventNameCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldEventName] - return ok +// AddedIDs returns all IDs (to other nodes) that were added for the given edge +// name in this mutation. +func (m *RunnerCountMutation) AddedIDs(name string) []ent.Value { + switch name { + case runnercount.EdgeActionSummary: + if id := m.action_summary; id != nil { + return []ent.Value{*id} + } + } + return nil } -// ResetEventName resets all changes to the "event_name" field. -func (m *SourceControlMutation) ResetEventName() { - m.event_name = nil - delete(m.clearedFields, sourcecontrol.FieldEventName) +// RemovedEdges returns all edge names that were removed in this mutation. +func (m *RunnerCountMutation) RemovedEdges() []string { + edges := make([]string, 0, 1) + return edges } -// SetWorkflow sets the "workflow" field. -func (m *SourceControlMutation) SetWorkflow(s string) { - m.workflow = &s +// RemovedIDs returns all IDs (to other nodes) that were removed for the edge with +// the given name in this mutation. +func (m *RunnerCountMutation) RemovedIDs(name string) []ent.Value { + return nil } -// Workflow returns the value of the "workflow" field in the mutation. -func (m *SourceControlMutation) Workflow() (r string, exists bool) { - v := m.workflow - if v == nil { - return +// ClearedEdges returns all edge names that were cleared in this mutation. +func (m *RunnerCountMutation) ClearedEdges() []string { + edges := make([]string, 0, 1) + if m.clearedaction_summary { + edges = append(edges, runnercount.EdgeActionSummary) } - return *v, true + return edges } -// OldWorkflow returns the old "workflow" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldWorkflow(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldWorkflow is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldWorkflow requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldWorkflow: %w", err) +// EdgeCleared returns a boolean which indicates if the edge with the given name +// was cleared in this mutation. +func (m *RunnerCountMutation) EdgeCleared(name string) bool { + switch name { + case runnercount.EdgeActionSummary: + return m.clearedaction_summary } - return oldValue.Workflow, nil + return false } -// ClearWorkflow clears the value of the "workflow" field. -func (m *SourceControlMutation) ClearWorkflow() { - m.workflow = nil - m.clearedFields[sourcecontrol.FieldWorkflow] = struct{}{} +// ClearEdge clears the value of the edge with the given name. It returns an error +// if that edge is not defined in the schema. +func (m *RunnerCountMutation) ClearEdge(name string) error { + switch name { + case runnercount.EdgeActionSummary: + m.ClearActionSummary() + return nil + } + return fmt.Errorf("unknown RunnerCount unique edge %s", name) } -// WorkflowCleared returns if the "workflow" field was cleared in this mutation. -func (m *SourceControlMutation) WorkflowCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldWorkflow] - return ok +// ResetEdge resets all changes to the edge with the given name in this mutation. +// It returns an error if the edge is not defined in the schema. +func (m *RunnerCountMutation) ResetEdge(name string) error { + switch name { + case runnercount.EdgeActionSummary: + m.ResetActionSummary() + return nil + } + return fmt.Errorf("unknown RunnerCount edge %s", name) } -// ResetWorkflow resets all changes to the "workflow" field. -func (m *SourceControlMutation) ResetWorkflow() { - m.workflow = nil - delete(m.clearedFields, sourcecontrol.FieldWorkflow) +// SourceControlMutation represents an operation that mutates the SourceControl nodes in the graph. +type SourceControlMutation struct { + config + op Op + typ string + id *int64 + repo *string + repo_url *string + ref *string + ref_url *string + commit *string + commit_url *string + clearedFields map[string]struct{} + bazel_invocation *int64 + clearedbazel_invocation bool + done bool + oldValue func(context.Context) (*SourceControl, error) + predicates []predicate.SourceControl } -// SetRunID sets the "run_id" field. -func (m *SourceControlMutation) SetRunID(s string) { - m.run_id = &s -} +var _ ent.Mutation = (*SourceControlMutation)(nil) -// RunID returns the value of the "run_id" field in the mutation. -func (m *SourceControlMutation) RunID() (r string, exists bool) { - v := m.run_id - if v == nil { - return - } - return *v, true -} +// sourcecontrolOption allows management of the mutation configuration using functional options. +type sourcecontrolOption func(*SourceControlMutation) -// OldRunID returns the old "run_id" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRunID(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRunID is only allowed on UpdateOne operations") +// newSourceControlMutation creates new mutation for the SourceControl entity. +func newSourceControlMutation(c config, op Op, opts ...sourcecontrolOption) *SourceControlMutation { + m := &SourceControlMutation{ + config: c, + op: op, + typ: TypeSourceControl, + clearedFields: make(map[string]struct{}), } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRunID requires an ID field in the mutation") + for _, opt := range opts { + opt(m) } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldRunID: %w", err) + return m +} + +// withSourceControlID sets the ID field of the mutation. +func withSourceControlID(id int64) sourcecontrolOption { + return func(m *SourceControlMutation) { + var ( + err error + once sync.Once + value *SourceControl + ) + m.oldValue = func(ctx context.Context) (*SourceControl, error) { + once.Do(func() { + if m.done { + err = errors.New("querying old values post mutation is not allowed") + } else { + value, err = m.Client().SourceControl.Get(ctx, id) + } + }) + return value, err + } + m.id = &id } - return oldValue.RunID, nil } -// ClearRunID clears the value of the "run_id" field. -func (m *SourceControlMutation) ClearRunID() { - m.run_id = nil - m.clearedFields[sourcecontrol.FieldRunID] = struct{}{} +// withSourceControl sets the old SourceControl of the mutation. +func withSourceControl(node *SourceControl) sourcecontrolOption { + return func(m *SourceControlMutation) { + m.oldValue = func(context.Context) (*SourceControl, error) { + return node, nil + } + m.id = &node.ID + } } -// RunIDCleared returns if the "run_id" field was cleared in this mutation. -func (m *SourceControlMutation) RunIDCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRunID] - return ok +// Client returns a new `ent.Client` from the mutation. If the mutation was +// executed in a transaction (ent.Tx), a transactional client is returned. +func (m SourceControlMutation) Client() *Client { + client := &Client{config: m.config} + client.init() + return client } -// ResetRunID resets all changes to the "run_id" field. -func (m *SourceControlMutation) ResetRunID() { - m.run_id = nil - delete(m.clearedFields, sourcecontrol.FieldRunID) +// Tx returns an `ent.Tx` for mutations that were executed in transactions; +// it returns an error otherwise. +func (m SourceControlMutation) Tx() (*Tx, error) { + if _, ok := m.driver.(*txDriver); !ok { + return nil, errors.New("ent: mutation is not running in a transaction") + } + tx := &Tx{config: m.config} + tx.init() + return tx, nil } -// SetRunNumber sets the "run_number" field. -func (m *SourceControlMutation) SetRunNumber(s string) { - m.run_number = &s +// SetID sets the value of the id field. Note that this +// operation is only accepted on creation of SourceControl entities. +func (m *SourceControlMutation) SetID(id int64) { + m.id = &id } -// RunNumber returns the value of the "run_number" field in the mutation. -func (m *SourceControlMutation) RunNumber() (r string, exists bool) { - v := m.run_number - if v == nil { +// ID returns the ID value in the mutation. Note that the ID is only available +// if it was provided to the builder or after it was returned from the database. +func (m *SourceControlMutation) ID() (id int64, exists bool) { + if m.id == nil { return } - return *v, true + return *m.id, true } -// OldRunNumber returns the old "run_number" field's value of the SourceControl entity. -// If the SourceControl object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRunNumber(ctx context.Context) (v string, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRunNumber is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRunNumber requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldRunNumber: %w", err) +// IDs queries the database and returns the entity ids that match the mutation's predicate. +// That means, if the mutation is applied within a transaction with an isolation level such +// as sql.LevelSerializable, the returned ids match the ids of the rows that will be updated +// or updated by the mutation. +func (m *SourceControlMutation) IDs(ctx context.Context) ([]int64, error) { + switch { + case m.op.Is(OpUpdateOne | OpDeleteOne): + id, exists := m.ID() + if exists { + return []int64{id}, nil + } + fallthrough + case m.op.Is(OpUpdate | OpDelete): + return m.Client().SourceControl.Query().Where(m.predicates...).IDs(ctx) + default: + return nil, fmt.Errorf("IDs is not allowed on %s operations", m.op) } - return oldValue.RunNumber, nil -} - -// ClearRunNumber clears the value of the "run_number" field. -func (m *SourceControlMutation) ClearRunNumber() { - m.run_number = nil - m.clearedFields[sourcecontrol.FieldRunNumber] = struct{}{} -} - -// RunNumberCleared returns if the "run_number" field was cleared in this mutation. -func (m *SourceControlMutation) RunNumberCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRunNumber] - return ok -} - -// ResetRunNumber resets all changes to the "run_number" field. -func (m *SourceControlMutation) ResetRunNumber() { - m.run_number = nil - delete(m.clearedFields, sourcecontrol.FieldRunNumber) } -// SetJob sets the "job" field. -func (m *SourceControlMutation) SetJob(s string) { - m.job = &s +// SetRepo sets the "repo" field. +func (m *SourceControlMutation) SetRepo(s string) { + m.repo = &s } -// Job returns the value of the "job" field in the mutation. -func (m *SourceControlMutation) Job() (r string, exists bool) { - v := m.job +// Repo returns the value of the "repo" field in the mutation. +func (m *SourceControlMutation) Repo() (r string, exists bool) { + v := m.repo if v == nil { return } return *v, true } -// OldJob returns the old "job" field's value of the SourceControl entity. +// OldRepo returns the old "repo" field's value of the SourceControl entity. // If the SourceControl object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldJob(ctx context.Context) (v string, err error) { +func (m *SourceControlMutation) OldRepo(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldJob is only allowed on UpdateOne operations") + return v, errors.New("OldRepo is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldJob requires an ID field in the mutation") + return v, errors.New("OldRepo requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldJob: %w", err) + return v, fmt.Errorf("querying old value for OldRepo: %w", err) } - return oldValue.Job, nil + return oldValue.Repo, nil } -// ClearJob clears the value of the "job" field. -func (m *SourceControlMutation) ClearJob() { - m.job = nil - m.clearedFields[sourcecontrol.FieldJob] = struct{}{} +// ClearRepo clears the value of the "repo" field. +func (m *SourceControlMutation) ClearRepo() { + m.repo = nil + m.clearedFields[sourcecontrol.FieldRepo] = struct{}{} } -// JobCleared returns if the "job" field was cleared in this mutation. -func (m *SourceControlMutation) JobCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldJob] +// RepoCleared returns if the "repo" field was cleared in this mutation. +func (m *SourceControlMutation) RepoCleared() bool { + _, ok := m.clearedFields[sourcecontrol.FieldRepo] return ok } -// ResetJob resets all changes to the "job" field. -func (m *SourceControlMutation) ResetJob() { - m.job = nil - delete(m.clearedFields, sourcecontrol.FieldJob) +// ResetRepo resets all changes to the "repo" field. +func (m *SourceControlMutation) ResetRepo() { + m.repo = nil + delete(m.clearedFields, sourcecontrol.FieldRepo) } -// SetAction sets the "action" field. -func (m *SourceControlMutation) SetAction(s string) { - m.action = &s +// SetRepoURL sets the "repo_url" field. +func (m *SourceControlMutation) SetRepoURL(s string) { + m.repo_url = &s } -// Action returns the value of the "action" field in the mutation. -func (m *SourceControlMutation) Action() (r string, exists bool) { - v := m.action +// RepoURL returns the value of the "repo_url" field in the mutation. +func (m *SourceControlMutation) RepoURL() (r string, exists bool) { + v := m.repo_url if v == nil { return } return *v, true } -// OldAction returns the old "action" field's value of the SourceControl entity. +// OldRepoURL returns the old "repo_url" field's value of the SourceControl entity. // If the SourceControl object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldAction(ctx context.Context) (v string, err error) { +func (m *SourceControlMutation) OldRepoURL(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldAction is only allowed on UpdateOne operations") + return v, errors.New("OldRepoURL is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldAction requires an ID field in the mutation") + return v, errors.New("OldRepoURL requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldAction: %w", err) + return v, fmt.Errorf("querying old value for OldRepoURL: %w", err) } - return oldValue.Action, nil + return oldValue.RepoURL, nil } -// ClearAction clears the value of the "action" field. -func (m *SourceControlMutation) ClearAction() { - m.action = nil - m.clearedFields[sourcecontrol.FieldAction] = struct{}{} +// ClearRepoURL clears the value of the "repo_url" field. +func (m *SourceControlMutation) ClearRepoURL() { + m.repo_url = nil + m.clearedFields[sourcecontrol.FieldRepoURL] = struct{}{} } -// ActionCleared returns if the "action" field was cleared in this mutation. -func (m *SourceControlMutation) ActionCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldAction] +// RepoURLCleared returns if the "repo_url" field was cleared in this mutation. +func (m *SourceControlMutation) RepoURLCleared() bool { + _, ok := m.clearedFields[sourcecontrol.FieldRepoURL] return ok } -// ResetAction resets all changes to the "action" field. -func (m *SourceControlMutation) ResetAction() { - m.action = nil - delete(m.clearedFields, sourcecontrol.FieldAction) +// ResetRepoURL resets all changes to the "repo_url" field. +func (m *SourceControlMutation) ResetRepoURL() { + m.repo_url = nil + delete(m.clearedFields, sourcecontrol.FieldRepoURL) } -// SetRunnerName sets the "runner_name" field. -func (m *SourceControlMutation) SetRunnerName(s string) { - m.runner_name = &s +// SetRef sets the "ref" field. +func (m *SourceControlMutation) SetRef(s string) { + m.ref = &s } -// RunnerName returns the value of the "runner_name" field in the mutation. -func (m *SourceControlMutation) RunnerName() (r string, exists bool) { - v := m.runner_name +// Ref returns the value of the "ref" field in the mutation. +func (m *SourceControlMutation) Ref() (r string, exists bool) { + v := m.ref if v == nil { return } return *v, true } -// OldRunnerName returns the old "runner_name" field's value of the SourceControl entity. +// OldRef returns the old "ref" field's value of the SourceControl entity. // If the SourceControl object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRunnerName(ctx context.Context) (v string, err error) { +func (m *SourceControlMutation) OldRef(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRunnerName is only allowed on UpdateOne operations") + return v, errors.New("OldRef is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRunnerName requires an ID field in the mutation") + return v, errors.New("OldRef requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldRunnerName: %w", err) + return v, fmt.Errorf("querying old value for OldRef: %w", err) } - return oldValue.RunnerName, nil + return oldValue.Ref, nil } -// ClearRunnerName clears the value of the "runner_name" field. -func (m *SourceControlMutation) ClearRunnerName() { - m.runner_name = nil - m.clearedFields[sourcecontrol.FieldRunnerName] = struct{}{} +// ClearRef clears the value of the "ref" field. +func (m *SourceControlMutation) ClearRef() { + m.ref = nil + m.clearedFields[sourcecontrol.FieldRef] = struct{}{} } -// RunnerNameCleared returns if the "runner_name" field was cleared in this mutation. -func (m *SourceControlMutation) RunnerNameCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRunnerName] +// RefCleared returns if the "ref" field was cleared in this mutation. +func (m *SourceControlMutation) RefCleared() bool { + _, ok := m.clearedFields[sourcecontrol.FieldRef] return ok } -// ResetRunnerName resets all changes to the "runner_name" field. -func (m *SourceControlMutation) ResetRunnerName() { - m.runner_name = nil - delete(m.clearedFields, sourcecontrol.FieldRunnerName) +// ResetRef resets all changes to the "ref" field. +func (m *SourceControlMutation) ResetRef() { + m.ref = nil + delete(m.clearedFields, sourcecontrol.FieldRef) } -// SetRunnerArch sets the "runner_arch" field. -func (m *SourceControlMutation) SetRunnerArch(s string) { - m.runner_arch = &s +// SetRefURL sets the "ref_url" field. +func (m *SourceControlMutation) SetRefURL(s string) { + m.ref_url = &s } -// RunnerArch returns the value of the "runner_arch" field in the mutation. -func (m *SourceControlMutation) RunnerArch() (r string, exists bool) { - v := m.runner_arch +// RefURL returns the value of the "ref_url" field in the mutation. +func (m *SourceControlMutation) RefURL() (r string, exists bool) { + v := m.ref_url if v == nil { return } return *v, true } -// OldRunnerArch returns the old "runner_arch" field's value of the SourceControl entity. +// OldRefURL returns the old "ref_url" field's value of the SourceControl entity. // If the SourceControl object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRunnerArch(ctx context.Context) (v string, err error) { +func (m *SourceControlMutation) OldRefURL(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRunnerArch is only allowed on UpdateOne operations") + return v, errors.New("OldRefURL is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRunnerArch requires an ID field in the mutation") + return v, errors.New("OldRefURL requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldRunnerArch: %w", err) + return v, fmt.Errorf("querying old value for OldRefURL: %w", err) } - return oldValue.RunnerArch, nil + return oldValue.RefURL, nil } -// ClearRunnerArch clears the value of the "runner_arch" field. -func (m *SourceControlMutation) ClearRunnerArch() { - m.runner_arch = nil - m.clearedFields[sourcecontrol.FieldRunnerArch] = struct{}{} +// ClearRefURL clears the value of the "ref_url" field. +func (m *SourceControlMutation) ClearRefURL() { + m.ref_url = nil + m.clearedFields[sourcecontrol.FieldRefURL] = struct{}{} } -// RunnerArchCleared returns if the "runner_arch" field was cleared in this mutation. -func (m *SourceControlMutation) RunnerArchCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRunnerArch] +// RefURLCleared returns if the "ref_url" field was cleared in this mutation. +func (m *SourceControlMutation) RefURLCleared() bool { + _, ok := m.clearedFields[sourcecontrol.FieldRefURL] return ok } -// ResetRunnerArch resets all changes to the "runner_arch" field. -func (m *SourceControlMutation) ResetRunnerArch() { - m.runner_arch = nil - delete(m.clearedFields, sourcecontrol.FieldRunnerArch) +// ResetRefURL resets all changes to the "ref_url" field. +func (m *SourceControlMutation) ResetRefURL() { + m.ref_url = nil + delete(m.clearedFields, sourcecontrol.FieldRefURL) } -// SetRunnerOs sets the "runner_os" field. -func (m *SourceControlMutation) SetRunnerOs(s string) { - m.runner_os = &s +// SetCommit sets the "commit" field. +func (m *SourceControlMutation) SetCommit(s string) { + m.commit = &s } -// RunnerOs returns the value of the "runner_os" field in the mutation. -func (m *SourceControlMutation) RunnerOs() (r string, exists bool) { - v := m.runner_os +// Commit returns the value of the "commit" field in the mutation. +func (m *SourceControlMutation) Commit() (r string, exists bool) { + v := m.commit if v == nil { return } return *v, true } -// OldRunnerOs returns the old "runner_os" field's value of the SourceControl entity. +// OldCommit returns the old "commit" field's value of the SourceControl entity. // If the SourceControl object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldRunnerOs(ctx context.Context) (v string, err error) { +func (m *SourceControlMutation) OldCommit(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldRunnerOs is only allowed on UpdateOne operations") + return v, errors.New("OldCommit is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldRunnerOs requires an ID field in the mutation") + return v, errors.New("OldCommit requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldRunnerOs: %w", err) + return v, fmt.Errorf("querying old value for OldCommit: %w", err) } - return oldValue.RunnerOs, nil + return oldValue.Commit, nil } -// ClearRunnerOs clears the value of the "runner_os" field. -func (m *SourceControlMutation) ClearRunnerOs() { - m.runner_os = nil - m.clearedFields[sourcecontrol.FieldRunnerOs] = struct{}{} +// ClearCommit clears the value of the "commit" field. +func (m *SourceControlMutation) ClearCommit() { + m.commit = nil + m.clearedFields[sourcecontrol.FieldCommit] = struct{}{} } -// RunnerOsCleared returns if the "runner_os" field was cleared in this mutation. -func (m *SourceControlMutation) RunnerOsCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldRunnerOs] +// CommitCleared returns if the "commit" field was cleared in this mutation. +func (m *SourceControlMutation) CommitCleared() bool { + _, ok := m.clearedFields[sourcecontrol.FieldCommit] return ok } -// ResetRunnerOs resets all changes to the "runner_os" field. -func (m *SourceControlMutation) ResetRunnerOs() { - m.runner_os = nil - delete(m.clearedFields, sourcecontrol.FieldRunnerOs) +// ResetCommit resets all changes to the "commit" field. +func (m *SourceControlMutation) ResetCommit() { + m.commit = nil + delete(m.clearedFields, sourcecontrol.FieldCommit) } -// SetWorkspace sets the "workspace" field. -func (m *SourceControlMutation) SetWorkspace(s string) { - m.workspace = &s +// SetCommitURL sets the "commit_url" field. +func (m *SourceControlMutation) SetCommitURL(s string) { + m.commit_url = &s } -// Workspace returns the value of the "workspace" field in the mutation. -func (m *SourceControlMutation) Workspace() (r string, exists bool) { - v := m.workspace +// CommitURL returns the value of the "commit_url" field in the mutation. +func (m *SourceControlMutation) CommitURL() (r string, exists bool) { + v := m.commit_url if v == nil { return } return *v, true } -// OldWorkspace returns the old "workspace" field's value of the SourceControl entity. +// OldCommitURL returns the old "commit_url" field's value of the SourceControl entity. // If the SourceControl object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *SourceControlMutation) OldWorkspace(ctx context.Context) (v string, err error) { +func (m *SourceControlMutation) OldCommitURL(ctx context.Context) (v string, err error) { if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldWorkspace is only allowed on UpdateOne operations") + return v, errors.New("OldCommitURL is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, errors.New("OldWorkspace requires an ID field in the mutation") + return v, errors.New("OldCommitURL requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldWorkspace: %w", err) + return v, fmt.Errorf("querying old value for OldCommitURL: %w", err) } - return oldValue.Workspace, nil + return oldValue.CommitURL, nil } -// ClearWorkspace clears the value of the "workspace" field. -func (m *SourceControlMutation) ClearWorkspace() { - m.workspace = nil - m.clearedFields[sourcecontrol.FieldWorkspace] = struct{}{} +// ClearCommitURL clears the value of the "commit_url" field. +func (m *SourceControlMutation) ClearCommitURL() { + m.commit_url = nil + m.clearedFields[sourcecontrol.FieldCommitURL] = struct{}{} } -// WorkspaceCleared returns if the "workspace" field was cleared in this mutation. -func (m *SourceControlMutation) WorkspaceCleared() bool { - _, ok := m.clearedFields[sourcecontrol.FieldWorkspace] +// CommitURLCleared returns if the "commit_url" field was cleared in this mutation. +func (m *SourceControlMutation) CommitURLCleared() bool { + _, ok := m.clearedFields[sourcecontrol.FieldCommitURL] return ok } -// ResetWorkspace resets all changes to the "workspace" field. -func (m *SourceControlMutation) ResetWorkspace() { - m.workspace = nil - delete(m.clearedFields, sourcecontrol.FieldWorkspace) +// ResetCommitURL resets all changes to the "commit_url" field. +func (m *SourceControlMutation) ResetCommitURL() { + m.commit_url = nil + delete(m.clearedFields, sourcecontrol.FieldCommitURL) } // SetBazelInvocationID sets the "bazel_invocation" edge to the BazelInvocation entity by id. @@ -21769,54 +21970,24 @@ func (m *SourceControlMutation) Type() string { // order to get all numeric fields that were incremented/decremented, call // AddedFields(). func (m *SourceControlMutation) Fields() []string { - fields := make([]string, 0, 16) - if m.provider != nil { - fields = append(fields, sourcecontrol.FieldProvider) - } - if m.instance_url != nil { - fields = append(fields, sourcecontrol.FieldInstanceURL) - } + fields := make([]string, 0, 6) if m.repo != nil { fields = append(fields, sourcecontrol.FieldRepo) } - if m.refs != nil { - fields = append(fields, sourcecontrol.FieldRefs) - } - if m.commit_sha != nil { - fields = append(fields, sourcecontrol.FieldCommitSha) - } - if m.actor != nil { - fields = append(fields, sourcecontrol.FieldActor) - } - if m.event_name != nil { - fields = append(fields, sourcecontrol.FieldEventName) - } - if m.workflow != nil { - fields = append(fields, sourcecontrol.FieldWorkflow) - } - if m.run_id != nil { - fields = append(fields, sourcecontrol.FieldRunID) - } - if m.run_number != nil { - fields = append(fields, sourcecontrol.FieldRunNumber) - } - if m.job != nil { - fields = append(fields, sourcecontrol.FieldJob) + if m.repo_url != nil { + fields = append(fields, sourcecontrol.FieldRepoURL) } - if m.action != nil { - fields = append(fields, sourcecontrol.FieldAction) + if m.ref != nil { + fields = append(fields, sourcecontrol.FieldRef) } - if m.runner_name != nil { - fields = append(fields, sourcecontrol.FieldRunnerName) + if m.ref_url != nil { + fields = append(fields, sourcecontrol.FieldRefURL) } - if m.runner_arch != nil { - fields = append(fields, sourcecontrol.FieldRunnerArch) + if m.commit != nil { + fields = append(fields, sourcecontrol.FieldCommit) } - if m.runner_os != nil { - fields = append(fields, sourcecontrol.FieldRunnerOs) - } - if m.workspace != nil { - fields = append(fields, sourcecontrol.FieldWorkspace) + if m.commit_url != nil { + fields = append(fields, sourcecontrol.FieldCommitURL) } return fields } @@ -21826,38 +21997,18 @@ func (m *SourceControlMutation) Fields() []string { // schema. func (m *SourceControlMutation) Field(name string) (ent.Value, bool) { switch name { - case sourcecontrol.FieldProvider: - return m.Provider() - case sourcecontrol.FieldInstanceURL: - return m.InstanceURL() case sourcecontrol.FieldRepo: return m.Repo() - case sourcecontrol.FieldRefs: - return m.Refs() - case sourcecontrol.FieldCommitSha: - return m.CommitSha() - case sourcecontrol.FieldActor: - return m.Actor() - case sourcecontrol.FieldEventName: - return m.EventName() - case sourcecontrol.FieldWorkflow: - return m.Workflow() - case sourcecontrol.FieldRunID: - return m.RunID() - case sourcecontrol.FieldRunNumber: - return m.RunNumber() - case sourcecontrol.FieldJob: - return m.Job() - case sourcecontrol.FieldAction: - return m.Action() - case sourcecontrol.FieldRunnerName: - return m.RunnerName() - case sourcecontrol.FieldRunnerArch: - return m.RunnerArch() - case sourcecontrol.FieldRunnerOs: - return m.RunnerOs() - case sourcecontrol.FieldWorkspace: - return m.Workspace() + case sourcecontrol.FieldRepoURL: + return m.RepoURL() + case sourcecontrol.FieldRef: + return m.Ref() + case sourcecontrol.FieldRefURL: + return m.RefURL() + case sourcecontrol.FieldCommit: + return m.Commit() + case sourcecontrol.FieldCommitURL: + return m.CommitURL() } return nil, false } @@ -21867,38 +22018,18 @@ func (m *SourceControlMutation) Field(name string) (ent.Value, bool) { // database failed. func (m *SourceControlMutation) OldField(ctx context.Context, name string) (ent.Value, error) { switch name { - case sourcecontrol.FieldProvider: - return m.OldProvider(ctx) - case sourcecontrol.FieldInstanceURL: - return m.OldInstanceURL(ctx) case sourcecontrol.FieldRepo: return m.OldRepo(ctx) - case sourcecontrol.FieldRefs: - return m.OldRefs(ctx) - case sourcecontrol.FieldCommitSha: - return m.OldCommitSha(ctx) - case sourcecontrol.FieldActor: - return m.OldActor(ctx) - case sourcecontrol.FieldEventName: - return m.OldEventName(ctx) - case sourcecontrol.FieldWorkflow: - return m.OldWorkflow(ctx) - case sourcecontrol.FieldRunID: - return m.OldRunID(ctx) - case sourcecontrol.FieldRunNumber: - return m.OldRunNumber(ctx) - case sourcecontrol.FieldJob: - return m.OldJob(ctx) - case sourcecontrol.FieldAction: - return m.OldAction(ctx) - case sourcecontrol.FieldRunnerName: - return m.OldRunnerName(ctx) - case sourcecontrol.FieldRunnerArch: - return m.OldRunnerArch(ctx) - case sourcecontrol.FieldRunnerOs: - return m.OldRunnerOs(ctx) - case sourcecontrol.FieldWorkspace: - return m.OldWorkspace(ctx) + case sourcecontrol.FieldRepoURL: + return m.OldRepoURL(ctx) + case sourcecontrol.FieldRef: + return m.OldRef(ctx) + case sourcecontrol.FieldRefURL: + return m.OldRefURL(ctx) + case sourcecontrol.FieldCommit: + return m.OldCommit(ctx) + case sourcecontrol.FieldCommitURL: + return m.OldCommitURL(ctx) } return nil, fmt.Errorf("unknown SourceControl field %s", name) } @@ -21908,20 +22039,6 @@ func (m *SourceControlMutation) OldField(ctx context.Context, name string) (ent. // type. func (m *SourceControlMutation) SetField(name string, value ent.Value) error { switch name { - case sourcecontrol.FieldProvider: - v, ok := value.(sourcecontrol.Provider) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetProvider(v) - return nil - case sourcecontrol.FieldInstanceURL: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetInstanceURL(v) - return nil case sourcecontrol.FieldRepo: v, ok := value.(string) if !ok { @@ -21929,96 +22046,40 @@ func (m *SourceControlMutation) SetField(name string, value ent.Value) error { } m.SetRepo(v) return nil - case sourcecontrol.FieldRefs: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetRefs(v) - return nil - case sourcecontrol.FieldCommitSha: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetCommitSha(v) - return nil - case sourcecontrol.FieldActor: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetActor(v) - return nil - case sourcecontrol.FieldEventName: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetEventName(v) - return nil - case sourcecontrol.FieldWorkflow: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetWorkflow(v) - return nil - case sourcecontrol.FieldRunID: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetRunID(v) - return nil - case sourcecontrol.FieldRunNumber: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetRunNumber(v) - return nil - case sourcecontrol.FieldJob: - v, ok := value.(string) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetJob(v) - return nil - case sourcecontrol.FieldAction: + case sourcecontrol.FieldRepoURL: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetAction(v) + m.SetRepoURL(v) return nil - case sourcecontrol.FieldRunnerName: + case sourcecontrol.FieldRef: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetRunnerName(v) + m.SetRef(v) return nil - case sourcecontrol.FieldRunnerArch: + case sourcecontrol.FieldRefURL: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetRunnerArch(v) + m.SetRefURL(v) return nil - case sourcecontrol.FieldRunnerOs: + case sourcecontrol.FieldCommit: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetRunnerOs(v) + m.SetCommit(v) return nil - case sourcecontrol.FieldWorkspace: + case sourcecontrol.FieldCommitURL: v, ok := value.(string) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetWorkspace(v) + m.SetCommitURL(v) return nil } return fmt.Errorf("unknown SourceControl field %s", name) @@ -22050,53 +22111,23 @@ func (m *SourceControlMutation) AddField(name string, value ent.Value) error { // mutation. func (m *SourceControlMutation) ClearedFields() []string { var fields []string - if m.FieldCleared(sourcecontrol.FieldProvider) { - fields = append(fields, sourcecontrol.FieldProvider) - } - if m.FieldCleared(sourcecontrol.FieldInstanceURL) { - fields = append(fields, sourcecontrol.FieldInstanceURL) - } if m.FieldCleared(sourcecontrol.FieldRepo) { fields = append(fields, sourcecontrol.FieldRepo) } - if m.FieldCleared(sourcecontrol.FieldRefs) { - fields = append(fields, sourcecontrol.FieldRefs) - } - if m.FieldCleared(sourcecontrol.FieldCommitSha) { - fields = append(fields, sourcecontrol.FieldCommitSha) - } - if m.FieldCleared(sourcecontrol.FieldActor) { - fields = append(fields, sourcecontrol.FieldActor) - } - if m.FieldCleared(sourcecontrol.FieldEventName) { - fields = append(fields, sourcecontrol.FieldEventName) - } - if m.FieldCleared(sourcecontrol.FieldWorkflow) { - fields = append(fields, sourcecontrol.FieldWorkflow) + if m.FieldCleared(sourcecontrol.FieldRepoURL) { + fields = append(fields, sourcecontrol.FieldRepoURL) } - if m.FieldCleared(sourcecontrol.FieldRunID) { - fields = append(fields, sourcecontrol.FieldRunID) + if m.FieldCleared(sourcecontrol.FieldRef) { + fields = append(fields, sourcecontrol.FieldRef) } - if m.FieldCleared(sourcecontrol.FieldRunNumber) { - fields = append(fields, sourcecontrol.FieldRunNumber) + if m.FieldCleared(sourcecontrol.FieldRefURL) { + fields = append(fields, sourcecontrol.FieldRefURL) } - if m.FieldCleared(sourcecontrol.FieldJob) { - fields = append(fields, sourcecontrol.FieldJob) + if m.FieldCleared(sourcecontrol.FieldCommit) { + fields = append(fields, sourcecontrol.FieldCommit) } - if m.FieldCleared(sourcecontrol.FieldAction) { - fields = append(fields, sourcecontrol.FieldAction) - } - if m.FieldCleared(sourcecontrol.FieldRunnerName) { - fields = append(fields, sourcecontrol.FieldRunnerName) - } - if m.FieldCleared(sourcecontrol.FieldRunnerArch) { - fields = append(fields, sourcecontrol.FieldRunnerArch) - } - if m.FieldCleared(sourcecontrol.FieldRunnerOs) { - fields = append(fields, sourcecontrol.FieldRunnerOs) - } - if m.FieldCleared(sourcecontrol.FieldWorkspace) { - fields = append(fields, sourcecontrol.FieldWorkspace) + if m.FieldCleared(sourcecontrol.FieldCommitURL) { + fields = append(fields, sourcecontrol.FieldCommitURL) } return fields } @@ -22112,53 +22143,23 @@ func (m *SourceControlMutation) FieldCleared(name string) bool { // error if the field is not defined in the schema. func (m *SourceControlMutation) ClearField(name string) error { switch name { - case sourcecontrol.FieldProvider: - m.ClearProvider() - return nil - case sourcecontrol.FieldInstanceURL: - m.ClearInstanceURL() - return nil case sourcecontrol.FieldRepo: m.ClearRepo() return nil - case sourcecontrol.FieldRefs: - m.ClearRefs() - return nil - case sourcecontrol.FieldCommitSha: - m.ClearCommitSha() - return nil - case sourcecontrol.FieldActor: - m.ClearActor() + case sourcecontrol.FieldRepoURL: + m.ClearRepoURL() return nil - case sourcecontrol.FieldEventName: - m.ClearEventName() + case sourcecontrol.FieldRef: + m.ClearRef() return nil - case sourcecontrol.FieldWorkflow: - m.ClearWorkflow() + case sourcecontrol.FieldRefURL: + m.ClearRefURL() return nil - case sourcecontrol.FieldRunID: - m.ClearRunID() + case sourcecontrol.FieldCommit: + m.ClearCommit() return nil - case sourcecontrol.FieldRunNumber: - m.ClearRunNumber() - return nil - case sourcecontrol.FieldJob: - m.ClearJob() - return nil - case sourcecontrol.FieldAction: - m.ClearAction() - return nil - case sourcecontrol.FieldRunnerName: - m.ClearRunnerName() - return nil - case sourcecontrol.FieldRunnerArch: - m.ClearRunnerArch() - return nil - case sourcecontrol.FieldRunnerOs: - m.ClearRunnerOs() - return nil - case sourcecontrol.FieldWorkspace: - m.ClearWorkspace() + case sourcecontrol.FieldCommitURL: + m.ClearCommitURL() return nil } return fmt.Errorf("unknown SourceControl nullable field %s", name) @@ -22168,53 +22169,23 @@ func (m *SourceControlMutation) ClearField(name string) error { // It returns an error if the field is not defined in the schema. func (m *SourceControlMutation) ResetField(name string) error { switch name { - case sourcecontrol.FieldProvider: - m.ResetProvider() - return nil - case sourcecontrol.FieldInstanceURL: - m.ResetInstanceURL() - return nil case sourcecontrol.FieldRepo: m.ResetRepo() return nil - case sourcecontrol.FieldRefs: - m.ResetRefs() - return nil - case sourcecontrol.FieldCommitSha: - m.ResetCommitSha() - return nil - case sourcecontrol.FieldActor: - m.ResetActor() - return nil - case sourcecontrol.FieldEventName: - m.ResetEventName() - return nil - case sourcecontrol.FieldWorkflow: - m.ResetWorkflow() - return nil - case sourcecontrol.FieldRunID: - m.ResetRunID() - return nil - case sourcecontrol.FieldRunNumber: - m.ResetRunNumber() - return nil - case sourcecontrol.FieldJob: - m.ResetJob() - return nil - case sourcecontrol.FieldAction: - m.ResetAction() + case sourcecontrol.FieldRepoURL: + m.ResetRepoURL() return nil - case sourcecontrol.FieldRunnerName: - m.ResetRunnerName() + case sourcecontrol.FieldRef: + m.ResetRef() return nil - case sourcecontrol.FieldRunnerArch: - m.ResetRunnerArch() + case sourcecontrol.FieldRefURL: + m.ResetRefURL() return nil - case sourcecontrol.FieldRunnerOs: - m.ResetRunnerOs() + case sourcecontrol.FieldCommit: + m.ResetCommit() return nil - case sourcecontrol.FieldWorkspace: - m.ResetWorkspace() + case sourcecontrol.FieldCommitURL: + m.ResetCommitURL() return nil } return fmt.Errorf("unknown SourceControl field %s", name) diff --git a/ent/gen/ent/predicate/predicate.go b/ent/gen/ent/predicate/predicate.go index 74b63896..87ee030b 100644 --- a/ent/gen/ent/predicate/predicate.go +++ b/ent/gen/ent/predicate/predicate.go @@ -36,6 +36,9 @@ type BuildGraphMetrics func(*sql.Selector) // BuildLogChunk is the predicate function for buildlogchunk builders. type BuildLogChunk func(*sql.Selector) +// BuildTag is the predicate function for buildtag builders. +type BuildTag func(*sql.Selector) + // Configuration is the predicate function for configuration builders. type Configuration func(*sql.Selector) @@ -57,6 +60,9 @@ type InstanceName func(*sql.Selector) // InvocationFiles is the predicate function for invocationfiles builders. type InvocationFiles func(*sql.Selector) +// InvocationTag is the predicate function for invocationtag builders. +type InvocationTag func(*sql.Selector) + // InvocationTarget is the predicate function for invocationtarget builders. type InvocationTarget func(*sql.Selector) diff --git a/ent/gen/ent/privacy/privacy.go b/ent/gen/ent/privacy/privacy.go index bb885eba..a8efc4f7 100644 --- a/ent/gen/ent/privacy/privacy.go +++ b/ent/gen/ent/privacy/privacy.go @@ -351,6 +351,30 @@ func (f BuildLogChunkMutationRuleFunc) EvalMutation(ctx context.Context, m ent.M return Denyf("ent/privacy: unexpected mutation type %T, expect *ent.BuildLogChunkMutation", m) } +// The BuildTagQueryRuleFunc type is an adapter to allow the use of ordinary +// functions as a query rule. +type BuildTagQueryRuleFunc func(context.Context, *ent.BuildTagQuery) error + +// EvalQuery return f(ctx, q). +func (f BuildTagQueryRuleFunc) EvalQuery(ctx context.Context, q ent.Query) error { + if q, ok := q.(*ent.BuildTagQuery); ok { + return f(ctx, q) + } + return Denyf("ent/privacy: unexpected query type %T, expect *ent.BuildTagQuery", q) +} + +// The BuildTagMutationRuleFunc type is an adapter to allow the use of ordinary +// functions as a mutation rule. +type BuildTagMutationRuleFunc func(context.Context, *ent.BuildTagMutation) error + +// EvalMutation calls f(ctx, m). +func (f BuildTagMutationRuleFunc) EvalMutation(ctx context.Context, m ent.Mutation) error { + if m, ok := m.(*ent.BuildTagMutation); ok { + return f(ctx, m) + } + return Denyf("ent/privacy: unexpected mutation type %T, expect *ent.BuildTagMutation", m) +} + // The ConfigurationQueryRuleFunc type is an adapter to allow the use of ordinary // functions as a query rule. type ConfigurationQueryRuleFunc func(context.Context, *ent.ConfigurationQuery) error @@ -519,6 +543,30 @@ func (f InvocationFilesMutationRuleFunc) EvalMutation(ctx context.Context, m ent return Denyf("ent/privacy: unexpected mutation type %T, expect *ent.InvocationFilesMutation", m) } +// The InvocationTagQueryRuleFunc type is an adapter to allow the use of ordinary +// functions as a query rule. +type InvocationTagQueryRuleFunc func(context.Context, *ent.InvocationTagQuery) error + +// EvalQuery return f(ctx, q). +func (f InvocationTagQueryRuleFunc) EvalQuery(ctx context.Context, q ent.Query) error { + if q, ok := q.(*ent.InvocationTagQuery); ok { + return f(ctx, q) + } + return Denyf("ent/privacy: unexpected query type %T, expect *ent.InvocationTagQuery", q) +} + +// The InvocationTagMutationRuleFunc type is an adapter to allow the use of ordinary +// functions as a mutation rule. +type InvocationTagMutationRuleFunc func(context.Context, *ent.InvocationTagMutation) error + +// EvalMutation calls f(ctx, m). +func (f InvocationTagMutationRuleFunc) EvalMutation(ctx context.Context, m ent.Mutation) error { + if m, ok := m.(*ent.InvocationTagMutation); ok { + return f(ctx, m) + } + return Denyf("ent/privacy: unexpected mutation type %T, expect *ent.InvocationTagMutation", m) +} + // The InvocationTargetQueryRuleFunc type is an adapter to allow the use of ordinary // functions as a query rule. type InvocationTargetQueryRuleFunc func(context.Context, *ent.InvocationTargetQuery) error @@ -934,6 +982,8 @@ func queryFilter(q ent.Query) (Filter, error) { return q.Filter(), nil case *ent.BuildLogChunkQuery: return q.Filter(), nil + case *ent.BuildTagQuery: + return q.Filter(), nil case *ent.ConfigurationQuery: return q.Filter(), nil case *ent.ConnectionMetadataQuery: @@ -948,6 +998,8 @@ func queryFilter(q ent.Query) (Filter, error) { return q.Filter(), nil case *ent.InvocationFilesQuery: return q.Filter(), nil + case *ent.InvocationTagQuery: + return q.Filter(), nil case *ent.InvocationTargetQuery: return q.Filter(), nil case *ent.MemoryMetricsQuery: @@ -1005,6 +1057,8 @@ func mutationFilter(m ent.Mutation) (Filter, error) { return m.Filter(), nil case *ent.BuildLogChunkMutation: return m.Filter(), nil + case *ent.BuildTagMutation: + return m.Filter(), nil case *ent.ConfigurationMutation: return m.Filter(), nil case *ent.ConnectionMetadataMutation: @@ -1019,6 +1073,8 @@ func mutationFilter(m ent.Mutation) (Filter, error) { return m.Filter(), nil case *ent.InvocationFilesMutation: return m.Filter(), nil + case *ent.InvocationTagMutation: + return m.Filter(), nil case *ent.InvocationTargetMutation: return m.Filter(), nil case *ent.MemoryMetricsMutation: diff --git a/ent/gen/ent/runtime/runtime.go b/ent/gen/ent/runtime/runtime.go index 49c99de8..889850cb 100644 --- a/ent/gen/ent/runtime/runtime.go +++ b/ent/gen/ent/runtime/runtime.go @@ -43,23 +43,23 @@ func init() { bazelinvocationFields := authschema.BazelInvocation{}.Fields() _ = bazelinvocationFields // bazelinvocationDescBepCompleted is the schema descriptor for bep_completed field. - bazelinvocationDescBepCompleted := bazelinvocationFields[6].Descriptor() + bazelinvocationDescBepCompleted := bazelinvocationFields[4].Descriptor() // bazelinvocation.DefaultBepCompleted holds the default value on creation for the bep_completed field. bazelinvocation.DefaultBepCompleted = bazelinvocationDescBepCompleted.Default.(bool) // bazelinvocationDescProcessedEventStarted is the schema descriptor for processed_event_started field. - bazelinvocationDescProcessedEventStarted := bazelinvocationFields[20].Descriptor() + bazelinvocationDescProcessedEventStarted := bazelinvocationFields[15].Descriptor() // bazelinvocation.DefaultProcessedEventStarted holds the default value on creation for the processed_event_started field. bazelinvocation.DefaultProcessedEventStarted = bazelinvocationDescProcessedEventStarted.Default.(bool) // bazelinvocationDescProcessedEventBuildMetadata is the schema descriptor for processed_event_build_metadata field. - bazelinvocationDescProcessedEventBuildMetadata := bazelinvocationFields[21].Descriptor() + bazelinvocationDescProcessedEventBuildMetadata := bazelinvocationFields[16].Descriptor() // bazelinvocation.DefaultProcessedEventBuildMetadata holds the default value on creation for the processed_event_build_metadata field. bazelinvocation.DefaultProcessedEventBuildMetadata = bazelinvocationDescProcessedEventBuildMetadata.Default.(bool) // bazelinvocationDescProcessedEventBuildFinished is the schema descriptor for processed_event_build_finished field. - bazelinvocationDescProcessedEventBuildFinished := bazelinvocationFields[22].Descriptor() + bazelinvocationDescProcessedEventBuildFinished := bazelinvocationFields[17].Descriptor() // bazelinvocation.DefaultProcessedEventBuildFinished holds the default value on creation for the processed_event_build_finished field. bazelinvocation.DefaultProcessedEventBuildFinished = bazelinvocationDescProcessedEventBuildFinished.Default.(bool) // bazelinvocationDescProcessedEventWorkspaceStatus is the schema descriptor for processed_event_workspace_status field. - bazelinvocationDescProcessedEventWorkspaceStatus := bazelinvocationFields[23].Descriptor() + bazelinvocationDescProcessedEventWorkspaceStatus := bazelinvocationFields[18].Descriptor() // bazelinvocation.DefaultProcessedEventWorkspaceStatus holds the default value on creation for the processed_event_workspace_status field. bazelinvocation.DefaultProcessedEventWorkspaceStatus = bazelinvocationDescProcessedEventWorkspaceStatus.Default.(bool) build.Policy = privacy.NewPolicies(authschema.Build{}) diff --git a/ent/gen/ent/schema-viz.html b/ent/gen/ent/schema-viz.html index 06eb303b..6baa521a 100644 --- a/ent/gen/ent/schema-viz.html +++ b/ent/gen/ent/schema-viz.html @@ -70,7 +70,7 @@ } - const entGraph = JSON.parse("{\"nodes\":[{\"id\":\"Action\",\"fields\":[{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"},{\"name\":\"configuration_id\",\"type\":\"int64\"},{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"type\",\"type\":\"string\"},{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"exit_code\",\"type\":\"int32\"},{\"name\":\"command_line\",\"type\":\"[]string\"},{\"name\":\"start_time\",\"type\":\"time.Time\"},{\"name\":\"end_time\",\"type\":\"time.Time\"},{\"name\":\"failure_code\",\"type\":\"string\"},{\"name\":\"failure_message\",\"type\":\"string\"},{\"name\":\"stdout_hash\",\"type\":\"string\"},{\"name\":\"stdout_size_bytes\",\"type\":\"int64\"},{\"name\":\"stdout_hash_function\",\"type\":\"string\"},{\"name\":\"stderr_hash\",\"type\":\"string\"},{\"name\":\"stderr_size_bytes\",\"type\":\"int64\"},{\"name\":\"stderr_hash_function\",\"type\":\"string\"}]},{\"id\":\"ActionCacheStatistics\",\"fields\":[{\"name\":\"size_in_bytes\",\"type\":\"uint64\"},{\"name\":\"save_time_in_ms\",\"type\":\"uint64\"},{\"name\":\"load_time_in_ms\",\"type\":\"int64\"},{\"name\":\"hits\",\"type\":\"int32\"},{\"name\":\"misses\",\"type\":\"int32\"}]},{\"id\":\"ActionData\",\"fields\":[{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"first_started_ms\",\"type\":\"int64\"},{\"name\":\"last_ended_ms\",\"type\":\"int64\"},{\"name\":\"system_time\",\"type\":\"int64\"},{\"name\":\"user_time\",\"type\":\"int64\"}]},{\"id\":\"ActionSummary\",\"fields\":[{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"actions_created_not_including_aspects\",\"type\":\"int64\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"remote_cache_hits\",\"type\":\"int64\"}]},{\"id\":\"ArtifactMetrics\",\"fields\":[{\"name\":\"source_artifacts_read_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"source_artifacts_read_count\",\"type\":\"int32\"},{\"name\":\"output_artifacts_seen_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"output_artifacts_seen_count\",\"type\":\"int32\"},{\"name\":\"output_artifacts_from_action_cache_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"output_artifacts_from_action_cache_count\",\"type\":\"int32\"},{\"name\":\"top_level_artifacts_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"top_level_artifacts_count\",\"type\":\"int32\"}]},{\"id\":\"AuthenticatedUser\",\"fields\":[{\"name\":\"user_uuid\",\"type\":\"uuid.UUID\"},{\"name\":\"external_id\",\"type\":\"string\"},{\"name\":\"display_name\",\"type\":\"string\"},{\"name\":\"user_info\",\"type\":\"map[string]interface {}\"}]},{\"id\":\"BazelInvocation\",\"fields\":[{\"name\":\"invocation_id\",\"type\":\"uuid.UUID\"},{\"name\":\"created_timestamp\",\"type\":\"time.Time\"},{\"name\":\"started_at\",\"type\":\"time.Time\"},{\"name\":\"ended_at\",\"type\":\"time.Time\"},{\"name\":\"change_number\",\"type\":\"int\"},{\"name\":\"patchset_number\",\"type\":\"int\"},{\"name\":\"bep_completed\",\"type\":\"bool\"},{\"name\":\"step_label\",\"type\":\"string\"},{\"name\":\"user_email\",\"type\":\"string\"},{\"name\":\"user_ldap\",\"type\":\"string\"},{\"name\":\"hostname\",\"type\":\"string\"},{\"name\":\"is_ci_worker\",\"type\":\"bool\"},{\"name\":\"num_fetches\",\"type\":\"int64\"},{\"name\":\"profile_name\",\"type\":\"string\"},{\"name\":\"bazel_version\",\"type\":\"string\"},{\"name\":\"exit_code_name\",\"type\":\"string\"},{\"name\":\"exit_code_code\",\"type\":\"int32\"},{\"name\":\"canonical_command_line\",\"type\":\"*invocation.CommandLineData\"},{\"name\":\"original_command_line\",\"type\":\"*invocation.CommandLineData\"},{\"name\":\"options_parsed\",\"type\":\"*invocation.ParsedCommandLineOptions\"},{\"name\":\"processed_event_started\",\"type\":\"bool\"},{\"name\":\"processed_event_build_metadata\",\"type\":\"bool\"},{\"name\":\"processed_event_build_finished\",\"type\":\"bool\"},{\"name\":\"processed_event_workspace_status\",\"type\":\"bool\"}]},{\"id\":\"Build\",\"fields\":[{\"name\":\"build_url\",\"type\":\"string\"},{\"name\":\"build_uuid\",\"type\":\"uuid.UUID\"},{\"name\":\"timestamp\",\"type\":\"time.Time\"}]},{\"id\":\"BuildGraphMetrics\",\"fields\":[{\"name\":\"action_lookup_value_count\",\"type\":\"int32\"},{\"name\":\"action_lookup_value_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"action_count\",\"type\":\"int32\"},{\"name\":\"action_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"input_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"other_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_artifact_count\",\"type\":\"int32\"},{\"name\":\"post_invocation_skyframe_node_count\",\"type\":\"int32\"}]},{\"id\":\"BuildLogChunk\",\"fields\":[{\"name\":\"data\",\"type\":\"[]byte\"},{\"name\":\"chunk_index\",\"type\":\"int\"},{\"name\":\"first_line_index\",\"type\":\"int64\"},{\"name\":\"last_line_index\",\"type\":\"int64\"}]},{\"id\":\"Configuration\",\"fields\":[{\"name\":\"configuration_id\",\"type\":\"string\"},{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"platform_name\",\"type\":\"string\"},{\"name\":\"cpu\",\"type\":\"string\"},{\"name\":\"make_variables\",\"type\":\"map[string]string\"},{\"name\":\"is_tool\",\"type\":\"bool\"},{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"}]},{\"id\":\"ConnectionMetadata\",\"fields\":[{\"name\":\"connection_last_open_at\",\"type\":\"time.Time\"}]},{\"id\":\"EventMetadata\",\"fields\":[{\"name\":\"handled\",\"type\":\"[]byte\"},{\"name\":\"event_received_at\",\"type\":\"time.Time\"},{\"name\":\"version\",\"type\":\"int64\"},{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"}]},{\"id\":\"GarbageMetrics\",\"fields\":[{\"name\":\"type\",\"type\":\"string\"},{\"name\":\"garbage_collected\",\"type\":\"int64\"}]},{\"id\":\"IncompleteBuildLog\",\"fields\":[{\"name\":\"snippet_id\",\"type\":\"int32\"},{\"name\":\"log_snippet\",\"type\":\"[]byte\"},{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"}]},{\"id\":\"InstanceName\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"}]},{\"id\":\"InvocationFiles\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"content\",\"type\":\"string\"},{\"name\":\"digest\",\"type\":\"string\"},{\"name\":\"size_bytes\",\"type\":\"int64\"},{\"name\":\"digest_function\",\"type\":\"string\"}]},{\"id\":\"InvocationTarget\",\"fields\":[{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"tags\",\"type\":\"[]string\"},{\"name\":\"start_time_in_ms\",\"type\":\"int64\"},{\"name\":\"end_time_in_ms\",\"type\":\"int64\"},{\"name\":\"duration_in_ms\",\"type\":\"int64\"},{\"name\":\"failure_message\",\"type\":\"string\"},{\"name\":\"abort_reason\",\"type\":\"invocationtarget.AbortReason\"}]},{\"id\":\"MemoryMetrics\",\"fields\":[{\"name\":\"peak_post_gc_heap_size\",\"type\":\"int64\"},{\"name\":\"used_heap_size_post_build\",\"type\":\"int64\"},{\"name\":\"peak_post_gc_tenured_space_heap_size\",\"type\":\"int64\"}]},{\"id\":\"Metrics\",\"fields\":null},{\"id\":\"MissDetail\",\"fields\":[{\"name\":\"reason\",\"type\":\"string\"},{\"name\":\"count\",\"type\":\"int32\"}]},{\"id\":\"NetworkMetrics\",\"fields\":null},{\"id\":\"RunnerCount\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"exec_kind\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"}]},{\"id\":\"SourceControl\",\"fields\":[{\"name\":\"provider\",\"type\":\"sourcecontrol.Provider\"},{\"name\":\"instance_url\",\"type\":\"string\"},{\"name\":\"repo\",\"type\":\"string\"},{\"name\":\"refs\",\"type\":\"string\"},{\"name\":\"commit_sha\",\"type\":\"string\"},{\"name\":\"actor\",\"type\":\"string\"},{\"name\":\"event_name\",\"type\":\"string\"},{\"name\":\"workflow\",\"type\":\"string\"},{\"name\":\"run_id\",\"type\":\"string\"},{\"name\":\"run_number\",\"type\":\"string\"},{\"name\":\"job\",\"type\":\"string\"},{\"name\":\"action\",\"type\":\"string\"},{\"name\":\"runner_name\",\"type\":\"string\"},{\"name\":\"runner_arch\",\"type\":\"string\"},{\"name\":\"runner_os\",\"type\":\"string\"},{\"name\":\"workspace\",\"type\":\"string\"}]},{\"id\":\"SystemNetworkStats\",\"fields\":[{\"name\":\"bytes_sent\",\"type\":\"uint64\"},{\"name\":\"bytes_recv\",\"type\":\"uint64\"},{\"name\":\"packets_sent\",\"type\":\"uint64\"},{\"name\":\"packets_recv\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_recv_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_recv_per_sec\",\"type\":\"uint64\"}]},{\"id\":\"Target\",\"fields\":[{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"aspect\",\"type\":\"string\"},{\"name\":\"target_kind\",\"type\":\"string\"}]},{\"id\":\"TargetKindMapping\",\"fields\":[{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"},{\"name\":\"target_id\",\"type\":\"int64\"},{\"name\":\"start_time_in_ms\",\"type\":\"int64\"}]},{\"id\":\"TargetMetrics\",\"fields\":[{\"name\":\"targets_loaded\",\"type\":\"int64\"},{\"name\":\"targets_configured\",\"type\":\"int64\"},{\"name\":\"targets_configured_not_including_aspects\",\"type\":\"int64\"}]},{\"id\":\"TestResult\",\"fields\":[{\"name\":\"run\",\"type\":\"int32\"},{\"name\":\"shard\",\"type\":\"int32\"},{\"name\":\"attempt\",\"type\":\"int32\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"status_details\",\"type\":\"string\"},{\"name\":\"cached_locally\",\"type\":\"bool\"},{\"name\":\"test_attempt_start\",\"type\":\"time.Time\"},{\"name\":\"test_attempt_duration_in_ms\",\"type\":\"int64\"},{\"name\":\"warning\",\"type\":\"[]string\"},{\"name\":\"strategy\",\"type\":\"string\"},{\"name\":\"cached_remotely\",\"type\":\"bool\"},{\"name\":\"exit_code\",\"type\":\"int32\"},{\"name\":\"hostname\",\"type\":\"string\"},{\"name\":\"timing_breakdown\",\"type\":\"map[string]interface {}\"}]},{\"id\":\"TestSummary\",\"fields\":[{\"name\":\"overall_status\",\"type\":\"string\"},{\"name\":\"total_run_count\",\"type\":\"int32\"},{\"name\":\"run_count\",\"type\":\"int32\"},{\"name\":\"attempt_count\",\"type\":\"int32\"},{\"name\":\"shard_count\",\"type\":\"int32\"},{\"name\":\"total_num_cached\",\"type\":\"int32\"},{\"name\":\"first_start_time\",\"type\":\"time.Time\"},{\"name\":\"last_stop_time\",\"type\":\"time.Time\"},{\"name\":\"total_run_duration_in_ms\",\"type\":\"int64\"}]},{\"id\":\"TestTarget\",\"fields\":[{\"name\":\"target_id\",\"type\":\"int64\"}]},{\"id\":\"TimingMetrics\",\"fields\":[{\"name\":\"cpu_time_in_ms\",\"type\":\"int64\"},{\"name\":\"wall_time_in_ms\",\"type\":\"int64\"},{\"name\":\"analysis_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"execution_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"actions_execution_start_in_ms\",\"type\":\"int64\"}]}],\"edges\":[{\"from\":\"Action\",\"to\":\"Configuration\",\"label\":\"configuration\"},{\"from\":\"ActionCacheStatistics\",\"to\":\"MissDetail\",\"label\":\"miss_details\"},{\"from\":\"ActionSummary\",\"to\":\"ActionData\",\"label\":\"action_data\"},{\"from\":\"ActionSummary\",\"to\":\"RunnerCount\",\"label\":\"runner_count\"},{\"from\":\"ActionSummary\",\"to\":\"ActionCacheStatistics\",\"label\":\"action_cache_statistics\"},{\"from\":\"AuthenticatedUser\",\"to\":\"BazelInvocation\",\"label\":\"bazel_invocations\"},{\"from\":\"BazelInvocation\",\"to\":\"EventMetadata\",\"label\":\"event_metadata\"},{\"from\":\"BazelInvocation\",\"to\":\"ConnectionMetadata\",\"label\":\"connection_metadata\"},{\"from\":\"BazelInvocation\",\"to\":\"Configuration\",\"label\":\"configurations\"},{\"from\":\"BazelInvocation\",\"to\":\"Action\",\"label\":\"actions\"},{\"from\":\"BazelInvocation\",\"to\":\"Metrics\",\"label\":\"metrics\"},{\"from\":\"BazelInvocation\",\"to\":\"IncompleteBuildLog\",\"label\":\"incomplete_build_logs\"},{\"from\":\"BazelInvocation\",\"to\":\"BuildLogChunk\",\"label\":\"build_log_chunks\"},{\"from\":\"BazelInvocation\",\"to\":\"InvocationFiles\",\"label\":\"invocation_files\"},{\"from\":\"BazelInvocation\",\"to\":\"InvocationTarget\",\"label\":\"invocation_targets\"},{\"from\":\"BazelInvocation\",\"to\":\"TargetKindMapping\",\"label\":\"target_kind_mappings\"},{\"from\":\"BazelInvocation\",\"to\":\"SourceControl\",\"label\":\"source_control\"},{\"from\":\"Build\",\"to\":\"BazelInvocation\",\"label\":\"invocations\"},{\"from\":\"InstanceName\",\"to\":\"BazelInvocation\",\"label\":\"bazel_invocations\"},{\"from\":\"InstanceName\",\"to\":\"Build\",\"label\":\"builds\"},{\"from\":\"InstanceName\",\"to\":\"Target\",\"label\":\"targets\"},{\"from\":\"InvocationTarget\",\"to\":\"Configuration\",\"label\":\"configuration\"},{\"from\":\"InvocationTarget\",\"to\":\"TestSummary\",\"label\":\"test_summary\"},{\"from\":\"MemoryMetrics\",\"to\":\"GarbageMetrics\",\"label\":\"garbage_metrics\"},{\"from\":\"Metrics\",\"to\":\"ActionSummary\",\"label\":\"action_summary\"},{\"from\":\"Metrics\",\"to\":\"MemoryMetrics\",\"label\":\"memory_metrics\"},{\"from\":\"Metrics\",\"to\":\"TargetMetrics\",\"label\":\"target_metrics\"},{\"from\":\"Metrics\",\"to\":\"TimingMetrics\",\"label\":\"timing_metrics\"},{\"from\":\"Metrics\",\"to\":\"ArtifactMetrics\",\"label\":\"artifact_metrics\"},{\"from\":\"Metrics\",\"to\":\"NetworkMetrics\",\"label\":\"network_metrics\"},{\"from\":\"Metrics\",\"to\":\"BuildGraphMetrics\",\"label\":\"build_graph_metrics\"},{\"from\":\"NetworkMetrics\",\"to\":\"SystemNetworkStats\",\"label\":\"system_network_stats\"},{\"from\":\"Target\",\"to\":\"InvocationTarget\",\"label\":\"invocation_targets\"},{\"from\":\"Target\",\"to\":\"TargetKindMapping\",\"label\":\"target_kind_mappings\"},{\"from\":\"Target\",\"to\":\"TestTarget\",\"label\":\"test_target\"},{\"from\":\"TestSummary\",\"to\":\"TestResult\",\"label\":\"test_results\"}]}"); + const entGraph = JSON.parse("{\"nodes\":[{\"id\":\"Action\",\"fields\":[{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"},{\"name\":\"configuration_id\",\"type\":\"int64\"},{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"type\",\"type\":\"string\"},{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"exit_code\",\"type\":\"int32\"},{\"name\":\"command_line\",\"type\":\"[]string\"},{\"name\":\"start_time\",\"type\":\"time.Time\"},{\"name\":\"end_time\",\"type\":\"time.Time\"},{\"name\":\"failure_code\",\"type\":\"string\"},{\"name\":\"failure_message\",\"type\":\"string\"},{\"name\":\"stdout_hash\",\"type\":\"string\"},{\"name\":\"stdout_size_bytes\",\"type\":\"int64\"},{\"name\":\"stdout_hash_function\",\"type\":\"string\"},{\"name\":\"stderr_hash\",\"type\":\"string\"},{\"name\":\"stderr_size_bytes\",\"type\":\"int64\"},{\"name\":\"stderr_hash_function\",\"type\":\"string\"}]},{\"id\":\"ActionCacheStatistics\",\"fields\":[{\"name\":\"size_in_bytes\",\"type\":\"uint64\"},{\"name\":\"save_time_in_ms\",\"type\":\"uint64\"},{\"name\":\"load_time_in_ms\",\"type\":\"int64\"},{\"name\":\"hits\",\"type\":\"int32\"},{\"name\":\"misses\",\"type\":\"int32\"}]},{\"id\":\"ActionData\",\"fields\":[{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"first_started_ms\",\"type\":\"int64\"},{\"name\":\"last_ended_ms\",\"type\":\"int64\"},{\"name\":\"system_time\",\"type\":\"int64\"},{\"name\":\"user_time\",\"type\":\"int64\"}]},{\"id\":\"ActionSummary\",\"fields\":[{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"actions_created_not_including_aspects\",\"type\":\"int64\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"remote_cache_hits\",\"type\":\"int64\"}]},{\"id\":\"ArtifactMetrics\",\"fields\":[{\"name\":\"source_artifacts_read_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"source_artifacts_read_count\",\"type\":\"int32\"},{\"name\":\"output_artifacts_seen_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"output_artifacts_seen_count\",\"type\":\"int32\"},{\"name\":\"output_artifacts_from_action_cache_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"output_artifacts_from_action_cache_count\",\"type\":\"int32\"},{\"name\":\"top_level_artifacts_size_in_bytes\",\"type\":\"int64\"},{\"name\":\"top_level_artifacts_count\",\"type\":\"int32\"}]},{\"id\":\"AuthenticatedUser\",\"fields\":[{\"name\":\"user_uuid\",\"type\":\"uuid.UUID\"},{\"name\":\"external_id\",\"type\":\"string\"},{\"name\":\"display_name\",\"type\":\"string\"},{\"name\":\"user_info\",\"type\":\"map[string]interface {}\"}]},{\"id\":\"BazelInvocation\",\"fields\":[{\"name\":\"invocation_id\",\"type\":\"uuid.UUID\"},{\"name\":\"created_timestamp\",\"type\":\"time.Time\"},{\"name\":\"started_at\",\"type\":\"time.Time\"},{\"name\":\"ended_at\",\"type\":\"time.Time\"},{\"name\":\"bep_completed\",\"type\":\"bool\"},{\"name\":\"username\",\"type\":\"string\"},{\"name\":\"hostname\",\"type\":\"string\"},{\"name\":\"num_fetches\",\"type\":\"int64\"},{\"name\":\"profile_name\",\"type\":\"string\"},{\"name\":\"bazel_version\",\"type\":\"string\"},{\"name\":\"exit_code_name\",\"type\":\"string\"},{\"name\":\"exit_code_code\",\"type\":\"int32\"},{\"name\":\"canonical_command_line\",\"type\":\"*invocation.CommandLineData\"},{\"name\":\"original_command_line\",\"type\":\"*invocation.CommandLineData\"},{\"name\":\"options_parsed\",\"type\":\"*invocation.ParsedCommandLineOptions\"},{\"name\":\"processed_event_started\",\"type\":\"bool\"},{\"name\":\"processed_event_build_metadata\",\"type\":\"bool\"},{\"name\":\"processed_event_build_finished\",\"type\":\"bool\"},{\"name\":\"processed_event_workspace_status\",\"type\":\"bool\"}]},{\"id\":\"Build\",\"fields\":[{\"name\":\"build_uuid\",\"type\":\"uuid.UUID\"},{\"name\":\"timestamp\",\"type\":\"time.Time\"}]},{\"id\":\"BuildGraphMetrics\",\"fields\":[{\"name\":\"action_lookup_value_count\",\"type\":\"int32\"},{\"name\":\"action_lookup_value_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"action_count\",\"type\":\"int32\"},{\"name\":\"action_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"input_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"other_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_artifact_count\",\"type\":\"int32\"},{\"name\":\"post_invocation_skyframe_node_count\",\"type\":\"int32\"}]},{\"id\":\"BuildLogChunk\",\"fields\":[{\"name\":\"data\",\"type\":\"[]byte\"},{\"name\":\"chunk_index\",\"type\":\"int\"},{\"name\":\"first_line_index\",\"type\":\"int64\"},{\"name\":\"last_line_index\",\"type\":\"int64\"}]},{\"id\":\"BuildTag\",\"fields\":[{\"name\":\"build_id\",\"type\":\"int64\"},{\"name\":\"key\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}]},{\"id\":\"Configuration\",\"fields\":[{\"name\":\"configuration_id\",\"type\":\"string\"},{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"platform_name\",\"type\":\"string\"},{\"name\":\"cpu\",\"type\":\"string\"},{\"name\":\"make_variables\",\"type\":\"map[string]string\"},{\"name\":\"is_tool\",\"type\":\"bool\"},{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"}]},{\"id\":\"ConnectionMetadata\",\"fields\":[{\"name\":\"connection_last_open_at\",\"type\":\"time.Time\"}]},{\"id\":\"EventMetadata\",\"fields\":[{\"name\":\"handled\",\"type\":\"[]byte\"},{\"name\":\"event_received_at\",\"type\":\"time.Time\"},{\"name\":\"version\",\"type\":\"int64\"},{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"}]},{\"id\":\"GarbageMetrics\",\"fields\":[{\"name\":\"type\",\"type\":\"string\"},{\"name\":\"garbage_collected\",\"type\":\"int64\"}]},{\"id\":\"IncompleteBuildLog\",\"fields\":[{\"name\":\"snippet_id\",\"type\":\"int32\"},{\"name\":\"log_snippet\",\"type\":\"[]byte\"},{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"}]},{\"id\":\"InstanceName\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"}]},{\"id\":\"InvocationFiles\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"content\",\"type\":\"string\"},{\"name\":\"digest\",\"type\":\"string\"},{\"name\":\"size_bytes\",\"type\":\"int64\"},{\"name\":\"digest_function\",\"type\":\"string\"}]},{\"id\":\"InvocationTag\",\"fields\":[{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"},{\"name\":\"key\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}]},{\"id\":\"InvocationTarget\",\"fields\":[{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"tags\",\"type\":\"[]string\"},{\"name\":\"start_time_in_ms\",\"type\":\"int64\"},{\"name\":\"end_time_in_ms\",\"type\":\"int64\"},{\"name\":\"duration_in_ms\",\"type\":\"int64\"},{\"name\":\"failure_message\",\"type\":\"string\"},{\"name\":\"abort_reason\",\"type\":\"invocationtarget.AbortReason\"}]},{\"id\":\"MemoryMetrics\",\"fields\":[{\"name\":\"peak_post_gc_heap_size\",\"type\":\"int64\"},{\"name\":\"used_heap_size_post_build\",\"type\":\"int64\"},{\"name\":\"peak_post_gc_tenured_space_heap_size\",\"type\":\"int64\"}]},{\"id\":\"Metrics\",\"fields\":null},{\"id\":\"MissDetail\",\"fields\":[{\"name\":\"reason\",\"type\":\"string\"},{\"name\":\"count\",\"type\":\"int32\"}]},{\"id\":\"NetworkMetrics\",\"fields\":null},{\"id\":\"RunnerCount\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"exec_kind\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"}]},{\"id\":\"SourceControl\",\"fields\":[{\"name\":\"repo\",\"type\":\"string\"},{\"name\":\"repo_url\",\"type\":\"string\"},{\"name\":\"ref\",\"type\":\"string\"},{\"name\":\"ref_url\",\"type\":\"string\"},{\"name\":\"commit\",\"type\":\"string\"},{\"name\":\"commit_url\",\"type\":\"string\"}]},{\"id\":\"SystemNetworkStats\",\"fields\":[{\"name\":\"bytes_sent\",\"type\":\"uint64\"},{\"name\":\"bytes_recv\",\"type\":\"uint64\"},{\"name\":\"packets_sent\",\"type\":\"uint64\"},{\"name\":\"packets_recv\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_recv_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_recv_per_sec\",\"type\":\"uint64\"}]},{\"id\":\"Target\",\"fields\":[{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"aspect\",\"type\":\"string\"},{\"name\":\"target_kind\",\"type\":\"string\"}]},{\"id\":\"TargetKindMapping\",\"fields\":[{\"name\":\"bazel_invocation_id\",\"type\":\"int64\"},{\"name\":\"target_id\",\"type\":\"int64\"},{\"name\":\"start_time_in_ms\",\"type\":\"int64\"}]},{\"id\":\"TargetMetrics\",\"fields\":[{\"name\":\"targets_loaded\",\"type\":\"int64\"},{\"name\":\"targets_configured\",\"type\":\"int64\"},{\"name\":\"targets_configured_not_including_aspects\",\"type\":\"int64\"}]},{\"id\":\"TestResult\",\"fields\":[{\"name\":\"run\",\"type\":\"int32\"},{\"name\":\"shard\",\"type\":\"int32\"},{\"name\":\"attempt\",\"type\":\"int32\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"status_details\",\"type\":\"string\"},{\"name\":\"cached_locally\",\"type\":\"bool\"},{\"name\":\"test_attempt_start\",\"type\":\"time.Time\"},{\"name\":\"test_attempt_duration_in_ms\",\"type\":\"int64\"},{\"name\":\"warning\",\"type\":\"[]string\"},{\"name\":\"strategy\",\"type\":\"string\"},{\"name\":\"cached_remotely\",\"type\":\"bool\"},{\"name\":\"exit_code\",\"type\":\"int32\"},{\"name\":\"hostname\",\"type\":\"string\"},{\"name\":\"timing_breakdown\",\"type\":\"map[string]interface {}\"}]},{\"id\":\"TestSummary\",\"fields\":[{\"name\":\"overall_status\",\"type\":\"string\"},{\"name\":\"total_run_count\",\"type\":\"int32\"},{\"name\":\"run_count\",\"type\":\"int32\"},{\"name\":\"attempt_count\",\"type\":\"int32\"},{\"name\":\"shard_count\",\"type\":\"int32\"},{\"name\":\"total_num_cached\",\"type\":\"int32\"},{\"name\":\"first_start_time\",\"type\":\"time.Time\"},{\"name\":\"last_stop_time\",\"type\":\"time.Time\"},{\"name\":\"total_run_duration_in_ms\",\"type\":\"int64\"}]},{\"id\":\"TestTarget\",\"fields\":[{\"name\":\"target_id\",\"type\":\"int64\"}]},{\"id\":\"TimingMetrics\",\"fields\":[{\"name\":\"cpu_time_in_ms\",\"type\":\"int64\"},{\"name\":\"wall_time_in_ms\",\"type\":\"int64\"},{\"name\":\"analysis_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"execution_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"actions_execution_start_in_ms\",\"type\":\"int64\"}]}],\"edges\":[{\"from\":\"Action\",\"to\":\"Configuration\",\"label\":\"configuration\"},{\"from\":\"ActionCacheStatistics\",\"to\":\"MissDetail\",\"label\":\"miss_details\"},{\"from\":\"ActionSummary\",\"to\":\"ActionData\",\"label\":\"action_data\"},{\"from\":\"ActionSummary\",\"to\":\"RunnerCount\",\"label\":\"runner_count\"},{\"from\":\"ActionSummary\",\"to\":\"ActionCacheStatistics\",\"label\":\"action_cache_statistics\"},{\"from\":\"AuthenticatedUser\",\"to\":\"BazelInvocation\",\"label\":\"bazel_invocations\"},{\"from\":\"BazelInvocation\",\"to\":\"InvocationTag\",\"label\":\"tags\"},{\"from\":\"BazelInvocation\",\"to\":\"EventMetadata\",\"label\":\"event_metadata\"},{\"from\":\"BazelInvocation\",\"to\":\"ConnectionMetadata\",\"label\":\"connection_metadata\"},{\"from\":\"BazelInvocation\",\"to\":\"Configuration\",\"label\":\"configurations\"},{\"from\":\"BazelInvocation\",\"to\":\"Action\",\"label\":\"actions\"},{\"from\":\"BazelInvocation\",\"to\":\"Metrics\",\"label\":\"metrics\"},{\"from\":\"BazelInvocation\",\"to\":\"IncompleteBuildLog\",\"label\":\"incomplete_build_logs\"},{\"from\":\"BazelInvocation\",\"to\":\"BuildLogChunk\",\"label\":\"build_log_chunks\"},{\"from\":\"BazelInvocation\",\"to\":\"InvocationFiles\",\"label\":\"invocation_files\"},{\"from\":\"BazelInvocation\",\"to\":\"InvocationTarget\",\"label\":\"invocation_targets\"},{\"from\":\"BazelInvocation\",\"to\":\"TargetKindMapping\",\"label\":\"target_kind_mappings\"},{\"from\":\"BazelInvocation\",\"to\":\"SourceControl\",\"label\":\"source_control\"},{\"from\":\"Build\",\"to\":\"BazelInvocation\",\"label\":\"invocations\"},{\"from\":\"Build\",\"to\":\"BuildTag\",\"label\":\"tags\"},{\"from\":\"InstanceName\",\"to\":\"BazelInvocation\",\"label\":\"bazel_invocations\"},{\"from\":\"InstanceName\",\"to\":\"Build\",\"label\":\"builds\"},{\"from\":\"InstanceName\",\"to\":\"Target\",\"label\":\"targets\"},{\"from\":\"InvocationTarget\",\"to\":\"Configuration\",\"label\":\"configuration\"},{\"from\":\"InvocationTarget\",\"to\":\"TestSummary\",\"label\":\"test_summary\"},{\"from\":\"MemoryMetrics\",\"to\":\"GarbageMetrics\",\"label\":\"garbage_metrics\"},{\"from\":\"Metrics\",\"to\":\"ActionSummary\",\"label\":\"action_summary\"},{\"from\":\"Metrics\",\"to\":\"MemoryMetrics\",\"label\":\"memory_metrics\"},{\"from\":\"Metrics\",\"to\":\"TargetMetrics\",\"label\":\"target_metrics\"},{\"from\":\"Metrics\",\"to\":\"TimingMetrics\",\"label\":\"timing_metrics\"},{\"from\":\"Metrics\",\"to\":\"ArtifactMetrics\",\"label\":\"artifact_metrics\"},{\"from\":\"Metrics\",\"to\":\"NetworkMetrics\",\"label\":\"network_metrics\"},{\"from\":\"Metrics\",\"to\":\"BuildGraphMetrics\",\"label\":\"build_graph_metrics\"},{\"from\":\"NetworkMetrics\",\"to\":\"SystemNetworkStats\",\"label\":\"system_network_stats\"},{\"from\":\"Target\",\"to\":\"InvocationTarget\",\"label\":\"invocation_targets\"},{\"from\":\"Target\",\"to\":\"TargetKindMapping\",\"label\":\"target_kind_mappings\"},{\"from\":\"Target\",\"to\":\"TestTarget\",\"label\":\"test_target\"},{\"from\":\"TestSummary\",\"to\":\"TestResult\",\"label\":\"test_results\"}]}"); const nodes = new vis.DataSet((entGraph.nodes || []).map(n => ({ id: n.id, diff --git a/ent/gen/ent/sourcecontrol.go b/ent/gen/ent/sourcecontrol.go index 73b74807..1a256b0e 100644 --- a/ent/gen/ent/sourcecontrol.go +++ b/ent/gen/ent/sourcecontrol.go @@ -17,38 +17,18 @@ type SourceControl struct { config `json:"-"` // ID of the ent. ID int64 `json:"id,omitempty"` - // Provider holds the value of the "provider" field. - Provider sourcecontrol.Provider `json:"provider,omitempty"` - // InstanceURL holds the value of the "instance_url" field. - InstanceURL string `json:"instance_url,omitempty"` // Repo holds the value of the "repo" field. Repo string `json:"repo,omitempty"` - // Refs holds the value of the "refs" field. - Refs string `json:"refs,omitempty"` - // CommitSha holds the value of the "commit_sha" field. - CommitSha string `json:"commit_sha,omitempty"` - // Actor holds the value of the "actor" field. - Actor string `json:"actor,omitempty"` - // EventName holds the value of the "event_name" field. - EventName string `json:"event_name,omitempty"` - // Workflow holds the value of the "workflow" field. - Workflow string `json:"workflow,omitempty"` - // RunID holds the value of the "run_id" field. - RunID string `json:"run_id,omitempty"` - // RunNumber holds the value of the "run_number" field. - RunNumber string `json:"run_number,omitempty"` - // Job holds the value of the "job" field. - Job string `json:"job,omitempty"` - // Action holds the value of the "action" field. - Action string `json:"action,omitempty"` - // RunnerName holds the value of the "runner_name" field. - RunnerName string `json:"runner_name,omitempty"` - // RunnerArch holds the value of the "runner_arch" field. - RunnerArch string `json:"runner_arch,omitempty"` - // RunnerOs holds the value of the "runner_os" field. - RunnerOs string `json:"runner_os,omitempty"` - // Workspace holds the value of the "workspace" field. - Workspace string `json:"workspace,omitempty"` + // RepoURL holds the value of the "repo_url" field. + RepoURL string `json:"repo_url,omitempty"` + // Ref holds the value of the "ref" field. + Ref string `json:"ref,omitempty"` + // RefURL holds the value of the "ref_url" field. + RefURL string `json:"ref_url,omitempty"` + // Commit holds the value of the "commit" field. + Commit string `json:"commit,omitempty"` + // CommitURL holds the value of the "commit_url" field. + CommitURL string `json:"commit_url,omitempty"` // Edges holds the relations/edges for other nodes in the graph. // The values are being populated by the SourceControlQuery when eager-loading is set. Edges SourceControlEdges `json:"edges"` @@ -85,7 +65,7 @@ func (*SourceControl) scanValues(columns []string) ([]any, error) { switch columns[i] { case sourcecontrol.FieldID: values[i] = new(sql.NullInt64) - case sourcecontrol.FieldProvider, sourcecontrol.FieldInstanceURL, sourcecontrol.FieldRepo, sourcecontrol.FieldRefs, sourcecontrol.FieldCommitSha, sourcecontrol.FieldActor, sourcecontrol.FieldEventName, sourcecontrol.FieldWorkflow, sourcecontrol.FieldRunID, sourcecontrol.FieldRunNumber, sourcecontrol.FieldJob, sourcecontrol.FieldAction, sourcecontrol.FieldRunnerName, sourcecontrol.FieldRunnerArch, sourcecontrol.FieldRunnerOs, sourcecontrol.FieldWorkspace: + case sourcecontrol.FieldRepo, sourcecontrol.FieldRepoURL, sourcecontrol.FieldRef, sourcecontrol.FieldRefURL, sourcecontrol.FieldCommit, sourcecontrol.FieldCommitURL: values[i] = new(sql.NullString) case sourcecontrol.ForeignKeys[0]: // bazel_invocation_source_control values[i] = new(sql.NullInt64) @@ -110,101 +90,41 @@ func (sc *SourceControl) assignValues(columns []string, values []any) error { return fmt.Errorf("unexpected type %T for field id", value) } sc.ID = int64(value.Int64) - case sourcecontrol.FieldProvider: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field provider", values[i]) - } else if value.Valid { - sc.Provider = sourcecontrol.Provider(value.String) - } - case sourcecontrol.FieldInstanceURL: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field instance_url", values[i]) - } else if value.Valid { - sc.InstanceURL = value.String - } case sourcecontrol.FieldRepo: if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field repo", values[i]) } else if value.Valid { sc.Repo = value.String } - case sourcecontrol.FieldRefs: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field refs", values[i]) - } else if value.Valid { - sc.Refs = value.String - } - case sourcecontrol.FieldCommitSha: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field commit_sha", values[i]) - } else if value.Valid { - sc.CommitSha = value.String - } - case sourcecontrol.FieldActor: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field actor", values[i]) - } else if value.Valid { - sc.Actor = value.String - } - case sourcecontrol.FieldEventName: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field event_name", values[i]) - } else if value.Valid { - sc.EventName = value.String - } - case sourcecontrol.FieldWorkflow: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field workflow", values[i]) - } else if value.Valid { - sc.Workflow = value.String - } - case sourcecontrol.FieldRunID: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field run_id", values[i]) - } else if value.Valid { - sc.RunID = value.String - } - case sourcecontrol.FieldRunNumber: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field run_number", values[i]) - } else if value.Valid { - sc.RunNumber = value.String - } - case sourcecontrol.FieldJob: - if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field job", values[i]) - } else if value.Valid { - sc.Job = value.String - } - case sourcecontrol.FieldAction: + case sourcecontrol.FieldRepoURL: if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field action", values[i]) + return fmt.Errorf("unexpected type %T for field repo_url", values[i]) } else if value.Valid { - sc.Action = value.String + sc.RepoURL = value.String } - case sourcecontrol.FieldRunnerName: + case sourcecontrol.FieldRef: if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field runner_name", values[i]) + return fmt.Errorf("unexpected type %T for field ref", values[i]) } else if value.Valid { - sc.RunnerName = value.String + sc.Ref = value.String } - case sourcecontrol.FieldRunnerArch: + case sourcecontrol.FieldRefURL: if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field runner_arch", values[i]) + return fmt.Errorf("unexpected type %T for field ref_url", values[i]) } else if value.Valid { - sc.RunnerArch = value.String + sc.RefURL = value.String } - case sourcecontrol.FieldRunnerOs: + case sourcecontrol.FieldCommit: if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field runner_os", values[i]) + return fmt.Errorf("unexpected type %T for field commit", values[i]) } else if value.Valid { - sc.RunnerOs = value.String + sc.Commit = value.String } - case sourcecontrol.FieldWorkspace: + case sourcecontrol.FieldCommitURL: if value, ok := values[i].(*sql.NullString); !ok { - return fmt.Errorf("unexpected type %T for field workspace", values[i]) + return fmt.Errorf("unexpected type %T for field commit_url", values[i]) } else if value.Valid { - sc.Workspace = value.String + sc.CommitURL = value.String } case sourcecontrol.ForeignKeys[0]: if value, ok := values[i].(*sql.NullInt64); !ok { @@ -254,53 +174,23 @@ func (sc *SourceControl) String() string { var builder strings.Builder builder.WriteString("SourceControl(") builder.WriteString(fmt.Sprintf("id=%v, ", sc.ID)) - builder.WriteString("provider=") - builder.WriteString(fmt.Sprintf("%v", sc.Provider)) - builder.WriteString(", ") - builder.WriteString("instance_url=") - builder.WriteString(sc.InstanceURL) - builder.WriteString(", ") builder.WriteString("repo=") builder.WriteString(sc.Repo) builder.WriteString(", ") - builder.WriteString("refs=") - builder.WriteString(sc.Refs) - builder.WriteString(", ") - builder.WriteString("commit_sha=") - builder.WriteString(sc.CommitSha) - builder.WriteString(", ") - builder.WriteString("actor=") - builder.WriteString(sc.Actor) - builder.WriteString(", ") - builder.WriteString("event_name=") - builder.WriteString(sc.EventName) - builder.WriteString(", ") - builder.WriteString("workflow=") - builder.WriteString(sc.Workflow) - builder.WriteString(", ") - builder.WriteString("run_id=") - builder.WriteString(sc.RunID) - builder.WriteString(", ") - builder.WriteString("run_number=") - builder.WriteString(sc.RunNumber) - builder.WriteString(", ") - builder.WriteString("job=") - builder.WriteString(sc.Job) - builder.WriteString(", ") - builder.WriteString("action=") - builder.WriteString(sc.Action) + builder.WriteString("repo_url=") + builder.WriteString(sc.RepoURL) builder.WriteString(", ") - builder.WriteString("runner_name=") - builder.WriteString(sc.RunnerName) + builder.WriteString("ref=") + builder.WriteString(sc.Ref) builder.WriteString(", ") - builder.WriteString("runner_arch=") - builder.WriteString(sc.RunnerArch) + builder.WriteString("ref_url=") + builder.WriteString(sc.RefURL) builder.WriteString(", ") - builder.WriteString("runner_os=") - builder.WriteString(sc.RunnerOs) + builder.WriteString("commit=") + builder.WriteString(sc.Commit) builder.WriteString(", ") - builder.WriteString("workspace=") - builder.WriteString(sc.Workspace) + builder.WriteString("commit_url=") + builder.WriteString(sc.CommitURL) builder.WriteByte(')') return builder.String() } diff --git a/ent/gen/ent/sourcecontrol/sourcecontrol.go b/ent/gen/ent/sourcecontrol/sourcecontrol.go index 3a6dc7e2..5596f8d9 100644 --- a/ent/gen/ent/sourcecontrol/sourcecontrol.go +++ b/ent/gen/ent/sourcecontrol/sourcecontrol.go @@ -3,10 +3,6 @@ package sourcecontrol import ( - "fmt" - "io" - "strconv" - "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" ) @@ -16,38 +12,18 @@ const ( Label = "source_control" // FieldID holds the string denoting the id field in the database. FieldID = "id" - // FieldProvider holds the string denoting the provider field in the database. - FieldProvider = "provider" - // FieldInstanceURL holds the string denoting the instance_url field in the database. - FieldInstanceURL = "instance_url" // FieldRepo holds the string denoting the repo field in the database. FieldRepo = "repo" - // FieldRefs holds the string denoting the refs field in the database. - FieldRefs = "refs" - // FieldCommitSha holds the string denoting the commit_sha field in the database. - FieldCommitSha = "commit_sha" - // FieldActor holds the string denoting the actor field in the database. - FieldActor = "actor" - // FieldEventName holds the string denoting the event_name field in the database. - FieldEventName = "event_name" - // FieldWorkflow holds the string denoting the workflow field in the database. - FieldWorkflow = "workflow" - // FieldRunID holds the string denoting the run_id field in the database. - FieldRunID = "run_id" - // FieldRunNumber holds the string denoting the run_number field in the database. - FieldRunNumber = "run_number" - // FieldJob holds the string denoting the job field in the database. - FieldJob = "job" - // FieldAction holds the string denoting the action field in the database. - FieldAction = "action" - // FieldRunnerName holds the string denoting the runner_name field in the database. - FieldRunnerName = "runner_name" - // FieldRunnerArch holds the string denoting the runner_arch field in the database. - FieldRunnerArch = "runner_arch" - // FieldRunnerOs holds the string denoting the runner_os field in the database. - FieldRunnerOs = "runner_os" - // FieldWorkspace holds the string denoting the workspace field in the database. - FieldWorkspace = "workspace" + // FieldRepoURL holds the string denoting the repo_url field in the database. + FieldRepoURL = "repo_url" + // FieldRef holds the string denoting the ref field in the database. + FieldRef = "ref" + // FieldRefURL holds the string denoting the ref_url field in the database. + FieldRefURL = "ref_url" + // FieldCommit holds the string denoting the commit field in the database. + FieldCommit = "commit" + // FieldCommitURL holds the string denoting the commit_url field in the database. + FieldCommitURL = "commit_url" // EdgeBazelInvocation holds the string denoting the bazel_invocation edge name in mutations. EdgeBazelInvocation = "bazel_invocation" // Table holds the table name of the sourcecontrol in the database. @@ -64,22 +40,12 @@ const ( // Columns holds all SQL columns for sourcecontrol fields. var Columns = []string{ FieldID, - FieldProvider, - FieldInstanceURL, FieldRepo, - FieldRefs, - FieldCommitSha, - FieldActor, - FieldEventName, - FieldWorkflow, - FieldRunID, - FieldRunNumber, - FieldJob, - FieldAction, - FieldRunnerName, - FieldRunnerArch, - FieldRunnerOs, - FieldWorkspace, + FieldRepoURL, + FieldRef, + FieldRefURL, + FieldCommit, + FieldCommitURL, } // ForeignKeys holds the SQL foreign-keys that are owned by the "source_controls" @@ -103,29 +69,6 @@ func ValidColumn(column string) bool { return false } -// Provider defines the type for the "provider" enum field. -type Provider string - -// Provider values. -const ( - ProviderGITHUB Provider = "GITHUB" - ProviderGITLAB Provider = "GITLAB" -) - -func (pr Provider) String() string { - return string(pr) -} - -// ProviderValidator is a validator for the "provider" field enum values. It is called by the builders before save. -func ProviderValidator(pr Provider) error { - switch pr { - case ProviderGITHUB, ProviderGITLAB: - return nil - default: - return fmt.Errorf("sourcecontrol: invalid enum value for provider field: %q", pr) - } -} - // OrderOption defines the ordering options for the SourceControl queries. type OrderOption func(*sql.Selector) @@ -134,84 +77,34 @@ func ByID(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldID, opts...).ToFunc() } -// ByProvider orders the results by the provider field. -func ByProvider(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldProvider, opts...).ToFunc() -} - -// ByInstanceURL orders the results by the instance_url field. -func ByInstanceURL(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldInstanceURL, opts...).ToFunc() -} - // ByRepo orders the results by the repo field. func ByRepo(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldRepo, opts...).ToFunc() } -// ByRefs orders the results by the refs field. -func ByRefs(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldRefs, opts...).ToFunc() -} - -// ByCommitSha orders the results by the commit_sha field. -func ByCommitSha(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldCommitSha, opts...).ToFunc() -} - -// ByActor orders the results by the actor field. -func ByActor(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldActor, opts...).ToFunc() +// ByRepoURL orders the results by the repo_url field. +func ByRepoURL(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldRepoURL, opts...).ToFunc() } -// ByEventName orders the results by the event_name field. -func ByEventName(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldEventName, opts...).ToFunc() +// ByRef orders the results by the ref field. +func ByRef(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldRef, opts...).ToFunc() } -// ByWorkflow orders the results by the workflow field. -func ByWorkflow(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldWorkflow, opts...).ToFunc() +// ByRefURL orders the results by the ref_url field. +func ByRefURL(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldRefURL, opts...).ToFunc() } -// ByRunID orders the results by the run_id field. -func ByRunID(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldRunID, opts...).ToFunc() +// ByCommit orders the results by the commit field. +func ByCommit(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldCommit, opts...).ToFunc() } -// ByRunNumber orders the results by the run_number field. -func ByRunNumber(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldRunNumber, opts...).ToFunc() -} - -// ByJob orders the results by the job field. -func ByJob(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldJob, opts...).ToFunc() -} - -// ByAction orders the results by the action field. -func ByAction(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldAction, opts...).ToFunc() -} - -// ByRunnerName orders the results by the runner_name field. -func ByRunnerName(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldRunnerName, opts...).ToFunc() -} - -// ByRunnerArch orders the results by the runner_arch field. -func ByRunnerArch(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldRunnerArch, opts...).ToFunc() -} - -// ByRunnerOs orders the results by the runner_os field. -func ByRunnerOs(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldRunnerOs, opts...).ToFunc() -} - -// ByWorkspace orders the results by the workspace field. -func ByWorkspace(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldWorkspace, opts...).ToFunc() +// ByCommitURL orders the results by the commit_url field. +func ByCommitURL(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldCommitURL, opts...).ToFunc() } // ByBazelInvocationField orders the results by bazel_invocation field. @@ -224,24 +117,6 @@ func newBazelInvocationStep() *sqlgraph.Step { return sqlgraph.NewStep( sqlgraph.From(Table, FieldID), sqlgraph.To(BazelInvocationInverseTable, FieldID), - sqlgraph.Edge(sqlgraph.O2O, true, BazelInvocationTable, BazelInvocationColumn), + sqlgraph.Edge(sqlgraph.M2O, true, BazelInvocationTable, BazelInvocationColumn), ) } - -// MarshalGQL implements graphql.Marshaler interface. -func (e Provider) MarshalGQL(w io.Writer) { - io.WriteString(w, strconv.Quote(e.String())) -} - -// UnmarshalGQL implements graphql.Unmarshaler interface. -func (e *Provider) UnmarshalGQL(val interface{}) error { - str, ok := val.(string) - if !ok { - return fmt.Errorf("enum %T must be a string", val) - } - *e = Provider(str) - if err := ProviderValidator(*e); err != nil { - return fmt.Errorf("%s is not a valid Provider", str) - } - return nil -} diff --git a/ent/gen/ent/sourcecontrol/where.go b/ent/gen/ent/sourcecontrol/where.go index 5362a243..afe21195 100644 --- a/ent/gen/ent/sourcecontrol/where.go +++ b/ent/gen/ent/sourcecontrol/where.go @@ -53,184 +53,34 @@ func IDLTE(id int64) predicate.SourceControl { return predicate.SourceControl(sql.FieldLTE(FieldID, id)) } -// InstanceURL applies equality check predicate on the "instance_url" field. It's identical to InstanceURLEQ. -func InstanceURL(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldInstanceURL, v)) -} - // Repo applies equality check predicate on the "repo" field. It's identical to RepoEQ. func Repo(v string) predicate.SourceControl { return predicate.SourceControl(sql.FieldEQ(FieldRepo, v)) } -// Refs applies equality check predicate on the "refs" field. It's identical to RefsEQ. -func Refs(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRefs, v)) -} - -// CommitSha applies equality check predicate on the "commit_sha" field. It's identical to CommitShaEQ. -func CommitSha(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldCommitSha, v)) -} - -// Actor applies equality check predicate on the "actor" field. It's identical to ActorEQ. -func Actor(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldActor, v)) -} - -// EventName applies equality check predicate on the "event_name" field. It's identical to EventNameEQ. -func EventName(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldEventName, v)) -} - -// Workflow applies equality check predicate on the "workflow" field. It's identical to WorkflowEQ. -func Workflow(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldWorkflow, v)) -} - -// RunID applies equality check predicate on the "run_id" field. It's identical to RunIDEQ. -func RunID(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunID, v)) -} - -// RunNumber applies equality check predicate on the "run_number" field. It's identical to RunNumberEQ. -func RunNumber(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunNumber, v)) -} - -// Job applies equality check predicate on the "job" field. It's identical to JobEQ. -func Job(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldJob, v)) -} - -// Action applies equality check predicate on the "action" field. It's identical to ActionEQ. -func Action(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldAction, v)) -} - -// RunnerName applies equality check predicate on the "runner_name" field. It's identical to RunnerNameEQ. -func RunnerName(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunnerName, v)) -} - -// RunnerArch applies equality check predicate on the "runner_arch" field. It's identical to RunnerArchEQ. -func RunnerArch(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunnerArch, v)) -} - -// RunnerOs applies equality check predicate on the "runner_os" field. It's identical to RunnerOsEQ. -func RunnerOs(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunnerOs, v)) -} - -// Workspace applies equality check predicate on the "workspace" field. It's identical to WorkspaceEQ. -func Workspace(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldWorkspace, v)) -} - -// ProviderEQ applies the EQ predicate on the "provider" field. -func ProviderEQ(v Provider) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldProvider, v)) -} - -// ProviderNEQ applies the NEQ predicate on the "provider" field. -func ProviderNEQ(v Provider) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldProvider, v)) -} - -// ProviderIn applies the In predicate on the "provider" field. -func ProviderIn(vs ...Provider) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldProvider, vs...)) -} - -// ProviderNotIn applies the NotIn predicate on the "provider" field. -func ProviderNotIn(vs ...Provider) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldProvider, vs...)) -} - -// ProviderIsNil applies the IsNil predicate on the "provider" field. -func ProviderIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldProvider)) -} - -// ProviderNotNil applies the NotNil predicate on the "provider" field. -func ProviderNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldProvider)) +// RepoURL applies equality check predicate on the "repo_url" field. It's identical to RepoURLEQ. +func RepoURL(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldRepoURL, v)) } -// InstanceURLEQ applies the EQ predicate on the "instance_url" field. -func InstanceURLEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldInstanceURL, v)) +// Ref applies equality check predicate on the "ref" field. It's identical to RefEQ. +func Ref(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldRef, v)) } -// InstanceURLNEQ applies the NEQ predicate on the "instance_url" field. -func InstanceURLNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldInstanceURL, v)) +// RefURL applies equality check predicate on the "ref_url" field. It's identical to RefURLEQ. +func RefURL(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldRefURL, v)) } -// InstanceURLIn applies the In predicate on the "instance_url" field. -func InstanceURLIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldInstanceURL, vs...)) +// Commit applies equality check predicate on the "commit" field. It's identical to CommitEQ. +func Commit(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldCommit, v)) } -// InstanceURLNotIn applies the NotIn predicate on the "instance_url" field. -func InstanceURLNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldInstanceURL, vs...)) -} - -// InstanceURLGT applies the GT predicate on the "instance_url" field. -func InstanceURLGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldInstanceURL, v)) -} - -// InstanceURLGTE applies the GTE predicate on the "instance_url" field. -func InstanceURLGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldInstanceURL, v)) -} - -// InstanceURLLT applies the LT predicate on the "instance_url" field. -func InstanceURLLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldInstanceURL, v)) -} - -// InstanceURLLTE applies the LTE predicate on the "instance_url" field. -func InstanceURLLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldInstanceURL, v)) -} - -// InstanceURLContains applies the Contains predicate on the "instance_url" field. -func InstanceURLContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldInstanceURL, v)) -} - -// InstanceURLHasPrefix applies the HasPrefix predicate on the "instance_url" field. -func InstanceURLHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldInstanceURL, v)) -} - -// InstanceURLHasSuffix applies the HasSuffix predicate on the "instance_url" field. -func InstanceURLHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldInstanceURL, v)) -} - -// InstanceURLIsNil applies the IsNil predicate on the "instance_url" field. -func InstanceURLIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldInstanceURL)) -} - -// InstanceURLNotNil applies the NotNil predicate on the "instance_url" field. -func InstanceURLNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldInstanceURL)) -} - -// InstanceURLEqualFold applies the EqualFold predicate on the "instance_url" field. -func InstanceURLEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldInstanceURL, v)) -} - -// InstanceURLContainsFold applies the ContainsFold predicate on the "instance_url" field. -func InstanceURLContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldInstanceURL, v)) +// CommitURL applies equality check predicate on the "commit_url" field. It's identical to CommitURLEQ. +func CommitURL(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldCommitURL, v)) } // RepoEQ applies the EQ predicate on the "repo" field. @@ -308,979 +158,379 @@ func RepoContainsFold(v string) predicate.SourceControl { return predicate.SourceControl(sql.FieldContainsFold(FieldRepo, v)) } -// RefsEQ applies the EQ predicate on the "refs" field. -func RefsEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRefs, v)) -} - -// RefsNEQ applies the NEQ predicate on the "refs" field. -func RefsNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldRefs, v)) -} - -// RefsIn applies the In predicate on the "refs" field. -func RefsIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldRefs, vs...)) -} - -// RefsNotIn applies the NotIn predicate on the "refs" field. -func RefsNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldRefs, vs...)) -} - -// RefsGT applies the GT predicate on the "refs" field. -func RefsGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldRefs, v)) -} - -// RefsGTE applies the GTE predicate on the "refs" field. -func RefsGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldRefs, v)) -} - -// RefsLT applies the LT predicate on the "refs" field. -func RefsLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldRefs, v)) -} - -// RefsLTE applies the LTE predicate on the "refs" field. -func RefsLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldRefs, v)) -} - -// RefsContains applies the Contains predicate on the "refs" field. -func RefsContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldRefs, v)) -} - -// RefsHasPrefix applies the HasPrefix predicate on the "refs" field. -func RefsHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldRefs, v)) -} - -// RefsHasSuffix applies the HasSuffix predicate on the "refs" field. -func RefsHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldRefs, v)) -} - -// RefsIsNil applies the IsNil predicate on the "refs" field. -func RefsIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldRefs)) -} - -// RefsNotNil applies the NotNil predicate on the "refs" field. -func RefsNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldRefs)) -} - -// RefsEqualFold applies the EqualFold predicate on the "refs" field. -func RefsEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldRefs, v)) -} - -// RefsContainsFold applies the ContainsFold predicate on the "refs" field. -func RefsContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldRefs, v)) -} - -// CommitShaEQ applies the EQ predicate on the "commit_sha" field. -func CommitShaEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldCommitSha, v)) -} - -// CommitShaNEQ applies the NEQ predicate on the "commit_sha" field. -func CommitShaNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldCommitSha, v)) -} - -// CommitShaIn applies the In predicate on the "commit_sha" field. -func CommitShaIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldCommitSha, vs...)) -} - -// CommitShaNotIn applies the NotIn predicate on the "commit_sha" field. -func CommitShaNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldCommitSha, vs...)) -} - -// CommitShaGT applies the GT predicate on the "commit_sha" field. -func CommitShaGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldCommitSha, v)) -} - -// CommitShaGTE applies the GTE predicate on the "commit_sha" field. -func CommitShaGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldCommitSha, v)) -} - -// CommitShaLT applies the LT predicate on the "commit_sha" field. -func CommitShaLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldCommitSha, v)) -} - -// CommitShaLTE applies the LTE predicate on the "commit_sha" field. -func CommitShaLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldCommitSha, v)) -} - -// CommitShaContains applies the Contains predicate on the "commit_sha" field. -func CommitShaContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldCommitSha, v)) -} - -// CommitShaHasPrefix applies the HasPrefix predicate on the "commit_sha" field. -func CommitShaHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldCommitSha, v)) -} - -// CommitShaHasSuffix applies the HasSuffix predicate on the "commit_sha" field. -func CommitShaHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldCommitSha, v)) -} - -// CommitShaIsNil applies the IsNil predicate on the "commit_sha" field. -func CommitShaIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldCommitSha)) -} - -// CommitShaNotNil applies the NotNil predicate on the "commit_sha" field. -func CommitShaNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldCommitSha)) -} - -// CommitShaEqualFold applies the EqualFold predicate on the "commit_sha" field. -func CommitShaEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldCommitSha, v)) -} - -// CommitShaContainsFold applies the ContainsFold predicate on the "commit_sha" field. -func CommitShaContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldCommitSha, v)) -} - -// ActorEQ applies the EQ predicate on the "actor" field. -func ActorEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldActor, v)) -} - -// ActorNEQ applies the NEQ predicate on the "actor" field. -func ActorNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldActor, v)) -} - -// ActorIn applies the In predicate on the "actor" field. -func ActorIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldActor, vs...)) -} - -// ActorNotIn applies the NotIn predicate on the "actor" field. -func ActorNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldActor, vs...)) -} - -// ActorGT applies the GT predicate on the "actor" field. -func ActorGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldActor, v)) -} - -// ActorGTE applies the GTE predicate on the "actor" field. -func ActorGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldActor, v)) -} - -// ActorLT applies the LT predicate on the "actor" field. -func ActorLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldActor, v)) -} - -// ActorLTE applies the LTE predicate on the "actor" field. -func ActorLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldActor, v)) -} - -// ActorContains applies the Contains predicate on the "actor" field. -func ActorContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldActor, v)) -} - -// ActorHasPrefix applies the HasPrefix predicate on the "actor" field. -func ActorHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldActor, v)) -} - -// ActorHasSuffix applies the HasSuffix predicate on the "actor" field. -func ActorHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldActor, v)) -} - -// ActorIsNil applies the IsNil predicate on the "actor" field. -func ActorIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldActor)) -} - -// ActorNotNil applies the NotNil predicate on the "actor" field. -func ActorNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldActor)) -} - -// ActorEqualFold applies the EqualFold predicate on the "actor" field. -func ActorEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldActor, v)) -} - -// ActorContainsFold applies the ContainsFold predicate on the "actor" field. -func ActorContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldActor, v)) -} - -// EventNameEQ applies the EQ predicate on the "event_name" field. -func EventNameEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldEventName, v)) -} - -// EventNameNEQ applies the NEQ predicate on the "event_name" field. -func EventNameNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldEventName, v)) -} - -// EventNameIn applies the In predicate on the "event_name" field. -func EventNameIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldEventName, vs...)) -} - -// EventNameNotIn applies the NotIn predicate on the "event_name" field. -func EventNameNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldEventName, vs...)) -} - -// EventNameGT applies the GT predicate on the "event_name" field. -func EventNameGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldEventName, v)) -} - -// EventNameGTE applies the GTE predicate on the "event_name" field. -func EventNameGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldEventName, v)) -} - -// EventNameLT applies the LT predicate on the "event_name" field. -func EventNameLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldEventName, v)) -} - -// EventNameLTE applies the LTE predicate on the "event_name" field. -func EventNameLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldEventName, v)) -} - -// EventNameContains applies the Contains predicate on the "event_name" field. -func EventNameContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldEventName, v)) -} - -// EventNameHasPrefix applies the HasPrefix predicate on the "event_name" field. -func EventNameHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldEventName, v)) -} - -// EventNameHasSuffix applies the HasSuffix predicate on the "event_name" field. -func EventNameHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldEventName, v)) -} - -// EventNameIsNil applies the IsNil predicate on the "event_name" field. -func EventNameIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldEventName)) -} - -// EventNameNotNil applies the NotNil predicate on the "event_name" field. -func EventNameNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldEventName)) -} - -// EventNameEqualFold applies the EqualFold predicate on the "event_name" field. -func EventNameEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldEventName, v)) -} - -// EventNameContainsFold applies the ContainsFold predicate on the "event_name" field. -func EventNameContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldEventName, v)) -} - -// WorkflowEQ applies the EQ predicate on the "workflow" field. -func WorkflowEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldWorkflow, v)) -} - -// WorkflowNEQ applies the NEQ predicate on the "workflow" field. -func WorkflowNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldWorkflow, v)) -} - -// WorkflowIn applies the In predicate on the "workflow" field. -func WorkflowIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldWorkflow, vs...)) -} - -// WorkflowNotIn applies the NotIn predicate on the "workflow" field. -func WorkflowNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldWorkflow, vs...)) -} - -// WorkflowGT applies the GT predicate on the "workflow" field. -func WorkflowGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldWorkflow, v)) -} - -// WorkflowGTE applies the GTE predicate on the "workflow" field. -func WorkflowGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldWorkflow, v)) -} - -// WorkflowLT applies the LT predicate on the "workflow" field. -func WorkflowLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldWorkflow, v)) -} - -// WorkflowLTE applies the LTE predicate on the "workflow" field. -func WorkflowLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldWorkflow, v)) -} - -// WorkflowContains applies the Contains predicate on the "workflow" field. -func WorkflowContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldWorkflow, v)) -} - -// WorkflowHasPrefix applies the HasPrefix predicate on the "workflow" field. -func WorkflowHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldWorkflow, v)) -} - -// WorkflowHasSuffix applies the HasSuffix predicate on the "workflow" field. -func WorkflowHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldWorkflow, v)) -} - -// WorkflowIsNil applies the IsNil predicate on the "workflow" field. -func WorkflowIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldWorkflow)) -} - -// WorkflowNotNil applies the NotNil predicate on the "workflow" field. -func WorkflowNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldWorkflow)) -} - -// WorkflowEqualFold applies the EqualFold predicate on the "workflow" field. -func WorkflowEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldWorkflow, v)) -} - -// WorkflowContainsFold applies the ContainsFold predicate on the "workflow" field. -func WorkflowContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldWorkflow, v)) -} - -// RunIDEQ applies the EQ predicate on the "run_id" field. -func RunIDEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunID, v)) -} - -// RunIDNEQ applies the NEQ predicate on the "run_id" field. -func RunIDNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldRunID, v)) -} - -// RunIDIn applies the In predicate on the "run_id" field. -func RunIDIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldRunID, vs...)) -} - -// RunIDNotIn applies the NotIn predicate on the "run_id" field. -func RunIDNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldRunID, vs...)) -} - -// RunIDGT applies the GT predicate on the "run_id" field. -func RunIDGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldRunID, v)) -} - -// RunIDGTE applies the GTE predicate on the "run_id" field. -func RunIDGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldRunID, v)) -} - -// RunIDLT applies the LT predicate on the "run_id" field. -func RunIDLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldRunID, v)) -} - -// RunIDLTE applies the LTE predicate on the "run_id" field. -func RunIDLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldRunID, v)) -} - -// RunIDContains applies the Contains predicate on the "run_id" field. -func RunIDContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldRunID, v)) -} - -// RunIDHasPrefix applies the HasPrefix predicate on the "run_id" field. -func RunIDHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldRunID, v)) -} - -// RunIDHasSuffix applies the HasSuffix predicate on the "run_id" field. -func RunIDHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldRunID, v)) -} - -// RunIDIsNil applies the IsNil predicate on the "run_id" field. -func RunIDIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldRunID)) -} - -// RunIDNotNil applies the NotNil predicate on the "run_id" field. -func RunIDNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldRunID)) -} - -// RunIDEqualFold applies the EqualFold predicate on the "run_id" field. -func RunIDEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldRunID, v)) -} - -// RunIDContainsFold applies the ContainsFold predicate on the "run_id" field. -func RunIDContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldRunID, v)) -} - -// RunNumberEQ applies the EQ predicate on the "run_number" field. -func RunNumberEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunNumber, v)) -} - -// RunNumberNEQ applies the NEQ predicate on the "run_number" field. -func RunNumberNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldRunNumber, v)) -} - -// RunNumberIn applies the In predicate on the "run_number" field. -func RunNumberIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldRunNumber, vs...)) -} - -// RunNumberNotIn applies the NotIn predicate on the "run_number" field. -func RunNumberNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldRunNumber, vs...)) -} - -// RunNumberGT applies the GT predicate on the "run_number" field. -func RunNumberGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldRunNumber, v)) -} - -// RunNumberGTE applies the GTE predicate on the "run_number" field. -func RunNumberGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldRunNumber, v)) -} - -// RunNumberLT applies the LT predicate on the "run_number" field. -func RunNumberLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldRunNumber, v)) -} - -// RunNumberLTE applies the LTE predicate on the "run_number" field. -func RunNumberLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldRunNumber, v)) -} - -// RunNumberContains applies the Contains predicate on the "run_number" field. -func RunNumberContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldRunNumber, v)) -} - -// RunNumberHasPrefix applies the HasPrefix predicate on the "run_number" field. -func RunNumberHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldRunNumber, v)) -} - -// RunNumberHasSuffix applies the HasSuffix predicate on the "run_number" field. -func RunNumberHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldRunNumber, v)) -} - -// RunNumberIsNil applies the IsNil predicate on the "run_number" field. -func RunNumberIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldRunNumber)) -} - -// RunNumberNotNil applies the NotNil predicate on the "run_number" field. -func RunNumberNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldRunNumber)) -} - -// RunNumberEqualFold applies the EqualFold predicate on the "run_number" field. -func RunNumberEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldRunNumber, v)) -} - -// RunNumberContainsFold applies the ContainsFold predicate on the "run_number" field. -func RunNumberContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldRunNumber, v)) -} - -// JobEQ applies the EQ predicate on the "job" field. -func JobEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldJob, v)) -} - -// JobNEQ applies the NEQ predicate on the "job" field. -func JobNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldJob, v)) -} - -// JobIn applies the In predicate on the "job" field. -func JobIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldJob, vs...)) -} - -// JobNotIn applies the NotIn predicate on the "job" field. -func JobNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldJob, vs...)) -} - -// JobGT applies the GT predicate on the "job" field. -func JobGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldJob, v)) -} - -// JobGTE applies the GTE predicate on the "job" field. -func JobGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldJob, v)) -} - -// JobLT applies the LT predicate on the "job" field. -func JobLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldJob, v)) -} - -// JobLTE applies the LTE predicate on the "job" field. -func JobLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldJob, v)) -} - -// JobContains applies the Contains predicate on the "job" field. -func JobContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldJob, v)) -} - -// JobHasPrefix applies the HasPrefix predicate on the "job" field. -func JobHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldJob, v)) -} - -// JobHasSuffix applies the HasSuffix predicate on the "job" field. -func JobHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldJob, v)) -} - -// JobIsNil applies the IsNil predicate on the "job" field. -func JobIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldJob)) -} - -// JobNotNil applies the NotNil predicate on the "job" field. -func JobNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldJob)) -} - -// JobEqualFold applies the EqualFold predicate on the "job" field. -func JobEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldJob, v)) -} - -// JobContainsFold applies the ContainsFold predicate on the "job" field. -func JobContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldJob, v)) -} - -// ActionEQ applies the EQ predicate on the "action" field. -func ActionEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldAction, v)) +// RepoURLEQ applies the EQ predicate on the "repo_url" field. +func RepoURLEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldRepoURL, v)) } -// ActionNEQ applies the NEQ predicate on the "action" field. -func ActionNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldAction, v)) +// RepoURLNEQ applies the NEQ predicate on the "repo_url" field. +func RepoURLNEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNEQ(FieldRepoURL, v)) } -// ActionIn applies the In predicate on the "action" field. -func ActionIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldAction, vs...)) +// RepoURLIn applies the In predicate on the "repo_url" field. +func RepoURLIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldIn(FieldRepoURL, vs...)) } -// ActionNotIn applies the NotIn predicate on the "action" field. -func ActionNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldAction, vs...)) +// RepoURLNotIn applies the NotIn predicate on the "repo_url" field. +func RepoURLNotIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotIn(FieldRepoURL, vs...)) } -// ActionGT applies the GT predicate on the "action" field. -func ActionGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldAction, v)) +// RepoURLGT applies the GT predicate on the "repo_url" field. +func RepoURLGT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGT(FieldRepoURL, v)) } -// ActionGTE applies the GTE predicate on the "action" field. -func ActionGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldAction, v)) +// RepoURLGTE applies the GTE predicate on the "repo_url" field. +func RepoURLGTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGTE(FieldRepoURL, v)) } -// ActionLT applies the LT predicate on the "action" field. -func ActionLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldAction, v)) +// RepoURLLT applies the LT predicate on the "repo_url" field. +func RepoURLLT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLT(FieldRepoURL, v)) } -// ActionLTE applies the LTE predicate on the "action" field. -func ActionLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldAction, v)) +// RepoURLLTE applies the LTE predicate on the "repo_url" field. +func RepoURLLTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLTE(FieldRepoURL, v)) } -// ActionContains applies the Contains predicate on the "action" field. -func ActionContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldAction, v)) +// RepoURLContains applies the Contains predicate on the "repo_url" field. +func RepoURLContains(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContains(FieldRepoURL, v)) } -// ActionHasPrefix applies the HasPrefix predicate on the "action" field. -func ActionHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldAction, v)) +// RepoURLHasPrefix applies the HasPrefix predicate on the "repo_url" field. +func RepoURLHasPrefix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasPrefix(FieldRepoURL, v)) } -// ActionHasSuffix applies the HasSuffix predicate on the "action" field. -func ActionHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldAction, v)) +// RepoURLHasSuffix applies the HasSuffix predicate on the "repo_url" field. +func RepoURLHasSuffix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasSuffix(FieldRepoURL, v)) } -// ActionIsNil applies the IsNil predicate on the "action" field. -func ActionIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldAction)) +// RepoURLIsNil applies the IsNil predicate on the "repo_url" field. +func RepoURLIsNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldIsNull(FieldRepoURL)) } -// ActionNotNil applies the NotNil predicate on the "action" field. -func ActionNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldAction)) +// RepoURLNotNil applies the NotNil predicate on the "repo_url" field. +func RepoURLNotNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotNull(FieldRepoURL)) } -// ActionEqualFold applies the EqualFold predicate on the "action" field. -func ActionEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldAction, v)) +// RepoURLEqualFold applies the EqualFold predicate on the "repo_url" field. +func RepoURLEqualFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEqualFold(FieldRepoURL, v)) } -// ActionContainsFold applies the ContainsFold predicate on the "action" field. -func ActionContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldAction, v)) +// RepoURLContainsFold applies the ContainsFold predicate on the "repo_url" field. +func RepoURLContainsFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContainsFold(FieldRepoURL, v)) } -// RunnerNameEQ applies the EQ predicate on the "runner_name" field. -func RunnerNameEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunnerName, v)) +// RefEQ applies the EQ predicate on the "ref" field. +func RefEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldRef, v)) } -// RunnerNameNEQ applies the NEQ predicate on the "runner_name" field. -func RunnerNameNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldRunnerName, v)) +// RefNEQ applies the NEQ predicate on the "ref" field. +func RefNEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNEQ(FieldRef, v)) } -// RunnerNameIn applies the In predicate on the "runner_name" field. -func RunnerNameIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldRunnerName, vs...)) +// RefIn applies the In predicate on the "ref" field. +func RefIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldIn(FieldRef, vs...)) } -// RunnerNameNotIn applies the NotIn predicate on the "runner_name" field. -func RunnerNameNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldRunnerName, vs...)) +// RefNotIn applies the NotIn predicate on the "ref" field. +func RefNotIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotIn(FieldRef, vs...)) } -// RunnerNameGT applies the GT predicate on the "runner_name" field. -func RunnerNameGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldRunnerName, v)) +// RefGT applies the GT predicate on the "ref" field. +func RefGT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGT(FieldRef, v)) } -// RunnerNameGTE applies the GTE predicate on the "runner_name" field. -func RunnerNameGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldRunnerName, v)) +// RefGTE applies the GTE predicate on the "ref" field. +func RefGTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGTE(FieldRef, v)) } -// RunnerNameLT applies the LT predicate on the "runner_name" field. -func RunnerNameLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldRunnerName, v)) +// RefLT applies the LT predicate on the "ref" field. +func RefLT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLT(FieldRef, v)) } -// RunnerNameLTE applies the LTE predicate on the "runner_name" field. -func RunnerNameLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldRunnerName, v)) +// RefLTE applies the LTE predicate on the "ref" field. +func RefLTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLTE(FieldRef, v)) } -// RunnerNameContains applies the Contains predicate on the "runner_name" field. -func RunnerNameContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldRunnerName, v)) +// RefContains applies the Contains predicate on the "ref" field. +func RefContains(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContains(FieldRef, v)) } -// RunnerNameHasPrefix applies the HasPrefix predicate on the "runner_name" field. -func RunnerNameHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldRunnerName, v)) +// RefHasPrefix applies the HasPrefix predicate on the "ref" field. +func RefHasPrefix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasPrefix(FieldRef, v)) } -// RunnerNameHasSuffix applies the HasSuffix predicate on the "runner_name" field. -func RunnerNameHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldRunnerName, v)) +// RefHasSuffix applies the HasSuffix predicate on the "ref" field. +func RefHasSuffix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasSuffix(FieldRef, v)) } -// RunnerNameIsNil applies the IsNil predicate on the "runner_name" field. -func RunnerNameIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldRunnerName)) +// RefIsNil applies the IsNil predicate on the "ref" field. +func RefIsNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldIsNull(FieldRef)) } -// RunnerNameNotNil applies the NotNil predicate on the "runner_name" field. -func RunnerNameNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldRunnerName)) +// RefNotNil applies the NotNil predicate on the "ref" field. +func RefNotNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotNull(FieldRef)) } -// RunnerNameEqualFold applies the EqualFold predicate on the "runner_name" field. -func RunnerNameEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldRunnerName, v)) +// RefEqualFold applies the EqualFold predicate on the "ref" field. +func RefEqualFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEqualFold(FieldRef, v)) } -// RunnerNameContainsFold applies the ContainsFold predicate on the "runner_name" field. -func RunnerNameContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldRunnerName, v)) +// RefContainsFold applies the ContainsFold predicate on the "ref" field. +func RefContainsFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContainsFold(FieldRef, v)) } -// RunnerArchEQ applies the EQ predicate on the "runner_arch" field. -func RunnerArchEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunnerArch, v)) +// RefURLEQ applies the EQ predicate on the "ref_url" field. +func RefURLEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldRefURL, v)) } -// RunnerArchNEQ applies the NEQ predicate on the "runner_arch" field. -func RunnerArchNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldRunnerArch, v)) +// RefURLNEQ applies the NEQ predicate on the "ref_url" field. +func RefURLNEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNEQ(FieldRefURL, v)) } -// RunnerArchIn applies the In predicate on the "runner_arch" field. -func RunnerArchIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldRunnerArch, vs...)) +// RefURLIn applies the In predicate on the "ref_url" field. +func RefURLIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldIn(FieldRefURL, vs...)) } -// RunnerArchNotIn applies the NotIn predicate on the "runner_arch" field. -func RunnerArchNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldRunnerArch, vs...)) +// RefURLNotIn applies the NotIn predicate on the "ref_url" field. +func RefURLNotIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotIn(FieldRefURL, vs...)) } -// RunnerArchGT applies the GT predicate on the "runner_arch" field. -func RunnerArchGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldRunnerArch, v)) +// RefURLGT applies the GT predicate on the "ref_url" field. +func RefURLGT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGT(FieldRefURL, v)) } -// RunnerArchGTE applies the GTE predicate on the "runner_arch" field. -func RunnerArchGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldRunnerArch, v)) +// RefURLGTE applies the GTE predicate on the "ref_url" field. +func RefURLGTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGTE(FieldRefURL, v)) } -// RunnerArchLT applies the LT predicate on the "runner_arch" field. -func RunnerArchLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldRunnerArch, v)) +// RefURLLT applies the LT predicate on the "ref_url" field. +func RefURLLT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLT(FieldRefURL, v)) } -// RunnerArchLTE applies the LTE predicate on the "runner_arch" field. -func RunnerArchLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldRunnerArch, v)) +// RefURLLTE applies the LTE predicate on the "ref_url" field. +func RefURLLTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLTE(FieldRefURL, v)) } -// RunnerArchContains applies the Contains predicate on the "runner_arch" field. -func RunnerArchContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldRunnerArch, v)) +// RefURLContains applies the Contains predicate on the "ref_url" field. +func RefURLContains(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContains(FieldRefURL, v)) } -// RunnerArchHasPrefix applies the HasPrefix predicate on the "runner_arch" field. -func RunnerArchHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldRunnerArch, v)) +// RefURLHasPrefix applies the HasPrefix predicate on the "ref_url" field. +func RefURLHasPrefix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasPrefix(FieldRefURL, v)) } -// RunnerArchHasSuffix applies the HasSuffix predicate on the "runner_arch" field. -func RunnerArchHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldRunnerArch, v)) +// RefURLHasSuffix applies the HasSuffix predicate on the "ref_url" field. +func RefURLHasSuffix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasSuffix(FieldRefURL, v)) } -// RunnerArchIsNil applies the IsNil predicate on the "runner_arch" field. -func RunnerArchIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldRunnerArch)) +// RefURLIsNil applies the IsNil predicate on the "ref_url" field. +func RefURLIsNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldIsNull(FieldRefURL)) } -// RunnerArchNotNil applies the NotNil predicate on the "runner_arch" field. -func RunnerArchNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldRunnerArch)) +// RefURLNotNil applies the NotNil predicate on the "ref_url" field. +func RefURLNotNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotNull(FieldRefURL)) } -// RunnerArchEqualFold applies the EqualFold predicate on the "runner_arch" field. -func RunnerArchEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldRunnerArch, v)) +// RefURLEqualFold applies the EqualFold predicate on the "ref_url" field. +func RefURLEqualFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEqualFold(FieldRefURL, v)) } -// RunnerArchContainsFold applies the ContainsFold predicate on the "runner_arch" field. -func RunnerArchContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldRunnerArch, v)) +// RefURLContainsFold applies the ContainsFold predicate on the "ref_url" field. +func RefURLContainsFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContainsFold(FieldRefURL, v)) } -// RunnerOsEQ applies the EQ predicate on the "runner_os" field. -func RunnerOsEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldRunnerOs, v)) +// CommitEQ applies the EQ predicate on the "commit" field. +func CommitEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldCommit, v)) } -// RunnerOsNEQ applies the NEQ predicate on the "runner_os" field. -func RunnerOsNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldRunnerOs, v)) +// CommitNEQ applies the NEQ predicate on the "commit" field. +func CommitNEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNEQ(FieldCommit, v)) } -// RunnerOsIn applies the In predicate on the "runner_os" field. -func RunnerOsIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldRunnerOs, vs...)) +// CommitIn applies the In predicate on the "commit" field. +func CommitIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldIn(FieldCommit, vs...)) } -// RunnerOsNotIn applies the NotIn predicate on the "runner_os" field. -func RunnerOsNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldRunnerOs, vs...)) +// CommitNotIn applies the NotIn predicate on the "commit" field. +func CommitNotIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotIn(FieldCommit, vs...)) } -// RunnerOsGT applies the GT predicate on the "runner_os" field. -func RunnerOsGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldRunnerOs, v)) +// CommitGT applies the GT predicate on the "commit" field. +func CommitGT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGT(FieldCommit, v)) } -// RunnerOsGTE applies the GTE predicate on the "runner_os" field. -func RunnerOsGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldRunnerOs, v)) +// CommitGTE applies the GTE predicate on the "commit" field. +func CommitGTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGTE(FieldCommit, v)) } -// RunnerOsLT applies the LT predicate on the "runner_os" field. -func RunnerOsLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldRunnerOs, v)) +// CommitLT applies the LT predicate on the "commit" field. +func CommitLT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLT(FieldCommit, v)) } -// RunnerOsLTE applies the LTE predicate on the "runner_os" field. -func RunnerOsLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldRunnerOs, v)) +// CommitLTE applies the LTE predicate on the "commit" field. +func CommitLTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLTE(FieldCommit, v)) } -// RunnerOsContains applies the Contains predicate on the "runner_os" field. -func RunnerOsContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldRunnerOs, v)) +// CommitContains applies the Contains predicate on the "commit" field. +func CommitContains(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContains(FieldCommit, v)) } -// RunnerOsHasPrefix applies the HasPrefix predicate on the "runner_os" field. -func RunnerOsHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldRunnerOs, v)) +// CommitHasPrefix applies the HasPrefix predicate on the "commit" field. +func CommitHasPrefix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasPrefix(FieldCommit, v)) } -// RunnerOsHasSuffix applies the HasSuffix predicate on the "runner_os" field. -func RunnerOsHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldRunnerOs, v)) +// CommitHasSuffix applies the HasSuffix predicate on the "commit" field. +func CommitHasSuffix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasSuffix(FieldCommit, v)) } -// RunnerOsIsNil applies the IsNil predicate on the "runner_os" field. -func RunnerOsIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldRunnerOs)) +// CommitIsNil applies the IsNil predicate on the "commit" field. +func CommitIsNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldIsNull(FieldCommit)) } -// RunnerOsNotNil applies the NotNil predicate on the "runner_os" field. -func RunnerOsNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldRunnerOs)) +// CommitNotNil applies the NotNil predicate on the "commit" field. +func CommitNotNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotNull(FieldCommit)) } -// RunnerOsEqualFold applies the EqualFold predicate on the "runner_os" field. -func RunnerOsEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldRunnerOs, v)) +// CommitEqualFold applies the EqualFold predicate on the "commit" field. +func CommitEqualFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEqualFold(FieldCommit, v)) } -// RunnerOsContainsFold applies the ContainsFold predicate on the "runner_os" field. -func RunnerOsContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldRunnerOs, v)) +// CommitContainsFold applies the ContainsFold predicate on the "commit" field. +func CommitContainsFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContainsFold(FieldCommit, v)) } -// WorkspaceEQ applies the EQ predicate on the "workspace" field. -func WorkspaceEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEQ(FieldWorkspace, v)) +// CommitURLEQ applies the EQ predicate on the "commit_url" field. +func CommitURLEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEQ(FieldCommitURL, v)) } -// WorkspaceNEQ applies the NEQ predicate on the "workspace" field. -func WorkspaceNEQ(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNEQ(FieldWorkspace, v)) +// CommitURLNEQ applies the NEQ predicate on the "commit_url" field. +func CommitURLNEQ(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNEQ(FieldCommitURL, v)) } -// WorkspaceIn applies the In predicate on the "workspace" field. -func WorkspaceIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldIn(FieldWorkspace, vs...)) +// CommitURLIn applies the In predicate on the "commit_url" field. +func CommitURLIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldIn(FieldCommitURL, vs...)) } -// WorkspaceNotIn applies the NotIn predicate on the "workspace" field. -func WorkspaceNotIn(vs ...string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotIn(FieldWorkspace, vs...)) +// CommitURLNotIn applies the NotIn predicate on the "commit_url" field. +func CommitURLNotIn(vs ...string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotIn(FieldCommitURL, vs...)) } -// WorkspaceGT applies the GT predicate on the "workspace" field. -func WorkspaceGT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGT(FieldWorkspace, v)) +// CommitURLGT applies the GT predicate on the "commit_url" field. +func CommitURLGT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGT(FieldCommitURL, v)) } -// WorkspaceGTE applies the GTE predicate on the "workspace" field. -func WorkspaceGTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldGTE(FieldWorkspace, v)) +// CommitURLGTE applies the GTE predicate on the "commit_url" field. +func CommitURLGTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldGTE(FieldCommitURL, v)) } -// WorkspaceLT applies the LT predicate on the "workspace" field. -func WorkspaceLT(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLT(FieldWorkspace, v)) +// CommitURLLT applies the LT predicate on the "commit_url" field. +func CommitURLLT(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLT(FieldCommitURL, v)) } -// WorkspaceLTE applies the LTE predicate on the "workspace" field. -func WorkspaceLTE(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldLTE(FieldWorkspace, v)) +// CommitURLLTE applies the LTE predicate on the "commit_url" field. +func CommitURLLTE(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldLTE(FieldCommitURL, v)) } -// WorkspaceContains applies the Contains predicate on the "workspace" field. -func WorkspaceContains(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContains(FieldWorkspace, v)) +// CommitURLContains applies the Contains predicate on the "commit_url" field. +func CommitURLContains(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContains(FieldCommitURL, v)) } -// WorkspaceHasPrefix applies the HasPrefix predicate on the "workspace" field. -func WorkspaceHasPrefix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasPrefix(FieldWorkspace, v)) +// CommitURLHasPrefix applies the HasPrefix predicate on the "commit_url" field. +func CommitURLHasPrefix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasPrefix(FieldCommitURL, v)) } -// WorkspaceHasSuffix applies the HasSuffix predicate on the "workspace" field. -func WorkspaceHasSuffix(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldHasSuffix(FieldWorkspace, v)) +// CommitURLHasSuffix applies the HasSuffix predicate on the "commit_url" field. +func CommitURLHasSuffix(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldHasSuffix(FieldCommitURL, v)) } -// WorkspaceIsNil applies the IsNil predicate on the "workspace" field. -func WorkspaceIsNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldIsNull(FieldWorkspace)) +// CommitURLIsNil applies the IsNil predicate on the "commit_url" field. +func CommitURLIsNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldIsNull(FieldCommitURL)) } -// WorkspaceNotNil applies the NotNil predicate on the "workspace" field. -func WorkspaceNotNil() predicate.SourceControl { - return predicate.SourceControl(sql.FieldNotNull(FieldWorkspace)) +// CommitURLNotNil applies the NotNil predicate on the "commit_url" field. +func CommitURLNotNil() predicate.SourceControl { + return predicate.SourceControl(sql.FieldNotNull(FieldCommitURL)) } -// WorkspaceEqualFold applies the EqualFold predicate on the "workspace" field. -func WorkspaceEqualFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldEqualFold(FieldWorkspace, v)) +// CommitURLEqualFold applies the EqualFold predicate on the "commit_url" field. +func CommitURLEqualFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldEqualFold(FieldCommitURL, v)) } -// WorkspaceContainsFold applies the ContainsFold predicate on the "workspace" field. -func WorkspaceContainsFold(v string) predicate.SourceControl { - return predicate.SourceControl(sql.FieldContainsFold(FieldWorkspace, v)) +// CommitURLContainsFold applies the ContainsFold predicate on the "commit_url" field. +func CommitURLContainsFold(v string) predicate.SourceControl { + return predicate.SourceControl(sql.FieldContainsFold(FieldCommitURL, v)) } // HasBazelInvocation applies the HasEdge predicate on the "bazel_invocation" edge. @@ -1288,7 +538,7 @@ func HasBazelInvocation() predicate.SourceControl { return predicate.SourceControl(func(s *sql.Selector) { step := sqlgraph.NewStep( sqlgraph.From(Table, FieldID), - sqlgraph.Edge(sqlgraph.O2O, true, BazelInvocationTable, BazelInvocationColumn), + sqlgraph.Edge(sqlgraph.M2O, true, BazelInvocationTable, BazelInvocationColumn), ) sqlgraph.HasNeighbors(s, step) }) diff --git a/ent/gen/ent/sourcecontrol_create.go b/ent/gen/ent/sourcecontrol_create.go index 054a688f..d9725990 100644 --- a/ent/gen/ent/sourcecontrol_create.go +++ b/ent/gen/ent/sourcecontrol_create.go @@ -22,34 +22,6 @@ type SourceControlCreate struct { conflict []sql.ConflictOption } -// SetProvider sets the "provider" field. -func (scc *SourceControlCreate) SetProvider(s sourcecontrol.Provider) *SourceControlCreate { - scc.mutation.SetProvider(s) - return scc -} - -// SetNillableProvider sets the "provider" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableProvider(s *sourcecontrol.Provider) *SourceControlCreate { - if s != nil { - scc.SetProvider(*s) - } - return scc -} - -// SetInstanceURL sets the "instance_url" field. -func (scc *SourceControlCreate) SetInstanceURL(s string) *SourceControlCreate { - scc.mutation.SetInstanceURL(s) - return scc -} - -// SetNillableInstanceURL sets the "instance_url" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableInstanceURL(s *string) *SourceControlCreate { - if s != nil { - scc.SetInstanceURL(*s) - } - return scc -} - // SetRepo sets the "repo" field. func (scc *SourceControlCreate) SetRepo(s string) *SourceControlCreate { scc.mutation.SetRepo(s) @@ -64,184 +36,72 @@ func (scc *SourceControlCreate) SetNillableRepo(s *string) *SourceControlCreate return scc } -// SetRefs sets the "refs" field. -func (scc *SourceControlCreate) SetRefs(s string) *SourceControlCreate { - scc.mutation.SetRefs(s) - return scc -} - -// SetNillableRefs sets the "refs" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableRefs(s *string) *SourceControlCreate { - if s != nil { - scc.SetRefs(*s) - } - return scc -} - -// SetCommitSha sets the "commit_sha" field. -func (scc *SourceControlCreate) SetCommitSha(s string) *SourceControlCreate { - scc.mutation.SetCommitSha(s) - return scc -} - -// SetNillableCommitSha sets the "commit_sha" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableCommitSha(s *string) *SourceControlCreate { - if s != nil { - scc.SetCommitSha(*s) - } - return scc -} - -// SetActor sets the "actor" field. -func (scc *SourceControlCreate) SetActor(s string) *SourceControlCreate { - scc.mutation.SetActor(s) - return scc -} - -// SetNillableActor sets the "actor" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableActor(s *string) *SourceControlCreate { - if s != nil { - scc.SetActor(*s) - } - return scc -} - -// SetEventName sets the "event_name" field. -func (scc *SourceControlCreate) SetEventName(s string) *SourceControlCreate { - scc.mutation.SetEventName(s) - return scc -} - -// SetNillableEventName sets the "event_name" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableEventName(s *string) *SourceControlCreate { - if s != nil { - scc.SetEventName(*s) - } - return scc -} - -// SetWorkflow sets the "workflow" field. -func (scc *SourceControlCreate) SetWorkflow(s string) *SourceControlCreate { - scc.mutation.SetWorkflow(s) - return scc -} - -// SetNillableWorkflow sets the "workflow" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableWorkflow(s *string) *SourceControlCreate { - if s != nil { - scc.SetWorkflow(*s) - } - return scc -} - -// SetRunID sets the "run_id" field. -func (scc *SourceControlCreate) SetRunID(s string) *SourceControlCreate { - scc.mutation.SetRunID(s) - return scc -} - -// SetNillableRunID sets the "run_id" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableRunID(s *string) *SourceControlCreate { - if s != nil { - scc.SetRunID(*s) - } - return scc -} - -// SetRunNumber sets the "run_number" field. -func (scc *SourceControlCreate) SetRunNumber(s string) *SourceControlCreate { - scc.mutation.SetRunNumber(s) - return scc -} - -// SetNillableRunNumber sets the "run_number" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableRunNumber(s *string) *SourceControlCreate { - if s != nil { - scc.SetRunNumber(*s) - } - return scc -} - -// SetJob sets the "job" field. -func (scc *SourceControlCreate) SetJob(s string) *SourceControlCreate { - scc.mutation.SetJob(s) - return scc -} - -// SetNillableJob sets the "job" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableJob(s *string) *SourceControlCreate { - if s != nil { - scc.SetJob(*s) - } - return scc -} - -// SetAction sets the "action" field. -func (scc *SourceControlCreate) SetAction(s string) *SourceControlCreate { - scc.mutation.SetAction(s) +// SetRepoURL sets the "repo_url" field. +func (scc *SourceControlCreate) SetRepoURL(s string) *SourceControlCreate { + scc.mutation.SetRepoURL(s) return scc } -// SetNillableAction sets the "action" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableAction(s *string) *SourceControlCreate { +// SetNillableRepoURL sets the "repo_url" field if the given value is not nil. +func (scc *SourceControlCreate) SetNillableRepoURL(s *string) *SourceControlCreate { if s != nil { - scc.SetAction(*s) + scc.SetRepoURL(*s) } return scc } -// SetRunnerName sets the "runner_name" field. -func (scc *SourceControlCreate) SetRunnerName(s string) *SourceControlCreate { - scc.mutation.SetRunnerName(s) +// SetRef sets the "ref" field. +func (scc *SourceControlCreate) SetRef(s string) *SourceControlCreate { + scc.mutation.SetRef(s) return scc } -// SetNillableRunnerName sets the "runner_name" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableRunnerName(s *string) *SourceControlCreate { +// SetNillableRef sets the "ref" field if the given value is not nil. +func (scc *SourceControlCreate) SetNillableRef(s *string) *SourceControlCreate { if s != nil { - scc.SetRunnerName(*s) + scc.SetRef(*s) } return scc } -// SetRunnerArch sets the "runner_arch" field. -func (scc *SourceControlCreate) SetRunnerArch(s string) *SourceControlCreate { - scc.mutation.SetRunnerArch(s) +// SetRefURL sets the "ref_url" field. +func (scc *SourceControlCreate) SetRefURL(s string) *SourceControlCreate { + scc.mutation.SetRefURL(s) return scc } -// SetNillableRunnerArch sets the "runner_arch" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableRunnerArch(s *string) *SourceControlCreate { +// SetNillableRefURL sets the "ref_url" field if the given value is not nil. +func (scc *SourceControlCreate) SetNillableRefURL(s *string) *SourceControlCreate { if s != nil { - scc.SetRunnerArch(*s) + scc.SetRefURL(*s) } return scc } -// SetRunnerOs sets the "runner_os" field. -func (scc *SourceControlCreate) SetRunnerOs(s string) *SourceControlCreate { - scc.mutation.SetRunnerOs(s) +// SetCommit sets the "commit" field. +func (scc *SourceControlCreate) SetCommit(s string) *SourceControlCreate { + scc.mutation.SetCommit(s) return scc } -// SetNillableRunnerOs sets the "runner_os" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableRunnerOs(s *string) *SourceControlCreate { +// SetNillableCommit sets the "commit" field if the given value is not nil. +func (scc *SourceControlCreate) SetNillableCommit(s *string) *SourceControlCreate { if s != nil { - scc.SetRunnerOs(*s) + scc.SetCommit(*s) } return scc } -// SetWorkspace sets the "workspace" field. -func (scc *SourceControlCreate) SetWorkspace(s string) *SourceControlCreate { - scc.mutation.SetWorkspace(s) +// SetCommitURL sets the "commit_url" field. +func (scc *SourceControlCreate) SetCommitURL(s string) *SourceControlCreate { + scc.mutation.SetCommitURL(s) return scc } -// SetNillableWorkspace sets the "workspace" field if the given value is not nil. -func (scc *SourceControlCreate) SetNillableWorkspace(s *string) *SourceControlCreate { +// SetNillableCommitURL sets the "commit_url" field if the given value is not nil. +func (scc *SourceControlCreate) SetNillableCommitURL(s *string) *SourceControlCreate { if s != nil { - scc.SetWorkspace(*s) + scc.SetCommitURL(*s) } return scc } @@ -305,11 +165,6 @@ func (scc *SourceControlCreate) ExecX(ctx context.Context) { // check runs all checks and user-defined validators on the builder. func (scc *SourceControlCreate) check() error { - if v, ok := scc.mutation.Provider(); ok { - if err := sourcecontrol.ProviderValidator(v); err != nil { - return &ValidationError{Name: "provider", err: fmt.Errorf(`ent: validator failed for field "SourceControl.provider": %w`, err)} - } - } return nil } @@ -343,73 +198,33 @@ func (scc *SourceControlCreate) createSpec() (*SourceControl, *sqlgraph.CreateSp _node.ID = id _spec.ID.Value = id } - if value, ok := scc.mutation.Provider(); ok { - _spec.SetField(sourcecontrol.FieldProvider, field.TypeEnum, value) - _node.Provider = value - } - if value, ok := scc.mutation.InstanceURL(); ok { - _spec.SetField(sourcecontrol.FieldInstanceURL, field.TypeString, value) - _node.InstanceURL = value - } if value, ok := scc.mutation.Repo(); ok { _spec.SetField(sourcecontrol.FieldRepo, field.TypeString, value) _node.Repo = value } - if value, ok := scc.mutation.Refs(); ok { - _spec.SetField(sourcecontrol.FieldRefs, field.TypeString, value) - _node.Refs = value - } - if value, ok := scc.mutation.CommitSha(); ok { - _spec.SetField(sourcecontrol.FieldCommitSha, field.TypeString, value) - _node.CommitSha = value - } - if value, ok := scc.mutation.Actor(); ok { - _spec.SetField(sourcecontrol.FieldActor, field.TypeString, value) - _node.Actor = value - } - if value, ok := scc.mutation.EventName(); ok { - _spec.SetField(sourcecontrol.FieldEventName, field.TypeString, value) - _node.EventName = value + if value, ok := scc.mutation.RepoURL(); ok { + _spec.SetField(sourcecontrol.FieldRepoURL, field.TypeString, value) + _node.RepoURL = value } - if value, ok := scc.mutation.Workflow(); ok { - _spec.SetField(sourcecontrol.FieldWorkflow, field.TypeString, value) - _node.Workflow = value + if value, ok := scc.mutation.Ref(); ok { + _spec.SetField(sourcecontrol.FieldRef, field.TypeString, value) + _node.Ref = value } - if value, ok := scc.mutation.RunID(); ok { - _spec.SetField(sourcecontrol.FieldRunID, field.TypeString, value) - _node.RunID = value + if value, ok := scc.mutation.RefURL(); ok { + _spec.SetField(sourcecontrol.FieldRefURL, field.TypeString, value) + _node.RefURL = value } - if value, ok := scc.mutation.RunNumber(); ok { - _spec.SetField(sourcecontrol.FieldRunNumber, field.TypeString, value) - _node.RunNumber = value + if value, ok := scc.mutation.Commit(); ok { + _spec.SetField(sourcecontrol.FieldCommit, field.TypeString, value) + _node.Commit = value } - if value, ok := scc.mutation.Job(); ok { - _spec.SetField(sourcecontrol.FieldJob, field.TypeString, value) - _node.Job = value - } - if value, ok := scc.mutation.Action(); ok { - _spec.SetField(sourcecontrol.FieldAction, field.TypeString, value) - _node.Action = value - } - if value, ok := scc.mutation.RunnerName(); ok { - _spec.SetField(sourcecontrol.FieldRunnerName, field.TypeString, value) - _node.RunnerName = value - } - if value, ok := scc.mutation.RunnerArch(); ok { - _spec.SetField(sourcecontrol.FieldRunnerArch, field.TypeString, value) - _node.RunnerArch = value - } - if value, ok := scc.mutation.RunnerOs(); ok { - _spec.SetField(sourcecontrol.FieldRunnerOs, field.TypeString, value) - _node.RunnerOs = value - } - if value, ok := scc.mutation.Workspace(); ok { - _spec.SetField(sourcecontrol.FieldWorkspace, field.TypeString, value) - _node.Workspace = value + if value, ok := scc.mutation.CommitURL(); ok { + _spec.SetField(sourcecontrol.FieldCommitURL, field.TypeString, value) + _node.CommitURL = value } if nodes := scc.mutation.BazelInvocationIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.M2O, Inverse: true, Table: sourcecontrol.BazelInvocationTable, Columns: []string{sourcecontrol.BazelInvocationColumn}, @@ -431,7 +246,7 @@ func (scc *SourceControlCreate) createSpec() (*SourceControl, *sqlgraph.CreateSp // of the `INSERT` statement. For example: // // client.SourceControl.Create(). -// SetProvider(v). +// SetRepo(v). // OnConflict( // // Update the row with the new values // // the was proposed for insertion. @@ -440,7 +255,7 @@ func (scc *SourceControlCreate) createSpec() (*SourceControl, *sqlgraph.CreateSp // // Override some of the fields with custom // // update values. // Update(func(u *ent.SourceControlUpsert) { -// SetProvider(v+v). +// SetRepo(v+v). // }). // Exec(ctx) func (scc *SourceControlCreate) OnConflict(opts ...sql.ConflictOption) *SourceControlUpsertOne { @@ -476,42 +291,6 @@ type ( } ) -// SetProvider sets the "provider" field. -func (u *SourceControlUpsert) SetProvider(v sourcecontrol.Provider) *SourceControlUpsert { - u.Set(sourcecontrol.FieldProvider, v) - return u -} - -// UpdateProvider sets the "provider" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateProvider() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldProvider) - return u -} - -// ClearProvider clears the value of the "provider" field. -func (u *SourceControlUpsert) ClearProvider() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldProvider) - return u -} - -// SetInstanceURL sets the "instance_url" field. -func (u *SourceControlUpsert) SetInstanceURL(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldInstanceURL, v) - return u -} - -// UpdateInstanceURL sets the "instance_url" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateInstanceURL() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldInstanceURL) - return u -} - -// ClearInstanceURL clears the value of the "instance_url" field. -func (u *SourceControlUpsert) ClearInstanceURL() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldInstanceURL) - return u -} - // SetRepo sets the "repo" field. func (u *SourceControlUpsert) SetRepo(v string) *SourceControlUpsert { u.Set(sourcecontrol.FieldRepo, v) @@ -530,237 +309,93 @@ func (u *SourceControlUpsert) ClearRepo() *SourceControlUpsert { return u } -// SetRefs sets the "refs" field. -func (u *SourceControlUpsert) SetRefs(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldRefs, v) - return u -} - -// UpdateRefs sets the "refs" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateRefs() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldRefs) +// SetRepoURL sets the "repo_url" field. +func (u *SourceControlUpsert) SetRepoURL(v string) *SourceControlUpsert { + u.Set(sourcecontrol.FieldRepoURL, v) return u } -// ClearRefs clears the value of the "refs" field. -func (u *SourceControlUpsert) ClearRefs() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldRefs) +// UpdateRepoURL sets the "repo_url" field to the value that was provided on create. +func (u *SourceControlUpsert) UpdateRepoURL() *SourceControlUpsert { + u.SetExcluded(sourcecontrol.FieldRepoURL) return u } -// SetCommitSha sets the "commit_sha" field. -func (u *SourceControlUpsert) SetCommitSha(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldCommitSha, v) +// ClearRepoURL clears the value of the "repo_url" field. +func (u *SourceControlUpsert) ClearRepoURL() *SourceControlUpsert { + u.SetNull(sourcecontrol.FieldRepoURL) return u } -// UpdateCommitSha sets the "commit_sha" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateCommitSha() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldCommitSha) +// SetRef sets the "ref" field. +func (u *SourceControlUpsert) SetRef(v string) *SourceControlUpsert { + u.Set(sourcecontrol.FieldRef, v) return u } -// ClearCommitSha clears the value of the "commit_sha" field. -func (u *SourceControlUpsert) ClearCommitSha() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldCommitSha) +// UpdateRef sets the "ref" field to the value that was provided on create. +func (u *SourceControlUpsert) UpdateRef() *SourceControlUpsert { + u.SetExcluded(sourcecontrol.FieldRef) return u } -// SetActor sets the "actor" field. -func (u *SourceControlUpsert) SetActor(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldActor, v) +// ClearRef clears the value of the "ref" field. +func (u *SourceControlUpsert) ClearRef() *SourceControlUpsert { + u.SetNull(sourcecontrol.FieldRef) return u } -// UpdateActor sets the "actor" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateActor() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldActor) +// SetRefURL sets the "ref_url" field. +func (u *SourceControlUpsert) SetRefURL(v string) *SourceControlUpsert { + u.Set(sourcecontrol.FieldRefURL, v) return u } -// ClearActor clears the value of the "actor" field. -func (u *SourceControlUpsert) ClearActor() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldActor) +// UpdateRefURL sets the "ref_url" field to the value that was provided on create. +func (u *SourceControlUpsert) UpdateRefURL() *SourceControlUpsert { + u.SetExcluded(sourcecontrol.FieldRefURL) return u } -// SetEventName sets the "event_name" field. -func (u *SourceControlUpsert) SetEventName(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldEventName, v) +// ClearRefURL clears the value of the "ref_url" field. +func (u *SourceControlUpsert) ClearRefURL() *SourceControlUpsert { + u.SetNull(sourcecontrol.FieldRefURL) return u } -// UpdateEventName sets the "event_name" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateEventName() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldEventName) +// SetCommit sets the "commit" field. +func (u *SourceControlUpsert) SetCommit(v string) *SourceControlUpsert { + u.Set(sourcecontrol.FieldCommit, v) return u } -// ClearEventName clears the value of the "event_name" field. -func (u *SourceControlUpsert) ClearEventName() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldEventName) +// UpdateCommit sets the "commit" field to the value that was provided on create. +func (u *SourceControlUpsert) UpdateCommit() *SourceControlUpsert { + u.SetExcluded(sourcecontrol.FieldCommit) return u } -// SetWorkflow sets the "workflow" field. -func (u *SourceControlUpsert) SetWorkflow(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldWorkflow, v) +// ClearCommit clears the value of the "commit" field. +func (u *SourceControlUpsert) ClearCommit() *SourceControlUpsert { + u.SetNull(sourcecontrol.FieldCommit) return u } -// UpdateWorkflow sets the "workflow" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateWorkflow() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldWorkflow) +// SetCommitURL sets the "commit_url" field. +func (u *SourceControlUpsert) SetCommitURL(v string) *SourceControlUpsert { + u.Set(sourcecontrol.FieldCommitURL, v) return u } -// ClearWorkflow clears the value of the "workflow" field. -func (u *SourceControlUpsert) ClearWorkflow() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldWorkflow) +// UpdateCommitURL sets the "commit_url" field to the value that was provided on create. +func (u *SourceControlUpsert) UpdateCommitURL() *SourceControlUpsert { + u.SetExcluded(sourcecontrol.FieldCommitURL) return u } -// SetRunID sets the "run_id" field. -func (u *SourceControlUpsert) SetRunID(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldRunID, v) - return u -} - -// UpdateRunID sets the "run_id" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateRunID() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldRunID) - return u -} - -// ClearRunID clears the value of the "run_id" field. -func (u *SourceControlUpsert) ClearRunID() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldRunID) - return u -} - -// SetRunNumber sets the "run_number" field. -func (u *SourceControlUpsert) SetRunNumber(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldRunNumber, v) - return u -} - -// UpdateRunNumber sets the "run_number" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateRunNumber() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldRunNumber) - return u -} - -// ClearRunNumber clears the value of the "run_number" field. -func (u *SourceControlUpsert) ClearRunNumber() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldRunNumber) - return u -} - -// SetJob sets the "job" field. -func (u *SourceControlUpsert) SetJob(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldJob, v) - return u -} - -// UpdateJob sets the "job" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateJob() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldJob) - return u -} - -// ClearJob clears the value of the "job" field. -func (u *SourceControlUpsert) ClearJob() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldJob) - return u -} - -// SetAction sets the "action" field. -func (u *SourceControlUpsert) SetAction(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldAction, v) - return u -} - -// UpdateAction sets the "action" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateAction() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldAction) - return u -} - -// ClearAction clears the value of the "action" field. -func (u *SourceControlUpsert) ClearAction() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldAction) - return u -} - -// SetRunnerName sets the "runner_name" field. -func (u *SourceControlUpsert) SetRunnerName(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldRunnerName, v) - return u -} - -// UpdateRunnerName sets the "runner_name" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateRunnerName() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldRunnerName) - return u -} - -// ClearRunnerName clears the value of the "runner_name" field. -func (u *SourceControlUpsert) ClearRunnerName() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldRunnerName) - return u -} - -// SetRunnerArch sets the "runner_arch" field. -func (u *SourceControlUpsert) SetRunnerArch(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldRunnerArch, v) - return u -} - -// UpdateRunnerArch sets the "runner_arch" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateRunnerArch() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldRunnerArch) - return u -} - -// ClearRunnerArch clears the value of the "runner_arch" field. -func (u *SourceControlUpsert) ClearRunnerArch() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldRunnerArch) - return u -} - -// SetRunnerOs sets the "runner_os" field. -func (u *SourceControlUpsert) SetRunnerOs(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldRunnerOs, v) - return u -} - -// UpdateRunnerOs sets the "runner_os" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateRunnerOs() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldRunnerOs) - return u -} - -// ClearRunnerOs clears the value of the "runner_os" field. -func (u *SourceControlUpsert) ClearRunnerOs() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldRunnerOs) - return u -} - -// SetWorkspace sets the "workspace" field. -func (u *SourceControlUpsert) SetWorkspace(v string) *SourceControlUpsert { - u.Set(sourcecontrol.FieldWorkspace, v) - return u -} - -// UpdateWorkspace sets the "workspace" field to the value that was provided on create. -func (u *SourceControlUpsert) UpdateWorkspace() *SourceControlUpsert { - u.SetExcluded(sourcecontrol.FieldWorkspace) - return u -} - -// ClearWorkspace clears the value of the "workspace" field. -func (u *SourceControlUpsert) ClearWorkspace() *SourceControlUpsert { - u.SetNull(sourcecontrol.FieldWorkspace) +// ClearCommitURL clears the value of the "commit_url" field. +func (u *SourceControlUpsert) ClearCommitURL() *SourceControlUpsert { + u.SetNull(sourcecontrol.FieldCommitURL) return u } @@ -812,48 +447,6 @@ func (u *SourceControlUpsertOne) Update(set func(*SourceControlUpsert)) *SourceC return u } -// SetProvider sets the "provider" field. -func (u *SourceControlUpsertOne) SetProvider(v sourcecontrol.Provider) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetProvider(v) - }) -} - -// UpdateProvider sets the "provider" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateProvider() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateProvider() - }) -} - -// ClearProvider clears the value of the "provider" field. -func (u *SourceControlUpsertOne) ClearProvider() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearProvider() - }) -} - -// SetInstanceURL sets the "instance_url" field. -func (u *SourceControlUpsertOne) SetInstanceURL(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetInstanceURL(v) - }) -} - -// UpdateInstanceURL sets the "instance_url" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateInstanceURL() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateInstanceURL() - }) -} - -// ClearInstanceURL clears the value of the "instance_url" field. -func (u *SourceControlUpsertOne) ClearInstanceURL() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearInstanceURL() - }) -} - // SetRepo sets the "repo" field. func (u *SourceControlUpsertOne) SetRepo(v string) *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { @@ -875,276 +468,108 @@ func (u *SourceControlUpsertOne) ClearRepo() *SourceControlUpsertOne { }) } -// SetRefs sets the "refs" field. -func (u *SourceControlUpsertOne) SetRefs(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetRefs(v) - }) -} - -// UpdateRefs sets the "refs" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateRefs() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateRefs() - }) -} - -// ClearRefs clears the value of the "refs" field. -func (u *SourceControlUpsertOne) ClearRefs() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearRefs() - }) -} - -// SetCommitSha sets the "commit_sha" field. -func (u *SourceControlUpsertOne) SetCommitSha(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetCommitSha(v) - }) -} - -// UpdateCommitSha sets the "commit_sha" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateCommitSha() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateCommitSha() - }) -} - -// ClearCommitSha clears the value of the "commit_sha" field. -func (u *SourceControlUpsertOne) ClearCommitSha() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearCommitSha() - }) -} - -// SetActor sets the "actor" field. -func (u *SourceControlUpsertOne) SetActor(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetActor(v) - }) -} - -// UpdateActor sets the "actor" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateActor() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateActor() - }) -} - -// ClearActor clears the value of the "actor" field. -func (u *SourceControlUpsertOne) ClearActor() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearActor() - }) -} - -// SetEventName sets the "event_name" field. -func (u *SourceControlUpsertOne) SetEventName(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetEventName(v) - }) -} - -// UpdateEventName sets the "event_name" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateEventName() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateEventName() - }) -} - -// ClearEventName clears the value of the "event_name" field. -func (u *SourceControlUpsertOne) ClearEventName() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearEventName() - }) -} - -// SetWorkflow sets the "workflow" field. -func (u *SourceControlUpsertOne) SetWorkflow(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetWorkflow(v) - }) -} - -// UpdateWorkflow sets the "workflow" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateWorkflow() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateWorkflow() - }) -} - -// ClearWorkflow clears the value of the "workflow" field. -func (u *SourceControlUpsertOne) ClearWorkflow() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearWorkflow() - }) -} - -// SetRunID sets the "run_id" field. -func (u *SourceControlUpsertOne) SetRunID(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetRunID(v) - }) -} - -// UpdateRunID sets the "run_id" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateRunID() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunID() - }) -} - -// ClearRunID clears the value of the "run_id" field. -func (u *SourceControlUpsertOne) ClearRunID() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearRunID() - }) -} - -// SetRunNumber sets the "run_number" field. -func (u *SourceControlUpsertOne) SetRunNumber(v string) *SourceControlUpsertOne { +// SetRepoURL sets the "repo_url" field. +func (u *SourceControlUpsertOne) SetRepoURL(v string) *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.SetRunNumber(v) + s.SetRepoURL(v) }) } -// UpdateRunNumber sets the "run_number" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateRunNumber() *SourceControlUpsertOne { +// UpdateRepoURL sets the "repo_url" field to the value that was provided on create. +func (u *SourceControlUpsertOne) UpdateRepoURL() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunNumber() + s.UpdateRepoURL() }) } -// ClearRunNumber clears the value of the "run_number" field. -func (u *SourceControlUpsertOne) ClearRunNumber() *SourceControlUpsertOne { +// ClearRepoURL clears the value of the "repo_url" field. +func (u *SourceControlUpsertOne) ClearRepoURL() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.ClearRunNumber() + s.ClearRepoURL() }) } -// SetJob sets the "job" field. -func (u *SourceControlUpsertOne) SetJob(v string) *SourceControlUpsertOne { +// SetRef sets the "ref" field. +func (u *SourceControlUpsertOne) SetRef(v string) *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.SetJob(v) + s.SetRef(v) }) } -// UpdateJob sets the "job" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateJob() *SourceControlUpsertOne { +// UpdateRef sets the "ref" field to the value that was provided on create. +func (u *SourceControlUpsertOne) UpdateRef() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.UpdateJob() + s.UpdateRef() }) } -// ClearJob clears the value of the "job" field. -func (u *SourceControlUpsertOne) ClearJob() *SourceControlUpsertOne { +// ClearRef clears the value of the "ref" field. +func (u *SourceControlUpsertOne) ClearRef() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.ClearJob() + s.ClearRef() }) } -// SetAction sets the "action" field. -func (u *SourceControlUpsertOne) SetAction(v string) *SourceControlUpsertOne { +// SetRefURL sets the "ref_url" field. +func (u *SourceControlUpsertOne) SetRefURL(v string) *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.SetAction(v) + s.SetRefURL(v) }) } -// UpdateAction sets the "action" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateAction() *SourceControlUpsertOne { +// UpdateRefURL sets the "ref_url" field to the value that was provided on create. +func (u *SourceControlUpsertOne) UpdateRefURL() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.UpdateAction() + s.UpdateRefURL() }) } -// ClearAction clears the value of the "action" field. -func (u *SourceControlUpsertOne) ClearAction() *SourceControlUpsertOne { +// ClearRefURL clears the value of the "ref_url" field. +func (u *SourceControlUpsertOne) ClearRefURL() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.ClearAction() + s.ClearRefURL() }) } -// SetRunnerName sets the "runner_name" field. -func (u *SourceControlUpsertOne) SetRunnerName(v string) *SourceControlUpsertOne { +// SetCommit sets the "commit" field. +func (u *SourceControlUpsertOne) SetCommit(v string) *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.SetRunnerName(v) + s.SetCommit(v) }) } -// UpdateRunnerName sets the "runner_name" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateRunnerName() *SourceControlUpsertOne { +// UpdateCommit sets the "commit" field to the value that was provided on create. +func (u *SourceControlUpsertOne) UpdateCommit() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunnerName() + s.UpdateCommit() }) } -// ClearRunnerName clears the value of the "runner_name" field. -func (u *SourceControlUpsertOne) ClearRunnerName() *SourceControlUpsertOne { +// ClearCommit clears the value of the "commit" field. +func (u *SourceControlUpsertOne) ClearCommit() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.ClearRunnerName() + s.ClearCommit() }) } -// SetRunnerArch sets the "runner_arch" field. -func (u *SourceControlUpsertOne) SetRunnerArch(v string) *SourceControlUpsertOne { +// SetCommitURL sets the "commit_url" field. +func (u *SourceControlUpsertOne) SetCommitURL(v string) *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.SetRunnerArch(v) + s.SetCommitURL(v) }) } -// UpdateRunnerArch sets the "runner_arch" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateRunnerArch() *SourceControlUpsertOne { +// UpdateCommitURL sets the "commit_url" field to the value that was provided on create. +func (u *SourceControlUpsertOne) UpdateCommitURL() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunnerArch() + s.UpdateCommitURL() }) } -// ClearRunnerArch clears the value of the "runner_arch" field. -func (u *SourceControlUpsertOne) ClearRunnerArch() *SourceControlUpsertOne { +// ClearCommitURL clears the value of the "commit_url" field. +func (u *SourceControlUpsertOne) ClearCommitURL() *SourceControlUpsertOne { return u.Update(func(s *SourceControlUpsert) { - s.ClearRunnerArch() - }) -} - -// SetRunnerOs sets the "runner_os" field. -func (u *SourceControlUpsertOne) SetRunnerOs(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetRunnerOs(v) - }) -} - -// UpdateRunnerOs sets the "runner_os" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateRunnerOs() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunnerOs() - }) -} - -// ClearRunnerOs clears the value of the "runner_os" field. -func (u *SourceControlUpsertOne) ClearRunnerOs() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearRunnerOs() - }) -} - -// SetWorkspace sets the "workspace" field. -func (u *SourceControlUpsertOne) SetWorkspace(v string) *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.SetWorkspace(v) - }) -} - -// UpdateWorkspace sets the "workspace" field to the value that was provided on create. -func (u *SourceControlUpsertOne) UpdateWorkspace() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateWorkspace() - }) -} - -// ClearWorkspace clears the value of the "workspace" field. -func (u *SourceControlUpsertOne) ClearWorkspace() *SourceControlUpsertOne { - return u.Update(func(s *SourceControlUpsert) { - s.ClearWorkspace() + s.ClearCommitURL() }) } @@ -1282,7 +707,7 @@ func (sccb *SourceControlCreateBulk) ExecX(ctx context.Context) { // // Override some of the fields with custom // // update values. // Update(func(u *ent.SourceControlUpsert) { -// SetProvider(v+v). +// SetRepo(v+v). // }). // Exec(ctx) func (sccb *SourceControlCreateBulk) OnConflict(opts ...sql.ConflictOption) *SourceControlUpsertBulk { @@ -1361,48 +786,6 @@ func (u *SourceControlUpsertBulk) Update(set func(*SourceControlUpsert)) *Source return u } -// SetProvider sets the "provider" field. -func (u *SourceControlUpsertBulk) SetProvider(v sourcecontrol.Provider) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetProvider(v) - }) -} - -// UpdateProvider sets the "provider" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateProvider() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateProvider() - }) -} - -// ClearProvider clears the value of the "provider" field. -func (u *SourceControlUpsertBulk) ClearProvider() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearProvider() - }) -} - -// SetInstanceURL sets the "instance_url" field. -func (u *SourceControlUpsertBulk) SetInstanceURL(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetInstanceURL(v) - }) -} - -// UpdateInstanceURL sets the "instance_url" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateInstanceURL() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateInstanceURL() - }) -} - -// ClearInstanceURL clears the value of the "instance_url" field. -func (u *SourceControlUpsertBulk) ClearInstanceURL() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearInstanceURL() - }) -} - // SetRepo sets the "repo" field. func (u *SourceControlUpsertBulk) SetRepo(v string) *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { @@ -1424,276 +807,108 @@ func (u *SourceControlUpsertBulk) ClearRepo() *SourceControlUpsertBulk { }) } -// SetRefs sets the "refs" field. -func (u *SourceControlUpsertBulk) SetRefs(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetRefs(v) - }) -} - -// UpdateRefs sets the "refs" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateRefs() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateRefs() - }) -} - -// ClearRefs clears the value of the "refs" field. -func (u *SourceControlUpsertBulk) ClearRefs() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearRefs() - }) -} - -// SetCommitSha sets the "commit_sha" field. -func (u *SourceControlUpsertBulk) SetCommitSha(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetCommitSha(v) - }) -} - -// UpdateCommitSha sets the "commit_sha" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateCommitSha() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateCommitSha() - }) -} - -// ClearCommitSha clears the value of the "commit_sha" field. -func (u *SourceControlUpsertBulk) ClearCommitSha() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearCommitSha() - }) -} - -// SetActor sets the "actor" field. -func (u *SourceControlUpsertBulk) SetActor(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetActor(v) - }) -} - -// UpdateActor sets the "actor" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateActor() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateActor() - }) -} - -// ClearActor clears the value of the "actor" field. -func (u *SourceControlUpsertBulk) ClearActor() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearActor() - }) -} - -// SetEventName sets the "event_name" field. -func (u *SourceControlUpsertBulk) SetEventName(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetEventName(v) - }) -} - -// UpdateEventName sets the "event_name" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateEventName() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateEventName() - }) -} - -// ClearEventName clears the value of the "event_name" field. -func (u *SourceControlUpsertBulk) ClearEventName() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearEventName() - }) -} - -// SetWorkflow sets the "workflow" field. -func (u *SourceControlUpsertBulk) SetWorkflow(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetWorkflow(v) - }) -} - -// UpdateWorkflow sets the "workflow" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateWorkflow() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateWorkflow() - }) -} - -// ClearWorkflow clears the value of the "workflow" field. -func (u *SourceControlUpsertBulk) ClearWorkflow() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearWorkflow() - }) -} - -// SetRunID sets the "run_id" field. -func (u *SourceControlUpsertBulk) SetRunID(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetRunID(v) - }) -} - -// UpdateRunID sets the "run_id" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateRunID() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunID() - }) -} - -// ClearRunID clears the value of the "run_id" field. -func (u *SourceControlUpsertBulk) ClearRunID() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearRunID() - }) -} - -// SetRunNumber sets the "run_number" field. -func (u *SourceControlUpsertBulk) SetRunNumber(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetRunNumber(v) - }) -} - -// UpdateRunNumber sets the "run_number" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateRunNumber() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunNumber() - }) -} - -// ClearRunNumber clears the value of the "run_number" field. -func (u *SourceControlUpsertBulk) ClearRunNumber() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearRunNumber() - }) -} - -// SetJob sets the "job" field. -func (u *SourceControlUpsertBulk) SetJob(v string) *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.SetJob(v) - }) -} - -// UpdateJob sets the "job" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateJob() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.UpdateJob() - }) -} - -// ClearJob clears the value of the "job" field. -func (u *SourceControlUpsertBulk) ClearJob() *SourceControlUpsertBulk { - return u.Update(func(s *SourceControlUpsert) { - s.ClearJob() - }) -} - -// SetAction sets the "action" field. -func (u *SourceControlUpsertBulk) SetAction(v string) *SourceControlUpsertBulk { +// SetRepoURL sets the "repo_url" field. +func (u *SourceControlUpsertBulk) SetRepoURL(v string) *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.SetAction(v) + s.SetRepoURL(v) }) } -// UpdateAction sets the "action" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateAction() *SourceControlUpsertBulk { +// UpdateRepoURL sets the "repo_url" field to the value that was provided on create. +func (u *SourceControlUpsertBulk) UpdateRepoURL() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.UpdateAction() + s.UpdateRepoURL() }) } -// ClearAction clears the value of the "action" field. -func (u *SourceControlUpsertBulk) ClearAction() *SourceControlUpsertBulk { +// ClearRepoURL clears the value of the "repo_url" field. +func (u *SourceControlUpsertBulk) ClearRepoURL() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.ClearAction() + s.ClearRepoURL() }) } -// SetRunnerName sets the "runner_name" field. -func (u *SourceControlUpsertBulk) SetRunnerName(v string) *SourceControlUpsertBulk { +// SetRef sets the "ref" field. +func (u *SourceControlUpsertBulk) SetRef(v string) *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.SetRunnerName(v) + s.SetRef(v) }) } -// UpdateRunnerName sets the "runner_name" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateRunnerName() *SourceControlUpsertBulk { +// UpdateRef sets the "ref" field to the value that was provided on create. +func (u *SourceControlUpsertBulk) UpdateRef() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunnerName() + s.UpdateRef() }) } -// ClearRunnerName clears the value of the "runner_name" field. -func (u *SourceControlUpsertBulk) ClearRunnerName() *SourceControlUpsertBulk { +// ClearRef clears the value of the "ref" field. +func (u *SourceControlUpsertBulk) ClearRef() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.ClearRunnerName() + s.ClearRef() }) } -// SetRunnerArch sets the "runner_arch" field. -func (u *SourceControlUpsertBulk) SetRunnerArch(v string) *SourceControlUpsertBulk { +// SetRefURL sets the "ref_url" field. +func (u *SourceControlUpsertBulk) SetRefURL(v string) *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.SetRunnerArch(v) + s.SetRefURL(v) }) } -// UpdateRunnerArch sets the "runner_arch" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateRunnerArch() *SourceControlUpsertBulk { +// UpdateRefURL sets the "ref_url" field to the value that was provided on create. +func (u *SourceControlUpsertBulk) UpdateRefURL() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunnerArch() + s.UpdateRefURL() }) } -// ClearRunnerArch clears the value of the "runner_arch" field. -func (u *SourceControlUpsertBulk) ClearRunnerArch() *SourceControlUpsertBulk { +// ClearRefURL clears the value of the "ref_url" field. +func (u *SourceControlUpsertBulk) ClearRefURL() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.ClearRunnerArch() + s.ClearRefURL() }) } -// SetRunnerOs sets the "runner_os" field. -func (u *SourceControlUpsertBulk) SetRunnerOs(v string) *SourceControlUpsertBulk { +// SetCommit sets the "commit" field. +func (u *SourceControlUpsertBulk) SetCommit(v string) *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.SetRunnerOs(v) + s.SetCommit(v) }) } -// UpdateRunnerOs sets the "runner_os" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateRunnerOs() *SourceControlUpsertBulk { +// UpdateCommit sets the "commit" field to the value that was provided on create. +func (u *SourceControlUpsertBulk) UpdateCommit() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.UpdateRunnerOs() + s.UpdateCommit() }) } -// ClearRunnerOs clears the value of the "runner_os" field. -func (u *SourceControlUpsertBulk) ClearRunnerOs() *SourceControlUpsertBulk { +// ClearCommit clears the value of the "commit" field. +func (u *SourceControlUpsertBulk) ClearCommit() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.ClearRunnerOs() + s.ClearCommit() }) } -// SetWorkspace sets the "workspace" field. -func (u *SourceControlUpsertBulk) SetWorkspace(v string) *SourceControlUpsertBulk { +// SetCommitURL sets the "commit_url" field. +func (u *SourceControlUpsertBulk) SetCommitURL(v string) *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.SetWorkspace(v) + s.SetCommitURL(v) }) } -// UpdateWorkspace sets the "workspace" field to the value that was provided on create. -func (u *SourceControlUpsertBulk) UpdateWorkspace() *SourceControlUpsertBulk { +// UpdateCommitURL sets the "commit_url" field to the value that was provided on create. +func (u *SourceControlUpsertBulk) UpdateCommitURL() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.UpdateWorkspace() + s.UpdateCommitURL() }) } -// ClearWorkspace clears the value of the "workspace" field. -func (u *SourceControlUpsertBulk) ClearWorkspace() *SourceControlUpsertBulk { +// ClearCommitURL clears the value of the "commit_url" field. +func (u *SourceControlUpsertBulk) ClearCommitURL() *SourceControlUpsertBulk { return u.Update(func(s *SourceControlUpsert) { - s.ClearWorkspace() + s.ClearCommitURL() }) } diff --git a/ent/gen/ent/sourcecontrol_query.go b/ent/gen/ent/sourcecontrol_query.go index a96c8c18..74bd4241 100644 --- a/ent/gen/ent/sourcecontrol_query.go +++ b/ent/gen/ent/sourcecontrol_query.go @@ -77,7 +77,7 @@ func (scq *SourceControlQuery) QueryBazelInvocation() *BazelInvocationQuery { step := sqlgraph.NewStep( sqlgraph.From(sourcecontrol.Table, sourcecontrol.FieldID, selector), sqlgraph.To(bazelinvocation.Table, bazelinvocation.FieldID), - sqlgraph.Edge(sqlgraph.O2O, true, sourcecontrol.BazelInvocationTable, sourcecontrol.BazelInvocationColumn), + sqlgraph.Edge(sqlgraph.M2O, true, sourcecontrol.BazelInvocationTable, sourcecontrol.BazelInvocationColumn), ) fromU = sqlgraph.SetNeighbors(scq.driver.Dialect(), step) return fromU, nil @@ -302,12 +302,12 @@ func (scq *SourceControlQuery) WithBazelInvocation(opts ...func(*BazelInvocation // Example: // // var v []struct { -// Provider sourcecontrol.Provider `json:"provider,omitempty"` +// Repo string `json:"repo,omitempty"` // Count int `json:"count,omitempty"` // } // // client.SourceControl.Query(). -// GroupBy(sourcecontrol.FieldProvider). +// GroupBy(sourcecontrol.FieldRepo). // Aggregate(ent.Count()). // Scan(ctx, &v) func (scq *SourceControlQuery) GroupBy(field string, fields ...string) *SourceControlGroupBy { @@ -325,11 +325,11 @@ func (scq *SourceControlQuery) GroupBy(field string, fields ...string) *SourceCo // Example: // // var v []struct { -// Provider sourcecontrol.Provider `json:"provider,omitempty"` +// Repo string `json:"repo,omitempty"` // } // // client.SourceControl.Query(). -// Select(sourcecontrol.FieldProvider). +// Select(sourcecontrol.FieldRepo). // Scan(ctx, &v) func (scq *SourceControlQuery) Select(fields ...string) *SourceControlSelect { scq.ctx.Fields = append(scq.ctx.Fields, fields...) diff --git a/ent/gen/ent/sourcecontrol_update.go b/ent/gen/ent/sourcecontrol_update.go index 077f91ab..3d4d7309 100644 --- a/ent/gen/ent/sourcecontrol_update.go +++ b/ent/gen/ent/sourcecontrol_update.go @@ -29,46 +29,6 @@ func (scu *SourceControlUpdate) Where(ps ...predicate.SourceControl) *SourceCont return scu } -// SetProvider sets the "provider" field. -func (scu *SourceControlUpdate) SetProvider(s sourcecontrol.Provider) *SourceControlUpdate { - scu.mutation.SetProvider(s) - return scu -} - -// SetNillableProvider sets the "provider" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableProvider(s *sourcecontrol.Provider) *SourceControlUpdate { - if s != nil { - scu.SetProvider(*s) - } - return scu -} - -// ClearProvider clears the value of the "provider" field. -func (scu *SourceControlUpdate) ClearProvider() *SourceControlUpdate { - scu.mutation.ClearProvider() - return scu -} - -// SetInstanceURL sets the "instance_url" field. -func (scu *SourceControlUpdate) SetInstanceURL(s string) *SourceControlUpdate { - scu.mutation.SetInstanceURL(s) - return scu -} - -// SetNillableInstanceURL sets the "instance_url" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableInstanceURL(s *string) *SourceControlUpdate { - if s != nil { - scu.SetInstanceURL(*s) - } - return scu -} - -// ClearInstanceURL clears the value of the "instance_url" field. -func (scu *SourceControlUpdate) ClearInstanceURL() *SourceControlUpdate { - scu.mutation.ClearInstanceURL() - return scu -} - // SetRepo sets the "repo" field. func (scu *SourceControlUpdate) SetRepo(s string) *SourceControlUpdate { scu.mutation.SetRepo(s) @@ -89,263 +49,103 @@ func (scu *SourceControlUpdate) ClearRepo() *SourceControlUpdate { return scu } -// SetRefs sets the "refs" field. -func (scu *SourceControlUpdate) SetRefs(s string) *SourceControlUpdate { - scu.mutation.SetRefs(s) - return scu -} - -// SetNillableRefs sets the "refs" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableRefs(s *string) *SourceControlUpdate { - if s != nil { - scu.SetRefs(*s) - } - return scu -} - -// ClearRefs clears the value of the "refs" field. -func (scu *SourceControlUpdate) ClearRefs() *SourceControlUpdate { - scu.mutation.ClearRefs() - return scu -} - -// SetCommitSha sets the "commit_sha" field. -func (scu *SourceControlUpdate) SetCommitSha(s string) *SourceControlUpdate { - scu.mutation.SetCommitSha(s) - return scu -} - -// SetNillableCommitSha sets the "commit_sha" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableCommitSha(s *string) *SourceControlUpdate { - if s != nil { - scu.SetCommitSha(*s) - } - return scu -} - -// ClearCommitSha clears the value of the "commit_sha" field. -func (scu *SourceControlUpdate) ClearCommitSha() *SourceControlUpdate { - scu.mutation.ClearCommitSha() - return scu -} - -// SetActor sets the "actor" field. -func (scu *SourceControlUpdate) SetActor(s string) *SourceControlUpdate { - scu.mutation.SetActor(s) - return scu -} - -// SetNillableActor sets the "actor" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableActor(s *string) *SourceControlUpdate { - if s != nil { - scu.SetActor(*s) - } - return scu -} - -// ClearActor clears the value of the "actor" field. -func (scu *SourceControlUpdate) ClearActor() *SourceControlUpdate { - scu.mutation.ClearActor() +// SetRepoURL sets the "repo_url" field. +func (scu *SourceControlUpdate) SetRepoURL(s string) *SourceControlUpdate { + scu.mutation.SetRepoURL(s) return scu } -// SetEventName sets the "event_name" field. -func (scu *SourceControlUpdate) SetEventName(s string) *SourceControlUpdate { - scu.mutation.SetEventName(s) - return scu -} - -// SetNillableEventName sets the "event_name" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableEventName(s *string) *SourceControlUpdate { +// SetNillableRepoURL sets the "repo_url" field if the given value is not nil. +func (scu *SourceControlUpdate) SetNillableRepoURL(s *string) *SourceControlUpdate { if s != nil { - scu.SetEventName(*s) + scu.SetRepoURL(*s) } return scu } -// ClearEventName clears the value of the "event_name" field. -func (scu *SourceControlUpdate) ClearEventName() *SourceControlUpdate { - scu.mutation.ClearEventName() +// ClearRepoURL clears the value of the "repo_url" field. +func (scu *SourceControlUpdate) ClearRepoURL() *SourceControlUpdate { + scu.mutation.ClearRepoURL() return scu } -// SetWorkflow sets the "workflow" field. -func (scu *SourceControlUpdate) SetWorkflow(s string) *SourceControlUpdate { - scu.mutation.SetWorkflow(s) +// SetRef sets the "ref" field. +func (scu *SourceControlUpdate) SetRef(s string) *SourceControlUpdate { + scu.mutation.SetRef(s) return scu } -// SetNillableWorkflow sets the "workflow" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableWorkflow(s *string) *SourceControlUpdate { +// SetNillableRef sets the "ref" field if the given value is not nil. +func (scu *SourceControlUpdate) SetNillableRef(s *string) *SourceControlUpdate { if s != nil { - scu.SetWorkflow(*s) + scu.SetRef(*s) } return scu } -// ClearWorkflow clears the value of the "workflow" field. -func (scu *SourceControlUpdate) ClearWorkflow() *SourceControlUpdate { - scu.mutation.ClearWorkflow() +// ClearRef clears the value of the "ref" field. +func (scu *SourceControlUpdate) ClearRef() *SourceControlUpdate { + scu.mutation.ClearRef() return scu } -// SetRunID sets the "run_id" field. -func (scu *SourceControlUpdate) SetRunID(s string) *SourceControlUpdate { - scu.mutation.SetRunID(s) +// SetRefURL sets the "ref_url" field. +func (scu *SourceControlUpdate) SetRefURL(s string) *SourceControlUpdate { + scu.mutation.SetRefURL(s) return scu } -// SetNillableRunID sets the "run_id" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableRunID(s *string) *SourceControlUpdate { +// SetNillableRefURL sets the "ref_url" field if the given value is not nil. +func (scu *SourceControlUpdate) SetNillableRefURL(s *string) *SourceControlUpdate { if s != nil { - scu.SetRunID(*s) + scu.SetRefURL(*s) } return scu } -// ClearRunID clears the value of the "run_id" field. -func (scu *SourceControlUpdate) ClearRunID() *SourceControlUpdate { - scu.mutation.ClearRunID() +// ClearRefURL clears the value of the "ref_url" field. +func (scu *SourceControlUpdate) ClearRefURL() *SourceControlUpdate { + scu.mutation.ClearRefURL() return scu } -// SetRunNumber sets the "run_number" field. -func (scu *SourceControlUpdate) SetRunNumber(s string) *SourceControlUpdate { - scu.mutation.SetRunNumber(s) +// SetCommit sets the "commit" field. +func (scu *SourceControlUpdate) SetCommit(s string) *SourceControlUpdate { + scu.mutation.SetCommit(s) return scu } -// SetNillableRunNumber sets the "run_number" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableRunNumber(s *string) *SourceControlUpdate { +// SetNillableCommit sets the "commit" field if the given value is not nil. +func (scu *SourceControlUpdate) SetNillableCommit(s *string) *SourceControlUpdate { if s != nil { - scu.SetRunNumber(*s) + scu.SetCommit(*s) } return scu } -// ClearRunNumber clears the value of the "run_number" field. -func (scu *SourceControlUpdate) ClearRunNumber() *SourceControlUpdate { - scu.mutation.ClearRunNumber() +// ClearCommit clears the value of the "commit" field. +func (scu *SourceControlUpdate) ClearCommit() *SourceControlUpdate { + scu.mutation.ClearCommit() return scu } -// SetJob sets the "job" field. -func (scu *SourceControlUpdate) SetJob(s string) *SourceControlUpdate { - scu.mutation.SetJob(s) +// SetCommitURL sets the "commit_url" field. +func (scu *SourceControlUpdate) SetCommitURL(s string) *SourceControlUpdate { + scu.mutation.SetCommitURL(s) return scu } -// SetNillableJob sets the "job" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableJob(s *string) *SourceControlUpdate { +// SetNillableCommitURL sets the "commit_url" field if the given value is not nil. +func (scu *SourceControlUpdate) SetNillableCommitURL(s *string) *SourceControlUpdate { if s != nil { - scu.SetJob(*s) + scu.SetCommitURL(*s) } return scu } -// ClearJob clears the value of the "job" field. -func (scu *SourceControlUpdate) ClearJob() *SourceControlUpdate { - scu.mutation.ClearJob() - return scu -} - -// SetAction sets the "action" field. -func (scu *SourceControlUpdate) SetAction(s string) *SourceControlUpdate { - scu.mutation.SetAction(s) - return scu -} - -// SetNillableAction sets the "action" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableAction(s *string) *SourceControlUpdate { - if s != nil { - scu.SetAction(*s) - } - return scu -} - -// ClearAction clears the value of the "action" field. -func (scu *SourceControlUpdate) ClearAction() *SourceControlUpdate { - scu.mutation.ClearAction() - return scu -} - -// SetRunnerName sets the "runner_name" field. -func (scu *SourceControlUpdate) SetRunnerName(s string) *SourceControlUpdate { - scu.mutation.SetRunnerName(s) - return scu -} - -// SetNillableRunnerName sets the "runner_name" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableRunnerName(s *string) *SourceControlUpdate { - if s != nil { - scu.SetRunnerName(*s) - } - return scu -} - -// ClearRunnerName clears the value of the "runner_name" field. -func (scu *SourceControlUpdate) ClearRunnerName() *SourceControlUpdate { - scu.mutation.ClearRunnerName() - return scu -} - -// SetRunnerArch sets the "runner_arch" field. -func (scu *SourceControlUpdate) SetRunnerArch(s string) *SourceControlUpdate { - scu.mutation.SetRunnerArch(s) - return scu -} - -// SetNillableRunnerArch sets the "runner_arch" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableRunnerArch(s *string) *SourceControlUpdate { - if s != nil { - scu.SetRunnerArch(*s) - } - return scu -} - -// ClearRunnerArch clears the value of the "runner_arch" field. -func (scu *SourceControlUpdate) ClearRunnerArch() *SourceControlUpdate { - scu.mutation.ClearRunnerArch() - return scu -} - -// SetRunnerOs sets the "runner_os" field. -func (scu *SourceControlUpdate) SetRunnerOs(s string) *SourceControlUpdate { - scu.mutation.SetRunnerOs(s) - return scu -} - -// SetNillableRunnerOs sets the "runner_os" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableRunnerOs(s *string) *SourceControlUpdate { - if s != nil { - scu.SetRunnerOs(*s) - } - return scu -} - -// ClearRunnerOs clears the value of the "runner_os" field. -func (scu *SourceControlUpdate) ClearRunnerOs() *SourceControlUpdate { - scu.mutation.ClearRunnerOs() - return scu -} - -// SetWorkspace sets the "workspace" field. -func (scu *SourceControlUpdate) SetWorkspace(s string) *SourceControlUpdate { - scu.mutation.SetWorkspace(s) - return scu -} - -// SetNillableWorkspace sets the "workspace" field if the given value is not nil. -func (scu *SourceControlUpdate) SetNillableWorkspace(s *string) *SourceControlUpdate { - if s != nil { - scu.SetWorkspace(*s) - } - return scu -} - -// ClearWorkspace clears the value of the "workspace" field. -func (scu *SourceControlUpdate) ClearWorkspace() *SourceControlUpdate { - scu.mutation.ClearWorkspace() +// ClearCommitURL clears the value of the "commit_url" field. +func (scu *SourceControlUpdate) ClearCommitURL() *SourceControlUpdate { + scu.mutation.ClearCommitURL() return scu } @@ -406,16 +206,6 @@ func (scu *SourceControlUpdate) ExecX(ctx context.Context) { } } -// check runs all checks and user-defined validators on the builder. -func (scu *SourceControlUpdate) check() error { - if v, ok := scu.mutation.Provider(); ok { - if err := sourcecontrol.ProviderValidator(v); err != nil { - return &ValidationError{Name: "provider", err: fmt.Errorf(`ent: validator failed for field "SourceControl.provider": %w`, err)} - } - } - return nil -} - // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (scu *SourceControlUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *SourceControlUpdate { scu.modifiers = append(scu.modifiers, modifiers...) @@ -423,9 +213,6 @@ func (scu *SourceControlUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) } func (scu *SourceControlUpdate) sqlSave(ctx context.Context) (n int, err error) { - if err := scu.check(); err != nil { - return n, err - } _spec := sqlgraph.NewUpdateSpec(sourcecontrol.Table, sourcecontrol.Columns, sqlgraph.NewFieldSpec(sourcecontrol.FieldID, field.TypeInt64)) if ps := scu.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { @@ -434,105 +221,45 @@ func (scu *SourceControlUpdate) sqlSave(ctx context.Context) (n int, err error) } } } - if value, ok := scu.mutation.Provider(); ok { - _spec.SetField(sourcecontrol.FieldProvider, field.TypeEnum, value) - } - if scu.mutation.ProviderCleared() { - _spec.ClearField(sourcecontrol.FieldProvider, field.TypeEnum) - } - if value, ok := scu.mutation.InstanceURL(); ok { - _spec.SetField(sourcecontrol.FieldInstanceURL, field.TypeString, value) - } - if scu.mutation.InstanceURLCleared() { - _spec.ClearField(sourcecontrol.FieldInstanceURL, field.TypeString) - } if value, ok := scu.mutation.Repo(); ok { _spec.SetField(sourcecontrol.FieldRepo, field.TypeString, value) } if scu.mutation.RepoCleared() { _spec.ClearField(sourcecontrol.FieldRepo, field.TypeString) } - if value, ok := scu.mutation.Refs(); ok { - _spec.SetField(sourcecontrol.FieldRefs, field.TypeString, value) - } - if scu.mutation.RefsCleared() { - _spec.ClearField(sourcecontrol.FieldRefs, field.TypeString) - } - if value, ok := scu.mutation.CommitSha(); ok { - _spec.SetField(sourcecontrol.FieldCommitSha, field.TypeString, value) - } - if scu.mutation.CommitShaCleared() { - _spec.ClearField(sourcecontrol.FieldCommitSha, field.TypeString) - } - if value, ok := scu.mutation.Actor(); ok { - _spec.SetField(sourcecontrol.FieldActor, field.TypeString, value) - } - if scu.mutation.ActorCleared() { - _spec.ClearField(sourcecontrol.FieldActor, field.TypeString) - } - if value, ok := scu.mutation.EventName(); ok { - _spec.SetField(sourcecontrol.FieldEventName, field.TypeString, value) - } - if scu.mutation.EventNameCleared() { - _spec.ClearField(sourcecontrol.FieldEventName, field.TypeString) - } - if value, ok := scu.mutation.Workflow(); ok { - _spec.SetField(sourcecontrol.FieldWorkflow, field.TypeString, value) - } - if scu.mutation.WorkflowCleared() { - _spec.ClearField(sourcecontrol.FieldWorkflow, field.TypeString) - } - if value, ok := scu.mutation.RunID(); ok { - _spec.SetField(sourcecontrol.FieldRunID, field.TypeString, value) - } - if scu.mutation.RunIDCleared() { - _spec.ClearField(sourcecontrol.FieldRunID, field.TypeString) - } - if value, ok := scu.mutation.RunNumber(); ok { - _spec.SetField(sourcecontrol.FieldRunNumber, field.TypeString, value) - } - if scu.mutation.RunNumberCleared() { - _spec.ClearField(sourcecontrol.FieldRunNumber, field.TypeString) - } - if value, ok := scu.mutation.Job(); ok { - _spec.SetField(sourcecontrol.FieldJob, field.TypeString, value) - } - if scu.mutation.JobCleared() { - _spec.ClearField(sourcecontrol.FieldJob, field.TypeString) - } - if value, ok := scu.mutation.Action(); ok { - _spec.SetField(sourcecontrol.FieldAction, field.TypeString, value) + if value, ok := scu.mutation.RepoURL(); ok { + _spec.SetField(sourcecontrol.FieldRepoURL, field.TypeString, value) } - if scu.mutation.ActionCleared() { - _spec.ClearField(sourcecontrol.FieldAction, field.TypeString) + if scu.mutation.RepoURLCleared() { + _spec.ClearField(sourcecontrol.FieldRepoURL, field.TypeString) } - if value, ok := scu.mutation.RunnerName(); ok { - _spec.SetField(sourcecontrol.FieldRunnerName, field.TypeString, value) + if value, ok := scu.mutation.Ref(); ok { + _spec.SetField(sourcecontrol.FieldRef, field.TypeString, value) } - if scu.mutation.RunnerNameCleared() { - _spec.ClearField(sourcecontrol.FieldRunnerName, field.TypeString) + if scu.mutation.RefCleared() { + _spec.ClearField(sourcecontrol.FieldRef, field.TypeString) } - if value, ok := scu.mutation.RunnerArch(); ok { - _spec.SetField(sourcecontrol.FieldRunnerArch, field.TypeString, value) + if value, ok := scu.mutation.RefURL(); ok { + _spec.SetField(sourcecontrol.FieldRefURL, field.TypeString, value) } - if scu.mutation.RunnerArchCleared() { - _spec.ClearField(sourcecontrol.FieldRunnerArch, field.TypeString) + if scu.mutation.RefURLCleared() { + _spec.ClearField(sourcecontrol.FieldRefURL, field.TypeString) } - if value, ok := scu.mutation.RunnerOs(); ok { - _spec.SetField(sourcecontrol.FieldRunnerOs, field.TypeString, value) + if value, ok := scu.mutation.Commit(); ok { + _spec.SetField(sourcecontrol.FieldCommit, field.TypeString, value) } - if scu.mutation.RunnerOsCleared() { - _spec.ClearField(sourcecontrol.FieldRunnerOs, field.TypeString) + if scu.mutation.CommitCleared() { + _spec.ClearField(sourcecontrol.FieldCommit, field.TypeString) } - if value, ok := scu.mutation.Workspace(); ok { - _spec.SetField(sourcecontrol.FieldWorkspace, field.TypeString, value) + if value, ok := scu.mutation.CommitURL(); ok { + _spec.SetField(sourcecontrol.FieldCommitURL, field.TypeString, value) } - if scu.mutation.WorkspaceCleared() { - _spec.ClearField(sourcecontrol.FieldWorkspace, field.TypeString) + if scu.mutation.CommitURLCleared() { + _spec.ClearField(sourcecontrol.FieldCommitURL, field.TypeString) } if scu.mutation.BazelInvocationCleared() { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.M2O, Inverse: true, Table: sourcecontrol.BazelInvocationTable, Columns: []string{sourcecontrol.BazelInvocationColumn}, @@ -545,7 +272,7 @@ func (scu *SourceControlUpdate) sqlSave(ctx context.Context) (n int, err error) } if nodes := scu.mutation.BazelInvocationIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.M2O, Inverse: true, Table: sourcecontrol.BazelInvocationTable, Columns: []string{sourcecontrol.BazelInvocationColumn}, @@ -581,46 +308,6 @@ type SourceControlUpdateOne struct { modifiers []func(*sql.UpdateBuilder) } -// SetProvider sets the "provider" field. -func (scuo *SourceControlUpdateOne) SetProvider(s sourcecontrol.Provider) *SourceControlUpdateOne { - scuo.mutation.SetProvider(s) - return scuo -} - -// SetNillableProvider sets the "provider" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableProvider(s *sourcecontrol.Provider) *SourceControlUpdateOne { - if s != nil { - scuo.SetProvider(*s) - } - return scuo -} - -// ClearProvider clears the value of the "provider" field. -func (scuo *SourceControlUpdateOne) ClearProvider() *SourceControlUpdateOne { - scuo.mutation.ClearProvider() - return scuo -} - -// SetInstanceURL sets the "instance_url" field. -func (scuo *SourceControlUpdateOne) SetInstanceURL(s string) *SourceControlUpdateOne { - scuo.mutation.SetInstanceURL(s) - return scuo -} - -// SetNillableInstanceURL sets the "instance_url" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableInstanceURL(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetInstanceURL(*s) - } - return scuo -} - -// ClearInstanceURL clears the value of the "instance_url" field. -func (scuo *SourceControlUpdateOne) ClearInstanceURL() *SourceControlUpdateOne { - scuo.mutation.ClearInstanceURL() - return scuo -} - // SetRepo sets the "repo" field. func (scuo *SourceControlUpdateOne) SetRepo(s string) *SourceControlUpdateOne { scuo.mutation.SetRepo(s) @@ -641,263 +328,103 @@ func (scuo *SourceControlUpdateOne) ClearRepo() *SourceControlUpdateOne { return scuo } -// SetRefs sets the "refs" field. -func (scuo *SourceControlUpdateOne) SetRefs(s string) *SourceControlUpdateOne { - scuo.mutation.SetRefs(s) - return scuo -} - -// SetNillableRefs sets the "refs" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableRefs(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetRefs(*s) - } - return scuo -} - -// ClearRefs clears the value of the "refs" field. -func (scuo *SourceControlUpdateOne) ClearRefs() *SourceControlUpdateOne { - scuo.mutation.ClearRefs() - return scuo -} - -// SetCommitSha sets the "commit_sha" field. -func (scuo *SourceControlUpdateOne) SetCommitSha(s string) *SourceControlUpdateOne { - scuo.mutation.SetCommitSha(s) - return scuo -} - -// SetNillableCommitSha sets the "commit_sha" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableCommitSha(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetCommitSha(*s) - } - return scuo -} - -// ClearCommitSha clears the value of the "commit_sha" field. -func (scuo *SourceControlUpdateOne) ClearCommitSha() *SourceControlUpdateOne { - scuo.mutation.ClearCommitSha() - return scuo -} - -// SetActor sets the "actor" field. -func (scuo *SourceControlUpdateOne) SetActor(s string) *SourceControlUpdateOne { - scuo.mutation.SetActor(s) - return scuo -} - -// SetNillableActor sets the "actor" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableActor(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetActor(*s) - } - return scuo -} - -// ClearActor clears the value of the "actor" field. -func (scuo *SourceControlUpdateOne) ClearActor() *SourceControlUpdateOne { - scuo.mutation.ClearActor() +// SetRepoURL sets the "repo_url" field. +func (scuo *SourceControlUpdateOne) SetRepoURL(s string) *SourceControlUpdateOne { + scuo.mutation.SetRepoURL(s) return scuo } -// SetEventName sets the "event_name" field. -func (scuo *SourceControlUpdateOne) SetEventName(s string) *SourceControlUpdateOne { - scuo.mutation.SetEventName(s) - return scuo -} - -// SetNillableEventName sets the "event_name" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableEventName(s *string) *SourceControlUpdateOne { +// SetNillableRepoURL sets the "repo_url" field if the given value is not nil. +func (scuo *SourceControlUpdateOne) SetNillableRepoURL(s *string) *SourceControlUpdateOne { if s != nil { - scuo.SetEventName(*s) + scuo.SetRepoURL(*s) } return scuo } -// ClearEventName clears the value of the "event_name" field. -func (scuo *SourceControlUpdateOne) ClearEventName() *SourceControlUpdateOne { - scuo.mutation.ClearEventName() +// ClearRepoURL clears the value of the "repo_url" field. +func (scuo *SourceControlUpdateOne) ClearRepoURL() *SourceControlUpdateOne { + scuo.mutation.ClearRepoURL() return scuo } -// SetWorkflow sets the "workflow" field. -func (scuo *SourceControlUpdateOne) SetWorkflow(s string) *SourceControlUpdateOne { - scuo.mutation.SetWorkflow(s) +// SetRef sets the "ref" field. +func (scuo *SourceControlUpdateOne) SetRef(s string) *SourceControlUpdateOne { + scuo.mutation.SetRef(s) return scuo } -// SetNillableWorkflow sets the "workflow" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableWorkflow(s *string) *SourceControlUpdateOne { +// SetNillableRef sets the "ref" field if the given value is not nil. +func (scuo *SourceControlUpdateOne) SetNillableRef(s *string) *SourceControlUpdateOne { if s != nil { - scuo.SetWorkflow(*s) + scuo.SetRef(*s) } return scuo } -// ClearWorkflow clears the value of the "workflow" field. -func (scuo *SourceControlUpdateOne) ClearWorkflow() *SourceControlUpdateOne { - scuo.mutation.ClearWorkflow() +// ClearRef clears the value of the "ref" field. +func (scuo *SourceControlUpdateOne) ClearRef() *SourceControlUpdateOne { + scuo.mutation.ClearRef() return scuo } -// SetRunID sets the "run_id" field. -func (scuo *SourceControlUpdateOne) SetRunID(s string) *SourceControlUpdateOne { - scuo.mutation.SetRunID(s) +// SetRefURL sets the "ref_url" field. +func (scuo *SourceControlUpdateOne) SetRefURL(s string) *SourceControlUpdateOne { + scuo.mutation.SetRefURL(s) return scuo } -// SetNillableRunID sets the "run_id" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableRunID(s *string) *SourceControlUpdateOne { +// SetNillableRefURL sets the "ref_url" field if the given value is not nil. +func (scuo *SourceControlUpdateOne) SetNillableRefURL(s *string) *SourceControlUpdateOne { if s != nil { - scuo.SetRunID(*s) + scuo.SetRefURL(*s) } return scuo } -// ClearRunID clears the value of the "run_id" field. -func (scuo *SourceControlUpdateOne) ClearRunID() *SourceControlUpdateOne { - scuo.mutation.ClearRunID() +// ClearRefURL clears the value of the "ref_url" field. +func (scuo *SourceControlUpdateOne) ClearRefURL() *SourceControlUpdateOne { + scuo.mutation.ClearRefURL() return scuo } -// SetRunNumber sets the "run_number" field. -func (scuo *SourceControlUpdateOne) SetRunNumber(s string) *SourceControlUpdateOne { - scuo.mutation.SetRunNumber(s) +// SetCommit sets the "commit" field. +func (scuo *SourceControlUpdateOne) SetCommit(s string) *SourceControlUpdateOne { + scuo.mutation.SetCommit(s) return scuo } -// SetNillableRunNumber sets the "run_number" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableRunNumber(s *string) *SourceControlUpdateOne { +// SetNillableCommit sets the "commit" field if the given value is not nil. +func (scuo *SourceControlUpdateOne) SetNillableCommit(s *string) *SourceControlUpdateOne { if s != nil { - scuo.SetRunNumber(*s) + scuo.SetCommit(*s) } return scuo } -// ClearRunNumber clears the value of the "run_number" field. -func (scuo *SourceControlUpdateOne) ClearRunNumber() *SourceControlUpdateOne { - scuo.mutation.ClearRunNumber() +// ClearCommit clears the value of the "commit" field. +func (scuo *SourceControlUpdateOne) ClearCommit() *SourceControlUpdateOne { + scuo.mutation.ClearCommit() return scuo } -// SetJob sets the "job" field. -func (scuo *SourceControlUpdateOne) SetJob(s string) *SourceControlUpdateOne { - scuo.mutation.SetJob(s) +// SetCommitURL sets the "commit_url" field. +func (scuo *SourceControlUpdateOne) SetCommitURL(s string) *SourceControlUpdateOne { + scuo.mutation.SetCommitURL(s) return scuo } -// SetNillableJob sets the "job" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableJob(s *string) *SourceControlUpdateOne { +// SetNillableCommitURL sets the "commit_url" field if the given value is not nil. +func (scuo *SourceControlUpdateOne) SetNillableCommitURL(s *string) *SourceControlUpdateOne { if s != nil { - scuo.SetJob(*s) + scuo.SetCommitURL(*s) } return scuo } -// ClearJob clears the value of the "job" field. -func (scuo *SourceControlUpdateOne) ClearJob() *SourceControlUpdateOne { - scuo.mutation.ClearJob() - return scuo -} - -// SetAction sets the "action" field. -func (scuo *SourceControlUpdateOne) SetAction(s string) *SourceControlUpdateOne { - scuo.mutation.SetAction(s) - return scuo -} - -// SetNillableAction sets the "action" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableAction(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetAction(*s) - } - return scuo -} - -// ClearAction clears the value of the "action" field. -func (scuo *SourceControlUpdateOne) ClearAction() *SourceControlUpdateOne { - scuo.mutation.ClearAction() - return scuo -} - -// SetRunnerName sets the "runner_name" field. -func (scuo *SourceControlUpdateOne) SetRunnerName(s string) *SourceControlUpdateOne { - scuo.mutation.SetRunnerName(s) - return scuo -} - -// SetNillableRunnerName sets the "runner_name" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableRunnerName(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetRunnerName(*s) - } - return scuo -} - -// ClearRunnerName clears the value of the "runner_name" field. -func (scuo *SourceControlUpdateOne) ClearRunnerName() *SourceControlUpdateOne { - scuo.mutation.ClearRunnerName() - return scuo -} - -// SetRunnerArch sets the "runner_arch" field. -func (scuo *SourceControlUpdateOne) SetRunnerArch(s string) *SourceControlUpdateOne { - scuo.mutation.SetRunnerArch(s) - return scuo -} - -// SetNillableRunnerArch sets the "runner_arch" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableRunnerArch(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetRunnerArch(*s) - } - return scuo -} - -// ClearRunnerArch clears the value of the "runner_arch" field. -func (scuo *SourceControlUpdateOne) ClearRunnerArch() *SourceControlUpdateOne { - scuo.mutation.ClearRunnerArch() - return scuo -} - -// SetRunnerOs sets the "runner_os" field. -func (scuo *SourceControlUpdateOne) SetRunnerOs(s string) *SourceControlUpdateOne { - scuo.mutation.SetRunnerOs(s) - return scuo -} - -// SetNillableRunnerOs sets the "runner_os" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableRunnerOs(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetRunnerOs(*s) - } - return scuo -} - -// ClearRunnerOs clears the value of the "runner_os" field. -func (scuo *SourceControlUpdateOne) ClearRunnerOs() *SourceControlUpdateOne { - scuo.mutation.ClearRunnerOs() - return scuo -} - -// SetWorkspace sets the "workspace" field. -func (scuo *SourceControlUpdateOne) SetWorkspace(s string) *SourceControlUpdateOne { - scuo.mutation.SetWorkspace(s) - return scuo -} - -// SetNillableWorkspace sets the "workspace" field if the given value is not nil. -func (scuo *SourceControlUpdateOne) SetNillableWorkspace(s *string) *SourceControlUpdateOne { - if s != nil { - scuo.SetWorkspace(*s) - } - return scuo -} - -// ClearWorkspace clears the value of the "workspace" field. -func (scuo *SourceControlUpdateOne) ClearWorkspace() *SourceControlUpdateOne { - scuo.mutation.ClearWorkspace() +// ClearCommitURL clears the value of the "commit_url" field. +func (scuo *SourceControlUpdateOne) ClearCommitURL() *SourceControlUpdateOne { + scuo.mutation.ClearCommitURL() return scuo } @@ -971,16 +498,6 @@ func (scuo *SourceControlUpdateOne) ExecX(ctx context.Context) { } } -// check runs all checks and user-defined validators on the builder. -func (scuo *SourceControlUpdateOne) check() error { - if v, ok := scuo.mutation.Provider(); ok { - if err := sourcecontrol.ProviderValidator(v); err != nil { - return &ValidationError{Name: "provider", err: fmt.Errorf(`ent: validator failed for field "SourceControl.provider": %w`, err)} - } - } - return nil -} - // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (scuo *SourceControlUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *SourceControlUpdateOne { scuo.modifiers = append(scuo.modifiers, modifiers...) @@ -988,9 +505,6 @@ func (scuo *SourceControlUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilde } func (scuo *SourceControlUpdateOne) sqlSave(ctx context.Context) (_node *SourceControl, err error) { - if err := scuo.check(); err != nil { - return _node, err - } _spec := sqlgraph.NewUpdateSpec(sourcecontrol.Table, sourcecontrol.Columns, sqlgraph.NewFieldSpec(sourcecontrol.FieldID, field.TypeInt64)) id, ok := scuo.mutation.ID() if !ok { @@ -1016,105 +530,45 @@ func (scuo *SourceControlUpdateOne) sqlSave(ctx context.Context) (_node *SourceC } } } - if value, ok := scuo.mutation.Provider(); ok { - _spec.SetField(sourcecontrol.FieldProvider, field.TypeEnum, value) - } - if scuo.mutation.ProviderCleared() { - _spec.ClearField(sourcecontrol.FieldProvider, field.TypeEnum) - } - if value, ok := scuo.mutation.InstanceURL(); ok { - _spec.SetField(sourcecontrol.FieldInstanceURL, field.TypeString, value) - } - if scuo.mutation.InstanceURLCleared() { - _spec.ClearField(sourcecontrol.FieldInstanceURL, field.TypeString) - } if value, ok := scuo.mutation.Repo(); ok { _spec.SetField(sourcecontrol.FieldRepo, field.TypeString, value) } if scuo.mutation.RepoCleared() { _spec.ClearField(sourcecontrol.FieldRepo, field.TypeString) } - if value, ok := scuo.mutation.Refs(); ok { - _spec.SetField(sourcecontrol.FieldRefs, field.TypeString, value) - } - if scuo.mutation.RefsCleared() { - _spec.ClearField(sourcecontrol.FieldRefs, field.TypeString) - } - if value, ok := scuo.mutation.CommitSha(); ok { - _spec.SetField(sourcecontrol.FieldCommitSha, field.TypeString, value) - } - if scuo.mutation.CommitShaCleared() { - _spec.ClearField(sourcecontrol.FieldCommitSha, field.TypeString) - } - if value, ok := scuo.mutation.Actor(); ok { - _spec.SetField(sourcecontrol.FieldActor, field.TypeString, value) - } - if scuo.mutation.ActorCleared() { - _spec.ClearField(sourcecontrol.FieldActor, field.TypeString) - } - if value, ok := scuo.mutation.EventName(); ok { - _spec.SetField(sourcecontrol.FieldEventName, field.TypeString, value) - } - if scuo.mutation.EventNameCleared() { - _spec.ClearField(sourcecontrol.FieldEventName, field.TypeString) - } - if value, ok := scuo.mutation.Workflow(); ok { - _spec.SetField(sourcecontrol.FieldWorkflow, field.TypeString, value) - } - if scuo.mutation.WorkflowCleared() { - _spec.ClearField(sourcecontrol.FieldWorkflow, field.TypeString) - } - if value, ok := scuo.mutation.RunID(); ok { - _spec.SetField(sourcecontrol.FieldRunID, field.TypeString, value) - } - if scuo.mutation.RunIDCleared() { - _spec.ClearField(sourcecontrol.FieldRunID, field.TypeString) - } - if value, ok := scuo.mutation.RunNumber(); ok { - _spec.SetField(sourcecontrol.FieldRunNumber, field.TypeString, value) - } - if scuo.mutation.RunNumberCleared() { - _spec.ClearField(sourcecontrol.FieldRunNumber, field.TypeString) - } - if value, ok := scuo.mutation.Job(); ok { - _spec.SetField(sourcecontrol.FieldJob, field.TypeString, value) - } - if scuo.mutation.JobCleared() { - _spec.ClearField(sourcecontrol.FieldJob, field.TypeString) - } - if value, ok := scuo.mutation.Action(); ok { - _spec.SetField(sourcecontrol.FieldAction, field.TypeString, value) + if value, ok := scuo.mutation.RepoURL(); ok { + _spec.SetField(sourcecontrol.FieldRepoURL, field.TypeString, value) } - if scuo.mutation.ActionCleared() { - _spec.ClearField(sourcecontrol.FieldAction, field.TypeString) + if scuo.mutation.RepoURLCleared() { + _spec.ClearField(sourcecontrol.FieldRepoURL, field.TypeString) } - if value, ok := scuo.mutation.RunnerName(); ok { - _spec.SetField(sourcecontrol.FieldRunnerName, field.TypeString, value) + if value, ok := scuo.mutation.Ref(); ok { + _spec.SetField(sourcecontrol.FieldRef, field.TypeString, value) } - if scuo.mutation.RunnerNameCleared() { - _spec.ClearField(sourcecontrol.FieldRunnerName, field.TypeString) + if scuo.mutation.RefCleared() { + _spec.ClearField(sourcecontrol.FieldRef, field.TypeString) } - if value, ok := scuo.mutation.RunnerArch(); ok { - _spec.SetField(sourcecontrol.FieldRunnerArch, field.TypeString, value) + if value, ok := scuo.mutation.RefURL(); ok { + _spec.SetField(sourcecontrol.FieldRefURL, field.TypeString, value) } - if scuo.mutation.RunnerArchCleared() { - _spec.ClearField(sourcecontrol.FieldRunnerArch, field.TypeString) + if scuo.mutation.RefURLCleared() { + _spec.ClearField(sourcecontrol.FieldRefURL, field.TypeString) } - if value, ok := scuo.mutation.RunnerOs(); ok { - _spec.SetField(sourcecontrol.FieldRunnerOs, field.TypeString, value) + if value, ok := scuo.mutation.Commit(); ok { + _spec.SetField(sourcecontrol.FieldCommit, field.TypeString, value) } - if scuo.mutation.RunnerOsCleared() { - _spec.ClearField(sourcecontrol.FieldRunnerOs, field.TypeString) + if scuo.mutation.CommitCleared() { + _spec.ClearField(sourcecontrol.FieldCommit, field.TypeString) } - if value, ok := scuo.mutation.Workspace(); ok { - _spec.SetField(sourcecontrol.FieldWorkspace, field.TypeString, value) + if value, ok := scuo.mutation.CommitURL(); ok { + _spec.SetField(sourcecontrol.FieldCommitURL, field.TypeString, value) } - if scuo.mutation.WorkspaceCleared() { - _spec.ClearField(sourcecontrol.FieldWorkspace, field.TypeString) + if scuo.mutation.CommitURLCleared() { + _spec.ClearField(sourcecontrol.FieldCommitURL, field.TypeString) } if scuo.mutation.BazelInvocationCleared() { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.M2O, Inverse: true, Table: sourcecontrol.BazelInvocationTable, Columns: []string{sourcecontrol.BazelInvocationColumn}, @@ -1127,7 +581,7 @@ func (scuo *SourceControlUpdateOne) sqlSave(ctx context.Context) (_node *SourceC } if nodes := scuo.mutation.BazelInvocationIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ - Rel: sqlgraph.O2O, + Rel: sqlgraph.M2O, Inverse: true, Table: sourcecontrol.BazelInvocationTable, Columns: []string{sourcecontrol.BazelInvocationColumn}, diff --git a/ent/gen/ent/tx.go b/ent/gen/ent/tx.go index 0f0ff2e8..e3d445b6 100644 --- a/ent/gen/ent/tx.go +++ b/ent/gen/ent/tx.go @@ -34,6 +34,8 @@ type Tx struct { BuildGraphMetrics *BuildGraphMetricsClient // BuildLogChunk is the client for interacting with the BuildLogChunk builders. BuildLogChunk *BuildLogChunkClient + // BuildTag is the client for interacting with the BuildTag builders. + BuildTag *BuildTagClient // Configuration is the client for interacting with the Configuration builders. Configuration *ConfigurationClient // ConnectionMetadata is the client for interacting with the ConnectionMetadata builders. @@ -48,6 +50,8 @@ type Tx struct { InstanceName *InstanceNameClient // InvocationFiles is the client for interacting with the InvocationFiles builders. InvocationFiles *InvocationFilesClient + // InvocationTag is the client for interacting with the InvocationTag builders. + InvocationTag *InvocationTagClient // InvocationTarget is the client for interacting with the InvocationTarget builders. InvocationTarget *InvocationTargetClient // MemoryMetrics is the client for interacting with the MemoryMetrics builders. @@ -219,6 +223,7 @@ func (tx *Tx) init() { tx.Build = NewBuildClient(tx.config) tx.BuildGraphMetrics = NewBuildGraphMetricsClient(tx.config) tx.BuildLogChunk = NewBuildLogChunkClient(tx.config) + tx.BuildTag = NewBuildTagClient(tx.config) tx.Configuration = NewConfigurationClient(tx.config) tx.ConnectionMetadata = NewConnectionMetadataClient(tx.config) tx.EventMetadata = NewEventMetadataClient(tx.config) @@ -226,6 +231,7 @@ func (tx *Tx) init() { tx.IncompleteBuildLog = NewIncompleteBuildLogClient(tx.config) tx.InstanceName = NewInstanceNameClient(tx.config) tx.InvocationFiles = NewInvocationFilesClient(tx.config) + tx.InvocationTag = NewInvocationTagClient(tx.config) tx.InvocationTarget = NewInvocationTargetClient(tx.config) tx.MemoryMetrics = NewMemoryMetricsClient(tx.config) tx.Metrics = NewMetricsClient(tx.config) diff --git a/ent/schema/BUILD.bazel b/ent/schema/BUILD.bazel index d4363925..b2125b09 100644 --- a/ent/schema/BUILD.bazel +++ b/ent/schema/BUILD.bazel @@ -13,6 +13,7 @@ go_library( "build.go", "buildgraphmetrics.go", "buildlogchunk.go", + "buildtag.go", "configuration.go", "connectionmetadata.go", "eventmetadata.go", @@ -20,6 +21,7 @@ go_library( "incompletebuildlog.go", "instancename.go", "invocationfiles.go", + "invocationtag.go", "invocationtarget.go", "memorymetrics.go", "metrics.go", diff --git a/ent/schema/bazelinvocation.go b/ent/schema/bazelinvocation.go index bdcf85a2..84c5a6a6 100644 --- a/ent/schema/bazelinvocation.go +++ b/ent/schema/bazelinvocation.go @@ -32,31 +32,15 @@ func (BazelInvocation) Fields() []ent.Field { // Time the event ended field.Time("ended_at").Optional().Nillable(), - // Rethink? Keep for now to capture existing processing. - field.Int("change_number").Optional(), - - // Rethink? Keep for now. - field.Int("patchset_number").Optional(), - // Build Event Protocol completed successfuly. field.Bool("bep_completed").Default(false), - // Rethink, keep for now. - // A step label pulled from the metada - field.String("step_label").Optional(), - - // Email address of the user who launched the invocation if provided. - field.String("user_email").Optional(), - - // Ldap (username) of the user who launched the invocation if provided. - field.String("user_ldap").Optional().Annotations(entgql.OrderField("USER_LDAP")), + // Username of the user who launched the invocation if provided. + field.String("username").Optional().Annotations(entgql.OrderField("USERNAME")), // The host name from the system where the invocation was launched field.String("hostname").Optional(), - // If this invocation is part of CI - field.Bool("is_ci_worker").Optional(), - // The number of successful fetch events seen. field.Int64("num_fetches").Optional(), @@ -111,6 +95,13 @@ func (BazelInvocation) Edges() []ent.Edge { Ref("bazel_invocations"). Unique(), + // Metadata for a BazelInvocation. + edge.To("tags", InvocationTag.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + entgql.RelayConnection(), + ), + // Event metadata for all events processed for this invocation. edge.To("event_metadata", EventMetadata.Type). Unique(). @@ -175,7 +166,6 @@ func (BazelInvocation) Edges() []ent.Edge { // Edge to source control information edge.To("source_control", SourceControl.Type). - Unique(). Annotations( entsql.OnDelete(entsql.Cascade), ), diff --git a/ent/schema/build.go b/ent/schema/build.go index 2bf44325..00723044 100644 --- a/ent/schema/build.go +++ b/ent/schema/build.go @@ -19,7 +19,6 @@ type Build struct { // Fields of the Build. func (Build) Fields() []ent.Field { return []ent.Field{ - field.String("build_url").Immutable(), field.UUID("build_uuid", uuid.UUID{}).Unique().Immutable(), field.Time("timestamp").Annotations(entgql.OrderField("TIMESTAMP")), } @@ -38,6 +37,13 @@ func (Build) Edges() []ent.Edge { entsql.OnDelete(entsql.Cascade), entgql.RelayConnection(), ), + + // Metadata for a Build. + edge.To("tags", BuildTag.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + entgql.RelayConnection(), + ), } } @@ -45,12 +51,8 @@ func (Build) Edges() []ent.Edge { func (Build) Indexes() []ent.Index { return []ent.Index{ index.Fields("build_uuid"), - index.Fields("build_url"), index.Fields("timestamp"), index.Edges("instance_name"), - index.Fields("build_url"). - Edges("instance_name"). - Unique(), } } diff --git a/ent/schema/buildtag.go b/ent/schema/buildtag.go new file mode 100644 index 00000000..f4d2c1e1 --- /dev/null +++ b/ent/schema/buildtag.go @@ -0,0 +1,70 @@ +package schema + +import ( + "entgo.io/contrib/entgql" + "entgo.io/ent" + "entgo.io/ent/schema" + "entgo.io/ent/schema/edge" + "entgo.io/ent/schema/field" + "entgo.io/ent/schema/index" +) + +// BuildTag holds the schema definition for the BuildTag entity. +type BuildTag struct { + ent.Schema +} + +// Fields of the BuildTag object. +func (BuildTag) Fields() []ent.Field { + return []ent.Field{ + // Foreign key to build + field.Int64("build_id"). + Immutable(). + Annotations( + entgql.Skip(), + ), + + // A tag consists of a key-value pair + field.String("key").Immutable().Annotations(entgql.OrderField("KEY")), + field.String("value").Immutable(), + } +} + +// Edges of BuildTag. +func (BuildTag) Edges() []ent.Edge { + return []ent.Edge{ + // Edge back to the build + edge.From("build", Build.Type). + Field("build_id"). + Ref("tags"). + Unique(). + Required(). + Immutable(), + } +} + +// Indexes for BuildTag. +func (BuildTag) Indexes() []ent.Index { + return []ent.Index{ + index.Edges("build"), + + // Duplicate keys are allowed for a build, as long as they have different values. + index.Fields("key", "value"). + Edges("build"). + Unique(), + } +} + +// Annotations of the BuildTag +func (BuildTag) Annotations() []schema.Annotation { + return []schema.Annotation{ + entgql.RelayConnection(), + } +} + +// Mixin of the BuildTag. +func (BuildTag) Mixin() []ent.Mixin { + return []ent.Mixin{ + Int64IdMixin{}, + } +} diff --git a/ent/schema/invocationtag.go b/ent/schema/invocationtag.go new file mode 100644 index 00000000..07800a01 --- /dev/null +++ b/ent/schema/invocationtag.go @@ -0,0 +1,68 @@ +package schema + +import ( + "entgo.io/contrib/entgql" + "entgo.io/ent" + "entgo.io/ent/schema" + "entgo.io/ent/schema/edge" + "entgo.io/ent/schema/field" + "entgo.io/ent/schema/index" +) + +// InvocationTag holds the schema definition for the InvocationTag entity. +type InvocationTag struct { + ent.Schema +} + +// Fields of the InvocationTag object. +func (InvocationTag) Fields() []ent.Field { + return []ent.Field{ + // Foreign key to bazel invocation + field.Int64("bazel_invocation_id"). + Immutable(). + Annotations( + entgql.Skip(), + ), + + // A tag consists of a key-value pair + field.String("key").Immutable().Annotations(entgql.OrderField("KEY")), + field.String("value").Immutable(), + } +} + +// Edges of InvocationTag. +func (InvocationTag) Edges() []ent.Edge { + return []ent.Edge{ + // Edge back to the bazel invocation + edge.From("bazel_invocation", BazelInvocation.Type). + Field("bazel_invocation_id"). + Ref("tags"). + Unique(). + Required(). + Immutable(), + } +} + +// Indexes for InvocationTag. +func (InvocationTag) Indexes() []ent.Index { + return []ent.Index{ + index.Edges("bazel_invocation"), + index.Fields("key"). + Edges("bazel_invocation"). + Unique(), + } +} + +// Annotations of the InvocationTag +func (InvocationTag) Annotations() []schema.Annotation { + return []schema.Annotation{ + entgql.RelayConnection(), + } +} + +// Mixin of the InvocationTag. +func (InvocationTag) Mixin() []ent.Mixin { + return []ent.Mixin{ + Int64IdMixin{}, + } +} diff --git a/ent/schema/sourcecontrol.go b/ent/schema/sourcecontrol.go index cbaa787a..534e2314 100644 --- a/ent/schema/sourcecontrol.go +++ b/ent/schema/sourcecontrol.go @@ -15,55 +15,17 @@ type SourceControl struct { // Fields of the SourceControl object. func (SourceControl) Fields() []ent.Field { return []ent.Field{ - // The provider of the source control - field.Enum("provider"). - Values("GITHUB", "GITLAB"). - Optional(), - - // The URL of the source control instance (e.g., https://github.com) - field.String("instance_url").Optional(), - - // The Repository Url associated wth the invocation + // The repo used for a invocation field.String("repo").Optional(), + field.String("repo_url").Optional(), - // The source control refs associated with the invocation - field.String("refs").Optional(), - - // The Commit SHA of the invocation - field.String("commit_sha").Optional(), - - // The source control actor that triggered the run - field.String("actor").Optional(), - - // The source control event name associated with the invocation - field.String("event_name").Optional(), - - // The source control workflow associated with the invocation - field.String("workflow").Optional(), - - // The source control run id associated with the invocation - field.String("run_id").Optional(), - - // The source control run id associated with the invocation - field.String("run_number").Optional(), - - // The source control job associated with the invocation - field.String("job").Optional(), - - // The source control action associated with the invocation - field.String("action").Optional(), - - // The source control job associated with the invocation (Possible duplicate) - field.String("runner_name").Optional(), - - // The source control runner architecture associated with the invocation (Possible duplicate) - field.String("runner_arch").Optional(), - - // The source control runner architecture associated with the invocation (Possible duplicate) - field.String("runner_os").Optional(), + // Git ref used for the invocation, such as branch or pull request + field.String("ref").Optional(), + field.String("ref_url").Optional(), - // The source control workspace associated with the invocation - field.String("workspace").Optional(), + // Commit used for the invocation + field.String("commit").Optional(), + field.String("commit_url").Optional(), } } diff --git a/frontend/src/components/ApolloWrapper/possibleTypes.json b/frontend/src/components/ApolloWrapper/possibleTypes.json index b17e27b9..0f6f46a8 100644 --- a/frontend/src/components/ApolloWrapper/possibleTypes.json +++ b/frontend/src/components/ApolloWrapper/possibleTypes.json @@ -26,6 +26,12 @@ "BuildGraphMetricsWhereInput": [], "BuildOrder": [], "BuildOrderField": [], + "BuildTag": [], + "BuildTagConnection": [], + "BuildTagEdge": [], + "BuildTagOrder": [], + "BuildTagOrderField": [], + "BuildTagWhereInput": [], "BuildWhereInput": [], "Configuration": [], "ConfigurationWhereInput": [], @@ -39,6 +45,12 @@ "InstanceName": [], "InstanceNameWhereInput": [], "Int": [], + "InvocationTag": [], + "InvocationTagConnection": [], + "InvocationTagEdge": [], + "InvocationTagOrder": [], + "InvocationTagOrderField": [], + "InvocationTagWhereInput": [], "InvocationTarget": [], "InvocationTargetAbortReason": [], "InvocationTargetConnection": [], @@ -65,10 +77,12 @@ "BazelInvocation", "Build", "BuildGraphMetrics", + "BuildTag", "Configuration", "ConnectionMetadata", "GarbageMetrics", "InstanceName", + "InvocationTag", "InvocationTarget", "MemoryMetrics", "Metrics", @@ -91,7 +105,6 @@ "RunnerCount": [], "RunnerCountWhereInput": [], "SourceControl": [], - "SourceControlProvider": [], "SourceControlWhereInput": [], "String": [], "SystemNetworkStats": [], @@ -117,7 +130,6 @@ "TimingMetricsWhereInput": [], "UUID": [], "Upload": [], - "User": [], "__Directive": [], "__DirectiveLocation": [], "__EnumValue": [], diff --git a/frontend/src/components/BazelInvocation/index.tsx b/frontend/src/components/BazelInvocation/index.tsx index 4a099fa6..58f9b2f3 100644 --- a/frontend/src/components/BazelInvocation/index.tsx +++ b/frontend/src/components/BazelInvocation/index.tsx @@ -11,6 +11,7 @@ import { InfoCircleOutlined, LineChartOutlined, RadiusUprightOutlined, + TagsOutlined, } from "@ant-design/icons"; import { Link } from "@tanstack/react-router"; import { Space, Tabs, Typography } from "antd"; @@ -26,6 +27,7 @@ import type { import themeStyles from "@/theme/theme.module.css"; import { commandLineDataToString } from "@/utils/commandLineDataToString"; import { env } from "@/utils/env"; +import { parseGraphqlEdgeList } from "@/utils/parseGraphqlEdgeList"; import ActionStatisticsDisplay from "../ActionStatisticsDisplay"; import { ActionsTab } from "../ActionsTab"; import styles from "../AppBar/index.module.css"; @@ -34,6 +36,7 @@ import BuildLogsDisplay from "../BuildLogsDisplay"; import CommandLineDisplay from "../CommandLine"; import InvocationOverviewDisplay from "../InvocationOverviewDisplay"; import { InvocationResultTag } from "../InvocationResultTag"; +import { InvocationTagTab } from "../InvocationTagTab"; import { InvocationTargetsTab } from "../InvocationTargets/InvocationTargetsTab"; import MemoryMetricsDisplay from "../MemoryMetrics"; import ProfileDropdown from "../ProfileDropdown"; @@ -59,9 +62,8 @@ const getTabItems = ( metrics, numFetches, configurations, - stepLabel, hostname, - isCiWorker, + tags, } = invocationOverview; var runnerMetrics: RunnerCount[] = []; @@ -69,6 +71,8 @@ const getTabItems = ( runnerMetrics.push(item), ); + const tagList = parseGraphqlEdgeList(tags); + const hideActionStatisticsTab: boolean = metrics?.actionSummary === undefined || metrics?.actionSummary == null; const hideLogsTab: boolean = false; @@ -84,7 +88,10 @@ const getTabItems = ( const hideTargetsTab: boolean = !env.featureFlags?.bes?.pageTargets; const hideTestsTab: boolean = !env.featureFlags?.bes?.pageTests; const hideSourceControlTab: boolean = - sourceControl === undefined || sourceControl == null; + sourceControl === undefined || + sourceControl == null || + sourceControl.length === 0; + const hideTagsTab: boolean = tagList.length === 0; const command = commandLineDataToString(originalCommandLine); @@ -109,8 +116,6 @@ const getTabItems = ( startedAt={invocationOverview.startedAt} endedAt={invocationOverview.endedAt} hostname={hostname ?? ""} - isCiWorker={isCiWorker ?? false} - stepLabel={stepLabel ?? ""} exitCodeName={invocationOverview.exitCodeName || undefined} connectionLastOpenAt={ invocationOverview.connectionMetadata?.connectionLastOpenAt || @@ -239,10 +244,18 @@ const getTabItems = ( icon: , children: ( - + + + ), + }); + if (!hideTagsTab) + items.push({ + key: "BazelInvocationTabs-Tags", + label: "Tags", + icon: , + children: ( + + ), }); @@ -264,17 +277,17 @@ const getTabItems = ( const getTitleBits = ( invocationOverview: BazelInvocationInfoFragment, ): React.ReactNode[] => { - const { invocationID, authenticatedUser, user } = invocationOverview; + const { invocationID, authenticatedUser, username } = invocationOverview; const titleBits: React.ReactNode[] = []; - if (user?.LDAP && user?.LDAP !== "") + if (username && username !== "") titleBits.push( User:{" "} , diff --git a/frontend/src/components/BazelInvocationColumns/Columns.tsx b/frontend/src/components/BazelInvocationColumns/Columns.tsx index a33fdb0a..da9a3401 100644 --- a/frontend/src/components/BazelInvocationColumns/Columns.tsx +++ b/frontend/src/components/BazelInvocationColumns/Columns.tsx @@ -2,7 +2,6 @@ import { ClockCircleFilled, SearchOutlined } from "@ant-design/icons"; import { Link } from "@tanstack/react-router"; import { Typography } from "antd"; import type { FilterValue } from "antd/es/table/interface"; -import type { ColumnType } from "antd/lib/table"; import dayjs from "dayjs"; import PortalDuration from "@/components/PortalDuration"; import { @@ -14,6 +13,7 @@ import type { BazelInvocationNodeFragment, BazelInvocationWhereInput, } from "@/graphql/__generated__/graphql"; +import type { TableColumnTypeWithFilter } from "@/types/TableColumnTypeWithFilter"; import { InvocationResultTag } from "../InvocationResultTag"; import { applyInvocationResultTagFilter, @@ -22,89 +22,94 @@ import { import UserStatusIndicator from "../UserStatusIndicator"; import styles from "./Columns.module.css"; -type ColumnTypeWithFilter = ColumnType & { - applyFilter?: (value: FilterValue) => BazelInvocationWhereInput[] | undefined; +export const invocationIdColumn: TableColumnTypeWithFilter< + BazelInvocationNodeFragment, + BazelInvocationWhereInput +> = { + key: "invocationID", + width: 220, + title: "Invocation", + render: (_, record) => ( + + {record.invocationID} + + ), + filterDropdown: (filterProps) => ( + + ), + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + applyFilter: (value: FilterValue) => { + if (value.length === 0) { + return undefined; + } + return [{ invocationID: value[0] as string }]; + }, }; -export const invocationIdColumn: ColumnTypeWithFilter = - { - key: "invocationID", - width: 220, - title: "Invocation", - render: (_, record) => ( - - {record.invocationID} - - ), - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - applyFilter: (value: FilterValue) => { - if (value.length === 0) { - return undefined; - } - return [{ invocationID: value[0] as string }]; - }, - }; +export const startedAtColumn: TableColumnTypeWithFilter< + BazelInvocationNodeFragment, + BazelInvocationWhereInput +> = { + key: "startedAt", + width: 165, + title: "Start Time", + render: (_, record) => ( + + {dayjs(record.startedAt).format("YYYY-MM-DD hh:mm:ss A")} + + ), + filterDropdown: (filterProps) => , + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + applyFilter: (value: FilterValue) => { + if (value.length !== 2) { + return undefined; + } + const filter: BazelInvocationWhereInput[] = []; + if (value[0]) { + filter.push({ startedAtGTE: value[0] }); + } + if (value[1]) { + filter.push({ startedAtLTE: value[1] }); + } + return filter; + }, +}; -export const startedAtColumn: ColumnTypeWithFilter = - { - key: "startedAt", - width: 165, - title: "Start Time", - render: (_, record) => ( - - {dayjs(record.startedAt).format("YYYY-MM-DD hh:mm:ss A")} - - ), - filterDropdown: (filterProps) => , - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - applyFilter: (value: FilterValue) => { - if (value.length !== 2) { - return undefined; - } - const filter: BazelInvocationWhereInput[] = []; - if (value[0]) { - filter.push({ startedAtGTE: value[0] }); - } - if (value[1]) { - filter.push({ startedAtLTE: value[1] }); +export const durationColumn: TableColumnTypeWithFilter< + BazelInvocationNodeFragment, + BazelInvocationWhereInput +> = { + key: "duration", + width: 100, + title: "Duration", + render: (_, record) => ( + = - { - key: "duration", - width: 100, - title: "Duration", - render: (_, record) => ( - - ), - }; + includePopover + formatConfig={{ smallestUnit: "s" }} + /> + ), +}; -export const statusColumn: ColumnTypeWithFilter = { +export const statusColumn: TableColumnTypeWithFilter< + BazelInvocationNodeFragment, + BazelInvocationWhereInput +> = { key: "result", width: 120, title: "Result", @@ -123,7 +128,10 @@ export const statusColumn: ColumnTypeWithFilter = { applyFilter: applyInvocationResultTagFilter, }; -export const buildColumn: ColumnTypeWithFilter = { +export const buildColumn: TableColumnTypeWithFilter< + BazelInvocationNodeFragment, + BazelInvocationWhereInput +> = { key: "build", width: 220, title: "Build", @@ -150,7 +158,10 @@ export const buildColumn: ColumnTypeWithFilter = { }, }; -export const userColumn: ColumnTypeWithFilter = { +export const userColumn: TableColumnTypeWithFilter< + BazelInvocationNodeFragment, + BazelInvocationWhereInput +> = { key: "user", width: 120, title: "User", @@ -158,7 +169,7 @@ export const userColumn: ColumnTypeWithFilter = { return ( ); }, @@ -172,13 +183,16 @@ export const userColumn: ColumnTypeWithFilter = { if (value.length === 0) { return undefined; } - const user = value[0] as string; + const username = value[0] as string; return [ { or: [ - { hasAuthenticatedUserWith: [{ displayNameContains: user }] }, + { hasAuthenticatedUserWith: [{ displayNameContainsFold: username }] }, { - and: [{ userLdapContains: user }, { hasAuthenticatedUser: false }], + and: [ + { usernameContainsFold: username }, + { hasAuthenticatedUser: false }, + ], }, ], }, diff --git a/frontend/src/components/BazelInvocationsTable/index.tsx b/frontend/src/components/BazelInvocationsTable/index.tsx index 093e12ce..b05df3d8 100644 --- a/frontend/src/components/BazelInvocationsTable/index.tsx +++ b/frontend/src/components/BazelInvocationsTable/index.tsx @@ -1,7 +1,6 @@ import { BuildOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client/react"; import { Space, Typography } from "antd"; -import type { FilterValue } from "antd/lib/table/interface"; import React from "react"; import { buildColumn, @@ -18,6 +17,7 @@ import { } from "@/graphql/__generated__/graphql"; import themeStyles from "@/theme/theme.module.css"; import styles from "@/theme/theme.module.css"; +import { applyTableFilters } from "@/utils/applyColumnFilters"; import { parseGraphqlEdgeListWithFragment } from "@/utils/parseGraphqlEdgeList"; import { shouldPollInvocation } from "@/utils/shouldPollInvocation"; import { CursorTable, getNewPaginationVariables } from "../CursorTable"; @@ -37,7 +37,7 @@ const BazelInvocationsTable: React.FC = () => { const { loading, data, error } = useQuery(FIND_BAZEL_INVOCATIONS_QUERY, { variables: { where: { - and: [{ startedAtNotNil: true }, ...filterVariables], + and: [...filterVariables, { startedAtNotNil: true }], }, orderBy: { direction: OrderDirection.Desc, @@ -78,26 +78,6 @@ const BazelInvocationsTable: React.FC = () => { buildColumn, ]; - const onFilterChange = (filters: Record) => { - const newFilters: BazelInvocationWhereInput[] = []; - tableColumns.forEach((column) => { - Object.entries(filters).forEach(([key, value]) => { - if ( - value && - key === column.key && - "applyFilter" in column && - column.applyFilter - ) { - const appliedFilters = column.applyFilter(value); - if (appliedFilters) { - newFilters.push(...appliedFilters); - } - } - }); - }); - setFilterVariables(newFilters); - }; - if (error) { return ( { ), }} onChange={(_pagination, filters, _sorter, _extra) => - onFilterChange(filters) + applyTableFilters(tableColumns, filters, setFilterVariables) } pagination={{ position: "bottom", diff --git a/frontend/src/components/BazelInvocationsTable/query.graphql.ts b/frontend/src/components/BazelInvocationsTable/query.graphql.ts index bb781e38..7b2d22e5 100644 --- a/frontend/src/components/BazelInvocationsTable/query.graphql.ts +++ b/frontend/src/components/BazelInvocationsTable/query.graphql.ts @@ -30,10 +30,7 @@ export const BAZEL_INVOCATION_NODE_FRAGMENT = gql(/* GraphQL */ ` id invocationID startedAt - user { - Email - LDAP - } + username authenticatedUser { userUUID displayName diff --git a/frontend/src/components/BuildsTable/Columns.tsx b/frontend/src/components/BuildsTable/Columns.tsx index 42844ecc..4db74249 100644 --- a/frontend/src/components/BuildsTable/Columns.tsx +++ b/frontend/src/components/BuildsTable/Columns.tsx @@ -1,6 +1,7 @@ -import { SearchOutlined } from "@ant-design/icons"; +import { InfoCircleOutlined, SearchOutlined } from "@ant-design/icons"; import { Link } from "@tanstack/react-router"; -import { type TableColumnsType, Typography } from "antd"; +import { Popover, Space, Typography } from "antd"; +import type { FilterValue } from "antd/es/table/interface"; import dayjs from "dayjs"; import { validate as uuidValidate } from "uuid"; import styles from "@/components/BazelInvocationColumns/Columns.module.css"; @@ -9,57 +10,138 @@ import { SearchWidget, TimeRangeSelector, } from "@/components/SearchWidgets"; -import type { BuildNodeFragment } from "@/graphql/__generated__/graphql"; +import type { + BuildNodeFragment, + BuildWhereInput, +} from "@/graphql/__generated__/graphql"; +import type { TableColumnTypeWithFilter } from "@/types/TableColumnTypeWithFilter"; +import { env } from "@/utils/env"; +import { parseGraphqlEdgeList } from "@/utils/parseGraphqlEdgeList"; +import { OptionalLinkWrapper } from "../OptionalLinkWrapper"; -export const columns: TableColumnsType = [ - { - key: "buildUUID", - width: 220, - title: "Build ID", - render: (_, record) => ( - - {record.buildUUID} - - ), - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, - { - key: "buildURL", - width: 220, - title: "Build URL", - render: (_, record) => {record.buildURL}, - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, - { - key: "buildDate", - width: 220, - title: "Timestamp", - render: (_, record) => ( - - {dayjs(record.timestamp).format("YYYY-MM-DD hh:mm:ss A")} - - ), - filterDropdown: (filterProps) => , - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, -]; +export const getColumns = (): TableColumnTypeWithFilter< + BuildNodeFragment, + BuildWhereInput +>[] => { + const columns: TableColumnTypeWithFilter< + BuildNodeFragment, + BuildWhereInput + >[] = []; + + const additionalColumns = env.additionalBuildColumns; + for (const column of additionalColumns) { + columns.push({ + key: column.valueKey, + title: column.title, + filterSearch: true, + render: (_, record) => { + const tags = parseGraphqlEdgeList(record.tags); + const valueTags = tags.filter((tag) => tag.key === column.valueKey); + const urlTags = tags.filter((tag) => tag.key === column.urlKey); + const singleUrl = urlTags.length === 1 ? urlTags[0].value : undefined; + + return ( + + + {valueTags.map((tag) => tag.value).join(", ")} + + {urlTags.length > 1 && ( + ( + + {tag.value} + + ))} + > + + + )} + + ); + }, + filterDropdown: (filterProps) => ( + + ), + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + applyFilter: (value: FilterValue) => { + if (value.length === 0) { + return undefined; + } + return [ + { + hasTagsWith: [ + { key: column.valueKey, valueContainsFold: value[0] as string }, + ], + }, + ]; + }, + }); + } + + columns.push( + { + key: "buildUUID", + title: "Build ID", + render: (_, record) => ( + + {record.buildUUID} + + ), + filterDropdown: (filterProps) => ( + + ), + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + applyFilter: (value: FilterValue) => { + if (value.length === 0) { + return undefined; + } + const buildUUID = value[0] as string; + if (!uuidValidate(buildUUID)) { + return undefined; + } + return [{ buildUUID: buildUUID as string }]; + }, + }, + { + key: "buildDate", + title: "Timestamp", + render: (_, record) => ( + + {dayjs(record.timestamp).format("YYYY-MM-DD hh:mm:ss A")} + + ), + filterDropdown: (filterProps) => , + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + applyFilter: (value: FilterValue) => { + if (value.length !== 2) { + return undefined; + } + const newFilters = []; + if (value[0]) { + newFilters.push({ timestampGTE: value[0] }); + } + if (value[1]) { + newFilters.push({ timestampLTE: value[1] }); + } + return newFilters; + }, + }, + ); + + return columns; +}; diff --git a/frontend/src/components/BuildsTable/index.tsx b/frontend/src/components/BuildsTable/index.tsx index 655b5c85..3f023d61 100644 --- a/frontend/src/components/BuildsTable/index.tsx +++ b/frontend/src/components/BuildsTable/index.tsx @@ -1,32 +1,30 @@ import { useQuery } from "@apollo/client/react"; -import type { FilterValue } from "antd/es/table/interface"; -import React from "react"; -import { validate as uuidValidate } from "uuid"; +import React, { useMemo } from "react"; import { type BuildNodeFragment, BuildOrderField, type BuildWhereInput, OrderDirection, } from "@/graphql/__generated__/graphql"; +import { applyTableFilters } from "@/utils/applyColumnFilters"; import { parseGraphqlEdgeListWithFragment } from "@/utils/parseGraphqlEdgeList"; import { CursorTable, getNewPaginationVariables } from "../CursorTable"; import type { PaginationVariables } from "../CursorTable/types"; import PortalAlert from "../PortalAlert"; -import { columns } from "./Columns"; +import { getColumns } from "./Columns"; import { BUILD_NODE_FRAGMENT, FIND_BUILDS_QUERY } from "./query.graphql"; const BuildsTable: React.FC = () => { const [paginationVariables, setPaginationVariables] = React.useState(getNewPaginationVariables()); - - const [filterVariables, setFilterVariables] = React.useState( - {}, - ); + const [filterVariables, setFilterVariables] = React.useState< + BuildWhereInput[] + >([]); const { data, loading, error } = useQuery(FIND_BUILDS_QUERY, { variables: { ...paginationVariables, - where: filterVariables, + where: { and: filterVariables }, orderBy: { direction: OrderDirection.Desc, field: BuildOrderField.Timestamp, @@ -34,36 +32,7 @@ const BuildsTable: React.FC = () => { }, }); - const onFilterChange = (filters: Record) => { - const newFilters: BuildWhereInput[] = []; - Object.entries(filters).forEach(([key, value]) => { - if (value && value.length > 0) { - switch (key) { - case "buildUUID": { - const buildUUID = value[0] as string; - if (uuidValidate(buildUUID)) { - newFilters.push({ buildUUID: buildUUID as string }); - } - break; - } - case "buildURL": - newFilters.push({ buildURLContainsFold: value[0] as string }); - break; - case "buildDate": - if (value.length === 2) { - if (value[0]) { - newFilters.push({ timestampGTE: value[0] }); - } - if (value[1]) { - newFilters.push({ timestampLTE: value[1] }); - } - } - break; - } - } - }); - setFilterVariables({ and: newFilters }); - }; + const tableColumns = useMemo(getColumns, []); if (error) { return ( @@ -81,12 +50,12 @@ const BuildsTable: React.FC = () => { return ( - columns={columns} + columns={tableColumns} loading={loading} size="small" rowKey="id" onChange={(_pagination, filters, _sorter, _extra) => - onFilterChange(filters) + applyTableFilters(tableColumns, filters, setFilterVariables) } dataSource={rowData} pagination={{ diff --git a/frontend/src/components/BuildsTable/query.graphql.ts b/frontend/src/components/BuildsTable/query.graphql.ts index 3665579b..b340c1e4 100644 --- a/frontend/src/components/BuildsTable/query.graphql.ts +++ b/frontend/src/components/BuildsTable/query.graphql.ts @@ -29,7 +29,15 @@ export const BUILD_NODE_FRAGMENT = gql(/* GraphQL */ ` fragment BuildNode on Build { id buildUUID - buildURL timestamp + tags { + edges { + node { + id + key + value + } + } + } } `); diff --git a/frontend/src/components/InvocationOverviewDisplay/index.tsx b/frontend/src/components/InvocationOverviewDisplay/index.tsx index 3d105d22..ab6a7edc 100644 --- a/frontend/src/components/InvocationOverviewDisplay/index.tsx +++ b/frontend/src/components/InvocationOverviewDisplay/index.tsx @@ -17,8 +17,6 @@ interface Props { startedAt: string; endedAt: string; hostname: string; - isCiWorker: boolean; - stepLabel: string; numFetches: number; bazelVersion: string; } @@ -34,8 +32,6 @@ export const InvocationOverviewDisplay: React.FC = ({ startedAt, endedAt, hostname, - isCiWorker, - stepLabel, numFetches, bazelVersion, }) => { @@ -106,14 +102,6 @@ export const InvocationOverviewDisplay: React.FC = ({ {numFetches} )} - {isCiWorker && ( - True - )} - {stepLabel !== "" && ( - - {stepLabel} - - )} {bazelVersion !== "" && ( {bazelVersion} diff --git a/frontend/src/components/InvocationTagTab/index.tsx b/frontend/src/components/InvocationTagTab/index.tsx new file mode 100644 index 00000000..e01d298c --- /dev/null +++ b/frontend/src/components/InvocationTagTab/index.tsx @@ -0,0 +1,35 @@ +import { TagsOutlined } from "@ant-design/icons"; +import { Descriptions } from "antd"; +import type React from "react"; +import type { InvocationTag } from "@/graphql/__generated__/graphql"; +import PortalCard from "../PortalCard"; + +const linkRegex = + /^(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/; + +interface Props { + tags: Omit[] | undefined; +} + +export const InvocationTagTab: React.FC = ({ tags }) => { + return ( + } + titleBits={[Tags]} + style={{ width: "100%" }} + > + + {tags?.map((tag) => ( + + {linkRegex.test(tag.value) ? ( + {tag.value} + ) : ( + tag.value + )} + + ))} + + + ); +}; diff --git a/frontend/src/components/InvocationTimeline/index.tsx b/frontend/src/components/InvocationTimeline/index.tsx index 323be49f..6b5f070b 100644 --- a/frontend/src/components/InvocationTimeline/index.tsx +++ b/frontend/src/components/InvocationTimeline/index.tsx @@ -13,14 +13,20 @@ import { } from "recharts"; import type { GetBuildInvocationFragment } from "@/graphql/__generated__/graphql"; import dayjs from "@/lib/dayjs"; +import { env } from "@/utils/env"; +import { parseGraphqlEdgeList } from "@/utils/parseGraphqlEdgeList"; import { readableDurationFromDates, readableDurationFromMilliseconds, } from "@/utils/time"; import CommandLinePreview from "../CommandLinePreview"; +import { INVOCATION_RESULT_TAGS } from "../InvocationResultTag"; +import { + getInvocationResultTagEnum, + InvocationResult, +} from "../InvocationResultTag/enum"; import PortalAlert from "../PortalAlert"; import type { InvocationInfo, TickProps } from "./types"; -import { getInvocationResultTagColor } from "./utils"; interface Props { invocations: GetBuildInvocationFragment[]; @@ -38,9 +44,12 @@ const InvocationTimeline: React.FC = ({ invocations }) => { invocations .filter((entry) => !!entry.startedAt) .map((entry) => { - const startTime = entry.startedAt; + const invocationStatus = getInvocationResultTagEnum( + entry.exitCodeName || undefined, + entry.connectionMetadata?.timeSinceLastConnectionMillis, + ); let endTime = entry.endedAt; - if (!endTime) { + if (!endTime && invocationStatus !== InvocationResult.IN_PROGRESS) { endTime = entry.connectionMetadata?.connectionLastOpenAt; } if (!endTime) { @@ -49,15 +58,13 @@ const InvocationTimeline: React.FC = ({ invocations }) => { return { invocationId: entry.invocationID, // Timestamp interval in milliseconds since UNIX epoch. - timestamps: [dayjs(startTime).valueOf(), dayjs(endTime).valueOf()], - exitCodeName: entry.exitCodeName || undefined, - timeSinceLastConnectionMillis: - entry.connectionMetadata?.timeSinceLastConnectionMillis || - undefined, + timestamps: [ + dayjs(entry.startedAt).valueOf(), + dayjs(endTime).valueOf(), + ], + invocationStatus, command: entry.originalCommandLine, - job: entry.sourceControl?.job, - workflow: entry.sourceControl?.workflow, - action: entry.sourceControl?.action, + tags: parseGraphqlEdgeList(entry.tags), }; }), [invocations], @@ -143,7 +150,10 @@ const InvocationTimeline: React.FC = ({ invocations }) => { }} wrapperStyle={{ maxWidth: "50vw", zIndex: 999 }} labelFormatter={(label, payload) => { - const invocationEntry = payload[0]?.payload; + const columns = env.additionalBuildInvocationColumns; + const invocationEntry = payload[0]?.payload as + | InvocationInfo + | undefined; return ( // The labels are wrapped in a span with `display: block` to // simulate a div for text formatting purposes. Using divs @@ -151,21 +161,17 @@ const InvocationTimeline: React.FC = ({ invocations }) => { // formatter wraps the elements below in a

tag. <> Invocation ID: {label} - {invocationEntry?.workflow && ( - - Workflow: {invocationEntry?.workflow} - - )} - {invocationEntry?.job && ( - - Job: {invocationEntry?.job} - - )} - {invocationEntry?.action && ( - - Action: {invocationEntry?.action} - - )} + {invocationEntry && + columns.map((column) => ( + + {column.title}:{" "} + + {invocationEntry.tags.find( + (tag) => tag.key === column.valueKey, + )?.value || "-"} + + + ))} {invocationEntry?.timestamps[0] && ( Duration: @@ -198,10 +204,7 @@ const InvocationTimeline: React.FC = ({ invocations }) => { {invocationsInfo.map((entry) => ( ))} diff --git a/frontend/src/components/InvocationTimeline/types.ts b/frontend/src/components/InvocationTimeline/types.ts index 5742092d..9c84f658 100644 --- a/frontend/src/components/InvocationTimeline/types.ts +++ b/frontend/src/components/InvocationTimeline/types.ts @@ -1,6 +1,8 @@ import type { SVGProps } from "react"; import type { CartesianTickItem } from "recharts/types/util/types"; +import type { InvocationTag } from "@/graphql/__generated__/graphql"; import type { CommandLineData } from "../CommandLine"; +import type { InvocationResult } from "../InvocationResultTag/enum"; export interface TickProps extends SVGProps { payload: CartesianTickItem; @@ -9,10 +11,7 @@ export interface TickProps extends SVGProps { export interface InvocationInfo { invocationId: string; timestamps: number[]; - exitCodeName: string | undefined; - timeSinceLastConnectionMillis: number | undefined; + invocationStatus: InvocationResult; command?: CommandLineData; - workflow?: string | null; - job?: string | null; - action?: string | null; + tags: Omit[]; } diff --git a/frontend/src/components/InvocationTimeline/utils.tsx b/frontend/src/components/InvocationTimeline/utils.tsx deleted file mode 100644 index 1ff7d40d..00000000 --- a/frontend/src/components/InvocationTimeline/utils.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { INVOCATION_RESULT_TAGS } from "../InvocationResultTag"; -import { getInvocationResultTagEnum } from "../InvocationResultTag/enum"; - -export const getInvocationResultTagColor = ( - exitCodeName: string | undefined, - timeSinceLastConnectionMillis: number | undefined, -): string => { - return INVOCATION_RESULT_TAGS[ - getInvocationResultTagEnum(exitCodeName, timeSinceLastConnectionMillis) - ].color; -}; diff --git a/frontend/src/components/OptionalLinkWrapper/index.tsx b/frontend/src/components/OptionalLinkWrapper/index.tsx new file mode 100644 index 00000000..6626aed4 --- /dev/null +++ b/frontend/src/components/OptionalLinkWrapper/index.tsx @@ -0,0 +1,11 @@ +type Props = { + url?: string; + children: React.ReactNode; +}; + +export const OptionalLinkWrapper: React.FC = ({ url, children }) => { + if (url) { + return {children}; + } + return children; +}; diff --git a/frontend/src/components/SourceControlDisplay/index.tsx b/frontend/src/components/SourceControlDisplay/index.tsx index c25d438d..7cc0a042 100644 --- a/frontend/src/components/SourceControlDisplay/index.tsx +++ b/frontend/src/components/SourceControlDisplay/index.tsx @@ -1,215 +1,47 @@ import { BranchesOutlined } from "@ant-design/icons"; -import { Descriptions, Row, Space } from "antd"; +import { Descriptions, Space } from "antd"; import type React from "react"; -import { - type SourceControl, - SourceControlProvider, -} from "@/graphql/__generated__/graphql"; +import type { SourceControl } from "@/graphql/__generated__/graphql"; +import { OptionalLinkWrapper } from "../OptionalLinkWrapper"; import PortalCard from "../PortalCard"; -const getRepoUrl = ( - sc: SourceControl | undefined | null, -): string | undefined => { - if ( - sc?.instanceURL === null || - sc?.instanceURL === undefined || - sc?.instanceURL === "" || - sc?.repo === null || - sc?.repo === undefined || - sc?.repo === "" - ) { - return undefined; - } - return `${sc.instanceURL}/${sc.repo}`; -}; - -const getRefLabelAndUrl = ( - sc: SourceControl | undefined | null, - repoUrl: string | undefined, -): [string | undefined, string | undefined] => { - if ( - sc?.refs === null || - sc?.refs === undefined || - sc?.refs === "" || - repoUrl === undefined - ) { - return [undefined, undefined]; - } - switch (sc?.provider) { - case SourceControlProvider.Github: - if (sc.refs.startsWith("refs/heads/")) { - return [ - "Branch", - `${repoUrl}/tree/${sc.refs.substring("refs/heads/".length)}`, - ]; - } - if (sc.refs.startsWith("refs/tags/")) { - return [ - "Tag", - `${repoUrl}/tree/${sc.refs.substring("refs/tags/".length)}`, - ]; - } - if (sc.refs.startsWith("refs/pull/")) { - const prNumber = sc.refs.substring("refs/pull/".length).split("/")[0]; - return ["Pull request", `${repoUrl}/pull/${prNumber}`]; - } - return ["Ref", `${repoUrl}/tree/${sc.refs}`]; - case SourceControlProvider.Gitlab: - return ["Branch", `${repoUrl}/-/tree/${sc.refs}`]; - default: - return [undefined, undefined]; - } -}; - -const getCommitUrl = ( - sc: SourceControl | undefined | null, - repoUrl: string | undefined, -): string | undefined => { - if ( - sc?.commitSha === null || - sc?.commitSha === undefined || - sc?.commitSha === "" || - repoUrl === undefined - ) { - return undefined; - } - switch (sc?.provider) { - case SourceControlProvider.Github: - return `${repoUrl}/commit/${sc.commitSha}`; - case SourceControlProvider.Gitlab: - return `${repoUrl}/-/commit/${sc.commitSha}`; - default: - return undefined; - } -}; - -const getActorUrl = ( - sc: SourceControl | undefined | null, -): string | undefined => { - if ( - sc?.actor === null || - sc?.actor === undefined || - sc?.actor === "" || - sc?.instanceURL === null || - sc?.instanceURL === undefined || - sc?.instanceURL === "" - ) { - return undefined; - } - return `${sc.instanceURL}/${sc.actor}`; -}; - -const getRunUrl = ( - sc: SourceControl | undefined | null, - repoUrl: string | undefined, -): string | undefined => { - if ( - sc?.runID === null || - sc?.runID === undefined || - sc?.runID === "" || - repoUrl === undefined - ) { - return undefined; - } - switch (sc?.provider) { - case SourceControlProvider.Github: - return `${repoUrl}/actions/runs/${sc.runID}`; - case SourceControlProvider.Gitlab: - return `${repoUrl}/-/jobs/${sc.runID}`; - default: - return undefined; - } -}; - -type RepoLinkProps = { - text: string; - url?: string; -}; - -const RepoLink: React.FC = ({ text, url }) => { - if (url) { - return ( - - {text} - - ); - } - return <>{text}; -}; - const SourceControlDisplay: React.FC<{ - stepLabel: string | undefined | null; - sourceControlData: SourceControl | undefined | null; + sourceControlData: SourceControl[] | undefined | null; }> = ({ sourceControlData }) => { - const repoUrl = getRepoUrl(sourceControlData); - const [refLabel, refUrl] = getRefLabelAndUrl(sourceControlData, repoUrl); - const commitUrl = getCommitUrl(sourceControlData, repoUrl); - const actorUrl = getActorUrl(sourceControlData); - const runUrl = getRunUrl(sourceControlData, repoUrl); - - let workflowLabel = sourceControlData?.workflow || ""; - const runNumber = sourceControlData?.runNumber || ""; - if (workflowLabel !== "" && runNumber !== "") { - workflowLabel = `${workflowLabel} #${runNumber}`; - } - return ( } - titleBits={["Source Control Information"]} + titleBits={[Source Control Information]} > - - - - - - - - - - - - - - - - - {sourceControlData?.eventName} - - - - - - - - - - - {sourceControlData?.job} - - - {sourceControlData?.action} - - - {sourceControlData?.runnerName} - - - {sourceControlData?.runnerArch} - - - {sourceControlData?.runnerOs} - + + {sourceControlData?.map((sc) => ( + + {sc.repo ? ( + + + {sc.repo || ""} + + + ) : undefined} + {sc.ref ? ( + + + {sc.ref || ""} + + + ) : undefined} + {sc.commit ? ( + + + {sc.commit || ""} + + + ) : undefined} - - + ))} + ); diff --git a/frontend/src/components/Uploader/index.tsx b/frontend/src/components/Uploader/index.tsx index 1f673c71..c6b91a89 100644 --- a/frontend/src/components/Uploader/index.tsx +++ b/frontend/src/components/Uploader/index.tsx @@ -1,6 +1,5 @@ import { FileAddTwoTone } from "@ant-design/icons"; -import type { UploadProps } from "antd"; -import { Space, Typography, Upload } from "antd"; +import { Space, Typography, Upload, type UploadProps } from "antd"; import type React from "react"; const { Dragger } = Upload; diff --git a/frontend/src/components/UserStatusIndicator/index.tsx b/frontend/src/components/UserStatusIndicator/index.tsx index 95883c6c..4e36b58c 100644 --- a/frontend/src/components/UserStatusIndicator/index.tsx +++ b/frontend/src/components/UserStatusIndicator/index.tsx @@ -5,11 +5,14 @@ import type { BazelInvocationNodeFragment } from "@/graphql/__generated__/graphq const { useToken } = theme; interface Props { - authenticatedUser: BazelInvocationNodeFragment["authenticatedUser"]; - user: BazelInvocationNodeFragment["user"]; + authenticatedUser?: BazelInvocationNodeFragment["authenticatedUser"]; + username?: string; } -const UserStatusIndicator: React.FC = ({ authenticatedUser, user }) => { +const UserStatusIndicator: React.FC = ({ + authenticatedUser, + username, +}) => { const { token } = useToken(); if (authenticatedUser) { return ( @@ -38,7 +41,7 @@ const UserStatusIndicator: React.FC = ({ authenticatedUser, user }) => { {" "} - {user?.LDAP} + {username || No display name} ); }; diff --git a/frontend/src/components/pages/BazelInvocationDetails/index.graphql.ts b/frontend/src/components/pages/BazelInvocationDetails/index.graphql.ts index e8a38040..8fe28ce3 100644 --- a/frontend/src/components/pages/BazelInvocationDetails/index.graphql.ts +++ b/frontend/src/components/pages/BazelInvocationDetails/index.graphql.ts @@ -149,10 +149,7 @@ fragment BazelInvocationInfo on BazelInvocation { sizeInBytes digestFunction } - user { - Email - LDAP - } + username startedAt endedAt exitCodeName @@ -166,26 +163,24 @@ fragment BazelInvocationInfo on BazelInvocation { mnemonic } numFetches - stepLabel hostname - isCiWorker sourceControl { id - provider - instanceURL repo - refs - commitSha - actor - eventName - workflow - runID - runNumber - job - action - runnerName - runnerArch - runnerOs + repoURL + ref + refURL + commit + commitURL + } + tags(orderBy: { field: KEY, direction: ASC }) { + edges { + node { + id + key + value + } + } } } `); diff --git a/frontend/src/components/pages/BuildDetails/Columns.tsx b/frontend/src/components/pages/BuildDetails/Columns.tsx index 57b76d56..3957a7aa 100644 --- a/frontend/src/components/pages/BuildDetails/Columns.tsx +++ b/frontend/src/components/pages/BuildDetails/Columns.tsx @@ -1,135 +1,168 @@ import { FilterOutlined, SearchOutlined } from "@ant-design/icons"; -import { Space, type TableColumnsType, Typography } from "antd"; +import { Space, Typography } from "antd"; +import type { FilterValue } from "antd/es/table/interface"; import { validate as uuidValidate } from "uuid"; import appbarStyles from "@/components/AppBar/index.module.css"; import { CodeLink } from "@/components/CodeLink"; import type { CommandLineData } from "@/components/CommandLine"; import CommandLinePreview from "@/components/CommandLinePreview"; import { InvocationResultTag } from "@/components/InvocationResultTag"; -import { invocationResultTagFilters } from "@/components/InvocationResultTag/filters"; +import { + applyInvocationResultTagFilter, + invocationResultTagFilters, +} from "@/components/InvocationResultTag/filters"; +import { OptionalLinkWrapper } from "@/components/OptionalLinkWrapper"; import PortalDuration from "@/components/PortalDuration"; import SearchWidget, { SearchFilterIcon } from "@/components/SearchWidgets"; -import type { GetBuildInvocationFragment } from "@/graphql/__generated__/graphql"; +import type { + BazelInvocationWhereInput, + GetBuildInvocationFragment, +} from "@/graphql/__generated__/graphql"; +import type { TableColumnTypeWithFilter } from "@/types/TableColumnTypeWithFilter"; +import { env } from "@/utils/env"; +import { parseGraphqlEdgeList } from "@/utils/parseGraphqlEdgeList"; import buildDetailsStyles from "./index.module.css"; -export const columns: TableColumnsType = [ - { - key: "workflow", - title: "Workflow", - dataIndex: ["sourceControl", "workflow"], - filterSearch: true, - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, - { - key: "job", - title: "Job", - dataIndex: ["sourceControl", "job"], - filterSearch: true, - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, - { - key: "action", - title: "Action", - dataIndex: ["sourceControl", "action"], - filterSearch: true, - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, - { - key: "command", - title: "Command", - filterSearch: false, - className: buildDetailsStyles.commandColumnCell, - render: (_, record) => ( -

- -
- ), - }, - { - key: "invocationID", - title: "Invocation ID", - dataIndex: "invocationID", - filterSearch: true, - filterDropdown: (filterProps) => ( - - ), - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - render: (_, record) => ( - - - - - - - ), - }, - { - key: "duration", - title: "Duration", - dataIndex: "startedAt", - render: (_, record) => ( - [] => { + const columns: TableColumnTypeWithFilter< + GetBuildInvocationFragment, + BazelInvocationWhereInput + >[] = []; + + const additionalColumns = env.additionalBuildInvocationColumns; + for (const column of additionalColumns) { + columns.push({ + key: column.valueKey, + title: column.title, + filterSearch: true, + render: (_, record) => { + const tags = parseGraphqlEdgeList(record.tags); + const valueTag = tags.find((tag) => tag.key === column.valueKey); + const urlTag = tags.find((tag) => tag.key === column.urlKey); + return ( + + {valueTag?.value || ""} + + ); + }, + filterDropdown: (filterProps) => ( + + ), + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + applyFilter: (value: FilterValue) => { + if (value.length === 0) { + return undefined; } - includeIcon - includePopover - formatConfig={{ smallestUnit: "s" }} - /> - ), - }, - { - key: "status", - title: "Status", - dataIndex: "status", - filterSearch: true, - render: (_, record) => ( - ( +
+ +
+ ), + }, + { + key: "invocationID", + title: "Invocation", + filterSearch: true, + filterDropdown: (filterProps) => ( + + ), + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + render: (_, record) => ( + + + + + + + ), + applyFilter: (value: FilterValue) => { + if (value.length === 0) { + return undefined; } - /> - ), - filters: invocationResultTagFilters, - filterIcon: (filtered) => ( - } filtered={filtered} /> - ), - }, -]; + return [{ invocationID: value[0] as string }]; + }, + }, + { + key: "duration", + title: "Duration", + dataIndex: "startedAt", + render: (_, record) => ( + + ), + }, + { + key: "status", + title: "Status", + dataIndex: "status", + filterSearch: true, + render: (_, record) => ( + + ), + filters: invocationResultTagFilters, + applyFilter: applyInvocationResultTagFilter, + filterIcon: (filtered) => ( + } filtered={filtered} /> + ), + }, + ); + + return columns; +}; diff --git a/frontend/src/components/pages/BuildDetails/graphql.ts b/frontend/src/components/pages/BuildDetails/graphql.ts index 8697096e..23c4cd4a 100644 --- a/frontend/src/components/pages/BuildDetails/graphql.ts +++ b/frontend/src/components/pages/BuildDetails/graphql.ts @@ -12,9 +12,17 @@ export const GET_BUILD_BY_UUID_QUERY = gql(/* GraphQL */ ` ) { getBuild(buildUUID: $buildUUID) { id - buildURL buildUUID timestamp + tags(orderBy: { field: KEY, direction: ASC }) { + edges { + node { + id + key + value + } + } + } invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) { pageInfo { startCursor @@ -36,15 +44,18 @@ export const GET_BUILD_INVOCATION_FRAGMENT = gql(/* GraphQL */ ` fragment GetBuildInvocation on BazelInvocation { id invocationID - userLdap + username endedAt startedAt exitCodeName - sourceControl{ - job - action - workflow - runnerName + tags { + edges { + node { + id + key + value + } + } } connectionMetadata { connectionLastOpenAt diff --git a/frontend/src/components/pages/BuildDetails/index.tsx b/frontend/src/components/pages/BuildDetails/index.tsx index 8e58f883..2f38b023 100644 --- a/frontend/src/components/pages/BuildDetails/index.tsx +++ b/frontend/src/components/pages/BuildDetails/index.tsx @@ -1,14 +1,13 @@ -import { DeploymentUnitOutlined } from "@ant-design/icons"; +import { DeploymentUnitOutlined, InfoCircleOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client/react"; -import { Space, Typography } from "antd"; -import type { FilterValue } from "antd/es/table/interface"; +import { Flex, Popover, Space, Tag, Typography } from "antd"; import dayjs from "dayjs"; import type React from "react"; -import { useState } from "react"; -import { validate as uuidValidate } from "uuid"; +import { useMemo, useState } from "react"; import styles from "@/components/AppBar/index.module.css"; import CollapsableInvocationTimeline from "@/components/CollapsableInvocationTimeline"; import Content from "@/components/Content"; +import { OptionalLinkWrapper } from "@/components/OptionalLinkWrapper"; import PortalCard from "@/components/PortalCard"; import { BazelInvocationOrderField, @@ -16,15 +15,18 @@ import { type FindBuildByUuidQuery, type GetBuildInvocationFragment, OrderDirection, - type SourceControlWhereInput, } from "@/graphql/__generated__/graphql"; -import { parseGraphqlEdgeListWithFragment } from "@/utils/parseGraphqlEdgeList"; +import { applyTableFilters } from "@/utils/applyColumnFilters"; +import { env } from "@/utils/env"; +import { + parseGraphqlEdgeList, + parseGraphqlEdgeListWithFragment, +} from "@/utils/parseGraphqlEdgeList"; import { shouldPollInvocation } from "@/utils/shouldPollInvocation"; import { CursorTable, getNewPaginationVariables } from "../../CursorTable"; import type { PaginationVariables } from "../../CursorTable/types"; -import { applyInvocationResultTagFilter } from "../../InvocationResultTag/filters"; import PortalAlert from "../../PortalAlert"; -import { columns } from "./Columns"; +import { getColumns } from "./Columns"; import { GET_BUILD_BY_UUID_QUERY, GET_BUILD_INVOCATION_FRAGMENT, @@ -36,28 +38,54 @@ const getTitleBits = (build: BuildType | undefined): React.ReactNode[] => { if (!build) { return []; } - return [ - - Build ID:{" "} - - {build.buildUUID} - - , - - - , - - Build URL:{" "} - + {`Build ID:`} + - {build.buildURL} - - , - ]; + {build.buildUUID} + + , + ); + + const tags = parseGraphqlEdgeList(build.tags); + const additionalColumns = env.additionalBuildColumns; + for (const column of additionalColumns) { + const valueTags = tags.filter((tag) => tag.key === column.valueKey); + const urlTags = tags.filter((tag) => tag.key === column.urlKey); + const urlTag = urlTags.length === 1 ? urlTags[0] : undefined; + + titleBits.push( + + {`${column.title}:`} + + + + {valueTags.map((tag) => tag.value).join(", ")} + + + {urlTags.length > 1 && ( + ( + + {tag.value} + + ))} + > + + + )} + + , + ); + } + + return titleBits; }; const getExtraBits = (build: BuildType | undefined): React.ReactNode[] => { @@ -83,13 +111,14 @@ const BuildDetails: React.FC = ({ buildUUID }) => { const [paginationVariables, setPaginationVariables] = useState(getNewPaginationVariables()); - const [filterVariables, setFilterVariables] = - useState({}); + const [filterVariables, setFilterVariables] = useState< + BazelInvocationWhereInput[] + >([]); const { data, loading, error } = useQuery(GET_BUILD_BY_UUID_QUERY, { variables: { ...paginationVariables, - where: filterVariables, + where: { and: filterVariables }, orderBy: { direction: OrderDirection.Desc, field: BazelInvocationOrderField.StartedAt, @@ -98,7 +127,10 @@ const BuildDetails: React.FC = ({ buildUUID }) => { }, }); + const tableColumns = useMemo(getColumns, []); + const build = data?.getBuild ?? undefined; + const tags = parseGraphqlEdgeList(build?.tags); const invocations = parseGraphqlEdgeListWithFragment( GET_BUILD_INVOCATION_FRAGMENT, data?.getBuild?.invocations, @@ -121,52 +153,6 @@ const BuildDetails: React.FC = ({ buildUUID }) => { pollInterval: 5000, }); - const onFilterChange = (filters: Record) => { - let newFilters: BazelInvocationWhereInput[] = []; - const sourceControllFilters: SourceControlWhereInput[] = []; - Object.entries(filters).forEach(([key, value]) => { - if (value && value.length > 0) { - switch (key) { - case "workflow": { - sourceControllFilters.push({ - workflowContainsFold: value[0] as string, - }); - break; - } - case "job": { - sourceControllFilters.push({ jobContainsFold: value[0] as string }); - break; - } - case "action": { - sourceControllFilters.push({ - actionContainsFold: value[0] as string, - }); - break; - } - case "invocationID": { - const invocationID = value[0] as string; - if (uuidValidate(invocationID)) { - newFilters.push({ invocationID: invocationID }); - } - break; - } - case "status": { - newFilters = newFilters.concat( - applyInvocationResultTagFilter(value), - ); - break; - } - } - } - }); - if (sourceControllFilters.length > 0) { - newFilters.push({ - hasSourceControlWith: sourceControllFilters, - }); - } - setFilterVariables({ and: newFilters }); - }; - if (error) { return ( } titleBits={["Build"]}> @@ -202,18 +188,31 @@ const BuildDetails: React.FC = ({ buildUUID }) => { extraBits={getExtraBits(build)} > + {tags && tags.length > 0 && ( + + {tags?.map((tag) => ( + + {tag.key}: {tag.value} + + ))} + + )} {invocations.length > 1 && ( )} - columns={columns} + columns={tableColumns} loading={loading} size="small" rowKey="id" onChange={(_pagination, filters, _sorter, _extra) => - onFilterChange(filters) + applyTableFilters(tableColumns, filters, setFilterVariables) } dataSource={invocations} pagination={{ diff --git a/frontend/src/graphql/__generated__/gql.ts b/frontend/src/graphql/__generated__/gql.ts index 6f3176f3..c61efe39 100644 --- a/frontend/src/graphql/__generated__/gql.ts +++ b/frontend/src/graphql/__generated__/gql.ts @@ -15,9 +15,9 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/ */ type Documents = { "\n query FindBazelInvocations(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n findBazelInvocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...BazelInvocationNode\n }\n }\n }\n }\n": typeof types.FindBazelInvocationsDocument, - "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n user {\n Email\n LDAP\n }\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n": typeof types.BazelInvocationNodeFragmentDoc, + "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n username\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n": typeof types.BazelInvocationNodeFragmentDoc, "\n query FindBuilds(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BuildOrder\n $where: BuildWhereInput\n ) {\n findBuilds(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...BuildNode\n }\n }\n }\n }\n": typeof types.FindBuildsDocument, - "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n": typeof types.BuildNodeFragmentDoc, + "\n fragment BuildNode on Build {\n id\n buildUUID\n timestamp\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n }\n": typeof types.BuildNodeFragmentDoc, "\n query CheckIfInvocationExists(\n $invocationID: UUID!\n ){\n getBazelInvocation(invocationID: $invocationID){\n id\n }\n }\n": typeof types.CheckIfInvocationExistsDocument, "\n query GetInvocationTargetsForInvocation(\n $invocationID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: InvocationTargetOrder\n $where: InvocationTargetWhereInput\n ){\n getBazelInvocation(invocationID: $invocationID) {\n id\n invocationTargets(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where){\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n success\n abortReason\n durationInMs\n failureMessage\n tags\n target {\n id\n label\n aspect\n targetKind\n instanceName {\n name\n }\n }\n }\n }\n }\n numTotal: invocationTargets {\n totalCount\n }\n numSuccessful: invocationTargets(where: { success: true }) {\n totalCount\n }\n numSkipped: invocationTargets(where: {abortReason: SKIPPED}) {\n totalCount\n }\n }\n }\n": typeof types.GetInvocationTargetsForInvocationDocument, "\n query GetTargetsList(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $where: TargetWhereInput\n ){\n findTargets (after: $after, first: $first, before: $before, last: $last, where: $where){\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n label\n aspect\n targetKind\n instanceName {\n name\n }\n }\n }\n }\n }\n": typeof types.GetTargetsListDocument, @@ -26,9 +26,9 @@ type Documents = { "\n query GetTestsForTarget(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: TestSummaryOrder\n $where: TestSummaryWhereInput\n ){\n findTestSummaries(\n after: $after\n first: $first\n before: $before\n last: $last\n orderBy: $orderBy\n where: $where\n ) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n overallStatus\n invocationTarget {\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n}\n": typeof types.GetTestsForTargetDocument, "\n query GetTestsForInvocation(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: TestSummaryOrder\n $where: TestSummaryWhereInput\n ) {\n findTestSummaries(\n after: $after\n first: $first\n before: $before\n last: $last\n orderBy: $orderBy\n where: $where\n ) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n overallStatus\n totalRunDurationInMs\n testResults {\n cachedLocally\n cachedRemotely\n }\n invocationTarget {\n target {\n id\n instanceName {\n name\n }\n label\n aspect\n targetKind\n }\n }\n }\n }\n }\n }\n": typeof types.GetTestsForInvocationDocument, "\n query LoadFullBazelInvocationDetails($invocationID: UUID!) {\n getBazelInvocation(invocationID: $invocationID) {\n ...BazelInvocationInfo\n }\n }\n": typeof types.LoadFullBazelInvocationDetailsDocument, - "\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n user {\n Email\n LDAP\n }\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n stepLabel\n hostname\n isCiWorker\n sourceControl {\n id\n provider\n instanceURL\n repo\n refs\n commitSha\n actor\n eventName\n workflow\n runID\n runNumber\n job\n action\n runnerName\n runnerArch\n runnerOs\n }\n}\n": typeof types.BazelInvocationInfoFragmentDoc, - "\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildURL\n buildUUID\n timestamp\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n": typeof types.FindBuildByUuidDocument, - "\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n userLdap\n endedAt\n startedAt\n exitCodeName\n sourceControl{\n job\n action\n workflow\n runnerName\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n": typeof types.GetBuildInvocationFragmentDoc, + "\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n username\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n hostname\n sourceControl {\n id\n repo\n repoURL\n ref\n refURL\n commit\n commitURL\n }\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n}\n": typeof types.BazelInvocationInfoFragmentDoc, + "\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildUUID\n timestamp\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n": typeof types.FindBuildByUuidDocument, + "\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n username\n endedAt\n startedAt\n exitCodeName\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n": typeof types.GetBuildInvocationFragmentDoc, "\n query GetTargetDetails(\n $instanceName: String!\n $label: String!\n $aspect: String!\n $targetKind: String!\n\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: InvocationTargetOrder\n $where: InvocationTargetWhereInput\n ){\n getTarget (instanceName: $instanceName, label: $label, aspect: $aspect, targetKind: $targetKind){\n invocationTargetsTotalDurationMillis\n invocationTargets(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n totalCount\n edges {\n node {\n id\n success\n durationInMs\n abortReason\n failureMessage\n tags\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n }\n": typeof types.GetTargetDetailsDocument, "\n query GetTestDetails(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: TestSummaryOrder\n $where: TestSummaryWhereInput\n ){\n findTestSummaries(\n after: $after\n first: $first\n before: $before\n last: $last\n orderBy: $orderBy\n where: $where\n ) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n overallStatus\n runCount\n attemptCount\n shardCount\n firstStartTime\n totalRunDurationInMs\n testResults {\n cachedLocally\n cachedRemotely\n }\n invocationTarget {\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n }\n": typeof types.GetTestDetailsDocument, "\n query FindBuildTimes(\n $first: Int!\n \t$where: BazelInvocationWhereInput\n ) {\n findBazelInvocations(first: $first, where: $where ) {\n pageInfo{\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n\n }\n totalCount\n edges {\n node {\n invocationID\n startedAt\n endedAt\n }\n }\n }\n }\n": typeof types.FindBuildTimesDocument, @@ -38,9 +38,9 @@ type Documents = { }; const documents: Documents = { "\n query FindBazelInvocations(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n findBazelInvocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...BazelInvocationNode\n }\n }\n }\n }\n": types.FindBazelInvocationsDocument, - "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n user {\n Email\n LDAP\n }\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n": types.BazelInvocationNodeFragmentDoc, + "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n username\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n": types.BazelInvocationNodeFragmentDoc, "\n query FindBuilds(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BuildOrder\n $where: BuildWhereInput\n ) {\n findBuilds(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...BuildNode\n }\n }\n }\n }\n": types.FindBuildsDocument, - "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n": types.BuildNodeFragmentDoc, + "\n fragment BuildNode on Build {\n id\n buildUUID\n timestamp\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n }\n": types.BuildNodeFragmentDoc, "\n query CheckIfInvocationExists(\n $invocationID: UUID!\n ){\n getBazelInvocation(invocationID: $invocationID){\n id\n }\n }\n": types.CheckIfInvocationExistsDocument, "\n query GetInvocationTargetsForInvocation(\n $invocationID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: InvocationTargetOrder\n $where: InvocationTargetWhereInput\n ){\n getBazelInvocation(invocationID: $invocationID) {\n id\n invocationTargets(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where){\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n success\n abortReason\n durationInMs\n failureMessage\n tags\n target {\n id\n label\n aspect\n targetKind\n instanceName {\n name\n }\n }\n }\n }\n }\n numTotal: invocationTargets {\n totalCount\n }\n numSuccessful: invocationTargets(where: { success: true }) {\n totalCount\n }\n numSkipped: invocationTargets(where: {abortReason: SKIPPED}) {\n totalCount\n }\n }\n }\n": types.GetInvocationTargetsForInvocationDocument, "\n query GetTargetsList(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $where: TargetWhereInput\n ){\n findTargets (after: $after, first: $first, before: $before, last: $last, where: $where){\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n label\n aspect\n targetKind\n instanceName {\n name\n }\n }\n }\n }\n }\n": types.GetTargetsListDocument, @@ -49,9 +49,9 @@ const documents: Documents = { "\n query GetTestsForTarget(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: TestSummaryOrder\n $where: TestSummaryWhereInput\n ){\n findTestSummaries(\n after: $after\n first: $first\n before: $before\n last: $last\n orderBy: $orderBy\n where: $where\n ) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n overallStatus\n invocationTarget {\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n}\n": types.GetTestsForTargetDocument, "\n query GetTestsForInvocation(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: TestSummaryOrder\n $where: TestSummaryWhereInput\n ) {\n findTestSummaries(\n after: $after\n first: $first\n before: $before\n last: $last\n orderBy: $orderBy\n where: $where\n ) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n overallStatus\n totalRunDurationInMs\n testResults {\n cachedLocally\n cachedRemotely\n }\n invocationTarget {\n target {\n id\n instanceName {\n name\n }\n label\n aspect\n targetKind\n }\n }\n }\n }\n }\n }\n": types.GetTestsForInvocationDocument, "\n query LoadFullBazelInvocationDetails($invocationID: UUID!) {\n getBazelInvocation(invocationID: $invocationID) {\n ...BazelInvocationInfo\n }\n }\n": types.LoadFullBazelInvocationDetailsDocument, - "\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n user {\n Email\n LDAP\n }\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n stepLabel\n hostname\n isCiWorker\n sourceControl {\n id\n provider\n instanceURL\n repo\n refs\n commitSha\n actor\n eventName\n workflow\n runID\n runNumber\n job\n action\n runnerName\n runnerArch\n runnerOs\n }\n}\n": types.BazelInvocationInfoFragmentDoc, - "\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildURL\n buildUUID\n timestamp\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n": types.FindBuildByUuidDocument, - "\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n userLdap\n endedAt\n startedAt\n exitCodeName\n sourceControl{\n job\n action\n workflow\n runnerName\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n": types.GetBuildInvocationFragmentDoc, + "\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n username\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n hostname\n sourceControl {\n id\n repo\n repoURL\n ref\n refURL\n commit\n commitURL\n }\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n}\n": types.BazelInvocationInfoFragmentDoc, + "\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildUUID\n timestamp\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n": types.FindBuildByUuidDocument, + "\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n username\n endedAt\n startedAt\n exitCodeName\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n": types.GetBuildInvocationFragmentDoc, "\n query GetTargetDetails(\n $instanceName: String!\n $label: String!\n $aspect: String!\n $targetKind: String!\n\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: InvocationTargetOrder\n $where: InvocationTargetWhereInput\n ){\n getTarget (instanceName: $instanceName, label: $label, aspect: $aspect, targetKind: $targetKind){\n invocationTargetsTotalDurationMillis\n invocationTargets(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n totalCount\n edges {\n node {\n id\n success\n durationInMs\n abortReason\n failureMessage\n tags\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n }\n": types.GetTargetDetailsDocument, "\n query GetTestDetails(\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: TestSummaryOrder\n $where: TestSummaryWhereInput\n ){\n findTestSummaries(\n after: $after\n first: $first\n before: $before\n last: $last\n orderBy: $orderBy\n where: $where\n ) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n overallStatus\n runCount\n attemptCount\n shardCount\n firstStartTime\n totalRunDurationInMs\n testResults {\n cachedLocally\n cachedRemotely\n }\n invocationTarget {\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n }\n": types.GetTestDetailsDocument, "\n query FindBuildTimes(\n $first: Int!\n \t$where: BazelInvocationWhereInput\n ) {\n findBazelInvocations(first: $first, where: $where ) {\n pageInfo{\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n\n }\n totalCount\n edges {\n node {\n invocationID\n startedAt\n endedAt\n }\n }\n }\n }\n": types.FindBuildTimesDocument, @@ -81,7 +81,7 @@ export function gql(source: "\n query FindBazelInvocations(\n $after: Cursor /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n user {\n Email\n LDAP\n }\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n"): (typeof documents)["\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n user {\n Email\n LDAP\n }\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n"]; +export function gql(source: "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n username\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n"): (typeof documents)["\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n username\n authenticatedUser {\n userUUID\n displayName\n }\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n build {\n buildUUID\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -89,7 +89,7 @@ export function gql(source: "\n query FindBuilds(\n $after: Cursor\n $fir /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n"): (typeof documents)["\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n"]; +export function gql(source: "\n fragment BuildNode on Build {\n id\n buildUUID\n timestamp\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n }\n"): (typeof documents)["\n fragment BuildNode on Build {\n id\n buildUUID\n timestamp\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -125,15 +125,15 @@ export function gql(source: "\n query LoadFullBazelInvocationDetails($invocatio /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n user {\n Email\n LDAP\n }\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n stepLabel\n hostname\n isCiWorker\n sourceControl {\n id\n provider\n instanceURL\n repo\n refs\n commitSha\n actor\n eventName\n workflow\n runID\n runNumber\n job\n action\n runnerName\n runnerArch\n runnerOs\n }\n}\n"): (typeof documents)["\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n user {\n Email\n LDAP\n }\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n stepLabel\n hostname\n isCiWorker\n sourceControl {\n id\n provider\n instanceURL\n repo\n refs\n commitSha\n actor\n eventName\n workflow\n runID\n runNumber\n job\n action\n runnerName\n runnerArch\n runnerOs\n }\n}\n"]; +export function gql(source: "\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n username\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n hostname\n sourceControl {\n id\n repo\n repoURL\n ref\n refURL\n commit\n commitURL\n }\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n}\n"): (typeof documents)["\nfragment BazelInvocationInfo on BazelInvocation {\n metrics {\n id\n actionSummary {\n id\n actionsCreated\n actionsExecuted\n actionsCreatedNotIncludingAspects\n remoteCacheHits\n actionCacheStatistics {\n id\n loadTimeInMs\n saveTimeInMs\n hits\n misses\n sizeInBytes\n missDetails {\n id\n count\n reason\n }\n }\n runnerCount {\n id\n actionsExecuted\n name\n execKind\n }\n actionData {\n id\n mnemonic\n userTime\n systemTime\n lastEndedMs\n actionsCreated\n actionsExecuted\n firstStartedMs\n }\n }\n artifactMetrics {\n id\n sourceArtifactsReadCount\n sourceArtifactsReadSizeInBytes\n outputArtifactsSeenCount\n outputArtifactsSeenSizeInBytes\n outputArtifactsFromActionCacheCount\n outputArtifactsFromActionCacheSizeInBytes\n topLevelArtifactsCount\n topLevelArtifactsSizeInBytes\n }\n memoryMetrics {\n id\n usedHeapSizePostBuild\n peakPostGcHeapSize\n peakPostGcTenuredSpaceHeapSize\n garbageMetrics {\n id\n garbageCollected\n type\n }\n }\n targetMetrics {\n id\n targetsLoaded\n targetsConfigured\n targetsConfiguredNotIncludingAspects\n }\n timingMetrics {\n id\n cpuTimeInMs\n wallTimeInMs\n analysisPhaseTimeInMs\n executionPhaseTimeInMs\n actionsExecutionStartInMs\n }\n networkMetrics {\n id\n systemNetworkStats {\n id\n bytesSent\n bytesRecv\n packetsSent\n packetsRecv\n peakBytesSentPerSec\n peakBytesRecvPerSec\n peakPacketsSentPerSec\n peakPacketsRecvPerSec\n }\n }\n }\n canonicalCommandLine\n originalCommandLine\n optionsParsed\n id\n invocationID\n instanceName {\n name\n }\n authenticatedUser {\n displayName\n userUUID\n }\n bazelVersion\n build {\n id\n buildUUID\n }\n actions {\n id\n label\n type\n success\n exitCode\n commandLine\n startTime\n endTime\n failureCode\n failureMessage\n stdoutHash\n stdoutSizeBytes\n stdoutHashFunction\n stderrHash\n stderrSizeBytes\n stderrHashFunction\n configuration {\n id\n configurationID\n mnemonic\n platformName\n cpu\n makeVariables\n }\n }\n profile {\n id\n name\n digest\n sizeInBytes\n digestFunction\n }\n username\n startedAt\n endedAt\n exitCodeName\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n configurations {\n id\n cpu\n mnemonic\n }\n numFetches\n hostname\n sourceControl {\n id\n repo\n repoURL\n ref\n refURL\n commit\n commitURL\n }\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n}\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildURL\n buildUUID\n timestamp\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildURL\n buildUUID\n timestamp\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n"]; +export function gql(source: "\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildUUID\n timestamp\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query FindBuildByUUID(\n $buildUUID: UUID!\n $after: Cursor\n $first: Int\n $before: Cursor\n $last: Int\n $orderBy: BazelInvocationOrder\n $where: BazelInvocationWhereInput\n ) {\n getBuild(buildUUID: $buildUUID) {\n id\n buildUUID\n timestamp\n tags(orderBy: { field: KEY, direction: ASC }) {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n invocations(after: $after, first: $first, before: $before, last: $last, orderBy: $orderBy, where: $where) {\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...GetBuildInvocation\n }\n }\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n userLdap\n endedAt\n startedAt\n exitCodeName\n sourceControl{\n job\n action\n workflow\n runnerName\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n"): (typeof documents)["\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n userLdap\n endedAt\n startedAt\n exitCodeName\n sourceControl{\n job\n action\n workflow\n runnerName\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n"]; +export function gql(source: "\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n username\n endedAt\n startedAt\n exitCodeName\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n"): (typeof documents)["\n fragment GetBuildInvocation on BazelInvocation {\n id\n invocationID\n username\n endedAt\n startedAt\n exitCodeName\n tags {\n edges {\n node {\n id\n key\n value\n }\n }\n }\n connectionMetadata {\n connectionLastOpenAt\n timeSinceLastConnectionMillis\n }\n originalCommandLine\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/frontend/src/graphql/__generated__/graphql.ts b/frontend/src/graphql/__generated__/graphql.ts index 3a2b001b..3b6d0e3c 100644 --- a/frontend/src/graphql/__generated__/graphql.ts +++ b/frontend/src/graphql/__generated__/graphql.ts @@ -771,7 +771,6 @@ export type BazelInvocation = Node & { build?: Maybe; /** JSON representation of the canonical command line options. */ canonicalCommandLine?: Maybe; - changeNumber?: Maybe; configurations?: Maybe>; connectionMetadata?: Maybe; endedAt?: Maybe; @@ -782,21 +781,17 @@ export type BazelInvocation = Node & { instanceName: InstanceName; invocationID: Scalars['UUID']['output']; invocationTargets: InvocationTargetConnection; - isCiWorker?: Maybe; metrics?: Maybe; numFetches?: Maybe; /** JSON representation of the parsed command line options */ optionsParsed?: Maybe; /** JSON representation of the original command line options. */ originalCommandLine?: Maybe; - patchsetNumber?: Maybe; profile?: Maybe; - sourceControl?: Maybe; + sourceControl?: Maybe>; startedAt?: Maybe; - stepLabel?: Maybe; - user?: Maybe; - userEmail?: Maybe; - userLdap?: Maybe; + tags: InvocationTagConnection; + username?: Maybe; }; @@ -809,6 +804,16 @@ export type BazelInvocationInvocationTargetsArgs = { where?: InputMaybe; }; + +export type BazelInvocationTagsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; + where?: InputMaybe; +}; + /** A connection to a list of items. */ export type BazelInvocationConnection = { __typename?: 'BazelInvocationConnection'; @@ -840,7 +845,7 @@ export type BazelInvocationOrder = { /** Properties by which BazelInvocation connections can be ordered. */ export enum BazelInvocationOrderField { StartedAt = 'STARTED_AT', - UserLdap = 'USER_LDAP' + Username = 'USERNAME' } /** @@ -868,17 +873,6 @@ export type BazelInvocationWhereInput = { /** bep_completed field predicates */ bepCompleted?: InputMaybe; bepCompletedNEQ?: InputMaybe; - /** change_number field predicates */ - changeNumber?: InputMaybe; - changeNumberGT?: InputMaybe; - changeNumberGTE?: InputMaybe; - changeNumberIn?: InputMaybe>; - changeNumberIsNil?: InputMaybe; - changeNumberLT?: InputMaybe; - changeNumberLTE?: InputMaybe; - changeNumberNEQ?: InputMaybe; - changeNumberNotIn?: InputMaybe>; - changeNumberNotNil?: InputMaybe; /** ended_at field predicates */ endedAt?: InputMaybe; endedAtGT?: InputMaybe; @@ -944,6 +938,9 @@ export type BazelInvocationWhereInput = { /** source_control edge predicates */ hasSourceControl?: InputMaybe; hasSourceControlWith?: InputMaybe>; + /** tags edge predicates */ + hasTags?: InputMaybe; + hasTagsWith?: InputMaybe>; /** hostname field predicates */ hostname?: InputMaybe; hostnameContains?: InputMaybe; @@ -978,11 +975,6 @@ export type BazelInvocationWhereInput = { invocationIDLTE?: InputMaybe; invocationIDNEQ?: InputMaybe; invocationIDNotIn?: InputMaybe>; - /** is_ci_worker field predicates */ - isCiWorker?: InputMaybe; - isCiWorkerIsNil?: InputMaybe; - isCiWorkerNEQ?: InputMaybe; - isCiWorkerNotNil?: InputMaybe; not?: InputMaybe; /** num_fetches field predicates */ numFetches?: InputMaybe; @@ -996,17 +988,6 @@ export type BazelInvocationWhereInput = { numFetchesNotIn?: InputMaybe>; numFetchesNotNil?: InputMaybe; or?: InputMaybe>; - /** patchset_number field predicates */ - patchsetNumber?: InputMaybe; - patchsetNumberGT?: InputMaybe; - patchsetNumberGTE?: InputMaybe; - patchsetNumberIn?: InputMaybe>; - patchsetNumberIsNil?: InputMaybe; - patchsetNumberLT?: InputMaybe; - patchsetNumberLTE?: InputMaybe; - patchsetNumberNEQ?: InputMaybe; - patchsetNumberNotIn?: InputMaybe>; - patchsetNumberNotNil?: InputMaybe; /** profile_name field predicates */ profileName?: InputMaybe; profileNameContains?: InputMaybe; @@ -1034,63 +1015,31 @@ export type BazelInvocationWhereInput = { startedAtNEQ?: InputMaybe; startedAtNotIn?: InputMaybe>; startedAtNotNil?: InputMaybe; - /** step_label field predicates */ - stepLabel?: InputMaybe; - stepLabelContains?: InputMaybe; - stepLabelContainsFold?: InputMaybe; - stepLabelEqualFold?: InputMaybe; - stepLabelGT?: InputMaybe; - stepLabelGTE?: InputMaybe; - stepLabelHasPrefix?: InputMaybe; - stepLabelHasSuffix?: InputMaybe; - stepLabelIn?: InputMaybe>; - stepLabelIsNil?: InputMaybe; - stepLabelLT?: InputMaybe; - stepLabelLTE?: InputMaybe; - stepLabelNEQ?: InputMaybe; - stepLabelNotIn?: InputMaybe>; - stepLabelNotNil?: InputMaybe; - /** user_email field predicates */ - userEmail?: InputMaybe; - userEmailContains?: InputMaybe; - userEmailContainsFold?: InputMaybe; - userEmailEqualFold?: InputMaybe; - userEmailGT?: InputMaybe; - userEmailGTE?: InputMaybe; - userEmailHasPrefix?: InputMaybe; - userEmailHasSuffix?: InputMaybe; - userEmailIn?: InputMaybe>; - userEmailIsNil?: InputMaybe; - userEmailLT?: InputMaybe; - userEmailLTE?: InputMaybe; - userEmailNEQ?: InputMaybe; - userEmailNotIn?: InputMaybe>; - userEmailNotNil?: InputMaybe; - /** user_ldap field predicates */ - userLdap?: InputMaybe; - userLdapContains?: InputMaybe; - userLdapContainsFold?: InputMaybe; - userLdapEqualFold?: InputMaybe; - userLdapGT?: InputMaybe; - userLdapGTE?: InputMaybe; - userLdapHasPrefix?: InputMaybe; - userLdapHasSuffix?: InputMaybe; - userLdapIn?: InputMaybe>; - userLdapIsNil?: InputMaybe; - userLdapLT?: InputMaybe; - userLdapLTE?: InputMaybe; - userLdapNEQ?: InputMaybe; - userLdapNotIn?: InputMaybe>; - userLdapNotNil?: InputMaybe; + /** username field predicates */ + username?: InputMaybe; + usernameContains?: InputMaybe; + usernameContainsFold?: InputMaybe; + usernameEqualFold?: InputMaybe; + usernameGT?: InputMaybe; + usernameGTE?: InputMaybe; + usernameHasPrefix?: InputMaybe; + usernameHasSuffix?: InputMaybe; + usernameIn?: InputMaybe>; + usernameIsNil?: InputMaybe; + usernameLT?: InputMaybe; + usernameLTE?: InputMaybe; + usernameNEQ?: InputMaybe; + usernameNotIn?: InputMaybe>; + usernameNotNil?: InputMaybe; }; export type Build = Node & { __typename?: 'Build'; - buildURL: Scalars['String']['output']; buildUUID: Scalars['UUID']['output']; id: Scalars['ID']['output']; instanceName: InstanceName; invocations: BazelInvocationConnection; + tags: BuildTagConnection; timestamp: Scalars['Time']['output']; }; @@ -1104,6 +1053,16 @@ export type BuildInvocationsArgs = { where?: InputMaybe; }; + +export type BuildTagsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; + where?: InputMaybe; +}; + /** A connection to a list of items. */ export type BuildConnection = { __typename?: 'BuildConnection'; @@ -1273,26 +1232,103 @@ export enum BuildOrderField { Timestamp = 'TIMESTAMP' } +export type BuildTag = Node & { + __typename?: 'BuildTag'; + build: Build; + id: Scalars['ID']['output']; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +/** A connection to a list of items. */ +export type BuildTagConnection = { + __typename?: 'BuildTagConnection'; + /** A list of edges. */ + edges?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars['Int']['output']; +}; + +/** An edge in a connection. */ +export type BuildTagEdge = { + __typename?: 'BuildTagEdge'; + /** A cursor for use in pagination. */ + cursor: Scalars['Cursor']['output']; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** Ordering options for BuildTag connections */ +export type BuildTagOrder = { + /** The ordering direction. */ + direction?: OrderDirection; + /** The field by which to order BuildTags. */ + field: BuildTagOrderField; +}; + +/** Properties by which BuildTag connections can be ordered. */ +export enum BuildTagOrderField { + Key = 'KEY' +} + +/** + * BuildTagWhereInput is used for filtering BuildTag objects. + * Input was generated by ent. + */ +export type BuildTagWhereInput = { + and?: InputMaybe>; + /** build edge predicates */ + hasBuild?: InputMaybe; + hasBuildWith?: InputMaybe>; + /** id field predicates */ + id?: InputMaybe; + idGT?: InputMaybe; + idGTE?: InputMaybe; + idIn?: InputMaybe>; + idLT?: InputMaybe; + idLTE?: InputMaybe; + idNEQ?: InputMaybe; + idNotIn?: InputMaybe>; + /** key field predicates */ + key?: InputMaybe; + keyContains?: InputMaybe; + keyContainsFold?: InputMaybe; + keyEqualFold?: InputMaybe; + keyGT?: InputMaybe; + keyGTE?: InputMaybe; + keyHasPrefix?: InputMaybe; + keyHasSuffix?: InputMaybe; + keyIn?: InputMaybe>; + keyLT?: InputMaybe; + keyLTE?: InputMaybe; + keyNEQ?: InputMaybe; + keyNotIn?: InputMaybe>; + not?: InputMaybe; + or?: InputMaybe>; + /** value field predicates */ + value?: InputMaybe; + valueContains?: InputMaybe; + valueContainsFold?: InputMaybe; + valueEqualFold?: InputMaybe; + valueGT?: InputMaybe; + valueGTE?: InputMaybe; + valueHasPrefix?: InputMaybe; + valueHasSuffix?: InputMaybe; + valueIn?: InputMaybe>; + valueLT?: InputMaybe; + valueLTE?: InputMaybe; + valueNEQ?: InputMaybe; + valueNotIn?: InputMaybe>; +}; + /** * BuildWhereInput is used for filtering Build objects. * Input was generated by ent. */ export type BuildWhereInput = { and?: InputMaybe>; - /** build_url field predicates */ - buildURL?: InputMaybe; - buildURLContains?: InputMaybe; - buildURLContainsFold?: InputMaybe; - buildURLEqualFold?: InputMaybe; - buildURLGT?: InputMaybe; - buildURLGTE?: InputMaybe; - buildURLHasPrefix?: InputMaybe; - buildURLHasSuffix?: InputMaybe; - buildURLIn?: InputMaybe>; - buildURLLT?: InputMaybe; - buildURLLTE?: InputMaybe; - buildURLNEQ?: InputMaybe; - buildURLNotIn?: InputMaybe>; /** build_uuid field predicates */ buildUUID?: InputMaybe; buildUUIDGT?: InputMaybe; @@ -1308,6 +1344,9 @@ export type BuildWhereInput = { /** invocations edge predicates */ hasInvocations?: InputMaybe; hasInvocationsWith?: InputMaybe>; + /** tags edge predicates */ + hasTags?: InputMaybe; + hasTagsWith?: InputMaybe>; /** id field predicates */ id?: InputMaybe; idGT?: InputMaybe; @@ -1586,6 +1625,97 @@ export type InstanceNameWhereInput = { or?: InputMaybe>; }; +export type InvocationTag = Node & { + __typename?: 'InvocationTag'; + bazelInvocation: BazelInvocation; + id: Scalars['ID']['output']; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +/** A connection to a list of items. */ +export type InvocationTagConnection = { + __typename?: 'InvocationTagConnection'; + /** A list of edges. */ + edges?: Maybe>>; + /** Information to aid in pagination. */ + pageInfo: PageInfo; + /** Identifies the total count of items in the connection. */ + totalCount: Scalars['Int']['output']; +}; + +/** An edge in a connection. */ +export type InvocationTagEdge = { + __typename?: 'InvocationTagEdge'; + /** A cursor for use in pagination. */ + cursor: Scalars['Cursor']['output']; + /** The item at the end of the edge. */ + node?: Maybe; +}; + +/** Ordering options for InvocationTag connections */ +export type InvocationTagOrder = { + /** The ordering direction. */ + direction?: OrderDirection; + /** The field by which to order InvocationTags. */ + field: InvocationTagOrderField; +}; + +/** Properties by which InvocationTag connections can be ordered. */ +export enum InvocationTagOrderField { + Key = 'KEY' +} + +/** + * InvocationTagWhereInput is used for filtering InvocationTag objects. + * Input was generated by ent. + */ +export type InvocationTagWhereInput = { + and?: InputMaybe>; + /** bazel_invocation edge predicates */ + hasBazelInvocation?: InputMaybe; + hasBazelInvocationWith?: InputMaybe>; + /** id field predicates */ + id?: InputMaybe; + idGT?: InputMaybe; + idGTE?: InputMaybe; + idIn?: InputMaybe>; + idLT?: InputMaybe; + idLTE?: InputMaybe; + idNEQ?: InputMaybe; + idNotIn?: InputMaybe>; + /** key field predicates */ + key?: InputMaybe; + keyContains?: InputMaybe; + keyContainsFold?: InputMaybe; + keyEqualFold?: InputMaybe; + keyGT?: InputMaybe; + keyGTE?: InputMaybe; + keyHasPrefix?: InputMaybe; + keyHasSuffix?: InputMaybe; + keyIn?: InputMaybe>; + keyLT?: InputMaybe; + keyLTE?: InputMaybe; + keyNEQ?: InputMaybe; + keyNotIn?: InputMaybe>; + not?: InputMaybe; + or?: InputMaybe>; + /** value field predicates */ + value?: InputMaybe; + valueContains?: InputMaybe; + valueContainsFold?: InputMaybe; + valueEqualFold?: InputMaybe; + valueGT?: InputMaybe; + valueGTE?: InputMaybe; + valueHasPrefix?: InputMaybe; + valueHasSuffix?: InputMaybe; + valueIn?: InputMaybe>; + valueLT?: InputMaybe; + valueLTE?: InputMaybe; + valueNEQ?: InputMaybe; + valueNotIn?: InputMaybe>; +}; + export type InvocationTarget = Node & { __typename?: 'InvocationTarget'; abortReason: InvocationTargetAbortReason; @@ -2158,102 +2288,54 @@ export type RunnerCountWhereInput = { export type SourceControl = Node & { __typename?: 'SourceControl'; - action?: Maybe; - actor?: Maybe; bazelInvocation?: Maybe; - commitSha?: Maybe; - eventName?: Maybe; + commit?: Maybe; + commitURL?: Maybe; id: Scalars['ID']['output']; - instanceURL?: Maybe; - job?: Maybe; - provider?: Maybe; - refs?: Maybe; + ref?: Maybe; + refURL?: Maybe; repo?: Maybe; - runID?: Maybe; - runNumber?: Maybe; - runnerArch?: Maybe; - runnerName?: Maybe; - runnerOs?: Maybe; - workflow?: Maybe; - workspace?: Maybe; -}; - -/** SourceControlProvider is enum for the field provider */ -export enum SourceControlProvider { - Github = 'GITHUB', - Gitlab = 'GITLAB' -} + repoURL?: Maybe; +}; /** * SourceControlWhereInput is used for filtering SourceControl objects. * Input was generated by ent. */ export type SourceControlWhereInput = { - /** action field predicates */ - action?: InputMaybe; - actionContains?: InputMaybe; - actionContainsFold?: InputMaybe; - actionEqualFold?: InputMaybe; - actionGT?: InputMaybe; - actionGTE?: InputMaybe; - actionHasPrefix?: InputMaybe; - actionHasSuffix?: InputMaybe; - actionIn?: InputMaybe>; - actionIsNil?: InputMaybe; - actionLT?: InputMaybe; - actionLTE?: InputMaybe; - actionNEQ?: InputMaybe; - actionNotIn?: InputMaybe>; - actionNotNil?: InputMaybe; - /** actor field predicates */ - actor?: InputMaybe; - actorContains?: InputMaybe; - actorContainsFold?: InputMaybe; - actorEqualFold?: InputMaybe; - actorGT?: InputMaybe; - actorGTE?: InputMaybe; - actorHasPrefix?: InputMaybe; - actorHasSuffix?: InputMaybe; - actorIn?: InputMaybe>; - actorIsNil?: InputMaybe; - actorLT?: InputMaybe; - actorLTE?: InputMaybe; - actorNEQ?: InputMaybe; - actorNotIn?: InputMaybe>; - actorNotNil?: InputMaybe; and?: InputMaybe>; - /** commit_sha field predicates */ - commitSha?: InputMaybe; - commitShaContains?: InputMaybe; - commitShaContainsFold?: InputMaybe; - commitShaEqualFold?: InputMaybe; - commitShaGT?: InputMaybe; - commitShaGTE?: InputMaybe; - commitShaHasPrefix?: InputMaybe; - commitShaHasSuffix?: InputMaybe; - commitShaIn?: InputMaybe>; - commitShaIsNil?: InputMaybe; - commitShaLT?: InputMaybe; - commitShaLTE?: InputMaybe; - commitShaNEQ?: InputMaybe; - commitShaNotIn?: InputMaybe>; - commitShaNotNil?: InputMaybe; - /** event_name field predicates */ - eventName?: InputMaybe; - eventNameContains?: InputMaybe; - eventNameContainsFold?: InputMaybe; - eventNameEqualFold?: InputMaybe; - eventNameGT?: InputMaybe; - eventNameGTE?: InputMaybe; - eventNameHasPrefix?: InputMaybe; - eventNameHasSuffix?: InputMaybe; - eventNameIn?: InputMaybe>; - eventNameIsNil?: InputMaybe; - eventNameLT?: InputMaybe; - eventNameLTE?: InputMaybe; - eventNameNEQ?: InputMaybe; - eventNameNotIn?: InputMaybe>; - eventNameNotNil?: InputMaybe; + /** commit field predicates */ + commit?: InputMaybe; + commitContains?: InputMaybe; + commitContainsFold?: InputMaybe; + commitEqualFold?: InputMaybe; + commitGT?: InputMaybe; + commitGTE?: InputMaybe; + commitHasPrefix?: InputMaybe; + commitHasSuffix?: InputMaybe; + commitIn?: InputMaybe>; + commitIsNil?: InputMaybe; + commitLT?: InputMaybe; + commitLTE?: InputMaybe; + commitNEQ?: InputMaybe; + commitNotIn?: InputMaybe>; + commitNotNil?: InputMaybe; + /** commit_url field predicates */ + commitURL?: InputMaybe; + commitURLContains?: InputMaybe; + commitURLContainsFold?: InputMaybe; + commitURLEqualFold?: InputMaybe; + commitURLGT?: InputMaybe; + commitURLGTE?: InputMaybe; + commitURLHasPrefix?: InputMaybe; + commitURLHasSuffix?: InputMaybe; + commitURLIn?: InputMaybe>; + commitURLIsNil?: InputMaybe; + commitURLLT?: InputMaybe; + commitURLLTE?: InputMaybe; + commitURLNEQ?: InputMaybe; + commitURLNotIn?: InputMaybe>; + commitURLNotNil?: InputMaybe; /** bazel_invocation edge predicates */ hasBazelInvocation?: InputMaybe; hasBazelInvocationWith?: InputMaybe>; @@ -2266,63 +2348,40 @@ export type SourceControlWhereInput = { idLTE?: InputMaybe; idNEQ?: InputMaybe; idNotIn?: InputMaybe>; - /** instance_url field predicates */ - instanceURL?: InputMaybe; - instanceURLContains?: InputMaybe; - instanceURLContainsFold?: InputMaybe; - instanceURLEqualFold?: InputMaybe; - instanceURLGT?: InputMaybe; - instanceURLGTE?: InputMaybe; - instanceURLHasPrefix?: InputMaybe; - instanceURLHasSuffix?: InputMaybe; - instanceURLIn?: InputMaybe>; - instanceURLIsNil?: InputMaybe; - instanceURLLT?: InputMaybe; - instanceURLLTE?: InputMaybe; - instanceURLNEQ?: InputMaybe; - instanceURLNotIn?: InputMaybe>; - instanceURLNotNil?: InputMaybe; - /** job field predicates */ - job?: InputMaybe; - jobContains?: InputMaybe; - jobContainsFold?: InputMaybe; - jobEqualFold?: InputMaybe; - jobGT?: InputMaybe; - jobGTE?: InputMaybe; - jobHasPrefix?: InputMaybe; - jobHasSuffix?: InputMaybe; - jobIn?: InputMaybe>; - jobIsNil?: InputMaybe; - jobLT?: InputMaybe; - jobLTE?: InputMaybe; - jobNEQ?: InputMaybe; - jobNotIn?: InputMaybe>; - jobNotNil?: InputMaybe; not?: InputMaybe; or?: InputMaybe>; - /** provider field predicates */ - provider?: InputMaybe; - providerIn?: InputMaybe>; - providerIsNil?: InputMaybe; - providerNEQ?: InputMaybe; - providerNotIn?: InputMaybe>; - providerNotNil?: InputMaybe; - /** refs field predicates */ - refs?: InputMaybe; - refsContains?: InputMaybe; - refsContainsFold?: InputMaybe; - refsEqualFold?: InputMaybe; - refsGT?: InputMaybe; - refsGTE?: InputMaybe; - refsHasPrefix?: InputMaybe; - refsHasSuffix?: InputMaybe; - refsIn?: InputMaybe>; - refsIsNil?: InputMaybe; - refsLT?: InputMaybe; - refsLTE?: InputMaybe; - refsNEQ?: InputMaybe; - refsNotIn?: InputMaybe>; - refsNotNil?: InputMaybe; + /** ref field predicates */ + ref?: InputMaybe; + refContains?: InputMaybe; + refContainsFold?: InputMaybe; + refEqualFold?: InputMaybe; + refGT?: InputMaybe; + refGTE?: InputMaybe; + refHasPrefix?: InputMaybe; + refHasSuffix?: InputMaybe; + refIn?: InputMaybe>; + refIsNil?: InputMaybe; + refLT?: InputMaybe; + refLTE?: InputMaybe; + refNEQ?: InputMaybe; + refNotIn?: InputMaybe>; + refNotNil?: InputMaybe; + /** ref_url field predicates */ + refURL?: InputMaybe; + refURLContains?: InputMaybe; + refURLContainsFold?: InputMaybe; + refURLEqualFold?: InputMaybe; + refURLGT?: InputMaybe; + refURLGTE?: InputMaybe; + refURLHasPrefix?: InputMaybe; + refURLHasSuffix?: InputMaybe; + refURLIn?: InputMaybe>; + refURLIsNil?: InputMaybe; + refURLLT?: InputMaybe; + refURLLTE?: InputMaybe; + refURLNEQ?: InputMaybe; + refURLNotIn?: InputMaybe>; + refURLNotNil?: InputMaybe; /** repo field predicates */ repo?: InputMaybe; repoContains?: InputMaybe; @@ -2339,118 +2398,22 @@ export type SourceControlWhereInput = { repoNEQ?: InputMaybe; repoNotIn?: InputMaybe>; repoNotNil?: InputMaybe; - /** run_id field predicates */ - runID?: InputMaybe; - runIDContains?: InputMaybe; - runIDContainsFold?: InputMaybe; - runIDEqualFold?: InputMaybe; - runIDGT?: InputMaybe; - runIDGTE?: InputMaybe; - runIDHasPrefix?: InputMaybe; - runIDHasSuffix?: InputMaybe; - runIDIn?: InputMaybe>; - runIDIsNil?: InputMaybe; - runIDLT?: InputMaybe; - runIDLTE?: InputMaybe; - runIDNEQ?: InputMaybe; - runIDNotIn?: InputMaybe>; - runIDNotNil?: InputMaybe; - /** run_number field predicates */ - runNumber?: InputMaybe; - runNumberContains?: InputMaybe; - runNumberContainsFold?: InputMaybe; - runNumberEqualFold?: InputMaybe; - runNumberGT?: InputMaybe; - runNumberGTE?: InputMaybe; - runNumberHasPrefix?: InputMaybe; - runNumberHasSuffix?: InputMaybe; - runNumberIn?: InputMaybe>; - runNumberIsNil?: InputMaybe; - runNumberLT?: InputMaybe; - runNumberLTE?: InputMaybe; - runNumberNEQ?: InputMaybe; - runNumberNotIn?: InputMaybe>; - runNumberNotNil?: InputMaybe; - /** runner_arch field predicates */ - runnerArch?: InputMaybe; - runnerArchContains?: InputMaybe; - runnerArchContainsFold?: InputMaybe; - runnerArchEqualFold?: InputMaybe; - runnerArchGT?: InputMaybe; - runnerArchGTE?: InputMaybe; - runnerArchHasPrefix?: InputMaybe; - runnerArchHasSuffix?: InputMaybe; - runnerArchIn?: InputMaybe>; - runnerArchIsNil?: InputMaybe; - runnerArchLT?: InputMaybe; - runnerArchLTE?: InputMaybe; - runnerArchNEQ?: InputMaybe; - runnerArchNotIn?: InputMaybe>; - runnerArchNotNil?: InputMaybe; - /** runner_name field predicates */ - runnerName?: InputMaybe; - runnerNameContains?: InputMaybe; - runnerNameContainsFold?: InputMaybe; - runnerNameEqualFold?: InputMaybe; - runnerNameGT?: InputMaybe; - runnerNameGTE?: InputMaybe; - runnerNameHasPrefix?: InputMaybe; - runnerNameHasSuffix?: InputMaybe; - runnerNameIn?: InputMaybe>; - runnerNameIsNil?: InputMaybe; - runnerNameLT?: InputMaybe; - runnerNameLTE?: InputMaybe; - runnerNameNEQ?: InputMaybe; - runnerNameNotIn?: InputMaybe>; - runnerNameNotNil?: InputMaybe; - /** runner_os field predicates */ - runnerOs?: InputMaybe; - runnerOsContains?: InputMaybe; - runnerOsContainsFold?: InputMaybe; - runnerOsEqualFold?: InputMaybe; - runnerOsGT?: InputMaybe; - runnerOsGTE?: InputMaybe; - runnerOsHasPrefix?: InputMaybe; - runnerOsHasSuffix?: InputMaybe; - runnerOsIn?: InputMaybe>; - runnerOsIsNil?: InputMaybe; - runnerOsLT?: InputMaybe; - runnerOsLTE?: InputMaybe; - runnerOsNEQ?: InputMaybe; - runnerOsNotIn?: InputMaybe>; - runnerOsNotNil?: InputMaybe; - /** workflow field predicates */ - workflow?: InputMaybe; - workflowContains?: InputMaybe; - workflowContainsFold?: InputMaybe; - workflowEqualFold?: InputMaybe; - workflowGT?: InputMaybe; - workflowGTE?: InputMaybe; - workflowHasPrefix?: InputMaybe; - workflowHasSuffix?: InputMaybe; - workflowIn?: InputMaybe>; - workflowIsNil?: InputMaybe; - workflowLT?: InputMaybe; - workflowLTE?: InputMaybe; - workflowNEQ?: InputMaybe; - workflowNotIn?: InputMaybe>; - workflowNotNil?: InputMaybe; - /** workspace field predicates */ - workspace?: InputMaybe; - workspaceContains?: InputMaybe; - workspaceContainsFold?: InputMaybe; - workspaceEqualFold?: InputMaybe; - workspaceGT?: InputMaybe; - workspaceGTE?: InputMaybe; - workspaceHasPrefix?: InputMaybe; - workspaceHasSuffix?: InputMaybe; - workspaceIn?: InputMaybe>; - workspaceIsNil?: InputMaybe; - workspaceLT?: InputMaybe; - workspaceLTE?: InputMaybe; - workspaceNEQ?: InputMaybe; - workspaceNotIn?: InputMaybe>; - workspaceNotNil?: InputMaybe; + /** repo_url field predicates */ + repoURL?: InputMaybe; + repoURLContains?: InputMaybe; + repoURLContainsFold?: InputMaybe; + repoURLEqualFold?: InputMaybe; + repoURLGT?: InputMaybe; + repoURLGTE?: InputMaybe; + repoURLHasPrefix?: InputMaybe; + repoURLHasSuffix?: InputMaybe; + repoURLIn?: InputMaybe>; + repoURLIsNil?: InputMaybe; + repoURLLT?: InputMaybe; + repoURLLTE?: InputMaybe; + repoURLNEQ?: InputMaybe; + repoURLNotIn?: InputMaybe>; + repoURLNotNil?: InputMaybe; }; export type SystemNetworkStats = Node & { @@ -3230,13 +3193,6 @@ export type TimingMetricsWhereInput = { wallTimeInMsNotNil?: InputMaybe; }; -export type User = { - __typename?: 'User'; - Email: Scalars['String']['output']; - LDAP: Scalars['String']['output']; - id: Scalars['ID']['output']; -}; - export type FindBazelInvocationsQueryVariables = Exact<{ after?: InputMaybe; first?: InputMaybe; @@ -3252,7 +3208,7 @@ export type FindBazelInvocationsQuery = { __typename?: 'Query', findBazelInvocat & { ' $fragmentRefs'?: { 'BazelInvocationNodeFragment': BazelInvocationNodeFragment } } ) | null } | null> | null } }; -export type BazelInvocationNodeFragment = { __typename?: 'BazelInvocation', id: string, invocationID: any, startedAt?: any | null, endedAt?: any | null, exitCodeName?: string | null, user?: { __typename?: 'User', Email: string, LDAP: string } | null, authenticatedUser?: { __typename?: 'AuthenticatedUser', userUUID: any, displayName?: string | null } | null, connectionMetadata?: { __typename?: 'ConnectionMetadata', connectionLastOpenAt: any, timeSinceLastConnectionMillis: number } | null, build?: { __typename?: 'Build', buildUUID: any } | null } & { ' $fragmentName'?: 'BazelInvocationNodeFragment' }; +export type BazelInvocationNodeFragment = { __typename?: 'BazelInvocation', id: string, invocationID: any, startedAt?: any | null, username?: string | null, endedAt?: any | null, exitCodeName?: string | null, authenticatedUser?: { __typename?: 'AuthenticatedUser', userUUID: any, displayName?: string | null } | null, connectionMetadata?: { __typename?: 'ConnectionMetadata', connectionLastOpenAt: any, timeSinceLastConnectionMillis: number } | null, build?: { __typename?: 'Build', buildUUID: any } | null } & { ' $fragmentName'?: 'BazelInvocationNodeFragment' }; export type FindBuildsQueryVariables = Exact<{ after?: InputMaybe; @@ -3269,7 +3225,7 @@ export type FindBuildsQuery = { __typename?: 'Query', findBuilds: { __typename?: & { ' $fragmentRefs'?: { 'BuildNodeFragment': BuildNodeFragment } } ) | null } | null> | null } }; -export type BuildNodeFragment = { __typename?: 'Build', id: string, buildUUID: any, buildURL: string, timestamp: any } & { ' $fragmentName'?: 'BuildNodeFragment' }; +export type BuildNodeFragment = { __typename?: 'Build', id: string, buildUUID: any, timestamp: any, tags: { __typename?: 'BuildTagConnection', edges?: Array<{ __typename?: 'BuildTagEdge', node?: { __typename?: 'BuildTag', id: string, key: string, value: string } | null } | null> | null } } & { ' $fragmentName'?: 'BuildNodeFragment' }; export type CheckIfInvocationExistsQueryVariables = Exact<{ invocationID: Scalars['UUID']['input']; @@ -3363,7 +3319,7 @@ export type LoadFullBazelInvocationDetailsQuery = { __typename?: 'Query', getBaz & { ' $fragmentRefs'?: { 'BazelInvocationInfoFragment': BazelInvocationInfoFragment } } ) | null }; -export type BazelInvocationInfoFragment = { __typename?: 'BazelInvocation', canonicalCommandLine?: any | null, originalCommandLine?: any | null, optionsParsed?: any | null, id: string, invocationID: any, bazelVersion?: string | null, startedAt?: any | null, endedAt?: any | null, exitCodeName?: string | null, numFetches?: number | null, stepLabel?: string | null, hostname?: string | null, isCiWorker?: boolean | null, metrics?: { __typename?: 'Metrics', id: string, actionSummary?: { __typename?: 'ActionSummary', id: string, actionsCreated?: number | null, actionsExecuted?: number | null, actionsCreatedNotIncludingAspects?: number | null, remoteCacheHits?: number | null, actionCacheStatistics?: { __typename?: 'ActionCacheStatistics', id: string, loadTimeInMs?: number | null, saveTimeInMs?: number | null, hits?: number | null, misses?: number | null, sizeInBytes?: number | null, missDetails?: Array<{ __typename?: 'MissDetail', id: string, count?: number | null, reason: string }> | null } | null, runnerCount?: Array<{ __typename?: 'RunnerCount', id: string, actionsExecuted?: number | null, name?: string | null, execKind?: string | null }> | null, actionData?: Array<{ __typename?: 'ActionData', id: string, mnemonic?: string | null, userTime?: number | null, systemTime?: number | null, lastEndedMs?: number | null, actionsCreated?: number | null, actionsExecuted?: number | null, firstStartedMs?: number | null }> | null } | null, artifactMetrics?: { __typename?: 'ArtifactMetrics', id: string, sourceArtifactsReadCount?: number | null, sourceArtifactsReadSizeInBytes?: number | null, outputArtifactsSeenCount?: number | null, outputArtifactsSeenSizeInBytes?: number | null, outputArtifactsFromActionCacheCount?: number | null, outputArtifactsFromActionCacheSizeInBytes?: number | null, topLevelArtifactsCount?: number | null, topLevelArtifactsSizeInBytes?: number | null } | null, memoryMetrics?: { __typename?: 'MemoryMetrics', id: string, usedHeapSizePostBuild?: number | null, peakPostGcHeapSize?: number | null, peakPostGcTenuredSpaceHeapSize?: number | null, garbageMetrics?: Array<{ __typename?: 'GarbageMetrics', id: string, garbageCollected?: number | null, type?: string | null }> | null } | null, targetMetrics?: { __typename?: 'TargetMetrics', id: string, targetsLoaded?: number | null, targetsConfigured?: number | null, targetsConfiguredNotIncludingAspects?: number | null } | null, timingMetrics?: { __typename?: 'TimingMetrics', id: string, cpuTimeInMs?: number | null, wallTimeInMs?: number | null, analysisPhaseTimeInMs?: number | null, executionPhaseTimeInMs?: number | null, actionsExecutionStartInMs?: number | null } | null, networkMetrics?: { __typename?: 'NetworkMetrics', id: string, systemNetworkStats?: { __typename?: 'SystemNetworkStats', id: string, bytesSent?: number | null, bytesRecv?: number | null, packetsSent?: number | null, packetsRecv?: number | null, peakBytesSentPerSec?: number | null, peakBytesRecvPerSec?: number | null, peakPacketsSentPerSec?: number | null, peakPacketsRecvPerSec?: number | null } | null } | null } | null, instanceName: { __typename?: 'InstanceName', name: string }, authenticatedUser?: { __typename?: 'AuthenticatedUser', displayName?: string | null, userUUID: any } | null, build?: { __typename?: 'Build', id: string, buildUUID: any } | null, actions?: Array<{ __typename?: 'Action', id: string, label: string, type?: string | null, success?: boolean | null, exitCode?: number | null, commandLine?: Array | null, startTime?: any | null, endTime?: any | null, failureCode?: string | null, failureMessage?: string | null, stdoutHash?: string | null, stdoutSizeBytes?: number | null, stdoutHashFunction?: string | null, stderrHash?: string | null, stderrSizeBytes?: number | null, stderrHashFunction?: string | null, configuration: { __typename?: 'Configuration', id: string, configurationID: string, mnemonic?: string | null, platformName?: string | null, cpu?: string | null, makeVariables?: any | null } }> | null, profile?: { __typename?: 'Profile', id: string, name: string, digest: string, sizeInBytes: number, digestFunction: string } | null, user?: { __typename?: 'User', Email: string, LDAP: string } | null, connectionMetadata?: { __typename?: 'ConnectionMetadata', connectionLastOpenAt: any, timeSinceLastConnectionMillis: number } | null, configurations?: Array<{ __typename?: 'Configuration', id: string, cpu?: string | null, mnemonic?: string | null }> | null, sourceControl?: { __typename?: 'SourceControl', id: string, provider?: SourceControlProvider | null, instanceURL?: string | null, repo?: string | null, refs?: string | null, commitSha?: string | null, actor?: string | null, eventName?: string | null, workflow?: string | null, runID?: string | null, runNumber?: string | null, job?: string | null, action?: string | null, runnerName?: string | null, runnerArch?: string | null, runnerOs?: string | null } | null } & { ' $fragmentName'?: 'BazelInvocationInfoFragment' }; +export type BazelInvocationInfoFragment = { __typename?: 'BazelInvocation', canonicalCommandLine?: any | null, originalCommandLine?: any | null, optionsParsed?: any | null, id: string, invocationID: any, bazelVersion?: string | null, username?: string | null, startedAt?: any | null, endedAt?: any | null, exitCodeName?: string | null, numFetches?: number | null, hostname?: string | null, metrics?: { __typename?: 'Metrics', id: string, actionSummary?: { __typename?: 'ActionSummary', id: string, actionsCreated?: number | null, actionsExecuted?: number | null, actionsCreatedNotIncludingAspects?: number | null, remoteCacheHits?: number | null, actionCacheStatistics?: { __typename?: 'ActionCacheStatistics', id: string, loadTimeInMs?: number | null, saveTimeInMs?: number | null, hits?: number | null, misses?: number | null, sizeInBytes?: number | null, missDetails?: Array<{ __typename?: 'MissDetail', id: string, count?: number | null, reason: string }> | null } | null, runnerCount?: Array<{ __typename?: 'RunnerCount', id: string, actionsExecuted?: number | null, name?: string | null, execKind?: string | null }> | null, actionData?: Array<{ __typename?: 'ActionData', id: string, mnemonic?: string | null, userTime?: number | null, systemTime?: number | null, lastEndedMs?: number | null, actionsCreated?: number | null, actionsExecuted?: number | null, firstStartedMs?: number | null }> | null } | null, artifactMetrics?: { __typename?: 'ArtifactMetrics', id: string, sourceArtifactsReadCount?: number | null, sourceArtifactsReadSizeInBytes?: number | null, outputArtifactsSeenCount?: number | null, outputArtifactsSeenSizeInBytes?: number | null, outputArtifactsFromActionCacheCount?: number | null, outputArtifactsFromActionCacheSizeInBytes?: number | null, topLevelArtifactsCount?: number | null, topLevelArtifactsSizeInBytes?: number | null } | null, memoryMetrics?: { __typename?: 'MemoryMetrics', id: string, usedHeapSizePostBuild?: number | null, peakPostGcHeapSize?: number | null, peakPostGcTenuredSpaceHeapSize?: number | null, garbageMetrics?: Array<{ __typename?: 'GarbageMetrics', id: string, garbageCollected?: number | null, type?: string | null }> | null } | null, targetMetrics?: { __typename?: 'TargetMetrics', id: string, targetsLoaded?: number | null, targetsConfigured?: number | null, targetsConfiguredNotIncludingAspects?: number | null } | null, timingMetrics?: { __typename?: 'TimingMetrics', id: string, cpuTimeInMs?: number | null, wallTimeInMs?: number | null, analysisPhaseTimeInMs?: number | null, executionPhaseTimeInMs?: number | null, actionsExecutionStartInMs?: number | null } | null, networkMetrics?: { __typename?: 'NetworkMetrics', id: string, systemNetworkStats?: { __typename?: 'SystemNetworkStats', id: string, bytesSent?: number | null, bytesRecv?: number | null, packetsSent?: number | null, packetsRecv?: number | null, peakBytesSentPerSec?: number | null, peakBytesRecvPerSec?: number | null, peakPacketsSentPerSec?: number | null, peakPacketsRecvPerSec?: number | null } | null } | null } | null, instanceName: { __typename?: 'InstanceName', name: string }, authenticatedUser?: { __typename?: 'AuthenticatedUser', displayName?: string | null, userUUID: any } | null, build?: { __typename?: 'Build', id: string, buildUUID: any } | null, actions?: Array<{ __typename?: 'Action', id: string, label: string, type?: string | null, success?: boolean | null, exitCode?: number | null, commandLine?: Array | null, startTime?: any | null, endTime?: any | null, failureCode?: string | null, failureMessage?: string | null, stdoutHash?: string | null, stdoutSizeBytes?: number | null, stdoutHashFunction?: string | null, stderrHash?: string | null, stderrSizeBytes?: number | null, stderrHashFunction?: string | null, configuration: { __typename?: 'Configuration', id: string, configurationID: string, mnemonic?: string | null, platformName?: string | null, cpu?: string | null, makeVariables?: any | null } }> | null, profile?: { __typename?: 'Profile', id: string, name: string, digest: string, sizeInBytes: number, digestFunction: string } | null, connectionMetadata?: { __typename?: 'ConnectionMetadata', connectionLastOpenAt: any, timeSinceLastConnectionMillis: number } | null, configurations?: Array<{ __typename?: 'Configuration', id: string, cpu?: string | null, mnemonic?: string | null }> | null, sourceControl?: Array<{ __typename?: 'SourceControl', id: string, repo?: string | null, repoURL?: string | null, ref?: string | null, refURL?: string | null, commit?: string | null, commitURL?: string | null }> | null, tags: { __typename?: 'InvocationTagConnection', edges?: Array<{ __typename?: 'InvocationTagEdge', node?: { __typename?: 'InvocationTag', id: string, key: string, value: string } | null } | null> | null } } & { ' $fragmentName'?: 'BazelInvocationInfoFragment' }; export type FindBuildByUuidQueryVariables = Exact<{ buildUUID: Scalars['UUID']['input']; @@ -3376,12 +3332,12 @@ export type FindBuildByUuidQueryVariables = Exact<{ }>; -export type FindBuildByUuidQuery = { __typename?: 'Query', getBuild?: { __typename?: 'Build', id: string, buildURL: string, buildUUID: any, timestamp: any, invocations: { __typename?: 'BazelInvocationConnection', pageInfo: { __typename?: 'PageInfo', startCursor?: any | null, endCursor?: any | null, hasNextPage: boolean, hasPreviousPage: boolean }, edges?: Array<{ __typename?: 'BazelInvocationEdge', node?: ( +export type FindBuildByUuidQuery = { __typename?: 'Query', getBuild?: { __typename?: 'Build', id: string, buildUUID: any, timestamp: any, tags: { __typename?: 'BuildTagConnection', edges?: Array<{ __typename?: 'BuildTagEdge', node?: { __typename?: 'BuildTag', id: string, key: string, value: string } | null } | null> | null }, invocations: { __typename?: 'BazelInvocationConnection', pageInfo: { __typename?: 'PageInfo', startCursor?: any | null, endCursor?: any | null, hasNextPage: boolean, hasPreviousPage: boolean }, edges?: Array<{ __typename?: 'BazelInvocationEdge', node?: ( { __typename?: 'BazelInvocation' } & { ' $fragmentRefs'?: { 'GetBuildInvocationFragment': GetBuildInvocationFragment } } ) | null } | null> | null } } | null }; -export type GetBuildInvocationFragment = { __typename?: 'BazelInvocation', id: string, invocationID: any, userLdap?: string | null, endedAt?: any | null, startedAt?: any | null, exitCodeName?: string | null, originalCommandLine?: any | null, sourceControl?: { __typename?: 'SourceControl', job?: string | null, action?: string | null, workflow?: string | null, runnerName?: string | null } | null, connectionMetadata?: { __typename?: 'ConnectionMetadata', connectionLastOpenAt: any, timeSinceLastConnectionMillis: number } | null } & { ' $fragmentName'?: 'GetBuildInvocationFragment' }; +export type GetBuildInvocationFragment = { __typename?: 'BazelInvocation', id: string, invocationID: any, username?: string | null, endedAt?: any | null, startedAt?: any | null, exitCodeName?: string | null, originalCommandLine?: any | null, tags: { __typename?: 'InvocationTagConnection', edges?: Array<{ __typename?: 'InvocationTagEdge', node?: { __typename?: 'InvocationTag', id: string, key: string, value: string } | null } | null> | null }, connectionMetadata?: { __typename?: 'ConnectionMetadata', connectionLastOpenAt: any, timeSinceLastConnectionMillis: number } | null } & { ' $fragmentName'?: 'GetBuildInvocationFragment' }; export type GetTargetDetailsQueryVariables = Exact<{ instanceName: Scalars['String']['input']; @@ -3439,13 +3395,13 @@ export type GetTargetMetadataQueryVariables = Exact<{ export type GetTargetMetadataQuery = { __typename?: 'Query', findTargets: { __typename?: 'TargetConnection', edges?: Array<{ __typename?: 'TargetEdge', node?: { __typename?: 'Target', id: string, aspect: string, label: string, targetKind: string, instanceName: { __typename?: 'InstanceName', name: string } } | null } | null> | null } }; -export const BazelInvocationNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"userUUID"}},{"kind":"Field","name":{"kind":"Name","value":"displayName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}}]}}]} as unknown as DocumentNode; -export const BuildNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; -export const BazelInvocationInfoFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadCount"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsCount"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsSizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"canonicalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"optionsParsed"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"userUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelVersion"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"commandLine"}},{"kind":"Field","name":{"kind":"Name","value":"startTime"}},{"kind":"Field","name":{"kind":"Name","value":"endTime"}},{"kind":"Field","name":{"kind":"Name","value":"failureCode"}},{"kind":"Field","name":{"kind":"Name","value":"failureMessage"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHash"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHash"}},{"kind":"Field","name":{"kind":"Name","value":"stderrSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"configuration"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"configurationID"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"platformName"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"makeVariables"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"digestFunction"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}}]}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"stepLabel"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"isCiWorker"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"provider"}},{"kind":"Field","name":{"kind":"Name","value":"instanceURL"}},{"kind":"Field","name":{"kind":"Name","value":"repo"}},{"kind":"Field","name":{"kind":"Name","value":"refs"}},{"kind":"Field","name":{"kind":"Name","value":"commitSha"}},{"kind":"Field","name":{"kind":"Name","value":"actor"}},{"kind":"Field","name":{"kind":"Name","value":"eventName"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"runID"}},{"kind":"Field","name":{"kind":"Name","value":"runNumber"}},{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}},{"kind":"Field","name":{"kind":"Name","value":"runnerArch"}},{"kind":"Field","name":{"kind":"Name","value":"runnerOs"}}]}}]}}]} as unknown as DocumentNode; -export const GetBuildInvocationFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"GetBuildInvocation"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"userLdap"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}}]}}]} as unknown as DocumentNode; +export const BazelInvocationNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"username"}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"userUUID"}},{"kind":"Field","name":{"kind":"Name","value":"displayName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}}]}}]} as unknown as DocumentNode; +export const BuildNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const BazelInvocationInfoFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadCount"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsCount"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsSizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"canonicalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"optionsParsed"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"userUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelVersion"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"commandLine"}},{"kind":"Field","name":{"kind":"Name","value":"startTime"}},{"kind":"Field","name":{"kind":"Name","value":"endTime"}},{"kind":"Field","name":{"kind":"Name","value":"failureCode"}},{"kind":"Field","name":{"kind":"Name","value":"failureMessage"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHash"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHash"}},{"kind":"Field","name":{"kind":"Name","value":"stderrSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"configuration"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"configurationID"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"platformName"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"makeVariables"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"digestFunction"}}]}},{"kind":"Field","name":{"kind":"Name","value":"username"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}}]}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"repo"}},{"kind":"Field","name":{"kind":"Name","value":"repoURL"}},{"kind":"Field","name":{"kind":"Name","value":"ref"}},{"kind":"Field","name":{"kind":"Name","value":"refURL"}},{"kind":"Field","name":{"kind":"Name","value":"commit"}},{"kind":"Field","name":{"kind":"Name","value":"commitURL"}}]}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"field"},"value":{"kind":"EnumValue","value":"KEY"}},{"kind":"ObjectField","name":{"kind":"Name","value":"direction"},"value":{"kind":"EnumValue","value":"ASC"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const GetBuildInvocationFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"GetBuildInvocation"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"username"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}}]}}]} as unknown as DocumentNode; export const AuthenticatedUserNodeFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"AuthenticatedUserNodeFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AuthenticatedUser"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"userInfo"}},{"kind":"Field","name":{"kind":"Name","value":"bazelInvocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"bazelInvocationsOrderBy"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const FindBazelInvocationsDocument = {"__meta__":{"hash":"f84d3bed47e1e9ead9ab5d38c9cc5c733830b8be"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBazelInvocations"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBazelInvocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"userUUID"}},{"kind":"Field","name":{"kind":"Name","value":"displayName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}}]}}]} as unknown as DocumentNode; -export const FindBuildsDocument = {"__meta__":{"hash":"77b42072519807c87ce3e0adbfc99ac7539f0e0f"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuilds"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BuildOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BuildWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBuilds"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BuildNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; +export const FindBazelInvocationsDocument = {"__meta__":{"hash":"4a2014ec256f4b9babab6efa6f27203deba4fb25"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBazelInvocations"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBazelInvocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"username"}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"userUUID"}},{"kind":"Field","name":{"kind":"Name","value":"displayName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}}]}}]} as unknown as DocumentNode; +export const FindBuildsDocument = {"__meta__":{"hash":"b15260ccc1c9ddb567fa266f98e76090870f0097"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuilds"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BuildOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BuildWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBuilds"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BuildNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const CheckIfInvocationExistsDocument = {"__meta__":{"hash":"ca52316963621a0cc875c82e1e2edcd500389987"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"CheckIfInvocationExists"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBazelInvocation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"invocationID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]} as unknown as DocumentNode; export const GetInvocationTargetsForInvocationDocument = {"__meta__":{"hash":"f61672c91cc34570825a63d9dddd686d2607cc3f"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetInvocationTargetsForInvocation"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"InvocationTargetOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"InvocationTargetWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBazelInvocation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"invocationID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"abortReason"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"failureMessage"}},{"kind":"Field","name":{"kind":"Name","value":"tags"}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"aspect"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"numTotal"},"name":{"kind":"Name","value":"invocationTargets"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}},{"kind":"Field","alias":{"kind":"Name","value":"numSuccessful"},"name":{"kind":"Name","value":"invocationTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"success"},"value":{"kind":"BooleanValue","value":true}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}},{"kind":"Field","alias":{"kind":"Name","value":"numSkipped"},"name":{"kind":"Name","value":"invocationTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"abortReason"},"value":{"kind":"EnumValue","value":"SKIPPED"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}}]} as unknown as DocumentNode; export const GetTargetsListDocument = {"__meta__":{"hash":"be0ca4fcf8d3c8355b0d6b193640d4db534238f5"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTargetsList"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"aspect"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; @@ -3453,8 +3409,8 @@ export const GetInvocationTargetsForTargetDocument = {"__meta__":{"hash":"98203d export const GetTestsDocument = {"__meta__":{"hash":"83a5bdaaf3e48916e51ebafd4fbe26935a4b8177"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTests"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"aspect"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetTestsForTargetDocument = {"__meta__":{"hash":"6c1e39a0efc1fff3d86e44fa051126bd9dce1b6e"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTestsForTarget"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestSummaryOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestSummaryWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTestSummaries"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"invocationTarget"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetTestsForInvocationDocument = {"__meta__":{"hash":"28a5312773101076e44ea9038211586b149477a6"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTestsForInvocation"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestSummaryOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestSummaryWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTestSummaries"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"totalRunDurationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"testResults"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}}]}},{"kind":"Field","name":{"kind":"Name","value":"invocationTarget"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"aspect"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const LoadFullBazelInvocationDetailsDocument = {"__meta__":{"hash":"1c0b4fa59db76c1217f713c6cb1db8d4ba56d284"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"LoadFullBazelInvocationDetails"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBazelInvocation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"invocationID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationInfo"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadCount"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsCount"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsSizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"canonicalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"optionsParsed"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"userUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelVersion"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"commandLine"}},{"kind":"Field","name":{"kind":"Name","value":"startTime"}},{"kind":"Field","name":{"kind":"Name","value":"endTime"}},{"kind":"Field","name":{"kind":"Name","value":"failureCode"}},{"kind":"Field","name":{"kind":"Name","value":"failureMessage"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHash"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHash"}},{"kind":"Field","name":{"kind":"Name","value":"stderrSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"configuration"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"configurationID"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"platformName"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"makeVariables"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"digestFunction"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}}]}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"stepLabel"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"isCiWorker"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"provider"}},{"kind":"Field","name":{"kind":"Name","value":"instanceURL"}},{"kind":"Field","name":{"kind":"Name","value":"repo"}},{"kind":"Field","name":{"kind":"Name","value":"refs"}},{"kind":"Field","name":{"kind":"Name","value":"commitSha"}},{"kind":"Field","name":{"kind":"Name","value":"actor"}},{"kind":"Field","name":{"kind":"Name","value":"eventName"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"runID"}},{"kind":"Field","name":{"kind":"Name","value":"runNumber"}},{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}},{"kind":"Field","name":{"kind":"Name","value":"runnerArch"}},{"kind":"Field","name":{"kind":"Name","value":"runnerOs"}}]}}]}}]} as unknown as DocumentNode; -export const FindBuildByUuidDocument = {"__meta__":{"hash":"6bf3d1d8b5e245ad97c115d08d1b6dd1b05340c9"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuildByUUID"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"buildUUID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBuild"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"buildUUID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"buildUUID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"invocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"GetBuildInvocation"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"GetBuildInvocation"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"userLdap"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}}]}}]} as unknown as DocumentNode; +export const LoadFullBazelInvocationDetailsDocument = {"__meta__":{"hash":"0a88e065abe98925e07dafb05d40a43bdab10e77"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"LoadFullBazelInvocationDetails"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBazelInvocation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"invocationID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationInfo"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadCount"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsReadSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeenSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCacheSizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsCount"}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifactsSizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"canonicalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}},{"kind":"Field","name":{"kind":"Name","value":"optionsParsed"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"instanceName"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"userUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelVersion"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"commandLine"}},{"kind":"Field","name":{"kind":"Name","value":"startTime"}},{"kind":"Field","name":{"kind":"Name","value":"endTime"}},{"kind":"Field","name":{"kind":"Name","value":"failureCode"}},{"kind":"Field","name":{"kind":"Name","value":"failureMessage"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHash"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stdoutHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHash"}},{"kind":"Field","name":{"kind":"Name","value":"stderrSizeBytes"}},{"kind":"Field","name":{"kind":"Name","value":"stderrHashFunction"}},{"kind":"Field","name":{"kind":"Name","value":"configuration"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"configurationID"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"platformName"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"makeVariables"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"digestFunction"}}]}},{"kind":"Field","name":{"kind":"Name","value":"username"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}}]}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"repo"}},{"kind":"Field","name":{"kind":"Name","value":"repoURL"}},{"kind":"Field","name":{"kind":"Name","value":"ref"}},{"kind":"Field","name":{"kind":"Name","value":"refURL"}},{"kind":"Field","name":{"kind":"Name","value":"commit"}},{"kind":"Field","name":{"kind":"Name","value":"commitURL"}}]}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"field"},"value":{"kind":"EnumValue","value":"KEY"}},{"kind":"ObjectField","name":{"kind":"Name","value":"direction"},"value":{"kind":"EnumValue","value":"ASC"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const FindBuildByUuidDocument = {"__meta__":{"hash":"0281d7201cafac88343dcc6be0ba682f73922dd4"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuildByUUID"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"buildUUID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBuild"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"buildUUID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"buildUUID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"field"},"value":{"kind":"EnumValue","value":"KEY"}},{"kind":"ObjectField","name":{"kind":"Name","value":"direction"},"value":{"kind":"EnumValue","value":"ASC"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"invocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"GetBuildInvocation"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"GetBuildInvocation"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"username"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"exitCodeName"}},{"kind":"Field","name":{"kind":"Name","value":"tags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"connectionMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"connectionLastOpenAt"}},{"kind":"Field","name":{"kind":"Name","value":"timeSinceLastConnectionMillis"}}]}},{"kind":"Field","name":{"kind":"Name","value":"originalCommandLine"}}]}}]} as unknown as DocumentNode; export const GetTargetDetailsDocument = {"__meta__":{"hash":"51077b6632bad9a8e54dd4ddf58179cc80da8393"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTargetDetails"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"instanceName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"label"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"aspect"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"targetKind"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"InvocationTargetOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"InvocationTargetWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getTarget"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"instanceName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"instanceName"}}},{"kind":"Argument","name":{"kind":"Name","value":"label"},"value":{"kind":"Variable","name":{"kind":"Name","value":"label"}}},{"kind":"Argument","name":{"kind":"Name","value":"aspect"},"value":{"kind":"Variable","name":{"kind":"Name","value":"aspect"}}},{"kind":"Argument","name":{"kind":"Name","value":"targetKind"},"value":{"kind":"Variable","name":{"kind":"Name","value":"targetKind"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationTargetsTotalDurationMillis"}},{"kind":"Field","name":{"kind":"Name","value":"invocationTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"abortReason"}},{"kind":"Field","name":{"kind":"Name","value":"failureMessage"}},{"kind":"Field","name":{"kind":"Name","value":"tags"}},{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetTestDetailsDocument = {"__meta__":{"hash":"eb11d6a29e326d7637ac9b9169dd9bc0a3c16ff8"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTestDetails"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestSummaryOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestSummaryWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTestSummaries"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"runCount"}},{"kind":"Field","name":{"kind":"Name","value":"attemptCount"}},{"kind":"Field","name":{"kind":"Name","value":"shardCount"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartTime"}},{"kind":"Field","name":{"kind":"Name","value":"totalRunDurationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"testResults"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}}]}},{"kind":"Field","name":{"kind":"Name","value":"invocationTarget"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const FindBuildTimesDocument = {"__meta__":{"hash":"707420fe8ea691631ecc9c431896b8e8d6b62692"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuildTimes"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBazelInvocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}}]}}]}}]}}]}}]} as unknown as DocumentNode; diff --git a/frontend/src/graphql/__generated__/persisted-documents.json b/frontend/src/graphql/__generated__/persisted-documents.json index 89dc5fb1..cdcaad6d 100644 --- a/frontend/src/graphql/__generated__/persisted-documents.json +++ b/frontend/src/graphql/__generated__/persisted-documents.json @@ -1,6 +1,6 @@ { - "f84d3bed47e1e9ead9ab5d38c9cc5c733830b8be": "fragment BazelInvocationNode on BazelInvocation { authenticatedUser { displayName userUUID } build { buildUUID } connectionMetadata { connectionLastOpenAt timeSinceLastConnectionMillis } endedAt exitCodeName id invocationID startedAt user { Email LDAP } } query FindBazelInvocations($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: BazelInvocationOrder, $where: BazelInvocationWhereInput) { findBazelInvocations( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { ...BazelInvocationNode } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", - "77b42072519807c87ce3e0adbfc99ac7539f0e0f": "fragment BuildNode on Build { buildURL buildUUID id timestamp } query FindBuilds($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: BuildOrder, $where: BuildWhereInput) { findBuilds( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { ...BuildNode } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", + "4a2014ec256f4b9babab6efa6f27203deba4fb25": "fragment BazelInvocationNode on BazelInvocation { authenticatedUser { displayName userUUID } build { buildUUID } connectionMetadata { connectionLastOpenAt timeSinceLastConnectionMillis } endedAt exitCodeName id invocationID startedAt username } query FindBazelInvocations($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: BazelInvocationOrder, $where: BazelInvocationWhereInput) { findBazelInvocations( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { ...BazelInvocationNode } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", + "b15260ccc1c9ddb567fa266f98e76090870f0097": "fragment BuildNode on Build { buildUUID id tags { edges { node { id key value } } } timestamp } query FindBuilds($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: BuildOrder, $where: BuildWhereInput) { findBuilds( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { ...BuildNode } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", "ca52316963621a0cc875c82e1e2edcd500389987": "query CheckIfInvocationExists($invocationID: UUID!) { getBazelInvocation(invocationID: $invocationID) { id } }", "f61672c91cc34570825a63d9dddd686d2607cc3f": "query GetInvocationTargetsForInvocation($after: Cursor, $before: Cursor, $first: Int, $invocationID: UUID!, $last: Int, $orderBy: InvocationTargetOrder, $where: InvocationTargetWhereInput) { getBazelInvocation(invocationID: $invocationID) { id invocationTargets( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { abortReason durationInMs failureMessage id success tags target { aspect id instanceName { name } label targetKind } } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } numTotal: invocationTargets { totalCount } numSuccessful: invocationTargets(where: {success: true}) { totalCount } numSkipped: invocationTargets(where: {abortReason: SKIPPED}) { totalCount } } }", "be0ca4fcf8d3c8355b0d6b193640d4db534238f5": "query GetTargetsList($after: Cursor, $before: Cursor, $first: Int, $last: Int, $where: TargetWhereInput) { findTargets( after: $after first: $first before: $before last: $last where: $where ) { edges { node { aspect id instanceName { name } label targetKind } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", @@ -8,8 +8,8 @@ "83a5bdaaf3e48916e51ebafd4fbe26935a4b8177": "query GetTests($after: Cursor, $before: Cursor, $first: Int, $last: Int, $where: TargetWhereInput) { findTargets( after: $after first: $first before: $before last: $last where: $where ) { edges { node { aspect id instanceName { name } label targetKind } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", "6c1e39a0efc1fff3d86e44fa051126bd9dce1b6e": "query GetTestsForTarget($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: TestSummaryOrder, $where: TestSummaryWhereInput) { findTestSummaries( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { id invocationTarget { bazelInvocation { invocationID } } overallStatus } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", "28a5312773101076e44ea9038211586b149477a6": "query GetTestsForInvocation($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: TestSummaryOrder, $where: TestSummaryWhereInput) { findTestSummaries( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { id invocationTarget { target { aspect id instanceName { name } label targetKind } } overallStatus testResults { cachedLocally cachedRemotely } totalRunDurationInMs } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", - "1c0b4fa59db76c1217f713c6cb1db8d4ba56d284": "fragment BazelInvocationInfo on BazelInvocation { actions { commandLine configuration { configurationID cpu id makeVariables mnemonic platformName } endTime exitCode failureCode failureMessage id label startTime stderrHash stderrHashFunction stderrSizeBytes stdoutHash stdoutHashFunction stdoutSizeBytes success type } authenticatedUser { displayName userUUID } bazelVersion build { buildUUID id } canonicalCommandLine configurations { cpu id mnemonic } connectionMetadata { connectionLastOpenAt timeSinceLastConnectionMillis } endedAt exitCodeName hostname id instanceName { name } invocationID isCiWorker metrics { actionSummary { actionCacheStatistics { hits id loadTimeInMs missDetails { count id reason } misses saveTimeInMs sizeInBytes } actionData { actionsCreated actionsExecuted firstStartedMs id lastEndedMs mnemonic systemTime userTime } actionsCreated actionsCreatedNotIncludingAspects actionsExecuted id remoteCacheHits runnerCount { actionsExecuted execKind id name } } artifactMetrics { id outputArtifactsFromActionCacheCount outputArtifactsFromActionCacheSizeInBytes outputArtifactsSeenCount outputArtifactsSeenSizeInBytes sourceArtifactsReadCount sourceArtifactsReadSizeInBytes topLevelArtifactsCount topLevelArtifactsSizeInBytes } id memoryMetrics { garbageMetrics { garbageCollected id type } id peakPostGcHeapSize peakPostGcTenuredSpaceHeapSize usedHeapSizePostBuild } networkMetrics { id systemNetworkStats { bytesRecv bytesSent id packetsRecv packetsSent peakBytesRecvPerSec peakBytesSentPerSec peakPacketsRecvPerSec peakPacketsSentPerSec } } targetMetrics { id targetsConfigured targetsConfiguredNotIncludingAspects targetsLoaded } timingMetrics { actionsExecutionStartInMs analysisPhaseTimeInMs cpuTimeInMs executionPhaseTimeInMs id wallTimeInMs } } numFetches optionsParsed originalCommandLine profile { digest digestFunction id name sizeInBytes } sourceControl { action actor commitSha eventName id instanceURL job provider refs repo runID runNumber runnerArch runnerName runnerOs workflow } startedAt stepLabel user { Email LDAP } } query LoadFullBazelInvocationDetails($invocationID: UUID!) { getBazelInvocation(invocationID: $invocationID) { ...BazelInvocationInfo } }", - "6bf3d1d8b5e245ad97c115d08d1b6dd1b05340c9": "fragment GetBuildInvocation on BazelInvocation { connectionMetadata { connectionLastOpenAt timeSinceLastConnectionMillis } endedAt exitCodeName id invocationID originalCommandLine sourceControl { action job runnerName workflow } startedAt userLdap } query FindBuildByUUID($after: Cursor, $before: Cursor, $buildUUID: UUID!, $first: Int, $last: Int, $orderBy: BazelInvocationOrder, $where: BazelInvocationWhereInput) { getBuild(buildUUID: $buildUUID) { buildURL buildUUID id invocations( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { ...GetBuildInvocation } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } timestamp } }", + "0a88e065abe98925e07dafb05d40a43bdab10e77": "fragment BazelInvocationInfo on BazelInvocation { actions { commandLine configuration { configurationID cpu id makeVariables mnemonic platformName } endTime exitCode failureCode failureMessage id label startTime stderrHash stderrHashFunction stderrSizeBytes stdoutHash stdoutHashFunction stdoutSizeBytes success type } authenticatedUser { displayName userUUID } bazelVersion build { buildUUID id } canonicalCommandLine configurations { cpu id mnemonic } connectionMetadata { connectionLastOpenAt timeSinceLastConnectionMillis } endedAt exitCodeName hostname id instanceName { name } invocationID metrics { actionSummary { actionCacheStatistics { hits id loadTimeInMs missDetails { count id reason } misses saveTimeInMs sizeInBytes } actionData { actionsCreated actionsExecuted firstStartedMs id lastEndedMs mnemonic systemTime userTime } actionsCreated actionsCreatedNotIncludingAspects actionsExecuted id remoteCacheHits runnerCount { actionsExecuted execKind id name } } artifactMetrics { id outputArtifactsFromActionCacheCount outputArtifactsFromActionCacheSizeInBytes outputArtifactsSeenCount outputArtifactsSeenSizeInBytes sourceArtifactsReadCount sourceArtifactsReadSizeInBytes topLevelArtifactsCount topLevelArtifactsSizeInBytes } id memoryMetrics { garbageMetrics { garbageCollected id type } id peakPostGcHeapSize peakPostGcTenuredSpaceHeapSize usedHeapSizePostBuild } networkMetrics { id systemNetworkStats { bytesRecv bytesSent id packetsRecv packetsSent peakBytesRecvPerSec peakBytesSentPerSec peakPacketsRecvPerSec peakPacketsSentPerSec } } targetMetrics { id targetsConfigured targetsConfiguredNotIncludingAspects targetsLoaded } timingMetrics { actionsExecutionStartInMs analysisPhaseTimeInMs cpuTimeInMs executionPhaseTimeInMs id wallTimeInMs } } numFetches optionsParsed originalCommandLine profile { digest digestFunction id name sizeInBytes } sourceControl { commit commitURL id ref refURL repo repoURL } startedAt tags(orderBy: {field: KEY, direction: ASC}) { edges { node { id key value } } } username } query LoadFullBazelInvocationDetails($invocationID: UUID!) { getBazelInvocation(invocationID: $invocationID) { ...BazelInvocationInfo } }", + "0281d7201cafac88343dcc6be0ba682f73922dd4": "fragment GetBuildInvocation on BazelInvocation { connectionMetadata { connectionLastOpenAt timeSinceLastConnectionMillis } endedAt exitCodeName id invocationID originalCommandLine startedAt tags { edges { node { id key value } } } username } query FindBuildByUUID($after: Cursor, $before: Cursor, $buildUUID: UUID!, $first: Int, $last: Int, $orderBy: BazelInvocationOrder, $where: BazelInvocationWhereInput) { getBuild(buildUUID: $buildUUID) { buildUUID id invocations( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { ...GetBuildInvocation } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } tags(orderBy: {field: KEY, direction: ASC}) { edges { node { id key value } } } timestamp } }", "51077b6632bad9a8e54dd4ddf58179cc80da8393": "query GetTargetDetails($after: Cursor, $aspect: String!, $before: Cursor, $first: Int, $instanceName: String!, $label: String!, $last: Int, $orderBy: InvocationTargetOrder, $targetKind: String!, $where: InvocationTargetWhereInput) { getTarget( instanceName: $instanceName label: $label aspect: $aspect targetKind: $targetKind ) { invocationTargets( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { abortReason bazelInvocation { invocationID } durationInMs failureMessage id success tags } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } totalCount } invocationTargetsTotalDurationMillis } }", "eb11d6a29e326d7637ac9b9169dd9bc0a3c16ff8": "query GetTestDetails($after: Cursor, $before: Cursor, $first: Int, $last: Int, $orderBy: TestSummaryOrder, $where: TestSummaryWhereInput) { findTestSummaries( after: $after first: $first before: $before last: $last orderBy: $orderBy where: $where ) { edges { node { attemptCount firstStartTime id invocationTarget { bazelInvocation { invocationID } } overallStatus runCount shardCount testResults { cachedLocally cachedRemotely } totalRunDurationInMs } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } } }", "707420fe8ea691631ecc9c431896b8e8d6b62692": "query FindBuildTimes($first: Int!, $where: BazelInvocationWhereInput) { findBazelInvocations(first: $first, where: $where) { edges { node { endedAt invocationID startedAt } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } totalCount } }", diff --git a/frontend/src/lib/grpc-client/portal/frontend/frontend.ts b/frontend/src/lib/grpc-client/portal/frontend/frontend.ts index c336b7ff..0776ddb5 100644 --- a/frontend/src/lib/grpc-client/portal/frontend/frontend.ts +++ b/frontend/src/lib/grpc-client/portal/frontend/frontend.ts @@ -39,6 +39,10 @@ export interface PortalFrontendConfiguration { * the bottom of the page, and can be used to link out to useful places. */ footerContent: PortalFrontendConfiguration_FooterElement[]; + /** Additional columns to display in the build table. */ + additionalBuildColumns: PortalFrontendConfiguration_AdditionalColumn[]; + /** Additional columns to display in the build invocation table. */ + additionalBuildInvocationColumns: PortalFrontendConfiguration_AdditionalColumn[]; } export interface PortalFrontendConfiguration_FeatureFlags { @@ -118,8 +122,31 @@ export interface PortalFrontendConfiguration_FooterElement_Icon { discord?: Empty | undefined; } +/** Message that defines a dynamic column in a table. */ +export interface PortalFrontendConfiguration_AdditionalColumn { + /** The title of the column. */ + title: string; + /** + * The key to use to get the value for the column. The value is either + * taken from a BuildTag or a InvocationTag. + */ + valueKey: string; + /** + * The key to use to get the url for the column. The url is either + * taken from a BuildTag or a InvocationTag. Optional. + */ + urlKey: string; +} + function createBasePortalFrontendConfiguration(): PortalFrontendConfiguration { - return { featureFlags: undefined, grpcBackendUrl: "", companyName: "", footerContent: [] }; + return { + featureFlags: undefined, + grpcBackendUrl: "", + companyName: "", + footerContent: [], + additionalBuildColumns: [], + additionalBuildInvocationColumns: [], + }; } export const PortalFrontendConfiguration: MessageFns = { @@ -136,6 +163,12 @@ export const PortalFrontendConfiguration: MessageFns PortalFrontendConfiguration_FooterElement.fromJSON(e)) : [], + additionalBuildColumns: globalThis.Array.isArray(object?.additionalBuildColumns) + ? object.additionalBuildColumns.map((e: any) => PortalFrontendConfiguration_AdditionalColumn.fromJSON(e)) + : globalThis.Array.isArray(object?.additional_build_columns) + ? object.additional_build_columns.map((e: any) => PortalFrontendConfiguration_AdditionalColumn.fromJSON(e)) + : [], + additionalBuildInvocationColumns: globalThis.Array.isArray(object?.additionalBuildInvocationColumns) + ? object.additionalBuildInvocationColumns.map((e: any) => + PortalFrontendConfiguration_AdditionalColumn.fromJSON(e) + ) + : globalThis.Array.isArray(object?.additional_build_invocation_columns) + ? object.additional_build_invocation_columns.map((e: any) => + PortalFrontendConfiguration_AdditionalColumn.fromJSON(e) + ) + : [], }; }, @@ -226,6 +293,16 @@ export const PortalFrontendConfiguration: MessageFns PortalFrontendConfiguration_FooterElement.toJSON(e)); } + if (message.additionalBuildColumns?.length) { + obj.additionalBuildColumns = message.additionalBuildColumns.map((e) => + PortalFrontendConfiguration_AdditionalColumn.toJSON(e) + ); + } + if (message.additionalBuildInvocationColumns?.length) { + obj.additionalBuildInvocationColumns = message.additionalBuildInvocationColumns.map((e) => + PortalFrontendConfiguration_AdditionalColumn.toJSON(e) + ); + } return obj; }, @@ -241,6 +318,12 @@ export const PortalFrontendConfiguration: MessageFns PortalFrontendConfiguration_FooterElement.fromPartial(e)) || []; + message.additionalBuildColumns = + object.additionalBuildColumns?.map((e) => PortalFrontendConfiguration_AdditionalColumn.fromPartial(e)) || []; + message.additionalBuildInvocationColumns = + object.additionalBuildInvocationColumns?.map((e) => + PortalFrontendConfiguration_AdditionalColumn.fromPartial(e) + ) || []; return message; }, }; @@ -842,6 +925,113 @@ export const PortalFrontendConfiguration_FooterElement_Icon: MessageFns< }, }; +function createBasePortalFrontendConfiguration_AdditionalColumn(): PortalFrontendConfiguration_AdditionalColumn { + return { title: "", valueKey: "", urlKey: "" }; +} + +export const PortalFrontendConfiguration_AdditionalColumn: MessageFns = { + encode( + message: PortalFrontendConfiguration_AdditionalColumn, + writer: BinaryWriter = new BinaryWriter(), + ): BinaryWriter { + if (message.title !== "") { + writer.uint32(10).string(message.title); + } + if (message.valueKey !== "") { + writer.uint32(18).string(message.valueKey); + } + if (message.urlKey !== "") { + writer.uint32(26).string(message.urlKey); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): PortalFrontendConfiguration_AdditionalColumn { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + const end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePortalFrontendConfiguration_AdditionalColumn(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.title = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.valueKey = reader.string(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.urlKey = reader.string(); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): PortalFrontendConfiguration_AdditionalColumn { + return { + title: isSet(object.title) ? globalThis.String(object.title) : "", + valueKey: isSet(object.valueKey) + ? globalThis.String(object.valueKey) + : isSet(object.value_key) + ? globalThis.String(object.value_key) + : "", + urlKey: isSet(object.urlKey) + ? globalThis.String(object.urlKey) + : isSet(object.url_key) + ? globalThis.String(object.url_key) + : "", + }; + }, + + toJSON(message: PortalFrontendConfiguration_AdditionalColumn): unknown { + const obj: any = {}; + if (message.title !== "") { + obj.title = message.title; + } + if (message.valueKey !== "") { + obj.valueKey = message.valueKey; + } + if (message.urlKey !== "") { + obj.urlKey = message.urlKey; + } + return obj; + }, + + create( + base?: DeepPartial, + ): PortalFrontendConfiguration_AdditionalColumn { + return PortalFrontendConfiguration_AdditionalColumn.fromPartial(base ?? {}); + }, + fromPartial( + object: DeepPartial, + ): PortalFrontendConfiguration_AdditionalColumn { + const message = createBasePortalFrontendConfiguration_AdditionalColumn(); + message.title = object.title ?? ""; + message.valueKey = object.valueKey ?? ""; + message.urlKey = object.urlKey ?? ""; + return message; + }, +}; + type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T diff --git a/frontend/src/proto/portal/frontend/frontend.proto b/frontend/src/proto/portal/frontend/frontend.proto index c3901703..1f8fef82 100644 --- a/frontend/src/proto/portal/frontend/frontend.proto +++ b/frontend/src/proto/portal/frontend/frontend.proto @@ -93,4 +93,24 @@ message PortalFrontendConfiguration { // Customize the content of the footer. These elements are shown in a row at // the bottom of the page, and can be used to link out to useful places. repeated FooterElement footer_content = 4; + + // Message that defines a dynamic column in a table. + message AdditionalColumn { + // The title of the column. + string title = 1; + + // The key to use to get the value for the column. The value is either + // taken from a BuildTag or a InvocationTag. + string value_key = 2; + + // The key to use to get the url for the column. The url is either + // taken from a BuildTag or a InvocationTag. Optional. + string url_key = 3; + } + + // Additional columns to display in the build table. + repeated AdditionalColumn additional_build_columns = 5; + + // Additional columns to display in the build invocation table. + repeated AdditionalColumn additional_build_invocation_columns = 6; } diff --git a/frontend/src/types/TableColumnTypeWithFilter.ts b/frontend/src/types/TableColumnTypeWithFilter.ts new file mode 100644 index 00000000..7232c95b --- /dev/null +++ b/frontend/src/types/TableColumnTypeWithFilter.ts @@ -0,0 +1,6 @@ +import type { TableColumnType } from "antd"; +import type { FilterValue } from "antd/es/table/interface"; + +export type TableColumnTypeWithFilter = TableColumnType & { + applyFilter?: (value: FilterValue) => F[] | undefined; +}; diff --git a/frontend/src/utils/applyColumnFilters.ts b/frontend/src/utils/applyColumnFilters.ts new file mode 100644 index 00000000..4e5a6ba7 --- /dev/null +++ b/frontend/src/utils/applyColumnFilters.ts @@ -0,0 +1,24 @@ +import type { FilterValue } from "antd/es/table/interface"; +import type { TableColumnTypeWithFilter } from "@/types/TableColumnTypeWithFilter"; + +export const applyTableFilters = ( + columns: TableColumnTypeWithFilter[], + filters: Record, + setFilterVariables: React.Dispatch>, +) => { + const newFilters: WhereInput[] = columns.flatMap((column) => { + if (!column.applyFilter) { + return []; + } + const filterValue = filters[`${column.key}`]; + if (filterValue === null) { + return []; + } + const filter = column.applyFilter(filterValue); + if (filter === undefined) { + return []; + } + return filter; + }); + setFilterVariables(newFilters); +}; diff --git a/internal/api/grpc/bes/BUILD.bazel b/internal/api/grpc/bes/BUILD.bazel index 1ce20983..78d9ac64 100644 --- a/internal/api/grpc/bes/BUILD.bazel +++ b/internal/api/grpc/bes/BUILD.bazel @@ -19,7 +19,9 @@ go_library( "//pkg/proto/bazelbuild/bazel/bes:build_event_stream", "//pkg/proto/configuration/bb_portal", "@com_github_buildbarn_bb_storage//pkg/auth/configuration", + "@com_github_buildbarn_bb_storage//pkg/clock", "@com_github_buildbarn_bb_storage//pkg/grpc", + "@com_github_buildbarn_bb_storage//pkg/jmespath", "@com_github_buildbarn_bb_storage//pkg/program", "@com_github_buildbarn_bb_storage//pkg/util", "@com_github_google_uuid//:uuid", diff --git a/internal/api/grpc/bes/server.go b/internal/api/grpc/bes/server.go index 4383ddca..e2ace5a9 100644 --- a/internal/api/grpc/bes/server.go +++ b/internal/api/grpc/bes/server.go @@ -19,19 +19,19 @@ import ( "github.com/buildbarn/bb-portal/pkg/authmetadataextraction" "github.com/buildbarn/bb-portal/pkg/proto/configuration/bb_portal" auth_configuration "github.com/buildbarn/bb-storage/pkg/auth/configuration" + "github.com/buildbarn/bb-storage/pkg/clock" bb_grpc "github.com/buildbarn/bb-storage/pkg/grpc" + "github.com/buildbarn/bb-storage/pkg/jmespath" "github.com/buildbarn/bb-storage/pkg/program" "github.com/buildbarn/bb-storage/pkg/util" "go.opentelemetry.io/otel/trace" ) -type buildEventRecorderFactory func(ctx context.Context, instanceName, invocationID string) (buildeventrecorder.BuildEventRecorder, error) - // BuildEventServer implements the Build Event Service. // It receives events and forwards them to a BuildEventChannel. type BuildEventServer struct { - buildEventRecorderFactory buildEventRecorderFactory + buildEventRecorderFactory buildeventrecorder.Factory } // NewBuildEventServer creates a new BuildEventServer @@ -54,10 +54,24 @@ func NewBuildEventServer(db database.Client, configuration *bb_portal.Applicatio return nil, fmt.Errorf("No saveDataLevel configured") } - extractors, err := authmetadataextraction.AuthMetadataExtractorsFromConfiguration(besConfiguration.AuthMetadataKeyConfiguration, dependenciesGroup) + dataExtractors := &buildeventrecorder.DataExtractors{ + AuthMetadataExtractors: nil, + InvocationMetadataExtractor: nil, + } + + authMetadataExtractors, err := authmetadataextraction.AuthMetadataExtractorsFromConfiguration(besConfiguration.AuthMetadataKeyConfiguration, dependenciesGroup) if err != nil { return nil, util.StatusWrap(err, "Failed to create AutheMetadataExtractors") } + dataExtractors.AuthMetadataExtractors = authMetadataExtractors + + if configuration.BesServiceConfiguration.InvocationMetadataExtractor != nil { + invocationMetadataExtractor, err := jmespath.NewExpressionFromConfiguration(configuration.BesServiceConfiguration.InvocationMetadataExtractor, dependenciesGroup, clock.SystemClock) + if err != nil { + return nil, util.StatusWrap(err, "Failed to create InvocationMetadataExtractor") + } + dataExtractors.InvocationMetadataExtractor = invocationMetadataExtractor + } return &BuildEventServer{ buildEventRecorderFactory: func(ctx context.Context, instanceName, invocationID string) (buildeventrecorder.BuildEventRecorder, error) { @@ -70,7 +84,8 @@ func NewBuildEventServer(db database.Client, configuration *bb_portal.Applicatio instanceName, invocationID, true, /* isRealTime */ - extractors, + dataExtractors, + configuration.BesServiceConfiguration.BuildKey, ) if err != nil { return nil, err diff --git a/internal/api/http/bepuploader/BUILD.bazel b/internal/api/http/bepuploader/BUILD.bazel index 1a3b5a4f..dffb51fd 100644 --- a/internal/api/http/bepuploader/BUILD.bazel +++ b/internal/api/http/bepuploader/BUILD.bazel @@ -12,9 +12,10 @@ go_library( "//pkg/authmetadataextraction", "//pkg/proto/bazelbuild/bazel/bes:build_event_stream", "//pkg/proto/configuration/bb_portal", - "@com_github_buildbarn_bb_storage//pkg/auth", "@com_github_buildbarn_bb_storage//pkg/auth/configuration", + "@com_github_buildbarn_bb_storage//pkg/clock", "@com_github_buildbarn_bb_storage//pkg/grpc", + "@com_github_buildbarn_bb_storage//pkg/jmespath", "@com_github_buildbarn_bb_storage//pkg/program", "@com_github_buildbarn_bb_storage//pkg/util", "@com_github_google_uuid//:uuid", diff --git a/internal/api/http/bepuploader/bepuploader.go b/internal/api/http/bepuploader/bepuploader.go index 4b65fecf..277e0005 100644 --- a/internal/api/http/bepuploader/bepuploader.go +++ b/internal/api/http/bepuploader/bepuploader.go @@ -15,9 +15,10 @@ import ( "github.com/buildbarn/bb-portal/internal/database/dbauthservice" "github.com/buildbarn/bb-portal/pkg/authmetadataextraction" "github.com/buildbarn/bb-portal/pkg/proto/configuration/bb_portal" - "github.com/buildbarn/bb-storage/pkg/auth" auth_configuration "github.com/buildbarn/bb-storage/pkg/auth/configuration" + "github.com/buildbarn/bb-storage/pkg/clock" bb_grpc "github.com/buildbarn/bb-storage/pkg/grpc" + "github.com/buildbarn/bb-storage/pkg/jmespath" "github.com/buildbarn/bb-storage/pkg/program" "github.com/buildbarn/bb-storage/pkg/util" "github.com/google/uuid" @@ -34,11 +35,7 @@ const ( // BepUploader handles upload of Build Event Protocol files via HTTP. type BepUploader struct { - db database.Client - instanceNameAuthorizer auth.Authorizer - saveDataLevel *bb_portal.BuildEventStreamService_SaveDataLevel - tracerProvider trace.TracerProvider - extractors *authmetadataextraction.AuthMetadataExtractors + buildEventRecorderFactory buildeventrecorder.Factory } // NewBepUploader creates a new BepUploader @@ -61,17 +58,44 @@ func NewBepUploader(db database.Client, configuration *bb_portal.ApplicationConf return nil, fmt.Errorf("No saveDataLevel configured") } - extractors, err := authmetadataextraction.AuthMetadataExtractorsFromConfiguration(besConfiguration.AuthMetadataKeyConfiguration, dependenciesGroup) + dataExtractors := &buildeventrecorder.DataExtractors{ + AuthMetadataExtractors: nil, + InvocationMetadataExtractor: nil, + } + + authMetadataExtractors, err := authmetadataextraction.AuthMetadataExtractorsFromConfiguration(besConfiguration.AuthMetadataKeyConfiguration, dependenciesGroup) if err != nil { return nil, util.StatusWrap(err, "Failed to create AutheMetadataExtractors") } + dataExtractors.AuthMetadataExtractors = authMetadataExtractors + + if configuration.BesServiceConfiguration.InvocationMetadataExtractor != nil { + invocationMetadataExtractor, err := jmespath.NewExpressionFromConfiguration(configuration.BesServiceConfiguration.InvocationMetadataExtractor, dependenciesGroup, clock.SystemClock) + if err != nil { + return nil, util.StatusWrap(err, "Failed to create InvocationMetadataExtractor") + } + dataExtractors.InvocationMetadataExtractor = invocationMetadataExtractor + } return &BepUploader{ - db: db, - instanceNameAuthorizer: instanceNameAuthorizer, - saveDataLevel: saveDataLevel, - tracerProvider: tracerProvider, - extractors: extractors, + buildEventRecorderFactory: func(ctx context.Context, instanceName, invocationID string) (buildeventrecorder.BuildEventRecorder, error) { + recorder, err := buildeventrecorder.NewBuildEventRecorder( + ctx, + db, + instanceNameAuthorizer, + saveDataLevel, + tracerProvider, + instanceName, + invocationID, + false, /* isRealTime */ + dataExtractors, + configuration.BesServiceConfiguration.BuildKey, + ) + if err != nil { + return nil, err + } + return buildeventrecorder.NewMetricsBuildEventRecorder(recorder), nil + }, }, nil } @@ -111,22 +135,19 @@ func (b *BepUploader) RecordEventNdjsonFile(ctx context.Context, file io.Reader) SequenceNumber: sequenceNumber, }) } + if err := scanner.Err(); err != nil { + return "", http.StatusInternalServerError, util.StatusWrap(err, "Failed to read build event file") + } invocationID, err := getInvocationIDFromEventBuffer(eventBuffer) if err != nil { return "", gprcErrorCodeToHTTPStatus(err), util.StatusWrap(err, "Failed to get InvocationID") } - buildEventRecorder, err := buildeventrecorder.NewBuildEventRecorder( + buildEventRecorder, err := b.buildEventRecorderFactory( ctx, - b.db, - b.instanceNameAuthorizer, - b.saveDataLevel, - b.tracerProvider, "", // instanceName invocationID, - false, // isRealTime, - b.extractors, ) if err != nil { return "", gprcErrorCodeToHTTPStatus(err), util.StatusWrap(err, "Failed to create BuildEventRecorder") @@ -135,9 +156,6 @@ func (b *BepUploader) RecordEventNdjsonFile(ctx context.Context, file io.Reader) if err := buildEventRecorder.SaveBatch(ctx, eventBuffer); err != nil { return "", gprcErrorCodeToHTTPStatus(err), util.StatusWrap(err, "Failed to record build event") } - if err := scanner.Err(); err != nil { - return "", http.StatusInternalServerError, util.StatusWrap(err, "Failed to read build event file") - } return invocationID, http.StatusOK, nil } diff --git a/internal/database/buildeventrecorder/BUILD.bazel b/internal/database/buildeventrecorder/BUILD.bazel index 82dffa44..295ff951 100644 --- a/internal/database/buildeventrecorder/BUILD.bazel +++ b/internal/database/buildeventrecorder/BUILD.bazel @@ -34,6 +34,7 @@ go_library( "//ent/gen/ent", "//ent/gen/ent/bazelinvocation", "//ent/gen/ent/build", + "//ent/gen/ent/buildtag", "//ent/gen/ent/configuration", "//ent/gen/ent/connectionmetadata", "//ent/gen/ent/invocationtarget", @@ -49,6 +50,7 @@ go_library( "//pkg/proto/configuration/bb_portal", "@bazel_remote_apis//build/bazel/remote/execution/v2:remote_execution_go_proto", "@com_github_buildbarn_bb_storage//pkg/auth", + "@com_github_buildbarn_bb_storage//pkg/jmespath", "@com_github_buildbarn_bb_storage//pkg/util", "@com_github_google_uuid//:uuid", "@com_github_prometheus_client_golang//prometheus", diff --git a/internal/database/buildeventrecorder/build_event_recorder.go b/internal/database/buildeventrecorder/build_event_recorder.go index 34e9279f..9b6186f2 100644 --- a/internal/database/buildeventrecorder/build_event_recorder.go +++ b/internal/database/buildeventrecorder/build_event_recorder.go @@ -17,6 +17,7 @@ import ( prometheusmetrics "github.com/buildbarn/bb-portal/pkg/prometheus_metrics" "github.com/buildbarn/bb-portal/pkg/proto/configuration/bb_portal" "github.com/buildbarn/bb-storage/pkg/auth" + "github.com/buildbarn/bb-storage/pkg/jmespath" "github.com/buildbarn/bb-storage/pkg/util" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" @@ -53,11 +54,23 @@ type BuildEventRecorder interface { SaveBatch(ctx context.Context, batch []BuildEventWithInfo) error } +// Factory is a type for a factory that creates a new BuildEventRecorder. +type Factory func(ctx context.Context, instanceName, invocationID string) (BuildEventRecorder, error) + +// DataExtractors are used to extract specific data from a invocation in +// different ways. +type DataExtractors struct { + AuthMetadataExtractors *authmetadataextraction.AuthMetadataExtractors + InvocationMetadataExtractor *jmespath.Expression +} + type buildEventRecorder struct { - db database.Client - handledEvents handledEvents - saveDataLevel *bb_portal.BuildEventStreamService_SaveDataLevel - tracer trace.Tracer + db database.Client + handledEvents handledEvents + saveDataLevel *bb_portal.BuildEventStreamService_SaveDataLevel + tracer trace.Tracer + dataExtractors *DataExtractors + buildKey string InstanceName string InstanceNameDbID int64 @@ -82,7 +95,8 @@ func NewBuildEventRecorder( instanceName string, invocationID string, isRealTime bool, - extractors *authmetadataextraction.AuthMetadataExtractors, + dataExtractors *DataExtractors, + buildKey string, ) (BuildEventRecorder, error) { tracer := tracerProvider.Tracer("github.com/buildbarn/bb-portal/internal/database/buildeventrecorder") ctx, span := tracer.Start( @@ -112,7 +126,7 @@ func NewBuildEventRecorder( } defer tx.Rollback() - userDbID, err := FindOrCreateAuthenticatedUser(ctx, tx, extractors, prometheusmetrics.AuthenticatedUsersCount) + userDbID, err := FindOrCreateAuthenticatedUser(ctx, tx, dataExtractors.AuthMetadataExtractors, prometheusmetrics.AuthenticatedUsersCount) if err != nil { return nil, util.StatusWrap(err, "Failed to find or create authenticated user") } @@ -131,9 +145,11 @@ func NewBuildEventRecorder( } return &buildEventRecorder{ - db: db, - saveDataLevel: saveDataLevel, - tracer: tracer, + db: db, + saveDataLevel: saveDataLevel, + tracer: tracer, + dataExtractors: dataExtractors, + buildKey: buildKey, InstanceName: instanceName, InstanceNameDbID: instanceNameDbID, @@ -148,10 +164,10 @@ func NewBuildEventRecorder( func FindOrCreateAuthenticatedUser( ctx context.Context, db database.Handle, - extractors *authmetadataextraction.AuthMetadataExtractors, + authMetadataExtractors *authmetadataextraction.AuthMetadataExtractors, authenticatedUsersGauge prometheus.Gauge, ) (*int64, error) { - userSummary := authmetadataextraction.AuthenticatedUserSummaryFromContext(ctx, extractors) + userSummary := authmetadataextraction.AuthenticatedUserSummaryFromContext(ctx, authMetadataExtractors) if userSummary == nil { return nil, nil } diff --git a/internal/database/buildeventrecorder/saveBuildMetadata.go b/internal/database/buildeventrecorder/saveBuildMetadata.go index 9d332c80..20c0d7cb 100644 --- a/internal/database/buildeventrecorder/saveBuildMetadata.go +++ b/internal/database/buildeventrecorder/saveBuildMetadata.go @@ -23,17 +23,8 @@ func (r *buildEventRecorder) saveBuildMetadata(ctx context.Context, tx *ent.Clie ). SetProcessedEventBuildMetadata(true) - if stepLabel, ok := metadataMap["BUILD_STEP_LABEL"]; ok { - update.SetStepLabel(stepLabel) - } - if userEmail, ok := metadataMap["user_email"]; ok { - update.SetUserEmail(userEmail) - } - if userLdap, ok := metadataMap["user_ldap"]; ok { - update.SetUserLdap(userLdap) - } - if isCiWorkerVal, ok := metadataMap["is_ci_worker"]; ok { - update.SetIsCiWorker(isCiWorkerVal == "true" || isCiWorkerVal == "True" || isCiWorkerVal == "TRUE") + if username, ok := metadataMap["user_ldap"]; ok { + update.SetUsername(username) } if hostnameVal, ok := metadataMap["hostname"]; ok { update.SetHostname(hostnameVal) diff --git a/internal/database/buildeventrecorder/saveStarted.go b/internal/database/buildeventrecorder/saveStarted.go index 14ebd99e..b61ee4ec 100644 --- a/internal/database/buildeventrecorder/saveStarted.go +++ b/internal/database/buildeventrecorder/saveStarted.go @@ -8,10 +8,11 @@ import ( bes "github.com/bazelbuild/bazel/src/main/java/com/google/devtools/build/lib/buildeventstream/proto" "github.com/buildbarn/bb-portal/ent/gen/ent" "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" + "github.com/buildbarn/bb-portal/internal/database" "github.com/buildbarn/bb-storage/pkg/util" ) -func (r *buildEventRecorder) saveStarted(ctx context.Context, tx *ent.Client, event *bes.BuildStarted) error { +func (r *buildEventRecorder) saveStarted(ctx context.Context, tx database.Tx, event *bes.BuildStarted) error { if event == nil { return nil } @@ -41,7 +42,7 @@ func (r *buildEventRecorder) saveStarted(ctx context.Context, tx *ent.Client, ev // Don't use `UpdateOne()` or `UpdateOneID()` as the internal ent // implementation also does a query after the update to return the updated // object, even if it is not returned by using `Exec()`. - err := tx.BazelInvocation. + err := tx.Ent().BazelInvocation. Update(). Where( bazelinvocation.ID(r.InvocationDbID), @@ -57,5 +58,14 @@ func (r *buildEventRecorder) saveStarted(ctx context.Context, tx *ent.Client, ev if err != nil { return util.StatusWrap(err, "Failed to save started event to database") } + + // In the rare occation that the event that creates the build object is + // processed before the started event, we need to ensure that the build + // timestamp is updated. + err = tx.Sqlc().UpdateBuildTimestampFromInvocation(ctx, r.InvocationDbID) + if err != nil { + return util.StatusWrap(err, "Failed to update build timestamp") + } + return nil } diff --git a/internal/database/buildeventrecorder/saveWorkspaceStatus.go b/internal/database/buildeventrecorder/saveWorkspaceStatus.go index 761469e0..46071a6d 100644 --- a/internal/database/buildeventrecorder/saveWorkspaceStatus.go +++ b/internal/database/buildeventrecorder/saveWorkspaceStatus.go @@ -27,7 +27,7 @@ func (r *buildEventRecorder) saveWorkspaceStatus(ctx context.Context, tx *ent.Cl case "BUILD_HOST": update.SetHostname(item.GetValue()) case "BUILD_USER": - update.SetUserLdap(item.GetValue()) + update.SetUsername(item.GetValue()) } } diff --git a/internal/database/buildeventrecorder/save_remaining_events.go b/internal/database/buildeventrecorder/save_remaining_events.go index 7cf75a1a..43a4b4b3 100644 --- a/internal/database/buildeventrecorder/save_remaining_events.go +++ b/internal/database/buildeventrecorder/save_remaining_events.go @@ -67,7 +67,7 @@ func (r *buildEventRecorder) saveBuildEvent( ) error { switch buildEvent.GetId().GetId().(type) { case *bes.BuildEventId_Started: - return r.saveStarted(ctx, tx.Ent(), buildEvent.GetStarted()) + return r.saveStarted(ctx, tx, buildEvent.GetStarted()) case *bes.BuildEventId_BuildMetadata: return r.saveBuildMetadata(ctx, tx.Ent(), buildEvent.GetBuildMetadata()) case *bes.BuildEventId_OptionsParsed: diff --git a/internal/database/buildeventrecorder/save_structured_command_line.go b/internal/database/buildeventrecorder/save_structured_command_line.go index 58330c15..8a19d820 100644 --- a/internal/database/buildeventrecorder/save_structured_command_line.go +++ b/internal/database/buildeventrecorder/save_structured_command_line.go @@ -2,14 +2,16 @@ package buildeventrecorder import ( "context" + "encoding/json" "fmt" "slices" - "strconv" + "sort" "strings" + "time" "github.com/buildbarn/bb-portal/ent/gen/ent" - "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" "github.com/buildbarn/bb-portal/ent/gen/ent/build" + "github.com/buildbarn/bb-portal/ent/gen/ent/buildtag" "github.com/buildbarn/bb-portal/internal/database" "github.com/buildbarn/bb-portal/internal/database/common" "github.com/buildbarn/bb-portal/pkg/invocation" @@ -18,6 +20,23 @@ import ( bes "github.com/bazelbuild/bazel/src/main/protobuf" ) +type sourceControl struct { + Repo *string `json:"repo,omitempty"` + RepoURL *string `json:"repoUrl,omitempty"` + Ref *string `json:"ref,omitempty"` + RefURL *string `json:"refUrl,omitempty"` + Commit *string `json:"commit,omitempty"` + CommitURL *string `json:"commitUrl,omitempty"` +} + +type invocationMetadata struct { + Username *string `json:"username,omitempty"` + Hostname *string `json:"hostname,omitempty"` + SourceControls []sourceControl `json:"sourceControls,omitempty"` + InvocationTags map[string]string `json:"invocationTags,omitempty"` + BuildTags map[string]string `json:"buildTags,omitempty"` +} + func parseEnvVarsFromSectionOptions(section *bes.CommandLineSection) map[string]string { if section.GetOptionList() == nil { return nil @@ -56,245 +75,175 @@ func parseProfileNameFromSectionOptions(section *bes.CommandLineSection) string return "command.profile.gz" } -// envToI -func envToI(envVars map[string]string, name string) (int, error) { - res, err := strconv.Atoi(envVars[name]) - if err != nil { - return 0, util.StatusWrapf(err, "failed to parse %s (value: %s) as an int", name, envVars[name]) - } - return res, nil -} - -func (r *buildEventRecorder) recordSourceControl(ctx context.Context, tx *ent.Client, envVars map[string]string) error { - sc := tx.SourceControl.Create(). - SetBazelInvocationID(r.InvocationDbID) - - shouldSave := false - - if instanceURL, ok := envVars["GITHUB_SERVER_URL"]; ok { - // Github - sc.SetProvider("GITHUB") - sc.SetInstanceURL(instanceURL) - shouldSave = true - } else if instanceURL, ok := envVars["CI_SERVER_URL"]; ok { - // Gitlab - sc.SetProvider("GITLAB") - sc.SetInstanceURL(instanceURL) - shouldSave = true - } - - if repo, ok := envVars["GITHUB_REPOSITORY"]; ok { - // Github - sc.SetRepo(repo) - shouldSave = true - } else if repo, ok := envVars["CI_PROJECT_PATH"]; ok { - // Gitlab - sc.SetRepo(repo) - shouldSave = true - } - - if commitSha, ok := envVars["GITHUB_SHA"]; ok { - // Github - sc.SetCommitSha(commitSha) - shouldSave = true - } else if commitSha, ok := envVars["CI_COMMIT_SHA"]; ok { - // Gitlab - sc.SetCommitSha(commitSha) - shouldSave = true +func (r *buildEventRecorder) extractInvocationMetadata(envVars map[string]string) (*invocationMetadata, error) { + extractor := r.dataExtractors.InvocationMetadataExtractor + if extractor == nil { + return nil, nil } - if refs, ok := envVars["GITHUB_REF"]; ok { - // Github - sc.SetRefs(refs) - shouldSave = true - } else if refs, ok := envVars["CI_COMMIT_REF_NAME"]; ok { - // Gitlab - sc.SetRefs(refs) - shouldSave = true + // Convert map[string]string to map[string]any that the extractor needs + searchVars := make(map[string]any, len(envVars)) + for k, v := range envVars { + searchVars[k] = v } - if user, ok := envVars["GITHUB_ACTOR"]; ok { - // Github - sc.SetActor(user) - shouldSave = true - } else if user, ok := envVars["GITLAB_USER_LOGIN"]; ok { - // Gitlab - sc.SetActor(user) - shouldSave = true + searchResult, err := extractor.Search(map[string]any{ + "env": searchVars, + }) + if err != nil { + return nil, nil } - if eventName, ok := envVars["GITHUB_EVENT_NAME"]; ok { - // Github - sc.SetEventName(eventName) - shouldSave = true - } else if eventName, ok := envVars["CI_PIPELINE_SOURCE"]; ok { - // Gitlab - sc.SetEventName(eventName) - shouldSave = true + // Convert map[string]any to JSON bytes + jsonBytes, err := json.Marshal(searchResult) + if err != nil { + return nil, fmt.Errorf("failed to marshal search result: %w", err) } - if workflowName, ok := envVars["GITHUB_WORKFLOW"]; ok { - // Github - sc.SetWorkflow(workflowName) - shouldSave = true - } else if workflowName, ok := envVars["CI_JOB_NAME"]; ok { - // Gitlab - sc.SetWorkflow(workflowName) - shouldSave = true + // Unmarshal into the pointer-based struct + var metadata invocationMetadata + if err := json.Unmarshal(jsonBytes, &metadata); err != nil { + return nil, fmt.Errorf("failed to unmarshal into InvocationMetadata: %w", err) } + return &metadata, nil +} - if runID, ok := envVars["GITHUB_RUN_ID"]; ok { - // Github - sc.SetRunID(runID) - shouldSave = true - } else if runID, ok := envVars["CI_JOB_ID"]; ok { - // Gitlab - sc.SetRunID(runID) - shouldSave = true +func (r *buildEventRecorder) recordSourceControl(ctx context.Context, tx *ent.Client, sourceControls []sourceControl) error { + scBuilders := make([]*ent.SourceControlCreate, 0, len(sourceControls)) + for _, sc := range sourceControls { + create := tx.SourceControl.Create().SetBazelInvocationID(r.InvocationDbID) + shouldSave := false + if repo := sc.Repo; repo != nil && *repo != "" { + create.SetRepo(*repo) + shouldSave = true + } + if repoURL := sc.RepoURL; repoURL != nil && *repoURL != "" { + create.SetRepoURL(*repoURL) + shouldSave = true + } + if ref := sc.Ref; ref != nil && *ref != "" { + create.SetRef(*ref) + shouldSave = true + } + if refURL := sc.RefURL; refURL != nil && *refURL != "" { + create.SetRefURL(*refURL) + shouldSave = true + } + if commit := sc.Commit; commit != nil && *commit != "" { + create.SetCommit(*commit) + shouldSave = true + } + if commitURL := sc.CommitURL; commitURL != nil && *commitURL != "" { + create.SetCommitURL(*commitURL) + shouldSave = true + } + if shouldSave { + scBuilders = append(scBuilders, create) + } } - if runNumber, ok := envVars["GITHUB_RUN_NUMBER"]; ok { - // Github - sc.SetRunNumber(runNumber) - shouldSave = true + if err := tx.SourceControl.CreateBulk(scBuilders...).Exec(ctx); err != nil { + return util.StatusWrap(err, "Failed to bulk insert source controls to the database") } + return nil +} - if job, ok := envVars["GITHUB_JOB"]; ok { - // Github - sc.SetJob(job) - shouldSave = true - } else if job, ok := envVars["CI_JOB_STAGE"]; ok { - // Gitlab - sc.SetJob(job) - shouldSave = true +func (r *buildEventRecorder) recordBuildTags(ctx context.Context, tx *ent.Client, buildDbID int64, tags map[string]string) error { + keys := make([]string, 0, len(tags)) + for k := range tags { + keys = append(keys, k) + } + + // The keys need to be sorted. Otherwise they are inserted in a random + // order and the tests get sad. + sort.Strings(keys) + + tagBuilders := make([]*ent.BuildTagCreate, 0, len(tags)) + for _, key := range keys { + value := tags[key] + if key != "" && value != "" { + create := tx.BuildTag.Create(). + SetBuildID(buildDbID). + SetKey(key). + SetValue(value) + tagBuilders = append(tagBuilders, create) + } } - if action, ok := envVars["GITHUB_ACTION"]; ok { - // Github - sc.SetAction(action) - shouldSave = true + err := tx.BuildTag.CreateBulk(tagBuilders...). + OnConflictColumns(buildtag.FieldBuildID, buildtag.FieldKey, buildtag.FieldValue). + DoNothing(). + Exec(ctx) + if err != nil { + return util.StatusWrap(err, "Failed to bulk insert invocation tags to the database") } + return nil +} - if runnerName, ok := envVars["RUNNER_NAME"]; ok { - // Github - sc.SetRunnerName(runnerName) - shouldSave = true - } else if runnerName, ok := envVars["CI_RUNNER_DESCRIPTION"]; ok { - // Gitlab - sc.SetRunnerName(runnerName) - shouldSave = true +func (r *buildEventRecorder) recordBuild(ctx context.Context, tx database.Tx, invocationMetadata *invocationMetadata) error { + if r.buildKey == "" { + return nil } - - if runnerArch, ok := envVars["RUNNER_ARCH"]; ok { - // Github - sc.SetRunnerArch(runnerArch) - shouldSave = true - } else if runnerInfo, ok := envVars["CI_RUNNER_EXECUTABLE_ARCH"]; ok { - // Gitlab - // This variable comes in the format "os/arch", e.g. "linux/amd64" - _, arch, _ := strings.Cut(runnerInfo, "/") - sc.SetRunnerArch(arch) - shouldSave = true + buildID, ok := invocationMetadata.BuildTags[r.buildKey] + if !ok { + return nil } - - if runnerOs, ok := envVars["RUNNER_OS"]; ok { - // Github - sc.SetRunnerOs(runnerOs) - shouldSave = true - } else if runnerInfo, ok := envVars["CI_RUNNER_EXECUTABLE_ARCH"]; ok { - // Gitlab - // This variable comes in the format "os/arch", e.g. "linux/amd64" - os, _, _ := strings.Cut(runnerInfo, "/") - sc.SetRunnerOs(os) - shouldSave = true + if buildID == "" { + return nil } - if workspace, ok := envVars["GITHUB_WORKSPACE"]; ok { - // Github - sc.SetWorkspace(workspace) - shouldSave = true - } else if workspace, ok := envVars["CI_PROJECT_DIR"]; ok { - // Gitlab - sc.SetWorkspace(workspace) - shouldSave = true - } + buildUUID := common.CalculateBuildUUID(buildID, r.InstanceName) - if !shouldSave { - // No source control data found, skip creating the entry. - return nil + buildDbID, err := tx.Ent().Build.Create(). + SetInstanceNameID(r.InstanceNameDbID). + SetBuildUUID(buildUUID). + SetTimestamp(time.Now()). + AddInvocationIDs(r.InvocationDbID). + OnConflictColumns(build.FieldBuildUUID). + Ignore(). + ID(ctx) + if err != nil { + return util.StatusWrap(err, "Failed to upsert build") } - err := sc.Exec(ctx) + err = tx.Sqlc().UpdateBuildTimestampFromInvocation(ctx, r.InvocationDbID) if err != nil { - return util.StatusWrap(err, "Failed to save source control data to database") + return util.StatusWrap(err, "Failed to update build timestamp") } - return nil -} - -func (r *buildEventRecorder) getBuildURL(envVars map[string]string) string { - if buildURL, ok := envVars["BUILD_URL"]; ok { - return buildURL - } - if buildURL, ok := envVars["CI_PIPELINE_URL"]; ok { - // Gitlab - return buildURL + if err := r.recordBuildTags(ctx, tx.Ent(), buildDbID, invocationMetadata.BuildTags); err != nil { + return util.StatusWrap(err, "Failed to record build tags") } - if envVars["GITHUB_SERVER_URL"] != "" && envVars["GITHUB_REPOSITORY"] != "" && envVars["GITHUB_RUN_ID"] != "" { - // Github - return fmt.Sprintf("%s/%s/actions/runs/%s", envVars["GITHUB_SERVER_URL"], envVars["GITHUB_REPOSITORY"], envVars["GITHUB_RUN_ID"]) - } - return "" + return nil } -func (r *buildEventRecorder) recordBuild(ctx context.Context, tx *ent.Client, envVars map[string]string) error { - buildURL := r.getBuildURL(envVars) - if buildURL == "" { - return nil +func (r *buildEventRecorder) recordInvocationTags(ctx context.Context, tx *ent.Client, tags map[string]string) error { + keys := make([]string, 0, len(tags)) + for k := range tags { + keys = append(keys, k) + } + + // The keys need to be sorted. Otherwise they are inserted in a random + // order and the tests get sad. + sort.Strings(keys) + + tagBuilders := make([]*ent.InvocationTagCreate, 0, len(tags)) + for _, key := range keys { + value := tags[key] + if key != "" && value != "" { + create := tx.InvocationTag.Create(). + SetBazelInvocationID(r.InvocationDbID). + SetKey(key). + SetValue(value) + tagBuilders = append(tagBuilders, create) + } } - invocation, err := tx.BazelInvocation.Query(). - Where(bazelinvocation.IDEQ(r.InvocationDbID)). - Select(bazelinvocation.FieldStartedAt). - Only(ctx) + err := tx.InvocationTag.CreateBulk(tagBuilders...).Exec(ctx) if err != nil { - return util.StatusWrap(err, "Failed to query for invocation start time") - } - - buildUUID := common.CalculateBuildUUID(buildURL, r.InstanceName) - - buildDb, err := tx.Build.Query(). - Where(build.BuildUUIDEQ(buildUUID)). - Only(ctx) - - switch { - case ent.IsNotFound(err): - err = tx.Build.Create(). - SetBuildURL(buildURL). - SetBuildUUID(buildUUID). - SetTimestamp(invocation.StartedAt). - SetInstanceNameID(r.InstanceNameDbID). - AddInvocationIDs(r.InvocationDbID). - Exec(ctx) - if err != nil { - return util.StatusWrap(err, "Failed to save build information") - } - return nil - case err == nil: - update := tx.Build. - Update(). - Where(build.ID(buildDb.ID)). - AddInvocationIDs(r.InvocationDbID) - if invocation.StartedAt.Before(buildDb.Timestamp) { - update.SetTimestamp(invocation.StartedAt) - } - if err := update.Exec(ctx); err != nil { - return util.StatusWrap(err, "Failed to update build information") - } - return nil - default: - return util.StatusWrap(err, "Failed to query for existing build") + return util.StatusWrap(err, "Failed to bulk insert invocation tags to the database") } + return nil } func (r *buildEventRecorder) saveStructuredCommandLine(ctx context.Context, tx database.Tx, buildEvent *bes.CommandLine) error { @@ -302,20 +251,35 @@ func (r *buildEventRecorder) saveStructuredCommandLine(ctx context.Context, tx d switch buildEvent.CommandLineLabel { case "canonical": - _, err := tx.Ent().BazelInvocation. + update := tx.Ent().BazelInvocation. UpdateOneID(r.InvocationDbID). SetProfileName(profileName). - SetCanonicalCommandLine(&data). - Save(ctx) + SetCanonicalCommandLine(&data) + + invocationMetadata, err := r.extractInvocationMetadata(envVars) if err != nil { - return util.StatusWrapf(err, "Failed to save command line data") + return util.StatusWrap(err, "Failed get invocation metadata from environment variables") } - r.recordMetadataFromEnvVars(ctx, tx.Ent(), envVars) - if err := r.recordBuild(ctx, tx.Ent(), envVars); err != nil { - return util.StatusWrap(err, "Failed to create build from env vars") + if invocationMetadata != nil { + if username := invocationMetadata.Username; username != nil && *username != "" { + update.SetUsername(*username) + } + if hostname := invocationMetadata.Hostname; hostname != nil && *hostname != "" { + update.SetHostname(*hostname) + } + + if err := r.recordSourceControl(ctx, tx.Ent(), invocationMetadata.SourceControls); err != nil { + return util.StatusWrap(err, "Failed to save source control information") + } + if err := r.recordBuild(ctx, tx, invocationMetadata); err != nil { + return util.StatusWrap(err, "Failed to record build") + } + if err := r.recordInvocationTags(ctx, tx.Ent(), invocationMetadata.InvocationTags); err != nil { + return util.StatusWrap(err, "Failed to record invocation tags") + } } - if err := r.recordSourceControl(ctx, tx.Ent(), envVars); err != nil { - return util.StatusWrap(err, "Failed to save source control information from env vars") + if err = update.Exec(ctx); err != nil { + return util.StatusWrapf(err, "Failed to update invocation with data from StructuredCommandLine event") } case "original": _, err := tx.Ent().BazelInvocation.UpdateOneID(r.InvocationDbID).SetOriginalCommandLine(&data).Save(ctx) @@ -327,95 +291,6 @@ func (r *buildEventRecorder) saveStructuredCommandLine(ctx context.Context, tx d return nil } -func (r *buildEventRecorder) recordMetadataFromEnvVars(ctx context.Context, tx *ent.Client, envVars map[string]string) error { - update := tx.BazelInvocation. - Update(). - Where( - bazelinvocation.ID(r.InvocationDbID), - ) - - // Parse Gerrit change number if available. - if changeNumberStr, ok := envVars["GERRIT_CHANGE_NUMBER"]; ok && changeNumberStr != "" { - changeNumber, err := envToI(envVars, "GERRIT_CHANGE_NUMBER") - if err != nil { - return util.StatusWrap(err, "failed to parse GERRIT_CHANGE_NUMBER from structured command line") - } - update.SetChangeNumber(changeNumber) - } - - // Parse Gerrit patchset number if available. - if patchsetNumberStr, ok := envVars["GERRIT_PATCHSET_NUMBER"]; ok && patchsetNumberStr != "" { - patchsetNumber, err := envToI(envVars, "GERRIT_PATCHSET_NUMBER") - if err != nil { - return util.StatusWrap(err, "failed to parse GERRIT_PATCHSET_NUMBER from structured command line") - } - update.SetPatchsetNumber(patchsetNumber) - } - - // Set Hostname - if hostNameVal, ok := envVars["BB_PORTAL_HOSTNAME"]; ok { - update.SetHostname(hostNameVal) - } else if hostNameVal, ok := envVars["HOSTNAME"]; ok { - update.SetHostname(hostNameVal) - } else if hostNameVal, ok := envVars["RUNNER_NAME"]; ok { - update.SetHostname(hostNameVal) - } - - // Set CI Worker Role from environment variables (can also come from metadata) - if isCiWorkerVal, ok := envVars["BB_PORTAL_IS_CI_WORKER"]; ok { - update.SetIsCiWorker(isCiWorkerVal == "true" || isCiWorkerVal == "True" || isCiWorkerVal == "TRUE") - } - - // github/gitlab actions default env var - if isCiWorkerVal, ok := envVars["CI"]; ok { - update.SetIsCiWorker(isCiWorkerVal == "true") - } - - // Set Step Label from environment variables - if stepLabelVal, ok := envVars["BB_PORTAL_STEP_LABEL"]; ok { - update.SetStepLabel(stepLabelVal) - } else if glWfVal, ok := envVars["CI_JOB_STAGE"]; ok { - // Gitlab default step label to workfow + job - if glJobNameVal, ok := envVars["CI_JOB_NAME"]; ok { - update.SetStepLabel(glWfVal + "+" + glJobNameVal) - } else { - update.SetStepLabel(glWfVal) - } - } else if ghWfVal, ok := envVars["GITHUB_WORKFLOW"]; ok { - // Github default step label to workfow + job - if ghJobNameVal, ok := envVars["GITHUB_JOB"]; ok { - update.SetStepLabel(ghWfVal + "+" + ghJobNameVal) - } else { - update.SetStepLabel(ghWfVal) - } - } - - if user, ok := envVars["GITHUB_ACTOR"]; ok { - // Github - update.SetUserLdap(user) - } else if user, ok := envVars["GITLAB_USER_LOGIN"]; ok { - // Gitlab - update.SetUserLdap(user) - } else if user, ok := envVars["USER"]; ok { - // Local - update.SetUserLdap(user) - } - - if email, ok := envVars["GITLAB_USER_EMAIL"]; ok { - // Gitlab - update.SetUserEmail(email) - } - - err := update.Exec(ctx) - if ent.IsNotFound(err) { - return util.StatusWrapf(err, "StructuredCommandline event has already been processed for invocation %s", r.InvocationID) - } - if err != nil { - return util.StatusWrap(err, "Failed to save structured command line to database") - } - return nil -} - func parseSections(buildEventSections []*bes.CommandLineSection) (envVars map[string]string, data invocation.CommandLineData, profileName string) { // Explicitly set empty slices rather than rely on nil equivalence as the // json encoder will explicitly map nil slices to nil rather than empty diff --git a/internal/database/common/common.go b/internal/database/common/common.go index 99e6e50b..e8b2ccc0 100644 --- a/internal/database/common/common.go +++ b/internal/database/common/common.go @@ -40,8 +40,8 @@ func RollbackAndWrapError(tx database.Tx, err error) error { // CalculateBuildUUID calculates a UUID for a build, based on the build URL // and instance name. -func CalculateBuildUUID(buildURL, instanceName string) uuid.UUID { - return uuid.NewSHA1(uuid.NameSpaceURL, []byte(fmt.Sprintf("instanceName: %s, buildUrl: %s", instanceName, buildURL))) +func CalculateBuildUUID(buildKey, instanceName string) uuid.UUID { + return uuid.NewSHA1(uuid.NameSpaceURL, []byte(fmt.Sprintf("instanceName: %s, buildKey: %s", instanceName, buildKey))) } // NewSQLConnectionFromConfiguration creates an otel decorated sql diff --git a/internal/database/dbcleanupservice/dbcleanupservice_test.go b/internal/database/dbcleanupservice/dbcleanupservice_test.go index 55dcd75c..8ce1fd91 100644 --- a/internal/database/dbcleanupservice/dbcleanupservice_test.go +++ b/internal/database/dbcleanupservice/dbcleanupservice_test.go @@ -208,7 +208,7 @@ func TestRemoveBuildsWithoutInvocations(t *testing.T) { client := db.Ent() instanceName := testutils.CreateInstanceName(ctx, t, client, "testInstance") - buildObj, err := client.Build.Create().SetBuildURL("1").SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) + buildObj, err := client.Build.Create().SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) require.NoError(t, err) _, err = testutils.StartCreateInvocation(client, instanceName). SetBuild(buildObj). @@ -230,7 +230,7 @@ func TestRemoveBuildsWithoutInvocations(t *testing.T) { client := db.Ent() instanceName := testutils.CreateInstanceName(ctx, t, client, "testInstance") - _, err := client.Build.Create().SetBuildURL("1").SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) + _, err := client.Build.Create().SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) require.NoError(t, err) cleanup, err := getNewDbCleanupService(db, clock, traceProvider) @@ -249,17 +249,17 @@ func TestRemoveBuildsWithoutInvocations(t *testing.T) { instanceName := testutils.CreateInstanceName(ctx, t, client, "testInstance") // Build with invocation - buildWithInv, err := client.Build.Create().SetBuildURL("1").SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) + buildWithInv, err := client.Build.Create().SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) require.NoError(t, err) _, err = testutils.StartCreateInvocation(client, instanceName). SetBuild(buildWithInv). Save(ctx) require.NoError(t, err) // Build without invocation - _, err = client.Build.Create().SetBuildURL("2").SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) + _, err = client.Build.Create().SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) require.NoError(t, err) // Another build without invocation - _, err = client.Build.Create().SetBuildURL("3").SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) + _, err = client.Build.Create().SetBuildUUID(uuid.New()).SetInstanceName(instanceName).SetTimestamp(time.Now().UTC()).Save(ctx) require.NoError(t, err) cleanup, err := getNewDbCleanupService(db, clock, traceProvider) diff --git a/internal/database/sqlc/BUILD.bazel b/internal/database/sqlc/BUILD.bazel index 78632ebb..fefd07b5 100644 --- a/internal/database/sqlc/BUILD.bazel +++ b/internal/database/sqlc/BUILD.bazel @@ -5,6 +5,7 @@ go_library( srcs = [ "authenticated_users.sql.go", "bazel_invocations.sql.go", + "builds.sql.go", "db.go", "event_metadata.sql.go", "incomplete_build_logs.sql.go", diff --git a/internal/database/sqlc/builds.sql.go b/internal/database/sqlc/builds.sql.go new file mode 100644 index 00000000..430b9194 --- /dev/null +++ b/internal/database/sqlc/builds.sql.go @@ -0,0 +1,24 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.30.0 +// source: builds.sql + +package sqlc + +import ( + "context" +) + +const updateBuildTimestampFromInvocation = `-- name: UpdateBuildTimestampFromInvocation :exec +UPDATE builds +SET timestamp = bi.started_at +FROM bazel_invocations bi +WHERE bi.id = $1 + AND builds.id = bi.build_invocations + AND bi.started_at < builds.timestamp +` + +func (q *Queries) UpdateBuildTimestampFromInvocation(ctx context.Context, invocationID int64) error { + _, err := q.db.ExecContext(ctx, updateBuildTimestampFromInvocation, invocationID) + return err +} diff --git a/internal/database/sqlc/models.go b/internal/database/sqlc/models.go index 01e31834..769d1d1f 100644 --- a/internal/database/sqlc/models.go +++ b/internal/database/sqlc/models.go @@ -91,14 +91,9 @@ type BazelInvocation struct { CreatedTimestamp time.Time StartedAt sql.NullTime EndedAt sql.NullTime - ChangeNumber sql.NullInt64 - PatchsetNumber sql.NullInt64 BepCompleted bool - StepLabel sql.NullString - UserEmail sql.NullString - UserLdap sql.NullString + Username sql.NullString Hostname sql.NullString - IsCiWorker sql.NullBool NumFetches sql.NullInt64 ProfileName sql.NullString BazelVersion sql.NullString @@ -118,7 +113,6 @@ type BazelInvocation struct { type Build struct { ID int64 - BuildUrl string BuildUuid uuid.UUID Timestamp time.Time InstanceNameBuilds int64 @@ -147,6 +141,13 @@ type BuildLogChunk struct { BazelInvocationBuildLogChunks int64 } +type BuildTag struct { + ID int64 + Key string + Value string + BuildID int64 +} + type Configuration struct { ID int64 ConfigurationID string @@ -201,6 +202,13 @@ type InvocationFile struct { BazelInvocationInvocationFiles sql.NullInt64 } +type InvocationTag struct { + ID int64 + Key string + Value string + BazelInvocationID int64 +} + type InvocationTarget struct { ID int64 Success bool @@ -286,22 +294,12 @@ type RunnerCount struct { type SourceControl struct { ID int64 - Provider sql.NullString - InstanceUrl sql.NullString Repo sql.NullString - Refs sql.NullString - CommitSha sql.NullString - Actor sql.NullString - EventName sql.NullString - Workflow sql.NullString - RunID sql.NullString - RunNumber sql.NullString - Job sql.NullString - Action sql.NullString - RunnerName sql.NullString - RunnerArch sql.NullString - RunnerOs sql.NullString - Workspace sql.NullString + RepoUrl sql.NullString + Ref sql.NullString + RefUrl sql.NullString + Commit sql.NullString + CommitUrl sql.NullString BazelInvocationSourceControl sql.NullInt64 } diff --git a/internal/database/sqlc/querier.go b/internal/database/sqlc/querier.go index 64da1690..6e4b0be9 100644 --- a/internal/database/sqlc/querier.go +++ b/internal/database/sqlc/querier.go @@ -56,6 +56,7 @@ type Querier interface { // // Returns the number of physical blocks of a table SelectPages(ctx context.Context, tableName string) (int32, error) + UpdateBuildTimestampFromInvocation(ctx context.Context, invocationID int64) error UpdateCompletedInvocationWithEndTimeFromEventMetadata(ctx context.Context) (int64, error) UpdateEventMetadata(ctx context.Context, arg UpdateEventMetadataParams) (int64, error) UpdateTestSummariesBulk(ctx context.Context, arg UpdateTestSummariesBulkParams) (int64, error) diff --git a/internal/graphql/BUILD.bazel b/internal/graphql/BUILD.bazel index 3ff60fb4..d662b792 100644 --- a/internal/graphql/BUILD.bazel +++ b/internal/graphql/BUILD.bazel @@ -24,7 +24,6 @@ go_library( "//ent/gen/ent/instancename", "//ent/gen/ent/invocationfiles", "//ent/gen/ent/invocationtarget", - "//ent/gen/ent/sourcecontrol", "//ent/gen/ent/target", "//internal/database", "//internal/graphql/helpers", diff --git a/internal/graphql/custom.resolvers.go b/internal/graphql/custom.resolvers.go index 33965d7f..92318d54 100644 --- a/internal/graphql/custom.resolvers.go +++ b/internal/graphql/custom.resolvers.go @@ -20,14 +20,6 @@ import ( "github.com/google/uuid" ) -// User is the resolver for the user field. -func (r *bazelInvocationResolver) User(ctx context.Context, obj *ent.BazelInvocation) (*model.User, error) { - return &model.User{ - Email: obj.UserEmail, - Ldap: obj.UserLdap, - }, nil -} - // Profile is the resolver for the profile field. func (r *bazelInvocationResolver) Profile(ctx context.Context, obj *ent.BazelInvocation) (*model.Profile, error) { profile, err := obj.QueryInvocationFiles().Where(invocationfiles.NameEQ(obj.ProfileName)).Only(ctx) diff --git a/internal/graphql/ent.resolvers.go b/internal/graphql/ent.resolvers.go index 7508fddd..7206c507 100644 --- a/internal/graphql/ent.resolvers.go +++ b/internal/graphql/ent.resolvers.go @@ -108,6 +108,11 @@ func (r *buildGraphMetricsResolver) ID(ctx context.Context, obj *ent.BuildGraphM return helpers.GraphQLIDFromTypeAndID("BuildGraphMetrics", obj.ID), nil } +// ID is the resolver for the id field. +func (r *buildTagResolver) ID(ctx context.Context, obj *ent.BuildTag) (string, error) { + return helpers.GraphQLIDFromTypeAndID("BuildTag", obj.ID), nil +} + // ID is the resolver for the id field. func (r *configurationResolver) ID(ctx context.Context, obj *ent.Configuration) (string, error) { return helpers.GraphQLIDFromTypeAndID("Configuration", obj.ID), nil @@ -140,6 +145,11 @@ func (r *instanceNameResolver) ID(ctx context.Context, obj *ent.InstanceName) (s return helpers.GraphQLIDFromTypeAndID("InstanceName", obj.ID), nil } +// ID is the resolver for the id field. +func (r *invocationTagResolver) ID(ctx context.Context, obj *ent.InvocationTag) (string, error) { + return helpers.GraphQLIDFromTypeAndID("InvocationTag", obj.ID), nil +} + // ID is the resolver for the id field. func (r *invocationTargetResolver) ID(ctx context.Context, obj *ent.InvocationTarget) (string, error) { return helpers.GraphQLIDFromTypeAndID("InvocationTarget", obj.ID), nil @@ -582,6 +592,46 @@ func (r *buildGraphMetricsWhereInputResolver) IDLte(ctx context.Context, obj *en panic(fmt.Errorf("not implemented: IDLte - idLTE")) } +// ID is the resolver for the id field. +func (r *buildTagWhereInputResolver) ID(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: ID - id")) +} + +// IDNeq is the resolver for the idNEQ field. +func (r *buildTagWhereInputResolver) IDNeq(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDNeq - idNEQ")) +} + +// IDIn is the resolver for the idIn field. +func (r *buildTagWhereInputResolver) IDIn(ctx context.Context, obj *ent.BuildTagWhereInput, data []string) error { + panic(fmt.Errorf("not implemented: IDIn - idIn")) +} + +// IDNotIn is the resolver for the idNotIn field. +func (r *buildTagWhereInputResolver) IDNotIn(ctx context.Context, obj *ent.BuildTagWhereInput, data []string) error { + panic(fmt.Errorf("not implemented: IDNotIn - idNotIn")) +} + +// IDGt is the resolver for the idGT field. +func (r *buildTagWhereInputResolver) IDGt(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDGt - idGT")) +} + +// IDGte is the resolver for the idGTE field. +func (r *buildTagWhereInputResolver) IDGte(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDGte - idGTE")) +} + +// IDLt is the resolver for the idLT field. +func (r *buildTagWhereInputResolver) IDLt(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDLt - idLT")) +} + +// IDLte is the resolver for the idLTE field. +func (r *buildTagWhereInputResolver) IDLte(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDLte - idLTE")) +} + // ID is the resolver for the id field. func (r *buildWhereInputResolver) ID(ctx context.Context, obj *ent.BuildWhereInput, data *string) error { panic(fmt.Errorf("not implemented: ID - id")) @@ -782,6 +832,46 @@ func (r *instanceNameWhereInputResolver) IDLte(ctx context.Context, obj *ent.Ins panic(fmt.Errorf("not implemented: IDLte - idLTE")) } +// ID is the resolver for the id field. +func (r *invocationTagWhereInputResolver) ID(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: ID - id")) +} + +// IDNeq is the resolver for the idNEQ field. +func (r *invocationTagWhereInputResolver) IDNeq(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDNeq - idNEQ")) +} + +// IDIn is the resolver for the idIn field. +func (r *invocationTagWhereInputResolver) IDIn(ctx context.Context, obj *ent.InvocationTagWhereInput, data []string) error { + panic(fmt.Errorf("not implemented: IDIn - idIn")) +} + +// IDNotIn is the resolver for the idNotIn field. +func (r *invocationTagWhereInputResolver) IDNotIn(ctx context.Context, obj *ent.InvocationTagWhereInput, data []string) error { + panic(fmt.Errorf("not implemented: IDNotIn - idNotIn")) +} + +// IDGt is the resolver for the idGT field. +func (r *invocationTagWhereInputResolver) IDGt(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDGt - idGT")) +} + +// IDGte is the resolver for the idGTE field. +func (r *invocationTagWhereInputResolver) IDGte(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDGte - idGTE")) +} + +// IDLt is the resolver for the idLT field. +func (r *invocationTagWhereInputResolver) IDLt(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDLt - idLT")) +} + +// IDLte is the resolver for the idLTE field. +func (r *invocationTagWhereInputResolver) IDLte(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error { + panic(fmt.Errorf("not implemented: IDLte - idLTE")) +} + // ID is the resolver for the id field. func (r *invocationTargetWhereInputResolver) ID(ctx context.Context, obj *ent.InvocationTargetWhereInput, data *string) error { panic(fmt.Errorf("not implemented: ID - id")) @@ -1406,6 +1496,9 @@ func (r *Resolver) BuildGraphMetrics() BuildGraphMetricsResolver { return &buildGraphMetricsResolver{r} } +// BuildTag returns BuildTagResolver implementation. +func (r *Resolver) BuildTag() BuildTagResolver { return &buildTagResolver{r} } + // Configuration returns ConfigurationResolver implementation. func (r *Resolver) Configuration() ConfigurationResolver { return &configurationResolver{r} } @@ -1420,6 +1513,9 @@ func (r *Resolver) GarbageMetrics() GarbageMetricsResolver { return &garbageMetr // InstanceName returns InstanceNameResolver implementation. func (r *Resolver) InstanceName() InstanceNameResolver { return &instanceNameResolver{r} } +// InvocationTag returns InvocationTagResolver implementation. +func (r *Resolver) InvocationTag() InvocationTagResolver { return &invocationTagResolver{r} } + // InvocationTarget returns InvocationTargetResolver implementation. func (r *Resolver) InvocationTarget() InvocationTargetResolver { return &invocationTargetResolver{r} } @@ -1505,6 +1601,11 @@ func (r *Resolver) BuildGraphMetricsWhereInput() BuildGraphMetricsWhereInputReso return &buildGraphMetricsWhereInputResolver{r} } +// BuildTagWhereInput returns BuildTagWhereInputResolver implementation. +func (r *Resolver) BuildTagWhereInput() BuildTagWhereInputResolver { + return &buildTagWhereInputResolver{r} +} + // BuildWhereInput returns BuildWhereInputResolver implementation. func (r *Resolver) BuildWhereInput() BuildWhereInputResolver { return &buildWhereInputResolver{r} } @@ -1528,6 +1629,11 @@ func (r *Resolver) InstanceNameWhereInput() InstanceNameWhereInputResolver { return &instanceNameWhereInputResolver{r} } +// InvocationTagWhereInput returns InvocationTagWhereInputResolver implementation. +func (r *Resolver) InvocationTagWhereInput() InvocationTagWhereInputResolver { + return &invocationTagWhereInputResolver{r} +} + // InvocationTargetWhereInput returns InvocationTargetWhereInputResolver implementation. func (r *Resolver) InvocationTargetWhereInput() InvocationTargetWhereInputResolver { return &invocationTargetWhereInputResolver{r} @@ -1606,10 +1712,12 @@ type ( bazelInvocationResolver struct{ *Resolver } buildResolver struct{ *Resolver } buildGraphMetricsResolver struct{ *Resolver } + buildTagResolver struct{ *Resolver } configurationResolver struct{ *Resolver } connectionMetadataResolver struct{ *Resolver } garbageMetricsResolver struct{ *Resolver } instanceNameResolver struct{ *Resolver } + invocationTagResolver struct{ *Resolver } invocationTargetResolver struct{ *Resolver } memoryMetricsResolver struct{ *Resolver } metricsResolver struct{ *Resolver } @@ -1633,11 +1741,13 @@ type ( authenticatedUserWhereInputResolver struct{ *Resolver } bazelInvocationWhereInputResolver struct{ *Resolver } buildGraphMetricsWhereInputResolver struct{ *Resolver } + buildTagWhereInputResolver struct{ *Resolver } buildWhereInputResolver struct{ *Resolver } configurationWhereInputResolver struct{ *Resolver } connectionMetadataWhereInputResolver struct{ *Resolver } garbageMetricsWhereInputResolver struct{ *Resolver } instanceNameWhereInputResolver struct{ *Resolver } + invocationTagWhereInputResolver struct{ *Resolver } invocationTargetWhereInputResolver struct{ *Resolver } memoryMetricsWhereInputResolver struct{ *Resolver } metricsWhereInputResolver struct{ *Resolver } diff --git a/internal/graphql/model/models_gen.go b/internal/graphql/model/models_gen.go index fc2d002d..57e55ad8 100644 --- a/internal/graphql/model/models_gen.go +++ b/internal/graphql/model/models_gen.go @@ -9,9 +9,3 @@ type Profile struct { SizeInBytes int `json:"sizeInBytes"` DigestFunction string `json:"digestFunction"` } - -type User struct { - ID string `json:"id"` - Email string `json:"Email"` - Ldap string `json:"LDAP"` -} diff --git a/internal/graphql/schema/custom.graphql b/internal/graphql/schema/custom.graphql index e642bc87..f3e257eb 100644 --- a/internal/graphql/schema/custom.graphql +++ b/internal/graphql/schema/custom.graphql @@ -10,12 +10,6 @@ extend type Query { ): Target } -type User { - id: ID! - Email: String! - LDAP: String! -} - type Profile { id: ID! name: String! @@ -25,7 +19,6 @@ type Profile { } extend type BazelInvocation { - user: User profile: Profile } diff --git a/internal/graphql/schema/ent.graphql b/internal/graphql/schema/ent.graphql index a62c7e86..a22f2b07 100644 --- a/internal/graphql/schema/ent.graphql +++ b/internal/graphql/schema/ent.graphql @@ -858,14 +858,9 @@ type BazelInvocation implements Node { invocationID: UUID! startedAt: Time endedAt: Time - changeNumber: Int - patchsetNumber: Int bepCompleted: Boolean! - stepLabel: String - userEmail: String - userLdap: String + username: String hostname: String - isCiWorker: Boolean numFetches: Int bazelVersion: String exitCodeName: String @@ -885,6 +880,37 @@ type BazelInvocation implements Node { instanceName: InstanceName! build: Build authenticatedUser: AuthenticatedUser + tags( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for InvocationTags returned from the connection. + """ + orderBy: InvocationTagOrder + + """ + Filtering options for InvocationTags returned from the connection. + """ + where: InvocationTagWhereInput + ): InvocationTagConnection! connectionMetadata: ConnectionMetadata configurations: [Configuration!] actions: [Action!] @@ -920,7 +946,7 @@ type BazelInvocation implements Node { """ where: InvocationTargetWhereInput ): InvocationTargetConnection! - sourceControl: SourceControl + sourceControl: [SourceControl!] } """ A connection to a list of items. @@ -970,7 +996,7 @@ Properties by which BazelInvocation connections can be ordered. """ enum BazelInvocationOrderField { STARTED_AT - USER_LDAP + USERNAME } """ BazelInvocationWhereInput is used for filtering BazelInvocation objects. @@ -1029,90 +1055,28 @@ input BazelInvocationWhereInput { endedAtIsNil: Boolean endedAtNotNil: Boolean """ - change_number field predicates - """ - changeNumber: Int - changeNumberNEQ: Int - changeNumberIn: [Int!] - changeNumberNotIn: [Int!] - changeNumberGT: Int - changeNumberGTE: Int - changeNumberLT: Int - changeNumberLTE: Int - changeNumberIsNil: Boolean - changeNumberNotNil: Boolean - """ - patchset_number field predicates - """ - patchsetNumber: Int - patchsetNumberNEQ: Int - patchsetNumberIn: [Int!] - patchsetNumberNotIn: [Int!] - patchsetNumberGT: Int - patchsetNumberGTE: Int - patchsetNumberLT: Int - patchsetNumberLTE: Int - patchsetNumberIsNil: Boolean - patchsetNumberNotNil: Boolean - """ bep_completed field predicates """ bepCompleted: Boolean bepCompletedNEQ: Boolean """ - step_label field predicates - """ - stepLabel: String - stepLabelNEQ: String - stepLabelIn: [String!] - stepLabelNotIn: [String!] - stepLabelGT: String - stepLabelGTE: String - stepLabelLT: String - stepLabelLTE: String - stepLabelContains: String - stepLabelHasPrefix: String - stepLabelHasSuffix: String - stepLabelIsNil: Boolean - stepLabelNotNil: Boolean - stepLabelEqualFold: String - stepLabelContainsFold: String - """ - user_email field predicates - """ - userEmail: String - userEmailNEQ: String - userEmailIn: [String!] - userEmailNotIn: [String!] - userEmailGT: String - userEmailGTE: String - userEmailLT: String - userEmailLTE: String - userEmailContains: String - userEmailHasPrefix: String - userEmailHasSuffix: String - userEmailIsNil: Boolean - userEmailNotNil: Boolean - userEmailEqualFold: String - userEmailContainsFold: String - """ - user_ldap field predicates - """ - userLdap: String - userLdapNEQ: String - userLdapIn: [String!] - userLdapNotIn: [String!] - userLdapGT: String - userLdapGTE: String - userLdapLT: String - userLdapLTE: String - userLdapContains: String - userLdapHasPrefix: String - userLdapHasSuffix: String - userLdapIsNil: Boolean - userLdapNotNil: Boolean - userLdapEqualFold: String - userLdapContainsFold: String + username field predicates + """ + username: String + usernameNEQ: String + usernameIn: [String!] + usernameNotIn: [String!] + usernameGT: String + usernameGTE: String + usernameLT: String + usernameLTE: String + usernameContains: String + usernameHasPrefix: String + usernameHasSuffix: String + usernameIsNil: Boolean + usernameNotNil: Boolean + usernameEqualFold: String + usernameContainsFold: String """ hostname field predicates """ @@ -1132,13 +1096,6 @@ input BazelInvocationWhereInput { hostnameEqualFold: String hostnameContainsFold: String """ - is_ci_worker field predicates - """ - isCiWorker: Boolean - isCiWorkerNEQ: Boolean - isCiWorkerIsNil: Boolean - isCiWorkerNotNil: Boolean - """ num_fetches field predicates """ numFetches: Int @@ -1234,6 +1191,11 @@ input BazelInvocationWhereInput { hasAuthenticatedUser: Boolean hasAuthenticatedUserWith: [AuthenticatedUserWhereInput!] """ + tags edge predicates + """ + hasTags: Boolean + hasTagsWith: [InvocationTagWhereInput!] + """ connection_metadata edge predicates """ hasConnectionMetadata: Boolean @@ -1266,7 +1228,6 @@ input BazelInvocationWhereInput { } type Build implements Node { id: ID! - buildURL: String! buildUUID: UUID! timestamp: Time! instanceName: InstanceName! @@ -1301,6 +1262,37 @@ type Build implements Node { """ where: BazelInvocationWhereInput ): BazelInvocationConnection! + tags( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: Cursor + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: Cursor + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for BuildTags returned from the connection. + """ + orderBy: BuildTagOrder + + """ + Filtering options for BuildTags returned from the connection. + """ + where: BuildTagWhereInput + ): BuildTagConnection! } """ A connection to a list of items. @@ -1506,6 +1498,118 @@ Properties by which Build connections can be ordered. enum BuildOrderField { TIMESTAMP } +type BuildTag implements Node { + id: ID! + key: String! + value: String! + build: Build! +} +""" +A connection to a list of items. +""" +type BuildTagConnection { + """ + A list of edges. + """ + edges: [BuildTagEdge] + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} +""" +An edge in a connection. +""" +type BuildTagEdge { + """ + The item at the end of the edge. + """ + node: BuildTag + """ + A cursor for use in pagination. + """ + cursor: Cursor! +} +""" +Ordering options for BuildTag connections +""" +input BuildTagOrder { + """ + The ordering direction. + """ + direction: OrderDirection! = ASC + """ + The field by which to order BuildTags. + """ + field: BuildTagOrderField! +} +""" +Properties by which BuildTag connections can be ordered. +""" +enum BuildTagOrderField { + KEY +} +""" +BuildTagWhereInput is used for filtering BuildTag objects. +Input was generated by ent. +""" +input BuildTagWhereInput { + not: BuildTagWhereInput + and: [BuildTagWhereInput!] + or: [BuildTagWhereInput!] + """ + id field predicates + """ + id: ID + idNEQ: ID + idIn: [ID!] + idNotIn: [ID!] + idGT: ID + idGTE: ID + idLT: ID + idLTE: ID + """ + key field predicates + """ + key: String + keyNEQ: String + keyIn: [String!] + keyNotIn: [String!] + keyGT: String + keyGTE: String + keyLT: String + keyLTE: String + keyContains: String + keyHasPrefix: String + keyHasSuffix: String + keyEqualFold: String + keyContainsFold: String + """ + value field predicates + """ + value: String + valueNEQ: String + valueIn: [String!] + valueNotIn: [String!] + valueGT: String + valueGTE: String + valueLT: String + valueLTE: String + valueContains: String + valueHasPrefix: String + valueHasSuffix: String + valueEqualFold: String + valueContainsFold: String + """ + build edge predicates + """ + hasBuild: Boolean + hasBuildWith: [BuildWhereInput!] +} """ BuildWhereInput is used for filtering Build objects. Input was generated by ent. @@ -1526,22 +1630,6 @@ input BuildWhereInput { idLT: ID idLTE: ID """ - build_url field predicates - """ - buildURL: String - buildURLNEQ: String - buildURLIn: [String!] - buildURLNotIn: [String!] - buildURLGT: String - buildURLGTE: String - buildURLLT: String - buildURLLTE: String - buildURLContains: String - buildURLHasPrefix: String - buildURLHasSuffix: String - buildURLEqualFold: String - buildURLContainsFold: String - """ build_uuid field predicates """ buildUUID: UUID @@ -1573,6 +1661,11 @@ input BuildWhereInput { """ hasInvocations: Boolean hasInvocationsWith: [BazelInvocationWhereInput!] + """ + tags edge predicates + """ + hasTags: Boolean + hasTagsWith: [BuildTagWhereInput!] } type Configuration implements Node { id: ID! @@ -1864,6 +1957,118 @@ input InstanceNameWhereInput { hasTargets: Boolean hasTargetsWith: [TargetWhereInput!] } +type InvocationTag implements Node { + id: ID! + key: String! + value: String! + bazelInvocation: BazelInvocation! +} +""" +A connection to a list of items. +""" +type InvocationTagConnection { + """ + A list of edges. + """ + edges: [InvocationTagEdge] + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} +""" +An edge in a connection. +""" +type InvocationTagEdge { + """ + The item at the end of the edge. + """ + node: InvocationTag + """ + A cursor for use in pagination. + """ + cursor: Cursor! +} +""" +Ordering options for InvocationTag connections +""" +input InvocationTagOrder { + """ + The ordering direction. + """ + direction: OrderDirection! = ASC + """ + The field by which to order InvocationTags. + """ + field: InvocationTagOrderField! +} +""" +Properties by which InvocationTag connections can be ordered. +""" +enum InvocationTagOrderField { + KEY +} +""" +InvocationTagWhereInput is used for filtering InvocationTag objects. +Input was generated by ent. +""" +input InvocationTagWhereInput { + not: InvocationTagWhereInput + and: [InvocationTagWhereInput!] + or: [InvocationTagWhereInput!] + """ + id field predicates + """ + id: ID + idNEQ: ID + idIn: [ID!] + idNotIn: [ID!] + idGT: ID + idGTE: ID + idLT: ID + idLTE: ID + """ + key field predicates + """ + key: String + keyNEQ: String + keyIn: [String!] + keyNotIn: [String!] + keyGT: String + keyGTE: String + keyLT: String + keyLTE: String + keyContains: String + keyHasPrefix: String + keyHasSuffix: String + keyEqualFold: String + keyContainsFold: String + """ + value field predicates + """ + value: String + valueNEQ: String + valueIn: [String!] + valueNotIn: [String!] + valueGT: String + valueGTE: String + valueLT: String + valueLTE: String + valueContains: String + valueHasPrefix: String + valueHasSuffix: String + valueEqualFold: String + valueContainsFold: String + """ + bazel_invocation edge predicates + """ + hasBazelInvocation: Boolean + hasBazelInvocationWith: [BazelInvocationWhereInput!] +} type InvocationTarget implements Node { id: ID! success: Boolean! @@ -2565,32 +2770,15 @@ input RunnerCountWhereInput { } type SourceControl implements Node { id: ID! - provider: SourceControlProvider - instanceURL: String repo: String - refs: String - commitSha: String - actor: String - eventName: String - workflow: String - runID: String - runNumber: String - job: String - action: String - runnerName: String - runnerArch: String - runnerOs: String - workspace: String + repoURL: String + ref: String + refURL: String + commit: String + commitURL: String bazelInvocation: BazelInvocation } """ -SourceControlProvider is enum for the field provider -""" -enum SourceControlProvider @goModel(model: "github.com/buildbarn/bb-portal/ent/gen/ent/sourcecontrol.Provider") { - GITHUB - GITLAB -} -""" SourceControlWhereInput is used for filtering SourceControl objects. Input was generated by ent. """ @@ -2610,33 +2798,6 @@ input SourceControlWhereInput { idLT: ID idLTE: ID """ - provider field predicates - """ - provider: SourceControlProvider - providerNEQ: SourceControlProvider - providerIn: [SourceControlProvider!] - providerNotIn: [SourceControlProvider!] - providerIsNil: Boolean - providerNotNil: Boolean - """ - instance_url field predicates - """ - instanceURL: String - instanceURLNEQ: String - instanceURLIn: [String!] - instanceURLNotIn: [String!] - instanceURLGT: String - instanceURLGTE: String - instanceURLLT: String - instanceURLLTE: String - instanceURLContains: String - instanceURLHasPrefix: String - instanceURLHasSuffix: String - instanceURLIsNil: Boolean - instanceURLNotNil: Boolean - instanceURLEqualFold: String - instanceURLContainsFold: String - """ repo field predicates """ repo: String @@ -2655,239 +2816,95 @@ input SourceControlWhereInput { repoEqualFold: String repoContainsFold: String """ - refs field predicates - """ - refs: String - refsNEQ: String - refsIn: [String!] - refsNotIn: [String!] - refsGT: String - refsGTE: String - refsLT: String - refsLTE: String - refsContains: String - refsHasPrefix: String - refsHasSuffix: String - refsIsNil: Boolean - refsNotNil: Boolean - refsEqualFold: String - refsContainsFold: String - """ - commit_sha field predicates - """ - commitSha: String - commitShaNEQ: String - commitShaIn: [String!] - commitShaNotIn: [String!] - commitShaGT: String - commitShaGTE: String - commitShaLT: String - commitShaLTE: String - commitShaContains: String - commitShaHasPrefix: String - commitShaHasSuffix: String - commitShaIsNil: Boolean - commitShaNotNil: Boolean - commitShaEqualFold: String - commitShaContainsFold: String - """ - actor field predicates - """ - actor: String - actorNEQ: String - actorIn: [String!] - actorNotIn: [String!] - actorGT: String - actorGTE: String - actorLT: String - actorLTE: String - actorContains: String - actorHasPrefix: String - actorHasSuffix: String - actorIsNil: Boolean - actorNotNil: Boolean - actorEqualFold: String - actorContainsFold: String - """ - event_name field predicates - """ - eventName: String - eventNameNEQ: String - eventNameIn: [String!] - eventNameNotIn: [String!] - eventNameGT: String - eventNameGTE: String - eventNameLT: String - eventNameLTE: String - eventNameContains: String - eventNameHasPrefix: String - eventNameHasSuffix: String - eventNameIsNil: Boolean - eventNameNotNil: Boolean - eventNameEqualFold: String - eventNameContainsFold: String - """ - workflow field predicates - """ - workflow: String - workflowNEQ: String - workflowIn: [String!] - workflowNotIn: [String!] - workflowGT: String - workflowGTE: String - workflowLT: String - workflowLTE: String - workflowContains: String - workflowHasPrefix: String - workflowHasSuffix: String - workflowIsNil: Boolean - workflowNotNil: Boolean - workflowEqualFold: String - workflowContainsFold: String - """ - run_id field predicates - """ - runID: String - runIDNEQ: String - runIDIn: [String!] - runIDNotIn: [String!] - runIDGT: String - runIDGTE: String - runIDLT: String - runIDLTE: String - runIDContains: String - runIDHasPrefix: String - runIDHasSuffix: String - runIDIsNil: Boolean - runIDNotNil: Boolean - runIDEqualFold: String - runIDContainsFold: String - """ - run_number field predicates - """ - runNumber: String - runNumberNEQ: String - runNumberIn: [String!] - runNumberNotIn: [String!] - runNumberGT: String - runNumberGTE: String - runNumberLT: String - runNumberLTE: String - runNumberContains: String - runNumberHasPrefix: String - runNumberHasSuffix: String - runNumberIsNil: Boolean - runNumberNotNil: Boolean - runNumberEqualFold: String - runNumberContainsFold: String - """ - job field predicates - """ - job: String - jobNEQ: String - jobIn: [String!] - jobNotIn: [String!] - jobGT: String - jobGTE: String - jobLT: String - jobLTE: String - jobContains: String - jobHasPrefix: String - jobHasSuffix: String - jobIsNil: Boolean - jobNotNil: Boolean - jobEqualFold: String - jobContainsFold: String - """ - action field predicates - """ - action: String - actionNEQ: String - actionIn: [String!] - actionNotIn: [String!] - actionGT: String - actionGTE: String - actionLT: String - actionLTE: String - actionContains: String - actionHasPrefix: String - actionHasSuffix: String - actionIsNil: Boolean - actionNotNil: Boolean - actionEqualFold: String - actionContainsFold: String - """ - runner_name field predicates - """ - runnerName: String - runnerNameNEQ: String - runnerNameIn: [String!] - runnerNameNotIn: [String!] - runnerNameGT: String - runnerNameGTE: String - runnerNameLT: String - runnerNameLTE: String - runnerNameContains: String - runnerNameHasPrefix: String - runnerNameHasSuffix: String - runnerNameIsNil: Boolean - runnerNameNotNil: Boolean - runnerNameEqualFold: String - runnerNameContainsFold: String - """ - runner_arch field predicates - """ - runnerArch: String - runnerArchNEQ: String - runnerArchIn: [String!] - runnerArchNotIn: [String!] - runnerArchGT: String - runnerArchGTE: String - runnerArchLT: String - runnerArchLTE: String - runnerArchContains: String - runnerArchHasPrefix: String - runnerArchHasSuffix: String - runnerArchIsNil: Boolean - runnerArchNotNil: Boolean - runnerArchEqualFold: String - runnerArchContainsFold: String - """ - runner_os field predicates - """ - runnerOs: String - runnerOsNEQ: String - runnerOsIn: [String!] - runnerOsNotIn: [String!] - runnerOsGT: String - runnerOsGTE: String - runnerOsLT: String - runnerOsLTE: String - runnerOsContains: String - runnerOsHasPrefix: String - runnerOsHasSuffix: String - runnerOsIsNil: Boolean - runnerOsNotNil: Boolean - runnerOsEqualFold: String - runnerOsContainsFold: String - """ - workspace field predicates - """ - workspace: String - workspaceNEQ: String - workspaceIn: [String!] - workspaceNotIn: [String!] - workspaceGT: String - workspaceGTE: String - workspaceLT: String - workspaceLTE: String - workspaceContains: String - workspaceHasPrefix: String - workspaceHasSuffix: String - workspaceIsNil: Boolean - workspaceNotNil: Boolean - workspaceEqualFold: String - workspaceContainsFold: String + repo_url field predicates + """ + repoURL: String + repoURLNEQ: String + repoURLIn: [String!] + repoURLNotIn: [String!] + repoURLGT: String + repoURLGTE: String + repoURLLT: String + repoURLLTE: String + repoURLContains: String + repoURLHasPrefix: String + repoURLHasSuffix: String + repoURLIsNil: Boolean + repoURLNotNil: Boolean + repoURLEqualFold: String + repoURLContainsFold: String + """ + ref field predicates + """ + ref: String + refNEQ: String + refIn: [String!] + refNotIn: [String!] + refGT: String + refGTE: String + refLT: String + refLTE: String + refContains: String + refHasPrefix: String + refHasSuffix: String + refIsNil: Boolean + refNotNil: Boolean + refEqualFold: String + refContainsFold: String + """ + ref_url field predicates + """ + refURL: String + refURLNEQ: String + refURLIn: [String!] + refURLNotIn: [String!] + refURLGT: String + refURLGTE: String + refURLLT: String + refURLLTE: String + refURLContains: String + refURLHasPrefix: String + refURLHasSuffix: String + refURLIsNil: Boolean + refURLNotNil: Boolean + refURLEqualFold: String + refURLContainsFold: String + """ + commit field predicates + """ + commit: String + commitNEQ: String + commitIn: [String!] + commitNotIn: [String!] + commitGT: String + commitGTE: String + commitLT: String + commitLTE: String + commitContains: String + commitHasPrefix: String + commitHasSuffix: String + commitIsNil: Boolean + commitNotNil: Boolean + commitEqualFold: String + commitContainsFold: String + """ + commit_url field predicates + """ + commitURL: String + commitURLNEQ: String + commitURLIn: [String!] + commitURLNotIn: [String!] + commitURLGT: String + commitURLGTE: String + commitURLLT: String + commitURLLTE: String + commitURLContains: String + commitURLHasPrefix: String + commitURLHasSuffix: String + commitURLIsNil: Boolean + commitURLNotNil: Boolean + commitURLEqualFold: String + commitURLContainsFold: String """ bazel_invocation edge predicates """ diff --git a/internal/graphql/server_gen.go b/internal/graphql/server_gen.go index 6a753d14..10bf7a4e 100644 --- a/internal/graphql/server_gen.go +++ b/internal/graphql/server_gen.go @@ -18,7 +18,6 @@ import ( "github.com/99designs/gqlgen/graphql/introspection" "github.com/buildbarn/bb-portal/ent/gen/ent" "github.com/buildbarn/bb-portal/ent/gen/ent/invocationtarget" - "github.com/buildbarn/bb-portal/ent/gen/ent/sourcecontrol" "github.com/buildbarn/bb-portal/internal/graphql/model" "github.com/buildbarn/bb-portal/pkg/uuidgql" "github.com/google/uuid" @@ -55,10 +54,12 @@ type ResolverRoot interface { BazelInvocation() BazelInvocationResolver Build() BuildResolver BuildGraphMetrics() BuildGraphMetricsResolver + BuildTag() BuildTagResolver Configuration() ConfigurationResolver ConnectionMetadata() ConnectionMetadataResolver GarbageMetrics() GarbageMetricsResolver InstanceName() InstanceNameResolver + InvocationTag() InvocationTagResolver InvocationTarget() InvocationTargetResolver MemoryMetrics() MemoryMetricsResolver Metrics() MetricsResolver @@ -82,11 +83,13 @@ type ResolverRoot interface { AuthenticatedUserWhereInput() AuthenticatedUserWhereInputResolver BazelInvocationWhereInput() BazelInvocationWhereInputResolver BuildGraphMetricsWhereInput() BuildGraphMetricsWhereInputResolver + BuildTagWhereInput() BuildTagWhereInputResolver BuildWhereInput() BuildWhereInputResolver ConfigurationWhereInput() ConfigurationWhereInputResolver ConnectionMetadataWhereInput() ConnectionMetadataWhereInputResolver GarbageMetricsWhereInput() GarbageMetricsWhereInputResolver InstanceNameWhereInput() InstanceNameWhereInputResolver + InvocationTagWhereInput() InvocationTagWhereInputResolver InvocationTargetWhereInput() InvocationTargetWhereInputResolver MemoryMetricsWhereInput() MemoryMetricsWhereInputResolver MetricsWhereInput() MetricsWhereInputResolver @@ -192,7 +195,6 @@ type ComplexityRoot struct { BepCompleted func(childComplexity int) int Build func(childComplexity int) int CanonicalCommandLine func(childComplexity int) int - ChangeNumber func(childComplexity int) int Configurations func(childComplexity int) int ConnectionMetadata func(childComplexity int) int EndedAt func(childComplexity int) int @@ -203,19 +205,15 @@ type ComplexityRoot struct { InstanceName func(childComplexity int) int InvocationID func(childComplexity int) int InvocationTargets func(childComplexity int, after *entgql.Cursor[int64], first *int, before *entgql.Cursor[int64], last *int, orderBy *ent.InvocationTargetOrder, where *ent.InvocationTargetWhereInput) int - IsCiWorker func(childComplexity int) int Metrics func(childComplexity int) int NumFetches func(childComplexity int) int OptionsParsed func(childComplexity int) int OriginalCommandLine func(childComplexity int) int - PatchsetNumber func(childComplexity int) int Profile func(childComplexity int) int SourceControl func(childComplexity int) int StartedAt func(childComplexity int) int - StepLabel func(childComplexity int) int - User func(childComplexity int) int - UserEmail func(childComplexity int) int - UserLdap func(childComplexity int) int + Tags func(childComplexity int, after *entgql.Cursor[int64], first *int, before *entgql.Cursor[int64], last *int, orderBy *ent.InvocationTagOrder, where *ent.InvocationTagWhereInput) int + Username func(childComplexity int) int } BazelInvocationConnection struct { @@ -230,11 +228,11 @@ type ComplexityRoot struct { } Build struct { - BuildURL func(childComplexity int) int BuildUUID func(childComplexity int) int ID func(childComplexity int) int InstanceName func(childComplexity int) int Invocations func(childComplexity int, after *entgql.Cursor[int64], first *int, before *entgql.Cursor[int64], last *int, orderBy *ent.BazelInvocationOrder, where *ent.BazelInvocationWhereInput) int + Tags func(childComplexity int, after *entgql.Cursor[int64], first *int, before *entgql.Cursor[int64], last *int, orderBy *ent.BuildTagOrder, where *ent.BuildTagWhereInput) int Timestamp func(childComplexity int) int } @@ -263,6 +261,24 @@ type ComplexityRoot struct { PostInvocationSkyframeNodeCount func(childComplexity int) int } + BuildTag struct { + Build func(childComplexity int) int + ID func(childComplexity int) int + Key func(childComplexity int) int + Value func(childComplexity int) int + } + + BuildTagConnection struct { + Edges func(childComplexity int) int + PageInfo func(childComplexity int) int + TotalCount func(childComplexity int) int + } + + BuildTagEdge struct { + Cursor func(childComplexity int) int + Node func(childComplexity int) int + } + Configuration struct { Actions func(childComplexity int) int BazelInvocation func(childComplexity int) int @@ -298,6 +314,24 @@ type ComplexityRoot struct { Targets func(childComplexity int) int } + InvocationTag struct { + BazelInvocation func(childComplexity int) int + ID func(childComplexity int) int + Key func(childComplexity int) int + Value func(childComplexity int) int + } + + InvocationTagConnection struct { + Edges func(childComplexity int) int + PageInfo func(childComplexity int) int + TotalCount func(childComplexity int) int + } + + InvocationTagEdge struct { + Cursor func(childComplexity int) int + Node func(childComplexity int) int + } + InvocationTarget struct { AbortReason func(childComplexity int) int BazelInvocation func(childComplexity int) int @@ -395,24 +429,14 @@ type ComplexityRoot struct { } SourceControl struct { - Action func(childComplexity int) int - Actor func(childComplexity int) int BazelInvocation func(childComplexity int) int - CommitSha func(childComplexity int) int - EventName func(childComplexity int) int + Commit func(childComplexity int) int + CommitURL func(childComplexity int) int ID func(childComplexity int) int - InstanceURL func(childComplexity int) int - Job func(childComplexity int) int - Provider func(childComplexity int) int - Refs func(childComplexity int) int + Ref func(childComplexity int) int + RefURL func(childComplexity int) int Repo func(childComplexity int) int - RunID func(childComplexity int) int - RunNumber func(childComplexity int) int - RunnerArch func(childComplexity int) int - RunnerName func(childComplexity int) int - RunnerOs func(childComplexity int) int - Workflow func(childComplexity int) int - Workspace func(childComplexity int) int + RepoURL func(childComplexity int) int } SystemNetworkStats struct { @@ -518,12 +542,6 @@ type ComplexityRoot struct { Metrics func(childComplexity int) int WallTimeInMs func(childComplexity int) int } - - User struct { - Email func(childComplexity int) int - ID func(childComplexity int) int - Ldap func(childComplexity int) int - } } type ActionResolver interface { @@ -551,7 +569,6 @@ type BazelInvocationResolver interface { OriginalCommandLine(ctx context.Context, obj *ent.BazelInvocation) (map[string]any, error) OptionsParsed(ctx context.Context, obj *ent.BazelInvocation) (map[string]any, error) - User(ctx context.Context, obj *ent.BazelInvocation) (*model.User, error) Profile(ctx context.Context, obj *ent.BazelInvocation) (*model.Profile, error) } type BuildResolver interface { @@ -560,6 +577,9 @@ type BuildResolver interface { type BuildGraphMetricsResolver interface { ID(ctx context.Context, obj *ent.BuildGraphMetrics) (string, error) } +type BuildTagResolver interface { + ID(ctx context.Context, obj *ent.BuildTag) (string, error) +} type ConfigurationResolver interface { ID(ctx context.Context, obj *ent.Configuration) (string, error) @@ -576,6 +596,9 @@ type GarbageMetricsResolver interface { type InstanceNameResolver interface { ID(ctx context.Context, obj *ent.InstanceName) (string, error) } +type InvocationTagResolver interface { + ID(ctx context.Context, obj *ent.InvocationTag) (string, error) +} type InvocationTargetResolver interface { ID(ctx context.Context, obj *ent.InvocationTarget) (string, error) } @@ -714,6 +737,16 @@ type BuildGraphMetricsWhereInputResolver interface { IDLt(ctx context.Context, obj *ent.BuildGraphMetricsWhereInput, data *string) error IDLte(ctx context.Context, obj *ent.BuildGraphMetricsWhereInput, data *string) error } +type BuildTagWhereInputResolver interface { + ID(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error + IDNeq(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error + IDIn(ctx context.Context, obj *ent.BuildTagWhereInput, data []string) error + IDNotIn(ctx context.Context, obj *ent.BuildTagWhereInput, data []string) error + IDGt(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error + IDGte(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error + IDLt(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error + IDLte(ctx context.Context, obj *ent.BuildTagWhereInput, data *string) error +} type BuildWhereInputResolver interface { ID(ctx context.Context, obj *ent.BuildWhereInput, data *string) error IDNeq(ctx context.Context, obj *ent.BuildWhereInput, data *string) error @@ -764,6 +797,16 @@ type InstanceNameWhereInputResolver interface { IDLt(ctx context.Context, obj *ent.InstanceNameWhereInput, data *string) error IDLte(ctx context.Context, obj *ent.InstanceNameWhereInput, data *string) error } +type InvocationTagWhereInputResolver interface { + ID(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error + IDNeq(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error + IDIn(ctx context.Context, obj *ent.InvocationTagWhereInput, data []string) error + IDNotIn(ctx context.Context, obj *ent.InvocationTagWhereInput, data []string) error + IDGt(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error + IDGte(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error + IDLt(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error + IDLte(ctx context.Context, obj *ent.InvocationTagWhereInput, data *string) error +} type InvocationTargetWhereInputResolver interface { ID(ctx context.Context, obj *ent.InvocationTargetWhereInput, data *string) error IDNeq(ctx context.Context, obj *ent.InvocationTargetWhereInput, data *string) error @@ -1395,13 +1438,6 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.BazelInvocation.CanonicalCommandLine(childComplexity), true - case "BazelInvocation.changeNumber": - if e.complexity.BazelInvocation.ChangeNumber == nil { - break - } - - return e.complexity.BazelInvocation.ChangeNumber(childComplexity), true - case "BazelInvocation.configurations": if e.complexity.BazelInvocation.Configurations == nil { break @@ -1477,13 +1513,6 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.BazelInvocation.InvocationTargets(childComplexity, args["after"].(*entgql.Cursor[int64]), args["first"].(*int), args["before"].(*entgql.Cursor[int64]), args["last"].(*int), args["orderBy"].(*ent.InvocationTargetOrder), args["where"].(*ent.InvocationTargetWhereInput)), true - case "BazelInvocation.isCiWorker": - if e.complexity.BazelInvocation.IsCiWorker == nil { - break - } - - return e.complexity.BazelInvocation.IsCiWorker(childComplexity), true - case "BazelInvocation.metrics": if e.complexity.BazelInvocation.Metrics == nil { break @@ -1512,13 +1541,6 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.BazelInvocation.OriginalCommandLine(childComplexity), true - case "BazelInvocation.patchsetNumber": - if e.complexity.BazelInvocation.PatchsetNumber == nil { - break - } - - return e.complexity.BazelInvocation.PatchsetNumber(childComplexity), true - case "BazelInvocation.profile": if e.complexity.BazelInvocation.Profile == nil { break @@ -1540,33 +1562,24 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.BazelInvocation.StartedAt(childComplexity), true - case "BazelInvocation.stepLabel": - if e.complexity.BazelInvocation.StepLabel == nil { + case "BazelInvocation.tags": + if e.complexity.BazelInvocation.Tags == nil { break } - return e.complexity.BazelInvocation.StepLabel(childComplexity), true - - case "BazelInvocation.user": - if e.complexity.BazelInvocation.User == nil { - break - } - - return e.complexity.BazelInvocation.User(childComplexity), true - - case "BazelInvocation.userEmail": - if e.complexity.BazelInvocation.UserEmail == nil { - break + args, err := ec.field_BazelInvocation_tags_args(ctx, rawArgs) + if err != nil { + return 0, false } - return e.complexity.BazelInvocation.UserEmail(childComplexity), true + return e.complexity.BazelInvocation.Tags(childComplexity, args["after"].(*entgql.Cursor[int64]), args["first"].(*int), args["before"].(*entgql.Cursor[int64]), args["last"].(*int), args["orderBy"].(*ent.InvocationTagOrder), args["where"].(*ent.InvocationTagWhereInput)), true - case "BazelInvocation.userLdap": - if e.complexity.BazelInvocation.UserLdap == nil { + case "BazelInvocation.username": + if e.complexity.BazelInvocation.Username == nil { break } - return e.complexity.BazelInvocation.UserLdap(childComplexity), true + return e.complexity.BazelInvocation.Username(childComplexity), true case "BazelInvocationConnection.edges": if e.complexity.BazelInvocationConnection.Edges == nil { @@ -1603,13 +1616,6 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.BazelInvocationEdge.Node(childComplexity), true - case "Build.buildURL": - if e.complexity.Build.BuildURL == nil { - break - } - - return e.complexity.Build.BuildURL(childComplexity), true - case "Build.buildUUID": if e.complexity.Build.BuildUUID == nil { break @@ -1643,6 +1649,18 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.Build.Invocations(childComplexity, args["after"].(*entgql.Cursor[int64]), args["first"].(*int), args["before"].(*entgql.Cursor[int64]), args["last"].(*int), args["orderBy"].(*ent.BazelInvocationOrder), args["where"].(*ent.BazelInvocationWhereInput)), true + case "Build.tags": + if e.complexity.Build.Tags == nil { + break + } + + args, err := ec.field_Build_tags_args(ctx, rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Build.Tags(childComplexity, args["after"].(*entgql.Cursor[int64]), args["first"].(*int), args["before"].(*entgql.Cursor[int64]), args["last"].(*int), args["orderBy"].(*ent.BuildTagOrder), args["where"].(*ent.BuildTagWhereInput)), true + case "Build.timestamp": if e.complexity.Build.Timestamp == nil { break @@ -1762,6 +1780,69 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.BuildGraphMetrics.PostInvocationSkyframeNodeCount(childComplexity), true + case "BuildTag.build": + if e.complexity.BuildTag.Build == nil { + break + } + + return e.complexity.BuildTag.Build(childComplexity), true + + case "BuildTag.id": + if e.complexity.BuildTag.ID == nil { + break + } + + return e.complexity.BuildTag.ID(childComplexity), true + + case "BuildTag.key": + if e.complexity.BuildTag.Key == nil { + break + } + + return e.complexity.BuildTag.Key(childComplexity), true + + case "BuildTag.value": + if e.complexity.BuildTag.Value == nil { + break + } + + return e.complexity.BuildTag.Value(childComplexity), true + + case "BuildTagConnection.edges": + if e.complexity.BuildTagConnection.Edges == nil { + break + } + + return e.complexity.BuildTagConnection.Edges(childComplexity), true + + case "BuildTagConnection.pageInfo": + if e.complexity.BuildTagConnection.PageInfo == nil { + break + } + + return e.complexity.BuildTagConnection.PageInfo(childComplexity), true + + case "BuildTagConnection.totalCount": + if e.complexity.BuildTagConnection.TotalCount == nil { + break + } + + return e.complexity.BuildTagConnection.TotalCount(childComplexity), true + + case "BuildTagEdge.cursor": + if e.complexity.BuildTagEdge.Cursor == nil { + break + } + + return e.complexity.BuildTagEdge.Cursor(childComplexity), true + + case "BuildTagEdge.node": + if e.complexity.BuildTagEdge.Node == nil { + break + } + + return e.complexity.BuildTagEdge.Node(childComplexity), true + case "Configuration.actions": if e.complexity.Configuration.Actions == nil { break @@ -1923,6 +2004,69 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.InstanceName.Targets(childComplexity), true + case "InvocationTag.bazelInvocation": + if e.complexity.InvocationTag.BazelInvocation == nil { + break + } + + return e.complexity.InvocationTag.BazelInvocation(childComplexity), true + + case "InvocationTag.id": + if e.complexity.InvocationTag.ID == nil { + break + } + + return e.complexity.InvocationTag.ID(childComplexity), true + + case "InvocationTag.key": + if e.complexity.InvocationTag.Key == nil { + break + } + + return e.complexity.InvocationTag.Key(childComplexity), true + + case "InvocationTag.value": + if e.complexity.InvocationTag.Value == nil { + break + } + + return e.complexity.InvocationTag.Value(childComplexity), true + + case "InvocationTagConnection.edges": + if e.complexity.InvocationTagConnection.Edges == nil { + break + } + + return e.complexity.InvocationTagConnection.Edges(childComplexity), true + + case "InvocationTagConnection.pageInfo": + if e.complexity.InvocationTagConnection.PageInfo == nil { + break + } + + return e.complexity.InvocationTagConnection.PageInfo(childComplexity), true + + case "InvocationTagConnection.totalCount": + if e.complexity.InvocationTagConnection.TotalCount == nil { + break + } + + return e.complexity.InvocationTagConnection.TotalCount(childComplexity), true + + case "InvocationTagEdge.cursor": + if e.complexity.InvocationTagEdge.Cursor == nil { + break + } + + return e.complexity.InvocationTagEdge.Cursor(childComplexity), true + + case "InvocationTagEdge.node": + if e.complexity.InvocationTagEdge.Node == nil { + break + } + + return e.complexity.InvocationTagEdge.Node(childComplexity), true + case "InvocationTarget.abortReason": if e.complexity.InvocationTarget.AbortReason == nil { break @@ -2414,20 +2558,6 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.RunnerCount.Name(childComplexity), true - case "SourceControl.action": - if e.complexity.SourceControl.Action == nil { - break - } - - return e.complexity.SourceControl.Action(childComplexity), true - - case "SourceControl.actor": - if e.complexity.SourceControl.Actor == nil { - break - } - - return e.complexity.SourceControl.Actor(childComplexity), true - case "SourceControl.bazelInvocation": if e.complexity.SourceControl.BazelInvocation == nil { break @@ -2435,19 +2565,19 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.SourceControl.BazelInvocation(childComplexity), true - case "SourceControl.commitSha": - if e.complexity.SourceControl.CommitSha == nil { + case "SourceControl.commit": + if e.complexity.SourceControl.Commit == nil { break } - return e.complexity.SourceControl.CommitSha(childComplexity), true + return e.complexity.SourceControl.Commit(childComplexity), true - case "SourceControl.eventName": - if e.complexity.SourceControl.EventName == nil { + case "SourceControl.commitURL": + if e.complexity.SourceControl.CommitURL == nil { break } - return e.complexity.SourceControl.EventName(childComplexity), true + return e.complexity.SourceControl.CommitURL(childComplexity), true case "SourceControl.id": if e.complexity.SourceControl.ID == nil { @@ -2456,33 +2586,19 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.SourceControl.ID(childComplexity), true - case "SourceControl.instanceURL": - if e.complexity.SourceControl.InstanceURL == nil { + case "SourceControl.ref": + if e.complexity.SourceControl.Ref == nil { break } - return e.complexity.SourceControl.InstanceURL(childComplexity), true + return e.complexity.SourceControl.Ref(childComplexity), true - case "SourceControl.job": - if e.complexity.SourceControl.Job == nil { + case "SourceControl.refURL": + if e.complexity.SourceControl.RefURL == nil { break } - return e.complexity.SourceControl.Job(childComplexity), true - - case "SourceControl.provider": - if e.complexity.SourceControl.Provider == nil { - break - } - - return e.complexity.SourceControl.Provider(childComplexity), true - - case "SourceControl.refs": - if e.complexity.SourceControl.Refs == nil { - break - } - - return e.complexity.SourceControl.Refs(childComplexity), true + return e.complexity.SourceControl.RefURL(childComplexity), true case "SourceControl.repo": if e.complexity.SourceControl.Repo == nil { @@ -2491,54 +2607,12 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.SourceControl.Repo(childComplexity), true - case "SourceControl.runID": - if e.complexity.SourceControl.RunID == nil { - break - } - - return e.complexity.SourceControl.RunID(childComplexity), true - - case "SourceControl.runNumber": - if e.complexity.SourceControl.RunNumber == nil { - break - } - - return e.complexity.SourceControl.RunNumber(childComplexity), true - - case "SourceControl.runnerArch": - if e.complexity.SourceControl.RunnerArch == nil { - break - } - - return e.complexity.SourceControl.RunnerArch(childComplexity), true - - case "SourceControl.runnerName": - if e.complexity.SourceControl.RunnerName == nil { - break - } - - return e.complexity.SourceControl.RunnerName(childComplexity), true - - case "SourceControl.runnerOs": - if e.complexity.SourceControl.RunnerOs == nil { - break - } - - return e.complexity.SourceControl.RunnerOs(childComplexity), true - - case "SourceControl.workflow": - if e.complexity.SourceControl.Workflow == nil { + case "SourceControl.repoURL": + if e.complexity.SourceControl.RepoURL == nil { break } - return e.complexity.SourceControl.Workflow(childComplexity), true - - case "SourceControl.workspace": - if e.complexity.SourceControl.Workspace == nil { - break - } - - return e.complexity.SourceControl.Workspace(childComplexity), true + return e.complexity.SourceControl.RepoURL(childComplexity), true case "SystemNetworkStats.bytesRecv": if e.complexity.SystemNetworkStats.BytesRecv == nil { @@ -3042,27 +3116,6 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin return e.complexity.TimingMetrics.WallTimeInMs(childComplexity), true - case "User.Email": - if e.complexity.User.Email == nil { - break - } - - return e.complexity.User.Email(childComplexity), true - - case "User.id": - if e.complexity.User.ID == nil { - break - } - - return e.complexity.User.ID(childComplexity), true - - case "User.LDAP": - if e.complexity.User.Ldap == nil { - break - } - - return e.complexity.User.Ldap(childComplexity), true - } return 0, false } @@ -3081,11 +3134,15 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { ec.unmarshalInputBazelInvocationWhereInput, ec.unmarshalInputBuildGraphMetricsWhereInput, ec.unmarshalInputBuildOrder, + ec.unmarshalInputBuildTagOrder, + ec.unmarshalInputBuildTagWhereInput, ec.unmarshalInputBuildWhereInput, ec.unmarshalInputConfigurationWhereInput, ec.unmarshalInputConnectionMetadataWhereInput, ec.unmarshalInputGarbageMetricsWhereInput, ec.unmarshalInputInstanceNameWhereInput, + ec.unmarshalInputInvocationTagOrder, + ec.unmarshalInputInvocationTagWhereInput, ec.unmarshalInputInvocationTargetOrder, ec.unmarshalInputInvocationTargetWhereInput, ec.unmarshalInputMemoryMetricsWhereInput, @@ -3491,6 +3548,149 @@ func (ec *executionContext) field_BazelInvocation_invocationTargets_argsWhere( return zeroVal, nil } +func (ec *executionContext) field_BazelInvocation_tags_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_BazelInvocation_tags_argsAfter(ctx, rawArgs) + if err != nil { + return nil, err + } + args["after"] = arg0 + arg1, err := ec.field_BazelInvocation_tags_argsFirst(ctx, rawArgs) + if err != nil { + return nil, err + } + args["first"] = arg1 + arg2, err := ec.field_BazelInvocation_tags_argsBefore(ctx, rawArgs) + if err != nil { + return nil, err + } + args["before"] = arg2 + arg3, err := ec.field_BazelInvocation_tags_argsLast(ctx, rawArgs) + if err != nil { + return nil, err + } + args["last"] = arg3 + arg4, err := ec.field_BazelInvocation_tags_argsOrderBy(ctx, rawArgs) + if err != nil { + return nil, err + } + args["orderBy"] = arg4 + arg5, err := ec.field_BazelInvocation_tags_argsWhere(ctx, rawArgs) + if err != nil { + return nil, err + } + args["where"] = arg5 + return args, nil +} +func (ec *executionContext) field_BazelInvocation_tags_argsAfter( + ctx context.Context, + rawArgs map[string]any, +) (*entgql.Cursor[int64], error) { + if _, ok := rawArgs["after"]; !ok { + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("after")) + if tmp, ok := rawArgs["after"]; ok { + return ec.unmarshalOCursor2ᚖentgoᚗioᚋcontribᚋentgqlᚐCursor(ctx, tmp) + } + + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil +} + +func (ec *executionContext) field_BazelInvocation_tags_argsFirst( + ctx context.Context, + rawArgs map[string]any, +) (*int, error) { + if _, ok := rawArgs["first"]; !ok { + var zeroVal *int + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("first")) + if tmp, ok := rawArgs["first"]; ok { + return ec.unmarshalOInt2ᚖint(ctx, tmp) + } + + var zeroVal *int + return zeroVal, nil +} + +func (ec *executionContext) field_BazelInvocation_tags_argsBefore( + ctx context.Context, + rawArgs map[string]any, +) (*entgql.Cursor[int64], error) { + if _, ok := rawArgs["before"]; !ok { + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("before")) + if tmp, ok := rawArgs["before"]; ok { + return ec.unmarshalOCursor2ᚖentgoᚗioᚋcontribᚋentgqlᚐCursor(ctx, tmp) + } + + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil +} + +func (ec *executionContext) field_BazelInvocation_tags_argsLast( + ctx context.Context, + rawArgs map[string]any, +) (*int, error) { + if _, ok := rawArgs["last"]; !ok { + var zeroVal *int + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("last")) + if tmp, ok := rawArgs["last"]; ok { + return ec.unmarshalOInt2ᚖint(ctx, tmp) + } + + var zeroVal *int + return zeroVal, nil +} + +func (ec *executionContext) field_BazelInvocation_tags_argsOrderBy( + ctx context.Context, + rawArgs map[string]any, +) (*ent.InvocationTagOrder, error) { + if _, ok := rawArgs["orderBy"]; !ok { + var zeroVal *ent.InvocationTagOrder + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("orderBy")) + if tmp, ok := rawArgs["orderBy"]; ok { + return ec.unmarshalOInvocationTagOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagOrder(ctx, tmp) + } + + var zeroVal *ent.InvocationTagOrder + return zeroVal, nil +} + +func (ec *executionContext) field_BazelInvocation_tags_argsWhere( + ctx context.Context, + rawArgs map[string]any, +) (*ent.InvocationTagWhereInput, error) { + if _, ok := rawArgs["where"]; !ok { + var zeroVal *ent.InvocationTagWhereInput + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("where")) + if tmp, ok := rawArgs["where"]; ok { + return ec.unmarshalOInvocationTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInput(ctx, tmp) + } + + var zeroVal *ent.InvocationTagWhereInput + return zeroVal, nil +} + func (ec *executionContext) field_Build_invocations_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} @@ -3634,6 +3834,149 @@ func (ec *executionContext) field_Build_invocations_argsWhere( return zeroVal, nil } +func (ec *executionContext) field_Build_tags_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Build_tags_argsAfter(ctx, rawArgs) + if err != nil { + return nil, err + } + args["after"] = arg0 + arg1, err := ec.field_Build_tags_argsFirst(ctx, rawArgs) + if err != nil { + return nil, err + } + args["first"] = arg1 + arg2, err := ec.field_Build_tags_argsBefore(ctx, rawArgs) + if err != nil { + return nil, err + } + args["before"] = arg2 + arg3, err := ec.field_Build_tags_argsLast(ctx, rawArgs) + if err != nil { + return nil, err + } + args["last"] = arg3 + arg4, err := ec.field_Build_tags_argsOrderBy(ctx, rawArgs) + if err != nil { + return nil, err + } + args["orderBy"] = arg4 + arg5, err := ec.field_Build_tags_argsWhere(ctx, rawArgs) + if err != nil { + return nil, err + } + args["where"] = arg5 + return args, nil +} +func (ec *executionContext) field_Build_tags_argsAfter( + ctx context.Context, + rawArgs map[string]any, +) (*entgql.Cursor[int64], error) { + if _, ok := rawArgs["after"]; !ok { + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("after")) + if tmp, ok := rawArgs["after"]; ok { + return ec.unmarshalOCursor2ᚖentgoᚗioᚋcontribᚋentgqlᚐCursor(ctx, tmp) + } + + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil +} + +func (ec *executionContext) field_Build_tags_argsFirst( + ctx context.Context, + rawArgs map[string]any, +) (*int, error) { + if _, ok := rawArgs["first"]; !ok { + var zeroVal *int + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("first")) + if tmp, ok := rawArgs["first"]; ok { + return ec.unmarshalOInt2ᚖint(ctx, tmp) + } + + var zeroVal *int + return zeroVal, nil +} + +func (ec *executionContext) field_Build_tags_argsBefore( + ctx context.Context, + rawArgs map[string]any, +) (*entgql.Cursor[int64], error) { + if _, ok := rawArgs["before"]; !ok { + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("before")) + if tmp, ok := rawArgs["before"]; ok { + return ec.unmarshalOCursor2ᚖentgoᚗioᚋcontribᚋentgqlᚐCursor(ctx, tmp) + } + + var zeroVal *entgql.Cursor[int64] + return zeroVal, nil +} + +func (ec *executionContext) field_Build_tags_argsLast( + ctx context.Context, + rawArgs map[string]any, +) (*int, error) { + if _, ok := rawArgs["last"]; !ok { + var zeroVal *int + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("last")) + if tmp, ok := rawArgs["last"]; ok { + return ec.unmarshalOInt2ᚖint(ctx, tmp) + } + + var zeroVal *int + return zeroVal, nil +} + +func (ec *executionContext) field_Build_tags_argsOrderBy( + ctx context.Context, + rawArgs map[string]any, +) (*ent.BuildTagOrder, error) { + if _, ok := rawArgs["orderBy"]; !ok { + var zeroVal *ent.BuildTagOrder + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("orderBy")) + if tmp, ok := rawArgs["orderBy"]; ok { + return ec.unmarshalOBuildTagOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagOrder(ctx, tmp) + } + + var zeroVal *ent.BuildTagOrder + return zeroVal, nil +} + +func (ec *executionContext) field_Build_tags_argsWhere( + ctx context.Context, + rawArgs map[string]any, +) (*ent.BuildTagWhereInput, error) { + if _, ok := rawArgs["where"]; !ok { + var zeroVal *ent.BuildTagWhereInput + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("where")) + if tmp, ok := rawArgs["where"]; ok { + return ec.unmarshalOBuildTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInput(ctx, tmp) + } + + var zeroVal *ent.BuildTagWhereInput + return zeroVal, nil +} + func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} @@ -5420,22 +5763,12 @@ func (ec *executionContext) fieldContext_Action_bazelInvocation(_ context.Contex return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -5456,6 +5789,8 @@ func (ec *executionContext) fieldContext_Action_bazelInvocation(_ context.Contex return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -5468,8 +5803,6 @@ func (ec *executionContext) fieldContext_Action_bazelInvocation(_ context.Contex return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -7620,88 +7953,6 @@ func (ec *executionContext) fieldContext_BazelInvocation_endedAt(_ context.Conte return fc, nil } -func (ec *executionContext) _BazelInvocation_changeNumber(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.ChangeNumber, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalOInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_BazelInvocation_changeNumber(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "BazelInvocation", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _BazelInvocation_patchsetNumber(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.PatchsetNumber, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(int) - fc.Result = res - return ec.marshalOInt2int(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_BazelInvocation_patchsetNumber(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "BazelInvocation", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil -} - func (ec *executionContext) _BazelInvocation_bepCompleted(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) if err != nil { @@ -7746,90 +7997,8 @@ func (ec *executionContext) fieldContext_BazelInvocation_bepCompleted(_ context. return fc, nil } -func (ec *executionContext) _BazelInvocation_stepLabel(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.StepLabel, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_BazelInvocation_stepLabel(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "BazelInvocation", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _BazelInvocation_userEmail(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_userEmail(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.UserEmail, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_BazelInvocation_userEmail(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "BazelInvocation", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _BazelInvocation_userLdap(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_userLdap(ctx, field) +func (ec *executionContext) _BazelInvocation_username(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BazelInvocation_username(ctx, field) if err != nil { return graphql.Null } @@ -7842,7 +8011,7 @@ func (ec *executionContext) _BazelInvocation_userLdap(ctx context.Context, field }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.UserLdap, nil + return obj.Username, nil }) if err != nil { ec.Error(ctx, err) @@ -7856,7 +8025,7 @@ func (ec *executionContext) _BazelInvocation_userLdap(ctx context.Context, field return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_BazelInvocation_userLdap(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_BazelInvocation_username(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "BazelInvocation", Field: field, @@ -7910,47 +8079,6 @@ func (ec *executionContext) fieldContext_BazelInvocation_hostname(_ context.Cont return fc, nil } -func (ec *executionContext) _BazelInvocation_isCiWorker(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.IsCiWorker, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(bool) - fc.Result = res - return ec.marshalOBoolean2bool(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_BazelInvocation_isCiWorker(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "BazelInvocation", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil -} - func (ec *executionContext) _BazelInvocation_numFetches(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BazelInvocation_numFetches(ctx, field) if err != nil { @@ -8332,8 +8460,6 @@ func (ec *executionContext) fieldContext_BazelInvocation_build(_ context.Context switch field.Name { case "id": return ec.fieldContext_Build_id(ctx, field) - case "buildURL": - return ec.fieldContext_Build_buildURL(ctx, field) case "buildUUID": return ec.fieldContext_Build_buildUUID(ctx, field) case "timestamp": @@ -8342,6 +8468,8 @@ func (ec *executionContext) fieldContext_BazelInvocation_build(_ context.Context return ec.fieldContext_Build_instanceName(ctx, field) case "invocations": return ec.fieldContext_Build_invocations(ctx, field) + case "tags": + return ec.fieldContext_Build_tags(ctx, field) } return nil, fmt.Errorf("no field named %q was found under type Build", field.Name) }, @@ -8404,6 +8532,69 @@ func (ec *executionContext) fieldContext_BazelInvocation_authenticatedUser(_ con return fc, nil } +func (ec *executionContext) _BazelInvocation_tags(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BazelInvocation_tags(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Tags(ctx, fc.Args["after"].(*entgql.Cursor[int64]), fc.Args["first"].(*int), fc.Args["before"].(*entgql.Cursor[int64]), fc.Args["last"].(*int), fc.Args["orderBy"].(*ent.InvocationTagOrder), fc.Args["where"].(*ent.InvocationTagWhereInput)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*ent.InvocationTagConnection) + fc.Result = res + return ec.marshalNInvocationTagConnection2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagConnection(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BazelInvocation_tags(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BazelInvocation", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "edges": + return ec.fieldContext_InvocationTagConnection_edges(ctx, field) + case "pageInfo": + return ec.fieldContext_InvocationTagConnection_pageInfo(ctx, field) + case "totalCount": + return ec.fieldContext_InvocationTagConnection_totalCount(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type InvocationTagConnection", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_BazelInvocation_tags_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + func (ec *executionContext) _BazelInvocation_connectionMetadata(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) if err != nil { @@ -8744,9 +8935,9 @@ func (ec *executionContext) _BazelInvocation_sourceControl(ctx context.Context, if resTmp == nil { return graphql.Null } - res := resTmp.(*ent.SourceControl) + res := resTmp.([]*ent.SourceControl) fc.Result = res - return ec.marshalOSourceControl2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControl(ctx, field.Selections, res) + return ec.marshalOSourceControl2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControlᚄ(ctx, field.Selections, res) } func (ec *executionContext) fieldContext_BazelInvocation_sourceControl(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { @@ -8759,38 +8950,18 @@ func (ec *executionContext) fieldContext_BazelInvocation_sourceControl(_ context switch field.Name { case "id": return ec.fieldContext_SourceControl_id(ctx, field) - case "provider": - return ec.fieldContext_SourceControl_provider(ctx, field) - case "instanceURL": - return ec.fieldContext_SourceControl_instanceURL(ctx, field) case "repo": return ec.fieldContext_SourceControl_repo(ctx, field) - case "refs": - return ec.fieldContext_SourceControl_refs(ctx, field) - case "commitSha": - return ec.fieldContext_SourceControl_commitSha(ctx, field) - case "actor": - return ec.fieldContext_SourceControl_actor(ctx, field) - case "eventName": - return ec.fieldContext_SourceControl_eventName(ctx, field) - case "workflow": - return ec.fieldContext_SourceControl_workflow(ctx, field) - case "runID": - return ec.fieldContext_SourceControl_runID(ctx, field) - case "runNumber": - return ec.fieldContext_SourceControl_runNumber(ctx, field) - case "job": - return ec.fieldContext_SourceControl_job(ctx, field) - case "action": - return ec.fieldContext_SourceControl_action(ctx, field) - case "runnerName": - return ec.fieldContext_SourceControl_runnerName(ctx, field) - case "runnerArch": - return ec.fieldContext_SourceControl_runnerArch(ctx, field) - case "runnerOs": - return ec.fieldContext_SourceControl_runnerOs(ctx, field) - case "workspace": - return ec.fieldContext_SourceControl_workspace(ctx, field) + case "repoURL": + return ec.fieldContext_SourceControl_repoURL(ctx, field) + case "ref": + return ec.fieldContext_SourceControl_ref(ctx, field) + case "refURL": + return ec.fieldContext_SourceControl_refURL(ctx, field) + case "commit": + return ec.fieldContext_SourceControl_commit(ctx, field) + case "commitURL": + return ec.fieldContext_SourceControl_commitURL(ctx, field) case "bazelInvocation": return ec.fieldContext_SourceControl_bazelInvocation(ctx, field) } @@ -8800,55 +8971,6 @@ func (ec *executionContext) fieldContext_BazelInvocation_sourceControl(_ context return fc, nil } -func (ec *executionContext) _BazelInvocation_user(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_BazelInvocation_user(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.BazelInvocation().User(rctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*model.User) - fc.Result = res - return ec.marshalOUser2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐUser(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_BazelInvocation_user(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "BazelInvocation", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_User_id(ctx, field) - case "Email": - return ec.fieldContext_User_Email(ctx, field) - case "LDAP": - return ec.fieldContext_User_LDAP(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type User", field.Name) - }, - } - return fc, nil -} - func (ec *executionContext) _BazelInvocation_profile(ctx context.Context, field graphql.CollectedField, obj *ent.BazelInvocation) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BazelInvocation_profile(ctx, field) if err != nil { @@ -9091,22 +9213,12 @@ func (ec *executionContext) fieldContext_BazelInvocationEdge_node(_ context.Cont return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -9127,6 +9239,8 @@ func (ec *executionContext) fieldContext_BazelInvocationEdge_node(_ context.Cont return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -9139,8 +9253,6 @@ func (ec *executionContext) fieldContext_BazelInvocationEdge_node(_ context.Cont return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -9238,8 +9350,215 @@ func (ec *executionContext) fieldContext_Build_id(_ context.Context, field graph return fc, nil } -func (ec *executionContext) _Build_buildURL(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Build_buildURL(ctx, field) +func (ec *executionContext) _Build_buildUUID(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Build_buildUUID(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.BuildUUID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(uuid.UUID) + fc.Result = res + return ec.marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Build_buildUUID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Build", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type UUID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Build_timestamp(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Build_timestamp(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Timestamp, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(time.Time) + fc.Result = res + return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Build_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Build", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Time does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Build_instanceName(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Build_instanceName(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.InstanceName(ctx) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*ent.InstanceName) + fc.Result = res + return ec.marshalNInstanceName2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInstanceName(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Build_instanceName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Build", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_InstanceName_id(ctx, field) + case "name": + return ec.fieldContext_InstanceName_name(ctx, field) + case "bazelInvocations": + return ec.fieldContext_InstanceName_bazelInvocations(ctx, field) + case "builds": + return ec.fieldContext_InstanceName_builds(ctx, field) + case "targets": + return ec.fieldContext_InstanceName_targets(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type InstanceName", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _Build_invocations(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Build_invocations(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Invocations(ctx, fc.Args["after"].(*entgql.Cursor[int64]), fc.Args["first"].(*int), fc.Args["before"].(*entgql.Cursor[int64]), fc.Args["last"].(*int), fc.Args["orderBy"].(*ent.BazelInvocationOrder), fc.Args["where"].(*ent.BazelInvocationWhereInput)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*ent.BazelInvocationConnection) + fc.Result = res + return ec.marshalNBazelInvocationConnection2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBazelInvocationConnection(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Build_invocations(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Build", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "edges": + return ec.fieldContext_BazelInvocationConnection_edges(ctx, field) + case "pageInfo": + return ec.fieldContext_BazelInvocationConnection_pageInfo(ctx, field) + case "totalCount": + return ec.fieldContext_BazelInvocationConnection_totalCount(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type BazelInvocationConnection", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Build_invocations_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Build_tags(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Build_tags(ctx, field) if err != nil { return graphql.Null } @@ -9252,7 +9571,7 @@ func (ec *executionContext) _Build_buildURL(ctx context.Context, field graphql.C }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.BuildURL, nil + return obj.Tags(ctx, fc.Args["after"].(*entgql.Cursor[int64]), fc.Args["first"].(*int), fc.Args["before"].(*entgql.Cursor[int64]), fc.Args["last"].(*int), fc.Args["orderBy"].(*ent.BuildTagOrder), fc.Args["where"].(*ent.BuildTagWhereInput)) }) if err != nil { ec.Error(ctx, err) @@ -9264,200 +9583,12 @@ func (ec *executionContext) _Build_buildURL(ctx context.Context, field graphql.C } return graphql.Null } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_Build_buildURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Build", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _Build_buildUUID(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Build_buildUUID(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.BuildUUID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(uuid.UUID) - fc.Result = res - return ec.marshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_Build_buildUUID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Build", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type UUID does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _Build_timestamp(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Build_timestamp(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Timestamp, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(time.Time) - fc.Result = res - return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_Build_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Build", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Time does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _Build_instanceName(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Build_instanceName(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.InstanceName(ctx) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ent.InstanceName) - fc.Result = res - return ec.marshalNInstanceName2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInstanceName(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_Build_instanceName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Build", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_InstanceName_id(ctx, field) - case "name": - return ec.fieldContext_InstanceName_name(ctx, field) - case "bazelInvocations": - return ec.fieldContext_InstanceName_bazelInvocations(ctx, field) - case "builds": - return ec.fieldContext_InstanceName_builds(ctx, field) - case "targets": - return ec.fieldContext_InstanceName_targets(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type InstanceName", field.Name) - }, - } - return fc, nil -} - -func (ec *executionContext) _Build_invocations(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Build_invocations(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Invocations(ctx, fc.Args["after"].(*entgql.Cursor[int64]), fc.Args["first"].(*int), fc.Args["before"].(*entgql.Cursor[int64]), fc.Args["last"].(*int), fc.Args["orderBy"].(*ent.BazelInvocationOrder), fc.Args["where"].(*ent.BazelInvocationWhereInput)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(*ent.BazelInvocationConnection) + res := resTmp.(*ent.BuildTagConnection) fc.Result = res - return ec.marshalNBazelInvocationConnection2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBazelInvocationConnection(ctx, field.Selections, res) + return ec.marshalNBuildTagConnection2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagConnection(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Build_invocations(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Build_tags(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Build", Field: field, @@ -9466,13 +9597,13 @@ func (ec *executionContext) fieldContext_Build_invocations(ctx context.Context, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "edges": - return ec.fieldContext_BazelInvocationConnection_edges(ctx, field) + return ec.fieldContext_BuildTagConnection_edges(ctx, field) case "pageInfo": - return ec.fieldContext_BazelInvocationConnection_pageInfo(ctx, field) + return ec.fieldContext_BuildTagConnection_pageInfo(ctx, field) case "totalCount": - return ec.fieldContext_BazelInvocationConnection_totalCount(ctx, field) + return ec.fieldContext_BuildTagConnection_totalCount(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type BazelInvocationConnection", field.Name) + return nil, fmt.Errorf("no field named %q was found under type BuildTagConnection", field.Name) }, } defer func() { @@ -9482,7 +9613,7 @@ func (ec *executionContext) fieldContext_Build_invocations(ctx context.Context, } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Build_invocations_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Build_tags_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } @@ -9672,8 +9803,6 @@ func (ec *executionContext) fieldContext_BuildEdge_node(_ context.Context, field switch field.Name { case "id": return ec.fieldContext_Build_id(ctx, field) - case "buildURL": - return ec.fieldContext_Build_buildURL(ctx, field) case "buildUUID": return ec.fieldContext_Build_buildUUID(ctx, field) case "timestamp": @@ -9682,6 +9811,8 @@ func (ec *executionContext) fieldContext_BuildEdge_node(_ context.Context, field return ec.fieldContext_Build_instanceName(ctx, field) case "invocations": return ec.fieldContext_Build_invocations(ctx, field) + case "tags": + return ec.fieldContext_Build_tags(ctx, field) } return nil, fmt.Errorf("no field named %q was found under type Build", field.Name) }, @@ -10207,6 +10338,436 @@ func (ec *executionContext) fieldContext_BuildGraphMetrics_metrics(_ context.Con return fc, nil } +func (ec *executionContext) _BuildTag_id(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTag_id(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.BuildTag().ID(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNID2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTag_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTag", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTag_key(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTag_key(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Key, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTag_key(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTag", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTag_value(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTag_value(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Value, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTag_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTag", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTag_build(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTag_build(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Build(ctx) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*ent.Build) + fc.Result = res + return ec.marshalNBuild2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuild(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTag_build(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTag", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Build_id(ctx, field) + case "buildUUID": + return ec.fieldContext_Build_buildUUID(ctx, field) + case "timestamp": + return ec.fieldContext_Build_timestamp(ctx, field) + case "instanceName": + return ec.fieldContext_Build_instanceName(ctx, field) + case "invocations": + return ec.fieldContext_Build_invocations(ctx, field) + case "tags": + return ec.fieldContext_Build_tags(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Build", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTagConnection_edges(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTagConnection) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTagConnection_edges(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Edges, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]*ent.BuildTagEdge) + fc.Result = res + return ec.marshalOBuildTagEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagEdge(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTagConnection_edges(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTagConnection", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "node": + return ec.fieldContext_BuildTagEdge_node(ctx, field) + case "cursor": + return ec.fieldContext_BuildTagEdge_cursor(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type BuildTagEdge", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTagConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTagConnection) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTagConnection_pageInfo(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.PageInfo, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(entgql.PageInfo[int64]) + fc.Result = res + return ec.marshalNPageInfo2entgoᚗioᚋcontribᚋentgqlᚐPageInfo(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTagConnection_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTagConnection", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "hasNextPage": + return ec.fieldContext_PageInfo_hasNextPage(ctx, field) + case "hasPreviousPage": + return ec.fieldContext_PageInfo_hasPreviousPage(ctx, field) + case "startCursor": + return ec.fieldContext_PageInfo_startCursor(ctx, field) + case "endCursor": + return ec.fieldContext_PageInfo_endCursor(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type PageInfo", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTagConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTagConnection) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTagConnection_totalCount(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.TotalCount, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(int) + fc.Result = res + return ec.marshalNInt2int(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTagConnection_totalCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTagConnection", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTagEdge_node(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTagEdge) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTagEdge_node(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Node, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*ent.BuildTag) + fc.Result = res + return ec.marshalOBuildTag2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTag(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTagEdge_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTagEdge", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_BuildTag_id(ctx, field) + case "key": + return ec.fieldContext_BuildTag_key(ctx, field) + case "value": + return ec.fieldContext_BuildTag_value(ctx, field) + case "build": + return ec.fieldContext_BuildTag_build(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type BuildTag", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _BuildTagEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *ent.BuildTagEdge) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_BuildTagEdge_cursor(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Cursor, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(entgql.Cursor[int64]) + fc.Result = res + return ec.marshalNCursor2entgoᚗioᚋcontribᚋentgqlᚐCursor(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_BuildTagEdge_cursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "BuildTagEdge", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Cursor does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Configuration_id(ctx context.Context, field graphql.CollectedField, obj *ent.Configuration) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Configuration_id(ctx, field) if err != nil { @@ -10547,22 +11108,12 @@ func (ec *executionContext) fieldContext_Configuration_bazelInvocation(_ context return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -10583,6 +11134,8 @@ func (ec *executionContext) fieldContext_Configuration_bazelInvocation(_ context return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -10595,8 +11148,6 @@ func (ec *executionContext) fieldContext_Configuration_bazelInvocation(_ context return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -10887,22 +11438,418 @@ func (ec *executionContext) fieldContext_ConnectionMetadata_bazelInvocation(_ co return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) + case "hostname": + return ec.fieldContext_BazelInvocation_hostname(ctx, field) + case "numFetches": + return ec.fieldContext_BazelInvocation_numFetches(ctx, field) + case "bazelVersion": + return ec.fieldContext_BazelInvocation_bazelVersion(ctx, field) + case "exitCodeName": + return ec.fieldContext_BazelInvocation_exitCodeName(ctx, field) + case "exitCodeCode": + return ec.fieldContext_BazelInvocation_exitCodeCode(ctx, field) + case "canonicalCommandLine": + return ec.fieldContext_BazelInvocation_canonicalCommandLine(ctx, field) + case "originalCommandLine": + return ec.fieldContext_BazelInvocation_originalCommandLine(ctx, field) + case "optionsParsed": + return ec.fieldContext_BazelInvocation_optionsParsed(ctx, field) + case "instanceName": + return ec.fieldContext_BazelInvocation_instanceName(ctx, field) + case "build": + return ec.fieldContext_BazelInvocation_build(ctx, field) + case "authenticatedUser": + return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) + case "connectionMetadata": + return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) + case "configurations": + return ec.fieldContext_BazelInvocation_configurations(ctx, field) + case "actions": + return ec.fieldContext_BazelInvocation_actions(ctx, field) + case "metrics": + return ec.fieldContext_BazelInvocation_metrics(ctx, field) + case "invocationTargets": + return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) + case "sourceControl": + return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) + case "profile": + return ec.fieldContext_BazelInvocation_profile(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type BazelInvocation", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _ConnectionMetadata_timeSinceLastConnectionMillis(ctx context.Context, field graphql.CollectedField, obj *ent.ConnectionMetadata) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_ConnectionMetadata_timeSinceLastConnectionMillis(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.ConnectionMetadata().TimeSinceLastConnectionMillis(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(int) + fc.Result = res + return ec.marshalNInt2int(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_ConnectionMetadata_timeSinceLastConnectionMillis(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "ConnectionMetadata", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _GarbageMetrics_id(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_GarbageMetrics_id(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.GarbageMetrics().ID(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNID2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_GarbageMetrics_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "GarbageMetrics", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _GarbageMetrics_type(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_GarbageMetrics_type(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalOString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_GarbageMetrics_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "GarbageMetrics", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _GarbageMetrics_garbageCollected(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_GarbageMetrics_garbageCollected(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.GarbageCollected, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int64) + fc.Result = res + return ec.marshalOInt2int64(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_GarbageMetrics_garbageCollected(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "GarbageMetrics", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _GarbageMetrics_memoryMetrics(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_GarbageMetrics_memoryMetrics(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.MemoryMetrics(ctx) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*ent.MemoryMetrics) + fc.Result = res + return ec.marshalOMemoryMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetrics(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_GarbageMetrics_memoryMetrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "GarbageMetrics", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_MemoryMetrics_id(ctx, field) + case "peakPostGcHeapSize": + return ec.fieldContext_MemoryMetrics_peakPostGcHeapSize(ctx, field) + case "usedHeapSizePostBuild": + return ec.fieldContext_MemoryMetrics_usedHeapSizePostBuild(ctx, field) + case "peakPostGcTenuredSpaceHeapSize": + return ec.fieldContext_MemoryMetrics_peakPostGcTenuredSpaceHeapSize(ctx, field) + case "metrics": + return ec.fieldContext_MemoryMetrics_metrics(ctx, field) + case "garbageMetrics": + return ec.fieldContext_MemoryMetrics_garbageMetrics(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MemoryMetrics", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _InstanceName_id(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InstanceName_id(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.InstanceName().ID(rctx, obj) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNID2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_InstanceName_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "InstanceName", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _InstanceName_name(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InstanceName_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_InstanceName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "InstanceName", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _InstanceName_bazelInvocations(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InstanceName_bazelInvocations(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.BazelInvocations(ctx) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]*ent.BazelInvocation) + fc.Result = res + return ec.marshalOBazelInvocation2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBazelInvocationᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_InstanceName_bazelInvocations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "InstanceName", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_BazelInvocation_id(ctx, field) + case "invocationID": + return ec.fieldContext_BazelInvocation_invocationID(ctx, field) + case "startedAt": + return ec.fieldContext_BazelInvocation_startedAt(ctx, field) + case "endedAt": + return ec.fieldContext_BazelInvocation_endedAt(ctx, field) + case "bepCompleted": + return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -10923,6 +11870,8 @@ func (ec *executionContext) fieldContext_ConnectionMetadata_bazelInvocation(_ co return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -10935,8 +11884,6 @@ func (ec *executionContext) fieldContext_ConnectionMetadata_bazelInvocation(_ co return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -10946,8 +11893,8 @@ func (ec *executionContext) fieldContext_ConnectionMetadata_bazelInvocation(_ co return fc, nil } -func (ec *executionContext) _ConnectionMetadata_timeSinceLastConnectionMillis(ctx context.Context, field graphql.CollectedField, obj *ent.ConnectionMetadata) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_ConnectionMetadata_timeSinceLastConnectionMillis(ctx, field) +func (ec *executionContext) _InstanceName_builds(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InstanceName_builds(ctx, field) if err != nil { return graphql.Null } @@ -10960,38 +11907,108 @@ func (ec *executionContext) _ConnectionMetadata_timeSinceLastConnectionMillis(ct }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.ConnectionMetadata().TimeSinceLastConnectionMillis(rctx, obj) + return obj.Builds(ctx) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") + return graphql.Null + } + res := resTmp.([]*ent.Build) + fc.Result = res + return ec.marshalOBuild2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_InstanceName_builds(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "InstanceName", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Build_id(ctx, field) + case "buildUUID": + return ec.fieldContext_Build_buildUUID(ctx, field) + case "timestamp": + return ec.fieldContext_Build_timestamp(ctx, field) + case "instanceName": + return ec.fieldContext_Build_instanceName(ctx, field) + case "invocations": + return ec.fieldContext_Build_invocations(ctx, field) + case "tags": + return ec.fieldContext_Build_tags(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Build", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _InstanceName_targets(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InstanceName_targets(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Targets(ctx) + }) + if err != nil { + ec.Error(ctx, err) return graphql.Null } - res := resTmp.(int) + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]*ent.Target) fc.Result = res - return ec.marshalNInt2int(ctx, field.Selections, res) + return ec.marshalOTarget2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐTargetᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_ConnectionMetadata_timeSinceLastConnectionMillis(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InstanceName_targets(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "ConnectionMetadata", + Object: "InstanceName", Field: field, IsMethod: true, - IsResolver: true, + IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") + switch field.Name { + case "id": + return ec.fieldContext_Target_id(ctx, field) + case "label": + return ec.fieldContext_Target_label(ctx, field) + case "aspect": + return ec.fieldContext_Target_aspect(ctx, field) + case "targetKind": + return ec.fieldContext_Target_targetKind(ctx, field) + case "instanceName": + return ec.fieldContext_Target_instanceName(ctx, field) + case "invocationTargets": + return ec.fieldContext_Target_invocationTargets(ctx, field) + case "testTarget": + return ec.fieldContext_Target_testTarget(ctx, field) + case "invocationTargetsTotalDurationMillis": + return ec.fieldContext_Target_invocationTargetsTotalDurationMillis(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Target", field.Name) }, } return fc, nil } -func (ec *executionContext) _GarbageMetrics_id(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_GarbageMetrics_id(ctx, field) +func (ec *executionContext) _InvocationTag_id(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTag_id(ctx, field) if err != nil { return graphql.Null } @@ -11004,7 +12021,7 @@ func (ec *executionContext) _GarbageMetrics_id(ctx context.Context, field graphq }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.GarbageMetrics().ID(rctx, obj) + return ec.resolvers.InvocationTag().ID(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -11021,9 +12038,9 @@ func (ec *executionContext) _GarbageMetrics_id(ctx context.Context, field graphq return ec.marshalNID2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_GarbageMetrics_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTag_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "GarbageMetrics", + Object: "InvocationTag", Field: field, IsMethod: true, IsResolver: true, @@ -11034,8 +12051,8 @@ func (ec *executionContext) fieldContext_GarbageMetrics_id(_ context.Context, fi return fc, nil } -func (ec *executionContext) _GarbageMetrics_type(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_GarbageMetrics_type(ctx, field) +func (ec *executionContext) _InvocationTag_key(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTag_key(ctx, field) if err != nil { return graphql.Null } @@ -11048,23 +12065,26 @@ func (ec *executionContext) _GarbageMetrics_type(ctx context.Context, field grap }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Type, nil + return obj.Key, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } res := resTmp.(string) fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_GarbageMetrics_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTag_key(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "GarbageMetrics", + Object: "InvocationTag", Field: field, IsMethod: false, IsResolver: false, @@ -11075,8 +12095,8 @@ func (ec *executionContext) fieldContext_GarbageMetrics_type(_ context.Context, return fc, nil } -func (ec *executionContext) _GarbageMetrics_garbageCollected(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_GarbageMetrics_garbageCollected(ctx, field) +func (ec *executionContext) _InvocationTag_value(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTag_value(ctx, field) if err != nil { return graphql.Null } @@ -11089,35 +12109,38 @@ func (ec *executionContext) _GarbageMetrics_garbageCollected(ctx context.Context }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.GarbageCollected, nil + return obj.Value, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(int64) + res := resTmp.(string) fc.Result = res - return ec.marshalOInt2int64(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_GarbageMetrics_garbageCollected(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTag_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "GarbageMetrics", + Object: "InvocationTag", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _GarbageMetrics_memoryMetrics(ctx context.Context, field graphql.CollectedField, obj *ent.GarbageMetrics) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_GarbageMetrics_memoryMetrics(ctx, field) +func (ec *executionContext) _InvocationTag_bazelInvocation(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTag) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTag_bazelInvocation(ctx, field) if err != nil { return graphql.Null } @@ -11130,49 +12153,90 @@ func (ec *executionContext) _GarbageMetrics_memoryMetrics(ctx context.Context, f }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.MemoryMetrics(ctx) + return obj.BazelInvocation(ctx) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*ent.MemoryMetrics) + res := resTmp.(*ent.BazelInvocation) fc.Result = res - return ec.marshalOMemoryMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetrics(ctx, field.Selections, res) + return ec.marshalNBazelInvocation2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBazelInvocation(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_GarbageMetrics_memoryMetrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTag_bazelInvocation(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "GarbageMetrics", + Object: "InvocationTag", Field: field, IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "id": - return ec.fieldContext_MemoryMetrics_id(ctx, field) - case "peakPostGcHeapSize": - return ec.fieldContext_MemoryMetrics_peakPostGcHeapSize(ctx, field) - case "usedHeapSizePostBuild": - return ec.fieldContext_MemoryMetrics_usedHeapSizePostBuild(ctx, field) - case "peakPostGcTenuredSpaceHeapSize": - return ec.fieldContext_MemoryMetrics_peakPostGcTenuredSpaceHeapSize(ctx, field) + return ec.fieldContext_BazelInvocation_id(ctx, field) + case "invocationID": + return ec.fieldContext_BazelInvocation_invocationID(ctx, field) + case "startedAt": + return ec.fieldContext_BazelInvocation_startedAt(ctx, field) + case "endedAt": + return ec.fieldContext_BazelInvocation_endedAt(ctx, field) + case "bepCompleted": + return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) + case "hostname": + return ec.fieldContext_BazelInvocation_hostname(ctx, field) + case "numFetches": + return ec.fieldContext_BazelInvocation_numFetches(ctx, field) + case "bazelVersion": + return ec.fieldContext_BazelInvocation_bazelVersion(ctx, field) + case "exitCodeName": + return ec.fieldContext_BazelInvocation_exitCodeName(ctx, field) + case "exitCodeCode": + return ec.fieldContext_BazelInvocation_exitCodeCode(ctx, field) + case "canonicalCommandLine": + return ec.fieldContext_BazelInvocation_canonicalCommandLine(ctx, field) + case "originalCommandLine": + return ec.fieldContext_BazelInvocation_originalCommandLine(ctx, field) + case "optionsParsed": + return ec.fieldContext_BazelInvocation_optionsParsed(ctx, field) + case "instanceName": + return ec.fieldContext_BazelInvocation_instanceName(ctx, field) + case "build": + return ec.fieldContext_BazelInvocation_build(ctx, field) + case "authenticatedUser": + return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) + case "connectionMetadata": + return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) + case "configurations": + return ec.fieldContext_BazelInvocation_configurations(ctx, field) + case "actions": + return ec.fieldContext_BazelInvocation_actions(ctx, field) case "metrics": - return ec.fieldContext_MemoryMetrics_metrics(ctx, field) - case "garbageMetrics": - return ec.fieldContext_MemoryMetrics_garbageMetrics(ctx, field) + return ec.fieldContext_BazelInvocation_metrics(ctx, field) + case "invocationTargets": + return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) + case "sourceControl": + return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) + case "profile": + return ec.fieldContext_BazelInvocation_profile(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type MemoryMetrics", field.Name) + return nil, fmt.Errorf("no field named %q was found under type BazelInvocation", field.Name) }, } return fc, nil } -func (ec *executionContext) _InstanceName_id(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_InstanceName_id(ctx, field) +func (ec *executionContext) _InvocationTagConnection_edges(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTagConnection) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTagConnection_edges(ctx, field) if err != nil { return graphql.Null } @@ -11185,38 +12249,41 @@ func (ec *executionContext) _InstanceName_id(ctx context.Context, field graphql. }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.InstanceName().ID(rctx, obj) + return obj.Edges, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(string) + res := resTmp.([]*ent.InvocationTagEdge) fc.Result = res - return ec.marshalNID2string(ctx, field.Selections, res) + return ec.marshalOInvocationTagEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagEdge(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_InstanceName_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTagConnection_edges(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "InstanceName", + Object: "InvocationTagConnection", Field: field, - IsMethod: true, - IsResolver: true, + IsMethod: false, + IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + switch field.Name { + case "node": + return ec.fieldContext_InvocationTagEdge_node(ctx, field) + case "cursor": + return ec.fieldContext_InvocationTagEdge_cursor(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type InvocationTagEdge", field.Name) }, } return fc, nil } -func (ec *executionContext) _InstanceName_name(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_InstanceName_name(ctx, field) +func (ec *executionContext) _InvocationTagConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTagConnection) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTagConnection_pageInfo(ctx, field) if err != nil { return graphql.Null } @@ -11229,7 +12296,7 @@ func (ec *executionContext) _InstanceName_name(ctx context.Context, field graphq }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Name, nil + return obj.PageInfo, nil }) if err != nil { ec.Error(ctx, err) @@ -11241,26 +12308,36 @@ func (ec *executionContext) _InstanceName_name(ctx context.Context, field graphq } return graphql.Null } - res := resTmp.(string) + res := resTmp.(entgql.PageInfo[int64]) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNPageInfo2entgoᚗioᚋcontribᚋentgqlᚐPageInfo(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_InstanceName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTagConnection_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "InstanceName", + Object: "InvocationTagConnection", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + switch field.Name { + case "hasNextPage": + return ec.fieldContext_PageInfo_hasNextPage(ctx, field) + case "hasPreviousPage": + return ec.fieldContext_PageInfo_hasPreviousPage(ctx, field) + case "startCursor": + return ec.fieldContext_PageInfo_startCursor(ctx, field) + case "endCursor": + return ec.fieldContext_PageInfo_endCursor(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type PageInfo", field.Name) }, } return fc, nil } -func (ec *executionContext) _InstanceName_bazelInvocations(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_InstanceName_bazelInvocations(ctx, field) +func (ec *executionContext) _InvocationTagConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTagConnection) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTagConnection_totalCount(ctx, field) if err != nil { return graphql.Null } @@ -11273,97 +12350,38 @@ func (ec *executionContext) _InstanceName_bazelInvocations(ctx context.Context, }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.BazelInvocations(ctx) + return obj.TotalCount, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.([]*ent.BazelInvocation) + res := resTmp.(int) fc.Result = res - return ec.marshalOBazelInvocation2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBazelInvocationᚄ(ctx, field.Selections, res) + return ec.marshalNInt2int(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_InstanceName_bazelInvocations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTagConnection_totalCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "InstanceName", + Object: "InvocationTagConnection", Field: field, - IsMethod: true, + IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_BazelInvocation_id(ctx, field) - case "invocationID": - return ec.fieldContext_BazelInvocation_invocationID(ctx, field) - case "startedAt": - return ec.fieldContext_BazelInvocation_startedAt(ctx, field) - case "endedAt": - return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) - case "bepCompleted": - return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) - case "hostname": - return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) - case "numFetches": - return ec.fieldContext_BazelInvocation_numFetches(ctx, field) - case "bazelVersion": - return ec.fieldContext_BazelInvocation_bazelVersion(ctx, field) - case "exitCodeName": - return ec.fieldContext_BazelInvocation_exitCodeName(ctx, field) - case "exitCodeCode": - return ec.fieldContext_BazelInvocation_exitCodeCode(ctx, field) - case "canonicalCommandLine": - return ec.fieldContext_BazelInvocation_canonicalCommandLine(ctx, field) - case "originalCommandLine": - return ec.fieldContext_BazelInvocation_originalCommandLine(ctx, field) - case "optionsParsed": - return ec.fieldContext_BazelInvocation_optionsParsed(ctx, field) - case "instanceName": - return ec.fieldContext_BazelInvocation_instanceName(ctx, field) - case "build": - return ec.fieldContext_BazelInvocation_build(ctx, field) - case "authenticatedUser": - return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) - case "connectionMetadata": - return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) - case "configurations": - return ec.fieldContext_BazelInvocation_configurations(ctx, field) - case "actions": - return ec.fieldContext_BazelInvocation_actions(ctx, field) - case "metrics": - return ec.fieldContext_BazelInvocation_metrics(ctx, field) - case "invocationTargets": - return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) - case "sourceControl": - return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) - case "profile": - return ec.fieldContext_BazelInvocation_profile(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type BazelInvocation", field.Name) + return nil, errors.New("field of type Int does not have child fields") }, } return fc, nil } -func (ec *executionContext) _InstanceName_builds(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_InstanceName_builds(ctx, field) +func (ec *executionContext) _InvocationTagEdge_node(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTagEdge) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTagEdge_node(ctx, field) if err != nil { return graphql.Null } @@ -11376,7 +12394,7 @@ func (ec *executionContext) _InstanceName_builds(ctx context.Context, field grap }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Builds(ctx) + return obj.Node, nil }) if err != nil { ec.Error(ctx, err) @@ -11385,40 +12403,36 @@ func (ec *executionContext) _InstanceName_builds(ctx context.Context, field grap if resTmp == nil { return graphql.Null } - res := resTmp.([]*ent.Build) + res := resTmp.(*ent.InvocationTag) fc.Result = res - return ec.marshalOBuild2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildᚄ(ctx, field.Selections, res) + return ec.marshalOInvocationTag2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTag(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_InstanceName_builds(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTagEdge_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "InstanceName", + Object: "InvocationTagEdge", Field: field, - IsMethod: true, + IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "id": - return ec.fieldContext_Build_id(ctx, field) - case "buildURL": - return ec.fieldContext_Build_buildURL(ctx, field) - case "buildUUID": - return ec.fieldContext_Build_buildUUID(ctx, field) - case "timestamp": - return ec.fieldContext_Build_timestamp(ctx, field) - case "instanceName": - return ec.fieldContext_Build_instanceName(ctx, field) - case "invocations": - return ec.fieldContext_Build_invocations(ctx, field) + return ec.fieldContext_InvocationTag_id(ctx, field) + case "key": + return ec.fieldContext_InvocationTag_key(ctx, field) + case "value": + return ec.fieldContext_InvocationTag_value(ctx, field) + case "bazelInvocation": + return ec.fieldContext_InvocationTag_bazelInvocation(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type Build", field.Name) + return nil, fmt.Errorf("no field named %q was found under type InvocationTag", field.Name) }, } return fc, nil } -func (ec *executionContext) _InstanceName_targets(ctx context.Context, field graphql.CollectedField, obj *ent.InstanceName) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_InstanceName_targets(ctx, field) +func (ec *executionContext) _InvocationTagEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *ent.InvocationTagEdge) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_InvocationTagEdge_cursor(ctx, field) if err != nil { return graphql.Null } @@ -11431,46 +12445,31 @@ func (ec *executionContext) _InstanceName_targets(ctx context.Context, field gra }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Targets(ctx) + return obj.Cursor, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.([]*ent.Target) + res := resTmp.(entgql.Cursor[int64]) fc.Result = res - return ec.marshalOTarget2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐTargetᚄ(ctx, field.Selections, res) + return ec.marshalNCursor2entgoᚗioᚋcontribᚋentgqlᚐCursor(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_InstanceName_targets(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_InvocationTagEdge_cursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "InstanceName", + Object: "InvocationTagEdge", Field: field, - IsMethod: true, + IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Target_id(ctx, field) - case "label": - return ec.fieldContext_Target_label(ctx, field) - case "aspect": - return ec.fieldContext_Target_aspect(ctx, field) - case "targetKind": - return ec.fieldContext_Target_targetKind(ctx, field) - case "instanceName": - return ec.fieldContext_Target_instanceName(ctx, field) - case "invocationTargets": - return ec.fieldContext_Target_invocationTargets(ctx, field) - case "testTarget": - return ec.fieldContext_Target_testTarget(ctx, field) - case "invocationTargetsTotalDurationMillis": - return ec.fieldContext_Target_invocationTargetsTotalDurationMillis(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Target", field.Name) + return nil, errors.New("field of type Cursor does not have child fields") }, } return fc, nil @@ -11860,22 +12859,12 @@ func (ec *executionContext) fieldContext_InvocationTarget_bazelInvocation(_ cont return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -11896,6 +12885,8 @@ func (ec *executionContext) fieldContext_InvocationTarget_bazelInvocation(_ cont return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -11908,8 +12899,6 @@ func (ec *executionContext) fieldContext_InvocationTarget_bazelInvocation(_ cont return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -12734,22 +13723,12 @@ func (ec *executionContext) fieldContext_Metrics_bazelInvocation(_ context.Conte return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -12770,6 +13749,8 @@ func (ec *executionContext) fieldContext_Metrics_bazelInvocation(_ context.Conte return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -12782,8 +13763,6 @@ func (ec *executionContext) fieldContext_Metrics_bazelInvocation(_ context.Conte return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -14411,22 +15390,12 @@ func (ec *executionContext) fieldContext_Query_getBazelInvocation(ctx context.Co return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -14447,6 +15416,8 @@ func (ec *executionContext) fieldContext_Query_getBazelInvocation(ctx context.Co return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -14459,8 +15430,6 @@ func (ec *executionContext) fieldContext_Query_getBazelInvocation(ctx context.Co return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -14519,8 +15488,6 @@ func (ec *executionContext) fieldContext_Query_getBuild(ctx context.Context, fie switch field.Name { case "id": return ec.fieldContext_Build_id(ctx, field) - case "buildURL": - return ec.fieldContext_Build_buildURL(ctx, field) case "buildUUID": return ec.fieldContext_Build_buildUUID(ctx, field) case "timestamp": @@ -14529,6 +15496,8 @@ func (ec *executionContext) fieldContext_Query_getBuild(ctx context.Context, fie return ec.fieldContext_Build_instanceName(ctx, field) case "invocations": return ec.fieldContext_Build_invocations(ctx, field) + case "tags": + return ec.fieldContext_Build_tags(ctx, field) } return nil, fmt.Errorf("no field named %q was found under type Build", field.Name) }, @@ -15020,88 +15989,6 @@ func (ec *executionContext) fieldContext_SourceControl_id(_ context.Context, fie return fc, nil } -func (ec *executionContext) _SourceControl_provider(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_provider(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Provider, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(sourcecontrol.Provider) - fc.Result = res - return ec.marshalOSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_provider(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type SourceControlProvider does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_instanceURL(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_instanceURL(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.InstanceURL, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_instanceURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - func (ec *executionContext) _SourceControl_repo(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { fc, err := ec.fieldContext_SourceControl_repo(ctx, field) if err != nil { @@ -15143,8 +16030,8 @@ func (ec *executionContext) fieldContext_SourceControl_repo(_ context.Context, f return fc, nil } -func (ec *executionContext) _SourceControl_refs(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_refs(ctx, field) +func (ec *executionContext) _SourceControl_repoURL(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_SourceControl_repoURL(ctx, field) if err != nil { return graphql.Null } @@ -15157,7 +16044,7 @@ func (ec *executionContext) _SourceControl_refs(ctx context.Context, field graph }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Refs, nil + return obj.RepoURL, nil }) if err != nil { ec.Error(ctx, err) @@ -15171,7 +16058,7 @@ func (ec *executionContext) _SourceControl_refs(ctx context.Context, field graph return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_SourceControl_refs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_SourceControl_repoURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SourceControl", Field: field, @@ -15184,8 +16071,8 @@ func (ec *executionContext) fieldContext_SourceControl_refs(_ context.Context, f return fc, nil } -func (ec *executionContext) _SourceControl_commitSha(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_commitSha(ctx, field) +func (ec *executionContext) _SourceControl_ref(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_SourceControl_ref(ctx, field) if err != nil { return graphql.Null } @@ -15198,7 +16085,7 @@ func (ec *executionContext) _SourceControl_commitSha(ctx context.Context, field }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.CommitSha, nil + return obj.Ref, nil }) if err != nil { ec.Error(ctx, err) @@ -15212,7 +16099,7 @@ func (ec *executionContext) _SourceControl_commitSha(ctx context.Context, field return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_SourceControl_commitSha(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_SourceControl_ref(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SourceControl", Field: field, @@ -15225,8 +16112,8 @@ func (ec *executionContext) fieldContext_SourceControl_commitSha(_ context.Conte return fc, nil } -func (ec *executionContext) _SourceControl_actor(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_actor(ctx, field) +func (ec *executionContext) _SourceControl_refURL(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_SourceControl_refURL(ctx, field) if err != nil { return graphql.Null } @@ -15239,7 +16126,7 @@ func (ec *executionContext) _SourceControl_actor(ctx context.Context, field grap }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Actor, nil + return obj.RefURL, nil }) if err != nil { ec.Error(ctx, err) @@ -15253,7 +16140,7 @@ func (ec *executionContext) _SourceControl_actor(ctx context.Context, field grap return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_SourceControl_actor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_SourceControl_refURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SourceControl", Field: field, @@ -15266,8 +16153,8 @@ func (ec *executionContext) fieldContext_SourceControl_actor(_ context.Context, return fc, nil } -func (ec *executionContext) _SourceControl_eventName(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_eventName(ctx, field) +func (ec *executionContext) _SourceControl_commit(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_SourceControl_commit(ctx, field) if err != nil { return graphql.Null } @@ -15280,7 +16167,7 @@ func (ec *executionContext) _SourceControl_eventName(ctx context.Context, field }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.EventName, nil + return obj.Commit, nil }) if err != nil { ec.Error(ctx, err) @@ -15294,7 +16181,7 @@ func (ec *executionContext) _SourceControl_eventName(ctx context.Context, field return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_SourceControl_eventName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_SourceControl_commit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SourceControl", Field: field, @@ -15307,8 +16194,8 @@ func (ec *executionContext) fieldContext_SourceControl_eventName(_ context.Conte return fc, nil } -func (ec *executionContext) _SourceControl_workflow(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_workflow(ctx, field) +func (ec *executionContext) _SourceControl_commitURL(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_SourceControl_commitURL(ctx, field) if err != nil { return graphql.Null } @@ -15321,7 +16208,7 @@ func (ec *executionContext) _SourceControl_workflow(ctx context.Context, field g }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Workflow, nil + return obj.CommitURL, nil }) if err != nil { ec.Error(ctx, err) @@ -15335,335 +16222,7 @@ func (ec *executionContext) _SourceControl_workflow(ctx context.Context, field g return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_SourceControl_workflow(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_runID(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_runID(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.RunID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_runID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_runNumber(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_runNumber(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.RunNumber, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_runNumber(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_job(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_job(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Job, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_job(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_action(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_action(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Action, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_action(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_runnerName(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_runnerName(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.RunnerName, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_runnerName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_runnerArch(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_runnerArch(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.RunnerArch, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_runnerArch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_runnerOs(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_runnerOs(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.RunnerOs, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_runnerOs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SourceControl", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _SourceControl_workspace(ctx context.Context, field graphql.CollectedField, obj *ent.SourceControl) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_SourceControl_workspace(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Workspace, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalOString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_SourceControl_workspace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_SourceControl_commitURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SourceControl", Field: field, @@ -15720,22 +16279,12 @@ func (ec *executionContext) fieldContext_SourceControl_bazelInvocation(_ context return ec.fieldContext_BazelInvocation_startedAt(ctx, field) case "endedAt": return ec.fieldContext_BazelInvocation_endedAt(ctx, field) - case "changeNumber": - return ec.fieldContext_BazelInvocation_changeNumber(ctx, field) - case "patchsetNumber": - return ec.fieldContext_BazelInvocation_patchsetNumber(ctx, field) case "bepCompleted": return ec.fieldContext_BazelInvocation_bepCompleted(ctx, field) - case "stepLabel": - return ec.fieldContext_BazelInvocation_stepLabel(ctx, field) - case "userEmail": - return ec.fieldContext_BazelInvocation_userEmail(ctx, field) - case "userLdap": - return ec.fieldContext_BazelInvocation_userLdap(ctx, field) + case "username": + return ec.fieldContext_BazelInvocation_username(ctx, field) case "hostname": return ec.fieldContext_BazelInvocation_hostname(ctx, field) - case "isCiWorker": - return ec.fieldContext_BazelInvocation_isCiWorker(ctx, field) case "numFetches": return ec.fieldContext_BazelInvocation_numFetches(ctx, field) case "bazelVersion": @@ -15756,6 +16305,8 @@ func (ec *executionContext) fieldContext_SourceControl_bazelInvocation(_ context return ec.fieldContext_BazelInvocation_build(ctx, field) case "authenticatedUser": return ec.fieldContext_BazelInvocation_authenticatedUser(ctx, field) + case "tags": + return ec.fieldContext_BazelInvocation_tags(ctx, field) case "connectionMetadata": return ec.fieldContext_BazelInvocation_connectionMetadata(ctx, field) case "configurations": @@ -15768,8 +16319,6 @@ func (ec *executionContext) fieldContext_SourceControl_bazelInvocation(_ context return ec.fieldContext_BazelInvocation_invocationTargets(ctx, field) case "sourceControl": return ec.fieldContext_BazelInvocation_sourceControl(ctx, field) - case "user": - return ec.fieldContext_BazelInvocation_user(ctx, field) case "profile": return ec.fieldContext_BazelInvocation_profile(ctx, field) } @@ -19035,138 +19584,6 @@ func (ec *executionContext) fieldContext_TimingMetrics_metrics(_ context.Context return fc, nil } -func (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_User_id(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.ID, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNID2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_User_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "User", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _User_Email(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_User_Email(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Email, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_User_Email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "User", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - -func (ec *executionContext) _User_LDAP(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_User_LDAP(ctx, field) - if err != nil { - return graphql.Null - } - ctx = graphql.WithFieldContext(ctx, fc) - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = graphql.Null - } - }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { - ctx = rctx // use context from middleware stack in children - return obj.Ldap, nil - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } - return graphql.Null - } - res := resTmp.(string) - fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) -} - -func (ec *executionContext) fieldContext_User_LDAP(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "User", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil -} - func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { fc, err := ec.fieldContext___Directive_name(ctx, field) if err != nil { @@ -25166,7 +25583,7 @@ func (ec *executionContext) unmarshalInputBazelInvocationWhereInput(ctx context. asMap[k] = v } - fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "invocationID", "invocationIDNEQ", "invocationIDIn", "invocationIDNotIn", "invocationIDGT", "invocationIDGTE", "invocationIDLT", "invocationIDLTE", "startedAt", "startedAtNEQ", "startedAtIn", "startedAtNotIn", "startedAtGT", "startedAtGTE", "startedAtLT", "startedAtLTE", "startedAtIsNil", "startedAtNotNil", "endedAt", "endedAtNEQ", "endedAtIn", "endedAtNotIn", "endedAtGT", "endedAtGTE", "endedAtLT", "endedAtLTE", "endedAtIsNil", "endedAtNotNil", "changeNumber", "changeNumberNEQ", "changeNumberIn", "changeNumberNotIn", "changeNumberGT", "changeNumberGTE", "changeNumberLT", "changeNumberLTE", "changeNumberIsNil", "changeNumberNotNil", "patchsetNumber", "patchsetNumberNEQ", "patchsetNumberIn", "patchsetNumberNotIn", "patchsetNumberGT", "patchsetNumberGTE", "patchsetNumberLT", "patchsetNumberLTE", "patchsetNumberIsNil", "patchsetNumberNotNil", "bepCompleted", "bepCompletedNEQ", "stepLabel", "stepLabelNEQ", "stepLabelIn", "stepLabelNotIn", "stepLabelGT", "stepLabelGTE", "stepLabelLT", "stepLabelLTE", "stepLabelContains", "stepLabelHasPrefix", "stepLabelHasSuffix", "stepLabelIsNil", "stepLabelNotNil", "stepLabelEqualFold", "stepLabelContainsFold", "userEmail", "userEmailNEQ", "userEmailIn", "userEmailNotIn", "userEmailGT", "userEmailGTE", "userEmailLT", "userEmailLTE", "userEmailContains", "userEmailHasPrefix", "userEmailHasSuffix", "userEmailIsNil", "userEmailNotNil", "userEmailEqualFold", "userEmailContainsFold", "userLdap", "userLdapNEQ", "userLdapIn", "userLdapNotIn", "userLdapGT", "userLdapGTE", "userLdapLT", "userLdapLTE", "userLdapContains", "userLdapHasPrefix", "userLdapHasSuffix", "userLdapIsNil", "userLdapNotNil", "userLdapEqualFold", "userLdapContainsFold", "hostname", "hostnameNEQ", "hostnameIn", "hostnameNotIn", "hostnameGT", "hostnameGTE", "hostnameLT", "hostnameLTE", "hostnameContains", "hostnameHasPrefix", "hostnameHasSuffix", "hostnameIsNil", "hostnameNotNil", "hostnameEqualFold", "hostnameContainsFold", "isCiWorker", "isCiWorkerNEQ", "isCiWorkerIsNil", "isCiWorkerNotNil", "numFetches", "numFetchesNEQ", "numFetchesIn", "numFetchesNotIn", "numFetchesGT", "numFetchesGTE", "numFetchesLT", "numFetchesLTE", "numFetchesIsNil", "numFetchesNotNil", "profileName", "profileNameNEQ", "profileNameIn", "profileNameNotIn", "profileNameGT", "profileNameGTE", "profileNameLT", "profileNameLTE", "profileNameContains", "profileNameHasPrefix", "profileNameHasSuffix", "profileNameIsNil", "profileNameNotNil", "profileNameEqualFold", "profileNameContainsFold", "bazelVersion", "bazelVersionNEQ", "bazelVersionIn", "bazelVersionNotIn", "bazelVersionGT", "bazelVersionGTE", "bazelVersionLT", "bazelVersionLTE", "bazelVersionContains", "bazelVersionHasPrefix", "bazelVersionHasSuffix", "bazelVersionIsNil", "bazelVersionNotNil", "bazelVersionEqualFold", "bazelVersionContainsFold", "exitCodeName", "exitCodeNameNEQ", "exitCodeNameIn", "exitCodeNameNotIn", "exitCodeNameGT", "exitCodeNameGTE", "exitCodeNameLT", "exitCodeNameLTE", "exitCodeNameContains", "exitCodeNameHasPrefix", "exitCodeNameHasSuffix", "exitCodeNameIsNil", "exitCodeNameNotNil", "exitCodeNameEqualFold", "exitCodeNameContainsFold", "exitCodeCode", "exitCodeCodeNEQ", "exitCodeCodeIn", "exitCodeCodeNotIn", "exitCodeCodeGT", "exitCodeCodeGTE", "exitCodeCodeLT", "exitCodeCodeLTE", "exitCodeCodeIsNil", "exitCodeCodeNotNil", "hasInstanceName", "hasInstanceNameWith", "hasBuild", "hasBuildWith", "hasAuthenticatedUser", "hasAuthenticatedUserWith", "hasConnectionMetadata", "hasConnectionMetadataWith", "hasConfigurations", "hasConfigurationsWith", "hasActions", "hasActionsWith", "hasMetrics", "hasMetricsWith", "hasInvocationTargets", "hasInvocationTargetsWith", "hasSourceControl", "hasSourceControlWith"} + fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "invocationID", "invocationIDNEQ", "invocationIDIn", "invocationIDNotIn", "invocationIDGT", "invocationIDGTE", "invocationIDLT", "invocationIDLTE", "startedAt", "startedAtNEQ", "startedAtIn", "startedAtNotIn", "startedAtGT", "startedAtGTE", "startedAtLT", "startedAtLTE", "startedAtIsNil", "startedAtNotNil", "endedAt", "endedAtNEQ", "endedAtIn", "endedAtNotIn", "endedAtGT", "endedAtGTE", "endedAtLT", "endedAtLTE", "endedAtIsNil", "endedAtNotNil", "bepCompleted", "bepCompletedNEQ", "username", "usernameNEQ", "usernameIn", "usernameNotIn", "usernameGT", "usernameGTE", "usernameLT", "usernameLTE", "usernameContains", "usernameHasPrefix", "usernameHasSuffix", "usernameIsNil", "usernameNotNil", "usernameEqualFold", "usernameContainsFold", "hostname", "hostnameNEQ", "hostnameIn", "hostnameNotIn", "hostnameGT", "hostnameGTE", "hostnameLT", "hostnameLTE", "hostnameContains", "hostnameHasPrefix", "hostnameHasSuffix", "hostnameIsNil", "hostnameNotNil", "hostnameEqualFold", "hostnameContainsFold", "numFetches", "numFetchesNEQ", "numFetchesIn", "numFetchesNotIn", "numFetchesGT", "numFetchesGTE", "numFetchesLT", "numFetchesLTE", "numFetchesIsNil", "numFetchesNotNil", "profileName", "profileNameNEQ", "profileNameIn", "profileNameNotIn", "profileNameGT", "profileNameGTE", "profileNameLT", "profileNameLTE", "profileNameContains", "profileNameHasPrefix", "profileNameHasSuffix", "profileNameIsNil", "profileNameNotNil", "profileNameEqualFold", "profileNameContainsFold", "bazelVersion", "bazelVersionNEQ", "bazelVersionIn", "bazelVersionNotIn", "bazelVersionGT", "bazelVersionGTE", "bazelVersionLT", "bazelVersionLTE", "bazelVersionContains", "bazelVersionHasPrefix", "bazelVersionHasSuffix", "bazelVersionIsNil", "bazelVersionNotNil", "bazelVersionEqualFold", "bazelVersionContainsFold", "exitCodeName", "exitCodeNameNEQ", "exitCodeNameIn", "exitCodeNameNotIn", "exitCodeNameGT", "exitCodeNameGTE", "exitCodeNameLT", "exitCodeNameLTE", "exitCodeNameContains", "exitCodeNameHasPrefix", "exitCodeNameHasSuffix", "exitCodeNameIsNil", "exitCodeNameNotNil", "exitCodeNameEqualFold", "exitCodeNameContainsFold", "exitCodeCode", "exitCodeCodeNEQ", "exitCodeCodeIn", "exitCodeCodeNotIn", "exitCodeCodeGT", "exitCodeCodeGTE", "exitCodeCodeLT", "exitCodeCodeLTE", "exitCodeCodeIsNil", "exitCodeCodeNotNil", "hasInstanceName", "hasInstanceNameWith", "hasBuild", "hasBuildWith", "hasAuthenticatedUser", "hasAuthenticatedUserWith", "hasTags", "hasTagsWith", "hasConnectionMetadata", "hasConnectionMetadataWith", "hasConfigurations", "hasConfigurationsWith", "hasActions", "hasActionsWith", "hasMetrics", "hasMetricsWith", "hasInvocationTargets", "hasInvocationTargetsWith", "hasSourceControl", "hasSourceControlWith"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -25462,146 +25879,6 @@ func (ec *executionContext) unmarshalInputBazelInvocationWhereInput(ctx context. return it, err } it.EndedAtNotNil = data - case "changeNumber": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumber")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumber = data - case "changeNumberNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberNEQ")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberNEQ = data - case "changeNumberIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberIn")) - data, err := ec.unmarshalOInt2ᚕintᚄ(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberIn = data - case "changeNumberNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberNotIn")) - data, err := ec.unmarshalOInt2ᚕintᚄ(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberNotIn = data - case "changeNumberGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberGT")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberGT = data - case "changeNumberGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberGTE")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberGTE = data - case "changeNumberLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberLT")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberLT = data - case "changeNumberLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberLTE")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberLTE = data - case "changeNumberIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberIsNil = data - case "changeNumberNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("changeNumberNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.ChangeNumberNotNil = data - case "patchsetNumber": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumber")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumber = data - case "patchsetNumberNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberNEQ")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberNEQ = data - case "patchsetNumberIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberIn")) - data, err := ec.unmarshalOInt2ᚕintᚄ(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberIn = data - case "patchsetNumberNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberNotIn")) - data, err := ec.unmarshalOInt2ᚕintᚄ(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberNotIn = data - case "patchsetNumberGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberGT")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberGT = data - case "patchsetNumberGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberGTE")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberGTE = data - case "patchsetNumberLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberLT")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberLT = data - case "patchsetNumberLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberLTE")) - data, err := ec.unmarshalOInt2ᚖint(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberLTE = data - case "patchsetNumberIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberIsNil = data - case "patchsetNumberNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("patchsetNumberNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.PatchsetNumberNotNil = data case "bepCompleted": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("bepCompleted")) data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) @@ -25616,321 +25893,111 @@ func (ec *executionContext) unmarshalInputBazelInvocationWhereInput(ctx context. return it, err } it.BepCompletedNEQ = data - case "stepLabel": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabel")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabel = data - case "stepLabelNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelNEQ = data - case "stepLabelIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.StepLabelIn = data - case "stepLabelNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.StepLabelNotIn = data - case "stepLabelGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelGT = data - case "stepLabelGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelGTE = data - case "stepLabelLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelLT = data - case "stepLabelLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelLTE = data - case "stepLabelContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelContains = data - case "stepLabelHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelHasPrefix = data - case "stepLabelHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelHasSuffix = data - case "stepLabelIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.StepLabelIsNil = data - case "stepLabelNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.StepLabelNotNil = data - case "stepLabelEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelEqualFold = data - case "stepLabelContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("stepLabelContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.StepLabelContainsFold = data - case "userEmail": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmail")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmail = data - case "userEmailNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailNEQ = data - case "userEmailIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.UserEmailIn = data - case "userEmailNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.UserEmailNotIn = data - case "userEmailGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailGT = data - case "userEmailGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailGTE = data - case "userEmailLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailLT = data - case "userEmailLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailLTE = data - case "userEmailContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailContains = data - case "userEmailHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailHasPrefix = data - case "userEmailHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailHasSuffix = data - case "userEmailIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.UserEmailIsNil = data - case "userEmailNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.UserEmailNotNil = data - case "userEmailEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserEmailEqualFold = data - case "userEmailContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userEmailContainsFold")) + case "username": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("username")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserEmailContainsFold = data - case "userLdap": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdap")) + it.Username = data + case "usernameNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameNEQ")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdap = data - case "userLdapNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.UserLdapNEQ = data - case "userLdapIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapIn")) + it.UsernameNEQ = data + case "usernameIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.UserLdapIn = data - case "userLdapNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapNotIn")) + it.UsernameIn = data + case "usernameNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.UserLdapNotIn = data - case "userLdapGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapGT")) + it.UsernameNotIn = data + case "usernameGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapGT = data - case "userLdapGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapGTE")) + it.UsernameGT = data + case "usernameGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapGTE = data - case "userLdapLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapLT")) + it.UsernameGTE = data + case "usernameLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapLT = data - case "userLdapLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapLTE")) + it.UsernameLT = data + case "usernameLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapLTE = data - case "userLdapContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapContains")) + it.UsernameLTE = data + case "usernameContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapContains = data - case "userLdapHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapHasPrefix")) + it.UsernameContains = data + case "usernameHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapHasPrefix = data - case "userLdapHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapHasSuffix")) + it.UsernameHasPrefix = data + case "usernameHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapHasSuffix = data - case "userLdapIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapIsNil")) + it.UsernameHasSuffix = data + case "usernameIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameIsNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.UserLdapIsNil = data - case "userLdapNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapNotNil")) + it.UsernameIsNil = data + case "usernameNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameNotNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.UserLdapNotNil = data - case "userLdapEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapEqualFold")) + it.UsernameNotNil = data + case "usernameEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapEqualFold = data - case "userLdapContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userLdapContainsFold")) + it.UsernameEqualFold = data + case "usernameContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("usernameContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.UserLdapContainsFold = data + it.UsernameContainsFold = data case "hostname": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hostname")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) @@ -26036,34 +26103,6 @@ func (ec *executionContext) unmarshalInputBazelInvocationWhereInput(ctx context. return it, err } it.HostnameContainsFold = data - case "isCiWorker": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("isCiWorker")) - data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } - it.IsCiWorker = data - case "isCiWorkerNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("isCiWorkerNEQ")) - data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } - it.IsCiWorkerNEQ = data - case "isCiWorkerIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("isCiWorkerIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.IsCiWorkerIsNil = data - case "isCiWorkerNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("isCiWorkerNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.IsCiWorkerNotNil = data case "numFetches": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("numFetches")) data, err := ec.unmarshalOInt2ᚖint64(ctx, v) @@ -26561,6 +26600,20 @@ func (ec *executionContext) unmarshalInputBazelInvocationWhereInput(ctx context. return it, err } it.HasAuthenticatedUserWith = data + case "hasTags": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasTags")) + data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) + if err != nil { + return it, err + } + it.HasTags = data + case "hasTagsWith": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasTagsWith")) + data, err := ec.unmarshalOInvocationTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.HasTagsWith = data case "hasConnectionMetadata": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasConnectionMetadata")) data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) @@ -27446,14 +27499,52 @@ func (ec *executionContext) unmarshalInputBuildOrder(ctx context.Context, obj an return it, nil } -func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, obj any) (ent.BuildWhereInput, error) { - var it ent.BuildWhereInput +func (ec *executionContext) unmarshalInputBuildTagOrder(ctx context.Context, obj any) (ent.BuildTagOrder, error) { + var it ent.BuildTagOrder + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { + asMap[k] = v + } + + if _, present := asMap["direction"]; !present { + asMap["direction"] = "ASC" + } + + fieldsInOrder := [...]string{"direction", "field"} + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } + switch k { + case "direction": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("direction")) + data, err := ec.unmarshalNOrderDirection2entgoᚗioᚋcontribᚋentgqlᚐOrderDirection(ctx, v) + if err != nil { + return it, err + } + it.Direction = data + case "field": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("field")) + data, err := ec.unmarshalNBuildTagOrderField2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagOrderField(ctx, v) + if err != nil { + return it, err + } + it.Field = data + } + } + + return it, nil +} + +func (ec *executionContext) unmarshalInputBuildTagWhereInput(ctx context.Context, obj any) (ent.BuildTagWhereInput, error) { + var it ent.BuildTagWhereInput asMap := map[string]any{} for k, v := range obj.(map[string]any) { asMap[k] = v } - fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "buildURL", "buildURLNEQ", "buildURLIn", "buildURLNotIn", "buildURLGT", "buildURLGTE", "buildURLLT", "buildURLLTE", "buildURLContains", "buildURLHasPrefix", "buildURLHasSuffix", "buildURLEqualFold", "buildURLContainsFold", "buildUUID", "buildUUIDNEQ", "buildUUIDIn", "buildUUIDNotIn", "buildUUIDGT", "buildUUIDGTE", "buildUUIDLT", "buildUUIDLTE", "timestamp", "timestampNEQ", "timestampIn", "timestampNotIn", "timestampGT", "timestampGTE", "timestampLT", "timestampLTE", "hasInstanceName", "hasInstanceNameWith", "hasInvocations", "hasInvocationsWith"} + fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "key", "keyNEQ", "keyIn", "keyNotIn", "keyGT", "keyGTE", "keyLT", "keyLTE", "keyContains", "keyHasPrefix", "keyHasSuffix", "keyEqualFold", "keyContainsFold", "value", "valueNEQ", "valueIn", "valueNotIn", "valueGT", "valueGTE", "valueLT", "valueLTE", "valueContains", "valueHasPrefix", "valueHasSuffix", "valueEqualFold", "valueContainsFold", "hasBuild", "hasBuildWith"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -27462,21 +27553,21 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o switch k { case "not": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("not")) - data, err := ec.unmarshalOBuildWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInput(ctx, v) + data, err := ec.unmarshalOBuildTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInput(ctx, v) if err != nil { return it, err } it.Not = data case "and": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("and")) - data, err := ec.unmarshalOBuildWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInputᚄ(ctx, v) + data, err := ec.unmarshalOBuildTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInputᚄ(ctx, v) if err != nil { return it, err } it.And = data case "or": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("or")) - data, err := ec.unmarshalOBuildWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInputᚄ(ctx, v) + data, err := ec.unmarshalOBuildTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInputᚄ(ctx, v) if err != nil { return it, err } @@ -27487,7 +27578,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().ID(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().ID(ctx, &it, data); err != nil { return it, err } case "idNEQ": @@ -27496,7 +27587,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDNeq(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDNeq(ctx, &it, data); err != nil { return it, err } case "idIn": @@ -27505,7 +27596,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDIn(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDIn(ctx, &it, data); err != nil { return it, err } case "idNotIn": @@ -27514,7 +27605,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDNotIn(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDNotIn(ctx, &it, data); err != nil { return it, err } case "idGT": @@ -27523,7 +27614,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDGt(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDGt(ctx, &it, data); err != nil { return it, err } case "idGTE": @@ -27532,7 +27623,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDGte(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDGte(ctx, &it, data); err != nil { return it, err } case "idLT": @@ -27541,7 +27632,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDLt(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDLt(ctx, &it, data); err != nil { return it, err } case "idLTE": @@ -27550,100 +27641,318 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o if err != nil { return it, err } - if err = ec.resolvers.BuildWhereInput().IDLte(ctx, &it, data); err != nil { + if err = ec.resolvers.BuildTagWhereInput().IDLte(ctx, &it, data); err != nil { + return it, err + } + case "key": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("key")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.Key = data + case "keyNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyNEQ")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyNEQ = data + case "keyIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyIn")) + data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + it.KeyIn = data + case "keyNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyNotIn")) + data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + it.KeyNotIn = data + case "keyGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyGT")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { return it, err } - case "buildURL": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURL")) + it.KeyGT = data + case "keyGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURL = data - case "buildURLNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLNEQ")) + it.KeyGTE = data + case "keyLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLNEQ = data - case "buildURLIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLIn")) + it.KeyLT = data + case "keyLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyLTE")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyLTE = data + case "keyContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyContains")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyContains = data + case "keyHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyHasPrefix")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyHasPrefix = data + case "keyHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyHasSuffix")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyHasSuffix = data + case "keyEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyEqualFold")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyEqualFold = data + case "keyContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyContainsFold")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyContainsFold = data + case "value": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("value")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.Value = data + case "valueNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueNEQ")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueNEQ = data + case "valueIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.BuildURLIn = data - case "buildURLNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLNotIn")) + it.ValueIn = data + case "valueNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.BuildURLNotIn = data - case "buildURLGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLGT")) + it.ValueNotIn = data + case "valueGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLGT = data - case "buildURLGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLGTE")) + it.ValueGT = data + case "valueGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLGTE = data - case "buildURLLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLLT")) + it.ValueGTE = data + case "valueLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLLT = data - case "buildURLLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLLTE")) + it.ValueLT = data + case "valueLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLLTE = data - case "buildURLContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLContains")) + it.ValueLTE = data + case "valueContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLContains = data - case "buildURLHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLHasPrefix")) + it.ValueContains = data + case "valueHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLHasPrefix = data - case "buildURLHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLHasSuffix")) + it.ValueHasPrefix = data + case "valueHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLHasSuffix = data - case "buildURLEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLEqualFold")) + it.ValueHasSuffix = data + case "valueEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLEqualFold = data - case "buildURLContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildURLContainsFold")) + it.ValueEqualFold = data + case "valueContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.BuildURLContainsFold = data + it.ValueContainsFold = data + case "hasBuild": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasBuild")) + data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) + if err != nil { + return it, err + } + it.HasBuild = data + case "hasBuildWith": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasBuildWith")) + data, err := ec.unmarshalOBuildWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.HasBuildWith = data + } + } + + return it, nil +} + +func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, obj any) (ent.BuildWhereInput, error) { + var it ent.BuildWhereInput + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { + asMap[k] = v + } + + fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "buildUUID", "buildUUIDNEQ", "buildUUIDIn", "buildUUIDNotIn", "buildUUIDGT", "buildUUIDGTE", "buildUUIDLT", "buildUUIDLTE", "timestamp", "timestampNEQ", "timestampIn", "timestampNotIn", "timestampGT", "timestampGTE", "timestampLT", "timestampLTE", "hasInstanceName", "hasInstanceNameWith", "hasInvocations", "hasInvocationsWith", "hasTags", "hasTagsWith"} + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } + switch k { + case "not": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("not")) + data, err := ec.unmarshalOBuildWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInput(ctx, v) + if err != nil { + return it, err + } + it.Not = data + case "and": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("and")) + data, err := ec.unmarshalOBuildWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.And = data + case "or": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("or")) + data, err := ec.unmarshalOBuildWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.Or = data + case "id": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().ID(ctx, &it, data); err != nil { + return it, err + } + case "idNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idNEQ")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDNeq(ctx, &it, data); err != nil { + return it, err + } + case "idIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idIn")) + data, err := ec.unmarshalOID2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDIn(ctx, &it, data); err != nil { + return it, err + } + case "idNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idNotIn")) + data, err := ec.unmarshalOID2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDNotIn(ctx, &it, data); err != nil { + return it, err + } + case "idGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idGT")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDGt(ctx, &it, data); err != nil { + return it, err + } + case "idGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idGTE")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDGte(ctx, &it, data); err != nil { + return it, err + } + case "idLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idLT")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDLt(ctx, &it, data); err != nil { + return it, err + } + case "idLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idLTE")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.BuildWhereInput().IDLte(ctx, &it, data); err != nil { + return it, err + } case "buildUUID": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("buildUUID")) data, err := ec.unmarshalOUUID2ᚖgithubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, v) @@ -27784,6 +28093,20 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o return it, err } it.HasInvocationsWith = data + case "hasTags": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasTags")) + data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) + if err != nil { + return it, err + } + it.HasTags = data + case "hasTagsWith": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasTagsWith")) + data, err := ec.unmarshalOBuildTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.HasTagsWith = data } } @@ -29110,6 +29433,353 @@ func (ec *executionContext) unmarshalInputInstanceNameWhereInput(ctx context.Con return it, nil } +func (ec *executionContext) unmarshalInputInvocationTagOrder(ctx context.Context, obj any) (ent.InvocationTagOrder, error) { + var it ent.InvocationTagOrder + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { + asMap[k] = v + } + + if _, present := asMap["direction"]; !present { + asMap["direction"] = "ASC" + } + + fieldsInOrder := [...]string{"direction", "field"} + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } + switch k { + case "direction": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("direction")) + data, err := ec.unmarshalNOrderDirection2entgoᚗioᚋcontribᚋentgqlᚐOrderDirection(ctx, v) + if err != nil { + return it, err + } + it.Direction = data + case "field": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("field")) + data, err := ec.unmarshalNInvocationTagOrderField2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagOrderField(ctx, v) + if err != nil { + return it, err + } + it.Field = data + } + } + + return it, nil +} + +func (ec *executionContext) unmarshalInputInvocationTagWhereInput(ctx context.Context, obj any) (ent.InvocationTagWhereInput, error) { + var it ent.InvocationTagWhereInput + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { + asMap[k] = v + } + + fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "key", "keyNEQ", "keyIn", "keyNotIn", "keyGT", "keyGTE", "keyLT", "keyLTE", "keyContains", "keyHasPrefix", "keyHasSuffix", "keyEqualFold", "keyContainsFold", "value", "valueNEQ", "valueIn", "valueNotIn", "valueGT", "valueGTE", "valueLT", "valueLTE", "valueContains", "valueHasPrefix", "valueHasSuffix", "valueEqualFold", "valueContainsFold", "hasBazelInvocation", "hasBazelInvocationWith"} + for _, k := range fieldsInOrder { + v, ok := asMap[k] + if !ok { + continue + } + switch k { + case "not": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("not")) + data, err := ec.unmarshalOInvocationTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInput(ctx, v) + if err != nil { + return it, err + } + it.Not = data + case "and": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("and")) + data, err := ec.unmarshalOInvocationTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.And = data + case "or": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("or")) + data, err := ec.unmarshalOInvocationTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.Or = data + case "id": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().ID(ctx, &it, data); err != nil { + return it, err + } + case "idNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idNEQ")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDNeq(ctx, &it, data); err != nil { + return it, err + } + case "idIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idIn")) + data, err := ec.unmarshalOID2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDIn(ctx, &it, data); err != nil { + return it, err + } + case "idNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idNotIn")) + data, err := ec.unmarshalOID2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDNotIn(ctx, &it, data); err != nil { + return it, err + } + case "idGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idGT")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDGt(ctx, &it, data); err != nil { + return it, err + } + case "idGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idGTE")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDGte(ctx, &it, data); err != nil { + return it, err + } + case "idLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idLT")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDLt(ctx, &it, data); err != nil { + return it, err + } + case "idLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("idLTE")) + data, err := ec.unmarshalOID2ᚖstring(ctx, v) + if err != nil { + return it, err + } + if err = ec.resolvers.InvocationTagWhereInput().IDLte(ctx, &it, data); err != nil { + return it, err + } + case "key": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("key")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.Key = data + case "keyNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyNEQ")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyNEQ = data + case "keyIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyIn")) + data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + it.KeyIn = data + case "keyNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyNotIn")) + data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + it.KeyNotIn = data + case "keyGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyGT")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyGT = data + case "keyGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyGTE")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyGTE = data + case "keyLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyLT")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyLT = data + case "keyLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyLTE")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyLTE = data + case "keyContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyContains")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyContains = data + case "keyHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyHasPrefix")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyHasPrefix = data + case "keyHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyHasSuffix")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyHasSuffix = data + case "keyEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyEqualFold")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyEqualFold = data + case "keyContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("keyContainsFold")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.KeyContainsFold = data + case "value": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("value")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.Value = data + case "valueNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueNEQ")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueNEQ = data + case "valueIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueIn")) + data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + it.ValueIn = data + case "valueNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueNotIn")) + data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) + if err != nil { + return it, err + } + it.ValueNotIn = data + case "valueGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueGT")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueGT = data + case "valueGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueGTE")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueGTE = data + case "valueLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueLT")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueLT = data + case "valueLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueLTE")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueLTE = data + case "valueContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueContains")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueContains = data + case "valueHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueHasPrefix")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueHasPrefix = data + case "valueHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueHasSuffix")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueHasSuffix = data + case "valueEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueEqualFold")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueEqualFold = data + case "valueContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("valueContainsFold")) + data, err := ec.unmarshalOString2ᚖstring(ctx, v) + if err != nil { + return it, err + } + it.ValueContainsFold = data + case "hasBazelInvocation": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasBazelInvocation")) + data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) + if err != nil { + return it, err + } + it.HasBazelInvocation = data + case "hasBazelInvocationWith": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasBazelInvocationWith")) + data, err := ec.unmarshalOBazelInvocationWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBazelInvocationWhereInputᚄ(ctx, v) + if err != nil { + return it, err + } + it.HasBazelInvocationWith = data + } + } + + return it, nil +} + func (ec *executionContext) unmarshalInputInvocationTargetOrder(ctx context.Context, obj any) (ent.InvocationTargetOrder, error) { var it ent.InvocationTargetOrder asMap := map[string]any{} @@ -31093,7 +31763,7 @@ func (ec *executionContext) unmarshalInputSourceControlWhereInput(ctx context.Co asMap[k] = v } - fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "provider", "providerNEQ", "providerIn", "providerNotIn", "providerIsNil", "providerNotNil", "instanceURL", "instanceURLNEQ", "instanceURLIn", "instanceURLNotIn", "instanceURLGT", "instanceURLGTE", "instanceURLLT", "instanceURLLTE", "instanceURLContains", "instanceURLHasPrefix", "instanceURLHasSuffix", "instanceURLIsNil", "instanceURLNotNil", "instanceURLEqualFold", "instanceURLContainsFold", "repo", "repoNEQ", "repoIn", "repoNotIn", "repoGT", "repoGTE", "repoLT", "repoLTE", "repoContains", "repoHasPrefix", "repoHasSuffix", "repoIsNil", "repoNotNil", "repoEqualFold", "repoContainsFold", "refs", "refsNEQ", "refsIn", "refsNotIn", "refsGT", "refsGTE", "refsLT", "refsLTE", "refsContains", "refsHasPrefix", "refsHasSuffix", "refsIsNil", "refsNotNil", "refsEqualFold", "refsContainsFold", "commitSha", "commitShaNEQ", "commitShaIn", "commitShaNotIn", "commitShaGT", "commitShaGTE", "commitShaLT", "commitShaLTE", "commitShaContains", "commitShaHasPrefix", "commitShaHasSuffix", "commitShaIsNil", "commitShaNotNil", "commitShaEqualFold", "commitShaContainsFold", "actor", "actorNEQ", "actorIn", "actorNotIn", "actorGT", "actorGTE", "actorLT", "actorLTE", "actorContains", "actorHasPrefix", "actorHasSuffix", "actorIsNil", "actorNotNil", "actorEqualFold", "actorContainsFold", "eventName", "eventNameNEQ", "eventNameIn", "eventNameNotIn", "eventNameGT", "eventNameGTE", "eventNameLT", "eventNameLTE", "eventNameContains", "eventNameHasPrefix", "eventNameHasSuffix", "eventNameIsNil", "eventNameNotNil", "eventNameEqualFold", "eventNameContainsFold", "workflow", "workflowNEQ", "workflowIn", "workflowNotIn", "workflowGT", "workflowGTE", "workflowLT", "workflowLTE", "workflowContains", "workflowHasPrefix", "workflowHasSuffix", "workflowIsNil", "workflowNotNil", "workflowEqualFold", "workflowContainsFold", "runID", "runIDNEQ", "runIDIn", "runIDNotIn", "runIDGT", "runIDGTE", "runIDLT", "runIDLTE", "runIDContains", "runIDHasPrefix", "runIDHasSuffix", "runIDIsNil", "runIDNotNil", "runIDEqualFold", "runIDContainsFold", "runNumber", "runNumberNEQ", "runNumberIn", "runNumberNotIn", "runNumberGT", "runNumberGTE", "runNumberLT", "runNumberLTE", "runNumberContains", "runNumberHasPrefix", "runNumberHasSuffix", "runNumberIsNil", "runNumberNotNil", "runNumberEqualFold", "runNumberContainsFold", "job", "jobNEQ", "jobIn", "jobNotIn", "jobGT", "jobGTE", "jobLT", "jobLTE", "jobContains", "jobHasPrefix", "jobHasSuffix", "jobIsNil", "jobNotNil", "jobEqualFold", "jobContainsFold", "action", "actionNEQ", "actionIn", "actionNotIn", "actionGT", "actionGTE", "actionLT", "actionLTE", "actionContains", "actionHasPrefix", "actionHasSuffix", "actionIsNil", "actionNotNil", "actionEqualFold", "actionContainsFold", "runnerName", "runnerNameNEQ", "runnerNameIn", "runnerNameNotIn", "runnerNameGT", "runnerNameGTE", "runnerNameLT", "runnerNameLTE", "runnerNameContains", "runnerNameHasPrefix", "runnerNameHasSuffix", "runnerNameIsNil", "runnerNameNotNil", "runnerNameEqualFold", "runnerNameContainsFold", "runnerArch", "runnerArchNEQ", "runnerArchIn", "runnerArchNotIn", "runnerArchGT", "runnerArchGTE", "runnerArchLT", "runnerArchLTE", "runnerArchContains", "runnerArchHasPrefix", "runnerArchHasSuffix", "runnerArchIsNil", "runnerArchNotNil", "runnerArchEqualFold", "runnerArchContainsFold", "runnerOs", "runnerOsNEQ", "runnerOsIn", "runnerOsNotIn", "runnerOsGT", "runnerOsGTE", "runnerOsLT", "runnerOsLTE", "runnerOsContains", "runnerOsHasPrefix", "runnerOsHasSuffix", "runnerOsIsNil", "runnerOsNotNil", "runnerOsEqualFold", "runnerOsContainsFold", "workspace", "workspaceNEQ", "workspaceIn", "workspaceNotIn", "workspaceGT", "workspaceGTE", "workspaceLT", "workspaceLTE", "workspaceContains", "workspaceHasPrefix", "workspaceHasSuffix", "workspaceIsNil", "workspaceNotNil", "workspaceEqualFold", "workspaceContainsFold", "hasBazelInvocation", "hasBazelInvocationWith"} + fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "repo", "repoNEQ", "repoIn", "repoNotIn", "repoGT", "repoGTE", "repoLT", "repoLTE", "repoContains", "repoHasPrefix", "repoHasSuffix", "repoIsNil", "repoNotNil", "repoEqualFold", "repoContainsFold", "repoURL", "repoURLNEQ", "repoURLIn", "repoURLNotIn", "repoURLGT", "repoURLGTE", "repoURLLT", "repoURLLTE", "repoURLContains", "repoURLHasPrefix", "repoURLHasSuffix", "repoURLIsNil", "repoURLNotNil", "repoURLEqualFold", "repoURLContainsFold", "ref", "refNEQ", "refIn", "refNotIn", "refGT", "refGTE", "refLT", "refLTE", "refContains", "refHasPrefix", "refHasSuffix", "refIsNil", "refNotNil", "refEqualFold", "refContainsFold", "refURL", "refURLNEQ", "refURLIn", "refURLNotIn", "refURLGT", "refURLGTE", "refURLLT", "refURLLTE", "refURLContains", "refURLHasPrefix", "refURLHasSuffix", "refURLIsNil", "refURLNotNil", "refURLEqualFold", "refURLContainsFold", "commit", "commitNEQ", "commitIn", "commitNotIn", "commitGT", "commitGTE", "commitLT", "commitLTE", "commitContains", "commitHasPrefix", "commitHasSuffix", "commitIsNil", "commitNotNil", "commitEqualFold", "commitContainsFold", "commitURL", "commitURLNEQ", "commitURLIn", "commitURLNotIn", "commitURLGT", "commitURLGTE", "commitURLLT", "commitURLLTE", "commitURLContains", "commitURLHasPrefix", "commitURLHasSuffix", "commitURLIsNil", "commitURLNotNil", "commitURLEqualFold", "commitURLContainsFold", "hasBazelInvocation", "hasBazelInvocationWith"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -31193,153 +31863,6 @@ func (ec *executionContext) unmarshalInputSourceControlWhereInput(ctx context.Co if err = ec.resolvers.SourceControlWhereInput().IDLte(ctx, &it, data); err != nil { return it, err } - case "provider": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("provider")) - data, err := ec.unmarshalOSourceControlProvider2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx, v) - if err != nil { - return it, err - } - it.Provider = data - case "providerNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("providerNEQ")) - data, err := ec.unmarshalOSourceControlProvider2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx, v) - if err != nil { - return it, err - } - it.ProviderNEQ = data - case "providerIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("providerIn")) - data, err := ec.unmarshalOSourceControlProvider2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProviderᚄ(ctx, v) - if err != nil { - return it, err - } - it.ProviderIn = data - case "providerNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("providerNotIn")) - data, err := ec.unmarshalOSourceControlProvider2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProviderᚄ(ctx, v) - if err != nil { - return it, err - } - it.ProviderNotIn = data - case "providerIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("providerIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.ProviderIsNil = data - case "providerNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("providerNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.ProviderNotNil = data - case "instanceURL": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURL")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURL = data - case "instanceURLNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLNEQ = data - case "instanceURLIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLIn = data - case "instanceURLNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLNotIn = data - case "instanceURLGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLGT = data - case "instanceURLGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLGTE = data - case "instanceURLLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLLT = data - case "instanceURLLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLLTE = data - case "instanceURLContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLContains = data - case "instanceURLHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLHasPrefix = data - case "instanceURLHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLHasSuffix = data - case "instanceURLIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLIsNil = data - case "instanceURLNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLNotNil = data - case "instanceURLEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLEqualFold = data - case "instanceURLContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("instanceURLContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.InstanceURLContainsFold = data case "repo": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repo")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) @@ -31445,1371 +31968,531 @@ func (ec *executionContext) unmarshalInputSourceControlWhereInput(ctx context.Co return it, err } it.RepoContainsFold = data - case "refs": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refs")) + case "repoURL": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURL")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.Refs = data - case "refsNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsNEQ")) + it.RepoURL = data + case "repoURLNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLNEQ")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsNEQ = data - case "refsIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsIn")) + it.RepoURLNEQ = data + case "repoURLIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.RefsIn = data - case "refsNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsNotIn")) + it.RepoURLIn = data + case "repoURLNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.RefsNotIn = data - case "refsGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsGT")) + it.RepoURLNotIn = data + case "repoURLGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsGT = data - case "refsGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsGTE")) + it.RepoURLGT = data + case "repoURLGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsGTE = data - case "refsLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsLT")) + it.RepoURLGTE = data + case "repoURLLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsLT = data - case "refsLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsLTE")) + it.RepoURLLT = data + case "repoURLLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsLTE = data - case "refsContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsContains")) + it.RepoURLLTE = data + case "repoURLContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsContains = data - case "refsHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsHasPrefix")) + it.RepoURLContains = data + case "repoURLHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsHasPrefix = data - case "refsHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsHasSuffix")) + it.RepoURLHasPrefix = data + case "repoURLHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsHasSuffix = data - case "refsIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsIsNil")) + it.RepoURLHasSuffix = data + case "repoURLIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLIsNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.RefsIsNil = data - case "refsNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsNotNil")) + it.RepoURLIsNil = data + case "repoURLNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLNotNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.RefsNotNil = data - case "refsEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsEqualFold")) + it.RepoURLNotNil = data + case "repoURLEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsEqualFold = data - case "refsContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refsContainsFold")) + it.RepoURLEqualFold = data + case "repoURLContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("repoURLContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.RefsContainsFold = data - case "commitSha": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitSha")) + it.RepoURLContainsFold = data + case "ref": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("ref")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitSha = data - case "commitShaNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaNEQ")) + it.Ref = data + case "refNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refNEQ")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaNEQ = data - case "commitShaIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaIn")) + it.RefNEQ = data + case "refIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.CommitShaIn = data - case "commitShaNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaNotIn")) + it.RefIn = data + case "refNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.CommitShaNotIn = data - case "commitShaGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaGT")) + it.RefNotIn = data + case "refGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaGT = data - case "commitShaGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaGTE")) + it.RefGT = data + case "refGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaGTE = data - case "commitShaLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaLT")) + it.RefGTE = data + case "refLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaLT = data - case "commitShaLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaLTE")) + it.RefLT = data + case "refLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaLTE = data - case "commitShaContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaContains")) + it.RefLTE = data + case "refContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaContains = data - case "commitShaHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaHasPrefix")) + it.RefContains = data + case "refHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaHasPrefix = data - case "commitShaHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaHasSuffix")) + it.RefHasPrefix = data + case "refHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaHasSuffix = data - case "commitShaIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaIsNil")) + it.RefHasSuffix = data + case "refIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refIsNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.CommitShaIsNil = data - case "commitShaNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaNotNil")) + it.RefIsNil = data + case "refNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refNotNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.CommitShaNotNil = data - case "commitShaEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaEqualFold")) + it.RefNotNil = data + case "refEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaEqualFold = data - case "commitShaContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitShaContainsFold")) + it.RefEqualFold = data + case "refContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.CommitShaContainsFold = data - case "actor": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actor")) + it.RefContainsFold = data + case "refURL": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURL")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.Actor = data - case "actorNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorNEQ")) + it.RefURL = data + case "refURLNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLNEQ")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorNEQ = data - case "actorIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorIn")) + it.RefURLNEQ = data + case "refURLIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.ActorIn = data - case "actorNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorNotIn")) + it.RefURLIn = data + case "refURLNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.ActorNotIn = data - case "actorGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorGT")) + it.RefURLNotIn = data + case "refURLGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorGT = data - case "actorGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorGTE")) + it.RefURLGT = data + case "refURLGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorGTE = data - case "actorLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorLT")) + it.RefURLGTE = data + case "refURLLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorLT = data - case "actorLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorLTE")) + it.RefURLLT = data + case "refURLLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorLTE = data - case "actorContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorContains")) + it.RefURLLTE = data + case "refURLContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorContains = data - case "actorHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorHasPrefix")) + it.RefURLContains = data + case "refURLHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorHasPrefix = data - case "actorHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorHasSuffix")) + it.RefURLHasPrefix = data + case "refURLHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorHasSuffix = data - case "actorIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorIsNil")) + it.RefURLHasSuffix = data + case "refURLIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLIsNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.ActorIsNil = data - case "actorNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorNotNil")) + it.RefURLIsNil = data + case "refURLNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLNotNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.ActorNotNil = data - case "actorEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorEqualFold")) + it.RefURLNotNil = data + case "refURLEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorEqualFold = data - case "actorContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actorContainsFold")) + it.RefURLEqualFold = data + case "refURLContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("refURLContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.ActorContainsFold = data - case "eventName": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventName")) + it.RefURLContainsFold = data + case "commit": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commit")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventName = data - case "eventNameNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameNEQ")) + it.Commit = data + case "commitNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitNEQ")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameNEQ = data - case "eventNameIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameIn")) + it.CommitNEQ = data + case "commitIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.EventNameIn = data - case "eventNameNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameNotIn")) + it.CommitIn = data + case "commitNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.EventNameNotIn = data - case "eventNameGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameGT")) + it.CommitNotIn = data + case "commitGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameGT = data - case "eventNameGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameGTE")) + it.CommitGT = data + case "commitGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameGTE = data - case "eventNameLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameLT")) + it.CommitGTE = data + case "commitLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameLT = data - case "eventNameLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameLTE")) + it.CommitLT = data + case "commitLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameLTE = data - case "eventNameContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameContains")) + it.CommitLTE = data + case "commitContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameContains = data - case "eventNameHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameHasPrefix")) + it.CommitContains = data + case "commitHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameHasPrefix = data - case "eventNameHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameHasSuffix")) + it.CommitHasPrefix = data + case "commitHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameHasSuffix = data - case "eventNameIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameIsNil")) + it.CommitHasSuffix = data + case "commitIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitIsNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.EventNameIsNil = data - case "eventNameNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameNotNil")) + it.CommitIsNil = data + case "commitNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitNotNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.EventNameNotNil = data - case "eventNameEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameEqualFold")) + it.CommitNotNil = data + case "commitEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameEqualFold = data - case "eventNameContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("eventNameContainsFold")) + it.CommitEqualFold = data + case "commitContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.EventNameContainsFold = data - case "workflow": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflow")) + it.CommitContainsFold = data + case "commitURL": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURL")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.Workflow = data - case "workflowNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowNEQ")) + it.CommitURL = data + case "commitURLNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLNEQ")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowNEQ = data - case "workflowIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowIn")) + it.CommitURLNEQ = data + case "commitURLIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.WorkflowIn = data - case "workflowNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowNotIn")) + it.CommitURLIn = data + case "commitURLNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLNotIn")) data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) if err != nil { return it, err } - it.WorkflowNotIn = data - case "workflowGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowGT")) + it.CommitURLNotIn = data + case "commitURLGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLGT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowGT = data - case "workflowGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowGTE")) + it.CommitURLGT = data + case "commitURLGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLGTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowGTE = data - case "workflowLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowLT")) + it.CommitURLGTE = data + case "commitURLLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLLT")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowLT = data - case "workflowLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowLTE")) + it.CommitURLLT = data + case "commitURLLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLLTE")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowLTE = data - case "workflowContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowContains")) + it.CommitURLLTE = data + case "commitURLContains": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLContains")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowContains = data - case "workflowHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowHasPrefix")) + it.CommitURLContains = data + case "commitURLHasPrefix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLHasPrefix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowHasPrefix = data - case "workflowHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowHasSuffix")) + it.CommitURLHasPrefix = data + case "commitURLHasSuffix": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLHasSuffix")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowHasSuffix = data - case "workflowIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowIsNil")) + it.CommitURLHasSuffix = data + case "commitURLIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLIsNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.WorkflowIsNil = data - case "workflowNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowNotNil")) + it.CommitURLIsNil = data + case "commitURLNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLNotNil")) data, err := ec.unmarshalOBoolean2bool(ctx, v) if err != nil { return it, err } - it.WorkflowNotNil = data - case "workflowEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowEqualFold")) + it.CommitURLNotNil = data + case "commitURLEqualFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLEqualFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowEqualFold = data - case "workflowContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workflowContainsFold")) + it.CommitURLEqualFold = data + case "commitURLContainsFold": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("commitURLContainsFold")) data, err := ec.unmarshalOString2ᚖstring(ctx, v) if err != nil { return it, err } - it.WorkflowContainsFold = data - case "runID": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runID")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunID = data - case "runIDNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDNEQ = data - case "runIDIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunIDIn = data - case "runIDNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunIDNotIn = data - case "runIDGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDGT = data - case "runIDGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDGTE = data - case "runIDLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDLT = data - case "runIDLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDLTE = data - case "runIDContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDContains = data - case "runIDHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDHasPrefix = data - case "runIDHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDHasSuffix = data - case "runIDIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunIDIsNil = data - case "runIDNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunIDNotNil = data - case "runIDEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDEqualFold = data - case "runIDContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runIDContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunIDContainsFold = data - case "runNumber": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumber")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumber = data - case "runNumberNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberNEQ = data - case "runNumberIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunNumberIn = data - case "runNumberNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunNumberNotIn = data - case "runNumberGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberGT = data - case "runNumberGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberGTE = data - case "runNumberLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberLT = data - case "runNumberLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberLTE = data - case "runNumberContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberContains = data - case "runNumberHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberHasPrefix = data - case "runNumberHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberHasSuffix = data - case "runNumberIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunNumberIsNil = data - case "runNumberNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunNumberNotNil = data - case "runNumberEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberEqualFold = data - case "runNumberContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runNumberContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunNumberContainsFold = data - case "job": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("job")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.Job = data - case "jobNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobNEQ = data - case "jobIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.JobIn = data - case "jobNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.JobNotIn = data - case "jobGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobGT = data - case "jobGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobGTE = data - case "jobLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobLT = data - case "jobLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobLTE = data - case "jobContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobContains = data - case "jobHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobHasPrefix = data - case "jobHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobHasSuffix = data - case "jobIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.JobIsNil = data - case "jobNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.JobNotNil = data - case "jobEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobEqualFold = data - case "jobContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("jobContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.JobContainsFold = data - case "action": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("action")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.Action = data - case "actionNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionNEQ = data - case "actionIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.ActionIn = data - case "actionNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.ActionNotIn = data - case "actionGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionGT = data - case "actionGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionGTE = data - case "actionLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionLT = data - case "actionLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionLTE = data - case "actionContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionContains = data - case "actionHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionHasPrefix = data - case "actionHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionHasSuffix = data - case "actionIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.ActionIsNil = data - case "actionNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.ActionNotNil = data - case "actionEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionEqualFold = data - case "actionContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("actionContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.ActionContainsFold = data - case "runnerName": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerName")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerName = data - case "runnerNameNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameNEQ = data - case "runnerNameIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameIn = data - case "runnerNameNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameNotIn = data - case "runnerNameGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameGT = data - case "runnerNameGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameGTE = data - case "runnerNameLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameLT = data - case "runnerNameLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameLTE = data - case "runnerNameContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameContains = data - case "runnerNameHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameHasPrefix = data - case "runnerNameHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameHasSuffix = data - case "runnerNameIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameIsNil = data - case "runnerNameNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameNotNil = data - case "runnerNameEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameEqualFold = data - case "runnerNameContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerNameContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerNameContainsFold = data - case "runnerArch": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArch")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArch = data - case "runnerArchNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchNEQ = data - case "runnerArchIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchIn = data - case "runnerArchNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchNotIn = data - case "runnerArchGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchGT = data - case "runnerArchGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchGTE = data - case "runnerArchLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchLT = data - case "runnerArchLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchLTE = data - case "runnerArchContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchContains = data - case "runnerArchHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchHasPrefix = data - case "runnerArchHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchHasSuffix = data - case "runnerArchIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchIsNil = data - case "runnerArchNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchNotNil = data - case "runnerArchEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchEqualFold = data - case "runnerArchContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerArchContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerArchContainsFold = data - case "runnerOs": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOs")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOs = data - case "runnerOsNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsNEQ = data - case "runnerOsIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsIn = data - case "runnerOsNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsNotIn = data - case "runnerOsGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsGT = data - case "runnerOsGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsGTE = data - case "runnerOsLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsLT = data - case "runnerOsLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsLTE = data - case "runnerOsContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsContains = data - case "runnerOsHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsHasPrefix = data - case "runnerOsHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsHasSuffix = data - case "runnerOsIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsIsNil = data - case "runnerOsNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsNotNil = data - case "runnerOsEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsEqualFold = data - case "runnerOsContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("runnerOsContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.RunnerOsContainsFold = data - case "workspace": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspace")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.Workspace = data - case "workspaceNEQ": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceNEQ")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceNEQ = data - case "workspaceIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceIn = data - case "workspaceNotIn": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceNotIn")) - data, err := ec.unmarshalOString2ᚕstringᚄ(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceNotIn = data - case "workspaceGT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceGT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceGT = data - case "workspaceGTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceGTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceGTE = data - case "workspaceLT": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceLT")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceLT = data - case "workspaceLTE": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceLTE")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceLTE = data - case "workspaceContains": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceContains")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceContains = data - case "workspaceHasPrefix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceHasPrefix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceHasPrefix = data - case "workspaceHasSuffix": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceHasSuffix")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceHasSuffix = data - case "workspaceIsNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceIsNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceIsNil = data - case "workspaceNotNil": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceNotNil")) - data, err := ec.unmarshalOBoolean2bool(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceNotNil = data - case "workspaceEqualFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceEqualFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceEqualFold = data - case "workspaceContainsFold": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceContainsFold")) - data, err := ec.unmarshalOString2ᚖstring(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceContainsFold = data + it.CommitURLContainsFold = data case "hasBazelInvocation": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasBazelInvocation")) data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) @@ -36825,6 +36508,11 @@ func (ec *executionContext) _Node(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } return ec._InvocationTarget(ctx, sel, obj) + case *ent.InvocationTag: + if obj == nil { + return graphql.Null + } + return ec._InvocationTag(ctx, sel, obj) case *ent.InstanceName: if obj == nil { return graphql.Null @@ -36845,6 +36533,11 @@ func (ec *executionContext) _Node(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } return ec._Configuration(ctx, sel, obj) + case *ent.BuildTag: + if obj == nil { + return graphql.Null + } + return ec._BuildTag(ctx, sel, obj) case *ent.BuildGraphMetrics: if obj == nil { return graphql.Null @@ -37842,25 +37535,15 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select out.Values[i] = ec._BazelInvocation_startedAt(ctx, field, obj) case "endedAt": out.Values[i] = ec._BazelInvocation_endedAt(ctx, field, obj) - case "changeNumber": - out.Values[i] = ec._BazelInvocation_changeNumber(ctx, field, obj) - case "patchsetNumber": - out.Values[i] = ec._BazelInvocation_patchsetNumber(ctx, field, obj) case "bepCompleted": out.Values[i] = ec._BazelInvocation_bepCompleted(ctx, field, obj) if out.Values[i] == graphql.Null { atomic.AddUint32(&out.Invalids, 1) } - case "stepLabel": - out.Values[i] = ec._BazelInvocation_stepLabel(ctx, field, obj) - case "userEmail": - out.Values[i] = ec._BazelInvocation_userEmail(ctx, field, obj) - case "userLdap": - out.Values[i] = ec._BazelInvocation_userLdap(ctx, field, obj) + case "username": + out.Values[i] = ec._BazelInvocation_username(ctx, field, obj) case "hostname": out.Values[i] = ec._BazelInvocation_hostname(ctx, field, obj) - case "isCiWorker": - out.Values[i] = ec._BazelInvocation_isCiWorker(ctx, field, obj) case "numFetches": out.Values[i] = ec._BazelInvocation_numFetches(ctx, field, obj) case "bazelVersion": @@ -38070,16 +37753,19 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "connectionMetadata": + case "tags": field := field - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_connectionMetadata(ctx, field, obj) + res = ec._BazelInvocation_tags(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } return res } @@ -38103,7 +37789,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "configurations": + case "connectionMetadata": field := field innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { @@ -38112,7 +37798,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_configurations(ctx, field, obj) + res = ec._BazelInvocation_connectionMetadata(ctx, field, obj) return res } @@ -38136,7 +37822,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "actions": + case "configurations": field := field innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { @@ -38145,7 +37831,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_actions(ctx, field, obj) + res = ec._BazelInvocation_configurations(ctx, field, obj) return res } @@ -38169,7 +37855,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "metrics": + case "actions": field := field innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { @@ -38178,7 +37864,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_metrics(ctx, field, obj) + res = ec._BazelInvocation_actions(ctx, field, obj) return res } @@ -38202,19 +37888,16 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "invocationTargets": + case "metrics": field := field - innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_invocationTargets(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&fs.Invalids, 1) - } + res = ec._BazelInvocation_metrics(ctx, field, obj) return res } @@ -38238,16 +37921,19 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "sourceControl": + case "invocationTargets": field := field - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_sourceControl(ctx, field, obj) + res = ec._BazelInvocation_invocationTargets(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } return res } @@ -38271,7 +37957,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "user": + case "sourceControl": field := field innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { @@ -38280,7 +37966,7 @@ func (ec *executionContext) _BazelInvocation(ctx context.Context, sel ast.Select ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._BazelInvocation_user(ctx, field, obj) + res = ec._BazelInvocation_sourceControl(ctx, field, obj) return res } @@ -38494,11 +38180,6 @@ func (ec *executionContext) _Build(ctx context.Context, sel ast.SelectionSet, ob } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "buildURL": - out.Values[i] = ec._Build_buildURL(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&out.Invalids, 1) - } case "buildUUID": out.Values[i] = ec._Build_buildUUID(ctx, field, obj) if out.Values[i] == graphql.Null { @@ -38580,6 +38261,42 @@ func (ec *executionContext) _Build(ctx context.Context, sel ast.SelectionSet, ob continue } + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "tags": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Build_tags(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) @@ -38691,104 +38408,307 @@ func (ec *executionContext) _BuildEdge(ctx context.Context, sel ast.SelectionSet return out } -var buildGraphMetricsImplementors = []string{"BuildGraphMetrics", "Node"} +var buildGraphMetricsImplementors = []string{"BuildGraphMetrics", "Node"} + +func (ec *executionContext) _BuildGraphMetrics(ctx context.Context, sel ast.SelectionSet, obj *ent.BuildGraphMetrics) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, buildGraphMetricsImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("BuildGraphMetrics") + case "id": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._BuildGraphMetrics_id(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "actionLookupValueCount": + out.Values[i] = ec._BuildGraphMetrics_actionLookupValueCount(ctx, field, obj) + case "actionLookupValueCountNotIncludingAspects": + out.Values[i] = ec._BuildGraphMetrics_actionLookupValueCountNotIncludingAspects(ctx, field, obj) + case "actionCount": + out.Values[i] = ec._BuildGraphMetrics_actionCount(ctx, field, obj) + case "actionCountNotIncludingAspects": + out.Values[i] = ec._BuildGraphMetrics_actionCountNotIncludingAspects(ctx, field, obj) + case "inputFileConfiguredTargetCount": + out.Values[i] = ec._BuildGraphMetrics_inputFileConfiguredTargetCount(ctx, field, obj) + case "outputFileConfiguredTargetCount": + out.Values[i] = ec._BuildGraphMetrics_outputFileConfiguredTargetCount(ctx, field, obj) + case "otherConfiguredTargetCount": + out.Values[i] = ec._BuildGraphMetrics_otherConfiguredTargetCount(ctx, field, obj) + case "outputArtifactCount": + out.Values[i] = ec._BuildGraphMetrics_outputArtifactCount(ctx, field, obj) + case "postInvocationSkyframeNodeCount": + out.Values[i] = ec._BuildGraphMetrics_postInvocationSkyframeNodeCount(ctx, field, obj) + case "metrics": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._BuildGraphMetrics_metrics(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var buildTagImplementors = []string{"BuildTag", "Node"} + +func (ec *executionContext) _BuildTag(ctx context.Context, sel ast.SelectionSet, obj *ent.BuildTag) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, buildTagImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("BuildTag") + case "id": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._BuildTag_id(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "key": + out.Values[i] = ec._BuildTag_key(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } + case "value": + out.Values[i] = ec._BuildTag_value(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } + case "build": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._BuildTag_build(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var buildTagConnectionImplementors = []string{"BuildTagConnection"} + +func (ec *executionContext) _BuildTagConnection(ctx context.Context, sel ast.SelectionSet, obj *ent.BuildTagConnection) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, buildTagConnectionImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("BuildTagConnection") + case "edges": + out.Values[i] = ec._BuildTagConnection_edges(ctx, field, obj) + case "pageInfo": + out.Values[i] = ec._BuildTagConnection_pageInfo(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "totalCount": + out.Values[i] = ec._BuildTagConnection_totalCount(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var buildTagEdgeImplementors = []string{"BuildTagEdge"} -func (ec *executionContext) _BuildGraphMetrics(ctx context.Context, sel ast.SelectionSet, obj *ent.BuildGraphMetrics) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, buildGraphMetricsImplementors) +func (ec *executionContext) _BuildTagEdge(ctx context.Context, sel ast.SelectionSet, obj *ent.BuildTagEdge) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, buildTagEdgeImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("BuildGraphMetrics") - case "id": - field := field - - innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._BuildGraphMetrics_id(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&fs.Invalids, 1) - } - return res - } - - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) - - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue - } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "actionLookupValueCount": - out.Values[i] = ec._BuildGraphMetrics_actionLookupValueCount(ctx, field, obj) - case "actionLookupValueCountNotIncludingAspects": - out.Values[i] = ec._BuildGraphMetrics_actionLookupValueCountNotIncludingAspects(ctx, field, obj) - case "actionCount": - out.Values[i] = ec._BuildGraphMetrics_actionCount(ctx, field, obj) - case "actionCountNotIncludingAspects": - out.Values[i] = ec._BuildGraphMetrics_actionCountNotIncludingAspects(ctx, field, obj) - case "inputFileConfiguredTargetCount": - out.Values[i] = ec._BuildGraphMetrics_inputFileConfiguredTargetCount(ctx, field, obj) - case "outputFileConfiguredTargetCount": - out.Values[i] = ec._BuildGraphMetrics_outputFileConfiguredTargetCount(ctx, field, obj) - case "otherConfiguredTargetCount": - out.Values[i] = ec._BuildGraphMetrics_otherConfiguredTargetCount(ctx, field, obj) - case "outputArtifactCount": - out.Values[i] = ec._BuildGraphMetrics_outputArtifactCount(ctx, field, obj) - case "postInvocationSkyframeNodeCount": - out.Values[i] = ec._BuildGraphMetrics_postInvocationSkyframeNodeCount(ctx, field, obj) - case "metrics": - field := field - - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._BuildGraphMetrics_metrics(ctx, field, obj) - return res - } - - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) - - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue + out.Values[i] = graphql.MarshalString("BuildTagEdge") + case "node": + out.Values[i] = ec._BuildTagEdge_node(ctx, field, obj) + case "cursor": + out.Values[i] = ec._BuildTagEdge_cursor(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -39331,110 +39251,313 @@ func (ec *executionContext) _InstanceName(ctx context.Context, sel ast.Selection } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "name": - out.Values[i] = ec._InstanceName_name(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&out.Invalids, 1) - } - case "bazelInvocations": - field := field + case "name": + out.Values[i] = ec._InstanceName_name(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } + case "bazelInvocations": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._InstanceName_bazelInvocations(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "builds": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._InstanceName_builds(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "targets": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._InstanceName_targets(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var invocationTagImplementors = []string{"InvocationTag", "Node"} + +func (ec *executionContext) _InvocationTag(ctx context.Context, sel ast.SelectionSet, obj *ent.InvocationTag) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, invocationTagImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("InvocationTag") + case "id": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._InvocationTag_id(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "key": + out.Values[i] = ec._InvocationTag_key(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } + case "value": + out.Values[i] = ec._InvocationTag_value(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } + case "bazelInvocation": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._InvocationTag_bazelInvocation(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._InstanceName_bazelInvocations(ctx, field, obj) - return res - } + atomic.AddInt32(&ec.deferred, int32(len(deferred))) - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue - } + return out +} - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "builds": - field := field +var invocationTagConnectionImplementors = []string{"InvocationTagConnection"} - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._InstanceName_builds(ctx, field, obj) - return res +func (ec *executionContext) _InvocationTagConnection(ctx context.Context, sel ast.SelectionSet, obj *ent.InvocationTagConnection) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, invocationTagConnectionImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("InvocationTagConnection") + case "edges": + out.Values[i] = ec._InvocationTagConnection_edges(ctx, field, obj) + case "pageInfo": + out.Values[i] = ec._InvocationTagConnection_pageInfo(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ } + case "totalCount": + out.Values[i] = ec._InvocationTagConnection_totalCount(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) + atomic.AddInt32(&ec.deferred, int32(len(deferred))) - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue - } + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "targets": - field := field + return out +} - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._InstanceName_targets(ctx, field, obj) - return res - } +var invocationTagEdgeImplementors = []string{"InvocationTagEdge"} - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) +func (ec *executionContext) _InvocationTagEdge(ctx context.Context, sel ast.SelectionSet, obj *ent.InvocationTagEdge) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, invocationTagEdgeImplementors) - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("InvocationTagEdge") + case "node": + out.Values[i] = ec._InvocationTagEdge_node(ctx, field, obj) + case "cursor": + out.Values[i] = ec._InvocationTagEdge_cursor(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -41013,38 +41136,18 @@ func (ec *executionContext) _SourceControl(ctx context.Context, sel ast.Selectio } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "provider": - out.Values[i] = ec._SourceControl_provider(ctx, field, obj) - case "instanceURL": - out.Values[i] = ec._SourceControl_instanceURL(ctx, field, obj) case "repo": out.Values[i] = ec._SourceControl_repo(ctx, field, obj) - case "refs": - out.Values[i] = ec._SourceControl_refs(ctx, field, obj) - case "commitSha": - out.Values[i] = ec._SourceControl_commitSha(ctx, field, obj) - case "actor": - out.Values[i] = ec._SourceControl_actor(ctx, field, obj) - case "eventName": - out.Values[i] = ec._SourceControl_eventName(ctx, field, obj) - case "workflow": - out.Values[i] = ec._SourceControl_workflow(ctx, field, obj) - case "runID": - out.Values[i] = ec._SourceControl_runID(ctx, field, obj) - case "runNumber": - out.Values[i] = ec._SourceControl_runNumber(ctx, field, obj) - case "job": - out.Values[i] = ec._SourceControl_job(ctx, field, obj) - case "action": - out.Values[i] = ec._SourceControl_action(ctx, field, obj) - case "runnerName": - out.Values[i] = ec._SourceControl_runnerName(ctx, field, obj) - case "runnerArch": - out.Values[i] = ec._SourceControl_runnerArch(ctx, field, obj) - case "runnerOs": - out.Values[i] = ec._SourceControl_runnerOs(ctx, field, obj) - case "workspace": - out.Values[i] = ec._SourceControl_workspace(ctx, field, obj) + case "repoURL": + out.Values[i] = ec._SourceControl_repoURL(ctx, field, obj) + case "ref": + out.Values[i] = ec._SourceControl_ref(ctx, field, obj) + case "refURL": + out.Values[i] = ec._SourceControl_refURL(ctx, field, obj) + case "commit": + out.Values[i] = ec._SourceControl_commit(ctx, field, obj) + case "commitURL": + out.Values[i] = ec._SourceControl_commitURL(ctx, field, obj) case "bazelInvocation": field := field @@ -42112,132 +42215,19 @@ func (ec *executionContext) _TestTarget(ctx context.Context, sel ast.SelectionSe } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "target": - field := field - - innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._TestTarget_target(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&fs.Invalids, 1) - } - return res - } - - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) - - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue - } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch(ctx) - if out.Invalids > 0 { - return graphql.Null - } - - atomic.AddInt32(&ec.deferred, int32(len(deferred))) - - for label, dfs := range deferred { - ec.processDeferredGroup(graphql.DeferredGroup{ - Label: label, - Path: graphql.GetPath(ctx), - FieldSet: dfs, - Context: ctx, - }) - } - - return out -} - -var timingMetricsImplementors = []string{"TimingMetrics", "Node"} - -func (ec *executionContext) _TimingMetrics(ctx context.Context, sel ast.SelectionSet, obj *ent.TimingMetrics) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, timingMetricsImplementors) - - out := graphql.NewFieldSet(fields) - deferred := make(map[string]*graphql.FieldSet) - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("TimingMetrics") - case "id": - field := field - - innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._TimingMetrics_id(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&fs.Invalids, 1) - } - return res - } - - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) - - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue - } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) - case "cpuTimeInMs": - out.Values[i] = ec._TimingMetrics_cpuTimeInMs(ctx, field, obj) - case "wallTimeInMs": - out.Values[i] = ec._TimingMetrics_wallTimeInMs(ctx, field, obj) - case "analysisPhaseTimeInMs": - out.Values[i] = ec._TimingMetrics_analysisPhaseTimeInMs(ctx, field, obj) - case "executionPhaseTimeInMs": - out.Values[i] = ec._TimingMetrics_executionPhaseTimeInMs(ctx, field, obj) - case "actionsExecutionStartInMs": - out.Values[i] = ec._TimingMetrics_actionsExecutionStartInMs(ctx, field, obj) - case "metrics": + case "target": field := field - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._TimingMetrics_metrics(ctx, field, obj) + res = ec._TestTarget_target(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } return res } @@ -42284,32 +42274,96 @@ func (ec *executionContext) _TimingMetrics(ctx context.Context, sel ast.Selectio return out } -var userImplementors = []string{"User"} +var timingMetricsImplementors = []string{"TimingMetrics", "Node"} -func (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *model.User) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, userImplementors) +func (ec *executionContext) _TimingMetrics(ctx context.Context, sel ast.SelectionSet, obj *ent.TimingMetrics) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, timingMetricsImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("User") + out.Values[i] = graphql.MarshalString("TimingMetrics") case "id": - out.Values[i] = ec._User_id(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._TimingMetrics_id(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res } - case "Email": - out.Values[i] = ec._User_Email(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue } - case "LDAP": - out.Values[i] = ec._User_LDAP(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "cpuTimeInMs": + out.Values[i] = ec._TimingMetrics_cpuTimeInMs(ctx, field, obj) + case "wallTimeInMs": + out.Values[i] = ec._TimingMetrics_wallTimeInMs(ctx, field, obj) + case "analysisPhaseTimeInMs": + out.Values[i] = ec._TimingMetrics_analysisPhaseTimeInMs(ctx, field, obj) + case "executionPhaseTimeInMs": + out.Values[i] = ec._TimingMetrics_executionPhaseTimeInMs(ctx, field, obj) + case "actionsExecutionStartInMs": + out.Values[i] = ec._TimingMetrics_actionsExecutionStartInMs(ctx, field, obj) + case "metrics": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._TimingMetrics_metrics(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -42824,6 +42878,37 @@ func (ec *executionContext) marshalNBuildOrderField2ᚖgithubᚗcomᚋbuildbarn return v } +func (ec *executionContext) marshalNBuildTagConnection2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagConnection(ctx context.Context, sel ast.SelectionSet, v *ent.BuildTagConnection) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._BuildTagConnection(ctx, sel, v) +} + +func (ec *executionContext) unmarshalNBuildTagOrderField2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagOrderField(ctx context.Context, v any) (*ent.BuildTagOrderField, error) { + var res = new(ent.BuildTagOrderField) + err := res.UnmarshalGQL(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNBuildTagOrderField2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagOrderField(ctx context.Context, sel ast.SelectionSet, v *ent.BuildTagOrderField) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return v +} + +func (ec *executionContext) unmarshalNBuildTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInput(ctx context.Context, v any) (*ent.BuildTagWhereInput, error) { + res, err := ec.unmarshalInputBuildTagWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + func (ec *executionContext) unmarshalNBuildWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildWhereInput(ctx context.Context, v any) (*ent.BuildWhereInput, error) { res, err := ec.unmarshalInputBuildWhereInput(ctx, v) return &res, graphql.ErrorOnPath(ctx, err) @@ -42999,6 +43084,37 @@ func (ec *executionContext) marshalNInt2uint64(ctx context.Context, sel ast.Sele return res } +func (ec *executionContext) marshalNInvocationTagConnection2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagConnection(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTagConnection) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._InvocationTagConnection(ctx, sel, v) +} + +func (ec *executionContext) unmarshalNInvocationTagOrderField2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagOrderField(ctx context.Context, v any) (*ent.InvocationTagOrderField, error) { + var res = new(ent.InvocationTagOrderField) + err := res.UnmarshalGQL(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNInvocationTagOrderField2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagOrderField(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTagOrderField) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return v +} + +func (ec *executionContext) unmarshalNInvocationTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInput(ctx context.Context, v any) (*ent.InvocationTagWhereInput, error) { + res, err := ec.unmarshalInputInvocationTagWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + func (ec *executionContext) marshalNInvocationTarget2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTarget(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTarget) graphql.Marshaler { if v == nil { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { @@ -43147,14 +43263,14 @@ func (ec *executionContext) unmarshalNRunnerCountWhereInput2ᚖgithubᚗcomᚋbu return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalNSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx context.Context, v any) (sourcecontrol.Provider, error) { - var res sourcecontrol.Provider - err := res.UnmarshalGQL(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalNSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx context.Context, sel ast.SelectionSet, v sourcecontrol.Provider) graphql.Marshaler { - return v +func (ec *executionContext) marshalNSourceControl2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControl(ctx context.Context, sel ast.SelectionSet, v *ent.SourceControl) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._SourceControl(ctx, sel, v) } func (ec *executionContext) unmarshalNSourceControlWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControlWhereInput(ctx context.Context, v any) (*ent.SourceControlWhereInput, error) { @@ -44097,7 +44213,103 @@ func (ec *executionContext) marshalOBuildEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋb if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalOBuildEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildEdge(ctx, sel, v[i]) + ret[i] = ec.marshalOBuildEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildEdge(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + return ret +} + +func (ec *executionContext) marshalOBuildEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildEdge(ctx context.Context, sel ast.SelectionSet, v *ent.BuildEdge) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._BuildEdge(ctx, sel, v) +} + +func (ec *executionContext) marshalOBuildGraphMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.BuildGraphMetrics) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._BuildGraphMetrics(ctx, sel, v) +} + +func (ec *executionContext) unmarshalOBuildGraphMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.BuildGraphMetricsWhereInput, error) { + if v == nil { + return nil, nil + } + var vSlice []any + vSlice = graphql.CoerceList(v) + var err error + res := make([]*ent.BuildGraphMetricsWhereInput, len(vSlice)) + for i := range vSlice { + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) + res[i], err = ec.unmarshalNBuildGraphMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetricsWhereInput(ctx, vSlice[i]) + if err != nil { + return nil, err + } + } + return res, nil +} + +func (ec *executionContext) unmarshalOBuildGraphMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetricsWhereInput(ctx context.Context, v any) (*ent.BuildGraphMetricsWhereInput, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputBuildGraphMetricsWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) unmarshalOBuildOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildOrder(ctx context.Context, v any) (*ent.BuildOrder, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputBuildOrder(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOBuildTag2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTag(ctx context.Context, sel ast.SelectionSet, v *ent.BuildTag) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._BuildTag(ctx, sel, v) +} + +func (ec *executionContext) marshalOBuildTagEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagEdge(ctx context.Context, sel ast.SelectionSet, v []*ent.BuildTagEdge) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalOBuildTagEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagEdge(ctx, sel, v[i]) } if isLen1 { f(i) @@ -44111,31 +44323,32 @@ func (ec *executionContext) marshalOBuildEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋb return ret } -func (ec *executionContext) marshalOBuildEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildEdge(ctx context.Context, sel ast.SelectionSet, v *ent.BuildEdge) graphql.Marshaler { +func (ec *executionContext) marshalOBuildTagEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagEdge(ctx context.Context, sel ast.SelectionSet, v *ent.BuildTagEdge) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._BuildEdge(ctx, sel, v) + return ec._BuildTagEdge(ctx, sel, v) } -func (ec *executionContext) marshalOBuildGraphMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.BuildGraphMetrics) graphql.Marshaler { +func (ec *executionContext) unmarshalOBuildTagOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagOrder(ctx context.Context, v any) (*ent.BuildTagOrder, error) { if v == nil { - return graphql.Null + return nil, nil } - return ec._BuildGraphMetrics(ctx, sel, v) + res, err := ec.unmarshalInputBuildTagOrder(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalOBuildGraphMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.BuildGraphMetricsWhereInput, error) { +func (ec *executionContext) unmarshalOBuildTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInputᚄ(ctx context.Context, v any) ([]*ent.BuildTagWhereInput, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]*ent.BuildGraphMetricsWhereInput, len(vSlice)) + res := make([]*ent.BuildTagWhereInput, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNBuildGraphMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetricsWhereInput(ctx, vSlice[i]) + res[i], err = ec.unmarshalNBuildTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInput(ctx, vSlice[i]) if err != nil { return nil, err } @@ -44143,19 +44356,11 @@ func (ec *executionContext) unmarshalOBuildGraphMetricsWhereInput2ᚕᚖgithub return res, nil } -func (ec *executionContext) unmarshalOBuildGraphMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildGraphMetricsWhereInput(ctx context.Context, v any) (*ent.BuildGraphMetricsWhereInput, error) { +func (ec *executionContext) unmarshalOBuildTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildTagWhereInput(ctx context.Context, v any) (*ent.BuildTagWhereInput, error) { if v == nil { return nil, nil } - res, err := ec.unmarshalInputBuildGraphMetricsWhereInput(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) unmarshalOBuildOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐBuildOrder(ctx context.Context, v any) (*ent.BuildOrder, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalInputBuildOrder(ctx, v) + res, err := ec.unmarshalInputBuildTagWhereInput(ctx, v) return &res, graphql.ErrorOnPath(ctx, err) } @@ -44467,18 +44672,6 @@ func (ec *executionContext) unmarshalOInstanceNameWhereInput2ᚖgithubᚗcomᚋb return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalOInt2int(ctx context.Context, v any) (int, error) { - res, err := graphql.UnmarshalInt(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalOInt2int(ctx context.Context, sel ast.SelectionSet, v int) graphql.Marshaler { - _ = sel - _ = ctx - res := graphql.MarshalInt(v) - return res -} - func (ec *executionContext) unmarshalOInt2int32(ctx context.Context, v any) (int32, error) { res, err := graphql.UnmarshalInt32(v) return res, graphql.ErrorOnPath(ctx, err) @@ -44587,42 +44780,6 @@ func (ec *executionContext) marshalOInt2ᚕint64ᚄ(ctx context.Context, sel ast return ret } -func (ec *executionContext) unmarshalOInt2ᚕintᚄ(ctx context.Context, v any) ([]int, error) { - if v == nil { - return nil, nil - } - var vSlice []any - vSlice = graphql.CoerceList(v) - var err error - res := make([]int, len(vSlice)) - for i := range vSlice { - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNInt2int(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) marshalOInt2ᚕintᚄ(ctx context.Context, sel ast.SelectionSet, v []int) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - for i := range v { - ret[i] = ec.marshalNInt2int(ctx, sel, v[i]) - } - - for _, e := range ret { - if e == graphql.Null { - return graphql.Null - } - } - - return ret -} - func (ec *executionContext) unmarshalOInt2ᚕuint64ᚄ(ctx context.Context, v any) ([]uint64, error) { if v == nil { return nil, nil @@ -44731,7 +44888,14 @@ func (ec *executionContext) marshalOInt2ᚖuint64(ctx context.Context, sel ast.S return res } -func (ec *executionContext) marshalOInvocationTarget2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.InvocationTarget) graphql.Marshaler { +func (ec *executionContext) marshalOInvocationTag2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTag(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTag) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._InvocationTag(ctx, sel, v) +} + +func (ec *executionContext) marshalOInvocationTagEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagEdge(ctx context.Context, sel ast.SelectionSet, v []*ent.InvocationTagEdge) graphql.Marshaler { if v == nil { return graphql.Null } @@ -44758,7 +44922,7 @@ func (ec *executionContext) marshalOInvocationTarget2ᚕᚖgithubᚗcomᚋbuildb if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNInvocationTarget2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTarget(ctx, sel, v[i]) + ret[i] = ec.marshalOInvocationTagEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagEdge(ctx, sel, v[i]) } if isLen1 { f(i) @@ -44769,33 +44933,35 @@ func (ec *executionContext) marshalOInvocationTarget2ᚕᚖgithubᚗcomᚋbuildb } wg.Wait() - for _, e := range ret { - if e == graphql.Null { - return graphql.Null - } - } - return ret } -func (ec *executionContext) marshalOInvocationTarget2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTarget(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTarget) graphql.Marshaler { +func (ec *executionContext) marshalOInvocationTagEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagEdge(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTagEdge) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._InvocationTarget(ctx, sel, v) + return ec._InvocationTagEdge(ctx, sel, v) } -func (ec *executionContext) unmarshalOInvocationTargetAbortReason2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReasonᚄ(ctx context.Context, v any) ([]invocationtarget.AbortReason, error) { +func (ec *executionContext) unmarshalOInvocationTagOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagOrder(ctx context.Context, v any) (*ent.InvocationTagOrder, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputInvocationTagOrder(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) unmarshalOInvocationTagWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInputᚄ(ctx context.Context, v any) ([]*ent.InvocationTagWhereInput, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]invocationtarget.AbortReason, len(vSlice)) + res := make([]*ent.InvocationTagWhereInput, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNInvocationTargetAbortReason2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx, vSlice[i]) + res[i], err = ec.unmarshalNInvocationTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInput(ctx, vSlice[i]) if err != nil { return nil, err } @@ -44803,70 +44969,15 @@ func (ec *executionContext) unmarshalOInvocationTargetAbortReason2ᚕgithubᚗco return res, nil } -func (ec *executionContext) marshalOInvocationTargetAbortReason2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReasonᚄ(ctx context.Context, sel ast.SelectionSet, v []invocationtarget.AbortReason) graphql.Marshaler { - if v == nil { - return graphql.Null - } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNInvocationTargetAbortReason2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - - for _, e := range ret { - if e == graphql.Null { - return graphql.Null - } - } - - return ret -} - -func (ec *executionContext) unmarshalOInvocationTargetAbortReason2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx context.Context, v any) (*invocationtarget.AbortReason, error) { +func (ec *executionContext) unmarshalOInvocationTagWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTagWhereInput(ctx context.Context, v any) (*ent.InvocationTagWhereInput, error) { if v == nil { return nil, nil } - var res = new(invocationtarget.AbortReason) - err := res.UnmarshalGQL(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalOInvocationTargetAbortReason2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx context.Context, sel ast.SelectionSet, v *invocationtarget.AbortReason) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return v + res, err := ec.unmarshalInputInvocationTagWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalOInvocationTargetEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetEdge(ctx context.Context, sel ast.SelectionSet, v []*ent.InvocationTargetEdge) graphql.Marshaler { +func (ec *executionContext) marshalOInvocationTarget2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.InvocationTarget) graphql.Marshaler { if v == nil { return graphql.Null } @@ -44893,7 +45004,7 @@ func (ec *executionContext) marshalOInvocationTargetEdge2ᚕᚖgithubᚗcomᚋbu if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalOInvocationTargetEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetEdge(ctx, sel, v[i]) + ret[i] = ec.marshalNInvocationTarget2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTarget(ctx, sel, v[i]) } if isLen1 { f(i) @@ -44904,119 +45015,33 @@ func (ec *executionContext) marshalOInvocationTargetEdge2ᚕᚖgithubᚗcomᚋbu } wg.Wait() - return ret -} - -func (ec *executionContext) marshalOInvocationTargetEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetEdge(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTargetEdge) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._InvocationTargetEdge(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOInvocationTargetOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetOrder(ctx context.Context, v any) (*ent.InvocationTargetOrder, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalInputInvocationTargetOrder(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) unmarshalOInvocationTargetWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetWhereInputᚄ(ctx context.Context, v any) ([]*ent.InvocationTargetWhereInput, error) { - if v == nil { - return nil, nil - } - var vSlice []any - vSlice = graphql.CoerceList(v) - var err error - res := make([]*ent.InvocationTargetWhereInput, len(vSlice)) - for i := range vSlice { - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNInvocationTargetWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetWhereInput(ctx, vSlice[i]) - if err != nil { - return nil, err - } - } - return res, nil -} - -func (ec *executionContext) unmarshalOInvocationTargetWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetWhereInput(ctx context.Context, v any) (*ent.InvocationTargetWhereInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalInputInvocationTargetWhereInput(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) unmarshalOMap2map(ctx context.Context, v any) (map[string]any, error) { - if v == nil { - return nil, nil - } - res, err := graphql.UnmarshalMap(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalOMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler { - if v == nil { - return graphql.Null - } - _ = sel - _ = ctx - res := graphql.MarshalMap(v) - return res -} - -func (ec *executionContext) marshalOMemoryMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.MemoryMetrics) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._MemoryMetrics(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOMemoryMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.MemoryMetricsWhereInput, error) { - if v == nil { - return nil, nil - } - var vSlice []any - vSlice = graphql.CoerceList(v) - var err error - res := make([]*ent.MemoryMetricsWhereInput, len(vSlice)) - for i := range vSlice { - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNMemoryMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetricsWhereInput(ctx, vSlice[i]) - if err != nil { - return nil, err + for _, e := range ret { + if e == graphql.Null { + return graphql.Null } } - return res, nil -} -func (ec *executionContext) unmarshalOMemoryMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetricsWhereInput(ctx context.Context, v any) (*ent.MemoryMetricsWhereInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalInputMemoryMetricsWhereInput(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) + return ret } -func (ec *executionContext) marshalOMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.Metrics) graphql.Marshaler { +func (ec *executionContext) marshalOInvocationTarget2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTarget(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTarget) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._Metrics(ctx, sel, v) + return ec._InvocationTarget(ctx, sel, v) } -func (ec *executionContext) unmarshalOMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.MetricsWhereInput, error) { +func (ec *executionContext) unmarshalOInvocationTargetAbortReason2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReasonᚄ(ctx context.Context, v any) ([]invocationtarget.AbortReason, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]*ent.MetricsWhereInput, len(vSlice)) + res := make([]invocationtarget.AbortReason, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetricsWhereInput(ctx, vSlice[i]) + res[i], err = ec.unmarshalNInvocationTargetAbortReason2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx, vSlice[i]) if err != nil { return nil, err } @@ -45024,15 +45049,7 @@ func (ec *executionContext) unmarshalOMetricsWhereInput2ᚕᚖgithubᚗcomᚋbui return res, nil } -func (ec *executionContext) unmarshalOMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetricsWhereInput(ctx context.Context, v any) (*ent.MetricsWhereInput, error) { - if v == nil { - return nil, nil - } - res, err := ec.unmarshalInputMetricsWhereInput(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalOMissDetail2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.MissDetail) graphql.Marshaler { +func (ec *executionContext) marshalOInvocationTargetAbortReason2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReasonᚄ(ctx context.Context, sel ast.SelectionSet, v []invocationtarget.AbortReason) graphql.Marshaler { if v == nil { return graphql.Null } @@ -45059,7 +45076,7 @@ func (ec *executionContext) marshalOMissDetail2ᚕᚖgithubᚗcomᚋbuildbarnᚋ if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNMissDetail2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetail(ctx, sel, v[i]) + ret[i] = ec.marshalNInvocationTargetAbortReason2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx, sel, v[i]) } if isLen1 { f(i) @@ -45079,17 +45096,89 @@ func (ec *executionContext) marshalOMissDetail2ᚕᚖgithubᚗcomᚋbuildbarnᚋ return ret } -func (ec *executionContext) unmarshalOMissDetailWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailWhereInputᚄ(ctx context.Context, v any) ([]*ent.MissDetailWhereInput, error) { +func (ec *executionContext) unmarshalOInvocationTargetAbortReason2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx context.Context, v any) (*invocationtarget.AbortReason, error) { + if v == nil { + return nil, nil + } + var res = new(invocationtarget.AbortReason) + err := res.UnmarshalGQL(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOInvocationTargetAbortReason2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋinvocationtargetᚐAbortReason(ctx context.Context, sel ast.SelectionSet, v *invocationtarget.AbortReason) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return v +} + +func (ec *executionContext) marshalOInvocationTargetEdge2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetEdge(ctx context.Context, sel ast.SelectionSet, v []*ent.InvocationTargetEdge) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalOInvocationTargetEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetEdge(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + return ret +} + +func (ec *executionContext) marshalOInvocationTargetEdge2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetEdge(ctx context.Context, sel ast.SelectionSet, v *ent.InvocationTargetEdge) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._InvocationTargetEdge(ctx, sel, v) +} + +func (ec *executionContext) unmarshalOInvocationTargetOrder2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetOrder(ctx context.Context, v any) (*ent.InvocationTargetOrder, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputInvocationTargetOrder(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) unmarshalOInvocationTargetWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetWhereInputᚄ(ctx context.Context, v any) ([]*ent.InvocationTargetWhereInput, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]*ent.MissDetailWhereInput, len(vSlice)) + res := make([]*ent.InvocationTargetWhereInput, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNMissDetailWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailWhereInput(ctx, vSlice[i]) + res[i], err = ec.unmarshalNInvocationTargetWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetWhereInput(ctx, vSlice[i]) if err != nil { return nil, err } @@ -45097,32 +45186,50 @@ func (ec *executionContext) unmarshalOMissDetailWhereInput2ᚕᚖgithubᚗcomᚋ return res, nil } -func (ec *executionContext) unmarshalOMissDetailWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailWhereInput(ctx context.Context, v any) (*ent.MissDetailWhereInput, error) { +func (ec *executionContext) unmarshalOInvocationTargetWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐInvocationTargetWhereInput(ctx context.Context, v any) (*ent.InvocationTargetWhereInput, error) { if v == nil { return nil, nil } - res, err := ec.unmarshalInputMissDetailWhereInput(ctx, v) + res, err := ec.unmarshalInputInvocationTargetWhereInput(ctx, v) return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalONetworkMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.NetworkMetrics) graphql.Marshaler { +func (ec *executionContext) unmarshalOMap2map(ctx context.Context, v any) (map[string]any, error) { + if v == nil { + return nil, nil + } + res, err := graphql.UnmarshalMap(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]any) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._NetworkMetrics(ctx, sel, v) + _ = sel + _ = ctx + res := graphql.MarshalMap(v) + return res } -func (ec *executionContext) unmarshalONetworkMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.NetworkMetricsWhereInput, error) { +func (ec *executionContext) marshalOMemoryMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.MemoryMetrics) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._MemoryMetrics(ctx, sel, v) +} + +func (ec *executionContext) unmarshalOMemoryMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.MemoryMetricsWhereInput, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]*ent.NetworkMetricsWhereInput, len(vSlice)) + res := make([]*ent.MemoryMetricsWhereInput, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNNetworkMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetricsWhereInput(ctx, vSlice[i]) + res[i], err = ec.unmarshalNMemoryMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetricsWhereInput(ctx, vSlice[i]) if err != nil { return nil, err } @@ -45130,29 +45237,48 @@ func (ec *executionContext) unmarshalONetworkMetricsWhereInput2ᚕᚖgithubᚗco return res, nil } -func (ec *executionContext) unmarshalONetworkMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetricsWhereInput(ctx context.Context, v any) (*ent.NetworkMetricsWhereInput, error) { +func (ec *executionContext) unmarshalOMemoryMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMemoryMetricsWhereInput(ctx context.Context, v any) (*ent.MemoryMetricsWhereInput, error) { if v == nil { return nil, nil } - res, err := ec.unmarshalInputNetworkMetricsWhereInput(ctx, v) + res, err := ec.unmarshalInputMemoryMetricsWhereInput(ctx, v) return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalONode2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNoder(ctx context.Context, sel ast.SelectionSet, v ent.Noder) graphql.Marshaler { +func (ec *executionContext) marshalOMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.Metrics) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._Node(ctx, sel, v) + return ec._Metrics(ctx, sel, v) } -func (ec *executionContext) marshalOProfile2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐProfile(ctx context.Context, sel ast.SelectionSet, v *model.Profile) graphql.Marshaler { +func (ec *executionContext) unmarshalOMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.MetricsWhereInput, error) { if v == nil { - return graphql.Null + return nil, nil } - return ec._Profile(ctx, sel, v) + var vSlice []any + vSlice = graphql.CoerceList(v) + var err error + res := make([]*ent.MetricsWhereInput, len(vSlice)) + for i := range vSlice { + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) + res[i], err = ec.unmarshalNMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetricsWhereInput(ctx, vSlice[i]) + if err != nil { + return nil, err + } + } + return res, nil } -func (ec *executionContext) marshalORunnerCount2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.RunnerCount) graphql.Marshaler { +func (ec *executionContext) unmarshalOMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMetricsWhereInput(ctx context.Context, v any) (*ent.MetricsWhereInput, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputMetricsWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOMissDetail2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.MissDetail) graphql.Marshaler { if v == nil { return graphql.Null } @@ -45179,7 +45305,7 @@ func (ec *executionContext) marshalORunnerCount2ᚕᚖgithubᚗcomᚋbuildbarn if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNRunnerCount2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCount(ctx, sel, v[i]) + ret[i] = ec.marshalNMissDetail2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetail(ctx, sel, v[i]) } if isLen1 { f(i) @@ -45199,17 +45325,17 @@ func (ec *executionContext) marshalORunnerCount2ᚕᚖgithubᚗcomᚋbuildbarn return ret } -func (ec *executionContext) unmarshalORunnerCountWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountWhereInputᚄ(ctx context.Context, v any) ([]*ent.RunnerCountWhereInput, error) { +func (ec *executionContext) unmarshalOMissDetailWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailWhereInputᚄ(ctx context.Context, v any) ([]*ent.MissDetailWhereInput, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]*ent.RunnerCountWhereInput, len(vSlice)) + res := make([]*ent.MissDetailWhereInput, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNRunnerCountWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountWhereInput(ctx, vSlice[i]) + res[i], err = ec.unmarshalNMissDetailWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailWhereInput(ctx, vSlice[i]) if err != nil { return nil, err } @@ -45217,42 +45343,32 @@ func (ec *executionContext) unmarshalORunnerCountWhereInput2ᚕᚖgithubᚗcom return res, nil } -func (ec *executionContext) unmarshalORunnerCountWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountWhereInput(ctx context.Context, v any) (*ent.RunnerCountWhereInput, error) { +func (ec *executionContext) unmarshalOMissDetailWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐMissDetailWhereInput(ctx context.Context, v any) (*ent.MissDetailWhereInput, error) { if v == nil { return nil, nil } - res, err := ec.unmarshalInputRunnerCountWhereInput(ctx, v) + res, err := ec.unmarshalInputMissDetailWhereInput(ctx, v) return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalOSourceControl2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControl(ctx context.Context, sel ast.SelectionSet, v *ent.SourceControl) graphql.Marshaler { +func (ec *executionContext) marshalONetworkMetrics2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetrics(ctx context.Context, sel ast.SelectionSet, v *ent.NetworkMetrics) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._SourceControl(ctx, sel, v) -} - -func (ec *executionContext) unmarshalOSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx context.Context, v any) (sourcecontrol.Provider, error) { - var res sourcecontrol.Provider - err := res.UnmarshalGQL(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalOSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx context.Context, sel ast.SelectionSet, v sourcecontrol.Provider) graphql.Marshaler { - return v + return ec._NetworkMetrics(ctx, sel, v) } -func (ec *executionContext) unmarshalOSourceControlProvider2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProviderᚄ(ctx context.Context, v any) ([]sourcecontrol.Provider, error) { +func (ec *executionContext) unmarshalONetworkMetricsWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetricsWhereInputᚄ(ctx context.Context, v any) ([]*ent.NetworkMetricsWhereInput, error) { if v == nil { return nil, nil } var vSlice []any vSlice = graphql.CoerceList(v) var err error - res := make([]sourcecontrol.Provider, len(vSlice)) + res := make([]*ent.NetworkMetricsWhereInput, len(vSlice)) for i := range vSlice { ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) - res[i], err = ec.unmarshalNSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx, vSlice[i]) + res[i], err = ec.unmarshalNNetworkMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetricsWhereInput(ctx, vSlice[i]) if err != nil { return nil, err } @@ -45260,7 +45376,29 @@ func (ec *executionContext) unmarshalOSourceControlProvider2ᚕgithubᚗcomᚋbu return res, nil } -func (ec *executionContext) marshalOSourceControlProvider2ᚕgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProviderᚄ(ctx context.Context, sel ast.SelectionSet, v []sourcecontrol.Provider) graphql.Marshaler { +func (ec *executionContext) unmarshalONetworkMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNetworkMetricsWhereInput(ctx context.Context, v any) (*ent.NetworkMetricsWhereInput, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputNetworkMetricsWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalONode2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐNoder(ctx context.Context, sel ast.SelectionSet, v ent.Noder) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._Node(ctx, sel, v) +} + +func (ec *executionContext) marshalOProfile2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐProfile(ctx context.Context, sel ast.SelectionSet, v *model.Profile) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._Profile(ctx, sel, v) +} + +func (ec *executionContext) marshalORunnerCount2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.RunnerCount) graphql.Marshaler { if v == nil { return graphql.Null } @@ -45287,7 +45425,7 @@ func (ec *executionContext) marshalOSourceControlProvider2ᚕgithubᚗcomᚋbuil if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNSourceControlProvider2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx, sel, v[i]) + ret[i] = ec.marshalNRunnerCount2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCount(ctx, sel, v[i]) } if isLen1 { f(i) @@ -45307,20 +45445,77 @@ func (ec *executionContext) marshalOSourceControlProvider2ᚕgithubᚗcomᚋbuil return ret } -func (ec *executionContext) unmarshalOSourceControlProvider2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx context.Context, v any) (*sourcecontrol.Provider, error) { +func (ec *executionContext) unmarshalORunnerCountWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountWhereInputᚄ(ctx context.Context, v any) ([]*ent.RunnerCountWhereInput, error) { if v == nil { return nil, nil } - var res = new(sourcecontrol.Provider) - err := res.UnmarshalGQL(v) - return res, graphql.ErrorOnPath(ctx, err) + var vSlice []any + vSlice = graphql.CoerceList(v) + var err error + res := make([]*ent.RunnerCountWhereInput, len(vSlice)) + for i := range vSlice { + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) + res[i], err = ec.unmarshalNRunnerCountWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountWhereInput(ctx, vSlice[i]) + if err != nil { + return nil, err + } + } + return res, nil } -func (ec *executionContext) marshalOSourceControlProvider2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚋsourcecontrolᚐProvider(ctx context.Context, sel ast.SelectionSet, v *sourcecontrol.Provider) graphql.Marshaler { +func (ec *executionContext) unmarshalORunnerCountWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐRunnerCountWhereInput(ctx context.Context, v any) (*ent.RunnerCountWhereInput, error) { + if v == nil { + return nil, nil + } + res, err := ec.unmarshalInputRunnerCountWhereInput(ctx, v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOSourceControl2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControlᚄ(ctx context.Context, sel ast.SelectionSet, v []*ent.SourceControl) graphql.Marshaler { if v == nil { return graphql.Null } - return v + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNSourceControl2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControl(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret } func (ec *executionContext) unmarshalOSourceControlWhereInput2ᚕᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐSourceControlWhereInputᚄ(ctx context.Context, v any) ([]*ent.SourceControlWhereInput, error) { @@ -46004,13 +46199,6 @@ func (ec *executionContext) marshalOUUID2ᚖgithubᚗcomᚋgoogleᚋuuidᚐUUID( return res } -func (ec *executionContext) marshalOUser2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐUser(ctx context.Context, sel ast.SelectionSet, v *model.User) graphql.Marshaler { - if v == nil { - return graphql.Null - } - return ec._User(ctx, sel, v) -} - func (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler { if v == nil { return graphql.Null diff --git a/pkg/proto/configuration/bb_portal/bb_portal.pb.go b/pkg/proto/configuration/bb_portal/bb_portal.pb.go index 2dd336f8..46f41c4b 100644 --- a/pkg/proto/configuration/bb_portal/bb_portal.pb.go +++ b/pkg/proto/configuration/bb_portal/bb_portal.pb.go @@ -218,6 +218,8 @@ type BuildEventStreamService struct { DatabaseCleanupConfiguration *BuildEventStreamService_DatabaseCleanupConfiguration `protobuf:"bytes,8,opt,name=database_cleanup_configuration,json=databaseCleanupConfiguration,proto3" json:"database_cleanup_configuration,omitempty"` AuthMetadataKeyConfiguration *AuthMetadataExtractorConfiguration `protobuf:"bytes,9,opt,name=auth_metadata_key_configuration,json=authMetadataKeyConfiguration,proto3" json:"auth_metadata_key_configuration,omitempty"` MinEventBatchDuration *durationpb.Duration `protobuf:"bytes,10,opt,name=min_event_batch_duration,json=minEventBatchDuration,proto3" json:"min_event_batch_duration,omitempty"` + InvocationMetadataExtractor *jmespath.Expression `protobuf:"bytes,11,opt,name=invocation_metadata_extractor,json=invocationMetadataExtractor,proto3" json:"invocation_metadata_extractor,omitempty"` + BuildKey string `protobuf:"bytes,12,opt,name=build_key,json=buildKey,proto3" json:"build_key,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -308,6 +310,20 @@ func (x *BuildEventStreamService) GetMinEventBatchDuration() *durationpb.Duratio return nil } +func (x *BuildEventStreamService) GetInvocationMetadataExtractor() *jmespath.Expression { + if x != nil { + return x.InvocationMetadataExtractor + } + return nil +} + +func (x *BuildEventStreamService) GetBuildKey() string { + if x != nil { + return x.BuildKey + } + return "" +} + type BrowserService struct { state protoimpl.MessageState `protogen:"open.v1"` ContentAddressableStorage *blobstore.BlobAccessConfiguration `protobuf:"bytes,1,opt,name=content_addressable_storage,json=contentAddressableStorage,proto3" json:"content_addressable_storage,omitempty"` @@ -900,7 +916,8 @@ const file_github_com_buildbarn_bb_portal_pkg_proto_configuration_bb_portal_bb_p "\"AuthMetadataExtractorConfiguration\x12\x88\x01\n" + "*external_id_extraction_jmespath_expression\x18\x01 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR&externalIdExtractionJmespathExpression\x12\x8a\x01\n" + "+display_name_extraction_jmespath_expression\x18\x02 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR'displayNameExtractionJmespathExpression\x12\x84\x01\n" + - "(user_info_extraction_jmespath_expression\x18\x03 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR$userInfoExtractionJmespathExpression\"\xc7\t\n" + + "(user_info_extraction_jmespath_expression\x18\x03 \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR$userInfoExtractionJmespathExpression\"\xd6\n" + + "\n" + "\x17BuildEventStreamService\x12T\n" + "\fgrpc_servers\x18\x01 \x03(\v21.buildbarn.configuration.grpc.ServerConfigurationR\vgrpcServers\x12G\n" + "\bdatabase\x18\x02 \x01(\v2+.buildbarn.configuration.bb_portal.DatabaseR\bdatabase\x123\n" + @@ -910,7 +927,9 @@ const file_github_com_buildbarn_bb_portal_pkg_proto_configuration_bb_portal_bb_p "\x1edatabase_cleanup_configuration\x18\b \x01(\v2W.buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfigurationR\x1cdatabaseCleanupConfiguration\x12\x8c\x01\n" + "\x1fauth_metadata_key_configuration\x18\t \x01(\v2E.buildbarn.configuration.bb_portal.AuthMetadataExtractorConfigurationR\x1cauthMetadataKeyConfiguration\x12R\n" + "\x18min_event_batch_duration\x18\n" + - " \x01(\v2\x19.google.protobuf.DurationR\x15minEventBatchDuration\x1a\x8c\x01\n" + + " \x01(\v2\x19.google.protobuf.DurationR\x15minEventBatchDuration\x12p\n" + + "\x1dinvocation_metadata_extractor\x18\v \x01(\v2,.buildbarn.configuration.jmespath.ExpressionR\x1binvocationMetadataExtractor\x12\x1b\n" + + "\tbuild_key\x18\f \x01(\tR\bbuildKey\x1a\x8c\x01\n" + "\rSaveDataLevel\x12.\n" + "\x05basic\x18\x01 \x01(\v2\x16.google.protobuf.EmptyH\x00R\x05basic\x12B\n" + "\x10basic_and_target\x18\x02 \x01(\v2\x16.google.protobuf.EmptyH\x00R\x0ebasicAndTargetB\a\n" + @@ -996,34 +1015,35 @@ var file_github_com_buildbarn_bb_portal_pkg_proto_configuration_bb_portal_bb_por 10, // 8: buildbarn.configuration.bb_portal.BuildEventStreamService.database_cleanup_configuration:type_name -> buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration 2, // 9: buildbarn.configuration.bb_portal.BuildEventStreamService.auth_metadata_key_configuration:type_name -> buildbarn.configuration.bb_portal.AuthMetadataExtractorConfiguration 14, // 10: buildbarn.configuration.bb_portal.BuildEventStreamService.min_event_batch_duration:type_name -> google.protobuf.Duration - 15, // 11: buildbarn.configuration.bb_portal.BrowserService.content_addressable_storage:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration - 15, // 12: buildbarn.configuration.bb_portal.BrowserService.action_cache:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration - 15, // 13: buildbarn.configuration.bb_portal.BrowserService.initial_size_class_cache:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration - 15, // 14: buildbarn.configuration.bb_portal.BrowserService.file_system_access_cache:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration - 16, // 15: buildbarn.configuration.bb_portal.SchedulerService.build_queue_state_client:type_name -> buildbarn.configuration.grpc.ClientConfiguration - 17, // 16: buildbarn.configuration.bb_portal.SchedulerService.kill_operations_authorizer:type_name -> buildbarn.configuration.auth.AuthorizerConfiguration - 11, // 17: buildbarn.configuration.bb_portal.FrontendService.frontend_source:type_name -> buildbarn.configuration.bb_portal.FrontendService.FrontendSource - 18, // 18: buildbarn.configuration.bb_portal.FrontendService.frontend_config:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration - 19, // 19: buildbarn.configuration.bb_portal.ApplicationConfiguration.http_servers:type_name -> buildbarn.configuration.http.server.Configuration - 20, // 20: buildbarn.configuration.bb_portal.ApplicationConfiguration.global:type_name -> buildbarn.configuration.global.Configuration - 3, // 21: buildbarn.configuration.bb_portal.ApplicationConfiguration.bes_service_configuration:type_name -> buildbarn.configuration.bb_portal.BuildEventStreamService - 4, // 22: buildbarn.configuration.bb_portal.ApplicationConfiguration.browser_service_configuration:type_name -> buildbarn.configuration.bb_portal.BrowserService - 5, // 23: buildbarn.configuration.bb_portal.ApplicationConfiguration.scheduler_service_configuration:type_name -> buildbarn.configuration.bb_portal.SchedulerService - 17, // 24: buildbarn.configuration.bb_portal.ApplicationConfiguration.instance_name_authorizer:type_name -> buildbarn.configuration.auth.AuthorizerConfiguration - 6, // 25: buildbarn.configuration.bb_portal.ApplicationConfiguration.frontend_service_configuration:type_name -> buildbarn.configuration.bb_portal.FrontendService - 14, // 26: buildbarn.configuration.bb_portal.Database.DatabaseConnectionPoolConfiguration.connection_max_lifetime:type_name -> google.protobuf.Duration - 14, // 27: buildbarn.configuration.bb_portal.Database.DatabaseConnectionPoolConfiguration.connection_max_idle_time:type_name -> google.protobuf.Duration - 21, // 28: buildbarn.configuration.bb_portal.BuildEventStreamService.SaveDataLevel.basic:type_name -> google.protobuf.Empty - 21, // 29: buildbarn.configuration.bb_portal.BuildEventStreamService.SaveDataLevel.basic_and_target:type_name -> google.protobuf.Empty - 14, // 30: buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration.cleanup_interval:type_name -> google.protobuf.Duration - 14, // 31: buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration.invocation_message_timeout:type_name -> google.protobuf.Duration - 14, // 32: buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration.invocation_retention:type_name -> google.protobuf.Duration - 21, // 33: buildbarn.configuration.bb_portal.FrontendService.FrontendSource.embedded:type_name -> google.protobuf.Empty - 34, // [34:34] is the sub-list for method output_type - 34, // [34:34] is the sub-list for method input_type - 34, // [34:34] is the sub-list for extension type_name - 34, // [34:34] is the sub-list for extension extendee - 0, // [0:34] is the sub-list for field type_name + 12, // 11: buildbarn.configuration.bb_portal.BuildEventStreamService.invocation_metadata_extractor:type_name -> buildbarn.configuration.jmespath.Expression + 15, // 12: buildbarn.configuration.bb_portal.BrowserService.content_addressable_storage:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration + 15, // 13: buildbarn.configuration.bb_portal.BrowserService.action_cache:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration + 15, // 14: buildbarn.configuration.bb_portal.BrowserService.initial_size_class_cache:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration + 15, // 15: buildbarn.configuration.bb_portal.BrowserService.file_system_access_cache:type_name -> buildbarn.configuration.blobstore.BlobAccessConfiguration + 16, // 16: buildbarn.configuration.bb_portal.SchedulerService.build_queue_state_client:type_name -> buildbarn.configuration.grpc.ClientConfiguration + 17, // 17: buildbarn.configuration.bb_portal.SchedulerService.kill_operations_authorizer:type_name -> buildbarn.configuration.auth.AuthorizerConfiguration + 11, // 18: buildbarn.configuration.bb_portal.FrontendService.frontend_source:type_name -> buildbarn.configuration.bb_portal.FrontendService.FrontendSource + 18, // 19: buildbarn.configuration.bb_portal.FrontendService.frontend_config:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration + 19, // 20: buildbarn.configuration.bb_portal.ApplicationConfiguration.http_servers:type_name -> buildbarn.configuration.http.server.Configuration + 20, // 21: buildbarn.configuration.bb_portal.ApplicationConfiguration.global:type_name -> buildbarn.configuration.global.Configuration + 3, // 22: buildbarn.configuration.bb_portal.ApplicationConfiguration.bes_service_configuration:type_name -> buildbarn.configuration.bb_portal.BuildEventStreamService + 4, // 23: buildbarn.configuration.bb_portal.ApplicationConfiguration.browser_service_configuration:type_name -> buildbarn.configuration.bb_portal.BrowserService + 5, // 24: buildbarn.configuration.bb_portal.ApplicationConfiguration.scheduler_service_configuration:type_name -> buildbarn.configuration.bb_portal.SchedulerService + 17, // 25: buildbarn.configuration.bb_portal.ApplicationConfiguration.instance_name_authorizer:type_name -> buildbarn.configuration.auth.AuthorizerConfiguration + 6, // 26: buildbarn.configuration.bb_portal.ApplicationConfiguration.frontend_service_configuration:type_name -> buildbarn.configuration.bb_portal.FrontendService + 14, // 27: buildbarn.configuration.bb_portal.Database.DatabaseConnectionPoolConfiguration.connection_max_lifetime:type_name -> google.protobuf.Duration + 14, // 28: buildbarn.configuration.bb_portal.Database.DatabaseConnectionPoolConfiguration.connection_max_idle_time:type_name -> google.protobuf.Duration + 21, // 29: buildbarn.configuration.bb_portal.BuildEventStreamService.SaveDataLevel.basic:type_name -> google.protobuf.Empty + 21, // 30: buildbarn.configuration.bb_portal.BuildEventStreamService.SaveDataLevel.basic_and_target:type_name -> google.protobuf.Empty + 14, // 31: buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration.cleanup_interval:type_name -> google.protobuf.Duration + 14, // 32: buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration.invocation_message_timeout:type_name -> google.protobuf.Duration + 14, // 33: buildbarn.configuration.bb_portal.BuildEventStreamService.DatabaseCleanupConfiguration.invocation_retention:type_name -> google.protobuf.Duration + 21, // 34: buildbarn.configuration.bb_portal.FrontendService.FrontendSource.embedded:type_name -> google.protobuf.Empty + 35, // [35:35] is the sub-list for method output_type + 35, // [35:35] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { diff --git a/pkg/proto/configuration/bb_portal/bb_portal.proto b/pkg/proto/configuration/bb_portal/bb_portal.proto index e26642a4..ed09b712 100644 --- a/pkg/proto/configuration/bb_portal/bb_portal.proto +++ b/pkg/proto/configuration/bb_portal/bb_portal.proto @@ -161,6 +161,42 @@ message BuildEventStreamService { // process than min_event_batch_duration this has no impact. // Recommended value: '0.1s' google.protobuf.Duration min_event_batch_duration = 10; + + // JMESPath expression for extracting metadata about a invocation. + // + // If configured, each expression is called against a JSON object with the + // following structure: + // + // { + // "env": map, + // "files": map + // } + // + // "env" is an map of all environment variables present when Bazel ran. + // + // "files" corresponds to any files that are specified within the + // buildbarn.configuration.jmespath.Expression configuration. + // + // The expected result is a JSON object where all fields are optional. The + // expected fields are: + // + // - "username": The username to set for the invocation. + // - "hostname": The hostname to set for the invocation. + // - "sourceControls": An array of `SourceControl` objects. + // - "invocationTags": A JSON object with string values which are converted + // to key-value pairs associated with the invocation. + // - "buildTags": A JSON object with string values which are converted + // to key-value pairs associated with the invocation. + buildbarn.configuration.jmespath.Expression invocation_metadata_extractor = + 11; + + // Specifies which key in the `buildTags` map for a invocation that + // identifies the Build ID. The value of `buildTags[buildKey]` for a + // invocation is the Build ID for the invocation, and it is what is used to + // group invocations together into builds. If either `buildKey` or + // `buildTags[buildKey]` is unset, the invocation will not be associated with + // any build. + string build_key = 12; } message BrowserService { diff --git a/pkg/proto/configuration/frontend/frontend.pb.go b/pkg/proto/configuration/frontend/frontend.pb.go index fbf92477..8bf8822c 100644 --- a/pkg/proto/configuration/frontend/frontend.pb.go +++ b/pkg/proto/configuration/frontend/frontend.pb.go @@ -23,13 +23,15 @@ const ( ) type PortalFrontendConfiguration struct { - state protoimpl.MessageState `protogen:"open.v1"` - FeatureFlags *PortalFrontendConfiguration_FeatureFlags `protobuf:"bytes,1,opt,name=feature_flags,json=featureFlags,proto3" json:"feature_flags,omitempty"` - GrpcBackendUrl string `protobuf:"bytes,2,opt,name=grpc_backend_url,json=grpcBackendUrl,proto3" json:"grpc_backend_url,omitempty"` - CompanyName string `protobuf:"bytes,3,opt,name=company_name,json=companyName,proto3" json:"company_name,omitempty"` - FooterContent []*PortalFrontendConfiguration_FooterElement `protobuf:"bytes,4,rep,name=footer_content,json=footerContent,proto3" json:"footer_content,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FeatureFlags *PortalFrontendConfiguration_FeatureFlags `protobuf:"bytes,1,opt,name=feature_flags,json=featureFlags,proto3" json:"feature_flags,omitempty"` + GrpcBackendUrl string `protobuf:"bytes,2,opt,name=grpc_backend_url,json=grpcBackendUrl,proto3" json:"grpc_backend_url,omitempty"` + CompanyName string `protobuf:"bytes,3,opt,name=company_name,json=companyName,proto3" json:"company_name,omitempty"` + FooterContent []*PortalFrontendConfiguration_FooterElement `protobuf:"bytes,4,rep,name=footer_content,json=footerContent,proto3" json:"footer_content,omitempty"` + AdditionalBuildColumns []*PortalFrontendConfiguration_AdditionalColumn `protobuf:"bytes,5,rep,name=additional_build_columns,json=additionalBuildColumns,proto3" json:"additional_build_columns,omitempty"` + AdditionalBuildInvocationColumns []*PortalFrontendConfiguration_AdditionalColumn `protobuf:"bytes,6,rep,name=additional_build_invocation_columns,json=additionalBuildInvocationColumns,proto3" json:"additional_build_invocation_columns,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PortalFrontendConfiguration) Reset() { @@ -90,6 +92,20 @@ func (x *PortalFrontendConfiguration) GetFooterContent() []*PortalFrontendConfig return nil } +func (x *PortalFrontendConfiguration) GetAdditionalBuildColumns() []*PortalFrontendConfiguration_AdditionalColumn { + if x != nil { + return x.AdditionalBuildColumns + } + return nil +} + +func (x *PortalFrontendConfiguration) GetAdditionalBuildInvocationColumns() []*PortalFrontendConfiguration_AdditionalColumn { + if x != nil { + return x.AdditionalBuildInvocationColumns + } + return nil +} + type PortalFrontendConfiguration_FeatureFlags struct { state protoimpl.MessageState `protogen:"open.v1"` Home *PortalFrontendConfiguration_FeatureFlags_HomePage `protobuf:"bytes,1,opt,name=home,proto3" json:"home,omitempty"` @@ -218,6 +234,66 @@ func (x *PortalFrontendConfiguration_FooterElement) GetIcon() *PortalFrontendCon return nil } +type PortalFrontendConfiguration_AdditionalColumn struct { + state protoimpl.MessageState `protogen:"open.v1"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + ValueKey string `protobuf:"bytes,2,opt,name=value_key,json=valueKey,proto3" json:"value_key,omitempty"` + UrlKey string `protobuf:"bytes,3,opt,name=url_key,json=urlKey,proto3" json:"url_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PortalFrontendConfiguration_AdditionalColumn) Reset() { + *x = PortalFrontendConfiguration_AdditionalColumn{} + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PortalFrontendConfiguration_AdditionalColumn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortalFrontendConfiguration_AdditionalColumn) ProtoMessage() {} + +func (x *PortalFrontendConfiguration_AdditionalColumn) ProtoReflect() protoreflect.Message { + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PortalFrontendConfiguration_AdditionalColumn.ProtoReflect.Descriptor instead. +func (*PortalFrontendConfiguration_AdditionalColumn) Descriptor() ([]byte, []int) { + return file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *PortalFrontendConfiguration_AdditionalColumn) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *PortalFrontendConfiguration_AdditionalColumn) GetValueKey() string { + if x != nil { + return x.ValueKey + } + return "" +} + +func (x *PortalFrontendConfiguration_AdditionalColumn) GetUrlKey() string { + if x != nil { + return x.UrlKey + } + return "" +} + type PortalFrontendConfiguration_FeatureFlags_HomePage struct { state protoimpl.MessageState `protogen:"open.v1"` FileUpload *emptypb.Empty `protobuf:"bytes,1,opt,name=file_upload,json=fileUpload,proto3" json:"file_upload,omitempty"` @@ -228,7 +304,7 @@ type PortalFrontendConfiguration_FeatureFlags_HomePage struct { func (x *PortalFrontendConfiguration_FeatureFlags_HomePage) Reset() { *x = PortalFrontendConfiguration_FeatureFlags_HomePage{} - mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[3] + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -240,7 +316,7 @@ func (x *PortalFrontendConfiguration_FeatureFlags_HomePage) String() string { func (*PortalFrontendConfiguration_FeatureFlags_HomePage) ProtoMessage() {} func (x *PortalFrontendConfiguration_FeatureFlags_HomePage) ProtoReflect() protoreflect.Message { - mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[3] + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -283,7 +359,7 @@ type PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags struct { func (x *PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags) Reset() { *x = PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags{} - mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[4] + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -295,7 +371,7 @@ func (x *PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags) String() stri func (*PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags) ProtoMessage() {} func (x *PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags) ProtoReflect() protoreflect.Message { - mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[4] + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -361,7 +437,7 @@ type PortalFrontendConfiguration_FooterElement_Icon struct { func (x *PortalFrontendConfiguration_FooterElement_Icon) Reset() { *x = PortalFrontendConfiguration_FooterElement_Icon{} - mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[5] + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -373,7 +449,7 @@ func (x *PortalFrontendConfiguration_FooterElement_Icon) String() string { func (*PortalFrontendConfiguration_FooterElement_Icon) ProtoMessage() {} func (x *PortalFrontendConfiguration_FooterElement_Icon) ProtoReflect() protoreflect.Message { - mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[5] + mi := &file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -468,12 +544,14 @@ var File_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_fronten const file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_rawDesc = "" + "\n" + - "Ngithub.com/buildbarn/bb-portal/pkg/proto/configuration/frontend/frontend.proto\x12 buildbarn.configuration.frontend\x1a\x1bgoogle/protobuf/empty.proto\"\xb6\v\n" + + "Ngithub.com/buildbarn/bb-portal/pkg/proto/configuration/frontend/frontend.proto\x12 buildbarn.configuration.frontend\x1a\x1bgoogle/protobuf/empty.proto\"\xc1\x0e\n" + "\x1bPortalFrontendConfiguration\x12o\n" + "\rfeature_flags\x18\x01 \x01(\v2J.buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlagsR\ffeatureFlags\x12(\n" + "\x10grpc_backend_url\x18\x02 \x01(\tR\x0egrpcBackendUrl\x12!\n" + "\fcompany_name\x18\x03 \x01(\tR\vcompanyName\x12r\n" + - "\x0efooter_content\x18\x04 \x03(\v2K.buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElementR\rfooterContent\x1a\x89\x06\n" + + "\x0efooter_content\x18\x04 \x03(\v2K.buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElementR\rfooterContent\x12\x88\x01\n" + + "\x18additional_build_columns\x18\x05 \x03(\v2N.buildbarn.configuration.frontend.PortalFrontendConfiguration.AdditionalColumnR\x16additionalBuildColumns\x12\x9d\x01\n" + + "#additional_build_invocation_columns\x18\x06 \x03(\v2N.buildbarn.configuration.frontend.PortalFrontendConfiguration.AdditionalColumnR additionalBuildInvocationColumns\x1a\x89\x06\n" + "\fFeatureFlags\x12g\n" + "\x04home\x18\x01 \x01(\v2S.buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePageR\x04home\x12l\n" + "\x03bes\x18\x02 \x01(\v2Z.buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlagsR\x03bes\x120\n" + @@ -501,7 +579,11 @@ const file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_front "\x05slack\x18\x02 \x01(\v2\x16.google.protobuf.EmptyH\x00R\x05slack\x120\n" + "\x06github\x18\x03 \x01(\v2\x16.google.protobuf.EmptyH\x00R\x06github\x122\n" + "\adiscord\x18\x04 \x01(\v2\x16.google.protobuf.EmptyH\x00R\adiscordB\x06\n" + - "\x04iconBAZ?github.com/buildbarn/bb-portal/pkg/proto/configuration/frontendb\x06proto3" + "\x04icon\x1a^\n" + + "\x10AdditionalColumn\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12\x1b\n" + + "\tvalue_key\x18\x02 \x01(\tR\bvalueKey\x12\x17\n" + + "\aurl_key\x18\x03 \x01(\tR\x06urlKeyBAZ?github.com/buildbarn/bb-portal/pkg/proto/configuration/frontendb\x06proto3" var ( file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_rawDescOnce sync.Once @@ -515,39 +597,42 @@ func file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_fronte return file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_rawDescData } -var file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_goTypes = []any{ (*PortalFrontendConfiguration)(nil), // 0: buildbarn.configuration.frontend.PortalFrontendConfiguration (*PortalFrontendConfiguration_FeatureFlags)(nil), // 1: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags (*PortalFrontendConfiguration_FooterElement)(nil), // 2: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement - (*PortalFrontendConfiguration_FeatureFlags_HomePage)(nil), // 3: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage - (*PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags)(nil), // 4: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags - (*PortalFrontendConfiguration_FooterElement_Icon)(nil), // 5: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon - (*emptypb.Empty)(nil), // 6: google.protobuf.Empty + (*PortalFrontendConfiguration_AdditionalColumn)(nil), // 3: buildbarn.configuration.frontend.PortalFrontendConfiguration.AdditionalColumn + (*PortalFrontendConfiguration_FeatureFlags_HomePage)(nil), // 4: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage + (*PortalFrontendConfiguration_FeatureFlags_BesFeatureFlags)(nil), // 5: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags + (*PortalFrontendConfiguration_FooterElement_Icon)(nil), // 6: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon + (*emptypb.Empty)(nil), // 7: google.protobuf.Empty } var file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_depIdxs = []int32{ 1, // 0: buildbarn.configuration.frontend.PortalFrontendConfiguration.feature_flags:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags 2, // 1: buildbarn.configuration.frontend.PortalFrontendConfiguration.footer_content:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement - 3, // 2: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.home:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage - 4, // 3: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.bes:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags - 6, // 4: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.browser:type_name -> google.protobuf.Empty - 6, // 5: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.scheduler:type_name -> google.protobuf.Empty - 5, // 6: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.icon:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon - 6, // 7: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage.file_upload:type_name -> google.protobuf.Empty - 6, // 8: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage.instructions:type_name -> google.protobuf.Empty - 6, // 9: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_builds:type_name -> google.protobuf.Empty - 6, // 10: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_invocations:type_name -> google.protobuf.Empty - 6, // 11: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_targets:type_name -> google.protobuf.Empty - 6, // 12: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_tests:type_name -> google.protobuf.Empty - 6, // 13: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_trends:type_name -> google.protobuf.Empty - 6, // 14: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon.slack:type_name -> google.protobuf.Empty - 6, // 15: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon.github:type_name -> google.protobuf.Empty - 6, // 16: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon.discord:type_name -> google.protobuf.Empty - 17, // [17:17] is the sub-list for method output_type - 17, // [17:17] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 3, // 2: buildbarn.configuration.frontend.PortalFrontendConfiguration.additional_build_columns:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.AdditionalColumn + 3, // 3: buildbarn.configuration.frontend.PortalFrontendConfiguration.additional_build_invocation_columns:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.AdditionalColumn + 4, // 4: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.home:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage + 5, // 5: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.bes:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags + 7, // 6: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.browser:type_name -> google.protobuf.Empty + 7, // 7: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.scheduler:type_name -> google.protobuf.Empty + 6, // 8: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.icon:type_name -> buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon + 7, // 9: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage.file_upload:type_name -> google.protobuf.Empty + 7, // 10: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.HomePage.instructions:type_name -> google.protobuf.Empty + 7, // 11: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_builds:type_name -> google.protobuf.Empty + 7, // 12: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_invocations:type_name -> google.protobuf.Empty + 7, // 13: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_targets:type_name -> google.protobuf.Empty + 7, // 14: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_tests:type_name -> google.protobuf.Empty + 7, // 15: buildbarn.configuration.frontend.PortalFrontendConfiguration.FeatureFlags.BesFeatureFlags.page_trends:type_name -> google.protobuf.Empty + 7, // 16: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon.slack:type_name -> google.protobuf.Empty + 7, // 17: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon.github:type_name -> google.protobuf.Empty + 7, // 18: buildbarn.configuration.frontend.PortalFrontendConfiguration.FooterElement.Icon.discord:type_name -> google.protobuf.Empty + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { @@ -557,7 +642,7 @@ func file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_fronte if File_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto != nil { return } - file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[5].OneofWrappers = []any{ + file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_msgTypes[6].OneofWrappers = []any{ (*PortalFrontendConfiguration_FooterElement_Icon_Url)(nil), (*PortalFrontendConfiguration_FooterElement_Icon_Slack)(nil), (*PortalFrontendConfiguration_FooterElement_Icon_Github)(nil), @@ -569,7 +654,7 @@ func file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_fronte GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_rawDesc), len(file_github_com_buildbarn_bb_portal_pkg_proto_configuration_frontend_frontend_proto_rawDesc)), NumEnums: 0, - NumMessages: 6, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/configuration/frontend/frontend.proto b/pkg/proto/configuration/frontend/frontend.proto index c3901703..1f8fef82 100644 --- a/pkg/proto/configuration/frontend/frontend.proto +++ b/pkg/proto/configuration/frontend/frontend.proto @@ -93,4 +93,24 @@ message PortalFrontendConfiguration { // Customize the content of the footer. These elements are shown in a row at // the bottom of the page, and can be used to link out to useful places. repeated FooterElement footer_content = 4; + + // Message that defines a dynamic column in a table. + message AdditionalColumn { + // The title of the column. + string title = 1; + + // The key to use to get the value for the column. The value is either + // taken from a BuildTag or a InvocationTag. + string value_key = 2; + + // The key to use to get the url for the column. The url is either + // taken from a BuildTag or a InvocationTag. Optional. + string url_key = 3; + } + + // Additional columns to display in the build table. + repeated AdditionalColumn additional_build_columns = 5; + + // Additional columns to display in the build invocation table. + repeated AdditionalColumn additional_build_invocation_columns = 6; } diff --git a/sql/migrations/schema.sql b/sql/migrations/schema.sql index ab6acb18..929dcd1a 100644 --- a/sql/migrations/schema.sql +++ b/sql/migrations/schema.sql @@ -4,14 +4,12 @@ CREATE UNIQUE INDEX "authenticated_users_external_id_key" ON "authenticated_user CREATE INDEX "authenticateduser_user_uuid" ON "authenticated_users" ("user_uuid"); CREATE TABLE "instance_names" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" character varying NOT NULL, PRIMARY KEY ("id")); CREATE UNIQUE INDEX "instance_names_name_key" ON "instance_names" ("name"); -CREATE TABLE "builds" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "build_url" character varying NOT NULL, "build_uuid" uuid NOT NULL, "timestamp" timestamptz NOT NULL, "instance_name_builds" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "builds_instance_names_builds" FOREIGN KEY ("instance_name_builds") REFERENCES "instance_names" ("id") ON DELETE NO ACTION); +CREATE TABLE "builds" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "build_uuid" uuid NOT NULL, "timestamp" timestamptz NOT NULL, "instance_name_builds" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "builds_instance_names_builds" FOREIGN KEY ("instance_name_builds") REFERENCES "instance_names" ("id") ON DELETE NO ACTION); CREATE UNIQUE INDEX "builds_build_uuid_key" ON "builds" ("build_uuid"); CREATE INDEX "build_build_uuid" ON "builds" ("build_uuid"); -CREATE INDEX "build_build_url" ON "builds" ("build_url"); CREATE INDEX "build_timestamp" ON "builds" ("timestamp"); CREATE INDEX "build_instance_name_builds" ON "builds" ("instance_name_builds"); -CREATE UNIQUE INDEX "build_build_url_instance_name_builds" ON "builds" ("build_url", "instance_name_builds"); -CREATE TABLE "bazel_invocations" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "invocation_id" uuid NOT NULL, "created_timestamp" timestamptz NOT NULL, "started_at" timestamptz NULL, "ended_at" timestamptz NULL, "change_number" bigint NULL, "patchset_number" bigint NULL, "bep_completed" boolean NOT NULL DEFAULT false, "step_label" character varying NULL, "user_email" character varying NULL, "user_ldap" character varying NULL, "hostname" character varying NULL, "is_ci_worker" boolean NULL, "num_fetches" bigint NULL, "profile_name" character varying NULL, "bazel_version" character varying NULL, "exit_code_name" character varying NULL, "exit_code_code" integer NULL, "canonical_command_line" jsonb NULL, "original_command_line" jsonb NULL, "options_parsed" jsonb NULL, "processed_event_started" boolean NOT NULL DEFAULT false, "processed_event_build_metadata" boolean NOT NULL DEFAULT false, "processed_event_build_finished" boolean NOT NULL DEFAULT false, "processed_event_workspace_status" boolean NOT NULL DEFAULT false, "authenticated_user_bazel_invocations" bigint NULL, "build_invocations" bigint NULL, "instance_name_bazel_invocations" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "bazel_invocations_authenticated_users_bazel_invocations" FOREIGN KEY ("authenticated_user_bazel_invocations") REFERENCES "authenticated_users" ("id") ON DELETE SET NULL, CONSTRAINT "bazel_invocations_builds_invocations" FOREIGN KEY ("build_invocations") REFERENCES "builds" ("id") ON DELETE CASCADE, CONSTRAINT "bazel_invocations_instance_names_bazel_invocations" FOREIGN KEY ("instance_name_bazel_invocations") REFERENCES "instance_names" ("id") ON DELETE NO ACTION); +CREATE TABLE "bazel_invocations" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "invocation_id" uuid NOT NULL, "created_timestamp" timestamptz NOT NULL, "started_at" timestamptz NULL, "ended_at" timestamptz NULL, "bep_completed" boolean NOT NULL DEFAULT false, "username" character varying NULL, "hostname" character varying NULL, "num_fetches" bigint NULL, "profile_name" character varying NULL, "bazel_version" character varying NULL, "exit_code_name" character varying NULL, "exit_code_code" integer NULL, "canonical_command_line" jsonb NULL, "original_command_line" jsonb NULL, "options_parsed" jsonb NULL, "processed_event_started" boolean NOT NULL DEFAULT false, "processed_event_build_metadata" boolean NOT NULL DEFAULT false, "processed_event_build_finished" boolean NOT NULL DEFAULT false, "processed_event_workspace_status" boolean NOT NULL DEFAULT false, "authenticated_user_bazel_invocations" bigint NULL, "build_invocations" bigint NULL, "instance_name_bazel_invocations" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "bazel_invocations_authenticated_users_bazel_invocations" FOREIGN KEY ("authenticated_user_bazel_invocations") REFERENCES "authenticated_users" ("id") ON DELETE SET NULL, CONSTRAINT "bazel_invocations_builds_invocations" FOREIGN KEY ("build_invocations") REFERENCES "builds" ("id") ON DELETE CASCADE, CONSTRAINT "bazel_invocations_instance_names_bazel_invocations" FOREIGN KEY ("instance_name_bazel_invocations") REFERENCES "instance_names" ("id") ON DELETE NO ACTION); CREATE UNIQUE INDEX "bazel_invocations_invocation_id_key" ON "bazel_invocations" ("invocation_id"); CREATE INDEX "bazelinvocation_invocation_id" ON "bazel_invocations" ("invocation_id"); CREATE INDEX "bazelinvocation_started_at" ON "bazel_invocations" ("started_at"); @@ -47,6 +45,9 @@ CREATE INDEX "buildgraphmetrics_metrics_build_graph_metrics" ON "build_graph_met CREATE TABLE "build_log_chunks" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "data" bytea NOT NULL, "chunk_index" bigint NOT NULL, "first_line_index" bigint NOT NULL, "last_line_index" bigint NOT NULL, "bazel_invocation_build_log_chunks" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "build_log_chunks_bazel_invocations_build_log_chunks" FOREIGN KEY ("bazel_invocation_build_log_chunks") REFERENCES "bazel_invocations" ("id") ON DELETE CASCADE); CREATE UNIQUE INDEX "buildlogchunk_chunk_index_bazel_invocation_build_log_chunks" ON "build_log_chunks" ("chunk_index", "bazel_invocation_build_log_chunks"); CREATE INDEX "buildlogchunk_bazel_invocation_build_log_chunks" ON "build_log_chunks" ("bazel_invocation_build_log_chunks"); +CREATE TABLE "build_tags" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "key" character varying NOT NULL, "value" character varying NOT NULL, "build_id" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "build_tags_builds_tags" FOREIGN KEY ("build_id") REFERENCES "builds" ("id") ON DELETE CASCADE); +CREATE INDEX "buildtag_build_id" ON "build_tags" ("build_id"); +CREATE UNIQUE INDEX "buildtag_key_value_build_id" ON "build_tags" ("key", "value", "build_id"); CREATE TABLE "connection_metadata" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "connection_last_open_at" timestamptz NOT NULL, "bazel_invocation_connection_metadata" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "connection_metadata_bazel_invocations_connection_metadata" FOREIGN KEY ("bazel_invocation_connection_metadata") REFERENCES "bazel_invocations" ("id") ON DELETE CASCADE); CREATE UNIQUE INDEX "connection_metadata_bazel_invocation_connection_metadata_key" ON "connection_metadata" ("bazel_invocation_connection_metadata"); CREATE UNIQUE INDEX "connectionmetadata_bazel_invocation_connection_metadata" ON "connection_metadata" ("bazel_invocation_connection_metadata"); @@ -64,6 +65,9 @@ CREATE UNIQUE INDEX "incompletebuildlog_snippet_id_bazel_invocation_id" ON "inco CREATE TABLE "invocation_files" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" character varying NOT NULL, "content" character varying NULL, "digest" character varying NULL, "size_bytes" bigint NULL, "digest_function" character varying NULL, "bazel_invocation_invocation_files" bigint NULL, PRIMARY KEY ("id"), CONSTRAINT "invocation_files_bazel_invocations_invocation_files" FOREIGN KEY ("bazel_invocation_invocation_files") REFERENCES "bazel_invocations" ("id") ON DELETE CASCADE); CREATE INDEX "invocationfiles_bazel_invocation_invocation_files" ON "invocation_files" ("bazel_invocation_invocation_files"); CREATE UNIQUE INDEX "invocationfiles_name_bazel_invocation_invocation_files" ON "invocation_files" ("name", "bazel_invocation_invocation_files"); +CREATE TABLE "invocation_tags" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "key" character varying NOT NULL, "value" character varying NOT NULL, "bazel_invocation_id" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "invocation_tags_bazel_invocations_tags" FOREIGN KEY ("bazel_invocation_id") REFERENCES "bazel_invocations" ("id") ON DELETE CASCADE); +CREATE INDEX "invocationtag_bazel_invocation_id" ON "invocation_tags" ("bazel_invocation_id"); +CREATE UNIQUE INDEX "invocationtag_key_bazel_invocation_id" ON "invocation_tags" ("key", "bazel_invocation_id"); CREATE TABLE "targets" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "label" character varying NOT NULL, "aspect" character varying NOT NULL, "target_kind" character varying NOT NULL, "instance_name_targets" bigint NOT NULL, PRIMARY KEY ("id"), CONSTRAINT "targets_instance_names_targets" FOREIGN KEY ("instance_name_targets") REFERENCES "instance_names" ("id") ON DELETE NO ACTION); CREATE INDEX "target_instance_name_targets" ON "targets" ("instance_name_targets"); CREATE INDEX "target_label_aspect" ON "targets" ("label", "aspect"); @@ -81,8 +85,7 @@ CREATE UNIQUE INDEX "network_metrics_metrics_network_metrics_key" ON "network_me CREATE INDEX "networkmetrics_metrics_network_metrics" ON "network_metrics" ("metrics_network_metrics"); CREATE TABLE "runner_counts" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" character varying NULL, "exec_kind" character varying NULL, "actions_executed" bigint NULL, "action_summary_runner_count" bigint NULL, PRIMARY KEY ("id"), CONSTRAINT "runner_counts_action_summaries_runner_count" FOREIGN KEY ("action_summary_runner_count") REFERENCES "action_summaries" ("id") ON DELETE CASCADE); CREATE INDEX "runnercount_action_summary_runner_count" ON "runner_counts" ("action_summary_runner_count"); -CREATE TABLE "source_controls" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "provider" character varying NULL, "instance_url" character varying NULL, "repo" character varying NULL, "refs" character varying NULL, "commit_sha" character varying NULL, "actor" character varying NULL, "event_name" character varying NULL, "workflow" character varying NULL, "run_id" character varying NULL, "run_number" character varying NULL, "job" character varying NULL, "action" character varying NULL, "runner_name" character varying NULL, "runner_arch" character varying NULL, "runner_os" character varying NULL, "workspace" character varying NULL, "bazel_invocation_source_control" bigint NULL, PRIMARY KEY ("id"), CONSTRAINT "source_controls_bazel_invocations_source_control" FOREIGN KEY ("bazel_invocation_source_control") REFERENCES "bazel_invocations" ("id") ON DELETE CASCADE); -CREATE UNIQUE INDEX "source_controls_bazel_invocation_source_control_key" ON "source_controls" ("bazel_invocation_source_control"); +CREATE TABLE "source_controls" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "repo" character varying NULL, "repo_url" character varying NULL, "ref" character varying NULL, "ref_url" character varying NULL, "commit" character varying NULL, "commit_url" character varying NULL, "bazel_invocation_source_control" bigint NULL, PRIMARY KEY ("id"), CONSTRAINT "source_controls_bazel_invocations_source_control" FOREIGN KEY ("bazel_invocation_source_control") REFERENCES "bazel_invocations" ("id") ON DELETE CASCADE); CREATE INDEX "sourcecontrol_bazel_invocation_source_control" ON "source_controls" ("bazel_invocation_source_control"); CREATE TABLE "system_network_stats" ("id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "bytes_sent" bigint NULL, "bytes_recv" bigint NULL, "packets_sent" bigint NULL, "packets_recv" bigint NULL, "peak_bytes_sent_per_sec" bigint NULL, "peak_bytes_recv_per_sec" bigint NULL, "peak_packets_sent_per_sec" bigint NULL, "peak_packets_recv_per_sec" bigint NULL, "network_metrics_system_network_stats" bigint NULL, PRIMARY KEY ("id"), CONSTRAINT "system_network_stats_network_metrics_system_network_stats" FOREIGN KEY ("network_metrics_system_network_stats") REFERENCES "network_metrics" ("id") ON DELETE CASCADE); CREATE UNIQUE INDEX "system_network_stats_network_metrics_system_network_stats_key" ON "system_network_stats" ("network_metrics_system_network_stats"); diff --git a/sql/queries/builds.sql b/sql/queries/builds.sql new file mode 100644 index 00000000..00b2ef43 --- /dev/null +++ b/sql/queries/builds.sql @@ -0,0 +1,7 @@ +-- name: UpdateBuildTimestampFromInvocation :exec +UPDATE builds +SET timestamp = bi.started_at +FROM bazel_invocations bi +WHERE bi.id = sqlc.arg(invocation_id) + AND builds.id = bi.build_invocations + AND bi.started_at < builds.timestamp; diff --git a/test/integrationtest/integration_test.go b/test/integrationtest/integration_test.go index b252dce2..8f50a42e 100644 --- a/test/integrationtest/integration_test.go +++ b/test/integrationtest/integration_test.go @@ -73,6 +73,14 @@ var ( filename: "bb_portal_aborted_tests.ndjson", invocationID: "64719226-555e-494d-9918-0fd25d468b1e", } + githubActions = bepFile{ + filename: "github_actions.bep.ndjson", + invocationID: "8e56d2d7-ca9b-45e6-a08f-85e7749e3c83", + } + githubActionsLite = bepFile{ + filename: "github_actions_lite.bep.ndjson", + invocationID: "63500331-1b71-4d7a-9125-df9b3dfe4e0d", + } authenticatedUserExternalID = authmetadataextraction.ExampleExternalID() authenticatedUserUUID = uuid.NewSHA1(uuid.NameSpaceURL, []byte(authenticatedUserExternalID)).String() @@ -106,6 +114,12 @@ var ( BasicAndTarget: &emptypb.Empty{}, }, }, + dataExtractors: &dataExtractors{ + invocationMetadataExtractor: &jmespath.Expression{ + Expression: `{"username": env.USER,"hostname": env.HOSTNAME, "buildTags": {"build_id": env.BUILD_URL}}`, + }, + }, + buildKey: "build_id", bepFileTestCases: []bepFileTestCase{ {bepFile: successfulBazelBuild}, {bepFile: failedBazelBuild}, @@ -115,6 +129,7 @@ var ( {bepFile: abortedAnalysis}, {bepFile: abortedBuild}, {bepFile: abortedTests}, + {bepFile: githubActions}, }, graphqlTestCases: graphqlTestTable{ "LoadFullBazelInvocationDetails": { @@ -266,10 +281,12 @@ var ( bepFileTestCases: []bepFileTestCase{ {bepFile: successfulBazelBuild}, }, - extractors: &bb_portal.AuthMetadataExtractorConfiguration{ - ExternalIdExtractionJmespathExpression: &jmespath.Expression{Expression: "authenticationMetadata.private.external_id"}, - DisplayNameExtractionJmespathExpression: &jmespath.Expression{Expression: "authenticationMetadata.private.display_name"}, - UserInfoExtractionJmespathExpression: &jmespath.Expression{Expression: "authenticationMetadata.public"}, + dataExtractors: &dataExtractors{ + authMetadataExtractors: &bb_portal.AuthMetadataExtractorConfiguration{ + ExternalIdExtractionJmespathExpression: &jmespath.Expression{Expression: "authenticationMetadata.private.external_id"}, + DisplayNameExtractionJmespathExpression: &jmespath.Expression{Expression: "authenticationMetadata.private.display_name"}, + UserInfoExtractionJmespathExpression: &jmespath.Expression{Expression: "authenticationMetadata.public"}, + }, }, ctx: auth.NewContextWithAuthenticationMetadata(context.Background(), util.Must(auth.NewAuthenticationMetadataFromRaw(map[string]any{ "private": map[string]any{ @@ -295,6 +312,53 @@ var ( }, }, }, + { + name: "TestInvocationMetadataExtraction", + saveDataLevel: &bb_portal.BuildEventStreamService_SaveDataLevel{ + Level: &bb_portal.BuildEventStreamService_SaveDataLevel_BasicAndTarget{ + BasicAndTarget: &emptypb.Empty{}, + }, + }, + bepFileTestCases: []bepFileTestCase{ + {bepFile: successfulBazelBuild}, + {bepFile: githubActions}, + {bepFile: githubActionsLite}, + }, + dataExtractors: &dataExtractors{ + invocationMetadataExtractor: githubActionsExtractor(), + }, + buildKey: "build_id", + graphqlTestCases: graphqlTestTable{ + "FindBuilds": { + "find all builds": {}, + }, + "FindBuildByUUID": { + "found": { + variables: testkit.Variables{ + "buildUUID": databasecommon.CalculateBuildUUID("https://github.com/meroton/bb-portal/actions/runs/22613512849", ""), + }, + }, + "not found": { + variables: testkit.Variables{ + "buildUUID": databasecommon.CalculateBuildUUID("invalid_build_key", ""), + }, + wantErr: errBuildNotFound, + }, + }, + "LoadFullBazelInvocationDetails": { + "github actions": { + variables: testkit.Variables{ + "invocationID": githubActions.invocationID, + }, + }, + "github actions lite": { + variables: testkit.Variables{ + "invocationID": githubActionsLite.invocationID, + }, + }, + }, + }, + }, } ) diff --git a/test/integrationtest/testdata/bepfiles/github_actions.bep.ndjson b/test/integrationtest/testdata/bepfiles/github_actions.bep.ndjson new file mode 100644 index 00000000..2ed1a4b7 --- /dev/null +++ b/test/integrationtest/testdata/bepfiles/github_actions.bep.ndjson @@ -0,0 +1,1157 @@ +{"id":{"started":{}},"children":[{"progress":{}},{"unstructuredCommandLine":{}},{"structuredCommandLine":{"commandLineLabel":"original"}},{"structuredCommandLine":{"commandLineLabel":"canonical"}},{"structuredCommandLine":{"commandLineLabel":"tool"}},{"buildMetadata":{}},{"optionsParsed":{}},{"workspaceStatus":{}},{"pattern":{"pattern":["//..."]}},{"buildFinished":{}}],"started":{"uuid":"8e56d2d7-ca9b-45e6-a08f-85e7749e3c83","startTimeMillis":"1772524334102","buildToolVersion":"9.0.0","optionsDescription":"--flag_alias\u003d\u0027build_python_zip\u003d@@rules_python+//python/config_settings:build_python_zip\u0027 --flag_alias\u003d\u0027incompatible_default_to_explicit_init_py\u003d@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py\u0027 --flag_alias\u003d\u0027python_path\u003d@@rules_python+//python/config_settings:python_path\u0027 --flag_alias\u003d\u0027experimental_python_import_all_repositories\u003d@@rules_python+//python/config_settings:experimental_python_import_all_repositories\u0027 --build_event_json_file\u003dgithub-actions.bep.ndjson","command":"build","workingDirectory":"/home/runner/work/bb-portal/bb-portal","workspaceDirectory":"/home/runner/work/bb-portal/bb-portal","serverPid":"2340","startTime":"2026-03-03T07:52:14.102Z","host":"runnervmnay03","user":"runner"}} +{"id":{"buildMetadata":{}},"buildMetadata":{}} +{"id":{"unstructuredCommandLine":{}},"unstructuredCommandLine":{"args":["build","--startup_time\u003d1987","--command_wait_time\u003d0","--extract_data_time\u003d919","--restart_reason\u003dno_daemon","--binary_path\u003d/home/runner/work/bb-portal/bb-portal/bazel","--rc_source\u003dclient","--rc_source\u003d/home/runner/work/bb-portal/bb-portal/.bazelrc","--default_override\u003d0:common\u003d--isatty\u003d0","--default_override\u003d0:common\u003d--terminal_columns\u003d80","--default_override\u003d1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","--client_env\u003dSHELL\u003d/bin/bash","--client_env\u003dSELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","--client_env\u003dCONDA\u003d/usr/share/miniconda","--client_env\u003dGITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","--client_env\u003dJAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","--client_env\u003dJAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","--client_env\u003dGITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","--client_env\u003dGITHUB_ACTION\u003d__run_2","--client_env\u003dJAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","--client_env\u003dGITHUB_RUN_NUMBER\u003d2","--client_env\u003dRUNNER_NAME\u003dGitHub Actions 1000007294","--client_env\u003dGRADLE_HOME\u003d/usr/share/gradle-9.3.1","--client_env\u003dGITHUB_REPOSITORY_OWNER_ID\u003d90319694","--client_env\u003dACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","--client_env\u003dXDG_CONFIG_HOME\u003d/home/runner/.config","--client_env\u003dDOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","--client_env\u003dANT_HOME\u003d/usr/share/ant","--client_env\u003dJAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","--client_env\u003dGITHUB_TRIGGERING_ACTOR\u003disakstenstrom","--client_env\u003dGITHUB_REF_TYPE\u003dbranch","--client_env\u003dHOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","--client_env\u003dANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","--client_env\u003dBOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","--client_env\u003dPWD\u003d/home/runner/work/bb-portal/bb-portal","--client_env\u003dPIPX_BIN_DIR\u003d/opt/pipx_bin","--client_env\u003dLOGNAME\u003drunner","--client_env\u003dGITHUB_REPOSITORY_ID\u003d935368138","--client_env\u003dGITHUB_ACTIONS\u003dtrue","--client_env\u003dUSE_BAZEL_FALLBACK_VERSION\u003dsilent:","--client_env\u003dANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","--client_env\u003dSYSTEMD_EXEC_PID\u003d2137","--client_env\u003dGITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","--client_env\u003dGITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","--client_env\u003dPOWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","--client_env\u003dRUNNER_ENVIRONMENT\u003dgithub-hosted","--client_env\u003dDOTNET_MULTILEVEL_LOOKUP\u003d0","--client_env\u003dGITHUB_REF\u003drefs/heads/test-branch","--client_env\u003dRUNNER_OS\u003dLinux","--client_env\u003dGITHUB_REF_PROTECTED\u003dfalse","--client_env\u003dHOME\u003d/home/runner","--client_env\u003dGITHUB_API_URL\u003dhttps://api.github.com","--client_env\u003dLANG\u003dC.UTF-8","--client_env\u003dGOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","--client_env\u003dRUNNER_ARCH\u003dX64","--client_env\u003dMEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","--client_env\u003dRUNNER_TEMP\u003d/home/runner/work/_temp","--client_env\u003dGITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","--client_env\u003dEDGEWEBDRIVER\u003d/usr/local/share/edge_driver","--client_env\u003dJAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","--client_env\u003dGITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","--client_env\u003dGITHUB_EVENT_NAME\u003dpush","--client_env\u003dGITHUB_RUN_ID\u003d22613512849","--client_env\u003dJAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","--client_env\u003dANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","--client_env\u003dHOMEBREW_NO_AUTO_UPDATE\u003d1","--client_env\u003dGITHUB_ACTOR\u003disakstenstrom","--client_env\u003dNVM_DIR\u003d/home/runner/.nvm","--client_env\u003dSGX_AESM_ADDR\u003d1","--client_env\u003dGITHUB_RUN_ATTEMPT\u003d1","--client_env\u003dANDROID_HOME\u003d/usr/local/lib/android/sdk","--client_env\u003dGITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","--client_env\u003dACCEPT_EULA\u003dY","--client_env\u003dUSER\u003drunner","--client_env\u003dPSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","--client_env\u003dGITHUB_SERVER_URL\u003dhttps://github.com","--client_env\u003dPIPX_HOME\u003d/opt/pipx","--client_env\u003dGECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","--client_env\u003dCHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","--client_env\u003dSHLVL\u003d1","--client_env\u003dANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","--client_env\u003dVCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","--client_env\u003dRUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","--client_env\u003dImageVersion\u003d20260224.36.1","--client_env\u003dDOTNET_NOLOGO\u003d1","--client_env\u003dGOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","--client_env\u003dGITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","--client_env\u003dGOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","--client_env\u003dGITHUB_REF_NAME\u003dtest-branch","--client_env\u003dGITHUB_JOB\u003dbuild_and_test","--client_env\u003dXDG_RUNTIME_DIR\u003d/run/user/1001","--client_env\u003dAZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","--client_env\u003dGITHUB_REPOSITORY\u003dmeroton/bb-portal","--client_env\u003dCHROME_BIN\u003d/usr/bin/google-chrome","--client_env\u003dANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","--client_env\u003dGOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","--client_env\u003dGITHUB_RETENTION_DAYS\u003d90","--client_env\u003dJOURNAL_STREAM\u003d9:17614","--client_env\u003dRUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","--client_env\u003dGITHUB_ACTION_REPOSITORY\u003d","--client_env\u003dPATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","--client_env\u003dGITHUB_BASE_REF\u003d","--client_env\u003dGHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","--client_env\u003dCI\u003dtrue","--client_env\u003dSWIFT_PATH\u003d/usr/share/swift/usr/bin","--client_env\u003dImageOS\u003dubuntu24","--client_env\u003dGITHUB_REPOSITORY_OWNER\u003dmeroton","--client_env\u003dGITHUB_HEAD_REF\u003d","--client_env\u003dGITHUB_ACTION_REF\u003d","--client_env\u003dENABLE_RUNNER_TRACING\u003dtrue","--client_env\u003dGITHUB_WORKFLOW\u003dBuild and test backend","--client_env\u003dDEBIAN_FRONTEND\u003dnoninteractive","--client_env\u003dAGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","--client_env\u003d_\u003d/home/runner/bin/bazel","--client_cwd\u003d/home/runner/work/bb-portal/bb-portal","//...","--build_event_json_file\u003dgithub-actions.bep.ndjson"]}} +{"id":{"optionsParsed":{}},"optionsParsed":{"startupOptions":["--max_idle_secs\u003d10800","--noshutdown_on_low_sys_mem","--connect_timeout_secs\u003d30","--output_user_root\u003d/home/runner/.cache/bazel/_bazel_runner","--output_base\u003d/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b","--failure_detail_out\u003d/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto","--idle_server_tasks","--write_command_log","--nofatal_event_bus_exceptions","--nowindows_enable_symlinks","--noclient_debug"],"cmdLine":["--build_event_json_file\u003dgithub-actions.bep.ndjson"],"explicitCmdLine":["--build_event_json_file\u003dgithub-actions.bep.ndjson"],"invocationPolicy":{}}} +{"id":{"structuredCommandLine":{"commandLineLabel":"original"}},"structuredCommandLine":{"commandLineLabel":"original","sections":[{"sectionLabel":"executable","chunkList":{"chunk":["bazel"]}},{"sectionLabel":"startup options","optionList":{}},{"sectionLabel":"command","chunkList":{"chunk":["build"]}},{"sectionLabel":"command options","optionList":{"option":[{"combinedForm":"--rc_source\u003dclient","optionName":"rc_source","optionValue":"client","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--rc_source\u003d/home/runner/work/bb-portal/bb-portal/.bazelrc","optionName":"rc_source","optionValue":"/home/runner/work/bb-portal/bb-portal/.bazelrc","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--isatty\u003d0","optionName":"default_override","optionValue":"0:common\u003d--isatty\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--terminal_columns\u003d80","optionName":"default_override","optionValue":"0:common\u003d--terminal_columns\u003d80","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","optionName":"default_override","optionValue":"1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--startup_time\u003d1987","optionName":"startup_time","optionValue":"1987","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--command_wait_time\u003d0","optionName":"command_wait_time","optionValue":"0","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--extract_data_time\u003d919","optionName":"extract_data_time","optionValue":"919","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--restart_reason\u003dno_daemon","optionName":"restart_reason","optionValue":"no_daemon","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--binary_path\u003d/home/runner/work/bb-portal/bb-portal/bazel","optionName":"binary_path","optionValue":"/home/runner/work/bb-portal/bb-portal/bazel","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--client_env\u003dSHELL\u003d/bin/bash","optionName":"client_env","optionValue":"SHELL\u003d/bin/bash","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","optionName":"client_env","optionValue":"SELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCONDA\u003d/usr/share/miniconda","optionName":"client_env","optionValue":"CONDA\u003d/usr/share/miniconda","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"GITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION\u003d__run_2","optionName":"client_env","optionValue":"GITHUB_ACTION\u003d__run_2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_NUMBER\u003d2","optionName":"client_env","optionValue":"GITHUB_RUN_NUMBER\u003d2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_NAME\u003dGitHub Actions 1000007294","optionName":"client_env","optionValue":"RUNNER_NAME\u003dGitHub Actions 1000007294","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGRADLE_HOME\u003d/usr/share/gradle-9.3.1","optionName":"client_env","optionValue":"GRADLE_HOME\u003d/usr/share/gradle-9.3.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER_ID\u003d90319694","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER_ID\u003d90319694","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","optionName":"client_env","optionValue":"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_CONFIG_HOME\u003d/home/runner/.config","optionName":"client_env","optionValue":"XDG_CONFIG_HOME\u003d/home/runner/.config","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","optionName":"client_env","optionValue":"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANT_HOME\u003d/usr/share/ant","optionName":"client_env","optionValue":"ANT_HOME\u003d/usr/share/ant","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_TRIGGERING_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_TRIGGERING_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_TYPE\u003dbranch","optionName":"client_env","optionValue":"GITHUB_REF_TYPE\u003dbranch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","optionName":"client_env","optionValue":"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dBOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","optionName":"client_env","optionValue":"BOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPWD\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"PWD\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_BIN_DIR\u003d/opt/pipx_bin","optionName":"client_env","optionValue":"PIPX_BIN_DIR\u003d/opt/pipx_bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLOGNAME\u003drunner","optionName":"client_env","optionValue":"LOGNAME\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_ID\u003d935368138","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_ID\u003d935368138","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTIONS\u003dtrue","optionName":"client_env","optionValue":"GITHUB_ACTIONS\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSE_BAZEL_FALLBACK_VERSION\u003dsilent:","optionName":"client_env","optionValue":"USE_BAZEL_FALLBACK_VERSION\u003dsilent:","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","optionName":"client_env","optionValue":"ANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSYSTEMD_EXEC_PID\u003d2137","optionName":"client_env","optionValue":"SYSTEMD_EXEC_PID\u003d2137","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPOWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","optionName":"client_env","optionValue":"POWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ENVIRONMENT\u003dgithub-hosted","optionName":"client_env","optionValue":"RUNNER_ENVIRONMENT\u003dgithub-hosted","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_MULTILEVEL_LOOKUP\u003d0","optionName":"client_env","optionValue":"DOTNET_MULTILEVEL_LOOKUP\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF\u003drefs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_REF\u003drefs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_OS\u003dLinux","optionName":"client_env","optionValue":"RUNNER_OS\u003dLinux","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_PROTECTED\u003dfalse","optionName":"client_env","optionValue":"GITHUB_REF_PROTECTED\u003dfalse","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOME\u003d/home/runner","optionName":"client_env","optionValue":"HOME\u003d/home/runner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_API_URL\u003dhttps://api.github.com","optionName":"client_env","optionValue":"GITHUB_API_URL\u003dhttps://api.github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLANG\u003dC.UTF-8","optionName":"client_env","optionValue":"LANG\u003dC.UTF-8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","optionName":"client_env","optionValue":"GOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ARCH\u003dX64","optionName":"client_env","optionValue":"RUNNER_ARCH\u003dX64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dMEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","optionName":"client_env","optionValue":"MEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TEMP\u003d/home/runner/work/_temp","optionName":"client_env","optionValue":"RUNNER_TEMP\u003d/home/runner/work/_temp","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dEDGEWEBDRIVER\u003d/usr/local/share/edge_driver","optionName":"client_env","optionValue":"EDGEWEBDRIVER\u003d/usr/local/share/edge_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","optionName":"client_env","optionValue":"GITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_NAME\u003dpush","optionName":"client_env","optionValue":"GITHUB_EVENT_NAME\u003dpush","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ID\u003d22613512849","optionName":"client_env","optionValue":"GITHUB_RUN_ID\u003d22613512849","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_NO_AUTO_UPDATE\u003d1","optionName":"client_env","optionValue":"HOMEBREW_NO_AUTO_UPDATE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dNVM_DIR\u003d/home/runner/.nvm","optionName":"client_env","optionValue":"NVM_DIR\u003d/home/runner/.nvm","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSGX_AESM_ADDR\u003d1","optionName":"client_env","optionValue":"SGX_AESM_ADDR\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ATTEMPT\u003d1","optionName":"client_env","optionValue":"GITHUB_RUN_ATTEMPT\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_HOME\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_HOME\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","optionName":"client_env","optionValue":"GITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACCEPT_EULA\u003dY","optionName":"client_env","optionValue":"ACCEPT_EULA\u003dY","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSER\u003drunner","optionName":"client_env","optionValue":"USER\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","optionName":"client_env","optionValue":"PSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SERVER_URL\u003dhttps://github.com","optionName":"client_env","optionValue":"GITHUB_SERVER_URL\u003dhttps://github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_HOME\u003d/opt/pipx","optionName":"client_env","optionValue":"PIPX_HOME\u003d/opt/pipx","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","optionName":"client_env","optionValue":"GECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","optionName":"client_env","optionValue":"CHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSHLVL\u003d1","optionName":"client_env","optionValue":"SHLVL\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dVCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","optionName":"client_env","optionValue":"VCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"RUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageVersion\u003d20260224.36.1","optionName":"client_env","optionValue":"ImageVersion\u003d20260224.36.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_NOLOGO\u003d1","optionName":"client_env","optionValue":"DOTNET_NOLOGO\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","optionName":"client_env","optionValue":"GOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","optionName":"client_env","optionValue":"GOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_NAME\u003dtest-branch","optionName":"client_env","optionValue":"GITHUB_REF_NAME\u003dtest-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_JOB\u003dbuild_and_test","optionName":"client_env","optionValue":"GITHUB_JOB\u003dbuild_and_test","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_RUNTIME_DIR\u003d/run/user/1001","optionName":"client_env","optionValue":"XDG_RUNTIME_DIR\u003d/run/user/1001","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","optionName":"client_env","optionValue":"AZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY\u003dmeroton/bb-portal","optionName":"client_env","optionValue":"GITHUB_REPOSITORY\u003dmeroton/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROME_BIN\u003d/usr/bin/google-chrome","optionName":"client_env","optionValue":"CHROME_BIN\u003d/usr/bin/google-chrome","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","optionName":"client_env","optionValue":"GOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RETENTION_DAYS\u003d90","optionName":"client_env","optionValue":"GITHUB_RETENTION_DAYS\u003d90","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJOURNAL_STREAM\u003d9:17614","optionName":"client_env","optionValue":"JOURNAL_STREAM\u003d9:17614","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","optionName":"client_env","optionValue":"RUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REPOSITORY\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REPOSITORY\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","optionName":"client_env","optionValue":"PATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_BASE_REF\u003d","optionName":"client_env","optionValue":"GITHUB_BASE_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","optionName":"client_env","optionValue":"GHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCI\u003dtrue","optionName":"client_env","optionValue":"CI\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSWIFT_PATH\u003d/usr/share/swift/usr/bin","optionName":"client_env","optionValue":"SWIFT_PATH\u003d/usr/share/swift/usr/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageOS\u003dubuntu24","optionName":"client_env","optionValue":"ImageOS\u003dubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER\u003dmeroton","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER\u003dmeroton","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_HEAD_REF\u003d","optionName":"client_env","optionValue":"GITHUB_HEAD_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REF\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dENABLE_RUNNER_TRACING\u003dtrue","optionName":"client_env","optionValue":"ENABLE_RUNNER_TRACING\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW\u003dBuild and test backend","optionName":"client_env","optionValue":"GITHUB_WORKFLOW\u003dBuild and test backend","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDEBIAN_FRONTEND\u003dnoninteractive","optionName":"client_env","optionValue":"DEBIAN_FRONTEND\u003dnoninteractive","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"AGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003d_\u003d/home/runner/bin/bazel","optionName":"client_env","optionValue":"_\u003d/home/runner/bin/bazel","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_cwd\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_cwd","optionValue":"/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--build_event_json_file\u003dgithub-actions.bep.ndjson","optionName":"build_event_json_file","optionValue":"github-actions.bep.ndjson","effectTags":["AFFECTS_OUTPUTS"],"source":"command line options"}]}},{"sectionLabel":"residual","chunkList":{"chunk":["//..."]}}]}} +{"id":{"structuredCommandLine":{"commandLineLabel":"tool"}},"structuredCommandLine":{}} +{"id":{"progress":{}},"children":[{"progress":{"opaqueCount":1}},{"fetch":{"url":"https://github.com/bazel-contrib/bazel-lib/releases/download/v2.22.5/bazel-lib-v2.22.5.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Computing main repo mapping: \nComputing main repo mapping: \nComputing main repo mapping: \nLoading: \nLoading: 0 packages loaded\n"}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/bazel-lib/releases/download/v2.22.5/bazel-lib-v2.22.5.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":1}},"children":[{"progress":{"opaqueCount":2}},{"fetch":{"url":"https://github.com/bazel-contrib/bazel-gazelle/releases/download/v0.47.0/bazel-gazelle-v0.47.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/bazel-gazelle/releases/download/v0.47.0/bazel-gazelle-v0.47.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":2}},"children":[{"progress":{"opaqueCount":3}},{"fetch":{"url":"https://github.com/bazel-contrib/rules_img/releases/download/v0.3.4/rules_img-v0.3.4.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/rules_img/releases/download/v0.3.4/rules_img-v0.3.4.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":3}},"children":[{"progress":{"opaqueCount":4}},{"fetch":{"url":"https://github.com/bazelbuild/rules_jsonnet/releases/download/0.7.2/rules_jsonnet-0.7.2.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_jsonnet/releases/download/0.7.2/rules_jsonnet-0.7.2.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":4}},"children":[{"progress":{"opaqueCount":5}},{"fetch":{"url":"https://github.com/bazelbuild/bazel-skylib/releases/download/1.9.0/bazel-skylib-1.9.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/bazel-skylib/releases/download/1.9.0/bazel-skylib-1.9.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":5}},"children":[{"progress":{"opaqueCount":6}},{"fetch":{"url":"https://github.com/bazelbuild/platforms/releases/download/1.0.0/platforms-1.0.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/platforms/releases/download/1.0.0/platforms-1.0.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":6}},"children":[{"progress":{"opaqueCount":7}},{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/patches/go_dev_dep.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/patches/go_dev_dep.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":7}},"children":[{"progress":{"opaqueCount":8}},{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":8}},"children":[{"progress":{"opaqueCount":9}},{"fetch":{"url":"https://github.com/bazelbuild/rules_shell/releases/download/v0.6.1/rules_shell-v0.6.1.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_shell/releases/download/v0.6.1/rules_shell-v0.6.1.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":9}},"children":[{"progress":{"opaqueCount":10}},{"fetch":{"url":"https://github.com/bazel-contrib/bazel-lib/releases/download/v3.0.0/bazel-lib-v3.0.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/bazel-lib/releases/download/v3.0.0/bazel-lib-v3.0.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":10}},"children":[{"progress":{"opaqueCount":11}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_shell/0.6.1/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_shell/0.6.1/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":11}},"children":[{"progress":{"opaqueCount":12}},{"fetch":{"url":"https://github.com/malt3/hermetic-launcher/releases/download/v0.0.4/hermetic_launcher-v0.0.4.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/malt3/hermetic-launcher/releases/download/v0.0.4/hermetic_launcher-v0.0.4.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":12}},"children":[{"progress":{"opaqueCount":13}},{"fetch":{"url":"https://bcr.bazel.build/modules/hermetic_launcher/0.0.4/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/hermetic_launcher/0.0.4/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":13}},"children":[{"progress":{"opaqueCount":14}},{"fetch":{"url":"https://bcr.bazel.build/modules/bazel_lib/3.0.0/patches/go_dev_dep.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/bazel_lib/3.0.0/patches/go_dev_dep.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":14}},"children":[{"progress":{"opaqueCount":15}},{"fetch":{"url":"https://bcr.bazel.build/modules/bazel_lib/3.0.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/bazel_lib/3.0.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":15}},"children":[{"progress":{"opaqueCount":16}},{"fetch":{"url":"https://github.com/bazelbuild/rules_proto/releases/download/7.1.0/rules_proto-7.1.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_proto/releases/download/7.1.0/rules_proto-7.1.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":16}},"children":[{"progress":{"opaqueCount":17}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_proto/7.1.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{"stderr":"Loading: 4 packages loaded\n currently loading: ent/gen/ent/cumulativemetrics ... (46 packages)\n"}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_proto/7.1.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":17}},"children":[{"progress":{"opaqueCount":18}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_proto/7.1.0/patches/MODULE.bazel.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_proto/7.1.0/patches/MODULE.bazel.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":18}},"children":[{"progress":{"opaqueCount":19}},{"fetch":{"url":"https://github.com/bazel-contrib/rules_go/releases/download/v0.59.0/rules_go-v0.59.0.zip","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/rules_go/releases/download/v0.59.0/rules_go-v0.59.0.zip","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":19}},"children":[{"progress":{"opaqueCount":20}},{"fetch":{"url":"https://bcr.bazel.build/modules/gazelle/0.47.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/gazelle/0.47.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":20}},"children":[{"progress":{"opaqueCount":21}},{"fetch":{"url":"https://github.com/protocolbuffers/protobuf/releases/download/v33.4/protobuf-33.4.bazel.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/protocolbuffers/protobuf/releases/download/v33.4/protobuf-33.4.bazel.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":21}},"children":[{"progress":{"opaqueCount":22}},{"fetch":{"url":"https://github.com/bazel-contrib/bazel_features/releases/download/v1.39.0/bazel_features-v1.39.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/bazel_features/releases/download/v1.39.0/bazel_features-v1.39.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":22}},"children":[{"progress":{"opaqueCount":23}},{"fetch":{"url":"https://bcr.bazel.build/modules/bazel_features/1.39.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/bazel_features/1.39.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":23}},"children":[{"progress":{"opaqueCount":24}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_go/0.59.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_go/0.59.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":24}},"children":[{"progress":{"opaqueCount":25}},{"fetch":{"url":"https://github.com/bazelbuild/rules_cc/releases/download/0.2.16/rules_cc-0.2.16.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_cc/releases/download/0.2.16/rules_cc-0.2.16.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":25}},"children":[{"progress":{"opaqueCount":26}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_cc/0.2.16/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_cc/0.2.16/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":26}},"children":[{"progress":{"opaqueCount":27}},{"fetch":{"url":"https://github.com/google/cel-spec/archive/refs/tags/v0.25.1.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Loading: 4 packages loaded\n currently loading: ent/gen/ent/cumulativemetrics ... (75 packages)\n"}} +{"id":{"fetch":{"url":"https://github.com/google/cel-spec/archive/refs/tags/v0.25.1.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":27}},"children":[{"progress":{"opaqueCount":28}},{"fetch":{"url":"https://bcr.bazel.build/modules/cel-spec/0.25.1/patches/module_dot_bazel.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/cel-spec/0.25.1/patches/module_dot_bazel.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":28}},"children":[{"progress":{"opaqueCount":29}},{"fetch":{"url":"https://github.com/google/go-jsonnet/releases/download/v0.21.0/go-jsonnet-v0.21.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/google/go-jsonnet/releases/download/v0.21.0/go-jsonnet-v0.21.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":29}},"children":[{"progress":{"opaqueCount":30}},{"fetch":{"url":"https://github.com/bufbuild/protoc-gen-validate/archive/refs/tags/v1.3.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bufbuild/protoc-gen-validate/archive/refs/tags/v1.3.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":30}},"children":[{"progress":{"opaqueCount":31}},{"fetch":{"url":"https://bcr.bazel.build/modules/protoc-gen-validate/1.3.0/patches/bazel_9_fixes.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/protoc-gen-validate/1.3.0/patches/bazel_9_fixes.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":31}},"children":[{"progress":{"opaqueCount":32}},{"fetch":{"url":"https://github.com/cncf/xds/archive/555b57ec207be86f811fb0c04752db6f85e3d7e2.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/cncf/xds/archive/555b57ec207be86f811fb0c04752db6f85e3d7e2.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":32}},"children":[{"progress":{"opaqueCount":33}},{"fetch":{"url":"https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/patches/bzlmod.patch","downloader":"HTTP"}}],"progress":{"stderr":"Loading: 78 packages loaded\n currently loading: \n"}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/patches/bzlmod.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":33}},"children":[{"progress":{"opaqueCount":34}},{"fetch":{"url":"https://dl.google.com/go/go1.25.4.linux-amd64.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Loading: 78 packages loaded\n currently loading: \n"}} +{"id":{"fetch":{"url":"https://dl.google.com/go/go1.25.4.linux-amd64.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"pattern":{"pattern":["//..."]}},"children":[{"targetConfigured":{"label":"//cmd/bb_export_schema:bb_export_schema"}},{"targetConfigured":{"label":"//cmd/bb_export_schema:bb_export_schema_lib"}},{"targetConfigured":{"label":"//cmd/bb_portal:bb_portal"}},{"targetConfigured":{"label":"//cmd/bb_portal:bb_portal_lib"}},{"targetConfigured":{"label":"//ent/authschema:authschema"}},{"targetConfigured":{"label":"//ent/authschema:authschema_test"}},{"targetConfigured":{"label":"//ent/gen/ent/action:action"}},{"targetConfigured":{"label":"//ent/gen/ent/actioncachestatistics:actioncachestatistics"}},{"targetConfigured":{"label":"//ent/gen/ent/actiondata:actiondata"}},{"targetConfigured":{"label":"//ent/gen/ent/actionsummary:actionsummary"}},{"targetConfigured":{"label":"//ent/gen/ent/artifactmetrics:artifactmetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/authenticateduser:authenticateduser"}},{"targetConfigured":{"label":"//ent/gen/ent/bazelinvocation:bazelinvocation"}},{"targetConfigured":{"label":"//ent/gen/ent/build:build"}},{"targetConfigured":{"label":"//ent/gen/ent/buildgraphmetrics:buildgraphmetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/buildlogchunk:buildlogchunk"}},{"targetConfigured":{"label":"//ent/gen/ent/configuration:configuration"}},{"targetConfigured":{"label":"//ent/gen/ent/connectionmetadata:connectionmetadata"}},{"targetConfigured":{"label":"//ent/gen/ent/cumulativemetrics:cumulativemetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/enttest:enttest"}},{"targetConfigured":{"label":"//ent/gen/ent/evaluationstat:evaluationstat"}},{"targetConfigured":{"label":"//ent/gen/ent/eventmetadata:eventmetadata"}},{"targetConfigured":{"label":"//ent/gen/ent/garbagemetrics:garbagemetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/hook:hook"}},{"targetConfigured":{"label":"//ent/gen/ent/incompletebuildlog:incompletebuildlog"}},{"targetConfigured":{"label":"//ent/gen/ent/instancename:instancename"}},{"targetConfigured":{"label":"//ent/gen/ent/invocationfiles:invocationfiles"}},{"targetConfigured":{"label":"//ent/gen/ent/invocationtarget:invocationtarget"}},{"targetConfigured":{"label":"//ent/gen/ent/memorymetrics:memorymetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/metrics:metrics"}},{"targetConfigured":{"label":"//ent/gen/ent/migrate:migrate"}},{"targetConfigured":{"label":"//ent/gen/ent/missdetail:missdetail"}},{"targetConfigured":{"label":"//ent/gen/ent/networkmetrics:networkmetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/packageloadmetrics:packageloadmetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/packagemetrics:packagemetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/predicate:predicate"}},{"targetConfigured":{"label":"//ent/gen/ent/privacy:privacy"}},{"targetConfigured":{"label":"//ent/gen/ent/runnercount:runnercount"}},{"targetConfigured":{"label":"//ent/gen/ent/runtime:runtime"}},{"targetConfigured":{"label":"//ent/gen/ent/sourcecontrol:sourcecontrol"}},{"targetConfigured":{"label":"//ent/gen/ent/systemnetworkstats:systemnetworkstats"}},{"targetConfigured":{"label":"//ent/gen/ent/target:target"}},{"targetConfigured":{"label":"//ent/gen/ent/targetkindmapping:targetkindmapping"}},{"targetConfigured":{"label":"//ent/gen/ent/targetmetrics:targetmetrics"}},{"targetConfigured":{"label":"//ent/gen/ent/testresult:testresult"}},{"targetConfigured":{"label":"//ent/gen/ent/testsummary:testsummary"}},{"targetConfigured":{"label":"//ent/gen/ent/timingmetrics:timingmetrics"}},{"targetConfigured":{"label":"//ent/gen/ent:ent"}},{"targetConfigured":{"label":"//ent/schema:schema"}},{"targetConfigured":{"label":"//frontend/src/graphql:__generated__"}},{"targetConfigured":{"label":"//frontend:bazel_remote_execution_proto"}},{"targetConfigured":{"label":"//frontend:bazel_remote_execution_proto_src"}},{"targetConfigured":{"label":"//frontend:bazel_remote_execution_proto_test"}},{"targetConfigured":{"label":"//frontend:bazel_semver_proto"}},{"targetConfigured":{"label":"//frontend:bazel_semver_proto_src"}},{"targetConfigured":{"label":"//frontend:bazel_semver_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_auth_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_auth_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_auth_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_buildqueuestate_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_buildqueuestate_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_buildqueuestate_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_cas_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_cas_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_cas_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_fsac_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_fsac_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_fsac_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_iscc_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_iscc_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_iscc_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_query_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_query_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_query_proto_test"}},{"targetConfigured":{"label":"//frontend:buildbarn_resourceusage_proto"}},{"targetConfigured":{"label":"//frontend:buildbarn_resourceusage_proto_src"}},{"targetConfigured":{"label":"//frontend:buildbarn_resourceusage_proto_test"}},{"targetConfigured":{"label":"//frontend:google_annotations_proto"}},{"targetConfigured":{"label":"//frontend:google_annotations_proto_src"}},{"targetConfigured":{"label":"//frontend:google_annotations_proto_test"}},{"targetConfigured":{"label":"//frontend:google_any_proto"}},{"targetConfigured":{"label":"//frontend:google_any_proto_src"}},{"targetConfigured":{"label":"//frontend:google_any_proto_test"}},{"targetConfigured":{"label":"//frontend:google_bytestream_proto"}},{"targetConfigured":{"label":"//frontend:google_bytestream_proto_src"}},{"targetConfigured":{"label":"//frontend:google_bytestream_proto_test"}},{"targetConfigured":{"label":"//frontend:google_client_proto"}},{"targetConfigured":{"label":"//frontend:google_client_proto_src"}},{"targetConfigured":{"label":"//frontend:google_client_proto_test"}},{"targetConfigured":{"label":"//frontend:google_code_proto"}},{"targetConfigured":{"label":"//frontend:google_code_proto_src"}},{"targetConfigured":{"label":"//frontend:google_code_proto_test"}},{"targetConfigured":{"label":"//frontend:google_descriptor_proto"}},{"targetConfigured":{"label":"//frontend:google_descriptor_proto_src"}},{"targetConfigured":{"label":"//frontend:google_descriptor_proto_test"}},{"targetConfigured":{"label":"//frontend:google_duration_proto"}},{"targetConfigured":{"label":"//frontend:google_duration_proto_src"}},{"targetConfigured":{"label":"//frontend:google_duration_proto_test"}},{"targetConfigured":{"label":"//frontend:google_empty_proto"}},{"targetConfigured":{"label":"//frontend:google_empty_proto_src"}},{"targetConfigured":{"label":"//frontend:google_empty_proto_test"}},{"targetConfigured":{"label":"//frontend:google_field_behavior_proto"}},{"targetConfigured":{"label":"//frontend:google_field_behavior_proto_src"}},{"targetConfigured":{"label":"//frontend:google_field_behavior_proto_test"}},{"targetConfigured":{"label":"//frontend:google_http_proto"}},{"targetConfigured":{"label":"//frontend:google_http_proto_src"}},{"targetConfigured":{"label":"//frontend:google_http_proto_test"}},{"targetConfigured":{"label":"//frontend:google_launch_stage_proto"}},{"targetConfigured":{"label":"//frontend:google_launch_stage_proto_src"}},{"targetConfigured":{"label":"//frontend:google_launch_stage_proto_test"}},{"targetConfigured":{"label":"//frontend:google_operations_proto"}},{"targetConfigured":{"label":"//frontend:google_operations_proto_src"}},{"targetConfigured":{"label":"//frontend:google_operations_proto_test"}},{"targetConfigured":{"label":"//frontend:google_status_proto"}},{"targetConfigured":{"label":"//frontend:google_status_proto_src"}},{"targetConfigured":{"label":"//frontend:google_status_proto_test"}},{"targetConfigured":{"label":"//frontend:google_timestamp_proto"}},{"targetConfigured":{"label":"//frontend:google_timestamp_proto_src"}},{"targetConfigured":{"label":"//frontend:google_timestamp_proto_test"}},{"targetConfigured":{"label":"//frontend:google_wrappers_proto"}},{"targetConfigured":{"label":"//frontend:google_wrappers_proto_src"}},{"targetConfigured":{"label":"//frontend:google_wrappers_proto_test"}},{"targetConfigured":{"label":"//frontend:opentelemetry_common_proto"}},{"targetConfigured":{"label":"//frontend:opentelemetry_common_proto_src"}},{"targetConfigured":{"label":"//frontend:opentelemetry_common_proto_test"}},{"targetConfigured":{"label":"//frontend:protobuf"}},{"targetConfigured":{"label":"//internal/api/common:common"}},{"targetConfigured":{"label":"//internal/api/common:common_test"}},{"targetConfigured":{"label":"//internal/api/grpc/bes:bes"}},{"targetConfigured":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy"}},{"targetConfigured":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy_test"}},{"targetConfigured":{"label":"//internal/api/http/bepuploader:bepuploader"}},{"targetConfigured":{"label":"//internal/api/http/loghandler:loghandler"}},{"targetConfigured":{"label":"//internal/api/servefiles:servefiles_lib"}},{"targetConfigured":{"label":"//internal/database/buildeventrecorder:buildeventrecorder"}},{"targetConfigured":{"label":"//internal/database/common:common"}},{"targetConfigured":{"label":"//internal/database/dbauthservice:dbauthservice"}},{"targetConfigured":{"label":"//internal/database/dbauthservice:dbauthservice_test"}},{"targetConfigured":{"label":"//internal/database/dbcleanupservice:dbcleanupservice"}},{"targetConfigured":{"label":"//internal/database/dbcleanupservice:dbcleanupservice_test"}},{"targetConfigured":{"label":"//internal/database/embedded:embedded"}},{"targetConfigured":{"label":"//internal/database/sqlc:sqlc"}},{"targetConfigured":{"label":"//internal/database:database"}},{"targetConfigured":{"label":"//internal/graphql/helpers:helpers"}},{"targetConfigured":{"label":"//internal/graphql/model:model"}},{"targetConfigured":{"label":"//internal/graphql:graphql"}},{"targetConfigured":{"label":"//internal/mock:buildqueuestate"}},{"targetConfigured":{"label":"//internal/mock:clock"}},{"targetConfigured":{"label":"//internal/mock:mock"}},{"targetConfigured":{"label":"//internal/mock:util"}},{"targetConfigured":{"label":"//pkg/authmetadataextraction:authmetadataextraction"}},{"targetConfigured":{"label":"//pkg/authmetadataextraction:authmetadataextraction_test"}},{"targetConfigured":{"label":"//pkg/prometheus_metrics:prometheus_metrics"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go_test"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto_pb_go"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_proto"}},{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:strategy_policy_proto_file"}},{"targetConfigured":{"label":"//pkg/proto/configuration/bb_portal:bb_portal"}},{"targetConfigured":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_go_proto"}},{"targetConfigured":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_proto"}},{"targetConfigured":{"label":"//pkg/testkit:testkit"}},{"targetConfigured":{"label":"//pkg/uuidgql:uuidgql"}},{"targetConfigured":{"label":"//test/integrationtest:integrationtest_test"}},{"targetConfigured":{"label":"//test/testutils:testutils"}},{"targetConfigured":{"label":"//tools/github_workflows:github_workflows"}},{"targetConfigured":{"label":"//tools:reformat"}},{"targetConfigured":{"label":"//tools:sqlc"}},{"targetConfigured":{"label":"//tools:sqlc_linux"}},{"targetConfigured":{"label":"//tools:sqlc_macos"}},{"targetConfigured":{"label":"//:gazelle-runner"}},{"targetConfigured":{"label":"//:update_workflows"}},{"targetConfigured":{"label":"//:update_workflows_0"}},{"targetConfigured":{"label":"//:update_workflows_0_test"}},{"targetConfigured":{"label":"//:update_workflows_1"}},{"targetConfigured":{"label":"//:update_workflows_1_test"}},{"targetConfigured":{"label":"//:update_workflows_2"}},{"targetConfigured":{"label":"//:update_workflows_2_test"}}],"expanded":{"testSuiteExpansions":[{"suiteLabel":"//:update_workflows_tests","testLabels":["//:update_workflows_0_test","//:update_workflows_1_test","//:update_workflows_2_test"]}]}} +{"id":{"progress":{"opaqueCount":34}},"children":[{"progress":{"opaqueCount":35}},{"workspace":{}}],"progress":{"stderr":"Loading: 78 packages loaded\n currently loading: \nLoading: 78 packages loaded\n currently loading: \nLoading: 78 packages loaded\n currently loading: \n"}} +{"id":{"workspace":{}},"workspaceInfo":{"localExecRoot":"/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main"}} +{"id":{"structuredCommandLine":{"commandLineLabel":"canonical"}},"structuredCommandLine":{"commandLineLabel":"canonical","sections":[{"sectionLabel":"executable","chunkList":{"chunk":["bazel"]}},{"sectionLabel":"startup options","optionList":{"option":[{"combinedForm":"--max_idle_secs\u003d10800","optionName":"max_idle_secs","optionValue":"10800","effectTags":["EAGERNESS_TO_EXIT","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--noshutdown_on_low_sys_mem","optionName":"shutdown_on_low_sys_mem","optionValue":"0","effectTags":["EAGERNESS_TO_EXIT","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--connect_timeout_secs\u003d30","optionName":"connect_timeout_secs","optionValue":"30","effectTags":["BAZEL_INTERNAL_CONFIGURATION"],"source":"default"},{"combinedForm":"--output_user_root\u003d/home/runner/.cache/bazel/_bazel_runner","optionName":"output_user_root","optionValue":"/home/runner/.cache/bazel/_bazel_runner","effectTags":["AFFECTS_OUTPUTS","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--lock_install_base","optionName":"lock_install_base","optionValue":"1","effectTags":["BAZEL_INTERNAL_CONFIGURATION"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--workspace_directory\u003d/home/runner/work/bb-portal/bb-portal","optionName":"workspace_directory","optionValue":"/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS","LOSES_INCREMENTAL_STATE"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--default_system_javabase\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"default_system_javabase","optionValue":"/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS","LOSES_INCREMENTAL_STATE"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--failure_detail_out\u003d/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto","optionName":"failure_detail_out","optionValue":"/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto","effectTags":["AFFECTS_OUTPUTS","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--idle_server_tasks","optionName":"idle_server_tasks","optionValue":"1","effectTags":["LOSES_INCREMENTAL_STATE","HOST_MACHINE_RESOURCE_OPTIMIZATIONS"],"source":"default"},{"combinedForm":"--write_command_log","optionName":"write_command_log","optionValue":"1","effectTags":["AFFECTS_OUTPUTS","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--nofatal_event_bus_exceptions","optionName":"fatal_event_bus_exceptions","optionValue":"0","effectTags":["EAGERNESS_TO_EXIT","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--nowindows_enable_symlinks","optionName":"windows_enable_symlinks","optionValue":"0","effectTags":["BAZEL_INTERNAL_CONFIGURATION"],"source":"default"},{"combinedForm":"--client_debug\u003dfalse","optionName":"client_debug","optionValue":"false","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"source":"default"},{"combinedForm":"--product_name\u003dBazel","optionName":"product_name","optionValue":"Bazel","effectTags":["LOSES_INCREMENTAL_STATE","AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--option_sources\u003d","optionName":"option_sources","effectTags":["AFFECTS_OUTPUTS"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--ignore_all_rc_files","optionName":"ignore_all_rc_files","optionValue":"1","effectTags":["CHANGES_INPUTS"]}]}},{"sectionLabel":"command","chunkList":{"chunk":["build"]}},{"sectionLabel":"command options","optionList":{"option":[{"combinedForm":"--flag_alias\u003dbuild_python_zip\u003d@@rules_python+//python/config_settings:build_python_zip","optionName":"flag_alias","optionValue":"build_python_zip\u003d@@rules_python+//python/config_settings:build_python_zip","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--flag_alias\u003dincompatible_default_to_explicit_init_py\u003d@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py","optionName":"flag_alias","optionValue":"incompatible_default_to_explicit_init_py\u003d@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--flag_alias\u003dpython_path\u003d@@rules_python+//python/config_settings:python_path","optionName":"flag_alias","optionValue":"python_path\u003d@@rules_python+//python/config_settings:python_path","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--flag_alias\u003dexperimental_python_import_all_repositories\u003d@@rules_python+//python/config_settings:experimental_python_import_all_repositories","optionName":"flag_alias","optionValue":"experimental_python_import_all_repositories\u003d@@rules_python+//python/config_settings:experimental_python_import_all_repositories","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--isatty\u003d0","optionName":"isatty","optionValue":"0","effectTags":["UNKNOWN"],"metadataTags":["HIDDEN"],"source":"client"},{"combinedForm":"--terminal_columns\u003d80","optionName":"terminal_columns","optionValue":"80","effectTags":["UNKNOWN"],"metadataTags":["HIDDEN"],"source":"client"},{"combinedForm":"--rc_source\u003dclient","optionName":"rc_source","optionValue":"client","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--rc_source\u003d/home/runner/work/bb-portal/bb-portal/.bazelrc","optionName":"rc_source","optionValue":"/home/runner/work/bb-portal/bb-portal/.bazelrc","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--isatty\u003d0","optionName":"default_override","optionValue":"0:common\u003d--isatty\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--terminal_columns\u003d80","optionName":"default_override","optionValue":"0:common\u003d--terminal_columns\u003d80","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","optionName":"default_override","optionValue":"1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--startup_time\u003d1987","optionName":"startup_time","optionValue":"1987","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--command_wait_time\u003d0","optionName":"command_wait_time","optionValue":"0","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--extract_data_time\u003d919","optionName":"extract_data_time","optionValue":"919","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--restart_reason\u003dno_daemon","optionName":"restart_reason","optionValue":"no_daemon","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--binary_path\u003d/home/runner/work/bb-portal/bb-portal/bazel","optionName":"binary_path","optionValue":"/home/runner/work/bb-portal/bb-portal/bazel","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--client_env\u003dSHELL\u003d/bin/bash","optionName":"client_env","optionValue":"SHELL\u003d/bin/bash","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","optionName":"client_env","optionValue":"SELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCONDA\u003d/usr/share/miniconda","optionName":"client_env","optionValue":"CONDA\u003d/usr/share/miniconda","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"GITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION\u003d__run_2","optionName":"client_env","optionValue":"GITHUB_ACTION\u003d__run_2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_NUMBER\u003d2","optionName":"client_env","optionValue":"GITHUB_RUN_NUMBER\u003d2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_NAME\u003dGitHub Actions 1000007294","optionName":"client_env","optionValue":"RUNNER_NAME\u003dGitHub Actions 1000007294","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGRADLE_HOME\u003d/usr/share/gradle-9.3.1","optionName":"client_env","optionValue":"GRADLE_HOME\u003d/usr/share/gradle-9.3.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER_ID\u003d90319694","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER_ID\u003d90319694","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","optionName":"client_env","optionValue":"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_CONFIG_HOME\u003d/home/runner/.config","optionName":"client_env","optionValue":"XDG_CONFIG_HOME\u003d/home/runner/.config","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","optionName":"client_env","optionValue":"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANT_HOME\u003d/usr/share/ant","optionName":"client_env","optionValue":"ANT_HOME\u003d/usr/share/ant","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_TRIGGERING_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_TRIGGERING_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_TYPE\u003dbranch","optionName":"client_env","optionValue":"GITHUB_REF_TYPE\u003dbranch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","optionName":"client_env","optionValue":"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dBOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","optionName":"client_env","optionValue":"BOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPWD\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"PWD\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_BIN_DIR\u003d/opt/pipx_bin","optionName":"client_env","optionValue":"PIPX_BIN_DIR\u003d/opt/pipx_bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLOGNAME\u003drunner","optionName":"client_env","optionValue":"LOGNAME\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_ID\u003d935368138","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_ID\u003d935368138","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTIONS\u003dtrue","optionName":"client_env","optionValue":"GITHUB_ACTIONS\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSE_BAZEL_FALLBACK_VERSION\u003dsilent:","optionName":"client_env","optionValue":"USE_BAZEL_FALLBACK_VERSION\u003dsilent:","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","optionName":"client_env","optionValue":"ANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSYSTEMD_EXEC_PID\u003d2137","optionName":"client_env","optionValue":"SYSTEMD_EXEC_PID\u003d2137","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPOWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","optionName":"client_env","optionValue":"POWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ENVIRONMENT\u003dgithub-hosted","optionName":"client_env","optionValue":"RUNNER_ENVIRONMENT\u003dgithub-hosted","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_MULTILEVEL_LOOKUP\u003d0","optionName":"client_env","optionValue":"DOTNET_MULTILEVEL_LOOKUP\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF\u003drefs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_REF\u003drefs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_OS\u003dLinux","optionName":"client_env","optionValue":"RUNNER_OS\u003dLinux","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_PROTECTED\u003dfalse","optionName":"client_env","optionValue":"GITHUB_REF_PROTECTED\u003dfalse","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOME\u003d/home/runner","optionName":"client_env","optionValue":"HOME\u003d/home/runner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_API_URL\u003dhttps://api.github.com","optionName":"client_env","optionValue":"GITHUB_API_URL\u003dhttps://api.github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLANG\u003dC.UTF-8","optionName":"client_env","optionValue":"LANG\u003dC.UTF-8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","optionName":"client_env","optionValue":"GOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ARCH\u003dX64","optionName":"client_env","optionValue":"RUNNER_ARCH\u003dX64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dMEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","optionName":"client_env","optionValue":"MEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TEMP\u003d/home/runner/work/_temp","optionName":"client_env","optionValue":"RUNNER_TEMP\u003d/home/runner/work/_temp","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dEDGEWEBDRIVER\u003d/usr/local/share/edge_driver","optionName":"client_env","optionValue":"EDGEWEBDRIVER\u003d/usr/local/share/edge_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","optionName":"client_env","optionValue":"GITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_NAME\u003dpush","optionName":"client_env","optionValue":"GITHUB_EVENT_NAME\u003dpush","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ID\u003d22613512849","optionName":"client_env","optionValue":"GITHUB_RUN_ID\u003d22613512849","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_NO_AUTO_UPDATE\u003d1","optionName":"client_env","optionValue":"HOMEBREW_NO_AUTO_UPDATE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dNVM_DIR\u003d/home/runner/.nvm","optionName":"client_env","optionValue":"NVM_DIR\u003d/home/runner/.nvm","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSGX_AESM_ADDR\u003d1","optionName":"client_env","optionValue":"SGX_AESM_ADDR\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ATTEMPT\u003d1","optionName":"client_env","optionValue":"GITHUB_RUN_ATTEMPT\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_HOME\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_HOME\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","optionName":"client_env","optionValue":"GITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACCEPT_EULA\u003dY","optionName":"client_env","optionValue":"ACCEPT_EULA\u003dY","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSER\u003drunner","optionName":"client_env","optionValue":"USER\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","optionName":"client_env","optionValue":"PSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SERVER_URL\u003dhttps://github.com","optionName":"client_env","optionValue":"GITHUB_SERVER_URL\u003dhttps://github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_HOME\u003d/opt/pipx","optionName":"client_env","optionValue":"PIPX_HOME\u003d/opt/pipx","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","optionName":"client_env","optionValue":"GECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","optionName":"client_env","optionValue":"CHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSHLVL\u003d1","optionName":"client_env","optionValue":"SHLVL\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dVCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","optionName":"client_env","optionValue":"VCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"RUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageVersion\u003d20260224.36.1","optionName":"client_env","optionValue":"ImageVersion\u003d20260224.36.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_NOLOGO\u003d1","optionName":"client_env","optionValue":"DOTNET_NOLOGO\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","optionName":"client_env","optionValue":"GOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","optionName":"client_env","optionValue":"GOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_NAME\u003dtest-branch","optionName":"client_env","optionValue":"GITHUB_REF_NAME\u003dtest-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_JOB\u003dbuild_and_test","optionName":"client_env","optionValue":"GITHUB_JOB\u003dbuild_and_test","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_RUNTIME_DIR\u003d/run/user/1001","optionName":"client_env","optionValue":"XDG_RUNTIME_DIR\u003d/run/user/1001","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","optionName":"client_env","optionValue":"AZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY\u003dmeroton/bb-portal","optionName":"client_env","optionValue":"GITHUB_REPOSITORY\u003dmeroton/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROME_BIN\u003d/usr/bin/google-chrome","optionName":"client_env","optionValue":"CHROME_BIN\u003d/usr/bin/google-chrome","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","optionName":"client_env","optionValue":"GOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RETENTION_DAYS\u003d90","optionName":"client_env","optionValue":"GITHUB_RETENTION_DAYS\u003d90","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJOURNAL_STREAM\u003d9:17614","optionName":"client_env","optionValue":"JOURNAL_STREAM\u003d9:17614","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","optionName":"client_env","optionValue":"RUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REPOSITORY\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REPOSITORY\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","optionName":"client_env","optionValue":"PATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_BASE_REF\u003d","optionName":"client_env","optionValue":"GITHUB_BASE_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","optionName":"client_env","optionValue":"GHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCI\u003dtrue","optionName":"client_env","optionValue":"CI\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSWIFT_PATH\u003d/usr/share/swift/usr/bin","optionName":"client_env","optionValue":"SWIFT_PATH\u003d/usr/share/swift/usr/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageOS\u003dubuntu24","optionName":"client_env","optionValue":"ImageOS\u003dubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER\u003dmeroton","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER\u003dmeroton","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_HEAD_REF\u003d","optionName":"client_env","optionValue":"GITHUB_HEAD_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REF\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dENABLE_RUNNER_TRACING\u003dtrue","optionName":"client_env","optionValue":"ENABLE_RUNNER_TRACING\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW\u003dBuild and test backend","optionName":"client_env","optionValue":"GITHUB_WORKFLOW\u003dBuild and test backend","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDEBIAN_FRONTEND\u003dnoninteractive","optionName":"client_env","optionValue":"DEBIAN_FRONTEND\u003dnoninteractive","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"AGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003d_\u003d/home/runner/bin/bazel","optionName":"client_env","optionValue":"_\u003d/home/runner/bin/bazel","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_cwd\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_cwd","optionValue":"/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--build_event_json_file\u003dgithub-actions.bep.ndjson","optionName":"build_event_json_file","optionValue":"github-actions.bep.ndjson","effectTags":["AFFECTS_OUTPUTS"],"source":"command line options"}]}},{"sectionLabel":"residual","chunkList":{"chunk":["//..."]}}]}} +{"id":{"progress":{"opaqueCount":35}},"children":[{"progress":{"opaqueCount":36}},{"configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}],"progress":{}} +{"id":{"configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}},"configuration":{"mnemonic":"k8-fastbuild","platformName":"k8","cpu":"k8","makeVariable":{"TARGET_CPU":"x86_64","COMPILATION_MODE":"fastbuild","BINDIR":"bazel-out/k8-fastbuild/bin","GENDIR":"bazel-out/k8-fastbuild/bin"}}} +{"id":{"workspaceStatus":{}},"workspaceStatus":{"item":[{"key":"BUILD_EMBED_LABEL"},{"key":"BUILD_HOST","value":"runnervmnay03"},{"key":"BUILD_TIMESTAMP","value":"1772524364"},{"key":"BUILD_USER","value":"runner"},{"key":"FORMATTED_DATE","value":"2026 Mar 03 07 52 44 Tue"}]}} +{"id":{"progress":{"opaqueCount":36}},"children":[{"progress":{"opaqueCount":37}},{"fetch":{"url":"https://github.com/bazelbuild/rules_license/releases/download/1.0.0/rules_license-1.0.0.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (83 packages loaded, 6 targets configured)\nAnalyzing: 215 targets (83 packages loaded, 6 targets configured)\n\n"}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_license/releases/download/1.0.0/rules_license-1.0.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"targetConfigured":{"label":"//tools:sqlc_macos"}},"children":[{"targetCompleted":{"label":"//tools:sqlc_macos","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"alias rule"}} +{"id":{"progress":{"opaqueCount":37}},"children":[{"progress":{"opaqueCount":38}},{"fetch":{"url":"https://github.com/bazel-contrib/rules_python/releases/download/1.7.0/rules_python-1.7.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/rules_python/releases/download/1.7.0/rules_python-1.7.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":38}},"children":[{"progress":{"opaqueCount":39}},{"fetch":{"url":"https://github.com/bazelbuild/rules_java/releases/download/9.0.3/rules_java-9.0.3.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_java/releases/download/9.0.3/rules_java-9.0.3.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":39}},"children":[{"progress":{"opaqueCount":40}},{"fetch":{"url":"https://github.com/sqlc-dev/sqlc/releases/download/v1.30.0/sqlc_1.30.0_linux_amd64.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/sqlc-dev/sqlc/releases/download/v1.30.0/sqlc_1.30.0_linux_amd64.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":40}},"children":[{"progress":{"opaqueCount":41}},{"configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}],"progress":{}} +{"id":{"configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}},"configuration":{"mnemonic":"k8-fastbuild","platformName":"k8","cpu":"k8","makeVariable":{"TARGET_CPU":"x86_64","COMPILATION_MODE":"fastbuild","BINDIR":"bazel-out/k8-fastbuild/bin","GENDIR":"bazel-out/k8-fastbuild/bin"}}} +{"id":{"targetConfigured":{"label":"//frontend/src/graphql:__generated__"}},"children":[{"targetCompleted":{"label":"//frontend/src/graphql:__generated__","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"filegroup rule"}} +{"id":{"progress":{"opaqueCount":41}},"children":[{"progress":{"opaqueCount":42}},{"fetch":{"url":"https://github.com/googleapis/googleapis/archive/6145b5ffe99d290c3d840136f310490d732acb04.zip","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/googleapis/googleapis/archive/6145b5ffe99d290c3d840136f310490d732acb04.zip","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":42}},"children":[{"progress":{"opaqueCount":43}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_python/1.7.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_python/1.7.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":43}},"children":[{"progress":{"opaqueCount":44}},{"fetch":{"url":"https://github.com/grpc/grpc/archive/refs/tags/v1.76.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/grpc/grpc/archive/refs/tags/v1.76.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"targetConfigured":{"label":"//tools:sqlc_linux"}},"children":[{"targetCompleted":{"label":"//tools:sqlc_linux","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"alias rule"}} +{"id":{"targetConfigured":{"label":"//tools:sqlc"}},"children":[{"targetCompleted":{"label":"//tools:sqlc","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"alias rule"}} +{"id":{"progress":{"opaqueCount":44}},"children":[{"progress":{"opaqueCount":45}},{"namedSet":{"id":"0"}}],"progress":{"stderr":"Analyzing: 215 targets (98 packages loaded, 26 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"namedSet":{"id":"0"}},"namedSetOfFiles":{"files":[{"name":"sqlc","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/+http_archive+sqlc_linux_amd64/sqlc","digest":"e47db21025595d7e77b1260b2f97b6793401a4cba047d42e635c347e8443b5f4","length":"56004792"}]}} +{"id":{"targetCompleted":{"label":"//tools:sqlc_linux","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"0"}]}]}} +{"id":{"targetCompleted":{"label":"//tools:sqlc","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"0"}]}]}} +{"id":{"progress":{"opaqueCount":45}},"children":[{"progress":{"opaqueCount":46}},{"fetch":{"url":"https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v1.8.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v1.8.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":46}},"children":[{"progress":{"opaqueCount":47}},{"fetch":{"url":"https://github.com/bazel-contrib/rules_perl/archive/refs/tags/0.2.4.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/rules_perl/archive/refs/tags/0.2.4.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":47}},"children":[{"progress":{"opaqueCount":48}},{"fetch":{"url":"https://bcr.bazel.build/modules/opentelemetry-proto/1.8.0/overlay/BUILD.bazel","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/opentelemetry-proto/1.8.0/overlay/BUILD.bazel","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":48}},"children":[{"progress":{"opaqueCount":49}},{"namedSet":{"id":"1"}}],"progress":{}} +{"id":{"namedSet":{"id":"1"}},"namedSetOfFiles":{"files":[{"name":"frontend/src/graphql/__generated__/fragment-masking.ts","uri":"file:///home/runner/work/bb-portal/bb-portal/frontend/src/graphql/__generated__/fragment-masking.ts","digest":"75b202732d6c3dcd7e22b5e18f809044264d5b173ad49ff1c942becd206b1115","length":"2834"},{"name":"frontend/src/graphql/__generated__/gql.ts","uri":"file:///home/runner/work/bb-portal/bb-portal/frontend/src/graphql/__generated__/gql.ts","digest":"ed9c2facc4f9256f2d268da9d98b9c28a56a376e522dd8106362c4b0931a5594","length":"43646"},{"name":"frontend/src/graphql/__generated__/graphql.ts","uri":"file:///home/runner/work/bb-portal/bb-portal/frontend/src/graphql/__generated__/graphql.ts","digest":"9a6439020f1a257431062b8c78588b39e4a6f00edd0e7ba1867b2c6113c02fc5","length":"273519"},{"name":"frontend/src/graphql/__generated__/index.ts","uri":"file:///home/runner/work/bb-portal/bb-portal/frontend/src/graphql/__generated__/index.ts","digest":"1e0b9c32a4262c7ede46814abbfebdaf2bd3ac47059f37abfd4bb7022d8b12aa","length":"58"},{"name":"frontend/src/graphql/__generated__/persisted-documents.json","uri":"file:///home/runner/work/bb-portal/bb-portal/frontend/src/graphql/__generated__/persisted-documents.json","digest":"9e2e8d83a22c1bab91c4a765166a8337093f1e8595b6fd891c5f72321279ff46","length":"8972"}]}} +{"id":{"targetCompleted":{"label":"//frontend/src/graphql:__generated__","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"1"}]}]}} +{"id":{"progress":{"opaqueCount":49}},"children":[{"progress":{"opaqueCount":50}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_perl/0.2.4/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_perl/0.2.4/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":50}},"children":[{"progress":{"opaqueCount":51}},{"fetch":{"url":"https://github.com/bazelbuild/rules_swift/releases/download/3.1.2/rules_swift.3.1.2.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_swift/releases/download/3.1.2/rules_swift.3.1.2.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":51}},"children":[{"progress":{"opaqueCount":52}},{"fetch":{"url":"https://github.com/bazel-contrib/toolchains_llvm/releases/download/v1.6.0/toolchains_llvm-v1.6.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/toolchains_llvm/releases/download/v1.6.0/toolchains_llvm-v1.6.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":52}},"children":[{"progress":{"opaqueCount":53}},{"fetch":{"url":"https://bcr.bazel.build/modules/toolchains_llvm/1.6.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/toolchains_llvm/1.6.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":53}},"children":[{"progress":{"opaqueCount":54}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_swift/3.1.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_swift/3.1.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":54}},"children":[{"progress":{"opaqueCount":55}},{"fetch":{"url":"https://github.com/helly25/bzl/releases/download/0.3.1/bzl-0.3.1.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/helly25/bzl/releases/download/0.3.1/bzl-0.3.1.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":55}},"children":[{"progress":{"opaqueCount":56}},{"fetch":{"url":"https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":56}},"children":[{"progress":{"opaqueCount":57}},{"fetch":{"url":"https://github.com/bazelbuild/rules_rust/releases/download/0.62.0/rules_rust-0.62.0.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (116 packages loaded, 29 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_rust/releases/download/0.62.0/rules_rust-0.62.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":57}},"children":[{"progress":{"opaqueCount":58}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/extensions.bzl","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (118 packages loaded, 29 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/extensions.bzl","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":58}},"children":[{"progress":{"opaqueCount":59}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/BUILD.bazel","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/BUILD.bazel","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":59}},"children":[{"progress":{"opaqueCount":60}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/.bazelrc","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/.bazelrc","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":60}},"children":[{"progress":{"opaqueCount":61}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/MODULE.bazel","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/MODULE.bazel","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":61}},"children":[{"progress":{"opaqueCount":62}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/failure_test.bzl","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/overlay/tests/bcr/failure_test.bzl","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":62}},"children":[{"progress":{"opaqueCount":63}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/patches/module_dot_bazel.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/patches/module_dot_bazel.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":63}},"children":[{"progress":{"opaqueCount":64}},{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/patches/remove_upb_c_rules.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/googleapis/0.0.0-20260109-6145b5ff/patches/remove_upb_c_rules.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":64}},"children":[{"progress":{"opaqueCount":65}},{"fetch":{"url":"https://github.com/fmeum/googleapis-rules-registry/releases/download/v1.0.0/googleapis-rules-registry-v1.0.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/fmeum/googleapis-rules-registry/releases/download/v1.0.0/googleapis-rules-registry-v1.0.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":65}},"children":[{"progress":{"opaqueCount":66}},{"fetch":{"url":"https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/patches/adopt_bzlmod.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/patches/adopt_bzlmod.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":66}},"children":[{"progress":{"opaqueCount":67}},{"fetch":{"url":"https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/patches/bazel_9_fixes.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/patches/bazel_9_fixes.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":67}},"children":[{"progress":{"opaqueCount":68}},{"fetch":{"url":"https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/patches/add_repo_bazel.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/grpc/1.76.0.bcr.1/patches/add_repo_bazel.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":68}},"children":[{"progress":{"opaqueCount":69}},{"fetch":{"url":"https://github.com/bazelbuild/rules_pkg/releases/download/1.1.0/rules_pkg-1.1.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_pkg/releases/download/1.1.0/rules_pkg-1.1.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":69}},"children":[{"progress":{"opaqueCount":70}},{"fetch":{"url":"https://github.com/bazel-contrib/yq.bzl/releases/download/v0.3.2/yq.bzl-v0.3.2.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/yq.bzl/releases/download/v0.3.2/yq.bzl-v0.3.2.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":70}},"children":[{"progress":{"opaqueCount":71}},{"fetch":{"url":"https://github.com/bazel-contrib/tar.bzl/releases/download/v0.6.0/tar.bzl-v0.6.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/tar.bzl/releases/download/v0.6.0/tar.bzl-v0.6.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":71}},"children":[{"progress":{"opaqueCount":72}},{"fetch":{"url":"https://bcr.bazel.build/modules/yq.bzl/0.3.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/yq.bzl/0.3.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":72}},"children":[{"progress":{"opaqueCount":73}},{"fetch":{"url":"https://bcr.bazel.build/modules/tar.bzl/0.6.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/tar.bzl/0.6.0/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":73}},"children":[{"progress":{"opaqueCount":74}},{"fetch":{"url":"https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.7.3/rules_nodejs-v6.7.3.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"progress":{"opaqueCount":74}},"children":[{"progress":{"opaqueCount":75}},{"fetch":{"url":"https://github.com/bazel-contrib/rules_foreign_cc/releases/download/0.15.1/rules_foreign_cc-0.15.1.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/rules_nodejs/releases/download/v6.7.3/rules_nodejs-v6.7.3.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/rules_foreign_cc/releases/download/0.15.1/rules_foreign_cc-0.15.1.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":75}},"children":[{"progress":{"opaqueCount":76}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_nodejs/6.7.3/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_nodejs/6.7.3/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":76}},"children":[{"progress":{"opaqueCount":77}},{"fetch":{"url":"https://github.com/bazelbuild/apple_support/releases/download/1.24.2/apple_support.1.24.2.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/apple_support/releases/download/1.24.2/apple_support.1.24.2.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":77}},"children":[{"progress":{"opaqueCount":78}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_foreign_cc/0.15.1/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_foreign_cc/0.15.1/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":78}},"children":[{"progress":{"opaqueCount":79}},{"fetch":{"url":"https://bcr.bazel.build/modules/apple_support/1.24.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (182 packages loaded, 29 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/apple_support/1.24.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":79}},"children":[{"progress":{"opaqueCount":80}},{"fetch":{"url":"https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.6/rules_kotlin-v1.9.6.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.6/rules_kotlin-v1.9.6.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":80}},"children":[{"progress":{"opaqueCount":81}},{"fetch":{"url":"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":81}},"children":[{"progress":{"opaqueCount":82}},{"fetch":{"url":"https://github.com/bazel-contrib/supply-chain/releases/download/v0.0.5/supply-chain-v0.0.5.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (189 packages loaded, 29 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (189 packages loaded, 29 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/supply-chain/releases/download/v0.0.5/supply-chain-v0.0.5.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":82}},"children":[{"progress":{"opaqueCount":83}},{"fetch":{"url":"https://github.com/uutils/coreutils/releases/download/0.1.0/coreutils-0.1.0-x86_64-unknown-linux-musl.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (218 packages loaded, 1951 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/uutils/coreutils/releases/download/0.1.0/coreutils-0.1.0-x86_64-unknown-linux-musl.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":83}},"children":[{"progress":{"opaqueCount":84}},{"fetch":{"url":"https://github.com/aspect-build/rules_js/releases/download/v2.9.2/rules_js-v2.9.2.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (244 packages loaded, 5077 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (256 packages loaded, 5141 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (265 packages loaded, 5192 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (289 packages loaded, 6528 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (397 packages loaded, 10100 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (456 packages loaded, 16079 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (463 packages loaded, 16395 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (472 packages loaded, 16465 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/aspect-build/rules_js/releases/download/v2.9.2/rules_js-v2.9.2.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":84}},"children":[{"progress":{"opaqueCount":85}},{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_rules_js/2.9.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (495 packages loaded, 16618 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_rules_js/2.9.2/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":85}},"children":[{"progress":{"opaqueCount":86}},{"fetch":{"url":"https://github.com/aspect-build/tools_telemetry/releases/download/v0.3.3/tools_telemetry-v0.3.3.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/aspect-build/tools_telemetry/releases/download/v0.3.3/tools_telemetry-v0.3.3.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":86}},"children":[{"progress":{"opaqueCount":87}},{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/patches/module_dot_bazel_version.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/patches/module_dot_bazel_version.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":87}},"children":[{"progress":{"opaqueCount":88}},{"fetch":{"url":"https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (525 packages loaded, 16719 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":88}},"children":[{"progress":{"opaqueCount":89}},{"fetch":{"url":"https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":89}},"children":[{"progress":{"opaqueCount":90}},{"fetch":{"url":"https://registry.npmjs.org/purgecss/-/purgecss-6.0.0.tgz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (563 packages loaded, 16878 targets configured)\n[1 / 1] no actions running\n"}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/purgecss/-/purgecss-6.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":90}},"children":[{"progress":{"opaqueCount":91}},{"fetch":{"url":"https://github.com/aspect-build/bsdtar-prebuilt/releases/download/v3.8.1/tar_linux_amd64","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/aspect-build/bsdtar-prebuilt/releases/download/v3.8.1/tar_linux_amd64","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:strategy_policy_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:strategy_policy_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto_file"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_copy_file rule"}} +{"id":{"progress":{"opaqueCount":91}},"children":[{"progress":{"opaqueCount":92}},{"namedSet":{"id":"2"}}],"progress":{"stderr":"Analyzing: 215 targets (574 packages loaded, 17025 targets configured)\n[1 / 1] no actions running\nAnalyzing: 215 targets (630 packages loaded, 17348 targets configured)\n[1 / 9] checking cached actions\nAnalyzing: 215 targets (653 packages loaded, 17562 targets configured)\n[1 / 9] checking cached actions\nAnalyzing: 215 targets (666 packages loaded, 17630 targets configured)\n[1 / 9] Copying file protobuf/build_event_stream.proto; 0s local ... (4 actions running)\n"}} +{"id":{"namedSet":{"id":"2"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f15a652c9804e09fabf3a77919ecaf314750e547daabc7572fd0fad058174316","length":"55593"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"2"}]}]}} +{"id":{"progress":{"opaqueCount":92}},"children":[{"progress":{"opaqueCount":93}},{"namedSet":{"id":"3"}}],"progress":{}} +{"id":{"namedSet":{"id":"3"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/option_filters.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/option_filters.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c8e92a8a5be45484f705e4abe4f2a3d4b5c77c99477b5ce2286add87ed64f2cc","length":"1849"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"3"}]}]}} +{"id":{"progress":{"opaqueCount":93}},"children":[{"progress":{"opaqueCount":94}},{"namedSet":{"id":"4"}}],"progress":{}} +{"id":{"namedSet":{"id":"4"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/strategy_policy.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/strategy_policy.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0068e23223be68f55ddc36d63916efae9b8f64f1cbae5b02bac6059b5b032d4d","length":"2534"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:strategy_policy_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"4"}]}]}} +{"id":{"progress":{"opaqueCount":94}},"children":[{"progress":{"opaqueCount":95}},{"namedSet":{"id":"5"}}],"progress":{}} +{"id":{"namedSet":{"id":"5"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/invocation_policy.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/invocation_policy.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bed0008e69fbc537bc912753bbf23895d9cffd4a1c97adbf41f29082274f523b","length":"9519"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"5"}]}]}} +{"id":{"progress":{"opaqueCount":95}},"children":[{"progress":{"opaqueCount":96}},{"namedSet":{"id":"6"}}],"progress":{}} +{"id":{"namedSet":{"id":"6"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"679135cd318b1e13b920ded15094dc80a3483bb0c34514daeaa098b5fe334375","length":"1920"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"6"}]}]}} +{"id":{"progress":{"opaqueCount":96}},"children":[{"progress":{"opaqueCount":97}},{"namedSet":{"id":"7"}}],"progress":{}} +{"id":{"namedSet":{"id":"7"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/failure_details.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/failure_details.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d73495ab3db9d93b243b883fbc7ef7b4f73c2aacf39767ece193172df7fba02e","length":"58374"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"7"}]}]}} +{"id":{"progress":{"opaqueCount":97}},"children":[{"progress":{"opaqueCount":98}},{"namedSet":{"id":"8"}}],"progress":{}} +{"id":{"namedSet":{"id":"8"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/command_line.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/command_line.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bad4d1fc43be92cd7a70ff3414d4e4c7c3f1843ed57eca75db84b4ae30c7fa33","length":"4336"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"8"}]}]}} +{"id":{"progress":{"opaqueCount":98}},"children":[{"progress":{"opaqueCount":99}},{"namedSet":{"id":"9"}}],"progress":{}} +{"id":{"namedSet":{"id":"9"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/action_cache.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/action_cache.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9eeff48f357ec2dc07617a0a326fdd89ef6108d6b93bc9eea5592ecb7ff849b3","length":"2638"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_proto_file","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"9"}]}]}} +{"id":{"progress":{"opaqueCount":99}},"children":[{"progress":{"opaqueCount":100}},{"fetch":{"url":"https://github.com/google/jsonnet/releases/download/v0.21.0/jsonnet-v0.21.0.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/google/jsonnet/releases/download/v0.21.0/jsonnet-v0.21.0.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":100}},"children":[{"progress":{"opaqueCount":101}},{"fetch":{"url":"https://github.com/astral-sh/python-build-standalone/releases/download/20251014/cpython-3.11.14+20251014-x86_64-unknown-linux-gnu-install_only.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (692 packages loaded, 17826 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (738 packages loaded, 18139 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (776 packages loaded, 18317 targets configured)\n[9 / 9] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/astral-sh/python-build-standalone/releases/download/20251014/cpython-3.11.14+20251014-x86_64-unknown-linux-gnu-install_only.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":101}},"children":[{"progress":{"opaqueCount":102}},{"fetch":{"url":"https://github.com/twbs/bootstrap/releases/download/v5.1.0/bootstrap-5.1.0-dist.zip","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (788 packages loaded, 18402 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (811 packages loaded, 18513 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (823 packages loaded, 20822 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (903 packages loaded, 21166 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (1028 packages loaded, 22807 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (1053 packages loaded, 26286 targets configured)\n[9 / 9] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/twbs/bootstrap/releases/download/v5.1.0/bootstrap-5.1.0-dist.zip","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":102}},"children":[{"progress":{"opaqueCount":103}},{"fetch":{"url":"https://nodejs.org/dist/v22.22.0/node-v22.22.0-linux-x64.tar.xz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (1168 packages loaded, 30526 targets configured)\n[9 / 9] no actions running\n"}} +{"id":{"fetch":{"url":"https://nodejs.org/dist/v22.22.0/node-v22.22.0-linux-x64.tar.xz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":103}},"children":[{"progress":{"opaqueCount":104}},{"fetch":{"url":"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":104}},"children":[{"progress":{"opaqueCount":105}},{"fetch":{"url":"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":105}},"children":[{"progress":{"opaqueCount":106}},{"fetch":{"url":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":106}},"children":[{"progress":{"opaqueCount":107}},{"fetch":{"url":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":107}},"children":[{"progress":{"opaqueCount":108}},{"fetch":{"url":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":108}},"children":[{"progress":{"opaqueCount":109}},{"fetch":{"url":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":109}},"children":[{"progress":{"opaqueCount":110}},{"fetch":{"url":"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":110}},"children":[{"progress":{"opaqueCount":111}},{"fetch":{"url":"https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":111}},"children":[{"progress":{"opaqueCount":112}},{"fetch":{"url":"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":112}},"children":[{"progress":{"opaqueCount":113}},{"fetch":{"url":"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":113}},"children":[{"progress":{"opaqueCount":114}},{"fetch":{"url":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (1248 packages loaded, 38046 targets configured)\n[9 / 9] no actions running\n"}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":114}},"children":[{"progress":{"opaqueCount":115}},{"fetch":{"url":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":115}},"children":[{"progress":{"opaqueCount":116}},{"fetch":{"url":"https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":116}},"children":[{"progress":{"opaqueCount":117}},{"fetch":{"url":"https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":117}},"children":[{"progress":{"opaqueCount":118}},{"fetch":{"url":"https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":118}},"children":[{"progress":{"opaqueCount":119}},{"fetch":{"url":"https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":119}},"children":[{"progress":{"opaqueCount":120}},{"fetch":{"url":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":120}},"children":[{"progress":{"opaqueCount":121}},{"fetch":{"url":"https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":121}},"children":[{"progress":{"opaqueCount":122}},{"fetch":{"url":"https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":122}},"children":[{"progress":{"opaqueCount":123}},{"fetch":{"url":"https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":123}},"children":[{"progress":{"opaqueCount":124}},{"fetch":{"url":"https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":124}},"children":[{"progress":{"opaqueCount":125}},{"fetch":{"url":"https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":125}},"children":[{"progress":{"opaqueCount":126}},{"fetch":{"url":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":126}},"children":[{"progress":{"opaqueCount":127}},{"fetch":{"url":"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":127}},"children":[{"progress":{"opaqueCount":128}},{"fetch":{"url":"https://registry.npmjs.org/glob/-/glob-10.3.12.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/glob/-/glob-10.3.12.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":128}},"children":[{"progress":{"opaqueCount":129}},{"fetch":{"url":"https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":129}},"children":[{"progress":{"opaqueCount":130}},{"fetch":{"url":"https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":130}},"children":[{"progress":{"opaqueCount":131}},{"fetch":{"url":"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":131}},"children":[{"progress":{"opaqueCount":132}},{"fetch":{"url":"https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":132}},"children":[{"progress":{"opaqueCount":133}},{"fetch":{"url":"https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":133}},"children":[{"progress":{"opaqueCount":134}},{"fetch":{"url":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":134}},"children":[{"progress":{"opaqueCount":135}},{"fetch":{"url":"https://registry.npmjs.org/commander/-/commander-12.0.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/commander/-/commander-12.0.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":135}},"children":[{"progress":{"opaqueCount":136}},{"fetch":{"url":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":136}},"children":[{"progress":{"opaqueCount":137}},{"fetch":{"url":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":137}},"children":[{"progress":{"opaqueCount":138}},{"fetch":{"url":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":138}},"children":[{"progress":{"opaqueCount":139}},{"fetch":{"url":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":139}},"children":[{"progress":{"opaqueCount":140}},{"fetch":{"url":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":140}},"children":[{"progress":{"opaqueCount":141}},{"fetch":{"url":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":141}},"children":[{"progress":{"opaqueCount":142}},{"fetch":{"url":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (1277 packages loaded, 40516 targets configured)\n[9 / 9] no actions running\n"}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":142}},"children":[{"progress":{"opaqueCount":143}},{"fetch":{"url":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":143}},"children":[{"progress":{"opaqueCount":144}},{"fetch":{"url":"https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":144}},"children":[{"progress":{"opaqueCount":145}},{"fetch":{"url":"https://github.com/bazel-contrib/bazel-lib/releases/download/v2.22.5/copy_directory-linux_amd64","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/bazel-contrib/bazel-lib/releases/download/v2.22.5/copy_directory-linux_amd64","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":145}},"children":[{"progress":{"opaqueCount":146}},{"fetch":{"url":"https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":146}},"children":[{"progress":{"opaqueCount":147}},{"fetch":{"url":"https://github.com/abseil/abseil-cpp/releases/download/20250814.1/abseil-cpp-20250814.1.tar.gz","downloader":"HTTP"}}],"progress":{"stderr":"Analyzing: 215 targets (1306 packages loaded, 45413 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (1306 packages loaded, 45413 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (1307 packages loaded, 50485 targets configured)\n[9 / 9] no actions running\n"}} +{"id":{"fetch":{"url":"https://github.com/abseil/abseil-cpp/releases/download/20250814.1/abseil-cpp-20250814.1.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":147}},"children":[{"progress":{"opaqueCount":148}},{"fetch":{"url":"https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":148}},"children":[{"progress":{"opaqueCount":149}},{"fetch":{"url":"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/patches/add_build_file.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/patches/add_build_file.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"progress":{"opaqueCount":149}},"children":[{"progress":{"opaqueCount":150}},{"fetch":{"url":"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/patches/module_dot_bazel.patch","downloader":"HTTP"}}],"progress":{}} +{"id":{"fetch":{"url":"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/patches/module_dot_bazel.patch","downloader":"HTTP"}},"fetch":{"success":true}} +{"id":{"targetConfigured":{"label":"//:update_workflows_2"}},"children":[{"targetCompleted":{"label":"//:update_workflows_2","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//:update_workflows_0_test"}},"children":[{"targetCompleted":{"label":"//:update_workflows_0_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//:update_workflows_2_test"}},"children":[{"targetCompleted":{"label":"//:update_workflows_2_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//:update_workflows_0"}},"children":[{"targetCompleted":{"label":"//:update_workflows_0","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//:update_workflows_1_test"}},"children":[{"targetCompleted":{"label":"//:update_workflows_1_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/predicate:predicate"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/predicate:predicate","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//:update_workflows_1"}},"children":[{"targetCompleted":{"label":"//:update_workflows_1","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//:update_workflows"}},"children":[{"targetCompleted":{"label":"//:update_workflows","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//tools/github_workflows:github_workflows"}},"children":[{"targetCompleted":{"label":"//tools/github_workflows:github_workflows","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"jsonnet_to_json rule"}} +{"id":{"targetConfigured":{"label":"//internal/graphql/model:model"}},"children":[{"targetCompleted":{"label":"//internal/graphql/model:model","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/mock:clock"}},"children":[{"targetCompleted":{"label":"//internal/mock:clock","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_gomock_prog_exec rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/timingmetrics:timingmetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/timingmetrics:timingmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/testsummary:testsummary"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/testsummary:testsummary","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/testresult:testresult"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/testresult:testresult","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/targetmetrics:targetmetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/targetmetrics:targetmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/target:target"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/target:target","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/targetkindmapping:targetkindmapping"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/targetkindmapping:targetkindmapping","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/packagemetrics:packagemetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/packagemetrics:packagemetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/sourcecontrol:sourcecontrol"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/sourcecontrol:sourcecontrol","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/runnercount:runnercount"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/runnercount:runnercount","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/networkmetrics:networkmetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/networkmetrics:networkmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/packageloadmetrics:packageloadmetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/packageloadmetrics:packageloadmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/missdetail:missdetail"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/missdetail:missdetail","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/memorymetrics:memorymetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/memorymetrics:memorymetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/metrics:metrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/metrics:metrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/invocationtarget:invocationtarget"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/invocationtarget:invocationtarget","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/bazelinvocation:bazelinvocation"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/bazelinvocation:bazelinvocation","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/instancename:instancename"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/instancename:instancename","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/invocationfiles:invocationfiles"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/invocationfiles:invocationfiles","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/incompletebuildlog:incompletebuildlog"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/incompletebuildlog:incompletebuildlog","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/garbagemetrics:garbagemetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/garbagemetrics:garbagemetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/eventmetadata:eventmetadata"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/eventmetadata:eventmetadata","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/evaluationstat:evaluationstat"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/evaluationstat:evaluationstat","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/cumulativemetrics:cumulativemetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/cumulativemetrics:cumulativemetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/connectionmetadata:connectionmetadata"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/connectionmetadata:connectionmetadata","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/buildgraphmetrics:buildgraphmetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/buildgraphmetrics:buildgraphmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/configuration:configuration"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/configuration:configuration","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/authenticateduser:authenticateduser"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/authenticateduser:authenticateduser","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/buildlogchunk:buildlogchunk"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/buildlogchunk:buildlogchunk","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/build:build"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/build:build","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/artifactmetrics:artifactmetrics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/artifactmetrics:artifactmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/actionsummary:actionsummary"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/actionsummary:actionsummary","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/actiondata:actiondata"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/actiondata:actiondata","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/action:action"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/action:action","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/actioncachestatistics:actioncachestatistics"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/actioncachestatistics:actioncachestatistics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/systemnetworkstats:systemnetworkstats"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/systemnetworkstats:systemnetworkstats","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/testkit:testkit"}},"children":[{"targetCompleted":{"label":"//pkg/testkit:testkit","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/database/sqlc:sqlc"}},"children":[{"targetCompleted":{"label":"//internal/database/sqlc:sqlc","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/migrate:migrate"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/migrate:migrate","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/privacy:privacy"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/privacy:privacy","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/hook:hook"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/hook:hook","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent:ent"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent:ent","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/schema:schema"}},"children":[{"targetCompleted":{"label":"//ent/schema:schema","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/graphql/helpers:helpers"}},"children":[{"targetCompleted":{"label":"//internal/graphql/helpers:helpers","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/uuidgql:uuidgql"}},"children":[{"targetCompleted":{"label":"//pkg/uuidgql:uuidgql","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//:gazelle-runner"}},"children":[{"targetCompleted":{"label":"//:gazelle-runner","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_gazelle_runner rule"}} +{"id":{"targetConfigured":{"label":"//pkg/prometheus_metrics:prometheus_metrics"}},"children":[{"targetCompleted":{"label":"//pkg/prometheus_metrics:prometheus_metrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/graphql:graphql"}},"children":[{"targetCompleted":{"label":"//internal/graphql:graphql","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_field_behavior_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_field_behavior_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_field_behavior_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_field_behavior_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_field_behavior_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_field_behavior_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_proto_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"filegroup rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"genrule rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"genrule rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"genrule rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"genrule rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"genrule rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"proto_library rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_descriptor_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_descriptor_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_descriptor_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_descriptor_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_descriptor_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_descriptor_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_bytestream_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_bytestream_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_bytestream_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_bytestream_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_bytestream_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_bytestream_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_code_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_code_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_code_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_code_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_code_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_code_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_annotations_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_annotations_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_annotations_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_annotations_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_annotations_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_annotations_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_http_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_http_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_http_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_http_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_http_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_http_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_status_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_status_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_launch_stage_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_launch_stage_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_status_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_status_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_launch_stage_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_launch_stage_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_launch_stage_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_launch_stage_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_status_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_status_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_any_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_any_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_any_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_any_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:opentelemetry_common_proto"}},"children":[{"targetCompleted":{"label":"//frontend:opentelemetry_common_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:opentelemetry_common_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:opentelemetry_common_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_any_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_any_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:opentelemetry_common_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:opentelemetry_common_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_wrappers_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_wrappers_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_wrappers_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_wrappers_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_wrappers_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_wrappers_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_duration_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_duration_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_duration_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_duration_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_duration_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_duration_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"filegroup rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_proto_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto_pb_go"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"filegroup rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go_test"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_proto_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"proto_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"proto_library rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_resourceusage_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_resourceusage_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_resourceusage_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_resourceusage_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_resourceusage_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_resourceusage_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_client_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_client_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_client_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_client_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_client_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_client_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//internal/database:database"}},"children":[{"targetCompleted":{"label":"//internal/database:database","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/mock:util"}},"children":[{"targetCompleted":{"label":"//internal/mock:util","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_gomock_prog_exec rule"}} +{"id":{"targetConfigured":{"label":"//test/testutils:testutils"}},"children":[{"targetCompleted":{"label":"//test/testutils:testutils","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//tools:reformat"}},"children":[{"targetCompleted":{"label":"//tools:reformat","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"sh_binary rule"}} +{"id":{"targetConfigured":{"label":"//cmd/bb_export_schema:bb_export_schema"}},"children":[{"targetCompleted":{"label":"//cmd/bb_export_schema:bb_export_schema","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_binary rule"}} +{"id":{"targetConfigured":{"label":"//cmd/bb_export_schema:bb_export_schema_lib"}},"children":[{"targetCompleted":{"label":"//cmd/bb_export_schema:bb_export_schema_lib","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/database/embedded:embedded"}},"children":[{"targetCompleted":{"label":"//internal/database/embedded:embedded","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_timestamp_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_timestamp_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_timestamp_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_timestamp_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_timestamp_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_timestamp_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_cas_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_cas_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_cas_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_cas_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_query_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_query_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_query_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_query_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_cas_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_cas_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_query_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_query_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_iscc_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_iscc_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_iscc_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_iscc_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_iscc_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_iscc_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_fsac_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_fsac_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_fsac_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_fsac_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_fsac_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_fsac_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_buildqueuestate_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_buildqueuestate_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_buildqueuestate_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_buildqueuestate_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_buildqueuestate_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_buildqueuestate_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:bazel_remote_execution_proto"}},"children":[{"targetCompleted":{"label":"//frontend:bazel_remote_execution_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:bazel_remote_execution_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:bazel_remote_execution_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:bazel_remote_execution_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:bazel_remote_execution_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:google_operations_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_operations_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_operations_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_operations_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_operations_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_operations_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:bazel_semver_proto"}},"children":[{"targetCompleted":{"label":"//frontend:bazel_semver_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:bazel_semver_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:bazel_semver_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:bazel_semver_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:bazel_semver_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//internal/mock:mock"}},"children":[{"targetCompleted":{"label":"//internal/mock:mock","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/mock:buildqueuestate"}},"children":[{"targetCompleted":{"label":"//internal/mock:buildqueuestate","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_gomock_prog_exec rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_empty_proto"}},"children":[{"targetCompleted":{"label":"//frontend:google_empty_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_empty_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:google_empty_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:google_empty_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:google_empty_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_auth_proto_src"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_auth_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"get_proto_src rule"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_auth_proto_test"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_auth_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"_diff_test rule","testSize":"SMALL"}} +{"id":{"targetConfigured":{"label":"//frontend:buildbarn_auth_proto"}},"children":[{"targetCompleted":{"label":"//frontend:buildbarn_auth_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//frontend:protobuf"}},"children":[{"targetCompleted":{"label":"//frontend:protobuf","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"_write_source_file rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"proto_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy"}},"children":[{"targetCompleted":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/api/common:common"}},"children":[{"targetCompleted":{"label":"//internal/api/common:common","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/enttest:enttest"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/enttest:enttest","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/gen/ent/runtime:runtime"}},"children":[{"targetCompleted":{"label":"//ent/gen/ent/runtime:runtime","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/api/servefiles:servefiles_lib"}},"children":[{"targetCompleted":{"label":"//internal/api/servefiles:servefiles_lib","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy_test"}},"children":[{"targetCompleted":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//internal/api/common:common_test"}},"children":[{"targetCompleted":{"label":"//internal/api/common:common_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//ent/authschema:authschema"}},"children":[{"targetCompleted":{"label":"//ent/authschema:authschema","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/database/dbauthservice:dbauthservice"}},"children":[{"targetCompleted":{"label":"//internal/database/dbauthservice:dbauthservice","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/authmetadataextraction:authmetadataextraction"}},"children":[{"targetCompleted":{"label":"//pkg/authmetadataextraction:authmetadataextraction","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//ent/authschema:authschema_test"}},"children":[{"targetCompleted":{"label":"//ent/authschema:authschema_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//internal/database/buildeventrecorder:buildeventrecorder"}},"children":[{"targetCompleted":{"label":"//internal/database/buildeventrecorder:buildeventrecorder","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/database/common:common"}},"children":[{"targetCompleted":{"label":"//internal/database/common:common","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/configuration/bb_portal:bb_portal"}},"children":[{"targetCompleted":{"label":"//pkg/proto/configuration/bb_portal:bb_portal","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//pkg/authmetadataextraction:authmetadataextraction_test"}},"children":[{"targetCompleted":{"label":"//pkg/authmetadataextraction:authmetadataextraction_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_go_proto"}},"children":[{"targetCompleted":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_proto_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/database/dbauthservice:dbauthservice_test"}},"children":[{"targetCompleted":{"label":"//internal/database/dbauthservice:dbauthservice_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//internal/api/grpc/bes:bes"}},"children":[{"targetCompleted":{"label":"//internal/api/grpc/bes:bes","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/api/http/loghandler:loghandler"}},"children":[{"targetCompleted":{"label":"//internal/api/http/loghandler:loghandler","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/api/http/bepuploader:bepuploader"}},"children":[{"targetCompleted":{"label":"//internal/api/http/bepuploader:bepuploader","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//internal/database/dbcleanupservice:dbcleanupservice"}},"children":[{"targetCompleted":{"label":"//internal/database/dbcleanupservice:dbcleanupservice","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//test/integrationtest:integrationtest_test"}},"children":[{"targetCompleted":{"label":"//test/integrationtest:integrationtest_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//internal/database/dbcleanupservice:dbcleanupservice_test"}},"children":[{"targetCompleted":{"label":"//internal/database/dbcleanupservice:dbcleanupservice_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}}],"configured":{"targetKind":"go_test rule","testSize":"MEDIUM"}} +{"id":{"targetConfigured":{"label":"//cmd/bb_portal:bb_portal_lib"}},"children":[{"targetCompleted":{"label":"//cmd/bb_portal:bb_portal_lib","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_library rule"}} +{"id":{"targetConfigured":{"label":"//cmd/bb_portal:bb_portal"}},"children":[{"targetCompleted":{"label":"//cmd/bb_portal:bb_portal","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}}],"configured":{"targetKind":"go_binary rule"}} +{"id":{"progress":{"opaqueCount":150}},"children":[{"progress":{"opaqueCount":151}}],"progress":{"stderr":"Analyzing: 215 targets (1341 packages loaded, 51855 targets configured)\n[9 / 9] no actions running\nAnalyzing: 215 targets (1361 packages loaded, 52504 targets configured)\n[41 / 122] checking cached actions\nAnalyzing: 215 targets (1363 packages loaded, 53189 targets configured)\n[42 / 140] [Prepa] Expanding template update_workflows_2_test-test.sh\nAnalyzing: 215 targets (1363 packages loaded, 53465 targets configured, 156 aspect applications)\n[57 / 354] checking cached actions\nINFO: Analyzed 215 targets (1363 packages loaded, 53741 targets configured, 265 aspect applications).\n[57 / 435] checking cached actions\n[67 / 840] [Prepa] Writing script external/protobuf+/upb/port/port.cppmap [for tool] ... (2 actions, 0 running)\n[310 / 1,699] Creating runfiles tree bazel-out/k8-fastbuild/bin/tools/reformat.runfiles; 0s local ... (3 actions, 2 running)\n[824 / 3,084] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 0s processwrapper-sandbox ... (2 actions, 1 running)\n[1,184 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 1s processwrapper-sandbox ... (2 actions, 1 running)\n[1,192 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,202 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,209 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,216 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,221 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,225 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[1,228 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[1,233 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 10s processwrapper-sandbox ... (4 actions running)\n[1,234 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 12s processwrapper-sandbox ... (4 actions, 3 running)\n[1,235 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 14s processwrapper-sandbox ... (4 actions running)\n[1,236 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 16s processwrapper-sandbox ... (4 actions, 3 running)\n[1,237 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 17s processwrapper-sandbox ... (4 actions running)\n[1,238 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 18s processwrapper-sandbox ... (4 actions, 3 running)\n[1,239 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 19s processwrapper-sandbox ... (4 actions, 3 running)\n[1,239 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 21s processwrapper-sandbox ... (4 actions running)\n[1,240 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 23s processwrapper-sandbox ... (4 actions, 3 running)\n[1,241 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 24s processwrapper-sandbox ... (4 actions running)\n[1,242 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 25s processwrapper-sandbox ... (4 actions, 3 running)\n[1,245 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 27s processwrapper-sandbox ... (4 actions, 3 running)\n[1,246 / 3,118] GoToolchainBinaryBuild external/rules_go++go_sdk+main___download_0/builder [for tool]; 28s processwrapper-sandbox ... (4 actions running)\n[1,258 / 3,118] Compiling src/google/protobuf/compiler/importer.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,259 / 3,118] Compiling src/google/protobuf/compiler/importer.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[1,260 / 3,118] Compiling src/google/protobuf/compiler/importer.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[1,261 / 3,118] Compiling src/google/protobuf/compiler/importer.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[1,263 / 3,118] Compiling upb_generator/c/generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[1,264 / 3,118] Compiling upb_generator/c/generator.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,265 / 3,118] Compiling upb_generator/c/generator.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\n[1,266 / 3,118] Compiling upb_generator/c/generator.cc [for tool]; 12s processwrapper-sandbox ... (4 actions, 3 running)\n[1,267 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 12s processwrapper-sandbox ... (4 actions running)\n[1,268 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 15s processwrapper-sandbox ... (4 actions, 3 running)\n[1,269 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 16s processwrapper-sandbox ... (4 actions running)\n[1,270 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 17s processwrapper-sandbox ... (4 actions running)\n[1,271 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 20s processwrapper-sandbox ... (4 actions, 3 running)\n[1,271 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 21s processwrapper-sandbox ... (4 actions running)\n[1,274 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 23s processwrapper-sandbox ... (4 actions, 3 running)\n[1,274 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 24s processwrapper-sandbox ... (4 actions running)\n[1,275 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 25s processwrapper-sandbox ... (4 actions running)\n[1,276 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 27s processwrapper-sandbox ... (4 actions, 3 running)\n[1,277 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 28s processwrapper-sandbox ... (4 actions running)\n[1,278 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 30s processwrapper-sandbox ... (4 actions, 3 running)\n[1,279 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 31s processwrapper-sandbox ... (4 actions running)\n[1,280 / 3,118] GoStdlib external/rules_go+/stdlib_/pkg; 33s processwrapper-sandbox ... (4 actions, 3 running)\n[1,284 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\n[1,292 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[1,303 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 12s processwrapper-sandbox ... (4 actions, 3 running)\n[1,321 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 13s processwrapper-sandbox ... (4 actions, 3 running)\n[1,340 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 14s processwrapper-sandbox ... (4 actions, 3 running)\n[1,347 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 15s processwrapper-sandbox ... (4 actions, 3 running)\n[1,362 / 3,118] Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]; 16s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/enum.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/enum.cc:29:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,379 / 3,118] Compiling absl/strings/charconv.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[1,394 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[1,406 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 2s processwrapper-sandbox ... (4 actions running)\n[1,423 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,442 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,454 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,465 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[1,480 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,489 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[1,499 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[1,502 / 3,118] Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]; 11s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/extension.cc [for tool]:\n"}} +{"id":{"progress":{"opaqueCount":151}},"children":[{"progress":{"opaqueCount":152}}],"progress":{"stderr":"In file included from external/protobuf+/src/google/protobuf/compiler/cpp/extension.cc:12:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/extension.h:19:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,506 / 3,118] Compiling absl/hash/internal/hash.cc [for tool]; 1s processwrapper-sandbox ... (4 actions running)\n[1,507 / 3,118] Compiling absl/hash/internal/hash.cc [for tool]; 2s processwrapper-sandbox ... (4 actions running)\n[1,511 / 3,118] Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]; 2s processwrapper-sandbox ... (4 actions running)\n[1,513 / 3,118] Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[1,514 / 3,118] Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,515 / 3,118] Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[1,516 / 3,118] Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[1,516 / 3,118] Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field.cc:12:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,517 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_aws_aws_sdk_go_v2_service_s3/s3.a; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[1,520 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[1,530 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,550 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,560 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[1,569 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,577 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_chunk.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_chunk.cc:1:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field_chunk.h:10:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,581 / 3,118] Compiling absl/time/civil_time.cc [for tool]; 1s processwrapper-sandbox ... (4 actions running)\n[1,584 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_jackc_pgx_v5/pgtype/pgtype.a; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,586 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_jackc_pgx_v5/pgtype/pgtype.a; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,589 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/cord_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[1,597 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/cord_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[1,606 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/cord_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,624 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/cord_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\n[1,635 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/cord_field.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/cord_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/cord_field.cc:23:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,645 / 3,118] Compiling absl/synchronization/internal/kernel_timeout.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[1,654 / 3,118] Compiling absl/synchronization/internal/graphcycles.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,658 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,671 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,681 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,695 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[1,709 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,717 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/enum_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/enum_field.cc:20:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,723 / 3,118] Compiling absl/synchronization/internal/futex_waiter.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[1,724 / 3,118] Compiling absl/synchronization/internal/create_thread_identity.cc [for tool]; 1s processwrapper-sandbox ... (4 actions running)\n[1,739 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,752 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,756 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,772 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,782 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[1,791 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,797 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"progress":{"opaqueCount":152}},"children":[{"progress":{"opaqueCount":153}},{"namedSet":{"id":"10"}}],"progress":{"stderr":"[1,801 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]; 10s processwrapper-sandbox ... (3 actions, 2 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/map_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/map_field.cc:19:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,813 / 3,118] Compiling absl/crc/internal/crc_memcpy_x86_arm_combined.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[1,834 / 3,118] Compiling absl/crc/internal/crc_memcpy_fallback.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,847 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,864 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,872 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[1,875 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"10"}},"namedSetOfFiles":{"files":[{"name":"pkg/prometheus_metrics/prometheus_metrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/prometheus_metrics/prometheus_metrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0a3ff973c61591ed214edbb0a1cd06c2e8985a14bc8b5c1aa9355cebeec077a0","length":"135894"}]}} +{"id":{"targetCompleted":{"label":"//pkg/prometheus_metrics:prometheus_metrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"10"}]}]}} +{"id":{"progress":{"opaqueCount":153}},"children":[{"progress":{"opaqueCount":154}},{"namedSet":{"id":"11"}}],"progress":{"stderr":"[1,885 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,896 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[1,906 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[1,916 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/message_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/message_field.cc:21:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,924 / 3,118] Compiling absl/strings/internal/cord_rep_btree.cc [for tool]; 0s processwrapper-sandbox ... (4 actions, 3 running)\n[1,928 / 3,118] Compiling absl/strings/internal/cord_rep_btree.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,936 / 3,118] Compiling absl/strings/internal/cord_rep_btree.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[1,942 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,949 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,955 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,962 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[1,971 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[1,974 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc:21:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[1,977 / 3,118] Compiling absl/strings/cord.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[1,980 / 3,118] Compiling absl/strings/cord.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[1,988 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[1,994 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[1,997 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,003 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 6s processwrapper-sandbox ... (3 actions, 2 running)\n[2,011 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,020 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,031 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[2,037 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/string_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/string_field.cc:20:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,044 / 3,118] Compiling absl/base/internal/strerror.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[2,051 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[2,055 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 2s processwrapper-sandbox ... (4 actions running)\n[2,061 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[2,067 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,071 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,072 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,078 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,079 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[2,085 / 3,118] Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc:19:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/field.h:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,090 / 3,118] Compiling absl/status/statusor.cc [for tool]; 1s processwrapper-sandbox ... (4 actions running)\n[2,098 / 3,118] Compiling absl/status/statusor.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[2,104 / 3,118] Compiling src/google/protobuf/stubs/common.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[2,110 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,114 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,123 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,130 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"11"}},"namedSetOfFiles":{"files":[{"name":"pkg/testkit/testkit.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/testkit/testkit.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"da514d382d4173e82a640c22fdb5ff2d0ac077a93429fc432df6a36e8d2713ab","length":"94214"}]}} +{"id":{"targetCompleted":{"label":"//pkg/testkit:testkit","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"11"}]}]}} +{"id":{"progress":{"opaqueCount":154}},"children":[{"progress":{"opaqueCount":155}},{"namedSet":{"id":"12"}}],"progress":{}} +{"id":{"namedSet":{"id":"12"}},"namedSetOfFiles":{"files":[{"name":"internal/graphql/model/model.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/graphql/model/model.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"147de43fc22f8c1b25e11aa97cb1676d448d6f39e7261b5fa17be42ffd5e9600","length":"1436"}]}} +{"id":{"targetCompleted":{"label":"//internal/graphql/model:model","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"12"}]}]}} +{"id":{"progress":{"opaqueCount":155}},"children":[{"progress":{"opaqueCount":156}},{"namedSet":{"id":"13"}}],"progress":{"stderr":"[2,136 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,146 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[2,149 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 10s processwrapper-sandbox ... (4 actions running)\n[2,153 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 11s processwrapper-sandbox ... (4 actions, 3 running)\n[2,157 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 13s processwrapper-sandbox ... (4 actions, 3 running)\n[2,159 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 14s processwrapper-sandbox ... (4 actions, 3 running)\n[2,165 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 15s processwrapper-sandbox ... (4 actions, 3 running)\n[2,174 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 16s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"13"}},"namedSetOfFiles":{"files":[{"name":"pkg/uuidgql/uuidgql.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/uuidgql/uuidgql.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"2853a64ebdc38f88eb5ba618752ae1306ce92ba38fc9d04d8e700a46c9d3c418","length":"18082"}]}} +{"id":{"targetCompleted":{"label":"//pkg/uuidgql:uuidgql","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"13"}]}]}} +{"id":{"progress":{"opaqueCount":156}},"children":[{"progress":{"opaqueCount":157}},{"namedSet":{"id":"14"}}],"progress":{}} +{"id":{"namedSet":{"id":"14"}},"namedSetOfFiles":{"files":[{"name":"internal/database/sqlc/sqlc.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/sqlc/sqlc.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a4d1c6ccc68226596b443ca81ad6761f27c3dc611f21ecb3736fc6559ab35713","length":"101128"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/sqlc:sqlc","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"14"}]}]}} +{"id":{"progress":{"opaqueCount":157}},"children":[{"progress":{"opaqueCount":158}},{"namedSet":{"id":"15"}}],"progress":{"stderr":"[2,180 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 17s processwrapper-sandbox ... (4 actions running)\n[2,181 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 18s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"15"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/migrate/migrate.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/migrate/migrate.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"b3f6e9521f3df17a17ac695a9e8410e6952cdf393ff0a08ee07f47664532e958","length":"137668"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/migrate:migrate","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"15"}]}]}} +{"id":{"progress":{"opaqueCount":158}},"children":[{"progress":{"opaqueCount":159}},{"namedSet":{"id":"16"}}],"progress":{"stderr":"[2,188 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 19s processwrapper-sandbox ... (4 actions, 3 running)\n[2,192 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 20s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"16"}},"namedSetOfFiles":{"files":[{"name":"internal/graphql/helpers/helpers.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/graphql/helpers/helpers.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"298d58a84fd479bfa0c31726b2191f07793d3179e70c0f5f77ed07553692e500","length":"92196"}]}} +{"id":{"targetCompleted":{"label":"//internal/graphql/helpers:helpers","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"16"}]}]}} +{"id":{"progress":{"opaqueCount":159}},"children":[{"progress":{"opaqueCount":160}},{"namedSet":{"id":"17"}}],"progress":{"stderr":"[2,199 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 21s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"17"}},"namedSetOfFiles":{"files":[{"name":"ent/schema/schema.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/schema/schema.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9131807d6353c23ad27f0d0d43e40f789e406dde7d277c18f9f1d8ef30b13d5d","length":"148532"}]}} +{"id":{"targetCompleted":{"label":"//ent/schema:schema","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"17"}]}]}} +{"id":{"progress":{"opaqueCount":160}},"children":[{"progress":{"opaqueCount":161}},{"namedSet":{"id":"18"}}],"progress":{"stderr":"[2,204 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 22s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"18"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/actioncachestatistics/actioncachestatistics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/actioncachestatistics/actioncachestatistics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a474eb4901eede3c38e05d63e8b17c3b40cceb1852bf3d60fad624e28f91c6e9","length":"82068"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/actioncachestatistics:actioncachestatistics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"18"}]}]}} +{"id":{"progress":{"opaqueCount":161}},"children":[{"progress":{"opaqueCount":162}},{"namedSet":{"id":"19"}}],"progress":{}} +{"id":{"namedSet":{"id":"19"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/missdetail/missdetail.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/missdetail/missdetail.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"1b1227b7f8ae52f9762addccf20a209b40802146650e8928a25707d743dabe30","length":"74712"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/missdetail:missdetail","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"19"}]}]}} +{"id":{"progress":{"opaqueCount":162}},"children":[{"progress":{"opaqueCount":163}},{"namedSet":{"id":"20"}}],"progress":{}} +{"id":{"namedSet":{"id":"20"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/buildlogchunk/buildlogchunk.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/buildlogchunk/buildlogchunk.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"062cb9c07560de8bfc7627c69b7614371b8e407dbf4033179ef3d7382c2888cf","length":"73408"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/buildlogchunk:buildlogchunk","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"20"}]}]}} +{"id":{"progress":{"opaqueCount":163}},"children":[{"progress":{"opaqueCount":164}},{"namedSet":{"id":"21"}}],"progress":{}} +{"id":{"namedSet":{"id":"21"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/authenticateduser/authenticateduser.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/authenticateduser/authenticateduser.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"e0836b40378c58c29725c78cd7ab419037375bbb7c33a8f24675e79fdae50548","length":"83956"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/authenticateduser:authenticateduser","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"21"}]}]}} +{"id":{"progress":{"opaqueCount":164}},"children":[{"progress":{"opaqueCount":165}},{"namedSet":{"id":"22"}}],"progress":{}} +{"id":{"namedSet":{"id":"22"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/buildgraphmetrics/buildgraphmetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/buildgraphmetrics/buildgraphmetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ae4222b4eacf41830e40c943b4791ffb3172921ce739489575c9720347657329","length":"103512"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/buildgraphmetrics:buildgraphmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"22"}]}]}} +{"id":{"progress":{"opaqueCount":165}},"children":[{"progress":{"opaqueCount":166}},{"namedSet":{"id":"23"}}],"progress":{}} +{"id":{"namedSet":{"id":"23"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/cumulativemetrics/cumulativemetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/cumulativemetrics/cumulativemetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c87a5c89e66971912154b2dbd66fdb6ab83b04042564bfe4cd75a979955b305f","length":"70412"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/cumulativemetrics:cumulativemetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"23"}]}]}} +{"id":{"progress":{"opaqueCount":166}},"children":[{"progress":{"opaqueCount":167}},{"namedSet":{"id":"24"}}],"progress":{"stderr":"[2,215 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 23s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"24"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/eventmetadata/eventmetadata.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/eventmetadata/eventmetadata.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"2d9ba5e2012e4557633aad7f496b6896a809c02d86641eadbff0023ec15634db","length":"72220"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/eventmetadata:eventmetadata","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"24"}]}]}} +{"id":{"progress":{"opaqueCount":167}},"children":[{"progress":{"opaqueCount":168}},{"namedSet":{"id":"25"}}],"progress":{}} +{"id":{"namedSet":{"id":"25"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/incompletebuildlog/incompletebuildlog.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/incompletebuildlog/incompletebuildlog.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"02747e6f62d1c15b71fe86c029c439fc431f72314b709ffa2ea21ff5c28b0cb6","length":"69706"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/incompletebuildlog:incompletebuildlog","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"25"}]}]}} +{"id":{"progress":{"opaqueCount":168}},"children":[{"progress":{"opaqueCount":169}},{"namedSet":{"id":"26"}}],"progress":{}} +{"id":{"namedSet":{"id":"26"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/actiondata/actiondata.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/actiondata/actiondata.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6c5fdd96ed9cc9a1882d9786349f85ee56c883f1bd8023f7318923caeecea49d","length":"90024"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/actiondata:actiondata","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"26"}]}]}} +{"id":{"progress":{"opaqueCount":169}},"children":[{"progress":{"opaqueCount":170}},{"namedSet":{"id":"27"}}],"progress":{}} +{"id":{"namedSet":{"id":"27"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/invocationfiles/invocationfiles.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/invocationfiles/invocationfiles.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"63a0e7e22bb91f57db102cdbed9778749b873ac1d1ba31c1857892b8a3798da1","length":"86918"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/invocationfiles:invocationfiles","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"27"}]}]}} +{"id":{"progress":{"opaqueCount":170}},"children":[{"progress":{"opaqueCount":171}},{"namedSet":{"id":"28"}}],"progress":{}} +{"id":{"namedSet":{"id":"28"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/instancename/instancename.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/instancename/instancename.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"cf773999fc05386cd56a05e062e7a22c3fb4c7e9d436ac59930765a98dee8ff4","length":"75614"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/instancename:instancename","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"28"}]}]}} +{"id":{"progress":{"opaqueCount":171}},"children":[{"progress":{"opaqueCount":172}},{"namedSet":{"id":"29"}}],"progress":{}} +{"id":{"namedSet":{"id":"29"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/systemnetworkstats/systemnetworkstats.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/systemnetworkstats/systemnetworkstats.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"664c41c8e89dd6c212c635a0da21d0b04bfbf5c58f1928390cfa456676c95a48","length":"88886"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/systemnetworkstats:systemnetworkstats","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"29"}]}]}} +{"id":{"progress":{"opaqueCount":172}},"children":[{"progress":{"opaqueCount":173}},{"namedSet":{"id":"30"}}],"progress":{}} +{"id":{"namedSet":{"id":"30"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/action/action.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/action/action.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d6d0e80414ec52ac3bb44590f647e39dde4c20931eba202f93c678ae8354acb9","length":"122636"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/action:action","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"30"}]}]}} +{"id":{"progress":{"opaqueCount":173}},"children":[{"progress":{"opaqueCount":174}},{"namedSet":{"id":"31"}}],"progress":{"stderr":"[2,223 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 25s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"31"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/actionsummary/actionsummary.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/actionsummary/actionsummary.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"22fa11b9d75a0b84a60f5b598de1e9e2dd550027645c8b1e1cca806b625cca20","length":"84154"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/actionsummary:actionsummary","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"31"}]}]}} +{"id":{"progress":{"opaqueCount":174}},"children":[{"progress":{"opaqueCount":175}},{"namedSet":{"id":"32"}}],"progress":{}} +{"id":{"namedSet":{"id":"32"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/artifactmetrics/artifactmetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/artifactmetrics/artifactmetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6d62ae90f9fda460c3807f534a6f781fcd9cd9792ea09478b9cf791658be117e","length":"90396"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/artifactmetrics:artifactmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"32"}]}]}} +{"id":{"progress":{"opaqueCount":175}},"children":[{"progress":{"opaqueCount":176}},{"namedSet":{"id":"33"}}],"progress":{}} +{"id":{"namedSet":{"id":"33"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/bazelinvocation/bazelinvocation.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/bazelinvocation/bazelinvocation.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c7f6c982f2015c2a4709a1ed71bdbc9cfdcc1e22bb0640a924e6959e7f72f759","length":"178228"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/bazelinvocation:bazelinvocation","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"33"}]}]}} +{"id":{"progress":{"opaqueCount":176}},"children":[{"progress":{"opaqueCount":177}},{"namedSet":{"id":"34"}}],"progress":{}} +{"id":{"namedSet":{"id":"34"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/invocationtarget/invocationtarget.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/invocationtarget/invocationtarget.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d0889dea67b2a5f1a1b2f4ca4b4b70fd067f571d25b4c799d9438eac7ba338f3","length":"93364"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/invocationtarget:invocationtarget","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"34"}]}]}} +{"id":{"progress":{"opaqueCount":177}},"children":[{"progress":{"opaqueCount":178}},{"namedSet":{"id":"35"}}],"progress":{"stderr":"[2,227 / 3,118] Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]; 26s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"35"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/metrics/metrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/metrics/metrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"8c92dbcde539731f9d6cb86b562af553cccdb2907d0228b0a936e376fe9c5a9f","length":"82366"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/metrics:metrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"35"}]}]}} +{"id":{"progress":{"opaqueCount":178}},"children":[{"progress":{"opaqueCount":179}},{"namedSet":{"id":"36"}}],"progress":{}} +{"id":{"namedSet":{"id":"36"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/memorymetrics/memorymetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/memorymetrics/memorymetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bd810c97f575631dc8fe3a4677bc52a0a369e2edb86aab03a41b665902f0bbe3","length":"76620"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/memorymetrics:memorymetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"36"}]}]}} +{"id":{"progress":{"opaqueCount":179}},"children":[{"progress":{"opaqueCount":180}},{"namedSet":{"id":"37"}}],"progress":{"stderr":"INFO: From Compiling src/google/protobuf/compiler/cpp/file.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/file.cc:12:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/file.h:26:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/extension.h:19:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n"}} +{"id":{"namedSet":{"id":"37"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/build/build.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/build/build.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"5e0437139914ab739e8b4a9ab26100458e19b74116edef4dcfbb22436a5dfce8","length":"82774"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/build:build","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"37"}]}]}} +{"id":{"progress":{"opaqueCount":180}},"children":[{"progress":{"opaqueCount":181}},{"namedSet":{"id":"38"}}],"progress":{}} +{"id":{"namedSet":{"id":"38"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/configuration/configuration.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/configuration/configuration.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"2ac68bcc7d8a37b54b87487d4ed86dfddd40ad81024c17979467eee4de6f875e","length":"92578"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/configuration:configuration","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"38"}]}]}} +{"id":{"progress":{"opaqueCount":181}},"children":[{"progress":{"opaqueCount":182}},{"namedSet":{"id":"39"}}],"progress":{}} +{"id":{"namedSet":{"id":"39"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/connectionmetadata/connectionmetadata.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/connectionmetadata/connectionmetadata.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"271249d2207f93ee49fcf3d85ac514ad8eb7c399bcdc7a651b0f61e37cc822fb","length":"66074"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/connectionmetadata:connectionmetadata","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"39"}]}]}} +{"id":{"progress":{"opaqueCount":182}},"children":[{"progress":{"opaqueCount":183}},{"namedSet":{"id":"40"}}],"progress":{}} +{"id":{"namedSet":{"id":"40"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/evaluationstat/evaluationstat.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/evaluationstat/evaluationstat.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"e468897acbacaa722335af858d84bfe9014be8cd7f3d18c41f91e85bad182f9a","length":"75270"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/evaluationstat:evaluationstat","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"40"}]}]}} +{"id":{"progress":{"opaqueCount":183}},"children":[{"progress":{"opaqueCount":184}},{"namedSet":{"id":"41"}}],"progress":{}} +{"id":{"namedSet":{"id":"41"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/garbagemetrics/garbagemetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/garbagemetrics/garbagemetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"e728ee6182f7d0b22f547c124f17a11a88d877446c607fdda8c7fea47486b6f9","length":"75150"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/garbagemetrics:garbagemetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"41"}]}]}} +{"id":{"progress":{"opaqueCount":184}},"children":[{"progress":{"opaqueCount":185}},{"namedSet":{"id":"42"}}],"progress":{"stderr":"[2,236 / 3,118] Compiling src/google/protobuf/micro_string.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"42"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/networkmetrics/networkmetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/networkmetrics/networkmetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"e482ecdaaac564e7bac622e6c96bd8797d41024b8b6eb3912439bf1a6a3a89d0","length":"65424"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/networkmetrics:networkmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"42"}]}]}} +{"id":{"progress":{"opaqueCount":185}},"children":[{"progress":{"opaqueCount":186}},{"namedSet":{"id":"43"}}],"progress":{}} +{"id":{"namedSet":{"id":"43"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/runnercount/runnercount.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/runnercount/runnercount.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ce005f5587859d523b4913276ba693c7e576112443b684498bc6fd4ea4e2ca10","length":"79150"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/runnercount:runnercount","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"43"}]}]}} +{"id":{"progress":{"opaqueCount":186}},"children":[{"progress":{"opaqueCount":187}},{"namedSet":{"id":"44"}}],"progress":{}} +{"id":{"namedSet":{"id":"44"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/sourcecontrol/sourcecontrol.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/sourcecontrol/sourcecontrol.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"83f3578af05a584aeb5d566bc98f3df757f76cdb4a67696ba86a582825340ad7","length":"131660"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/sourcecontrol:sourcecontrol","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"44"}]}]}} +{"id":{"progress":{"opaqueCount":187}},"children":[{"progress":{"opaqueCount":188}},{"namedSet":{"id":"45"}}],"progress":{}} +{"id":{"namedSet":{"id":"45"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/packagemetrics/packagemetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/packagemetrics/packagemetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"fb5de719eeb284976222faea3661d1dea199e3de365d770e92e8e99d3b14bfda","length":"70254"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/packagemetrics:packagemetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"45"}]}]}} +{"id":{"progress":{"opaqueCount":188}},"children":[{"progress":{"opaqueCount":189}},{"namedSet":{"id":"46"}}],"progress":{}} +{"id":{"namedSet":{"id":"46"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/targetkindmapping/targetkindmapping.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/targetkindmapping/targetkindmapping.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"00434402fa0c01ee646f699e48724d9a202d904bb3be76ecb61ecefc3ce23b6d","length":"72578"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/targetkindmapping:targetkindmapping","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"46"}]}]}} +{"id":{"progress":{"opaqueCount":189}},"children":[{"progress":{"opaqueCount":190}},{"namedSet":{"id":"47"}}],"progress":{}} +{"id":{"namedSet":{"id":"47"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/packageloadmetrics/packageloadmetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/packageloadmetrics/packageloadmetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9d19e0cdebac89acb3354897d184e31bfa1d35b2825b980e103bb48a2dd3857a","length":"87284"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/packageloadmetrics:packageloadmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"47"}]}]}} +{"id":{"progress":{"opaqueCount":190}},"children":[{"progress":{"opaqueCount":191}},{"namedSet":{"id":"48"}}],"progress":{}} +{"id":{"namedSet":{"id":"48"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/target/target.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/target/target.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bdb34bdad57f5b61d2401769e318a4cc241b75f22b96d49278c2ce41ec4ac3fa","length":"85172"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/target:target","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"48"}]}]}} +{"id":{"progress":{"opaqueCount":191}},"children":[{"progress":{"opaqueCount":192}},{"namedSet":{"id":"49"}}],"progress":{"stderr":"[2,244 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"49"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/targetmetrics/targetmetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/targetmetrics/targetmetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"b67f2e5f034fa50cb83c572722f3a1e116e2c7136782209225a9c7237f72103f","length":"73842"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/targetmetrics:targetmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"49"}]}]}} +{"id":{"progress":{"opaqueCount":192}},"children":[{"progress":{"opaqueCount":193}},{"namedSet":{"id":"50"}}],"progress":{}} +{"id":{"namedSet":{"id":"50"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/testresult/testresult.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/testresult/testresult.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c3a624be05ceb894cf8a03ae81e544cc1a2129c26079c2d32e1f3107c4edbdbd","length":"105254"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/testresult:testresult","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"50"}]}]}} +{"id":{"progress":{"opaqueCount":193}},"children":[{"progress":{"opaqueCount":194}},{"namedSet":{"id":"51"}}],"progress":{}} +{"id":{"namedSet":{"id":"51"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/testsummary/testsummary.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/testsummary/testsummary.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"4d65b68109219faf554d5430aed4017b0a4fa00791062022264d6867bf6ac376","length":"101678"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/testsummary:testsummary","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"51"}]}]}} +{"id":{"progress":{"opaqueCount":194}},"children":[{"progress":{"opaqueCount":195}},{"namedSet":{"id":"52"}}],"progress":{"stderr":"[2,248 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,249 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,251 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,251 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,252 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\n[2,253 / 3,118] Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/generator.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/generator.cc:31:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/file.h:26:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/extension.h:19:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,254 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 9s processwrapper-sandbox ... (4 actions running)\n[2,255 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 11s processwrapper-sandbox ... (4 actions running)\n[2,256 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 13s processwrapper-sandbox ... (4 actions, 3 running)\n[2,257 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 14s processwrapper-sandbox ... (4 actions running)\n[2,258 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 16s processwrapper-sandbox ... (4 actions running)\n[2,259 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 17s processwrapper-sandbox ... (4 actions, 3 running)\n[2,259 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 19s processwrapper-sandbox ... (4 actions running)\n[2,260 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 20s processwrapper-sandbox ... (4 actions, 3 running)\n[2,260 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 22s processwrapper-sandbox ... (4 actions running)\n[2,261 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 26s processwrapper-sandbox ... (4 actions, 3 running)\n[2,261 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 27s processwrapper-sandbox ... (4 actions running)\n[2,262 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 33s processwrapper-sandbox ... (4 actions, 3 running)\n[2,263 / 3,118] GoCompilePkg ent/gen/ent/ent.a; 34s processwrapper-sandbox ... (4 actions running)\n"}} +{"id":{"namedSet":{"id":"52"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/ent.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/ent.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0ead264290b34f3cc2936d4b7df02538332fdeafe781b880a4629a3d76746a47","length":"4500988"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent:ent","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"52"}]}]}} +{"id":{"progress":{"opaqueCount":195}},"children":[{"progress":{"opaqueCount":196}},{"namedSet":{"id":"53"}}],"progress":{"stderr":"[2,264 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 22s processwrapper-sandbox ... (4 actions running)\n[2,266 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 23s processwrapper-sandbox ... (4 actions, 3 running)\n[2,266 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 25s processwrapper-sandbox ... (4 actions running)\n[2,267 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 26s processwrapper-sandbox ... (4 actions running)\n[2,268 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 33s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/wire_format.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/wire_format.cc:31:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\n1 warning generated.\n[2,269 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 34s processwrapper-sandbox ... (4 actions running)\n"}} +{"id":{"namedSet":{"id":"53"}},"namedSetOfFiles":{"files":[{"name":"internal/graphql/graphql.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/graphql/graphql.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"66441acbe02df9ed0900201c81a5fe4900452801f54cccb7878880260116508f","length":"2081422"}]}} +{"id":{"targetCompleted":{"label":"//internal/graphql:graphql","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"53"}]}]}} +{"id":{"progress":{"opaqueCount":196}},"children":[{"progress":{"opaqueCount":197}},{"namedSet":{"id":"54"}}],"progress":{}} +{"id":{"namedSet":{"id":"54"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/hook/hook.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/hook/hook.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"732aa1c601c0446a7b0fbdb92f454a44cac3eca99c4c7f4c0d8aebacd75efa6b","length":"1879624"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/hook:hook","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"54"}]}]}} +{"id":{"progress":{"opaqueCount":197}},"children":[{"progress":{"opaqueCount":198}},{"namedSet":{"id":"55"}}],"progress":{"stderr":"[2,272 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 35s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"55"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/privacy/privacy.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/privacy/privacy.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"19f4e3d525195b9c7b220826fc31ab67affe53332d5f5116b443a79c86094172","length":"1901248"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/privacy:privacy","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"55"}]}]}} +{"id":{"progress":{"opaqueCount":198}},"children":[{"progress":{"opaqueCount":199}},{"namedSet":{"id":"56"}}],"progress":{}} +{"id":{"namedSet":{"id":"56"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/timingmetrics/timingmetrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/timingmetrics/timingmetrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ae2623485e780a090321bb703a7c68bc9c173730b3c3da417f674d5daba720de","length":"79754"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/timingmetrics:timingmetrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"56"}]}]}} +{"id":{"progress":{"opaqueCount":199}},"children":[{"progress":{"opaqueCount":200}},{"namedSet":{"id":"57"}}],"progress":{}} +{"id":{"namedSet":{"id":"57"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/predicate/predicate.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/predicate/predicate.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"e8a7379ddefac61fdf1a5ef2d8aeb76a00177a003fe9845863c67e9236e75b3c","length":"40114"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/predicate:predicate","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"57"}]}]}} +{"id":{"progress":{"opaqueCount":200}},"children":[{"progress":{"opaqueCount":201}}],"progress":{"stderr":"[2,273 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 37s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/reflection_ops.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/reflection_ops.cc:22:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\n1 warning generated.\n[2,274 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 41s processwrapper-sandbox ... (4 actions, 3 running)\n[2,275 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 43s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/text_format.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/text_format.cc:54:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\nexternal/protobuf+/src/google/protobuf/text_format.cc:663:50: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 663 | if (consumed_semicolon \u0026\u0026 field-\u003eoptions().weak() \u0026\u0026\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n2 warnings generated.\n[2,276 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 49s processwrapper-sandbox ... (4 actions, 3 running)\n[2,276 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 50s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/message.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/message.cc:40:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\nIn file included from external/protobuf+/src/google/protobuf/message.cc:46:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/reflection_visit_fields.h:109:35: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 109 | ABSL_DCHECK(!field-\u003eoptions().weak()) \u003c\u003c \"weak fields are not supported\";\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n2 warnings generated.\n[2,277 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 57s processwrapper-sandbox ... (4 actions, 3 running)\n[2,277 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 59s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/map_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/map_field.cc:8:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\n1 warning generated.\n[2,278 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 61s processwrapper-sandbox ... (4 actions running)\n[2,279 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 67s processwrapper-sandbox ... (4 actions, 3 running)\n[2,280 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 69s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/generated_message_tctable_gen.cc [for tool]:\nexternal/protobuf+/src/google/protobuf/generated_message_tctable_gen.cc:699:41: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 699 | if (descriptor-\u003efield(i)-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_tctable_gen.cc:738:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 738 | field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_tctable_gen.cc:773:50: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 773 | !field-\u003eis_map() \u0026\u0026 !field-\u003eoptions().weak() \u0026\u0026\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_tctable_gen.cc:813:35: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 813 | } else if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n4 warnings generated.\n[2,292 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 70s processwrapper-sandbox ... (4 actions running)\n[2,297 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 72s processwrapper-sandbox ... (4 actions, 3 running)\n[2,313 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 73s processwrapper-sandbox ... (4 actions, 3 running)\n[2,314 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 74s processwrapper-sandbox ... (4 actions running)\n[2,332 / 3,118] Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]; 75s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/message.cc [for tool]:\n"}} +{"id":{"progress":{"opaqueCount":201}},"children":[{"progress":{"opaqueCount":202}}],"progress":{"stderr":"In file included from external/protobuf+/src/google/protobuf/compiler/cpp/message.cc:12:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/message.h:25:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/extension.h:19:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:176:25: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 176 | if (!field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:775:62: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 775 | if (!field-\u003ereal_containing_oneof() \u0026\u0026 !field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:1140:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 1140 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:1363:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 1363 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:1396:55: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 1396 | if (!HasHasbit(field, options_) || field-\u003eoptions().weak()) return;\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:2184:60: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 2184 | if (!field-\u003eis_repeated() \u0026\u0026 !field-\u003eoptions().weak() \u0026\u0026\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:2717:26: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 2717 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:4372:35: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 4372 | } else if (field-\u003eoptions().weak() ||\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:4722:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 4722 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:5029:39: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 5029 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:5572:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 5572 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:1363:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 1363 | if (field-\u003eoptions().weak()) {\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/message.cc:1418:11: note: in instantiation of function template specialization \u0027google::protobuf::compiler::cpp::MessageGenerator::EmitCheckAndUpdateByteSizeForField\u003cfalse\u003e\u0027 requested here\n 1418 | EmitCheckAndUpdateByteSizeForField\u003c/*kIsV2\u003d*/false\u003e(field, p);\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n13 warnings generated.\n[2,345 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,352 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,356 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\n[2,362 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[2,367 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 11s processwrapper-sandbox ... (4 actions, 3 running)\n[2,380 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 12s processwrapper-sandbox ... (4 actions, 3 running)\n[2,393 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 13s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/message_layout_helper.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/message_layout_helper.cc:1:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/message_layout_helper.h:20:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,405 / 3,118] Compiling src/google/protobuf/generated_message_reflection.cc [for tool]; 14s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/generated_message_reflection.cc [for tool]:\n"}} +{"id":{"progress":{"opaqueCount":202}},"children":[{"progress":{"opaqueCount":203}},{"namedSet":{"id":"58"}}],"progress":{"stderr":"In file included from external/protobuf+/src/google/protobuf/generated_message_reflection.cc:51:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\nIn file included from external/protobuf+/src/google/protobuf/generated_message_reflection.cc:57:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/reflection_visit_fields.h:109:35: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 109 | ABSL_DCHECK(!field-\u003eoptions().weak()) \u003c\u003c \"weak fields are not supported\";\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_reflection.cc:2526:51: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 2526 | if (!field-\u003eis_extension() \u0026\u0026 !field-\u003eoptions().weak() \u0026\u0026\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_reflection.cc:3290:33: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 3290 | ABSL_DCHECK(!field-\u003eoptions().weak());\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_reflection.cc:3323:33: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 3323 | ABSL_DCHECK(!field-\u003eoptions().weak());\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_reflection.cc:3332:33: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 3332 | ABSL_DCHECK(!field-\u003eoptions().weak());\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_reflection.cc:3341:33: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 3341 | ABSL_DCHECK(!field-\u003eoptions().weak());\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nIn file included from external/protobuf+/src/google/protobuf/generated_message_reflection.cc:57:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/reflection_visit_fields.h:109:35: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 109 | ABSL_DCHECK(!field-\u003eoptions().weak()) \u003c\u003c \"weak fields are not supported\";\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/reflection_visit_fields.h:447:20: note: in instantiation of function template specialization \u0027google::protobuf::internal::ReflectionVisit::VisitFields\u003cgoogle::protobuf::Message, (lambda at bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/reflection_visit_fields.h:449:7)\u003e\u0027 requested here\n 447 | ReflectionVisit::VisitFields(\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/reflection_visit_fields.h:502:20: note: in instantiation of function template specialization \u0027google::protobuf::internal::ReflectionVisit::VisitMessageFields\u003c(lambda at external/protobuf+/src/google/protobuf/generated_message_reflection.cc:1390:48)\u003e\u0027 requested here\n 502 | ReflectionVisit::VisitMessageFields(message, std::forward\u003cCallbackFn\u003e(func));\n | ^\nexternal/protobuf+/src/google/protobuf/generated_message_reflection.cc:1390:15: note: in instantiation of function template specialization \u0027google::protobuf::internal::VisitMutableMessageFields\u003c(lambda at external/protobuf+/src/google/protobuf/generated_message_reflection.cc:1390:48)\u003e\u0027 requested here\n 1390 | internal::VisitMutableMessageFields(*curr, [\u0026](Message\u0026 msg) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n8 warnings generated.\n[2,414 / 3,118] Compiling src/google/protobuf/compiler/cpp/namespace_printer.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[2,414 / 3,118] Compiling src/google/protobuf/compiler/cpp/namespace_printer.cc [for tool]; 2s processwrapper-sandbox ... (4 actions running)\n[2,420 / 3,118] Compiling src/google/protobuf/compiler/cpp/namespace_printer.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,426 / 3,118] Compiling src/google/protobuf/compiler/cpp/namespace_printer.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,433 / 3,118] Compiling src/google/protobuf/extension_set_heavy.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,447 / 3,118] Compiling src/google/protobuf/dynamic_message.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/dynamic_message.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/dynamic_message.cc:66:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/map_field.h:416:11: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 416 | : repeated_field_(arena), prototype_(prototype) {}\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\nexternal/protobuf+/src/google/protobuf/dynamic_message.cc:574:31: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 574 | new (field_ptr) RepeatedPtrField\u003cstd::string\u003e(arena);\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\nexternal/protobuf+/src/google/protobuf/dynamic_message.cc:602:29: warning: \u0027RepeatedPtrField\u0027 is deprecated: Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead [-Wdeprecated-declarations]\n 602 | new (field_ptr) RepeatedPtrField\u003cMessage\u003e(arena);\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/repeated_ptr_field.h:1035:5: note: \u0027RepeatedPtrField\u0027 has been explicitly marked deprecated here\n 1035 | [[deprecated(\"Use Arena::Create\u003cRepeatedPtrField\u003c...\u003e\u003e(Arena*) instead\")]]\n | ^\nexternal/protobuf+/src/google/protobuf/dynamic_message.cc:774:27: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 774 | !field-\u003eoptions().weak() \u0026\u0026 !InRealOneof(field) \u0026\u0026\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n4 warnings generated.\n[2,457 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,465 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[2,470 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,472 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"58"}},"namedSetOfFiles":{"files":[{"name":"gazelle-runner.bash","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/gazelle-runner.bash","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"afe6869dd63fec85a7af5db1bce2a521a7dd39aa81eed9d856486fb96b1cbcb4","length":"3783"}]}} +{"id":{"targetCompleted":{"label":"//:gazelle-runner","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"58"}]}]}} +{"id":{"progress":{"opaqueCount":203}},"children":[{"progress":{"opaqueCount":204}},{"namedSet":{"id":"59"}}],"progress":{"stderr":"[2,481 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\n[2,489 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[2,493 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"59"}},"namedSetOfFiles":{"files":[{"name":"internal/mock/clock.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/mock/clock.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"82298498237f0e72d51b10a74f9136c3544e44434a8f7104d6719f1e04107d3a","length":"5228"}]}} +{"id":{"targetCompleted":{"label":"//internal/mock:clock","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"59"}]}]}} +{"id":{"progress":{"opaqueCount":204}},"children":[{"progress":{"opaqueCount":205}},{"namedSet":{"id":"60"}}],"progress":{"stderr":"[2,505 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 11s processwrapper-sandbox ... (4 actions, 3 running)\n[2,511 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 13s processwrapper-sandbox ... (4 actions running)\n[2,513 / 3,118] Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]; 14s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/parse_function_generator.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/parse_function_generator.cc:8:\nIn file included from bazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/cpp/google/protobuf/compiler/cpp/parse_function_generator.h:18:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,514 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,516 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,517 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,518 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,519 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,521 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[2,527 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 11s processwrapper-sandbox ... (4 actions running)\n[2,529 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 12s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/service.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/service.cc:17:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,532 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 13s processwrapper-sandbox ... (4 actions, 3 running)\n[2,535 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 14s processwrapper-sandbox ... (4 actions, 3 running)\n[2,550 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 15s processwrapper-sandbox ... (4 actions, 3 running)\n[2,568 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 17s processwrapper-sandbox ... (4 actions running)\n[2,571 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 18s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"60"}},"namedSetOfFiles":{"files":[{"name":"tools/github_workflows/_github_workflows_outs.mf","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/tools/github_workflows/_github_workflows_outs.mf","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"391e641e28ddecea071477262c03b216697313e9bbe2cd82eb781ec1ea27e9c7","length":"197"},{"name":"tools/github_workflows/backend.yaml","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/tools/github_workflows/backend.yaml","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"01347dc1a60b8712f0d7a92e7e8bb313ab7771c1c8e7c3dfb1b08dc4232bda05","length":"3765"},{"name":"tools/github_workflows/frontend.yaml","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/tools/github_workflows/frontend.yaml","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"012f192a343ddec04f0dc74e13edaa8ba4bdc97ef0f6375c3520c82a01018a48","length":"871"},{"name":"tools/github_workflows/publish-docker.yaml","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/tools/github_workflows/publish-docker.yaml","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"17a645083cffe244a648d52a89f4925d16318d08004d20f240c5f52078e4adf5","length":"4290"}]}} +{"id":{"targetCompleted":{"label":"//tools/github_workflows:github_workflows","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"60"}]}]}} +{"id":{"progress":{"opaqueCount":205}},"children":[{"progress":{"opaqueCount":206}},{"namedSet":{"id":"61"}}],"progress":{}} +{"id":{"namedSet":{"id":"61"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_1_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_1_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"8a905fa6895585667ef85a09a80136c6b0c88dafa5855b65a400718658fcc4cc","length":"1279"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows_1","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"61"}]}]}} +{"id":{"progress":{"opaqueCount":206}},"children":[{"progress":{"opaqueCount":207}},{"namedSet":{"id":"62"}}],"progress":{}} +{"id":{"namedSet":{"id":"62"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_1_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_1_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"b4401ae968b2f5d3da8eb747f96f98b8cef425ae77a0229426b4b4e00aa22f80","length":"3231"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows_1_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"62"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":207}},"children":[{"progress":{"opaqueCount":208}},{"namedSet":{"id":"63"}}],"progress":{}} +{"id":{"namedSet":{"id":"63"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_2_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_2_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"4af93d6f2a767ddd95964003a7c48756ce4375551c788cd80e278e6a60868566","length":"3315"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows_2_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"63"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":208}},"children":[{"progress":{"opaqueCount":209}},{"namedSet":{"id":"64"}}],"progress":{}} +{"id":{"namedSet":{"id":"64"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_0_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_0_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f7f0d8f000895f73554588087f0a8359ae39a9ef5ea68d1bee52706aea58d5be","length":"1277"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows_0","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"64"}]}]}} +{"id":{"progress":{"opaqueCount":209}},"children":[{"progress":{"opaqueCount":210}},{"namedSet":{"id":"65"}}],"progress":{}} +{"id":{"namedSet":{"id":"65"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9fc46612d9f1f47d7e2c55c7ae10232a65a0f944494cc70e34a2a87e5eeed58a","length":"426"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"65"}]}]}} +{"id":{"progress":{"opaqueCount":210}},"children":[{"progress":{"opaqueCount":211}},{"namedSet":{"id":"66"}}],"progress":{}} +{"id":{"namedSet":{"id":"66"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_2_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_2_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f045f8bfbb233b5c1b5b406492be9613172628718eac564ebb5849adecbb503a","length":"1291"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows_2","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"66"}]}]}} +{"id":{"progress":{"opaqueCount":211}},"children":[{"progress":{"opaqueCount":212}},{"namedSet":{"id":"67"}}],"progress":{}} +{"id":{"namedSet":{"id":"67"}},"namedSetOfFiles":{"files":[{"name":"update_workflows_0_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/update_workflows_0_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d5593235cc5d418b49fd6cded4c8724891d4c7579eb05fde6517ec1e283527eb","length":"3217"}]}} +{"id":{"targetCompleted":{"label":"//:update_workflows_0_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"67"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":212}},"children":[{"progress":{"opaqueCount":213}}],"progress":{"stderr":"[2,585 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 20s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/tracker.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/tracker.cc:20:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,586 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 22s processwrapper-sandbox ... (4 actions running)\n[2,587 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 23s processwrapper-sandbox ... (4 actions running)\n[2,589 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 24s processwrapper-sandbox ... (4 actions, 3 running)\n[2,589 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 26s processwrapper-sandbox ... (4 actions running)\n[2,590 / 3,118] Compiling src/google/protobuf/descriptor.cc [for tool]; 28s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/descriptor.cc [for tool]:\nexternal/protobuf+/src/google/protobuf/descriptor.cc:3953:45: warning: \u0027has_optional_keyword\u0027 is deprecated: Use has_presence() instead. [-Wdeprecated-declarations]\n 3953 | (!is_required() \u0026\u0026 !is_repeated() \u0026\u0026 !has_optional_keyword())) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.h:1135:3: note: \u0027has_optional_keyword\u0027 has been explicitly marked deprecated here\n 1135 | ABSL_DEPRECATED(\"Use has_presence() instead.\")\n | ^\nexternal/abseil-cpp+/absl/base/attributes.h:689:49: note: expanded from macro \u0027ABSL_DEPRECATED\u0027\n 689 | #define ABSL_DEPRECATED(message) __attribute__((deprecated(message)))\n | ^\nexternal/protobuf+/src/google/protobuf/descriptor.cc:7982:61: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 7982 | bool is_weak \u003d !pool_-\u003eenforce_weak_ \u0026\u0026 proto.options().weak();\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/descriptor.cc:10700:58: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 10700 | if (field-\u003ereal_containing_oneof() || field-\u003eoptions().weak() ||\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n3 warnings generated.\n[2,592 / 3,118] Compiling src/google/protobuf/compiler/code_generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,593 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_enum.cc [for tool]; 2s processwrapper-sandbox ... (4 actions running)\n[2,594 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_enum.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,594 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_enum.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,596 / 3,118] Compiling src/google/protobuf/compiler/cpp/helpers.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,597 / 3,118] Compiling src/google/protobuf/compiler/cpp/helpers.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\n[2,598 / 3,118] Compiling src/google/protobuf/compiler/cpp/helpers.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[2,599 / 3,118] Compiling src/google/protobuf/compiler/cpp/helpers.cc [for tool]; 12s processwrapper-sandbox ... (4 actions, 3 running)\n[2,599 / 3,118] Compiling src/google/protobuf/compiler/cpp/helpers.cc [for tool]; 13s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/cpp/helpers.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/cpp/helpers.cc:12:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\nexternal/protobuf+/src/google/protobuf/compiler/cpp/helpers.cc:1802:28: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 1802 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n2 warnings generated.\n[2,606 / 3,118] Compiling src/google/protobuf/compiler/rust/naming.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/rust/naming.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/naming.cc:26:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,607 / 3,118] Compiling src/google/protobuf/compiler/rust/upb_helpers.cc [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[2,607 / 3,118] Compiling src/google/protobuf/compiler/rust/upb_helpers.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,608 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_field_base.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,608 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_field_base.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/with_presence.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/with_presence.cc:13:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,611 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/singular_string.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,612 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/singular_string.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/singular_string.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/singular_string.cc:12:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/singular_scalar.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/singular_scalar.cc:12:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,614 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/singular_message.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,614 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/singular_message.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/singular_message.cc [for tool]:\n"}} +{"id":{"progress":{"opaqueCount":213}},"children":[{"progress":{"opaqueCount":214}}],"progress":{"stderr":"In file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/singular_message.cc:12:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,615 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_helpers.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,616 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/singular_cord.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,616 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/singular_cord.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/singular_cord.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/singular_cord.cc:12:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,617 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/repeated_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/repeated_field.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/repeated_field.cc:12:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\nINFO: From Compiling src/google/protobuf/compiler/rust/accessors/map.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/accessors/map.cc:11:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,619 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_map_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,620 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_map_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,620 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_map_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,621 / 3,118] Compiling src/google/protobuf/compiler/rust/accessors/default_value.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,623 / 3,118] Compiling src/google/protobuf/compiler/rust/oneof.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[2,624 / 3,118] Compiling src/google/protobuf/compiler/rust/oneof.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,624 / 3,118] Compiling src/google/protobuf/compiler/rust/oneof.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/rust/oneof.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/oneof.cc:16:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,626 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_message.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,627 / 3,118] Compiling src/google/protobuf/compiler/rust/crate_mapping.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[2,635 / 3,118] Compiling src/google/protobuf/compiler/rust/crate_mapping.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,636 / 3,118] Compiling src/google/protobuf/compiler/ruby/ruby_generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,637 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_message_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,637 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_message_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,638 / 3,118] Compiling src/google/protobuf/compiler/rust/message.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,639 / 3,118] Compiling src/google/protobuf/compiler/rust/message.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[2,640 / 3,118] Compiling src/google/protobuf/compiler/rust/message.cc [for tool]; 12s processwrapper-sandbox ... (4 actions running)\nINFO: From Compiling src/google/protobuf/compiler/rust/message.cc [for tool]:\nIn file included from external/protobuf+/src/google/protobuf/compiler/rust/message.cc:20:\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/compiler/cpp/_virtual_includes/names_internal/google/protobuf/compiler/cpp/helpers.h:347:24: warning: \u0027weak\u0027 is deprecated [-Wdeprecated-declarations]\n 347 | if (field-\u003eoptions().weak()) {\n | ^\nbazel-out/k8-opt-exec/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf/google/protobuf/descriptor.pb.h:7601:5: note: \u0027weak\u0027 has been explicitly marked deprecated here\n 7601 | [[deprecated]] bool weak() const;\n | ^\n1 warning generated.\n[2,641 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_primitive_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,642 / 3,118] Compiling src/google/protobuf/compiler/python/generator.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[2,643 / 3,118] Compiling src/google/protobuf/compiler/python/generator.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,644 / 3,118] Compiling src/google/protobuf/compiler/python/generator.cc [for tool]; 11s processwrapper-sandbox ... (4 actions, 3 running)\n[2,644 / 3,118] Compiling src/google/protobuf/compiler/python/generator.cc [for tool]; 12s processwrapper-sandbox ... (4 actions running)\n[2,646 / 3,118] Compiling src/google/protobuf/compiler/php/php_generator.cc [for tool]; 9s processwrapper-sandbox ... (4 actions running)\n[2,647 / 3,118] Compiling src/google/protobuf/compiler/php/php_generator.cc [for tool]; 11s processwrapper-sandbox ... (4 actions, 3 running)\n[2,649 / 3,118] Compiling src/google/protobuf/compiler/main.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,649 / 3,118] Compiling src/google/protobuf/compiler/main.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,650 / 3,118] Compiling src/google/protobuf/compiler/objectivec/names.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,651 / 3,118] Compiling src/google/protobuf/compiler/objectivec/names.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,652 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,653 / 3,118] Compiling src/google/protobuf/compiler/rust/generator.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,654 / 3,118] Compiling src/google/protobuf/compiler/rust/generator.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,654 / 3,118] Compiling src/google/protobuf/compiler/rust/generator.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\n[2,655 / 3,118] Compiling src/google/protobuf/compiler/objectivec/oneof.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,656 / 3,118] Compiling src/google/protobuf/compiler/objectivec/oneof.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,657 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,659 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc [for tool]; 2s processwrapper-sandbox ... (4 actions, 3 running)\n[2,659 / 3,118] Compiling src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[2,660 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"progress":{"opaqueCount":214}},"children":[{"progress":{"opaqueCount":215}},{"namedSet":{"id":"68"}}],"progress":{"stderr":"[2,661 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,662 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message.cc [for tool]; 9s processwrapper-sandbox ... (4 actions, 3 running)\n[2,667 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[2,669 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message.cc [for tool]; 11s processwrapper-sandbox ... (4 actions running)\n[2,672 / 3,118] Compiling src/google/protobuf/compiler/objectivec/message.cc [for tool]; 13s processwrapper-sandbox ... (4 actions, 3 running)\n[2,677 / 3,118] Compiling src/google/protobuf/compiler/objectivec/import_writer.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,679 / 3,118] Compiling src/google/protobuf/compiler/objectivec/import_writer.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,682 / 3,118] Compiling src/google/protobuf/compiler/csharp/names.cc [for tool]; 3s processwrapper-sandbox ... (4 actions running)\n[2,684 / 3,118] Compiling src/google/protobuf/compiler/csharp/names.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[2,685 / 3,118] Compiling src/google/protobuf/compiler/objectivec/helpers.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,686 / 3,118] Compiling src/google/protobuf/compiler/objectivec/generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,686 / 3,118] Compiling src/google/protobuf/compiler/objectivec/generator.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,687 / 3,118] Compiling src/google/protobuf/compiler/objectivec/file.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,688 / 3,118] Compiling src/google/protobuf/compiler/objectivec/file.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,688 / 3,118] Compiling src/google/protobuf/compiler/objectivec/file.cc [for tool]; 10s processwrapper-sandbox ... (4 actions running)\n[2,689 / 3,118] Compiling src/google/protobuf/compiler/objectivec/field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,690 / 3,118] Compiling src/google/protobuf/compiler/objectivec/extension.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,691 / 3,118] Compiling src/google/protobuf/compiler/kotlin/field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,692 / 3,118] Compiling src/google/protobuf/compiler/kotlin/field.cc [for tool]; 10s processwrapper-sandbox ... (4 actions, 3 running)\n[2,692 / 3,118] Compiling src/google/protobuf/compiler/kotlin/field.cc [for tool]; 11s processwrapper-sandbox ... (4 actions running)\n[2,694 / 3,118] Compiling src/google/protobuf/compiler/kotlin/field.cc [for tool]; 13s processwrapper-sandbox ... (4 actions, 3 running)\n[2,694 / 3,118] Compiling src/google/protobuf/compiler/kotlin/field.cc [for tool]; 14s processwrapper-sandbox ... (4 actions running)\n[2,695 / 3,118] Compiling src/google/protobuf/compiler/java/names.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,696 / 3,118] Compiling src/google/protobuf/compiler/java/name_resolver.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,697 / 3,118] Compiling src/google/protobuf/compiler/java/helpers.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,697 / 3,118] Compiling src/google/protobuf/compiler/java/helpers.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,698 / 3,118] Compiling src/google/protobuf/compiler/kotlin/file.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,699 / 3,118] Compiling src/google/protobuf/compiler/java/doc_comment.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,700 / 3,118] Compiling src/google/protobuf/compiler/java/field_common.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,701 / 3,118] Compiling src/google/protobuf/compiler/java/full/service.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,701 / 3,118] Compiling src/google/protobuf/compiler/java/full/service.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,702 / 3,118] Compiling src/google/protobuf/compiler/kotlin/message.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,703 / 3,118] Compiling src/google/protobuf/compiler/java/internal_helpers.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,704 / 3,118] Compiling src/google/protobuf/compiler/java/lite/string_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,705 / 3,118] Compiling src/google/protobuf/compiler/java/lite/primitive_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,706 / 3,118] Compiling src/google/protobuf/compiler/java/lite/primitive_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,707 / 3,118] Compiling src/google/protobuf/compiler/java/lite/message_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions running)\n[2,708 / 3,118] Compiling src/google/protobuf/compiler/java/lite/map_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,709 / 3,118] Compiling src/google/protobuf/compiler/java/file.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,710 / 3,118] Compiling src/google/protobuf/compiler/java/file.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,711 / 3,118] Compiling src/google/protobuf/compiler/java/lite/extension.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,711 / 3,118] Compiling src/google/protobuf/compiler/java/lite/extension.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,712 / 3,118] Compiling src/google/protobuf/compiler/java/lite/enum_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,712 / 3,118] Compiling src/google/protobuf/compiler/java/lite/enum_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\n[2,714 / 3,118] Compiling src/google/protobuf/compiler/java/generator.cc [for tool]; 5s processwrapper-sandbox ... (4 actions, 3 running)\n[2,715 / 3,118] Compiling src/google/protobuf/compiler/java/lite/message.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,715 / 3,118] Compiling src/google/protobuf/compiler/java/lite/message.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,716 / 3,118] Compiling src/google/protobuf/compiler/java/lite/message.cc [for tool]; 7s processwrapper-sandbox ... (4 actions, 3 running)\n[2,717 / 3,118] Compiling src/google/protobuf/compiler/java/lite/extension.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,718 / 3,118] Compiling src/google/protobuf/compiler/java/shared_code_generator.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,719 / 3,118] Compiling src/google/protobuf/compiler/java/lite/enum.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,719 / 3,118] Compiling src/google/protobuf/compiler/java/lite/enum.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,720 / 3,118] Compiling src/google/protobuf/compiler/java/lite/enum.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,721 / 3,118] Compiling src/google/protobuf/compiler/java/full/string_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,722 / 3,118] Compiling src/google/protobuf/compiler/java/full/extension.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,723 / 3,118] Compiling src/google/protobuf/compiler/java/full/primitive_field.cc [for tool]; 4s processwrapper-sandbox ... (4 actions, 3 running)\n[2,723 / 3,118] Compiling src/google/protobuf/compiler/java/full/primitive_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,724 / 3,118] Compiling src/google/protobuf/compiler/java/full/primitive_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions, 3 running)\n[2,725 / 3,118] Compiling src/google/protobuf/compiler/java/full/map_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions running)\n[2,726 / 3,118] Compiling src/google/protobuf/compiler/java/full/map_field.cc [for tool]; 7s processwrapper-sandbox ... (4 actions running)\n[2,727 / 3,118] Compiling src/google/protobuf/compiler/java/full/enum_field.cc [for tool]; 3s processwrapper-sandbox ... (4 actions, 3 running)\n[2,727 / 3,118] Compiling src/google/protobuf/compiler/java/full/enum_field.cc [for tool]; 5s processwrapper-sandbox ... (4 actions running)\n[2,728 / 3,118] Compiling src/google/protobuf/compiler/java/full/enum_field.cc [for tool]; 6s processwrapper-sandbox ... (4 actions, 3 running)\n[2,728 / 3,118] Compiling src/google/protobuf/compiler/java/full/enum_field.cc [for tool]; 8s processwrapper-sandbox ... (4 actions running)\n[2,729 / 3,118] Compiling src/google/protobuf/compiler/java/full/message.cc [for tool]; 8s processwrapper-sandbox ... (3 actions running)\n[2,731 / 3,118] Compiling src/google/protobuf/compiler/java/full/message_builder.cc [for tool]; 5s processwrapper-sandbox\n[2,733 / 3,118] [Prepa] runfiles for @@protobuf+//:protoc\n"}} +{"id":{"namedSet":{"id":"68"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_auth_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_auth_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ef0134c4baa23ecbeac517f58dcd815062b1df33654172fa6adb652cb90d0e71","length":"1392"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_auth_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"68"}]}]}} +{"id":{"progress":{"opaqueCount":215}},"children":[{"progress":{"opaqueCount":216}},{"namedSet":{"id":"69"}}],"progress":{}} +{"id":{"namedSet":{"id":"69"}},"namedSetOfFiles":{"files":[{"name":"frontend/bazel_semver_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/bazel_semver_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a868ff6cddaa3b6bcd1d7ba062ec3b295dfcde8d0edb025ffddf89bcb7067255","length":"1315"}]}} +{"id":{"targetCompleted":{"label":"//frontend:bazel_semver_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"69"}]}]}} +{"id":{"progress":{"opaqueCount":216}},"children":[{"progress":{"opaqueCount":217}},{"namedSet":{"id":"70"}}],"progress":{}} +{"id":{"namedSet":{"id":"70"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_operations_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_operations_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"519e098756e5d9a143c80f03451e40857fa17e5654df3c34c926f517d7f397f2","length":"3539"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_operations_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"70"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":217}},"children":[{"progress":{"opaqueCount":218}},{"namedSet":{"id":"71"}}],"progress":{}} +{"id":{"namedSet":{"id":"71"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_operations_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_operations_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"fa65871657c273964c0041391bda2b2133ca6b9fbb5037ae15770ae26d8c97bd","length":"1316"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_operations_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"71"}]}]}} +{"id":{"progress":{"opaqueCount":218}},"children":[{"progress":{"opaqueCount":219}},{"namedSet":{"id":"72"}}],"progress":{}} +{"id":{"namedSet":{"id":"72"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_buildqueuestate_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_buildqueuestate_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"04de3ce6bced3f9e2e0627c8da189ca99732e7e07d80652e8f50b384821609cc","length":"4563"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_buildqueuestate_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"72"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":219}},"children":[{"progress":{"opaqueCount":220}},{"namedSet":{"id":"73"}}],"progress":{}} +{"id":{"namedSet":{"id":"73"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_fsac_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_fsac_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a3d9f5a8b4ce454a17cac0cd34fe52601601700c584cb50de4d7d6d858d5ff18","length":"1392"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_fsac_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"73"}]}]}} +{"id":{"progress":{"opaqueCount":220}},"children":[{"progress":{"opaqueCount":221}},{"namedSet":{"id":"74"}}],"progress":{}} +{"id":{"namedSet":{"id":"74"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_iscc_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_iscc_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"1e87d4a84623d70c7eac7b49d96dddc82f4c8043d1a4cb264ac5764e34c8603b","length":"3960"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_iscc_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"74"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":221}},"children":[{"progress":{"opaqueCount":222}},{"namedSet":{"id":"75"}}],"progress":{}} +{"id":{"namedSet":{"id":"75"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_remote_execution+/pkg/proto/cas/_virtual_imports/cas_proto/github.com/buildbarn/bb-remote-execution/pkg/proto/cas/cas.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_remote_execution+/pkg/proto/cas/_virtual_imports/cas_proto/github.com/buildbarn/bb-remote-execution/pkg/proto/cas/cas.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"69f6561fa7b3630ba6aa6eddc44ba015701e7193ae07b56e64da04eb28d5d123","length":"1098"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_cas_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"75"}]}]}} +{"id":{"progress":{"opaqueCount":222}},"children":[{"progress":{"opaqueCount":223}},{"namedSet":{"id":"76"}}],"progress":{}} +{"id":{"namedSet":{"id":"76"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_client_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_client_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"7cdb3b52c6f95f56fa0f496e54ef704d61563cc37edee67561f298fc8f285fa6","length":"3351"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_client_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"76"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":223}},"children":[{"progress":{"opaqueCount":224}},{"namedSet":{"id":"77"}}],"progress":{}} +{"id":{"namedSet":{"id":"77"}},"namedSetOfFiles":{"files":[{"name":"external/protobuf+/src/google/protobuf/_virtual_imports/wrappers_proto/google/protobuf/wrappers.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/protobuf+/src/google/protobuf/_virtual_imports/wrappers_proto/google/protobuf/wrappers.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6878dc7534cf9805eee56345cdc38b5e9ca39dece246710c663c7007a67fef49","length":"5392"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_wrappers_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"77"}]}]}} +{"id":{"progress":{"opaqueCount":224}},"children":[{"progress":{"opaqueCount":225}},{"namedSet":{"id":"78"}}],"progress":{}} +{"id":{"namedSet":{"id":"78"}},"namedSetOfFiles":{"files":[{"name":"frontend/opentelemetry_common_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/opentelemetry_common_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"57f8a46ecc40ea0b5f61535619d9ae737c9369f2c3ddb8c6d523f8faa433da1d","length":"3706"}]}} +{"id":{"targetCompleted":{"label":"//frontend:opentelemetry_common_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"78"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":225}},"children":[{"progress":{"opaqueCount":226}},{"namedSet":{"id":"79"}}],"progress":{}} +{"id":{"namedSet":{"id":"79"}},"namedSetOfFiles":{"files":[{"name":"external/protobuf+/src/google/protobuf/_virtual_imports/any_proto/google/protobuf/any.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/protobuf+/src/google/protobuf/_virtual_imports/any_proto/google/protobuf/any.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bcf5de6ce463b1a38ff76b77955aa7e580b4ec12af34a927b1d45c9efb0faf66","length":"6154"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_any_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"79"}]}]}} +{"id":{"progress":{"opaqueCount":226}},"children":[{"progress":{"opaqueCount":227}},{"namedSet":{"id":"80"}}],"progress":{}} +{"id":{"namedSet":{"id":"80"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_launch_stage_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_launch_stage_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"b36ae9987ea75b4b3aadce34fae4897a1997c41f5f6a3c85cf74e14e7233deb2","length":"1304"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_launch_stage_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"80"}]}]}} +{"id":{"progress":{"opaqueCount":227}},"children":[{"progress":{"opaqueCount":228}},{"namedSet":{"id":"81"}}],"progress":{}} +{"id":{"namedSet":{"id":"81"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_status_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_status_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"1ef77bce73c0ed585d2fe7bf3de3e78afbb0ccf2bac62aa8ae45da1d2bd75365","length":"3351"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_status_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"81"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":228}},"children":[{"progress":{"opaqueCount":229}},{"namedSet":{"id":"82"}}],"progress":{}} +{"id":{"namedSet":{"id":"82"}},"namedSetOfFiles":{"files":[{"name":"google/api/launch_stage.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/api/launch_stage.proto","digest":"6ffd80d69f94430b4704b40fca9a339e10887f315efa66ac9c3c7d5587d6aba5","length":"3083"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_launch_stage_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"82"}]}]}} +{"id":{"progress":{"opaqueCount":229}},"children":[{"progress":{"opaqueCount":230}},{"namedSet":{"id":"83"}}],"progress":{}} +{"id":{"namedSet":{"id":"83"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_http_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_http_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c9da20e0a20a57dd0bc45fc2dc0ec0fb4729b949dc89141e08949489d882e681","length":"3313"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_http_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"83"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":230}},"children":[{"progress":{"opaqueCount":231}},{"namedSet":{"id":"84"}}],"progress":{}} +{"id":{"namedSet":{"id":"84"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_annotations_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_annotations_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"01d26fc0ee7972abbab0b19d18baf143051101d4b3e528396059853edcae23f3","length":"1302"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_annotations_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"84"}]}]}} +{"id":{"progress":{"opaqueCount":231}},"children":[{"progress":{"opaqueCount":232}},{"namedSet":{"id":"85"}}],"progress":{}} +{"id":{"namedSet":{"id":"85"}},"namedSetOfFiles":{"files":[{"name":"google/rpc/code.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/rpc/code.proto","digest":"9993be65e050c30ced246951659dbe0a13663b77cf57bcaa4c0ed4248480fb80","length":"7138"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_code_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"85"}]}]}} +{"id":{"progress":{"opaqueCount":232}},"children":[{"progress":{"opaqueCount":233}},{"namedSet":{"id":"86"}}],"progress":{}} +{"id":{"namedSet":{"id":"86"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_bytestream_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_bytestream_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"5593ca2636ac66c974f31ca37f1e6be6b8e0ccf28e1544e76252bf2b07c7f608","length":"3525"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_bytestream_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"86"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":233}},"children":[{"progress":{"opaqueCount":234}},{"namedSet":{"id":"87"}}],"progress":{}} +{"id":{"namedSet":{"id":"87"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_descriptor_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_descriptor_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"cd101290b1f17bbc09a34f92dd5f2a30e4a500a294042a8bdc4a5cf7a58dfe99","length":"3809"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_descriptor_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"87"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":234}},"children":[{"progress":{"opaqueCount":235}},{"namedSet":{"id":"88"}}],"progress":{}} +{"id":{"namedSet":{"id":"88"}},"namedSetOfFiles":{"files":[{"name":"google/api/field_behavior.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/api/field_behavior.proto","digest":"044ba7fc05bdd16182be29348794ba155919c3b77d6fe492ec63b9eeae9a2c5c","length":"4306"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_field_behavior_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"88"}]}]}} +{"id":{"progress":{"opaqueCount":235}},"children":[{"progress":{"opaqueCount":236}},{"namedSet":{"id":"89"}}],"progress":{}} +{"id":{"namedSet":{"id":"89"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_storage+/pkg/proto/auth/_virtual_imports/auth_proto/github.com/buildbarn/bb-storage/pkg/proto/auth/auth.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_storage+/pkg/proto/auth/_virtual_imports/auth_proto/github.com/buildbarn/bb-storage/pkg/proto/auth/auth.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"1779219f48ae0b745f70ccf15cb0fa0ca7b881991784e4e01765edd7db7b39af","length":"3386"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_auth_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"89"}]}]}} +{"id":{"progress":{"opaqueCount":236}},"children":[{"progress":{"opaqueCount":237}},{"namedSet":{"id":"90"}}],"progress":{}} +{"id":{"namedSet":{"id":"90"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_auth_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_auth_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"04bd2bb671a9d783366ee03eb573b54dd3548764a9c9fc4a5f1cd580628d6b2a","length":"3960"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_auth_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"90"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":237}},"children":[{"progress":{"opaqueCount":238}},{"namedSet":{"id":"91"}}],"progress":{}} +{"id":{"namedSet":{"id":"91"}},"namedSetOfFiles":{"files":[{"name":"external/protobuf+/src/google/protobuf/_virtual_imports/empty_proto/google/protobuf/empty.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/protobuf+/src/google/protobuf/_virtual_imports/empty_proto/google/protobuf/empty.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ecef3d54cc9e079673b9816c67bac770f7f3bf6dada2d4596ba69d71daa971e6","length":"2363"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_empty_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"91"}]}]}} +{"id":{"progress":{"opaqueCount":238}},"children":[{"progress":{"opaqueCount":239}},{"namedSet":{"id":"92"}}],"progress":{}} +{"id":{"namedSet":{"id":"92"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_empty_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_empty_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"410b64a8934d69ba54c86402156b1da28553abfcd4ca7479187736a442469318","length":"1347"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_empty_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"92"}]}]}} +{"id":{"progress":{"opaqueCount":239}},"children":[{"progress":{"opaqueCount":240}},{"namedSet":{"id":"93"}}],"progress":{}} +{"id":{"namedSet":{"id":"93"}},"namedSetOfFiles":{"files":[{"name":"google/longrunning/operations.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/longrunning/operations.proto","digest":"5d2e7f9eeb55b8417b50e0a536a092babd32d26e4fbeb7099c6cdcda6e16db9c","length":"10931"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_operations_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"93"}]}]}} +{"id":{"progress":{"opaqueCount":240}},"children":[{"progress":{"opaqueCount":241}},{"namedSet":{"id":"94"}}],"progress":{}} +{"id":{"namedSet":{"id":"94"}},"namedSetOfFiles":{"files":[{"name":"frontend/bazel_remote_execution_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/bazel_remote_execution_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"8fcfe5e9658a1822b06de3d94aa30e8d6a0c3bd38cb7280c6cd1b9d341f6b9d2","length":"1361"}]}} +{"id":{"targetCompleted":{"label":"//frontend:bazel_remote_execution_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"94"}]}]}} +{"id":{"progress":{"opaqueCount":241}},"children":[{"progress":{"opaqueCount":242}},{"namedSet":{"id":"95"}}],"progress":{}} +{"id":{"namedSet":{"id":"95"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_storage+/pkg/proto/fsac/_virtual_imports/fsac_proto/github.com/buildbarn/bb-storage/pkg/proto/fsac/fsac.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_storage+/pkg/proto/fsac/_virtual_imports/fsac_proto/github.com/buildbarn/bb-storage/pkg/proto/fsac/fsac.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c8159c547243c9ff82b36109eb42e7e3206f6ee4120d349d4cf584180974935e","length":"3701"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_fsac_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"95"}]}]}} +{"id":{"progress":{"opaqueCount":242}},"children":[{"progress":{"opaqueCount":243}},{"namedSet":{"id":"96"}}],"progress":{}} +{"id":{"namedSet":{"id":"96"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_browser+/pkg/proto/query/_virtual_imports/query_proto/github.com/buildbarn/bb-browser/pkg/proto/query/query.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_browser+/pkg/proto/query/_virtual_imports/query_proto/github.com/buildbarn/bb-browser/pkg/proto/query/query.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"dfb4158d4525d72ec095e1ab051221be8fdf51bd69407db7e4bb06af53acc3b7","length":"667"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_query_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"96"}]}]}} +{"id":{"progress":{"opaqueCount":243}},"children":[{"progress":{"opaqueCount":244}},{"namedSet":{"id":"97"}}],"progress":{}} +{"id":{"namedSet":{"id":"97"}},"namedSetOfFiles":{"files":[{"name":"frontend/bazel_remote_execution_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/bazel_remote_execution_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d1e7f523ed047612459136fa83feece51356146156fb351e5459baccff09c08e","length":"3872"}]}} +{"id":{"targetCompleted":{"label":"//frontend:bazel_remote_execution_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"97"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":244}},"children":[{"progress":{"opaqueCount":245}},{"namedSet":{"id":"98"}}],"progress":{}} +{"id":{"namedSet":{"id":"98"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_remote_execution+/pkg/proto/buildqueuestate/_virtual_imports/buildqueuestate_proto/github.com/buildbarn/bb-remote-execution/pkg/proto/buildqueuestate/buildqueuestate.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_remote_execution+/pkg/proto/buildqueuestate/_virtual_imports/buildqueuestate_proto/github.com/buildbarn/bb-remote-execution/pkg/proto/buildqueuestate/buildqueuestate.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"305a1a85588106a7a1ed94f03ef3abf9e166d5f7db7a3595df9f31b333289060","length":"21958"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_buildqueuestate_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"98"}]}]}} +{"id":{"progress":{"opaqueCount":245}},"children":[{"progress":{"opaqueCount":246}},{"namedSet":{"id":"99"}}],"progress":{}} +{"id":{"namedSet":{"id":"99"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_timestamp_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_timestamp_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"806cbfef1776b4c09304f1f0fecbb50d66ac8df3b1deed29ea65a2289e287376","length":"1359"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_timestamp_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"99"}]}]}} +{"id":{"progress":{"opaqueCount":246}},"children":[{"progress":{"opaqueCount":247}},{"namedSet":{"id":"100"}}],"progress":{}} +{"id":{"namedSet":{"id":"100"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_cas_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_cas_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"41dc41a45f135f0b486ea5c4ce90f45253404b09730124f1b98aba2ff9112913","length":"4023"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_cas_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"100"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":247}},"children":[{"progress":{"opaqueCount":248}},{"namedSet":{"id":"101"}}],"progress":{}} +{"id":{"namedSet":{"id":"101"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_cas_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_cas_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"937c23561f6651e6e43216246919d162b2c0f43c928050c026a5033845a114be","length":"1404"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_cas_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"101"}]}]}} +{"id":{"progress":{"opaqueCount":248}},"children":[{"progress":{"opaqueCount":249}},{"namedSet":{"id":"102"}}],"progress":{}} +{"id":{"namedSet":{"id":"102"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_timestamp_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_timestamp_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"257ff6c802df793dd799a95a137bf657f168de92f31493d553f01ab82f262217","length":"3784"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_timestamp_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"102"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":249}},"children":[{"progress":{"opaqueCount":250}},{"namedSet":{"id":"103"}}],"progress":{}} +{"id":{"namedSet":{"id":"103"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_resourceusage_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_resourceusage_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"64c3812d30c478c27bd692ef44cb4ff479f847b3df7e9b5b1cb1297c6daeb4c9","length":"1464"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_resourceusage_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"103"}]}]}} +{"id":{"progress":{"opaqueCount":250}},"children":[{"progress":{"opaqueCount":251}},{"namedSet":{"id":"104"}}],"progress":{}} +{"id":{"namedSet":{"id":"104"}},"namedSetOfFiles":{"files":[{"name":"external/protobuf+/src/google/protobuf/_virtual_imports/duration_proto/google/protobuf/duration.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/protobuf+/src/google/protobuf/_virtual_imports/duration_proto/google/protobuf/duration.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a3f7301ff2956ec2e30c2241ece07197e4a86c752348d5607224819d4921c9fe","length":"4892"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_duration_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"104"}]}]}} +{"id":{"progress":{"opaqueCount":251}},"children":[{"progress":{"opaqueCount":252}},{"namedSet":{"id":"105"}}],"progress":{}} +{"id":{"namedSet":{"id":"105"}},"namedSetOfFiles":{"files":[{"name":"frontend/opentelemetry_common_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/opentelemetry_common_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"3fb488b23b60a7a0304170b4e0b1bec1365eb96e94b770a15bf29fe6c3fecd10","length":"1339"}]}} +{"id":{"targetCompleted":{"label":"//frontend:opentelemetry_common_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"105"}]}]}} +{"id":{"progress":{"opaqueCount":252}},"children":[{"progress":{"opaqueCount":253}},{"namedSet":{"id":"106"}}],"progress":{}} +{"id":{"namedSet":{"id":"106"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_launch_stage_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_launch_stage_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"373817b26b82ec35c8c351cb286621d5155e34a130887994c94706d21a6c3f61","length":"3465"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_launch_stage_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"106"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":253}},"children":[{"progress":{"opaqueCount":254}},{"namedSet":{"id":"107"}}],"progress":{}} +{"id":{"namedSet":{"id":"107"}},"namedSetOfFiles":{"files":[{"name":"google/rpc/status.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/rpc/status.proto","digest":"3b5c712455570ac4342dd3c521c4c11011652ae9a0fbca75ba22fcc45c6e1991","length":"1934"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_status_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"107"}]}]}} +{"id":{"progress":{"opaqueCount":254}},"children":[{"progress":{"opaqueCount":255}},{"namedSet":{"id":"108"}}],"progress":{}} +{"id":{"namedSet":{"id":"108"}},"namedSetOfFiles":{"files":[{"name":"google/api/http.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/api/http.proto","digest":"4a4d9be6a5c7f1989c93c25c71b48ff1b401645790b8b978ad34d579e29c4a2a","length":"15059"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_http_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"108"}]}]}} +{"id":{"progress":{"opaqueCount":255}},"children":[{"progress":{"opaqueCount":256}},{"namedSet":{"id":"109"}}],"progress":{}} +{"id":{"namedSet":{"id":"109"}},"namedSetOfFiles":{"files":[{"name":"google/bytestream/bytestream.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/bytestream/bytestream.proto","digest":"961b833f35f4bdc51df4bca017cffdba299893e89762bf8041465560106dd3d6","length":"7524"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_bytestream_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"109"}]}]}} +{"id":{"progress":{"opaqueCount":256}},"children":[{"progress":{"opaqueCount":257}},{"namedSet":{"id":"110"}}],"progress":{}} +{"id":{"namedSet":{"id":"110"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_descriptor_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_descriptor_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"b2065da96d603310a2608fa486a8c28f68c4decbdd749398e2982c515af3eaab","length":"1362"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_descriptor_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"110"}]}]}} +{"id":{"progress":{"opaqueCount":257}},"children":[{"progress":{"opaqueCount":258}},{"namedSet":{"id":"111"}}],"progress":{}} +{"id":{"namedSet":{"id":"111"}},"namedSetOfFiles":{"files":[{"name":"frontend/protobuf_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/protobuf_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0c9ccbefa0e68bc784d63ad62c61de40e998c1b9f50cea5bc3874a94e4254b76","length":"1474"}]}} +{"id":{"targetCompleted":{"label":"//frontend:protobuf","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"111"}]}]}} +{"id":{"progress":{"opaqueCount":258}},"children":[{"progress":{"opaqueCount":259}},{"namedSet":{"id":"112"}}],"progress":{}} +{"id":{"namedSet":{"id":"112"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_field_behavior_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_field_behavior_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ed07c145f15bf490aa898a8b2460f494270c593a16bac958f2936275381217c3","length":"1308"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_field_behavior_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"112"}]}]}} +{"id":{"progress":{"opaqueCount":259}},"children":[{"progress":{"opaqueCount":260}},{"namedSet":{"id":"113"}}],"progress":{}} +{"id":{"namedSet":{"id":"113"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_empty_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_empty_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"52709cd7f9e05bba41c885a2b933e626511410d298cb45f4149ef5b4419c40fa","length":"3684"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_empty_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"113"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":260}},"children":[{"progress":{"opaqueCount":261}},{"namedSet":{"id":"114"}}],"progress":{}} +{"id":{"namedSet":{"id":"114"}},"namedSetOfFiles":{"files":[{"name":"frontend/bazel_semver_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/bazel_semver_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"412f53642e4032494160f151dce4eb56a92e2ac72e97edd735ae7f9e4d82a0bd","length":"3500"}]}} +{"id":{"targetCompleted":{"label":"//frontend:bazel_semver_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"114"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":261}},"children":[{"progress":{"opaqueCount":262}},{"namedSet":{"id":"115"}}],"progress":{}} +{"id":{"namedSet":{"id":"115"}},"namedSetOfFiles":{"files":[{"name":"build/bazel/semver/semver.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/bazel_remote_apis+/build/bazel/semver/semver.proto","digest":"22b2af125690142af1c8152ba3a4ca15ffaa1265111dedc6e39b5412989b5be1","length":"1403"}]}} +{"id":{"targetCompleted":{"label":"//frontend:bazel_semver_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"115"}]}]}} +{"id":{"progress":{"opaqueCount":262}},"children":[{"progress":{"opaqueCount":263}},{"namedSet":{"id":"116"}}],"progress":{}} +{"id":{"namedSet":{"id":"116"}},"namedSetOfFiles":{"files":[{"name":"build/bazel/remote/execution/v2/remote_execution.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/bazel_remote_apis+/build/bazel/remote/execution/v2/remote_execution.proto","digest":"ffc8bc43138b8d2fcc4603a41f97e98a4341cea75e10e8e38c92280e23a105fe","length":"110444"}]}} +{"id":{"targetCompleted":{"label":"//frontend:bazel_remote_execution_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"116"}]}]}} +{"id":{"progress":{"opaqueCount":263}},"children":[{"progress":{"opaqueCount":264}},{"namedSet":{"id":"117"}}],"progress":{}} +{"id":{"namedSet":{"id":"117"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_buildqueuestate_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_buildqueuestate_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9dc5b6ec0d8cd7f68c6f8129b716e69803116b67a84829c8403b499d25b70989","length":"1476"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_buildqueuestate_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"117"}]}]}} +{"id":{"progress":{"opaqueCount":264}},"children":[{"progress":{"opaqueCount":265}},{"namedSet":{"id":"118"}}],"progress":{}} +{"id":{"namedSet":{"id":"118"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_fsac_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_fsac_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"33afa340262e1f2145e8408b32701c7f424f7df0a0c4e9064134eee4f2e221b1","length":"3960"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_fsac_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"118"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":265}},"children":[{"progress":{"opaqueCount":266}},{"namedSet":{"id":"119"}}],"progress":{}} +{"id":{"namedSet":{"id":"119"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_storage+/pkg/proto/iscc/_virtual_imports/iscc_proto/github.com/buildbarn/bb-storage/pkg/proto/iscc/iscc.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_storage+/pkg/proto/iscc/_virtual_imports/iscc_proto/github.com/buildbarn/bb-storage/pkg/proto/iscc/iscc.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9e55f087bb7db7cc2a534d58bed7d9a427435c31e8e2fba4d8085df2f3fb6ce3","length":"3663"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_iscc_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"119"}]}]}} +{"id":{"progress":{"opaqueCount":266}},"children":[{"progress":{"opaqueCount":267}},{"namedSet":{"id":"120"}}],"progress":{}} +{"id":{"namedSet":{"id":"120"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_iscc_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_iscc_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f31112330c5badc7c25ba252671166f5bf65a7b8c65143195e4596dc7e6df9f2","length":"1392"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_iscc_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"120"}]}]}} +{"id":{"progress":{"opaqueCount":267}},"children":[{"progress":{"opaqueCount":268}},{"namedSet":{"id":"121"}}],"progress":{}} +{"id":{"namedSet":{"id":"121"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_query_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_query_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"540911e38889065360b77581b7f2439f863e2245be3d47a7efad270a5192b376","length":"4005"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_query_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"121"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":268}},"children":[{"progress":{"opaqueCount":269}},{"namedSet":{"id":"122"}}],"progress":{}} +{"id":{"namedSet":{"id":"122"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_query_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_query_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"3a85e04a84ea8897feac62c1ced0c0b0e1b61fbb489cc7aac739d5ae9d72acf1","length":"1398"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_query_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"122"}]}]}} +{"id":{"progress":{"opaqueCount":269}},"children":[{"progress":{"opaqueCount":270}},{"namedSet":{"id":"123"}}],"progress":{}} +{"id":{"namedSet":{"id":"123"}},"namedSetOfFiles":{"files":[{"name":"external/protobuf+/src/google/protobuf/_virtual_imports/timestamp_proto/google/protobuf/timestamp.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/protobuf+/src/google/protobuf/_virtual_imports/timestamp_proto/google/protobuf/timestamp.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"79c9bb541fdd52214ca3d3a2c991e0dfec5bb2a9a05ba2e061e3fc68b460407d","length":"6600"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_timestamp_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"123"}]}]}} +{"id":{"progress":{"opaqueCount":270}},"children":[{"progress":{"opaqueCount":271}},{"namedSet":{"id":"124"}}],"progress":{}} +{"id":{"namedSet":{"id":"124"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_client_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_client_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f66c9aca24f9bea91d2df561c0aa54067837315c417c2472303fc22d73079544","length":"1292"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_client_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"124"}]}]}} +{"id":{"progress":{"opaqueCount":271}},"children":[{"progress":{"opaqueCount":272}},{"namedSet":{"id":"125"}}],"progress":{}} +{"id":{"namedSet":{"id":"125"}},"namedSetOfFiles":{"files":[{"name":"frontend/buildbarn_resourceusage_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/buildbarn_resourceusage_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c6ab7fbdc3444fb269d3aa9b2e26577070f167876ab7f250bc5c9dfd21348036","length":"4473"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_resourceusage_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"125"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":272}},"children":[{"progress":{"opaqueCount":273}},{"namedSet":{"id":"126"}}],"progress":{}} +{"id":{"namedSet":{"id":"126"}},"namedSetOfFiles":{"files":[{"name":"external/com_github_buildbarn_bb_remote_execution+/pkg/proto/resourceusage/_virtual_imports/resourceusage_proto/github.com/buildbarn/bb-remote-execution/pkg/proto/resourceusage/resourceusage.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/com_github_buildbarn_bb_remote_execution+/pkg/proto/resourceusage/_virtual_imports/resourceusage_proto/github.com/buildbarn/bb-remote-execution/pkg/proto/resourceusage/resourceusage.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"5c769183b4b971e3fca9a91b8108e320f8211fa5c3b0ef113d5746f3e9d0fe6e","length":"4085"}]}} +{"id":{"targetCompleted":{"label":"//frontend:buildbarn_resourceusage_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"126"}]}]}} +{"id":{"progress":{"opaqueCount":273}},"children":[{"progress":{"opaqueCount":274}},{"namedSet":{"id":"127"}}],"progress":{}} +{"id":{"namedSet":{"id":"127"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_duration_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_duration_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"37614f0236bbc3e9b5fbf7eaa12836afd644eee2b3cf7cc2ecc636ef0dc9def4","length":"3759"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_duration_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"127"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":274}},"children":[{"progress":{"opaqueCount":275}},{"namedSet":{"id":"128"}}],"progress":{}} +{"id":{"namedSet":{"id":"128"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_duration_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_duration_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"941691122ccb87a32a8e7bf246d2a71c8512f95e54ec88f6861003c226625fd3","length":"1356"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_duration_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"128"}]}]}} +{"id":{"progress":{"opaqueCount":275}},"children":[{"progress":{"opaqueCount":276}},{"namedSet":{"id":"129"}}],"progress":{}} +{"id":{"namedSet":{"id":"129"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_wrappers_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_wrappers_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"443b283a68197be0bb823e133123894986b85690d2d743e177b2f8da5bffc6be","length":"1356"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_wrappers_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"129"}]}]}} +{"id":{"progress":{"opaqueCount":276}},"children":[{"progress":{"opaqueCount":277}},{"namedSet":{"id":"130"}}],"progress":{}} +{"id":{"namedSet":{"id":"130"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_wrappers_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_wrappers_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"57d19fec49b8aca9db93c586dd84591d9ac6197a6b652235f3c1235c8dd40bb0","length":"3759"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_wrappers_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"130"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":277}},"children":[{"progress":{"opaqueCount":278}},{"namedSet":{"id":"131"}}],"progress":{}} +{"id":{"namedSet":{"id":"131"}},"namedSetOfFiles":{"files":[{"name":"opentelemetry/proto/common/v1/common.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/opentelemetry-proto+/opentelemetry/proto/common/v1/common.proto","digest":"f9eba928880a84964aedf178c34d0ac6245eb4a520d7cab383f932b4bcbca4ad","length":"4692"}]}} +{"id":{"targetCompleted":{"label":"//frontend:opentelemetry_common_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"131"}]}]}} +{"id":{"progress":{"opaqueCount":278}},"children":[{"progress":{"opaqueCount":279}},{"namedSet":{"id":"132"}}],"progress":{}} +{"id":{"namedSet":{"id":"132"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_code_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_code_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6feb8c6e3eecbb48d2780e7f462b2a0dd337b1936f9e6271818d86e6458640d0","length":"3313"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_code_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"132"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":279}},"children":[{"progress":{"opaqueCount":280}},{"namedSet":{"id":"133"}}],"progress":{}} +{"id":{"namedSet":{"id":"133"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_code_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_code_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"3bcaf5712a2377b4a5a84a656e523a60593a3e67af4ff79097a659074c4673ed","length":"1288"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_code_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"133"}]}]}} +{"id":{"progress":{"opaqueCount":280}},"children":[{"progress":{"opaqueCount":281}},{"namedSet":{"id":"134"}}],"progress":{}} +{"id":{"namedSet":{"id":"134"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_bytestream_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_bytestream_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0a974727ae7a1c5f891fd2242ed4fd339c5d7d1e47dfe2726ab5592d5f5bbcf0","length":"1314"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_bytestream_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"134"}]}]}} +{"id":{"progress":{"opaqueCount":281}},"children":[{"progress":{"opaqueCount":282}},{"namedSet":{"id":"135"}}],"progress":{}} +{"id":{"namedSet":{"id":"135"}},"namedSetOfFiles":{"files":[{"name":"google/api/client.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/api/client.proto","digest":"a5a13ea853fcb58095c645506dadc174fc200185973b2804af679c30ecf7399d","length":"17312"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_client_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"135"}]}]}} +{"id":{"progress":{"opaqueCount":282}},"children":[{"progress":{"opaqueCount":283}},{"namedSet":{"id":"136"}}],"progress":{}} +{"id":{"namedSet":{"id":"136"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_any_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_any_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ab91f0f87ea0ca312a0f23cdc53fea1284ce557b43feb103e8b5dce410936277","length":"3634"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_any_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"136"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":283}},"children":[{"progress":{"opaqueCount":284}},{"namedSet":{"id":"137"}}],"progress":{}} +{"id":{"namedSet":{"id":"137"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_any_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_any_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a80ee2a701441c5ddeee417e136f007fb360fe8150bf31d704b07a201eed44b7","length":"1341"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_any_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"137"}]}]}} +{"id":{"progress":{"opaqueCount":284}},"children":[{"progress":{"opaqueCount":285}},{"namedSet":{"id":"138"}}],"progress":{}} +{"id":{"namedSet":{"id":"138"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_status_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_status_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"b3906a649ee42186d93f9c49c3e5b04150bef592f5be1741120347d7c48eb4bd","length":"1292"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_status_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"138"}]}]}} +{"id":{"progress":{"opaqueCount":285}},"children":[{"progress":{"opaqueCount":286}},{"namedSet":{"id":"139"}}],"progress":{}} +{"id":{"namedSet":{"id":"139"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_http_proto_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_http_proto_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6709ef33ecb1c27009f2ba6d1cca5a756b2c4117a13f55ca1a0595f50f4c7fb6","length":"1288"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_http_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"139"}]}]}} +{"id":{"progress":{"opaqueCount":286}},"children":[{"progress":{"opaqueCount":287}},{"namedSet":{"id":"140"}}],"progress":{}} +{"id":{"namedSet":{"id":"140"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_field_behavior_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_field_behavior_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ac00000eaa85ecf3f040b41387e00b0b1c644c86facc063ac0da2db513407aa2","length":"3503"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_field_behavior_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"140"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":287}},"children":[{"progress":{"opaqueCount":288}},{"namedSet":{"id":"141"}}],"progress":{}} +{"id":{"namedSet":{"id":"141"}},"namedSetOfFiles":{"files":[{"name":"frontend/google_annotations_proto_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/frontend/google_annotations_proto_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"833e3e8624d7a43528a7839df8b193858acf73f3c1fe222f64131c1523cdbfc2","length":"3446"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_annotations_proto_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"141"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":288}},"children":[{"progress":{"opaqueCount":289}},{"namedSet":{"id":"142"}}],"progress":{}} +{"id":{"namedSet":{"id":"142"}},"namedSetOfFiles":{"files":[{"name":"google/api/annotations.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/external/googleapis+/google/api/annotations.proto","digest":"e79ea741cb605a65e78ca322174764a4af9fde1962c1631e12b84c4934ba9a6c","length":"1045"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_annotations_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"142"}]}]}} +{"id":{"progress":{"opaqueCount":289}},"children":[{"progress":{"opaqueCount":290}},{"namedSet":{"id":"143"}}],"progress":{}} +{"id":{"namedSet":{"id":"143"}},"namedSetOfFiles":{"files":[{"name":"external/protobuf+/src/google/protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/external/protobuf+/src/google/protobuf/_virtual_imports/descriptor_proto/google/protobuf/descriptor.proto","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"826dd555e98d16a8360edcaae83778057f0a583ea7059e59d2d838096f912918","length":"57928"}]}} +{"id":{"targetCompleted":{"label":"//frontend:google_descriptor_proto_src","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"143"}]}]}} +{"id":{"progress":{"opaqueCount":290}},"children":[{"progress":{"opaqueCount":291}},{"namedSet":{"id":"144"}}],"progress":{}} +{"id":{"namedSet":{"id":"144"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_proto-descriptor-set.proto.bin","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_proto-descriptor-set.proto.bin","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"16710bd1c756c9325bd7e1c2a79bc2ab49720c2603f8ac4755c77f6a5cf459f8","length":"560"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"144"}]}]}} +{"id":{"progress":{"opaqueCount":291}},"children":[{"progress":{"opaqueCount":292}},{"namedSet":{"id":"145"}}],"progress":{}} +{"id":{"namedSet":{"id":"145"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"4cc0c61bbd7f09f0b66f9301b91bf6ad5dec0bcf4029337103a949842119820b","length":"4484"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"145"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":292}},"children":[{"progress":{"opaqueCount":293}},{"namedSet":{"id":"146"}}],"progress":{}} +{"id":{"namedSet":{"id":"146"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_go_proto_/github.com/bazelbuild/bazel/src/main/java/com/google/devtools/build/lib/packages/metrics/package_load_metrics.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_go_proto_/github.com/bazelbuild/bazel/src/main/java/com/google/devtools/build/lib/packages/metrics/package_load_metrics.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ec4c8cbe8f9ddfaccda3af23c57ac67bde88667550fe5f36eda8df6f90c71a17","length":"8468"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"146"}]}]}} +{"id":{"progress":{"opaqueCount":293}},"children":[{"progress":{"opaqueCount":294}},{"namedSet":{"id":"147"}}],"progress":{}} +{"id":{"namedSet":{"id":"147"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_proto-descriptor-set.proto.bin","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_proto-descriptor-set.proto.bin","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"053a10bef361305a37e35e383634f75bf56fc1835f59de1b184835548b51b518","length":"37132"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"147"}]}]}} +{"id":{"progress":{"opaqueCount":294}},"children":[{"progress":{"opaqueCount":295}},{"namedSet":{"id":"148"}}],"progress":{}} +{"id":{"namedSet":{"id":"148"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_go_proto.a","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_go_proto.a","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"3ab7c38e854b30b2933e4f6dac72db31e9f3c763ebf5961c34e4fff643808777","length":"108330"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"148"}]}]}} +{"id":{"progress":{"opaqueCount":295}},"children":[{"progress":{"opaqueCount":296}},{"namedSet":{"id":"149"}}],"progress":{}} +{"id":{"namedSet":{"id":"149"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"3a18d4428d1c4be3552fb10da17ef17667ba2b50b49169c5443867ba7abda92e","length":"102342"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"149"}]}]}} +{"id":{"progress":{"opaqueCount":296}},"children":[{"progress":{"opaqueCount":297}},{"namedSet":{"id":"150"}}],"progress":{}} +{"id":{"namedSet":{"id":"150"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c917f01b1fea4f4b1878de008daa87ad83241ac3a3ddebfc1f5f33c926f1ceda","length":"403"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"150"}]}]}} +{"id":{"progress":{"opaqueCount":297}},"children":[{"progress":{"opaqueCount":298}},{"namedSet":{"id":"151"}}],"progress":{}} +{"id":{"namedSet":{"id":"151"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/metrics/package_load_metrics_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"98a27d6530934533783c519ff19ad34f0a4414aff935ae79afb4f093af28a9fa","length":"1454"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/metrics:package_load_metrics_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"151"}]}]}} +{"id":{"progress":{"opaqueCount":298}},"children":[{"progress":{"opaqueCount":299}},{"namedSet":{"id":"152"}}],"progress":{}} +{"id":{"namedSet":{"id":"152"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream_proto-descriptor-set.proto.bin","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream_proto-descriptor-set.proto.bin","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"4041e0e63f51bbab5efe879c3733e9def52743969da49a29bde588e76a7ea073","length":"23803"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"152"}]}]}} +{"id":{"progress":{"opaqueCount":299}},"children":[{"progress":{"opaqueCount":300}},{"namedSet":{"id":"153"}}],"progress":{}} +{"id":{"namedSet":{"id":"153"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"db769d5c1ce5956b383b48ab9ae55a86935e2b79402e5229f33c1ac2e9f31c25","length":"1446"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"153"}]}]}} +{"id":{"progress":{"opaqueCount":300}},"children":[{"progress":{"opaqueCount":301}},{"namedSet":{"id":"154"}}],"progress":{}} +{"id":{"namedSet":{"id":"154"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"e593a1e18620b09116a6be934d2361456b262adefd6559b4a538a77c26ee029e","length":"397"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"154"}]}]}} +{"id":{"progress":{"opaqueCount":301}},"children":[{"progress":{"opaqueCount":302}},{"namedSet":{"id":"155"}}],"progress":{}} +{"id":{"namedSet":{"id":"155"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f7f19ac2e615325ee548b6c00f31c49523c08da94fe07dfd341d2c3933727f8c","length":"4394"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"155"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":302}},"children":[{"progress":{"opaqueCount":303}},{"namedSet":{"id":"156"}}],"progress":{}} +{"id":{"namedSet":{"id":"156"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream_go_proto_/github.com/bazelbuild/bazel/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream_go_proto_/github.com/bazelbuild/bazel/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0e6baf46b5e243fb8b33262710cd2eb2ee6d87e140110442fc350462e40b8332","length":"312018"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"156"}]}]}} +{"id":{"progress":{"opaqueCount":303}},"children":[{"progress":{"opaqueCount":304}},{"namedSet":{"id":"157"}}],"progress":{"stderr":"[2,789 / 3,118] GoCompilePkg pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf.a; 0s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"157"}},"namedSetOfFiles":{"files":[{"name":"internal/database/embedded/embedded.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/embedded/embedded.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f6006f5c71bd60cec08e39f184ab8c17d6c6fe798d1dca1bde92bf7853aab2d1","length":"113262"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/embedded:embedded","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"157"}]}]}} +{"id":{"progress":{"opaqueCount":304}},"children":[{"progress":{"opaqueCount":305}},{"namedSet":{"id":"158"}}],"progress":{}} +{"id":{"namedSet":{"id":"158"}},"namedSetOfFiles":{"files":[{"name":"cmd/bb_export_schema/bb_export_schema_lib.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/cmd/bb_export_schema/bb_export_schema_lib.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ab616f3a990f91ec3457ed2603d9b4f3753abd7cf3d26142f6f6b548973f93bc","length":"42080"}]}} +{"id":{"targetCompleted":{"label":"//cmd/bb_export_schema:bb_export_schema_lib","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"158"}]}]}} +{"id":{"progress":{"opaqueCount":305}},"children":[{"progress":{"opaqueCount":306}},{"namedSet":{"id":"159"}}],"progress":{}} +{"id":{"namedSet":{"id":"159"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream_go_proto.a","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream_go_proto.a","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"489c2b3e6221dc87855b197d624588cc590804028cceb722b6ee2a6f1b5a949d","length":"3212642"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"159"}]}]}} +{"id":{"progress":{"opaqueCount":306}},"children":[{"progress":{"opaqueCount":307}},{"namedSet":{"id":"160"}}],"progress":{}} +{"id":{"namedSet":{"id":"160"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6f83d2b0b4fab710bde8888413d98768e94308d1f755f02719a6ee1f92a8a0e1","length":"421290"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"160"}]}]}} +{"id":{"progress":{"opaqueCount":307}},"children":[{"progress":{"opaqueCount":308}},{"namedSet":{"id":"161"}}],"progress":{"stderr":"[2,825 / 3,118] GoLink cmd/bb_export_schema/bb_export_schema_/bb_export_schema; 0s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"161"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/bes/build_event_stream.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/bes/build_event_stream.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c8717ed3df34a942538b7aa90bedec90ef29d4c61529c1f5fdca0fa44d9677d4","length":"468300"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/bes:build_event_stream","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"161"}]}]}} +{"id":{"progress":{"opaqueCount":308}},"children":[{"progress":{"opaqueCount":309}},{"namedSet":{"id":"162"}}],"progress":{"stderr":"[2,844 / 3,118] GoLink cmd/bb_export_schema/bb_export_schema_/bb_export_schema; 1s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"162"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto.a","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto.a","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c315f8ce74a751caf1c4f2b9265f7496640e4e524fa5a544390d8776c2d2e311","length":"5145440"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"162"}]}]}} +{"id":{"progress":{"opaqueCount":309}},"children":[{"progress":{"opaqueCount":310}},{"namedSet":{"id":"163"}}],"progress":{}} +{"id":{"namedSet":{"id":"163"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/command_line_generated.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/command_line_generated.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ad5c9c4c42a3f12dd9d475609c4f73c31dff9df11112e3d3ae1eb7ebcf186bc2","length":"13901"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"163"}]}]}} +{"id":{"progress":{"opaqueCount":310}},"children":[{"progress":{"opaqueCount":311}},{"namedSet":{"id":"164"}}],"progress":{}} +{"id":{"namedSet":{"id":"164"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/command_line_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/command_line_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"02827452e1cb3e9afa3a59851c951ab03085045b03570bb1c049ed9e194fd48f","length":"1330"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"164"}]}]}} +{"id":{"progress":{"opaqueCount":311}},"children":[{"progress":{"opaqueCount":312}},{"namedSet":{"id":"165"}}],"progress":{}} +{"id":{"namedSet":{"id":"165"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/command_line_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/command_line_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"273fb6500b6af43eed412f92cb544538e0c2223a868ae00d3f3b927bafab3b64","length":"3691"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:command_line_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"165"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":312}},"children":[{"progress":{"opaqueCount":313}},{"namedSet":{"id":"166"}}],"progress":{}} +{"id":{"namedSet":{"id":"166"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/option_filters_generated.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/option_filters_generated.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"934e5387bb39671c6a3768620040d1673f5952c54e5f4310f7fecf9b12e6e70d","length":"8919"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"166"}]}]}} +{"id":{"progress":{"opaqueCount":313}},"children":[{"progress":{"opaqueCount":314}},{"namedSet":{"id":"167"}}],"progress":{}} +{"id":{"namedSet":{"id":"167"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/option_filters_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/option_filters_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6f1996a9b98850842129af23f979241960f0bb1fbe779b132628b8d65ab0ecf7","length":"3729"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"167"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":314}},"children":[{"progress":{"opaqueCount":315}},{"namedSet":{"id":"168"}}],"progress":{}} +{"id":{"namedSet":{"id":"168"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/option_filters_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/option_filters_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d2189a5c2a3387ea3a7c4df5e81108e7dcde5ae3a75296e42ba4fc10985c8400","length":"1334"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:option_filters_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"168"}]}]}} +{"id":{"progress":{"opaqueCount":315}},"children":[{"progress":{"opaqueCount":316}},{"namedSet":{"id":"169"}}],"progress":{}} +{"id":{"namedSet":{"id":"169"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/action_cache_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/action_cache_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"98c20598141ab35f6fae0459299be577cfaf4c60253a1833cc34aca4a39a55d5","length":"3691"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"169"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":316}},"children":[{"progress":{"opaqueCount":317}},{"namedSet":{"id":"170"}}],"progress":{}} +{"id":{"namedSet":{"id":"170"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/action_cache_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/action_cache_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"8bf4b84ce865151a6aad87a565051e5b1c55ba742fc6b8859614fc40d7556f81","length":"1330"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"170"}]}]}} +{"id":{"progress":{"opaqueCount":317}},"children":[{"progress":{"opaqueCount":318}},{"namedSet":{"id":"171"}}],"progress":{}} +{"id":{"namedSet":{"id":"171"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/action_cache_generated.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/action_cache_generated.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d4a0528dcce5b832c16e4af33f44cf18bcfac37cc977f30588c1e142de4a5cf1","length":"11831"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:action_cache_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"171"}]}]}} +{"id":{"progress":{"opaqueCount":318}},"children":[{"progress":{"opaqueCount":319}},{"namedSet":{"id":"172"}}],"progress":{}} +{"id":{"namedSet":{"id":"172"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/failure_details_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/failure_details_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"046800ea547e537ddc3127c41d40d4da796feaac1125601c758f356e22fccf05","length":"1336"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"172"}]}]}} +{"id":{"progress":{"opaqueCount":319}},"children":[{"progress":{"opaqueCount":320}},{"namedSet":{"id":"173"}}],"progress":{}} +{"id":{"namedSet":{"id":"173"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/failure_details_generated.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/failure_details_generated.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"207b1f30ce41dd3e5cde9ce5f750cb19f431b0f3ba1b573045ff8a65f233fdf1","length":"359082"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"173"}]}]}} +{"id":{"progress":{"opaqueCount":320}},"children":[{"progress":{"opaqueCount":321}},{"namedSet":{"id":"174"}}],"progress":{}} +{"id":{"namedSet":{"id":"174"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/failure_details_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/failure_details_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"5560c036cd0e2fa6deaf9a500ea040d9cdb6298713f9fd92df385c06b19a8012","length":"3748"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:failure_details_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"174"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":321}},"children":[{"progress":{"opaqueCount":322}},{"namedSet":{"id":"175"}}],"progress":{}} +{"id":{"namedSet":{"id":"175"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/invocation_policy_pb_go_test-test.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/invocation_policy_pb_go_test-test.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"7e861dcbdfff0b271d3a170a3b8dd9b9ee3a63f81a6226c82fface12aa4f78de","length":"3786"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"175"}]}],"tag":["small","short","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":322}},"children":[{"progress":{"opaqueCount":323}},{"namedSet":{"id":"176"}}],"progress":{}} +{"id":{"namedSet":{"id":"176"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/invocation_policy_generated.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/invocation_policy_generated.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9ef381b583c09b3f2fd71351d4e57b6041032798381bfeba4721f48ff846adec","length":"21710"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"176"}]}]}} +{"id":{"progress":{"opaqueCount":323}},"children":[{"progress":{"opaqueCount":324}},{"namedSet":{"id":"177"}}],"progress":{}} +{"id":{"namedSet":{"id":"177"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"526cf979ce7a31695d2aa90d5354604da6d9669621b463fdd8c5156a1afaf397","length":"682"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"177"}]}]}} +{"id":{"progress":{"opaqueCount":324}},"children":[{"progress":{"opaqueCount":325}},{"namedSet":{"id":"178"}}],"progress":{}} +{"id":{"namedSet":{"id":"178"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/invocation_policy_pb_go_update.sh","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/invocation_policy_pb_go_update.sh","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"cb554e592a70be53b25138327073e650df383dad017dc468c736cc8a8c5470b5","length":"1340"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:invocation_policy_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"178"}]}]}} +{"id":{"progress":{"opaqueCount":325}},"children":[{"progress":{"opaqueCount":326}},{"namedSet":{"id":"179"}}],"progress":{}} +{"id":{"namedSet":{"id":"179"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/action_cache.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/action_cache.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d4a0528dcce5b832c16e4af33f44cf18bcfac37cc977f30588c1e142de4a5cf1","length":"11831"},{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/command_line.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/command_line.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"ad5c9c4c42a3f12dd9d475609c4f73c31dff9df11112e3d3ae1eb7ebcf186bc2","length":"13901"},{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/failure_details.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/failure_details.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"207b1f30ce41dd3e5cde9ce5f750cb19f431b0f3ba1b573045ff8a65f233fdf1","length":"359082"},{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/invocation_policy.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/invocation_policy.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"9ef381b583c09b3f2fd71351d4e57b6041032798381bfeba4721f48ff846adec","length":"21710"},{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/option_filters.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/option_filters.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"934e5387bb39671c6a3768620040d1673f5952c54e5f4310f7fecf9b12e6e70d","length":"8919"},{"name":"pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/strategy_policy.pb.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/bazelbuild/bazel/protobuf/src_main_protobuf_go_proto_/github.com/bazelbuild/bazel/src/main/protobuf/strategy_policy.pb.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"2d020ce9c2670e017bcd9ad5aa29c999577445545dde8e7ae3d7cdd0333561d2","length":"9381"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/bazelbuild/bazel/protobuf:src_main_protobuf_go_proto_pb_go","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"179"}]}]}} +{"id":{"progress":{"opaqueCount":326}},"children":[{"progress":{"opaqueCount":327}},{"namedSet":{"id":"180"}}],"progress":{"stderr":"[2,895 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_envoyproxy_go_control_plane_envoy/type/matcher/v3/matcher.a; 0s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"180"}},"namedSetOfFiles":{"files":[{"name":"cmd/bb_export_schema/bb_export_schema_/bb_export_schema","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/cmd/bb_export_schema/bb_export_schema_/bb_export_schema","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a2739dfd00411f7fb6b52afcd4b22acfbc86f10adca8cc35ec9f93db87b1cca9","length":"26550056"}]}} +{"id":{"targetCompleted":{"label":"//cmd/bb_export_schema:bb_export_schema","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"180"}]}]}} +{"id":{"progress":{"opaqueCount":327}},"children":[{"progress":{"opaqueCount":328}},{"namedSet":{"id":"181"}}],"progress":{}} +{"id":{"namedSet":{"id":"181"}},"namedSetOfFiles":{"files":[{"name":"tools/reformat.sh","uri":"file:///home/runner/work/bb-portal/bb-portal/tools/reformat.sh","digest":"de2a05ba997abb0845d4f90a296c058b3d1aa774b093d8938fe14d95782d1718","length":"3633"},{"name":"tools/reformat","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/tools/reformat","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"de2a05ba997abb0845d4f90a296c058b3d1aa774b093d8938fe14d95782d1718","length":"3633"}]}} +{"id":{"targetCompleted":{"label":"//tools:reformat","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"181"}]}]}} +{"id":{"progress":{"opaqueCount":328}},"children":[{"progress":{"opaqueCount":329}},{"namedSet":{"id":"182"}}],"progress":{}} +{"id":{"namedSet":{"id":"182"}},"namedSetOfFiles":{"files":[{"name":"test/testutils/testutils.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/test/testutils/testutils.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a21659d358d5a862cc6a05fff4d3ca306ab298d47eb515cc3dbb2976a8f7d6e5","length":"1905540"}]}} +{"id":{"targetCompleted":{"label":"//test/testutils:testutils","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"182"}]}]}} +{"id":{"progress":{"opaqueCount":329}},"children":[{"progress":{"opaqueCount":330}},{"namedSet":{"id":"183"}}],"progress":{}} +{"id":{"namedSet":{"id":"183"}},"namedSetOfFiles":{"files":[{"name":"internal/database/database.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/database.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a34462d78299ff56ba080c03106d4e3dcbcf39d4fb3daab212d2a25f299d1f79","length":"1878756"}]}} +{"id":{"targetCompleted":{"label":"//internal/database:database","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"183"}]}]}} +{"id":{"progress":{"opaqueCount":330}},"children":[{"progress":{"opaqueCount":331}},{"namedSet":{"id":"184"}}],"progress":{"stderr":"[2,915 / 3,118] GoLink internal/mock/util_gomock_prog_bin_/util_gomock_prog_bin [for tool]; 1s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"184"}},"namedSetOfFiles":{"files":[{"name":"internal/mock/util.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/mock/util.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6c5e58dff6baaca51a674fe4cd547ae369deb816d87c42372d7a795eb5c3cbd8","length":"1670"}]}} +{"id":{"targetCompleted":{"label":"//internal/mock:util","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"184"}]}]}} +{"id":{"progress":{"opaqueCount":331}},"children":[{"progress":{"opaqueCount":332}},{"namedSet":{"id":"185"}}],"progress":{"stderr":"[2,939 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_envoyproxy_go_control_plane_envoy/config/core/v3/core.a; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[2,963 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_envoyproxy_go_control_plane_envoy/config/core/v3/core.a; 2s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"185"}},"namedSetOfFiles":{"files":[{"name":"internal/mock/buildqueuestate.go","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/mock/buildqueuestate.go","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"fea645f171521ac6201cda57708b2ee1b7921aef13ffd88422f3ae6cc02b14d4","length":"11316"}]}} +{"id":{"targetCompleted":{"label":"//internal/mock:buildqueuestate","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"185"}]}]}} +{"id":{"progress":{"opaqueCount":332}},"children":[{"progress":{"opaqueCount":333}},{"namedSet":{"id":"186"}}],"progress":{}} +{"id":{"namedSet":{"id":"186"}},"namedSetOfFiles":{"files":[{"name":"internal/mock/mock.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/mock/mock.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"a72c6139799062c8778cd0584cb68ab80f9b4f65cd959eec2ceb3f4fa7a95532","length":"330160"}]}} +{"id":{"targetCompleted":{"label":"//internal/mock:mock","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"186"}]}]}} +{"id":{"progress":{"opaqueCount":333}},"children":[{"progress":{"opaqueCount":334}},{"namedSet":{"id":"187"}}],"progress":{"stderr":"[2,995 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_envoyproxy_go_control_plane_envoy/config/route/v3/route.a; 0s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"187"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/configuration/bb_portal/bb_portal_go_proto.a","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/configuration/bb_portal/bb_portal_go_proto.a","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bc4116e161ac7b0923a537b5db89b60944ae7350f69f8f2f8af39698f45a2a55","length":"367262"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_go_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"187"}]}]}} +{"id":{"progress":{"opaqueCount":334}},"children":[{"progress":{"opaqueCount":335}},{"namedSet":{"id":"188"}}],"progress":{}} +{"id":{"namedSet":{"id":"188"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/configuration/bb_portal/bb_portal.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/configuration/bb_portal/bb_portal.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c674a481607b2aa5ad8ef150dcb20635b38ee9a8f4ed0cb56bb1b927167ec53f","length":"267500"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/configuration/bb_portal:bb_portal","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"188"}]}]}} +{"id":{"progress":{"opaqueCount":335}},"children":[{"progress":{"opaqueCount":336}},{"namedSet":{"id":"189"}}],"progress":{}} +{"id":{"namedSet":{"id":"189"}},"namedSetOfFiles":{"files":[{"name":"internal/database/common/common.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/common/common.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d579ee861de1d5dd7a87a4ef27af630f31d78a80fb09c8914c4bd20b924f3c07","length":"1969014"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/common:common","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"189"}]}]}} +{"id":{"progress":{"opaqueCount":336}},"children":[{"progress":{"opaqueCount":337}},{"namedSet":{"id":"190"}}],"progress":{"stderr":"[3,007 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_envoyproxy_go_control_plane_envoy/config/route/v3/route.a; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[3,019 / 3,118] GoLink pkg/authmetadataextraction/authmetadataextraction_test_/authmetadataextraction_test; 1s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"190"}},"namedSetOfFiles":{"files":[{"name":"internal/api/common/common_test_/common_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/common/common_test_/common_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"046070f823a018d56dda7e345ddba832d976701be5f4d163975799cfcb2624fd","length":"15068904"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/common:common_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"190"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":337}},"children":[{"progress":{"opaqueCount":338}},{"namedSet":{"id":"191"}}],"progress":{}} +{"id":{"namedSet":{"id":"191"}},"namedSetOfFiles":{"files":[{"name":"pkg/authmetadataextraction/authmetadataextraction_test_/authmetadataextraction_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/authmetadataextraction/authmetadataextraction_test_/authmetadataextraction_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"6ffce3d8ddc5aab4be9f598443eaf533e5c0508cd1d1df5df899b222f1525e66","length":"15908104"}]}} +{"id":{"targetCompleted":{"label":"//pkg/authmetadataextraction:authmetadataextraction_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"191"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":338}},"children":[{"progress":{"opaqueCount":339}},{"namedSet":{"id":"192"}}],"progress":{}} +{"id":{"namedSet":{"id":"192"}},"namedSetOfFiles":{"files":[{"name":"pkg/authmetadataextraction/authmetadataextraction.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/authmetadataextraction/authmetadataextraction.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"38d63e2214d81664c8dd9b228265708f2eb08fddafddb0781bfca862cf1575df","length":"147094"}]}} +{"id":{"targetCompleted":{"label":"//pkg/authmetadataextraction:authmetadataextraction","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"192"}]}]}} +{"id":{"progress":{"opaqueCount":339}},"children":[{"progress":{"opaqueCount":340}},{"namedSet":{"id":"193"}}],"progress":{}} +{"id":{"namedSet":{"id":"193"}},"namedSetOfFiles":{"files":[{"name":"pkg/proto/configuration/bb_portal/bb_portal_proto-descriptor-set.proto.bin","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/pkg/proto/configuration/bb_portal/bb_portal_proto-descriptor-set.proto.bin","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bd065283e09ea7c94278db67b0cf1cbb616b97239f30a73dbd34ff4a37191650","length":"4164"}]}} +{"id":{"targetCompleted":{"label":"//pkg/proto/configuration/bb_portal:bb_portal_proto","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"193"}]}]}} +{"id":{"progress":{"opaqueCount":340}},"children":[{"progress":{"opaqueCount":341}},{"namedSet":{"id":"194"}}],"progress":{"stderr":"[3,036 / 3,118] GoCompilePkg external/gazelle++go_deps+com_github_envoyproxy_go_control_plane_envoy/config/cluster/v3/cluster.a; 0s processwrapper-sandbox ... (4 actions, 3 running)\n[3,046 / 3,118] GoLink internal/api/grpcweb/buildqueuestateproxy/buildqueuestateproxy_test_/buildqueuestateproxy_test; 0s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"194"}},"namedSetOfFiles":{"files":[{"name":"internal/database/dbauthservice/dbauthservice.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/dbauthservice/dbauthservice.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f3c67d379e516ae9a47d87b2a2fc784f6464cb0b7630106229d348711dbc81ff","length":"1952412"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/dbauthservice:dbauthservice","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"194"}]}]}} +{"id":{"progress":{"opaqueCount":341}},"children":[{"progress":{"opaqueCount":342}},{"namedSet":{"id":"195"}}],"progress":{}} +{"id":{"namedSet":{"id":"195"}},"namedSetOfFiles":{"files":[{"name":"internal/api/grpcweb/buildqueuestateproxy/buildqueuestateproxy.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/grpcweb/buildqueuestateproxy/buildqueuestateproxy.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"2bf627b1bb529dee6b6b363fa98cb51de7f33baeaf5b949707f1180738d6567e","length":"393148"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"195"}]}]}} +{"id":{"progress":{"opaqueCount":342}},"children":[{"progress":{"opaqueCount":343}},{"namedSet":{"id":"196"}}],"progress":{}} +{"id":{"namedSet":{"id":"196"}},"namedSetOfFiles":{"files":[{"name":"ent/authschema/authschema.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/authschema/authschema.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"bb3797ef2eb15b36f6f6a8e6791add47dd9423740728537e2e061c99fabbbb07","length":"184068"}]}} +{"id":{"targetCompleted":{"label":"//ent/authschema:authschema","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"196"}]}]}} +{"id":{"progress":{"opaqueCount":343}},"children":[{"progress":{"opaqueCount":344}},{"namedSet":{"id":"197"}}],"progress":{}} +{"id":{"namedSet":{"id":"197"}},"namedSetOfFiles":{"files":[{"name":"internal/api/grpcweb/buildqueuestateproxy/buildqueuestateproxy_test_/buildqueuestateproxy_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/grpcweb/buildqueuestateproxy/buildqueuestateproxy_test_/buildqueuestateproxy_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0e0834d977fa0b5c031e8572fef7ca5be37d33be1e010c859a9a46f20b4e0934","length":"15831144"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/grpcweb/buildqueuestateproxy:buildqueuestateproxy_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"197"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":344}},"children":[{"progress":{"opaqueCount":345}},{"namedSet":{"id":"198"}}],"progress":{}} +{"id":{"namedSet":{"id":"198"}},"namedSetOfFiles":{"files":[{"name":"internal/api/common/common.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/common/common.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"10553e410b963e3516166641c9bf4150323f233a69402dc064aaa1dbf5455800","length":"193626"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/common:common","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"198"}]}]}} +{"id":{"progress":{"opaqueCount":345}},"children":[{"progress":{"opaqueCount":346}},{"namedSet":{"id":"199"}}],"progress":{}} +{"id":{"namedSet":{"id":"199"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/runtime/runtime.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/runtime/runtime.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"3f5a68cc30b5c6c611250f9789f919ec1322ee6988a3ef2c71b8175fdfacb5e2","length":"53774"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/runtime:runtime","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"199"}]}]}} +{"id":{"progress":{"opaqueCount":346}},"children":[{"progress":{"opaqueCount":347}},{"namedSet":{"id":"200"}}],"progress":{"stderr":"[3,057 / 3,118] GoCompilePkg internal/database/buildeventrecorder/buildeventrecorder.a; 0s processwrapper-sandbox ... (4 actions running)\n"}} +{"id":{"namedSet":{"id":"200"}},"namedSetOfFiles":{"files":[{"name":"ent/gen/ent/enttest/enttest.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/gen/ent/enttest/enttest.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"c794bd6e720d48e994c9d84281aeaf3d4c07e6cb24a9dd9b1fff0964ab54e758","length":"1884838"}]}} +{"id":{"targetCompleted":{"label":"//ent/gen/ent/enttest:enttest","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"200"}]}]}} +{"id":{"progress":{"opaqueCount":347}},"children":[{"progress":{"opaqueCount":348}},{"namedSet":{"id":"201"}}],"progress":{"stderr":"[3,066 / 3,118] GoLink internal/database/dbauthservice/dbauthservice_test_/dbauthservice_test; 0s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"201"}},"namedSetOfFiles":{"files":[{"name":"internal/api/http/loghandler/loghandler.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/http/loghandler/loghandler.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"f00c6f82913d4f338ddc515f8e2f99bcd90eef0c14f21e6943909f50cc5511a1","length":"1994350"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/http/loghandler:loghandler","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"201"}]}]}} +{"id":{"progress":{"opaqueCount":348}},"children":[{"progress":{"opaqueCount":349}},{"namedSet":{"id":"202"}}],"progress":{"stderr":"[3,072 / 3,118] GoLink internal/database/dbauthservice/dbauthservice_test_/dbauthservice_test; 1s processwrapper-sandbox ... (4 actions, 3 running)\n[3,077 / 3,118] GoLink internal/database/dbauthservice/dbauthservice_test_/dbauthservice_test; 3s processwrapper-sandbox ... (4 actions, 3 running)\n"}} +{"id":{"namedSet":{"id":"202"}},"namedSetOfFiles":{"files":[{"name":"internal/database/dbauthservice/dbauthservice_test_/dbauthservice_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/dbauthservice/dbauthservice_test_/dbauthservice_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"fda8f42c362aaa71623aed12956fbaf921ed167c3bdb4abe4f4ace4dbfd846d0","length":"52461736"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/dbauthservice:dbauthservice_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"202"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":349}},"children":[{"progress":{"opaqueCount":350}},{"namedSet":{"id":"203"}}],"progress":{}} +{"id":{"namedSet":{"id":"203"}},"namedSetOfFiles":{"files":[{"name":"ent/authschema/authschema_test_/authschema_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/ent/authschema/authschema_test_/authschema_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"d251a8b086d7a0f4f6a73894df0678fd2f5db6717bcb7139821147c6eff92d42","length":"52444840"}]}} +{"id":{"targetCompleted":{"label":"//ent/authschema:authschema_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"203"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":350}},"children":[{"progress":{"opaqueCount":351}},{"namedSet":{"id":"204"}}],"progress":{}} +{"id":{"namedSet":{"id":"204"}},"namedSetOfFiles":{"files":[{"name":"internal/database/buildeventrecorder/buildeventrecorder.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/buildeventrecorder/buildeventrecorder.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"2cbad91da7f4495845167a14065bb5372ed7375967ebea4a0ea93770a4dbc004","length":"2343728"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/buildeventrecorder:buildeventrecorder","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"204"}]}]}} +{"id":{"progress":{"opaqueCount":351}},"children":[{"progress":{"opaqueCount":352}},{"namedSet":{"id":"205"}}],"progress":{}} +{"id":{"namedSet":{"id":"205"}},"namedSetOfFiles":{"files":[{"name":"internal/api/grpc/bes/bes.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/grpc/bes/bes.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"fd6d6a12c8a7c2e969fae57954f318b19cd2edf08820ef5f6ca6379681ca23ed","length":"2501196"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/grpc/bes:bes","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"205"}]}]}} +{"id":{"progress":{"opaqueCount":352}},"children":[{"progress":{"opaqueCount":353}},{"namedSet":{"id":"206"}}],"progress":{}} +{"id":{"namedSet":{"id":"206"}},"namedSetOfFiles":{"files":[{"name":"internal/database/dbcleanupservice/dbcleanupservice.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/dbcleanupservice/dbcleanupservice.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"44e326aa5fa280442c772e3c83ee539770e05f35f6547662e521a6bd8813346d","length":"2008918"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/dbcleanupservice:dbcleanupservice","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"206"}]}]}} +{"id":{"progress":{"opaqueCount":353}},"children":[{"progress":{"opaqueCount":354}},{"namedSet":{"id":"207"}}],"progress":{}} +{"id":{"namedSet":{"id":"207"}},"namedSetOfFiles":{"files":[{"name":"internal/api/http/bepuploader/bepuploader.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/http/bepuploader/bepuploader.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"56024c50a3e97e49acb4dcc1afc8a4176316400f03b9c240670d9902440bc4f4","length":"2276734"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/http/bepuploader:bepuploader","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"207"}]}]}} +{"id":{"progress":{"opaqueCount":354}},"children":[{"progress":{"opaqueCount":355}},{"namedSet":{"id":"208"}}],"progress":{"stderr":"[3,091 / 3,118] GoLink internal/database/dbcleanupservice/dbcleanupservice_test_/dbcleanupservice_test; 1s processwrapper-sandbox ... (3 actions, 2 running)\n[3,094 / 3,118] GoLink test/integrationtest/integrationtest_test_/integrationtest_test; 1s processwrapper-sandbox ... (3 actions, 2 running)\n"}} +{"id":{"namedSet":{"id":"208"}},"namedSetOfFiles":{"files":[{"name":"internal/database/dbcleanupservice/dbcleanupservice_test_/dbcleanupservice_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/database/dbcleanupservice/dbcleanupservice_test_/dbcleanupservice_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"287a244e4ab11a98eb6d401d72f30cfe143355fa4d1250c2e6cacce8c5cdfdd9","length":"56051016"}]}} +{"id":{"targetCompleted":{"label":"//internal/database/dbcleanupservice:dbcleanupservice_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"208"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":355}},"children":[{"progress":{"opaqueCount":356}},{"namedSet":{"id":"209"}}],"progress":{"stderr":"[3,097 / 3,118] GoLink test/integrationtest/integrationtest_test_/integrationtest_test; 2s processwrapper-sandbox ... (2 actions, 1 running)\n"}} +{"id":{"namedSet":{"id":"209"}},"namedSetOfFiles":{"files":[{"name":"test/integrationtest/integrationtest_test_/integrationtest_test","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/test/integrationtest/integrationtest_test_/integrationtest_test","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"982d2716029ec622b48e4454380c22e66814b39cfbcb56fafe6bfb2c8712dff1","length":"64749512"}]}} +{"id":{"targetCompleted":{"label":"//test/integrationtest:integrationtest_test","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"209"}]}],"tag":["medium","moderate","noflaky","nolocal"]}} +{"id":{"progress":{"opaqueCount":356}},"children":[{"progress":{"opaqueCount":357}},{"namedSet":{"id":"210"}}],"progress":{"stderr":"[3,111 / 3,118] GoCompilePkg external/com_github_buildbarn_bb_storage+/pkg/blobstore/configuration/configuration.a; 0s processwrapper-sandbox ... (2 actions, 1 running)\n"}} +{"id":{"namedSet":{"id":"210"}},"namedSetOfFiles":{"files":[{"name":"internal/api/servefiles/servefiles_lib.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/internal/api/servefiles/servefiles_lib.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0bacdd26ba318fdb83e1be5120ec2cb02ef5f70028d680b66e2e7d2f7baaa5cd","length":"281612"}]}} +{"id":{"targetCompleted":{"label":"//internal/api/servefiles:servefiles_lib","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"210"}]}]}} +{"id":{"progress":{"opaqueCount":357}},"children":[{"progress":{"opaqueCount":358}},{"namedSet":{"id":"211"}}],"progress":{}} +{"id":{"namedSet":{"id":"211"}},"namedSetOfFiles":{"files":[{"name":"cmd/bb_portal/bb_portal_lib.x","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/cmd/bb_portal/bb_portal_lib.x","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"318a57930e47e44281c3b8f4184e212b0e1521499a024d6a5d48f052cea509c4","length":"566922"}]}} +{"id":{"targetCompleted":{"label":"//cmd/bb_portal:bb_portal_lib","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"211"}]}]}} +{"id":{"progress":{"opaqueCount":358}},"children":[{"progress":{"opaqueCount":359}},{"namedSet":{"id":"212"}}],"progress":{"stderr":"[3,116 / 3,118] GoLink cmd/bb_portal/bb_portal_/bb_portal; 0s processwrapper-sandbox\n[3,117 / 3,118] [Prepa] runfiles for //cmd/bb_portal:bb_portal\n"}} +{"id":{"namedSet":{"id":"212"}},"namedSetOfFiles":{"files":[{"name":"cmd/bb_portal/bb_portal_/bb_portal","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/execroot/_main/bazel-out/k8-fastbuild/bin/cmd/bb_portal/bb_portal_/bb_portal","pathPrefix":["bazel-out","k8-fastbuild","bin"],"digest":"0e6a2c29a18936739866cd395f1796b5a42ddd509d9060f4d858b108b18c16e7","length":"96628616"}]}} +{"id":{"targetCompleted":{"label":"//cmd/bb_portal:bb_portal","configuration":{"id":"91e24984663c795f7d9f904758d4b84ba1954389b2ab756f70a6f32db2a79020"}}},"completed":{"success":true,"outputGroup":[{"name":"default","fileSets":[{"id":"212"}]}]}} +{"id":{"targetCompleted":{"label":"//tools:sqlc_macos","configuration":{"id":"55817e2200e2f24b506d68c96928ed7b9fa185d1fb462c4f511796269d8d06d4"}}},"aborted":{"reason":"SKIPPED","description":"Target //tools:sqlc_macos build was skipped."}} +{"id":{"progress":{"opaqueCount":359}},"children":[{"progress":{"opaqueCount":360}},{"convenienceSymlinksIdentified":{}}],"progress":{"stderr":"INFO: Found 215 targets...\n"}} +{"id":{"convenienceSymlinksIdentified":{}},"convenienceSymlinksIdentified":{"convenienceSymlinks":[{"path":"bazel-bin","action":"CREATE","target":"execroot/_main/bazel-out/k8-fastbuild/bin"},{"path":"bazel-testlogs","action":"CREATE","target":"execroot/_main/bazel-out/k8-fastbuild/testlogs"},{"path":"bazel-genfiles","action":"DELETE"},{"path":"bazel-out","action":"CREATE","target":"execroot/_main/bazel-out"},{"path":"bazel-bb-portal","action":"CREATE","target":"execroot/_main"}]}} +{"id":{"buildFinished":{}},"children":[{"buildToolLogs":{}},{"buildMetrics":{}}],"finished":{"overallSuccess":true,"finishTimeMillis":"1772525101660","exitCode":{"name":"SUCCESS"},"finishTime":"2026-03-03T08:05:01.660Z"}} +{"id":{"progress":{"opaqueCount":360}},"progress":{"stderr":"INFO: Elapsed time: 767.558s, Critical Path: 125.16s\nINFO: 3118 processes: 1131 internal, 22 local, 1965 processwrapper-sandbox.\nINFO: Build completed successfully, 3118 total actions\nINFO: \n"}} +{"id":{"buildToolLogs":{}},"buildToolLogs":{"log":[{"name":"elapsed time","contents":"NzY3LjU1ODAwMA\u003d\u003d"},{"name":"critical path","contents":"Q3JpdGljYWwgUGF0aDogMTI1LjE2cywgUmVtb3RlICgwLjAwJSBvZiB0aGUgdGltZSk6IFtwYXJzZTogMC4wMCUsIHF1ZXVlOiAwLjAwJSwgbmV0d29yazogMC4wMCUsIHVwbG9hZDogMC4wMCUsIHNldHVwOiAwLjAwJSwgcHJvY2VzczogMC4wMCUsIGZldGNoOiAwLjAwJSwgcmV0cnk6IDAuMDAlLCBwcm9jZXNzT3V0cHV0czogMC4wMCUsIG90aGVyOiAwLjAwJSwgaW5wdXQgZmlsZXM6IDAsIGlucHV0IGJ5dGVzOiAwLCBtZW1vcnkgYnl0ZXM6IDBdCiAgMC4wMHMgcnVuZmlsZXMgZm9yIC8vdGVzdC9pbnRlZ3JhdGlvbnRlc3Q6aW50ZWdyYXRpb250ZXN0X3Rlc3QKICAyLjg2cyBhY3Rpb24gJ0dvTGluayB0ZXN0L2ludGVncmF0aW9udGVzdC9pbnRlZ3JhdGlvbnRlc3RfdGVzdF8vaW50ZWdyYXRpb250ZXN0X3Rlc3QnCiAgMC4xM3MgYWN0aW9uICdHb0NvbXBpbGVQa2cgdGVzdC9pbnRlZ3JhdGlvbnRlc3QvaW50ZWdyYXRpb250ZXN0X3Rlc3R+dGVzdG1haW4uYScKICAwLjAycyBhY3Rpb24gJ0dvQ29tcGlsZVBrZ0V4dGVybmFsIHRlc3QvaW50ZWdyYXRpb250ZXN0L2ludGVncmF0aW9udGVzdF90ZXN0X3Rlc3QuZXh0ZXJuYWwuYScKICAwLjMxcyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyB0ZXN0L2ludGVncmF0aW9udGVzdC9pbnRlZ3JhdGlvbnRlc3RfdGVzdC5pbnRlcm5hbC5hJwogIDE0LjE3cyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBpbnRlcm5hbC9ncmFwaHFsL2dyYXBocWwuYScKICAzNS4xN3MgYWN0aW9uICdHb0NvbXBpbGVQa2cgZW50L2dlbi9lbnQvZW50LmEnCiAgMC42MnMgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytpb19lbnRnb19jb250cmliL2VudGdxbC9lbnRncWwuYScKICAwLjExcyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBleHRlcm5hbC9nYXplbGxlKytnb19kZXBzK2lvX2VudGdvX2VudC9lbnRjL2VudGMuYScKICAwLjEwcyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBleHRlcm5hbC9nYXplbGxlKytnb19kZXBzK2lvX2VudGdvX2VudC9lbnRjL2ludGVybmFsL2ludGVybmFsLmEnCiAgMS4wNnMgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytpb19lbnRnb19lbnQvZW50Yy9nZW4vZ2VuLmEnCiAgMC43MnMgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytpb19lbnRnb19lbnQvZGlhbGVjdC9zcWwvc2NoZW1hL3NjaGVtYS5hJwogIDEuMTVzIGFjdGlvbiAnR29Db21waWxlUGtnIGV4dGVybmFsL2dhemVsbGUrK2dvX2RlcHMraW9fYXJpZ2FfYXRsYXMvc3FsL3Bvc3RncmVzL3Bvc3RncmVzLmEnCiAgMC4zNnMgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytpb19hcmlnYV9hdGxhcy9zcWwvaW50ZXJuYWwvc3BlY3V0aWwvc3BlY3V0aWwuYScKICAwLjExcyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBleHRlcm5hbC9nYXplbGxlKytnb19kZXBzK2lvX2FyaWdhX2F0bGFzL3NxbC9zcWxzcGVjL3NxbHNwZWMuYScKICAwLjg4cyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBleHRlcm5hbC9nYXplbGxlKytnb19kZXBzK2lvX2FyaWdhX2F0bGFzL3NjaGVtYWhjbC9zY2hlbWFoY2wuYScKICAwLjE5cyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBleHRlcm5hbC9nYXplbGxlKytnb19kZXBzK2NvbV9naXRodWJfaGFzaGljb3JwX2hjbF92Mi9nb2hjbC9nb2hjbC5hJwogIDAuNDFzIGFjdGlvbiAnR29Db21waWxlUGtnIGV4dGVybmFsL2dhemVsbGUrK2dvX2RlcHMrY29tX2dpdGh1Yl9oYXNoaWNvcnBfaGNsX3YyL2hjbHdyaXRlL2hjbHdyaXRlLmEnCiAgMS4wMnMgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytjb21fZ2l0aHViX2hhc2hpY29ycF9oY2xfdjIvaGNsc3ludGF4L2hjbHN5bnRheC5hJwogIDAuNzBzIGFjdGlvbiAnR29Db21waWxlUGtnIGV4dGVybmFsL2dhemVsbGUrK2dvX2RlcHMrY29tX2dpdGh1Yl96Y2xjb25mX2dvX2N0eS9jdHkvZnVuY3Rpb24vc3RkbGliL3N0ZGxpYi5hJwogIDAuMjJzIGFjdGlvbiAnR29Db21waWxlUGtnIGV4dGVybmFsL2dhemVsbGUrK2dvX2RlcHMrY29tX2dpdGh1Yl96Y2xjb25mX2dvX2N0eS9jdHkvanNvbi9qc29uLmEnCiAgMC4zMHMgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytjb21fZ2l0aHViX3pjbGNvbmZfZ29fY3R5L2N0eS9jb252ZXJ0L2NvbnZlcnQuYScKICAwLjcxcyBhY3Rpb24gJ0dvQ29tcGlsZVBrZyBleHRlcm5hbC9nYXplbGxlKytnb19kZXBzK2NvbV9naXRodWJfemNsY29uZl9nb19jdHkvY3R5L2N0eS5hJwogIDAuMDNzIGFjdGlvbiAnR29Db21waWxlUGtnIGV4dGVybmFsL2dhemVsbGUrK2dvX2RlcHMrY29tX2dpdGh1Yl96Y2xjb25mX2dvX2N0eS9jdHkvY3R5c3RyaW5ncy9jdHlzdHJpbmdzLmEnCiAgMC40M3MgYWN0aW9uICdHb0NvbXBpbGVQa2cgZXh0ZXJuYWwvZ2F6ZWxsZSsrZ29fZGVwcytvcmdfZ29sYW5nX3hfdGV4dC91bmljb2RlL25vcm0vbm9ybS5hJwogIDAuMDZzIGFjdGlvbiAnR29Db21waWxlUGtnIGV4dGVybmFsL2dhemVsbGUrK2dvX2RlcHMrb3JnX2dvbGFuZ194X3RleHQvdHJhbnNmb3JtL3RyYW5zZm9ybS5hJwogIDMzLjgxcyBhY3Rpb24gJ0dvU3RkbGliIGV4dGVybmFsL3J1bGVzX2dvKy9zdGRsaWJfL3BrZycKICAwLjAwcyBhY3Rpb24gJ0NyZWF0aW5nIHN5bWxpbmsgZXh0ZXJuYWwvcnVsZXNfZ28rK2dvX3NkayttYWluX19fZG93bmxvYWRfMC9idWlsZGVyX3Jlc2V0L2J1aWxkZXIgW2ZvciB0b29sXScKICAyOS40OHMgYWN0aW9uICdHb1Rvb2xjaGFpbkJpbmFyeUJ1aWxkIGV4dGVybmFsL3J1bGVzX2dvKytnb19zZGsrbWFpbl9fX2Rvd25sb2FkXzAvYnVpbGRlciBbZm9yIHRvb2xdJw\u003d\u003d"},{"name":"process stats","contents":"MzExOCBwcm9jZXNzZXM6IDExMzEgaW50ZXJuYWwsIDIyIGxvY2FsLCAxOTY1IHByb2Nlc3N3cmFwcGVyLXNhbmRib3gu"},{"name":"command.profile.gz","uri":"file:///home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/command-8e56d2d7-ca9b-45e6-a08f-85e7749e3c83.profile.gz"}]}} +{"id":{"buildMetrics":{}},"lastMessage":true,"buildMetrics":{"actionSummary":{"actionsCreated":"4818","actionsExecuted":"3118","actionsCreatedNotIncludingAspects":"4817","actionData":[{"mnemonic":"GoCompilePkg","actionsExecuted":"1271","firstStartedMs":"1772524578657","lastEndedMs":"1772525098841","systemTime":"20.519s","userTime":"336.660s","actionsCreated":"1328"},{"mnemonic":"CppCompile","actionsExecuted":"406","firstStartedMs":"1772524516889","lastEndedMs":"1772525076152","systemTime":"91.215s","userTime":"1579.299s","actionsCreated":"1050"},{"mnemonic":"Symlink","actionsExecuted":"295","firstStartedMs":"1772524514008","lastEndedMs":"1772524516804","actionsCreated":"302"},{"mnemonic":"CppModuleMap","actionsExecuted":"250","firstStartedMs":"1772524513793","lastEndedMs":"1772524515178","actionsCreated":"263"},{"mnemonic":"UnresolvedSymlink","actionsExecuted":"98","firstStartedMs":"1772524514881","lastEndedMs":"1772524515843","actionsCreated":"98"},{"mnemonic":"RepoMappingManifest","actionsExecuted":"97","firstStartedMs":"1772524508538","lastEndedMs":"1772524516190","actionsCreated":"128"},{"mnemonic":"SymlinkTree","actionsExecuted":"97","firstStartedMs":"1772524508570","lastEndedMs":"1772524516198","actionsCreated":"127"},{"mnemonic":"SourceSymlinkManifest","actionsExecuted":"97","firstStartedMs":"1772524508537","lastEndedMs":"1772524516191","actionsCreated":"127"},{"mnemonic":"RunfilesTree","actionsExecuted":"97","firstStartedMs":"1772524515558","lastEndedMs":"1772525101625","actionsCreated":"127"},{"mnemonic":"NpmPackageExtract","actionsExecuted":"84","firstStartedMs":"1772524516234","lastEndedMs":"1772524516842","systemTime":"0.103s","userTime":"0.040s","actionsCreated":"84"},{"mnemonic":"GenProtoDescriptorSet","actionsExecuted":"73","firstStartedMs":"1772525076282","lastEndedMs":"1772525084509","systemTime":"0.174s","userTime":"0.343s","actionsCreated":"76"},{"mnemonic":"GoProtocGen","actionsExecuted":"59","firstStartedMs":"1772525076295","lastEndedMs":"1772525084553","systemTime":"0.543s","userTime":"0.988s","actionsCreated":"59"},{"mnemonic":"TemplateExpand","actionsExecuted":"47","firstStartedMs":"1772524510384","lastEndedMs":"1772524516815","actionsCreated":"56"},{"mnemonic":"FileWrite","actionsExecuted":"43","firstStartedMs":"1772524508531","lastEndedMs":"1772524515315","actionsCreated":"204"},{"mnemonic":"GoLink","actionsExecuted":"24","firstStartedMs":"1772524615448","lastEndedMs":"1772525101621","systemTime":"6.662s","userTime":"19.571s","actionsCreated":"24"},{"mnemonic":"CopyFile","actionsExecuted":"20","firstStartedMs":"1772524399868","lastEndedMs":"1772524515905","systemTime":"0.050s","userTime":"0.008s","actionsCreated":"22"},{"mnemonic":"Genrule","actionsExecuted":"12","firstStartedMs":"1772524515999","lastEndedMs":"1772525079599","systemTime":"0.127s","userTime":"3.353s","actionsCreated":"12"},{"mnemonic":"ExecutableSymlink","actionsExecuted":"9","firstStartedMs":"1772524514036","lastEndedMs":"1772524827443","actionsCreated":"15"},{"mnemonic":"GoCompilePkgExternal","actionsExecuted":"7","firstStartedMs":"1772525085527","lastEndedMs":"1772525094315","systemTime":"0.086s","userTime":"1.055s","actionsCreated":"7"},{"mnemonic":"GoTestGenTest","actionsExecuted":"7","firstStartedMs":"1772524544745","lastEndedMs":"1772524544832","systemTime":"0.014s","userTime":"0.013s","actionsCreated":"7"}],"runnerCount":[{"name":"total","count":3118},{"name":"internal","count":1131},{"name":"local","count":22,"execKind":"Local"},{"name":"processwrapper-sandbox","count":1965,"execKind":"Local"}],"actionCacheStatistics":{"sizeInBytes":"1210271","saveTimeInMs":"4","misses":3118,"missDetails":[{},{"reason":"DIFFERENT_DEPS"},{"reason":"DIFFERENT_ENVIRONMENT"},{"reason":"DIFFERENT_FILES"},{"reason":"CORRUPTED_CACHE_ENTRY"},{"reason":"NOT_CACHED","count":3117},{"reason":"UNCONDITIONAL_EXECUTION","count":1},{"reason":"DIGEST_MISMATCH"}],"loadTimeInMs":"2"}},"memoryMetrics":{"garbageMetrics":[{"type":"CodeHeap \u0027non-profiled nmethods\u0027","garbageCollected":"3406080"},{"type":"CodeHeap \u0027profiled nmethods\u0027","garbageCollected":"16410368"},{"type":"Compressed Class Space","garbageCollected":"15312"},{"type":"G1 Eden Space","garbageCollected":"11507073024"},{"type":"G1 Old Gen","garbageCollected":"2478255688"},{"type":"G1 Survivor Space","garbageCollected":"132709832"},{"type":"Metaspace","garbageCollected":"57256"}]},"targetMetrics":{"targetsConfigured":"54008","targetsConfiguredNotIncludingAspects":"53742"},"packageMetrics":{"packagesLoaded":"1363"},"timingMetrics":{"cpuTimeInMs":"297190","wallTimeInMs":"765696","analysisPhaseTimeInMs":"147926","executionPhaseTimeInMs":"737099","actionsExecutionStartInMs":"28460","criticalPathTime":"125.159094987s"},"cumulativeMetrics":{"numAnalyses":1,"numBuilds":1},"artifactMetrics":{"sourceArtifactsRead":{"sizeInBytes":"6920082876","count":17908},"outputArtifactsSeen":{"sizeInBytes":"2108083055","count":6387},"outputArtifactsFromActionCache":{},"topLevelArtifacts":{"sizeInBytes":"1246159847","count":6325}},"buildGraphMetrics":{"actionLookupValueCount":22770,"actionCount":4817,"outputArtifactCount":7355,"postInvocationSkyframeNodeCount":181471,"actionLookupValueCountNotIncludingAspects":22504,"actionCountNotIncludingAspects":4816,"inputFileConfiguredTargetCount":19291,"outputFileConfiguredTargetCount":35,"otherConfiguredTargetCount":145,"builtValues":[{"skyfunctionName":"DIRECTORY_LISTING","count":"3940"},{"skyfunctionName":"IGNORED_SUBDIRECTORIES","count":"388"},{"skyfunctionName":"BUILD_CONFIGURATION","count":"9"},{"skyfunctionName":"STARLARK_BUILTINS","count":"1"},{"skyfunctionName":"REPO_FILE","count":"388"},{"skyfunctionName":"PLATFORM","count":"2"},{"skyfunctionName":"TARGET_PATTERN","count":"104"},{"skyfunctionName":"SINGLE_TOOLCHAIN_RESOLUTION","count":"34"},{"skyfunctionName":"SINGLE_EXTENSION","count":"33"},{"skyfunctionName":"PACKAGE","count":"1363"},{"skyfunctionName":"TOOLCHAIN_RESOLUTION","count":"51"},{"skyfunctionName":"ARTIFACT_NESTED_SET","count":"3227"},{"skyfunctionName":"RECURSIVE_PKG","count":"312"},{"skyfunctionName":"TESTS_IN_SUITE","count":"1"},{"skyfunctionName":"REPOSITORY_DIRECTORY","count":"388"},{"skyfunctionName":"RECURSIVE_FILESYSTEM_TRAVERSAL","count":"84"},{"skyfunctionName":"PACKAGE_ERROR_MESSAGE","count":"79"},{"skyfunctionName":"LOCAL_REPOSITORY_LOOKUP","count":"384"},{"skyfunctionName":"REGISTERED_TOOLCHAINS","count":"8"},{"skyfunctionName":"BAZEL_LOCK_FILE","count":"2"},{"skyfunctionName":"REPOSITORY_MAPPING","count":"384"},{"skyfunctionName":"PACKAGE_LOOKUP","count":"6271"},{"skyfunctionName":"STARLARK_BUILD_SETTINGS_DETAILS","count":"4"},{"skyfunctionName":"BAZEL_DEP_GRAPH","count":"1"},{"skyfunctionName":"ARTIFACT","count":"18001"},{"skyfunctionName":"BASELINE_OPTIONS","count":"2"},{"skyfunctionName":"MODULE_FILE","count":"392"},{"skyfunctionName":"FILE_STATE","count":"37041"},{"skyfunctionName":"MODULE_EXTENSION_REPO_MAPPING_ENTRIES","count":"33"},{"skyfunctionName":"REGISTRY","count":"1"},{"skyfunctionName":"SINGLE_EXTENSION_USAGES","count":"33"},{"skyfunctionName":"SINGLE_EXTENSION_EVAL","count":"33"},{"skyfunctionName":"ACTION_EXECUTION","count":"3118"},{"skyfunctionName":"CONTAINING_PACKAGE_LOOKUP","count":"1250"},{"skyfunctionName":"BUILD_OPTIONS_SCOPE","count":"5"},{"skyfunctionName":"BAZEL_MODULE_RESOLUTION","count":"1"},{"skyfunctionName":"BUILD_DRIVER","count":"215"},{"skyfunctionName":"REPO_SPEC","count":"75"},{"skyfunctionName":"REPO_PACKAGE_ARGS","count":"321"},{"skyfunctionName":"GLOBS","count":"154"},{"skyfunctionName":"BUILD_CONFIGURATION_KEY","count":"3"},{"skyfunctionName":"DIRECTORY_LISTING_STATE","count":"3940"},{"skyfunctionName":"FILE","count":"38721"},{"skyfunctionName":"BZL_LOAD","count":"1378"},{"skyfunctionName":"CONFIGURED_TARGET","count":"58176"},{"skyfunctionName":"BUILD_INFO","count":"1"},{"skyfunctionName":"REPO_DEFINITION","count":"388"},{"skyfunctionName":"TEST_SUITE_EXPANSION","count":"1"},{"skyfunctionName":"REGISTERED_EXECUTION_PLATFORMS","count":"8"},{"skyfunctionName":"CLIENT_ENVIRONMENT_VARIABLE","count":"1"},{"skyfunctionName":"PLATFORM_MAPPING","count":"1"},{"skyfunctionName":"REPOSITORY_ENVIRONMENT_VARIABLE","count":"22"},{"skyfunctionName":"TARGET_COMPLETION","count":"214"},{"skyfunctionName":"PROJECT_FILES_LOOKUP","count":"78"},{"skyfunctionName":"ASPECT","count":"265"},{"skyfunctionName":"TARGET_PATTERN_PHASE","count":"1"}],"evaluatedValues":[{"skyfunctionName":"DIRECTORY_LISTING","count":"7881"},{"skyfunctionName":"IGNORED_SUBDIRECTORIES","count":"1164"},{"skyfunctionName":"BUILD_CONFIGURATION","count":"12"},{"skyfunctionName":"STARLARK_BUILTINS","count":"2"},{"skyfunctionName":"REPO_FILE","count":"850"},{"skyfunctionName":"PLATFORM","count":"4"},{"skyfunctionName":"TARGET_PATTERN","count":"336"},{"skyfunctionName":"SINGLE_TOOLCHAIN_RESOLUTION","count":"52"},{"skyfunctionName":"SINGLE_EXTENSION","count":"99"},{"skyfunctionName":"PACKAGE","count":"3487"},{"skyfunctionName":"TOOLCHAIN_RESOLUTION","count":"106"},{"skyfunctionName":"ARTIFACT_NESTED_SET","count":"6446"},{"skyfunctionName":"RECURSIVE_PKG","count":"1069"},{"skyfunctionName":"TESTS_IN_SUITE","count":"1"},{"skyfunctionName":"REPOSITORY_DIRECTORY","count":"1249"},{"skyfunctionName":"RECURSIVE_FILESYSTEM_TRAVERSAL","count":"245"},{"skyfunctionName":"PACKAGE_ERROR_MESSAGE","count":"158"},{"skyfunctionName":"LOCAL_REPOSITORY_LOOKUP","count":"384"},{"skyfunctionName":"REGISTERED_TOOLCHAINS","count":"18"},{"skyfunctionName":"BAZEL_LOCK_FILE","count":"4"},{"skyfunctionName":"REPOSITORY_MAPPING","count":"419"},{"skyfunctionName":"PACKAGE_LOOKUP","count":"18414"},{"skyfunctionName":"STARLARK_BUILD_SETTINGS_DETAILS","count":"7"},{"skyfunctionName":"BAZEL_DEP_GRAPH","count":"2"},{"skyfunctionName":"ARTIFACT","count":"34933"},{"skyfunctionName":"BASELINE_OPTIONS","count":"4"},{"skyfunctionName":"MODULE_FILE","count":"426"},{"skyfunctionName":"FILE_STATE","count":"37041"},{"skyfunctionName":"MODULE_EXTENSION_REPO_MAPPING_ENTRIES","count":"33"},{"skyfunctionName":"REGISTRY","count":"2"},{"skyfunctionName":"SINGLE_EXTENSION_USAGES","count":"33"},{"skyfunctionName":"SINGLE_EXTENSION_EVAL","count":"109"},{"skyfunctionName":"ACTION_EXECUTION","count":"5618"},{"skyfunctionName":"CONTAINING_PACKAGE_LOOKUP","count":"2776"},{"skyfunctionName":"BUILD_OPTIONS_SCOPE","count":"5"},{"skyfunctionName":"BAZEL_MODULE_RESOLUTION","count":"15"},{"skyfunctionName":"BUILD_DRIVER","count":"644"},{"skyfunctionName":"REPO_SPEC","count":"75"},{"skyfunctionName":"REPO_PACKAGE_ARGS","count":"610"},{"skyfunctionName":"GLOBS","count":"604"},{"skyfunctionName":"BUILD_CONFIGURATION_KEY","count":"4"},{"skyfunctionName":"DIRECTORY_LISTING_STATE","count":"3940"},{"skyfunctionName":"BZL_LOAD","count":"3325"},{"skyfunctionName":"FILE","count":"81973"},{"skyfunctionName":"CONFIGURED_TARGET","count":"81419"},{"skyfunctionName":"BUILD_INFO","count":"1"},{"skyfunctionName":"REPO_DEFINITION","count":"435"},{"skyfunctionName":"TEST_SUITE_EXPANSION","count":"2"},{"skyfunctionName":"REGISTERED_EXECUTION_PLATFORMS","count":"8"},{"skyfunctionName":"CLIENT_ENVIRONMENT_VARIABLE","count":"1"},{"skyfunctionName":"PLATFORM_MAPPING","count":"2"},{"skyfunctionName":"REPOSITORY_ENVIRONMENT_VARIABLE","count":"22"},{"skyfunctionName":"TARGET_COMPLETION","count":"428"},{"skyfunctionName":"PROJECT_FILES_LOOKUP","count":"249"},{"skyfunctionName":"ASPECT","count":"414"},{"skyfunctionName":"TARGET_PATTERN_PHASE","count":"3"}]},"networkMetrics":{"systemNetworkStats":{"bytesSent":"15034040","bytesRecv":"3230311505","packetsSent":"114286","packetsRecv":"1222858","peakBytesSentPerSec":"2410344","peakBytesRecvPerSec":"923700749","peakPacketsSentPerSec":"26950","peakPacketsRecvPerSec":"361351"}},"workerPoolMetrics":{},"dynamicExecutionMetrics":{},"remoteAnalysisCacheStatistics":{}}} diff --git a/test/integrationtest/testdata/bepfiles/github_actions_lite.bep.ndjson b/test/integrationtest/testdata/bepfiles/github_actions_lite.bep.ndjson new file mode 100644 index 00000000..cf1ae1ab --- /dev/null +++ b/test/integrationtest/testdata/bepfiles/github_actions_lite.bep.ndjson @@ -0,0 +1,8 @@ +{"id":{"started":{}},"children":[{"unstructuredCommandLine":{}},{"structuredCommandLine":{"commandLineLabel":"original"}},{"structuredCommandLine":{"commandLineLabel":"canonical"}},{"structuredCommandLine":{"commandLineLabel":"tool"}},{"buildMetadata":{}},{"optionsParsed":{}},{"buildFinished":{}}],"started":{"uuid":"63500331-1b71-4d7a-9125-df9b3dfe4e0d","startTimeMillis":"1772524334102","buildToolVersion":"9.0.0","optionsDescription":"--flag_alias\u003d\u0027build_python_zip\u003d@@rules_python+//python/config_settings:build_python_zip\u0027 --flag_alias\u003d\u0027incompatible_default_to_explicit_init_py\u003d@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py\u0027 --flag_alias\u003d\u0027python_path\u003d@@rules_python+//python/config_settings:python_path\u0027 --flag_alias\u003d\u0027experimental_python_import_all_repositories\u003d@@rules_python+//python/config_settings:experimental_python_import_all_repositories\u0027 --build_event_json_file\u003dgithub-actions.bep.ndjson","command":"build","workingDirectory":"/home/runner/work/bb-portal/bb-portal","workspaceDirectory":"/home/runner/work/bb-portal/bb-portal","serverPid":"2340","startTime":"2026-03-03T07:52:14.102Z","host":"runnervmnay03","user":"runner"}} +{"id":{"buildMetadata":{}},"buildMetadata":{}} +{"id":{"unstructuredCommandLine":{}},"unstructuredCommandLine":{"args":["build","--startup_time\u003d1987","--command_wait_time\u003d0","--extract_data_time\u003d919","--restart_reason\u003dno_daemon","--binary_path\u003d/home/runner/work/bb-portal/bb-portal/bazel","--rc_source\u003dclient","--rc_source\u003d/home/runner/work/bb-portal/bb-portal/.bazelrc","--default_override\u003d0:common\u003d--isatty\u003d0","--default_override\u003d0:common\u003d--terminal_columns\u003d80","--default_override\u003d1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","--client_env\u003dSHELL\u003d/bin/bash","--client_env\u003dSELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","--client_env\u003dCONDA\u003d/usr/share/miniconda","--client_env\u003dGITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","--client_env\u003dJAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","--client_env\u003dJAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","--client_env\u003dGITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","--client_env\u003dGITHUB_ACTION\u003d__run_2","--client_env\u003dJAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","--client_env\u003dGITHUB_RUN_NUMBER\u003d2","--client_env\u003dRUNNER_NAME\u003dGitHub Actions 1000007294","--client_env\u003dGRADLE_HOME\u003d/usr/share/gradle-9.3.1","--client_env\u003dGITHUB_REPOSITORY_OWNER_ID\u003d90319694","--client_env\u003dACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","--client_env\u003dXDG_CONFIG_HOME\u003d/home/runner/.config","--client_env\u003dDOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","--client_env\u003dANT_HOME\u003d/usr/share/ant","--client_env\u003dJAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","--client_env\u003dGITHUB_TRIGGERING_ACTOR\u003disakstenstrom","--client_env\u003dGITHUB_REF_TYPE\u003dbranch","--client_env\u003dHOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","--client_env\u003dANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","--client_env\u003dBOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","--client_env\u003dPWD\u003d/home/runner/work/bb-portal/bb-portal","--client_env\u003dPIPX_BIN_DIR\u003d/opt/pipx_bin","--client_env\u003dLOGNAME\u003drunner","--client_env\u003dGITHUB_REPOSITORY_ID\u003d935368138","--client_env\u003dGITHUB_ACTIONS\u003dtrue","--client_env\u003dUSE_BAZEL_FALLBACK_VERSION\u003dsilent:","--client_env\u003dANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","--client_env\u003dSYSTEMD_EXEC_PID\u003d2137","--client_env\u003dGITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","--client_env\u003dGITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","--client_env\u003dPOWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","--client_env\u003dRUNNER_ENVIRONMENT\u003dgithub-hosted","--client_env\u003dDOTNET_MULTILEVEL_LOOKUP\u003d0","--client_env\u003dGITHUB_REF\u003drefs/heads/test-branch","--client_env\u003dRUNNER_OS\u003dLinux","--client_env\u003dGITHUB_REF_PROTECTED\u003dfalse","--client_env\u003dHOME\u003d/home/runner","--client_env\u003dGITHUB_API_URL\u003dhttps://api.github.com","--client_env\u003dLANG\u003dC.UTF-8","--client_env\u003dGOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","--client_env\u003dRUNNER_ARCH\u003dX64","--client_env\u003dMEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","--client_env\u003dRUNNER_TEMP\u003d/home/runner/work/_temp","--client_env\u003dGITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","--client_env\u003dEDGEWEBDRIVER\u003d/usr/local/share/edge_driver","--client_env\u003dJAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","--client_env\u003dGITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","--client_env\u003dGITHUB_EVENT_NAME\u003dpush","--client_env\u003dGITHUB_RUN_ID\u003d22613512849","--client_env\u003dJAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","--client_env\u003dANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","--client_env\u003dHOMEBREW_NO_AUTO_UPDATE\u003d1","--client_env\u003dGITHUB_ACTOR\u003disakstenstrom","--client_env\u003dNVM_DIR\u003d/home/runner/.nvm","--client_env\u003dSGX_AESM_ADDR\u003d1","--client_env\u003dGITHUB_RUN_ATTEMPT\u003d1","--client_env\u003dANDROID_HOME\u003d/usr/local/lib/android/sdk","--client_env\u003dGITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","--client_env\u003dACCEPT_EULA\u003dY","--client_env\u003dUSER\u003drunner","--client_env\u003dPSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","--client_env\u003dGITHUB_SERVER_URL\u003dhttps://github.com","--client_env\u003dPIPX_HOME\u003d/opt/pipx","--client_env\u003dGECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","--client_env\u003dCHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","--client_env\u003dSHLVL\u003d1","--client_env\u003dANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","--client_env\u003dVCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","--client_env\u003dRUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","--client_env\u003dImageVersion\u003d20260224.36.1","--client_env\u003dDOTNET_NOLOGO\u003d1","--client_env\u003dGOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","--client_env\u003dGITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","--client_env\u003dGOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","--client_env\u003dGITHUB_REF_NAME\u003dtest-branch","--client_env\u003dGITHUB_JOB\u003dlite_build_and_test","--client_env\u003dXDG_RUNTIME_DIR\u003d/run/user/1001","--client_env\u003dAZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","--client_env\u003dGITHUB_REPOSITORY\u003dmeroton/bb-portal","--client_env\u003dCHROME_BIN\u003d/usr/bin/google-chrome","--client_env\u003dANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","--client_env\u003dGOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","--client_env\u003dGITHUB_RETENTION_DAYS\u003d90","--client_env\u003dJOURNAL_STREAM\u003d9:17614","--client_env\u003dRUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","--client_env\u003dGITHUB_ACTION_REPOSITORY\u003d","--client_env\u003dPATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","--client_env\u003dGITHUB_BASE_REF\u003d","--client_env\u003dGHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","--client_env\u003dCI\u003dtrue","--client_env\u003dSWIFT_PATH\u003d/usr/share/swift/usr/bin","--client_env\u003dImageOS\u003dubuntu24","--client_env\u003dGITHUB_REPOSITORY_OWNER\u003dmeroton","--client_env\u003dGITHUB_HEAD_REF\u003d","--client_env\u003dGITHUB_ACTION_REF\u003d","--client_env\u003dENABLE_RUNNER_TRACING\u003dtrue","--client_env\u003dGITHUB_WORKFLOW\u003dBuild and test backend","--client_env\u003dDEBIAN_FRONTEND\u003dnoninteractive","--client_env\u003dAGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","--client_env\u003d_\u003d/home/runner/bin/bazel","--client_cwd\u003d/home/runner/work/bb-portal/bb-portal","//...","--build_event_json_file\u003dgithub-actions.bep.ndjson"]}} +{"id":{"optionsParsed":{}},"optionsParsed":{"startupOptions":["--max_idle_secs\u003d10800","--noshutdown_on_low_sys_mem","--connect_timeout_secs\u003d30","--output_user_root\u003d/home/runner/.cache/bazel/_bazel_runner","--output_base\u003d/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b","--failure_detail_out\u003d/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto","--idle_server_tasks","--write_command_log","--nofatal_event_bus_exceptions","--nowindows_enable_symlinks","--noclient_debug"],"cmdLine":["--build_event_json_file\u003dgithub-actions.bep.ndjson"],"explicitCmdLine":["--build_event_json_file\u003dgithub-actions.bep.ndjson"],"invocationPolicy":{}}} +{"id":{"structuredCommandLine":{"commandLineLabel":"original"}},"structuredCommandLine":{"commandLineLabel":"original","sections":[{"sectionLabel":"executable","chunkList":{"chunk":["bazel"]}},{"sectionLabel":"startup options","optionList":{}},{"sectionLabel":"command","chunkList":{"chunk":["build"]}},{"sectionLabel":"command options","optionList":{"option":[{"combinedForm":"--rc_source\u003dclient","optionName":"rc_source","optionValue":"client","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--rc_source\u003d/home/runner/work/bb-portal/bb-portal/.bazelrc","optionName":"rc_source","optionValue":"/home/runner/work/bb-portal/bb-portal/.bazelrc","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--isatty\u003d0","optionName":"default_override","optionValue":"0:common\u003d--isatty\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--terminal_columns\u003d80","optionName":"default_override","optionValue":"0:common\u003d--terminal_columns\u003d80","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","optionName":"default_override","optionValue":"1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--startup_time\u003d1987","optionName":"startup_time","optionValue":"1987","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--command_wait_time\u003d0","optionName":"command_wait_time","optionValue":"0","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--extract_data_time\u003d919","optionName":"extract_data_time","optionValue":"919","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--restart_reason\u003dno_daemon","optionName":"restart_reason","optionValue":"no_daemon","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--binary_path\u003d/home/runner/work/bb-portal/bb-portal/bazel","optionName":"binary_path","optionValue":"/home/runner/work/bb-portal/bb-portal/bazel","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--client_env\u003dSHELL\u003d/bin/bash","optionName":"client_env","optionValue":"SHELL\u003d/bin/bash","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","optionName":"client_env","optionValue":"SELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCONDA\u003d/usr/share/miniconda","optionName":"client_env","optionValue":"CONDA\u003d/usr/share/miniconda","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"GITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION\u003d__run_2","optionName":"client_env","optionValue":"GITHUB_ACTION\u003d__run_2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_NUMBER\u003d2","optionName":"client_env","optionValue":"GITHUB_RUN_NUMBER\u003d2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_NAME\u003dGitHub Actions 1000007294","optionName":"client_env","optionValue":"RUNNER_NAME\u003dGitHub Actions 1000007294","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGRADLE_HOME\u003d/usr/share/gradle-9.3.1","optionName":"client_env","optionValue":"GRADLE_HOME\u003d/usr/share/gradle-9.3.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER_ID\u003d90319694","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER_ID\u003d90319694","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","optionName":"client_env","optionValue":"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_CONFIG_HOME\u003d/home/runner/.config","optionName":"client_env","optionValue":"XDG_CONFIG_HOME\u003d/home/runner/.config","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","optionName":"client_env","optionValue":"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANT_HOME\u003d/usr/share/ant","optionName":"client_env","optionValue":"ANT_HOME\u003d/usr/share/ant","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_TRIGGERING_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_TRIGGERING_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_TYPE\u003dbranch","optionName":"client_env","optionValue":"GITHUB_REF_TYPE\u003dbranch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","optionName":"client_env","optionValue":"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dBOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","optionName":"client_env","optionValue":"BOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPWD\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"PWD\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_BIN_DIR\u003d/opt/pipx_bin","optionName":"client_env","optionValue":"PIPX_BIN_DIR\u003d/opt/pipx_bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLOGNAME\u003drunner","optionName":"client_env","optionValue":"LOGNAME\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_ID\u003d935368138","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_ID\u003d935368138","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTIONS\u003dtrue","optionName":"client_env","optionValue":"GITHUB_ACTIONS\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSE_BAZEL_FALLBACK_VERSION\u003dsilent:","optionName":"client_env","optionValue":"USE_BAZEL_FALLBACK_VERSION\u003dsilent:","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","optionName":"client_env","optionValue":"ANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSYSTEMD_EXEC_PID\u003d2137","optionName":"client_env","optionValue":"SYSTEMD_EXEC_PID\u003d2137","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPOWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","optionName":"client_env","optionValue":"POWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ENVIRONMENT\u003dgithub-hosted","optionName":"client_env","optionValue":"RUNNER_ENVIRONMENT\u003dgithub-hosted","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_MULTILEVEL_LOOKUP\u003d0","optionName":"client_env","optionValue":"DOTNET_MULTILEVEL_LOOKUP\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF\u003drefs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_REF\u003drefs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_OS\u003dLinux","optionName":"client_env","optionValue":"RUNNER_OS\u003dLinux","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_PROTECTED\u003dfalse","optionName":"client_env","optionValue":"GITHUB_REF_PROTECTED\u003dfalse","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOME\u003d/home/runner","optionName":"client_env","optionValue":"HOME\u003d/home/runner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_API_URL\u003dhttps://api.github.com","optionName":"client_env","optionValue":"GITHUB_API_URL\u003dhttps://api.github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLANG\u003dC.UTF-8","optionName":"client_env","optionValue":"LANG\u003dC.UTF-8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","optionName":"client_env","optionValue":"GOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ARCH\u003dX64","optionName":"client_env","optionValue":"RUNNER_ARCH\u003dX64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dMEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","optionName":"client_env","optionValue":"MEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TEMP\u003d/home/runner/work/_temp","optionName":"client_env","optionValue":"RUNNER_TEMP\u003d/home/runner/work/_temp","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dEDGEWEBDRIVER\u003d/usr/local/share/edge_driver","optionName":"client_env","optionValue":"EDGEWEBDRIVER\u003d/usr/local/share/edge_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","optionName":"client_env","optionValue":"GITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_NAME\u003dpush","optionName":"client_env","optionValue":"GITHUB_EVENT_NAME\u003dpush","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ID\u003d22613512849","optionName":"client_env","optionValue":"GITHUB_RUN_ID\u003d22613512849","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_NO_AUTO_UPDATE\u003d1","optionName":"client_env","optionValue":"HOMEBREW_NO_AUTO_UPDATE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dNVM_DIR\u003d/home/runner/.nvm","optionName":"client_env","optionValue":"NVM_DIR\u003d/home/runner/.nvm","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSGX_AESM_ADDR\u003d1","optionName":"client_env","optionValue":"SGX_AESM_ADDR\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ATTEMPT\u003d1","optionName":"client_env","optionValue":"GITHUB_RUN_ATTEMPT\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_HOME\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_HOME\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","optionName":"client_env","optionValue":"GITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACCEPT_EULA\u003dY","optionName":"client_env","optionValue":"ACCEPT_EULA\u003dY","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSER\u003drunner","optionName":"client_env","optionValue":"USER\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","optionName":"client_env","optionValue":"PSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SERVER_URL\u003dhttps://github.com","optionName":"client_env","optionValue":"GITHUB_SERVER_URL\u003dhttps://github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_HOME\u003d/opt/pipx","optionName":"client_env","optionValue":"PIPX_HOME\u003d/opt/pipx","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","optionName":"client_env","optionValue":"GECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","optionName":"client_env","optionValue":"CHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSHLVL\u003d1","optionName":"client_env","optionValue":"SHLVL\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dVCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","optionName":"client_env","optionValue":"VCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"RUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageVersion\u003d20260224.36.1","optionName":"client_env","optionValue":"ImageVersion\u003d20260224.36.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_NOLOGO\u003d1","optionName":"client_env","optionValue":"DOTNET_NOLOGO\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","optionName":"client_env","optionValue":"GOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","optionName":"client_env","optionValue":"GOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_NAME\u003dtest-branch","optionName":"client_env","optionValue":"GITHUB_REF_NAME\u003dtest-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_JOB\u003dlite_build_and_test","optionName":"client_env","optionValue":"GITHUB_JOB\u003dlite_build_and_test","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_RUNTIME_DIR\u003d/run/user/1001","optionName":"client_env","optionValue":"XDG_RUNTIME_DIR\u003d/run/user/1001","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","optionName":"client_env","optionValue":"AZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY\u003dmeroton/bb-portal","optionName":"client_env","optionValue":"GITHUB_REPOSITORY\u003dmeroton/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROME_BIN\u003d/usr/bin/google-chrome","optionName":"client_env","optionValue":"CHROME_BIN\u003d/usr/bin/google-chrome","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","optionName":"client_env","optionValue":"GOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RETENTION_DAYS\u003d90","optionName":"client_env","optionValue":"GITHUB_RETENTION_DAYS\u003d90","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJOURNAL_STREAM\u003d9:17614","optionName":"client_env","optionValue":"JOURNAL_STREAM\u003d9:17614","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","optionName":"client_env","optionValue":"RUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REPOSITORY\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REPOSITORY\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","optionName":"client_env","optionValue":"PATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_BASE_REF\u003d","optionName":"client_env","optionValue":"GITHUB_BASE_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","optionName":"client_env","optionValue":"GHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCI\u003dtrue","optionName":"client_env","optionValue":"CI\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSWIFT_PATH\u003d/usr/share/swift/usr/bin","optionName":"client_env","optionValue":"SWIFT_PATH\u003d/usr/share/swift/usr/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageOS\u003dubuntu24","optionName":"client_env","optionValue":"ImageOS\u003dubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER\u003dmeroton","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER\u003dmeroton","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_HEAD_REF\u003d","optionName":"client_env","optionValue":"GITHUB_HEAD_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REF\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dENABLE_RUNNER_TRACING\u003dtrue","optionName":"client_env","optionValue":"ENABLE_RUNNER_TRACING\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW\u003dBuild and test backend","optionName":"client_env","optionValue":"GITHUB_WORKFLOW\u003dBuild and test backend","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDEBIAN_FRONTEND\u003dnoninteractive","optionName":"client_env","optionValue":"DEBIAN_FRONTEND\u003dnoninteractive","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"AGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003d_\u003d/home/runner/bin/bazel","optionName":"client_env","optionValue":"_\u003d/home/runner/bin/bazel","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_cwd\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_cwd","optionValue":"/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--build_event_json_file\u003dgithub-actions.bep.ndjson","optionName":"build_event_json_file","optionValue":"github-actions.bep.ndjson","effectTags":["AFFECTS_OUTPUTS"],"source":"command line options"}]}},{"sectionLabel":"residual","chunkList":{"chunk":["//..."]}}]}} +{"id":{"structuredCommandLine":{"commandLineLabel":"tool"}},"structuredCommandLine":{}} +{"id":{"structuredCommandLine":{"commandLineLabel":"canonical"}},"structuredCommandLine":{"commandLineLabel":"canonical","sections":[{"sectionLabel":"executable","chunkList":{"chunk":["bazel"]}},{"sectionLabel":"startup options","optionList":{"option":[{"combinedForm":"--max_idle_secs\u003d10800","optionName":"max_idle_secs","optionValue":"10800","effectTags":["EAGERNESS_TO_EXIT","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--noshutdown_on_low_sys_mem","optionName":"shutdown_on_low_sys_mem","optionValue":"0","effectTags":["EAGERNESS_TO_EXIT","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--connect_timeout_secs\u003d30","optionName":"connect_timeout_secs","optionValue":"30","effectTags":["BAZEL_INTERNAL_CONFIGURATION"],"source":"default"},{"combinedForm":"--output_user_root\u003d/home/runner/.cache/bazel/_bazel_runner","optionName":"output_user_root","optionValue":"/home/runner/.cache/bazel/_bazel_runner","effectTags":["AFFECTS_OUTPUTS","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--lock_install_base","optionName":"lock_install_base","optionValue":"1","effectTags":["BAZEL_INTERNAL_CONFIGURATION"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--workspace_directory\u003d/home/runner/work/bb-portal/bb-portal","optionName":"workspace_directory","optionValue":"/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS","LOSES_INCREMENTAL_STATE"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--default_system_javabase\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"default_system_javabase","optionValue":"/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS","LOSES_INCREMENTAL_STATE"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--failure_detail_out\u003d/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto","optionName":"failure_detail_out","optionValue":"/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto","effectTags":["AFFECTS_OUTPUTS","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--idle_server_tasks","optionName":"idle_server_tasks","optionValue":"1","effectTags":["LOSES_INCREMENTAL_STATE","HOST_MACHINE_RESOURCE_OPTIMIZATIONS"],"source":"default"},{"combinedForm":"--write_command_log","optionName":"write_command_log","optionValue":"1","effectTags":["AFFECTS_OUTPUTS","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--nofatal_event_bus_exceptions","optionName":"fatal_event_bus_exceptions","optionValue":"0","effectTags":["EAGERNESS_TO_EXIT","LOSES_INCREMENTAL_STATE"],"source":"default"},{"combinedForm":"--nowindows_enable_symlinks","optionName":"windows_enable_symlinks","optionValue":"0","effectTags":["BAZEL_INTERNAL_CONFIGURATION"],"source":"default"},{"combinedForm":"--client_debug\u003dfalse","optionName":"client_debug","optionValue":"false","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"source":"default"},{"combinedForm":"--product_name\u003dBazel","optionName":"product_name","optionValue":"Bazel","effectTags":["LOSES_INCREMENTAL_STATE","AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--option_sources\u003d","optionName":"option_sources","effectTags":["AFFECTS_OUTPUTS"],"metadataTags":["HIDDEN"],"source":"default"},{"combinedForm":"--ignore_all_rc_files","optionName":"ignore_all_rc_files","optionValue":"1","effectTags":["CHANGES_INPUTS"]}]}},{"sectionLabel":"command","chunkList":{"chunk":["build"]}},{"sectionLabel":"command options","optionList":{"option":[{"combinedForm":"--flag_alias\u003dbuild_python_zip\u003d@@rules_python+//python/config_settings:build_python_zip","optionName":"flag_alias","optionValue":"build_python_zip\u003d@@rules_python+//python/config_settings:build_python_zip","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--flag_alias\u003dincompatible_default_to_explicit_init_py\u003d@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py","optionName":"flag_alias","optionValue":"incompatible_default_to_explicit_init_py\u003d@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--flag_alias\u003dpython_path\u003d@@rules_python+//python/config_settings:python_path","optionName":"flag_alias","optionValue":"python_path\u003d@@rules_python+//python/config_settings:python_path","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--flag_alias\u003dexperimental_python_import_all_repositories\u003d@@rules_python+//python/config_settings:experimental_python_import_all_repositories","optionName":"flag_alias","optionValue":"experimental_python_import_all_repositories\u003d@@rules_python+//python/config_settings:experimental_python_import_all_repositories","effectTags":["CHANGES_INPUTS"],"metadataTags":["NON_CONFIGURABLE"],"source":"module resolution"},{"combinedForm":"--isatty\u003d0","optionName":"isatty","optionValue":"0","effectTags":["UNKNOWN"],"metadataTags":["HIDDEN"],"source":"client"},{"combinedForm":"--terminal_columns\u003d80","optionName":"terminal_columns","optionValue":"80","effectTags":["UNKNOWN"],"metadataTags":["HIDDEN"],"source":"client"},{"combinedForm":"--rc_source\u003dclient","optionName":"rc_source","optionValue":"client","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--rc_source\u003d/home/runner/work/bb-portal/bb-portal/.bazelrc","optionName":"rc_source","optionValue":"/home/runner/work/bb-portal/bb-portal/.bazelrc","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--isatty\u003d0","optionName":"default_override","optionValue":"0:common\u003d--isatty\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d0:common\u003d--terminal_columns\u003d80","optionName":"default_override","optionValue":"0:common\u003d--terminal_columns\u003d80","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--default_override\u003d1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","optionName":"default_override","optionValue":"1:run\u003d--workspace_status_command\u003dbash tools/workspace-status.sh","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--startup_time\u003d1987","optionName":"startup_time","optionValue":"1987","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--command_wait_time\u003d0","optionName":"command_wait_time","optionValue":"0","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--extract_data_time\u003d919","optionName":"extract_data_time","optionValue":"919","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--restart_reason\u003dno_daemon","optionName":"restart_reason","optionValue":"no_daemon","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--binary_path\u003d/home/runner/work/bb-portal/bb-portal/bazel","optionName":"binary_path","optionValue":"/home/runner/work/bb-portal/bb-portal/bazel","effectTags":["AFFECTS_OUTPUTS","BAZEL_MONITORING"],"metadataTags":["HIDDEN"],"source":"command line options"},{"combinedForm":"--client_env\u003dSHELL\u003d/bin/bash","optionName":"client_env","optionValue":"SHELL\u003d/bin/bash","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","optionName":"client_env","optionValue":"SELENIUM_JAR_PATH\u003d/usr/share/java/selenium-server.jar","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCONDA\u003d/usr/share/miniconda","optionName":"client_env","optionValue":"CONDA\u003d/usr/share/miniconda","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"GITHUB_WORKSPACE\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_11_X64\u003d/usr/lib/jvm/temurin-11-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_25_X64\u003d/usr/lib/jvm/temurin-25-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_PATH\u003d/home/runner/work/_temp/_runner_file_commands/add_path_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION\u003d__run_2","optionName":"client_env","optionValue":"GITHUB_ACTION\u003d__run_2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_NUMBER\u003d2","optionName":"client_env","optionValue":"GITHUB_RUN_NUMBER\u003d2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_NAME\u003dGitHub Actions 1000007294","optionName":"client_env","optionValue":"RUNNER_NAME\u003dGitHub Actions 1000007294","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGRADLE_HOME\u003d/usr/share/gradle-9.3.1","optionName":"client_env","optionValue":"GRADLE_HOME\u003d/usr/share/gradle-9.3.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER_ID\u003d90319694","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER_ID\u003d90319694","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","optionName":"client_env","optionValue":"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\u003d/opt/actionarchivecache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_CONFIG_HOME\u003d/home/runner/.config","optionName":"client_env","optionValue":"XDG_CONFIG_HOME\u003d/home/runner/.config","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","optionName":"client_env","optionValue":"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANT_HOME\u003d/usr/share/ant","optionName":"client_env","optionValue":"ANT_HOME\u003d/usr/share/ant","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_8_X64\u003d/usr/lib/jvm/temurin-8-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_TRIGGERING_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_TRIGGERING_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_TYPE\u003dbranch","optionName":"client_env","optionValue":"GITHUB_REF_TYPE\u003dbranch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","optionName":"client_env","optionValue":"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\u003d3650","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dBOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","optionName":"client_env","optionValue":"BOOTSTRAP_HASKELL_NONINTERACTIVE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPWD\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_env","optionValue":"PWD\u003d/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_BIN_DIR\u003d/opt/pipx_bin","optionName":"client_env","optionValue":"PIPX_BIN_DIR\u003d/opt/pipx_bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLOGNAME\u003drunner","optionName":"client_env","optionValue":"LOGNAME\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_ID\u003d935368138","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_ID\u003d935368138","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTIONS\u003dtrue","optionName":"client_env","optionValue":"GITHUB_ACTIONS\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSE_BAZEL_FALLBACK_VERSION\u003dsilent:","optionName":"client_env","optionValue":"USE_BAZEL_FALLBACK_VERSION\u003dsilent:","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","optionName":"client_env","optionValue":"ANDROID_NDK_LATEST_HOME\u003d/usr/local/lib/android/sdk/ndk/29.0.14206865","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSYSTEMD_EXEC_PID\u003d2137","optionName":"client_env","optionValue":"SYSTEMD_EXEC_PID\u003d2137","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_REF\u003dmeroton/bb-portal/.github/workflows/test-workflow.yaml@refs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPOWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","optionName":"client_env","optionValue":"POWERSHELL_DISTRIBUTION_CHANNEL\u003dGitHub-Actions-ubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ENVIRONMENT\u003dgithub-hosted","optionName":"client_env","optionValue":"RUNNER_ENVIRONMENT\u003dgithub-hosted","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_MULTILEVEL_LOOKUP\u003d0","optionName":"client_env","optionValue":"DOTNET_MULTILEVEL_LOOKUP\u003d0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF\u003drefs/heads/test-branch","optionName":"client_env","optionValue":"GITHUB_REF\u003drefs/heads/test-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_OS\u003dLinux","optionName":"client_env","optionValue":"RUNNER_OS\u003dLinux","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_PROTECTED\u003dfalse","optionName":"client_env","optionValue":"GITHUB_REF_PROTECTED\u003dfalse","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOME\u003d/home/runner","optionName":"client_env","optionValue":"HOME\u003d/home/runner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_API_URL\u003dhttps://api.github.com","optionName":"client_env","optionValue":"GITHUB_API_URL\u003dhttps://api.github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dLANG\u003dC.UTF-8","optionName":"client_env","optionValue":"LANG\u003dC.UTF-8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","optionName":"client_env","optionValue":"GOROOT_1_25_X64\u003d/opt/hostedtoolcache/go/1.25.7/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_ARCH\u003dX64","optionName":"client_env","optionValue":"RUNNER_ARCH\u003dX64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dMEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","optionName":"client_env","optionValue":"MEMORY_PRESSURE_WATCH\u003d/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TEMP\u003d/home/runner/work/_temp","optionName":"client_env","optionValue":"RUNNER_TEMP\u003d/home/runner/work/_temp","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","optionName":"client_env","optionValue":"GITHUB_STATE\u003d/home/runner/work/_temp/_runner_file_commands/save_state_bf7fa67b-0449-4214-89b9-e69a51e055c2","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dEDGEWEBDRIVER\u003d/usr/local/share/edge_driver","optionName":"client_env","optionValue":"EDGEWEBDRIVER\u003d/usr/local/share/edge_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_21_X64\u003d/usr/lib/jvm/temurin-21-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","optionName":"client_env","optionValue":"GITHUB_EVENT_PATH\u003d/home/runner/work/_temp/_github_workflow/event.json","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_EVENT_NAME\u003dpush","optionName":"client_env","optionValue":"GITHUB_EVENT_NAME\u003dpush","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ID\u003d22613512849","optionName":"client_env","optionValue":"GITHUB_RUN_ID\u003d22613512849","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","optionName":"client_env","optionValue":"JAVA_HOME_17_X64\u003d/usr/lib/jvm/temurin-17-jdk-amd64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_HOME\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dHOMEBREW_NO_AUTO_UPDATE\u003d1","optionName":"client_env","optionValue":"HOMEBREW_NO_AUTO_UPDATE\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTOR\u003disakstenstrom","optionName":"client_env","optionValue":"GITHUB_ACTOR\u003disakstenstrom","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dNVM_DIR\u003d/home/runner/.nvm","optionName":"client_env","optionValue":"NVM_DIR\u003d/home/runner/.nvm","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSGX_AESM_ADDR\u003d1","optionName":"client_env","optionValue":"SGX_AESM_ADDR\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RUN_ATTEMPT\u003d1","optionName":"client_env","optionValue":"GITHUB_RUN_ATTEMPT\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_HOME\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_HOME\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","optionName":"client_env","optionValue":"GITHUB_GRAPHQL_URL\u003dhttps://api.github.com/graphql","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dACCEPT_EULA\u003dY","optionName":"client_env","optionValue":"ACCEPT_EULA\u003dY","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dUSER\u003drunner","optionName":"client_env","optionValue":"USER\u003drunner","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","optionName":"client_env","optionValue":"PSModulePath\u003d/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_SERVER_URL\u003dhttps://github.com","optionName":"client_env","optionValue":"GITHUB_SERVER_URL\u003dhttps://github.com","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPIPX_HOME\u003d/opt/pipx","optionName":"client_env","optionValue":"PIPX_HOME\u003d/opt/pipx","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","optionName":"client_env","optionValue":"GECKOWEBDRIVER\u003d/usr/local/share/gecko_driver","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","optionName":"client_env","optionValue":"CHROMEWEBDRIVER\u003d/usr/local/share/chromedriver-linux64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSHLVL\u003d1","optionName":"client_env","optionValue":"SHLVL\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","optionName":"client_env","optionValue":"ANDROID_SDK_ROOT\u003d/usr/local/lib/android/sdk","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dVCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","optionName":"client_env","optionValue":"VCPKG_INSTALLATION_ROOT\u003d/usr/local/share/vcpkg","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"RUNNER_TOOL_CACHE\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageVersion\u003d20260224.36.1","optionName":"client_env","optionValue":"ImageVersion\u003d20260224.36.1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDOTNET_NOLOGO\u003d1","optionName":"client_env","optionValue":"DOTNET_NOLOGO\u003d1","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","optionName":"client_env","optionValue":"GOROOT_1_23_X64\u003d/opt/hostedtoolcache/go/1.23.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","optionName":"client_env","optionValue":"GITHUB_WORKFLOW_SHA\u003d847b365866c97761b05d72619028b1ed23b5f4e8","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","optionName":"client_env","optionValue":"GOROOT_1_24_X64\u003d/opt/hostedtoolcache/go/1.24.13/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REF_NAME\u003dtest-branch","optionName":"client_env","optionValue":"GITHUB_REF_NAME\u003dtest-branch","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_JOB\u003dlite_build_and_test","optionName":"client_env","optionValue":"GITHUB_JOB\u003dlite_build_and_test","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dXDG_RUNTIME_DIR\u003d/run/user/1001","optionName":"client_env","optionValue":"XDG_RUNTIME_DIR\u003d/run/user/1001","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","optionName":"client_env","optionValue":"AZURE_EXTENSION_DIR\u003d/opt/az/azcliextensions","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY\u003dmeroton/bb-portal","optionName":"client_env","optionValue":"GITHUB_REPOSITORY\u003dmeroton/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCHROME_BIN\u003d/usr/bin/google-chrome","optionName":"client_env","optionValue":"CHROME_BIN\u003d/usr/bin/google-chrome","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","optionName":"client_env","optionValue":"ANDROID_NDK_ROOT\u003d/usr/local/lib/android/sdk/ndk/27.3.13750724","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","optionName":"client_env","optionValue":"GOROOT_1_22_X64\u003d/opt/hostedtoolcache/go/1.22.12/x64","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_RETENTION_DAYS\u003d90","optionName":"client_env","optionValue":"GITHUB_RETENTION_DAYS\u003d90","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dJOURNAL_STREAM\u003d9:17614","optionName":"client_env","optionValue":"JOURNAL_STREAM\u003d9:17614","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dRUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","optionName":"client_env","optionValue":"RUNNER_WORKSPACE\u003d/home/runner/work/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REPOSITORY\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REPOSITORY\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dPATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","optionName":"client_env","optionValue":"PATH\u003d/home/runner/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_BASE_REF\u003d","optionName":"client_env","optionValue":"GITHUB_BASE_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","optionName":"client_env","optionValue":"GHCUP_INSTALL_BASE_PREFIX\u003d/usr/local","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dCI\u003dtrue","optionName":"client_env","optionValue":"CI\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dSWIFT_PATH\u003d/usr/share/swift/usr/bin","optionName":"client_env","optionValue":"SWIFT_PATH\u003d/usr/share/swift/usr/bin","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dImageOS\u003dubuntu24","optionName":"client_env","optionValue":"ImageOS\u003dubuntu24","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_REPOSITORY_OWNER\u003dmeroton","optionName":"client_env","optionValue":"GITHUB_REPOSITORY_OWNER\u003dmeroton","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_HEAD_REF\u003d","optionName":"client_env","optionValue":"GITHUB_HEAD_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_ACTION_REF\u003d","optionName":"client_env","optionValue":"GITHUB_ACTION_REF\u003d","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dENABLE_RUNNER_TRACING\u003dtrue","optionName":"client_env","optionValue":"ENABLE_RUNNER_TRACING\u003dtrue","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dGITHUB_WORKFLOW\u003dBuild and test backend","optionName":"client_env","optionValue":"GITHUB_WORKFLOW\u003dBuild and test backend","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dDEBIAN_FRONTEND\u003dnoninteractive","optionName":"client_env","optionValue":"DEBIAN_FRONTEND\u003dnoninteractive","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003dAGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","optionName":"client_env","optionValue":"AGENT_TOOLSDIRECTORY\u003d/opt/hostedtoolcache","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_env\u003d_\u003d/home/runner/bin/bazel","optionName":"client_env","optionValue":"_\u003d/home/runner/bin/bazel","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--client_cwd\u003d/home/runner/work/bb-portal/bb-portal","optionName":"client_cwd","optionValue":"/home/runner/work/bb-portal/bb-portal","effectTags":["CHANGES_INPUTS"],"metadataTags":["HIDDEN"],"source":"options generated by bazel launcher"},{"combinedForm":"--build_event_json_file\u003dgithub-actions.bep.ndjson","optionName":"build_event_json_file","optionValue":"github-actions.bep.ndjson","effectTags":["AFFECTS_OUTPUTS"],"source":"command line options"}]}},{"sectionLabel":"residual","chunkList":{"chunk":["//..."]}}]}} +{"id":{"buildFinished":{}},"finished":{"overallSuccess":true,"finishTimeMillis":"1772525101660","exitCode":{"name":"SUCCESS"},"finishTime":"2026-03-03T08:05:01.660Z"}} diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuildByUUID/found.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuildByUUID/found.golden.json index 4602faf3..a68a7c51 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuildByUUID/found.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuildByUUID/found.golden.json @@ -1,7 +1,6 @@ { "getBuild": { - "buildURL": "https://example.com/build/1234", - "buildUUID": "c3a1db88-bad7-54fc-8795-e09393ff2f59", + "buildUUID": "59268e3d-4eb1-57f0-a88e-f81a384ff8f0", "id": "QnVpbGQ6MQ==", "invocations": { "edges": [ @@ -43,9 +42,11 @@ } ] }, - "sourceControl": null, "startedAt": "2024-05-13T23:43:23.045Z", - "userLdap": "nameless" + "tags": { + "edges": [] + }, + "username": "nameless" } } ], @@ -56,6 +57,17 @@ "startCursor": "gaFp0wAAAAAAAAAE" } }, + "tags": { + "edges": [ + { + "node": { + "id": "QnVpbGRUYWc6MQ==", + "key": "build_id", + "value": "https://example.com/build/1234" + } + } + ] + }, "timestamp": "2024-05-13T23:43:23.045Z" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuilds/get-all-builds.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuilds/get-all-builds.golden.json index 5ec9db5d..416963bf 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuilds/get-all-builds.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/FindBuilds/get-all-builds.golden.json @@ -3,9 +3,19 @@ "edges": [ { "node": { - "buildURL": "https://example.com/build/1234", - "buildUUID": "c3a1db88-bad7-54fc-8795-e09393ff2f59", + "buildUUID": "59268e3d-4eb1-57f0-a88e-f81a384ff8f0", "id": "QnVpbGQ6MQ==", + "tags": { + "edges": [ + { + "node": { + "id": "QnVpbGRUYWc6MQ==", + "key": "build_id", + "value": "https://example.com/build/1234" + } + } + ] + }, "timestamp": "2024-05-13T23:43:23.045Z" } } diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/GetTargetsList/get-all-targets.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/GetTargetsList/get-all-targets.golden.json index bddb2ee0..c030656d 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/GetTargetsList/get-all-targets.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/GetTargetsList/get-all-targets.golden.json @@ -3069,10 +3069,65 @@ "label": "//tools:sqlc_macos", "targetKind": "alias rule" } + }, + { + "node": { + "aspect": "", + "id": "VGFyZ2V0OjI4MA==", + "instanceName": { + "name": "" + }, + "label": "//ent/authschema:authschema_test", + "targetKind": "go_test rule" + } + }, + { + "node": { + "aspect": "", + "id": "VGFyZ2V0OjI4MQ==", + "instanceName": { + "name": "" + }, + "label": "//frontend:google_field_behavior_proto", + "targetKind": "_write_source_file rule" + } + }, + { + "node": { + "aspect": "", + "id": "VGFyZ2V0OjI4Mg==", + "instanceName": { + "name": "" + }, + "label": "//frontend:google_field_behavior_proto_src", + "targetKind": "get_proto_src rule" + } + }, + { + "node": { + "aspect": "", + "id": "VGFyZ2V0OjI4Mw==", + "instanceName": { + "name": "" + }, + "label": "//frontend:google_field_behavior_proto_test", + "targetKind": "_diff_test rule" + } + }, + { + "node": { + "aspect": "", + "id": "VGFyZ2V0OjI4NA==", + "instanceName": { + "name": "" + }, + "label": "//test/testutils:testutils", + "targetKind": "go_library rule" + } } ], "pageInfo": { - "endCursor": "gaFp0wAAAAAAAAEX", + "endCursor": "gaFp0wAAAAAAAAEc", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "gaFp0wAAAAAAAAAB" diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-analysis-invocation.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-analysis-invocation.golden.json index e992e7ac..58f00703 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-analysis-invocation.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-analysis-invocation.golden.json @@ -85,7 +85,6 @@ "name": "" }, "invocationID": "bb2b45d9-d695-4194-8fdc-01ba50477a92", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -201,12 +200,11 @@ "startupOptions": [] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2026-02-04T08:41:30.06Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "" - } + "tags": { + "edges": [] + }, + "username": "" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-build-invocation.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-build-invocation.golden.json index c1810236..5feeb18e 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-build-invocation.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-build-invocation.golden.json @@ -96,7 +96,6 @@ "name": "" }, "invocationID": "76651929-40d8-4f79-a2de-6a4a5092b76c", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": null, @@ -410,12 +409,11 @@ "startupOptions": [] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2026-02-04T08:42:48.403Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "" - } + "tags": { + "edges": [] + }, + "username": "" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-tests-invocation.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-tests-invocation.golden.json index 36f5a442..01d74668 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-tests-invocation.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-aborted-tests-invocation.golden.json @@ -135,7 +135,6 @@ "name": "" }, "invocationID": "64719226-555e-494d-9918-0fd25d468b1e", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -489,12 +488,11 @@ "startupOptions": [] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2026-02-04T09:03:25.376Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "root" - } + "tags": { + "edges": [] + }, + "username": "root" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json index 39a9c6fd..60213f2d 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json @@ -4,7 +4,7 @@ "authenticatedUser": null, "bazelVersion": "7.1.0", "build": { - "buildUUID": "c3a1db88-bad7-54fc-8795-e09393ff2f59", + "buildUUID": "59268e3d-4eb1-57f0-a88e-f81a384ff8f0", "id": "QnVpbGQ6MQ==" }, "canonicalCommandLine": { @@ -115,7 +115,6 @@ "name": "" }, "invocationID": "571d0839-fd63-4442-bb4d-61f7bfa4ddae", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -290,12 +289,11 @@ ] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2024-05-13T23:43:23.045Z", - "stepLabel": "nextjs_test", - "user": { - "Email": "", - "LDAP": "nameless" - } + "tags": { + "edges": [] + }, + "username": "nameless" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json index 576dc476..1a77cac7 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json @@ -108,7 +108,6 @@ "name": "" }, "invocationID": "df7178e2-a815-4654-a409-d18e845d1e35", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -261,12 +260,11 @@ ] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2024-05-03T00:29:47.443Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "nameless" - } + "tags": { + "edges": [] + }, + "username": "nameless" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json index 6291bec5..1ec0f7bc 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json @@ -151,7 +151,6 @@ "name": "" }, "invocationID": "08ae089d-4c85-405c-83fc-dbe9fc1dc942", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -330,12 +329,11 @@ ] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2024-05-03T00:24:15.374Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "nameless" - } + "tags": { + "edges": [] + }, + "username": "nameless" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json index 818d8716..1be0fcd8 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json @@ -108,7 +108,6 @@ "name": "" }, "invocationID": "fd03240f-697e-4b64-95bc-888e27445bf9", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -293,12 +292,11 @@ ] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2024-05-03T00:24:28.621Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "nameless" - } + "tags": { + "edges": [] + }, + "username": "nameless" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json index 4670f6e6..bce51b73 100644 --- a/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json +++ b/test/integrationtest/testdata/golden/TestAllBepUploadsAndGraphqlQueries/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json @@ -108,7 +108,6 @@ "name": "" }, "invocationID": "10a37e86-6e2b-4adb-83dd-c2906f42bdd6", - "isCiWorker": false, "metrics": { "actionSummary": { "actionCacheStatistics": { @@ -303,12 +302,11 @@ ] }, "profile": null, - "sourceControl": null, + "sourceControl": [], "startedAt": "2024-05-03T00:23:37.843Z", - "stepLabel": "", - "user": { - "Email": "", - "LDAP": "nameless" - } + "tags": { + "edges": [] + }, + "username": "nameless" } } \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/FindBuildByUUID/found.golden.json b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/FindBuildByUUID/found.golden.json new file mode 100644 index 00000000..b230b732 --- /dev/null +++ b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/FindBuildByUUID/found.golden.json @@ -0,0 +1,170 @@ +{ + "getBuild": { + "buildUUID": "e823d26e-7b76-50bd-ac6a-e8306779da6f", + "id": "QnVpbGQ6MQ==", + "invocations": { + "edges": [ + { + "node": { + "connectionMetadata": null, + "endedAt": "2026-03-03T08:05:01.66Z", + "exitCodeName": "SUCCESS", + "id": "QmF6ZWxJbnZvY2F0aW9uOjI=", + "invocationID": "8e56d2d7-ca9b-45e6-a08f-85e7749e3c83", + "originalCommandLine": { + "command": "build", + "executable": "bazel", + "options": [ + { + "option": "build_event_json_file", + "value": "github-actions.bep.ndjson" + } + ], + "residual": [ + "//..." + ], + "startupOptions": [] + }, + "startedAt": "2026-03-03T07:52:14.102Z", + "tags": { + "edges": [ + { + "node": { + "id": "SW52b2NhdGlvblRhZzox", + "key": "action", + "value": "__run_2" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzoy", + "key": "job", + "value": "build_and_test" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzoz", + "key": "workflow", + "value": "Build and test backend" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo0", + "key": "workflow_url", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + } + ] + }, + "username": "runner" + } + }, + { + "node": { + "connectionMetadata": null, + "endedAt": "2026-03-03T08:05:01.66Z", + "exitCodeName": "SUCCESS", + "id": "QmF6ZWxJbnZvY2F0aW9uOjM=", + "invocationID": "63500331-1b71-4d7a-9125-df9b3dfe4e0d", + "originalCommandLine": { + "command": "build", + "executable": "bazel", + "options": [ + { + "option": "build_event_json_file", + "value": "github-actions.bep.ndjson" + } + ], + "residual": [ + "//..." + ], + "startupOptions": [] + }, + "startedAt": "2026-03-03T07:52:14.102Z", + "tags": { + "edges": [ + { + "node": { + "id": "SW52b2NhdGlvblRhZzo1", + "key": "action", + "value": "__run_2" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo2", + "key": "job", + "value": "lite_build_and_test" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo3", + "key": "workflow", + "value": "Build and test backend" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo4", + "key": "workflow_url", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + } + ] + }, + "username": "runner" + } + } + ], + "pageInfo": { + "endCursor": "gaFp0wAAAAAAAAAD", + "hasNextPage": false, + "hasPreviousPage": false, + "startCursor": "gaFp0wAAAAAAAAAC" + } + }, + "tags": { + "edges": [ + { + "node": { + "id": "QnVpbGRUYWc6MQ==", + "key": "build_id", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6Mg==", + "key": "repo", + "value": "meroton/bb-portal" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6Mw==", + "key": "repo_url", + "value": "https://github.com/meroton/bb-portal" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6NA==", + "key": "workflow", + "value": "Build and test backend" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6NQ==", + "key": "workflow_url", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + } + ] + }, + "timestamp": "2026-03-03T07:52:14.102Z" + } +} \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/FindBuilds/find-all-builds.golden.json b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/FindBuilds/find-all-builds.golden.json new file mode 100644 index 00000000..b081e505 --- /dev/null +++ b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/FindBuilds/find-all-builds.golden.json @@ -0,0 +1,58 @@ +{ + "findBuilds": { + "edges": [ + { + "node": { + "buildUUID": "e823d26e-7b76-50bd-ac6a-e8306779da6f", + "id": "QnVpbGQ6MQ==", + "tags": { + "edges": [ + { + "node": { + "id": "QnVpbGRUYWc6MQ==", + "key": "build_id", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6Mg==", + "key": "repo", + "value": "meroton/bb-portal" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6Mw==", + "key": "repo_url", + "value": "https://github.com/meroton/bb-portal" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6NA==", + "key": "workflow", + "value": "Build and test backend" + } + }, + { + "node": { + "id": "QnVpbGRUYWc6NQ==", + "key": "workflow_url", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + } + ] + }, + "timestamp": "2026-03-03T07:52:14.102Z" + } + } + ], + "pageInfo": { + "endCursor": "gaFp0wAAAAAAAAAB", + "hasNextPage": false, + "hasPreviousPage": false, + "startCursor": "gaFp0wAAAAAAAAAB" + } + } +} \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/LoadFullBazelInvocationDetails/github-actions-lite.golden.json b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/LoadFullBazelInvocationDetails/github-actions-lite.golden.json new file mode 100644 index 00000000..3a89cc26 --- /dev/null +++ b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/LoadFullBazelInvocationDetails/github-actions-lite.golden.json @@ -0,0 +1,166 @@ +{ + "getBazelInvocation": { + "actions": [], + "authenticatedUser": null, + "bazelVersion": "9.0.0", + "build": { + "buildUUID": "e823d26e-7b76-50bd-ac6a-e8306779da6f", + "id": "QnVpbGQ6MQ==" + }, + "canonicalCommandLine": { + "command": "build", + "executable": "bazel", + "options": [ + { + "option": "flag_alias", + "value": "build_python_zip=@@rules_python+//python/config_settings:build_python_zip" + }, + { + "option": "flag_alias", + "value": "incompatible_default_to_explicit_init_py=@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py" + }, + { + "option": "flag_alias", + "value": "python_path=@@rules_python+//python/config_settings:python_path" + }, + { + "option": "flag_alias", + "value": "experimental_python_import_all_repositories=@@rules_python+//python/config_settings:experimental_python_import_all_repositories" + }, + { + "option": "build_event_json_file", + "value": "github-actions.bep.ndjson" + } + ], + "residual": [ + "//..." + ], + "startupOptions": [ + { + "option": "max_idle_secs", + "value": "10800" + }, + { + "option": "shutdown_on_low_sys_mem", + "value": "0" + }, + { + "option": "connect_timeout_secs", + "value": "30" + }, + { + "option": "output_user_root", + "value": "/home/runner/.cache/bazel/_bazel_runner" + }, + { + "option": "failure_detail_out", + "value": "/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto" + }, + { + "option": "idle_server_tasks", + "value": "1" + }, + { + "option": "write_command_log", + "value": "1" + }, + { + "option": "fatal_event_bus_exceptions", + "value": "0" + }, + { + "option": "windows_enable_symlinks", + "value": "0" + }, + { + "option": "client_debug", + "value": "false" + }, + { + "option": "ignore_all_rc_files", + "value": "1" + } + ] + }, + "configurations": [], + "connectionMetadata": null, + "endedAt": "2026-03-03T08:05:01.66Z", + "exitCodeName": "SUCCESS", + "hostname": "", + "id": "QmF6ZWxJbnZvY2F0aW9uOjM=", + "instanceName": { + "name": "" + }, + "invocationID": "63500331-1b71-4d7a-9125-df9b3dfe4e0d", + "metrics": null, + "numFetches": 0, + "optionsParsed": { + "explicitOptions": [ + "--build_event_json_file=github-actions.bep.ndjson" + ], + "options": [ + "--build_event_json_file=github-actions.bep.ndjson" + ] + }, + "originalCommandLine": { + "command": "build", + "executable": "bazel", + "options": [ + { + "option": "build_event_json_file", + "value": "github-actions.bep.ndjson" + } + ], + "residual": [ + "//..." + ], + "startupOptions": [] + }, + "profile": null, + "sourceControl": [ + { + "commit": "847b365866c97761b05d72619028b1ed23b5f4e8", + "commitURL": "https://github.com/meroton/bb-portal/commit/847b365866c97761b05d72619028b1ed23b5f4e8", + "id": "U291cmNlQ29udHJvbDoy", + "ref": "refs/heads/test-branch", + "refURL": "https://github.com/meroton/bb-portal/tree/refs/heads/test-branch", + "repo": "meroton/bb-portal", + "repoURL": "https://github.com/meroton/bb-portal" + } + ], + "startedAt": "2026-03-03T07:52:14.102Z", + "tags": { + "edges": [ + { + "node": { + "id": "SW52b2NhdGlvblRhZzo1", + "key": "action", + "value": "__run_2" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo2", + "key": "job", + "value": "lite_build_and_test" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo3", + "key": "workflow", + "value": "Build and test backend" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo4", + "key": "workflow_url", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + } + ] + }, + "username": "runner" + } +} \ No newline at end of file diff --git a/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/LoadFullBazelInvocationDetails/github-actions.golden.json b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/LoadFullBazelInvocationDetails/github-actions.golden.json new file mode 100644 index 00000000..b074ffba --- /dev/null +++ b/test/integrationtest/testdata/golden/TestInvocationMetadataExtraction/LoadFullBazelInvocationDetails/github-actions.golden.json @@ -0,0 +1,546 @@ +{ + "getBazelInvocation": { + "actions": [], + "authenticatedUser": null, + "bazelVersion": "9.0.0", + "build": { + "buildUUID": "e823d26e-7b76-50bd-ac6a-e8306779da6f", + "id": "QnVpbGQ6MQ==" + }, + "canonicalCommandLine": { + "command": "build", + "executable": "bazel", + "options": [ + { + "option": "flag_alias", + "value": "build_python_zip=@@rules_python+//python/config_settings:build_python_zip" + }, + { + "option": "flag_alias", + "value": "incompatible_default_to_explicit_init_py=@@rules_python+//python/config_settings:incompatible_default_to_explicit_init_py" + }, + { + "option": "flag_alias", + "value": "python_path=@@rules_python+//python/config_settings:python_path" + }, + { + "option": "flag_alias", + "value": "experimental_python_import_all_repositories=@@rules_python+//python/config_settings:experimental_python_import_all_repositories" + }, + { + "option": "build_event_json_file", + "value": "github-actions.bep.ndjson" + } + ], + "residual": [ + "//..." + ], + "startupOptions": [ + { + "option": "max_idle_secs", + "value": "10800" + }, + { + "option": "shutdown_on_low_sys_mem", + "value": "0" + }, + { + "option": "connect_timeout_secs", + "value": "30" + }, + { + "option": "output_user_root", + "value": "/home/runner/.cache/bazel/_bazel_runner" + }, + { + "option": "failure_detail_out", + "value": "/home/runner/.cache/bazel/_bazel_runner/dce2bcbbac8f1da3f14b617bb598383b/failure_detail.rawproto" + }, + { + "option": "idle_server_tasks", + "value": "1" + }, + { + "option": "write_command_log", + "value": "1" + }, + { + "option": "fatal_event_bus_exceptions", + "value": "0" + }, + { + "option": "windows_enable_symlinks", + "value": "0" + }, + { + "option": "client_debug", + "value": "false" + }, + { + "option": "ignore_all_rc_files", + "value": "1" + } + ] + }, + "configurations": [ + { + "cpu": "k8", + "id": "Q29uZmlndXJhdGlvbjoz", + "mnemonic": "k8-fastbuild" + }, + { + "cpu": "k8", + "id": "Q29uZmlndXJhdGlvbjo0", + "mnemonic": "k8-fastbuild" + } + ], + "connectionMetadata": null, + "endedAt": "2026-03-03T08:05:01.66Z", + "exitCodeName": "SUCCESS", + "hostname": "runnervmnay03", + "id": "QmF6ZWxJbnZvY2F0aW9uOjI=", + "instanceName": { + "name": "" + }, + "invocationID": "8e56d2d7-ca9b-45e6-a08f-85e7749e3c83", + "metrics": { + "actionSummary": { + "actionCacheStatistics": { + "hits": 0, + "id": "QWN0aW9uQ2FjaGVTdGF0aXN0aWNzOjI=", + "loadTimeInMs": 0, + "missDetails": [ + { + "count": 0, + "id": "TWlzc0RldGFpOjg=", + "reason": "DIFFERENT_ACTION_KEY" + }, + { + "count": 0, + "id": "TWlzc0RldGFpOjk=", + "reason": "DIFFERENT_DEPS" + }, + { + "count": 0, + "id": "TWlzc0RldGFpOjEw", + "reason": "DIFFERENT_ENVIRONMENT" + }, + { + "count": 0, + "id": "TWlzc0RldGFpOjEx", + "reason": "DIFFERENT_FILES" + }, + { + "count": 0, + "id": "TWlzc0RldGFpOjEy", + "reason": "CORRUPTED_CACHE_ENTRY" + }, + { + "count": 3117, + "id": "TWlzc0RldGFpOjEz", + "reason": "NOT_CACHED" + }, + { + "count": 1, + "id": "TWlzc0RldGFpOjE0", + "reason": "UNCONDITIONAL_EXECUTION" + }, + { + "count": 0, + "id": "TWlzc0RldGFpOjE1", + "reason": "DIGEST_MISMATCH" + } + ], + "misses": 3118, + "saveTimeInMs": 4, + "sizeInBytes": 1210271 + }, + "actionData": [ + { + "actionsCreated": 0, + "actionsExecuted": 1271, + "firstStartedMs": 1772524578657, + "id": "QWN0aW9uRGF0YTo0", + "lastEndedMs": 1772525098841, + "mnemonic": "GoCompilePkg", + "systemTime": 20519, + "userTime": 336660 + }, + { + "actionsCreated": 0, + "actionsExecuted": 406, + "firstStartedMs": 1772524516889, + "id": "QWN0aW9uRGF0YTo1", + "lastEndedMs": 1772525076152, + "mnemonic": "CppCompile", + "systemTime": 91215, + "userTime": 1579299 + }, + { + "actionsCreated": 0, + "actionsExecuted": 295, + "firstStartedMs": 1772524514008, + "id": "QWN0aW9uRGF0YTo2", + "lastEndedMs": 1772524516804, + "mnemonic": "Symlink", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 250, + "firstStartedMs": 1772524513793, + "id": "QWN0aW9uRGF0YTo3", + "lastEndedMs": 1772524515178, + "mnemonic": "CppModuleMap", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 98, + "firstStartedMs": 1772524514881, + "id": "QWN0aW9uRGF0YTo4", + "lastEndedMs": 1772524515843, + "mnemonic": "UnresolvedSymlink", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 97, + "firstStartedMs": 1772524508538, + "id": "QWN0aW9uRGF0YTo5", + "lastEndedMs": 1772524516190, + "mnemonic": "RepoMappingManifest", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 97, + "firstStartedMs": 1772524508570, + "id": "QWN0aW9uRGF0YToxMA==", + "lastEndedMs": 1772524516198, + "mnemonic": "SymlinkTree", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 97, + "firstStartedMs": 1772524508537, + "id": "QWN0aW9uRGF0YToxMQ==", + "lastEndedMs": 1772524516191, + "mnemonic": "SourceSymlinkManifest", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 97, + "firstStartedMs": 1772524515558, + "id": "QWN0aW9uRGF0YToxMg==", + "lastEndedMs": 1772525101625, + "mnemonic": "RunfilesTree", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 84, + "firstStartedMs": 1772524516234, + "id": "QWN0aW9uRGF0YToxMw==", + "lastEndedMs": 1772524516842, + "mnemonic": "NpmPackageExtract", + "systemTime": 103, + "userTime": 40 + }, + { + "actionsCreated": 0, + "actionsExecuted": 73, + "firstStartedMs": 1772525076282, + "id": "QWN0aW9uRGF0YToxNA==", + "lastEndedMs": 1772525084509, + "mnemonic": "GenProtoDescriptorSet", + "systemTime": 174, + "userTime": 343 + }, + { + "actionsCreated": 0, + "actionsExecuted": 59, + "firstStartedMs": 1772525076295, + "id": "QWN0aW9uRGF0YToxNQ==", + "lastEndedMs": 1772525084553, + "mnemonic": "GoProtocGen", + "systemTime": 543, + "userTime": 988 + }, + { + "actionsCreated": 0, + "actionsExecuted": 47, + "firstStartedMs": 1772524510384, + "id": "QWN0aW9uRGF0YToxNg==", + "lastEndedMs": 1772524516815, + "mnemonic": "TemplateExpand", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 43, + "firstStartedMs": 1772524508531, + "id": "QWN0aW9uRGF0YToxNw==", + "lastEndedMs": 1772524515315, + "mnemonic": "FileWrite", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 24, + "firstStartedMs": 1772524615448, + "id": "QWN0aW9uRGF0YToxOA==", + "lastEndedMs": 1772525101621, + "mnemonic": "GoLink", + "systemTime": 6662, + "userTime": 19571 + }, + { + "actionsCreated": 0, + "actionsExecuted": 20, + "firstStartedMs": 1772524399868, + "id": "QWN0aW9uRGF0YToxOQ==", + "lastEndedMs": 1772524515905, + "mnemonic": "CopyFile", + "systemTime": 50, + "userTime": 8 + }, + { + "actionsCreated": 0, + "actionsExecuted": 12, + "firstStartedMs": 1772524515999, + "id": "QWN0aW9uRGF0YToyMA==", + "lastEndedMs": 1772525079599, + "mnemonic": "Genrule", + "systemTime": 127, + "userTime": 3353 + }, + { + "actionsCreated": 0, + "actionsExecuted": 9, + "firstStartedMs": 1772524514036, + "id": "QWN0aW9uRGF0YToyMQ==", + "lastEndedMs": 1772524827443, + "mnemonic": "ExecutableSymlink", + "systemTime": 0, + "userTime": 0 + }, + { + "actionsCreated": 0, + "actionsExecuted": 7, + "firstStartedMs": 1772525085527, + "id": "QWN0aW9uRGF0YToyMg==", + "lastEndedMs": 1772525094315, + "mnemonic": "GoCompilePkgExternal", + "systemTime": 86, + "userTime": 1055 + }, + { + "actionsCreated": 0, + "actionsExecuted": 7, + "firstStartedMs": 1772524544745, + "id": "QWN0aW9uRGF0YToyMw==", + "lastEndedMs": 1772524544832, + "mnemonic": "GoTestGenTest", + "systemTime": 14, + "userTime": 13 + } + ], + "actionsCreated": 4818, + "actionsCreatedNotIncludingAspects": 4817, + "actionsExecuted": 3118, + "id": "QWN0aW9uU3VtbWFyeToy", + "remoteCacheHits": 0, + "runnerCount": [ + { + "actionsExecuted": 3118, + "execKind": "", + "id": "UnVubmVyQ291bnQ6NQ==", + "name": "total" + }, + { + "actionsExecuted": 1131, + "execKind": "", + "id": "UnVubmVyQ291bnQ6Ng==", + "name": "internal" + }, + { + "actionsExecuted": 22, + "execKind": "Local", + "id": "UnVubmVyQ291bnQ6Nw==", + "name": "local" + }, + { + "actionsExecuted": 1965, + "execKind": "Local", + "id": "UnVubmVyQ291bnQ6OA==", + "name": "processwrapper-sandbox" + } + ] + }, + "artifactMetrics": { + "id": "QXJ0aWZhY3RNZXRyaWNzOjI=", + "outputArtifactsFromActionCacheCount": 0, + "outputArtifactsFromActionCacheSizeInBytes": 0, + "outputArtifactsSeenCount": 6387, + "outputArtifactsSeenSizeInBytes": 2108083055, + "sourceArtifactsReadCount": 17908, + "sourceArtifactsReadSizeInBytes": 6920082876, + "topLevelArtifactsCount": 6325, + "topLevelArtifactsSizeInBytes": 1246159847 + }, + "id": "TWV0cmljczoy", + "memoryMetrics": { + "garbageMetrics": [ + { + "garbageCollected": 3406080, + "id": "R2FyYmFnZU1ldHJpY3M6MQ==", + "type": "CodeHeap 'non-profiled nmethods'" + }, + { + "garbageCollected": 16410368, + "id": "R2FyYmFnZU1ldHJpY3M6Mg==", + "type": "CodeHeap 'profiled nmethods'" + }, + { + "garbageCollected": 15312, + "id": "R2FyYmFnZU1ldHJpY3M6Mw==", + "type": "Compressed Class Space" + }, + { + "garbageCollected": 11507073024, + "id": "R2FyYmFnZU1ldHJpY3M6NA==", + "type": "G1 Eden Space" + }, + { + "garbageCollected": 2478255688, + "id": "R2FyYmFnZU1ldHJpY3M6NQ==", + "type": "G1 Old Gen" + }, + { + "garbageCollected": 132709832, + "id": "R2FyYmFnZU1ldHJpY3M6Ng==", + "type": "G1 Survivor Space" + }, + { + "garbageCollected": 57256, + "id": "R2FyYmFnZU1ldHJpY3M6Nw==", + "type": "Metaspace" + } + ], + "id": "TWVtb3J5TWV0cmljczoy", + "peakPostGcHeapSize": 0, + "peakPostGcTenuredSpaceHeapSize": 0, + "usedHeapSizePostBuild": 0 + }, + "networkMetrics": { + "id": "TmV0d29ya01ldHJpY3M6MQ==", + "systemNetworkStats": { + "bytesRecv": 3230311505, + "bytesSent": 15034040, + "id": "U3lzdGVtTmV0d29ya1N0YXRzOjE=", + "packetsRecv": 1222858, + "packetsSent": 114286, + "peakBytesRecvPerSec": 923700749, + "peakBytesSentPerSec": 26950, + "peakPacketsRecvPerSec": 361351, + "peakPacketsSentPerSec": 0 + } + }, + "targetMetrics": { + "id": "VGFyZ2V0TWV0cmljczoy", + "targetsConfigured": 54008, + "targetsConfiguredNotIncludingAspects": 53742, + "targetsLoaded": 0 + }, + "timingMetrics": { + "actionsExecutionStartInMs": 0, + "analysisPhaseTimeInMs": 147926, + "cpuTimeInMs": 297190, + "executionPhaseTimeInMs": 737099, + "id": "VGltaW5nTWV0cmljczoy", + "wallTimeInMs": 765696 + } + }, + "numFetches": 137, + "optionsParsed": { + "explicitOptions": [ + "--build_event_json_file=github-actions.bep.ndjson" + ], + "options": [ + "--build_event_json_file=github-actions.bep.ndjson" + ] + }, + "originalCommandLine": { + "command": "build", + "executable": "bazel", + "options": [ + { + "option": "build_event_json_file", + "value": "github-actions.bep.ndjson" + } + ], + "residual": [ + "//..." + ], + "startupOptions": [] + }, + "profile": null, + "sourceControl": [ + { + "commit": "847b365866c97761b05d72619028b1ed23b5f4e8", + "commitURL": "https://github.com/meroton/bb-portal/commit/847b365866c97761b05d72619028b1ed23b5f4e8", + "id": "U291cmNlQ29udHJvbDox", + "ref": "refs/heads/test-branch", + "refURL": "https://github.com/meroton/bb-portal/tree/refs/heads/test-branch", + "repo": "meroton/bb-portal", + "repoURL": "https://github.com/meroton/bb-portal" + } + ], + "startedAt": "2026-03-03T07:52:14.102Z", + "tags": { + "edges": [ + { + "node": { + "id": "SW52b2NhdGlvblRhZzox", + "key": "action", + "value": "__run_2" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzoy", + "key": "job", + "value": "build_and_test" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzoz", + "key": "workflow", + "value": "Build and test backend" + } + }, + { + "node": { + "id": "SW52b2NhdGlvblRhZzo0", + "key": "workflow_url", + "value": "https://github.com/meroton/bb-portal/actions/runs/22613512849" + } + } + ] + }, + "username": "runner" + } +} \ No newline at end of file diff --git a/test/integrationtest/types_test.go b/test/integrationtest/types_test.go index a692f4fa..4e2f94bd 100644 --- a/test/integrationtest/types_test.go +++ b/test/integrationtest/types_test.go @@ -5,6 +5,7 @@ import ( "github.com/buildbarn/bb-portal/pkg/proto/configuration/bb_portal" "github.com/buildbarn/bb-portal/pkg/testkit" + jmespath "github.com/buildbarn/bb-storage/pkg/proto/configuration/jmespath" ) type bepFile struct { @@ -26,11 +27,17 @@ type graphqlTestCase struct { // testCases are grouped by operation name then by test name. type graphqlTestTable map[string]map[string]graphqlTestCase +type dataExtractors struct { + authMetadataExtractors *bb_portal.AuthMetadataExtractorConfiguration + invocationMetadataExtractor *jmespath.Expression +} + type testCase struct { name string ctx context.Context saveDataLevel *bb_portal.BuildEventStreamService_SaveDataLevel - extractors *bb_portal.AuthMetadataExtractorConfiguration + dataExtractors *dataExtractors + buildKey string mockUUID *string bepFileTestCases []bepFileTestCase graphqlTestCases graphqlTestTable diff --git a/test/integrationtest/util_test.go b/test/integrationtest/util_test.go index 375dd3a6..7a127677 100644 --- a/test/integrationtest/util_test.go +++ b/test/integrationtest/util_test.go @@ -15,6 +15,7 @@ import ( "github.com/buildbarn/bb-portal/internal/graphql" "github.com/buildbarn/bb-portal/pkg/proto/configuration/bb_portal" "github.com/buildbarn/bb-storage/pkg/proto/configuration/auth" + jmespath "github.com/buildbarn/bb-storage/pkg/proto/configuration/jmespath" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.opentelemetry.io/otel/trace" @@ -35,13 +36,22 @@ func TestMain(m *testing.M) { } func setupTestBepUploader(t *testing.T, db database.Client, testCase testCase) *bepuploader.BepUploader { + var authExtractors *bb_portal.AuthMetadataExtractorConfiguration + var invocationExtractor *jmespath.Expression + if testCase.dataExtractors != nil { + authExtractors = testCase.dataExtractors.authMetadataExtractors + invocationExtractor = testCase.dataExtractors.invocationMetadataExtractor + } + config := &bb_portal.ApplicationConfiguration{ InstanceNameAuthorizer: &auth.AuthorizerConfiguration{ Policy: &auth.AuthorizerConfiguration_Allow{}, }, BesServiceConfiguration: &bb_portal.BuildEventStreamService{ SaveDataLevel: testCase.saveDataLevel, - AuthMetadataKeyConfiguration: testCase.extractors, + AuthMetadataKeyConfiguration: authExtractors, + InvocationMetadataExtractor: invocationExtractor, + BuildKey: testCase.buildKey, }, } bepUploader, err := bepuploader.NewBepUploader(db, config, nil, nil, noop.NewTracerProvider()) @@ -72,3 +82,40 @@ func checkIfErrorMatches(t *testing.T, wantErr, err error) { require.NoError(t, err) } } + +func githubActionsExtractor() *jmespath.Expression { + s := "" + + // This was the easiest way to build this string. We cannot use multiline + // strings since it contains backticks + s += "{" + s += " \"username\": env.USER" + s += " \"hostname\": env.HOSTNAME" + s += " \"sourceControls\": [" + s += " {" + s += " \"repo\": env.GITHUB_REPOSITORY" + s += " \"repoUrl\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY]) || `null`" + s += " \"ref\": env.GITHUB_REF" + s += " \"refUrl\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_REF) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'tree', env.GITHUB_REF]) || `null`" + s += " \"commit\": env.GITHUB_SHA" + s += " \"commitUrl\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_SHA) && join('/', [env.GITHUB_SERVER_URL, env.GITHUB_REPOSITORY, 'commit', env.GITHUB_SHA]) || `null`" + s += " }" + s += " ]" + s += " \"invocationTags\": {" + s += " \"workflow\": env.GITHUB_WORKFLOW" + s += " \"workflow_url\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY, 'actions', 'runs', env.GITHUB_RUN_ID]) || `null`" + s += " \"job\": env.GITHUB_JOB" + s += " \"action\": env.GITHUB_ACTION" + s += " }" + s += " \"buildTags\": {" + s += " \"repo\": env.GITHUB_REPOSITORY" + s += " \"repo_url\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY]) || `null`" + s += " \"workflow\": env.GITHUB_WORKFLOW" + s += " \"workflow_url\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY, 'actions', 'runs', env.GITHUB_RUN_ID]) || `null`" + s += " \"build_id\": (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) && join('/', [env.GITHUB_SERVER_URL , env.GITHUB_REPOSITORY, 'actions', 'runs', env.GITHUB_RUN_ID]) || `null`" + s += " }" + s += "}" + + expr := jmespath.Expression{Expression: s} + return &expr +}