Adam Hegyi activity https://gitlab.com/ahegyi 2026-03-17T13:13:21Z tag:gitlab.com,2026-03-17:5212829524 Adam Hegyi commented on issue #242 at GitLab.org / orbit / GitLab Knowledge Graph 2026-03-17T13:13:21Z ahegyi Adam Hegyi [email protected]

With the new Siphon config structure in the monolith we'll ensure that sensitive fields are detected and skipped: gitlab-org/gitlab!226902

tag:gitlab.com,2026-03-17:5212365200 Adam Hegyi deleted project branch renovate/common-ci-tasks at GitLab.org / Analytics Section / platform-insights / Siphon Helm Charts 2026-03-17T11:30:08Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (ae5e39ec) at 17 Mar 11:30

tag:gitlab.com,2026-03-17:5212364660 Adam Hegyi pushed to project branch main at GitLab.org / Analytics Section / platform-insights / Siphon Helm Charts 2026-03-17T11:30:01Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (06235a4d) at 17 Mar 11:30

Merge branch 'renovate/common-ci-tasks' into 'main'

... and 1 more commit

tag:gitlab.com,2026-03-17:5212364656 Adam Hegyi accepted merge request !37: chore(deps): update pre-commit hook gitlab-com/gl-infra/common-ci-tasks to v3.12 at GitLab.org / Analytics Section / p... 2026-03-17T11:30:01Z ahegyi Adam Hegyi [email protected]

This MR contains the following updates:

Package Type Update Change
gitlab-com/gl-infra/common-ci-tasks repository minor v3.11v3.12

View the Renovate pipeline for this MR

Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.


Release Notes

gitlab-com/gl-infra/common-ci-tasks (gitlab-com/gl-infra/common-ci-tasks)

v3.12

Compare Source

3.12.0 (2026-03-17)
Features
  • add Helm Chart publish task (167678d)
Dependencies
  • deps: update dependency bridgecrewio/checkov to v3.2.508 (3ad887a)
  • deps: update dependency helm/helm to v3.20.1 (2f72bd7)
  • deps: update dependency open-policy-agent/opa to v1.14.1 (651bd00)
  • deps: update dependency renovate to v43.69.0 (eb8819e)
  • deps: update dependency ruby/ruby to v3.4.9 (4d1748d)
  • deps: update ghcr.io/containerbase/base docker tag to v14.6.0 (e5fe187)
  • deps: update pre-commit hook gitlab-com/gl-infra/common-ci-tasks to v3.11 (93ebe3f)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about these updates again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

tag:gitlab.com,2026-03-17:5212364218 Adam Hegyi approved merge request !37: chore(deps): update pre-commit hook gitlab-com/gl-infra/common-ci-tasks to v3.12 at GitLab.org / Analytics Section / p... 2026-03-17T11:29:54Z ahegyi Adam Hegyi [email protected]

This MR contains the following updates:

Package Type Update Change
gitlab-com/gl-infra/common-ci-tasks repository minor v3.11v3.12

View the Renovate pipeline for this MR

Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.


Release Notes

gitlab-com/gl-infra/common-ci-tasks (gitlab-com/gl-infra/common-ci-tasks)

v3.12

Compare Source

3.12.0 (2026-03-17)
Features
  • add Helm Chart publish task (167678d)
Dependencies
  • deps: update dependency bridgecrewio/checkov to v3.2.508 (3ad887a)
  • deps: update dependency helm/helm to v3.20.1 (2f72bd7)
  • deps: update dependency open-policy-agent/opa to v1.14.1 (651bd00)
  • deps: update dependency renovate to v43.69.0 (eb8819e)
  • deps: update dependency ruby/ruby to v3.4.9 (4d1748d)
  • deps: update ghcr.io/containerbase/base docker tag to v14.6.0 (e5fe187)
  • deps: update pre-commit hook gitlab-com/gl-infra/common-ci-tasks to v3.11 (93ebe3f)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about these updates again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

tag:gitlab.com,2026-03-17:5212342372 Adam Hegyi commented on merge request !226095 at GitLab.org / GitLab 2026-03-17T11:24:43Z ahegyi Adam Hegyi [email protected]

@stefanosxan, thanks! DB LGTM! 👍

I couldn't open the depesz links in the description, maybe they're expired?

tag:gitlab.com,2026-03-17:5212337441 Adam Hegyi approved merge request !226095: Auto-attach newly created custom work item types to existing custom lifecycles at GitLab.org / GitLab 2026-03-17T11:23:40Z ahegyi Adam Hegyi [email protected]

What does this MR do and why?

This MR automatically attaches newly created custom work item types to existing custom lifecycles in their namespace. When a user creates a new custom work item type, the system now automatically creates the necessary TypeCustomLifecycle associations so the new type inherits the custom lifecycle configuration.

Background

!225548 implemented the ability for custom work item types to fetch and use custom lifecycles. However, it only handled the read side - custom types could find their lifecycle, but when creating a new custom type, no lifecycle association was created.

This MR completes the implementation by handling the write side - automatically creating lifecycle associations when custom types are created.

Implementation Details

For namespace-scoped custom types:

  • When creating a custom type in a namespace with custom lifecycles, automatically attach it to the appropriate lifecycle
  • Prefers the lifecycle attached to the Issue type (as the default base type)
  • Falls back to the first available custom lifecycle if Issue type is not attached

For organization-scoped custom types:

  • Batch processes all root groups in the organization that have custom lifecycles
  • Creates lifecycle associations for each namespace with custom lifecycles
  • Uses insert_all! for efficient bulk insertion

Converted types:

  • Skips lifecycle attachment for types converted from system-defined types
  • These types inherit lifecycle behavior from their source system-defined type

Changes

  • Add type_custom_lifecycles association to Namespace model
  • Add for_namespace scope to TypeCustomLifecycle model
  • Update WorkItems::Types::CreateService to automatically attach custom types to lifecycles
  • Add comprehensive test coverage for all scenarios

Database

That's all from my local host as in production we don't have custom types yet.

In case we a single namespace the

  1. query to fetch the type_Custom_lifecycle for the namespace: (that's from production as the record exist ) https://console.postgres.ai/gitlab/gitlab-production-main/sessions/49519/commands/147654

  2. the query to create the record: https://explain-depesz.postgres.ai/s/Kl

In case we have an organization.

As it is a bit hard to create 100 root groups with custom lifecycles, i used the ones i have in my localhost that are 11.

  1. Fetch the first root group for the each_batch https://explain-depesz.postgres.ai/s/lE

  2. Fetch the last root_group for the each_batch https://explain-depesz.postgres.ai/s/pm

  3. Loop over the root groups: https://explain-depesz.postgres.ai/s/Za

  4. create type_custom_lifecycle records in bulk:

https://explain-depesz.postgres.ai/s/nx

References

How to set up and validate locally

Prerequisites

  1. Enable the feature flag: Feature.enable(:work_item_configurable_types)

Test scenario 1: Namespace with custom lifecycle

# In Rails console
group = Group.create!(name: 'Test Group', path: 'test-group')
lifecycle = WorkItems::Statuses::Custom::Lifecycle.create!(namespace: group, name: 'Custom Lifecycle')
issue_type = WorkItems::TypesFramework::SystemDefined::Type.default_issue_type

# Attach Issue type to the custom lifecycle
WorkItems::TypeCustomLifecycle.create!(
  work_item_type_id: issue_type.id,
  lifecycle: lifecycle,
  namespace: group
)

# Create a new custom work item type
service = WorkItems::Types::CreateService.new(
  container: group,
  current_user: User.first,
  params: { name: 'Feature', icon_name: 'work-item-feature' }
)
result = service.execute

# Verify the new type is attached to the custom lifecycle
custom_type = result.payload[:work_item_type]
type_lifecycle = WorkItems::TypeCustomLifecycle.find_by(work_item_type_id: custom_type.id)


type_lifecycle.lifecycle == lifecycle # Should be true

Test scenario 2: Organization with multiple groups

# Create organization with multiple groups having custom lifecycles
org = Organizations::Organization.create!(name: 'Test Org', path: 'test-org')
group1 = Group.create!(name: 'Group 1', path: 'group-1', organization: org)
group2 = Group.create!(name: 'Group 2', path: 'group-2', organization: org)

lifecycle1 = WorkItems::Statuses::Custom::Lifecycle.create!(namespace: group1, name: 'Lifecycle 1')
lifecycle2 = WorkItems::Statuses::Custom::Lifecycle.create!(namespace: group2, name: 'Lifecycle 2')

# Attach Issue type to both lifecycles
issue_type = WorkItems::TypesFramework::SystemDefined::Type.default_issue_type
WorkItems::TypeCustomLifecycle.create!(work_item_type_id: issue_type.id, lifecycle: lifecycle1, namespace: group1)
WorkItems::TypeCustomLifecycle.create!(work_item_type_id: issue_type.id, lifecycle: lifecycle2, namespace: group2)

# Create organization-level custom type
service = WorkItems::Types::CreateService.new(
  container: org,
  current_user: User.first,
  params: { name: 'Bug', icon_name: 'bug' }
)
result = service.execute

# Verify the type is attached to both groups' lifecycles
custom_type = result.payload[:work_item_type]
type_lifecycles = WorkItems::TypeCustomLifecycle.where(work_item_type_id: custom_type.id)

type_lifecycles.count == 2 # Should be true
type_lifecycles.pluck(:namespace_id).sort == [group1.id, group2.id].sort # Should be true
tag:gitlab.com,2026-03-17:5212315129 Adam Hegyi commented on merge request !226095 at GitLab.org / GitLab 2026-03-17T11:18:38Z ahegyi Adam Hegyi [email protected]

Just want to raise awareness that this might create a long running transaction (which might lock records longer than usual). Given that this code targets only self-managed customers with likely low number of top level groups, I think we're safe to keep the transaction.

tag:gitlab.com,2026-03-17:5212006414 Adam Hegyi pushed to project branch master at GitLab.org / GitLab 2026-03-17T10:13:17Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (d7fb4122) at 17 Mar 10:13

Merge branch 'fix-clickhouse-schema-projection-order' into 'master'

... and 1 more commit

tag:gitlab.com,2026-03-17:5212005212 Adam Hegyi deleted project branch fix-clickhouse-schema-projection-order at GitLab.org / GitLab 2026-03-17T10:13:02Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (23cf5be2) at 17 Mar 10:13

tag:gitlab.com,2026-03-17:5212002304 Adam Hegyi accepted merge request !227505: Fix ClickHouse schema projection order in ci_finished_builds at GitLab.org / GitLab 2026-03-17T10:12:26Z ahegyi Adam Hegyi [email protected]

What does this MR do and why?

The db/click_house/main.sql schema file has the two PROJECTIONs in ci_finished_builds in a different order than what the migrations produce. This causes the clickhouse-schema-check CI job to fail because it detects uncommitted schema changes after running migrations.

This MR reorders the projections so that by_project_pipeline_finished_at_name_v2 comes before build_stats_by_project_pipeline_finished_at_name_stage_name, matching the order produced by running all ClickHouse migrations.

References

Failing job: https://gitlab.com/gitlab-org/gitlab/-/jobs/13503051419

Screenshots or screen recordings

N/A — no UI changes.

How to set up and validate locally

No local validation needed. The fix is verified by the clickhouse-schema-check CI job passing on this branch.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

tag:gitlab.com,2026-03-17:5211936711 Adam Hegyi commented on merge request !10096 at GitLab.com / GitLab Infrastructure Team / Kubernetes Workloads / GitLab Helmfiles 2026-03-17T09:59:29Z ahegyi Adam Hegyi [email protected]

@arun.sori, can you take a look?

tag:gitlab.com,2026-03-17:5211827538 Adam Hegyi commented on merge request !10096 at GitLab.com / GitLab Infrastructure Team / Kubernetes Workloads / GitLab Helmfiles 2026-03-17T09:36:01Z ahegyi Adam Hegyi [email protected]

@GitLabDuo, I only see it in one consumer config

tag:gitlab.com,2026-03-17:5211807792 Adam Hegyi opened merge request !10096: Add deployments-related tables to Siphon at GitLab.com / GitLab Infrastructure Team / Kubernetes Workloads / GitLab H... 2026-03-17T09:32:00Z ahegyi Adam Hegyi [email protected]

What

This MR adds deployment-related tables to Siphon (main)

tag:gitlab.com,2026-03-17:5211805050 Adam Hegyi pushed new project branch ah-add-deployments-related-tables-to-siphon at GitLab.com / GitLab Infrastructure Team / Kubernetes Workloads / GitLab H... 2026-03-17T09:31:23Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (971fffa7) at 17 Mar 09:31

Add deployments-related tables to Siphon

tag:gitlab.com,2026-03-17:5211767199 Adam Hegyi deleted project branch ah-adaptive-logging-improvement at GitLab.org / Analytics Section / Siphon 2026-03-17T09:23:53Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (2941ea28) at 17 Mar 09:23

tag:gitlab.com,2026-03-17:5211766174 Adam Hegyi accepted merge request !320: Remove misleading reduced batch log message at GitLab.org / Analytics Section / Siphon 2026-03-17T09:23:42Z ahegyi Adam Hegyi [email protected]

What does this MR do?

Fixes misleading log message in adaptive batch processing. Previously, the "Batch finished with reduced batch size" message was logged even when the batch succeeded on the first attempt without any retries. This change introduces a retried flag to ensure the log message only appears when the batch size was actually reduced due to an error.

How do I test it?

  1. Run the existing tests to verify behavior
  2. Observe logs during batch processing - the reduced batch size message should only appear after actual retries
tag:gitlab.com,2026-03-17:5211766157 Adam Hegyi pushed to project branch main at GitLab.org / Analytics Section / Siphon 2026-03-17T09:23:42Z ahegyi Adam Hegyi [email protected]

Adam Hegyi (174be228) at 17 Mar 09:23

Merge branch 'ah-adaptive-logging-improvement' into 'main'

... and 1 more commit