Skip to content

chore(release): Helios v1.8.0#1192

Closed
FelixTJDietrich wants to merge 5 commits into
mainfrom
staging
Closed

chore(release): Helios v1.8.0#1192
FelixTJDietrich wants to merge 5 commits into
mainfrom
staging

Conversation

@FelixTJDietrich

Copy link
Copy Markdown
Collaborator

Release v1.8.0 — promotes staging to main for the production release. Squash-merged to keep main history linear.

Ships (since v1.7.2):

See the v1.8.0 release notes for the full, human-readable highlights and the complete changelog (v1.7.2...v1.8.0).

krusche and others added 5 commits July 6, 2026 12:04
…eanup (Option B) (#1182)

Replace the implicit Hibernate gitRepositoryFilter tenant magic with explicit per-query repository filtering, and remove unnecessary @transactional. Closes latent cross-repository read/write leaks (findById/PK loads were never covered by the filter) and the write-on-GET on settings, converts the accidental Issue.body @lob (PostgreSQL Large Object) to a plain text column (V57), and scopes the workflow-label / deployment-workflow-attach / workflow-group-membership write paths to the current repository.

Verified: full server test suite green (470 tests), all CI checks green, staging-deployed and smoke-tested.
…#1187)

Persist workflow_job events (WorkflowJob + V58) and render a fixed, config-driven set of canonical pipeline nodes (helios.pipeline) mapped to Artemis CI job names. New /api/pipeline/{branch,pr}; client renders every node always (pending until a job appears). Full server suite + client spec green; config documented in docs/admin/pipeline_configuration.rst.
…7d/30d) (#1188)

Stops the ~8h forced re-login: the running helios realm capped sessions at 28800s and --import-realm is a no-op on an existing realm. Adds an isolated, non-blocking one-shot keycloak-config service (prod + dev) that idempotently applies 7d idle / 30d max via kcadm on every deploy. Verified on staging (28800 -> 604800/2592000). Docs: docs/admin/keycloak_sessions.rst.
…ack for others (#1189)

The canonical Build/Tests/Quality catalog is Artemis-shaped and global, so other repos (e.g. ls1intum/Helios) showed an all-pending skeleton and lost their group view. Gate the catalog to helios.pipeline.repositories (default ls1intum/Artemis); every other repo falls back to its WorkflowGroup-based pipeline. Guarded by PipelineIT.
@FelixTJDietrich FelixTJDietrich requested a review from a team as a code owner July 7, 2026 09:19
@codacy-production

Copy link
Copy Markdown

Not up to standards ⛔

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

* another repository into their group. Membership workflows must belong to the path repository: a
* foreign workflow id is rejected (400) and no membership is created for it.
*/
class WorkflowGroupScopingIT extends HeliosIntegrationTest {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck> reported by reviewdog 🐶
Abbreviation in name 'WorkflowGroupScopingIT' must contain no more than '1' consecutive capital letters.

}

@Test
void addingAWorkflowFromAnotherRepositoryToAGroupIsRejectedAndCreatesNoMembership()

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck> reported by reviewdog 🐶
Abbreviation in name 'addingAWorkflowFromAnotherRepositoryToAGroupIsRejectedAndCreatesNoMembership' must contain no more than '1' consecutive capital letters.

}

@Test
void addingAWorkflowFromTheSameRepositoryToAGroupSucceeds() throws Exception {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck> reported by reviewdog 🐶
Abbreviation in name 'addingAWorkflowFromTheSameRepositoryToAGroupSucceeds' must contain no more than '1' consecutive capital letters.

* repository with no settings row it returns transient defaults and persists nothing. Previously a
* GET INSERTed a row as a side effect, and a plain GET must never write.
*/
class GitRepoSettingsIT extends HeliosIntegrationTest {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck> reported by reviewdog 🐶
Abbreviation in name 'GitRepoSettingsIT' must contain no more than '1' consecutive capital letters.

}

@Test
void getSettingsReturnsDefaultsAndDoesNotPersistARow() throws Exception {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck> reported by reviewdog 🐶
Abbreviation in name 'getSettingsReturnsDefaultsAndDoesNotPersistARow' must contain no more than '1' consecutive capital letters.

* request or workflow-run id; a foreign id must not surface another repository's test results. The
* entry lookups are scoped, so cross-repo and no-header (unauthenticated) requests must 404.
*/
class TestResultScopingIT extends HeliosIntegrationTest {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.naming.AbbreviationAsWordInNameCheck> reported by reviewdog 🐶
Abbreviation in name 'TestResultScopingIT' must contain no more than '1' consecutive capital letters.

import org.springframework.test.web.servlet.MockMvc;

/**
* Base class for full-context integration tests. Boots the whole application against a real embedded

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck> reported by reviewdog 🐶
Line is longer than 100 characters (found 101).

* PostgreSQL (zonky, via Docker) with the real Flyway schema, and exposes {@link MockMvc} so tests
* drive the actual servlet stack — interceptors, Open-Session-In-View, and the repository layer.
*
* <p>This is the harness for the tenant-isolation guard tests: it exercises the same request path that

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck> reported by reviewdog 🐶
Line is longer than 100 characters (found 103).

* production uses, so a scoping test written here passes both with the legacy Hibernate
* {@code gitRepositoryFilter} and with explicit per-query filtering after the migration.
*
* <p>External integrations that would otherwise reach out on startup are neutralised: NATS is disabled

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck> reported by reviewdog 🐶
Line is longer than 100 characters (found 103).

* {@code gitRepositoryFilter} and with explicit per-query filtering after the migration.
*
* <p>External integrations that would otherwise reach out on startup are neutralised: NATS is disabled
* ({@code nats.enabled=false}), the schedulers/reconciliation/notifications/AI are turned off, and the

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [checkstyle] <com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck> reported by reviewdog 🐶
Line is longer than 100 characters (found 103).

@FelixTJDietrich

Copy link
Copy Markdown
Collaborator Author

Closing in favour of the repo's direct promotion: staging is fast-forwarded onto main (all commits preserved, identical history — no squash, no merge commit), and the release is cut from that commit. Tracking via the v1.8.0 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants