Skip to content

Enable merge queue for inc_someip_gateway#168

Merged
eclipse-otterdog[bot] merged 2 commits intoeclipse-score:mainfrom
lurtz:enable_merge_queue_for_inc_someip_gateway
Mar 30, 2026
Merged

Enable merge queue for inc_someip_gateway#168
eclipse-otterdog[bot] merged 2 commits intoeclipse-score:mainfrom
lurtz:enable_merge_queue_for_inc_someip_gateway

Conversation

@lurtz
Copy link
Copy Markdown
Contributor

@lurtz lurtz commented Mar 24, 2026

This should reduce the amount of manual approval needed for running QNX tests, because those will then be mostly run via the merge queue.

Also other expensive tests are only run in the merge queue.

Depends on

There is also a drive-by fix to change the merge_method of devcontainer to merge.

@FScholPer
Copy link
Copy Markdown
Contributor

Squash should be only an option as this can lead to issues with copyright. Would that be possible then?

lurtz added a commit to eclipse-score/inc_someip_gateway that referenced this pull request Mar 27, 2026
At the moment all jobs are always run, which consumes some CI time and requires manual interaction in the case of QNX. With merge queues the approval for QNX jobs is not needed, after the pull request has been reviewed and approved.

Thus by default the jobs cross compiling the code or compiling for QNX are run only in the merge queue. They can still be run in the PR by setting the label `test-qnx` or `test-cross`.

The design is based on this blogpost: https://boinkor.net/2023/11/neat-github-actions-patterns-for-github-merge-queues/ and how communication handles QNX tests now with labels and the merge queue.

After this is merged the following pull request should be merged: eclipse-score/.eclipsefdn#168
@lurtz lurtz marked this pull request as ready for review March 27, 2026 15:50
@lurtz lurtz requested a review from a team as a code owner March 27, 2026 15:50
@eclipse-otterdog
Copy link
Copy Markdown
Contributor

Thank you for raising a pull request to update the configuration of your GitHub organization.
You can manually add reviewers to this PR to eventually enable auto-merging.

The following conditions need to be fulfilled for auto-merging to be available:

  • valid configuration
  • approved by a project lead
  • does not require any secrets
  • does not update settings only accessible via the GitHub Web UI
  • does not remove any resource
Otterdog commands and options

You can trigger otterdog actions by commenting on this PR:

  • /otterdog team-info checks the team / org membership for the PR author
  • /otterdog validate validates the configuration change
  • /otterdog validate info validates the configuration change, printing also validation infos
  • /otterdog check-sync checks if the base ref is in sync with live settings
  • /otterdog merge merges and applies the changes if the PR is eligible for auto-merging (only accessible for the author)
  • /otterdog done notifies the self-service bot that a required manual apply operation has been performed (only accessible for members of the admin team)
  • /otterdog apply re-apply a previously failed attempt (only accessible for members of the admin team)

@eclipse-otterdog
Copy link
Copy Markdown
Contributor

The author (lurtz) of this PR is associated with this organization in the role of MEMBER.

Additionally, lurtz is a member of the following teams:

@eclipse-otterdog

This comment has been minimized.

@eclipse-otterdog

This comment has been minimized.

@lurtz lurtz force-pushed the enable_merge_queue_for_inc_someip_gateway branch from bc2aead to 103d657 Compare March 27, 2026 15:51
@eclipse-otterdog

This comment has been minimized.

@lurtz lurtz force-pushed the enable_merge_queue_for_inc_someip_gateway branch from 103d657 to 8b21dd0 Compare March 27, 2026 15:52
@eclipse-otterdog

This comment has been minimized.

@eclipse-otterdog

This comment has been minimized.

@eclipse-otterdog

This comment has been minimized.

@lurtz
Copy link
Copy Markdown
Contributor Author

lurtz commented Mar 27, 2026

Squash should be only an option as this can lead to issues with copyright. Would that be possible then?

For merge_queues this is not possible to chose the merge_method on a per pull request level. Therefore I changed merge_method to merge.

See https://otterdog.readthedocs.io/en/latest/reference/organization/repository/ruleset/#merge-queue-settings

This should reduce the amount of manual approval needed for running QNX tests, because those will then be mostly run via the merge queue.

Also other expensive tests are only run in the merge queue.
@lurtz lurtz force-pushed the enable_merge_queue_for_inc_someip_gateway branch from 8b21dd0 to 3afbebd Compare March 27, 2026 16:13
@eclipse-otterdog

This comment has been minimized.

@eclipse-otterdog

This comment has been minimized.

@lurtz
Copy link
Copy Markdown
Contributor Author

lurtz commented Mar 27, 2026

Squash should be only an option as this can lead to issues with copyright. Would that be possible then?

I switched back to SQUASH, because I got feedback that as long as pull requests are done from a single company copyright is clear.

@eclipse-otterdog
Copy link
Copy Markdown
Contributor

Please find below the validation of the requested configuration changes:

Diff for 11f09f3
Project automotive.score[github_id=eclipse-score]
!                                                                                                             
! Warning:   org_secret[name="REPO_TOKEN_USERNAME"] has a value                                               
!            'vault:automotive.score/repo.eclipse.org/token-username' that does not use a credential          
!            provider.                                                                                        
!                                                                                                             
!                                                                                                             
! Warning:   org_secret[name="REPO_TOKEN_PASSWORD"] has a value                                               
!            'vault:automotive.score/repo.eclipse.org/token-password' that does not use a credential          
!            provider.                                                                                        
!                                                                                                             
  there have been 34 validation infos, enable verbose output to display them.

  
!   repository[name="inc_someip_gateway"] {
!     squash_merge_commit_message = "COMMIT_MESSAGES" -> "PR_BODY"
!     squash_merge_commit_title   = "COMMIT_OR_PR_TITLE" -> "PR_TITLE"
!   }

  
!   repo_ruleset[name="main", repository=inc_someip_gateway] {
!     include_refs                                         = [
!       "refs/heads/main" -> "~DEFAULT_BRANCH"
!     ]
!     required_merge_queue                                 = {
+      build_concurrency                                    = 5
+      max_group_size                                       = 5
+      merge_method                                         = "SQUASH"
+      min_group_size                                       = 1
+      requires_all_group_entries_to_pass_required_checks   = true
+      status_check_timeout                                 = 60
+      wait_time_for_minimum_group_size                     = 5
!     }
!     required_status_checks                               = {
!       status_checks                                        = [
+        "ci/can_merge"
+        "ci_pull_request_target/can_merge"
!       ]
!     }
!   }
  
  Plan: 0 to add, 5 to change, 0 to delete.

@eclipse-otterdog
Copy link
Copy Markdown
Contributor

Note

The current configuration is out-of-sync with the live settings:

Diff to live settings
Project automotive.score[github_id=eclipse-score]
  there have been 34 validation infos, enable verbose output to display them.

-  remove environment[name="copilot", repository=bazel_registry] {
-    deployment_branch_policy = "all"
-    name                     = "copilot"
-    reviewers                = []
-    wait_timer               = 0
-  }

-  remove environment[name="copilot", repository=reference_integration] {
-    deployment_branch_policy = "all"
-    name                     = "copilot"
-    reviewers                = []
-    wait_timer               = 0
-  }

  
!   repository[name="baselibs"] {
!     code_scanning_default_setup_enabled = true -> false
!   }

+  add repo_webhook[url="https://app.readthedocs.org/api/v2/webhook/score-communication/319863/", 
repository=communication] {
+    active       = true
+    content_type = "json"
+    events       = [
+      "push"
+      "pull_request"
+      "create"
+      "delete"
+    ],
+    insecure_ssl = "0"
+    secret       = "pass:bots/automotive.score/readthedocs.org/webhook_secret"
+  }

  
!   repository[name="bazel-tools-python"] {
!     gh_pages_build_type = "workflow" -> "disabled"
!     template_repository = "eclipse-score/module_template" -> null
!   }
  
  Note: setting 'template_repository' is read-only, will be skipped.

-  remove environment[name="github-pages", repository=bazel-tools-python] {
-    branch_policies          = [
-      "main"
-    ],
-    deployment_branch_policy = "selected"
-    name                     = "github-pages"
-    reviewers                = []
-    wait_timer               = 0
-  }

  
!   repository[name="bazel-tools-cc"] {
!     gh_pages_build_type = "workflow" -> "disabled"
!     template_repository = "eclipse-score/module_template" -> null
!   }
  
  Note: setting 'template_repository' is read-only, will be skipped.

-  remove environment[name="github-pages", repository=bazel-tools-cc] {
-    branch_policies          = [
-      "main"
-    ],
-    deployment_branch_policy = "selected"
-    name                     = "github-pages"
-    reviewers                = []
-    wait_timer               = 0
-  }

  
!   branch_protection_rule[pattern="main", repository=kyron] {
!     requires_linear_history = false -> true
!   }
  
  Plan: 1 to add, 4 to change, 4 to delete.

@eclipse-otterdog
Copy link
Copy Markdown
Contributor

This Pull Request is eligible for auto-merging as it passed the following checks:

  • valid configuration
  • approved by a project lead
  • does not require any secrets
  • does not update settings only accessible via the GitHub Web UI
  • does not remove any resource

Tip

In order to automatically merge and apply the changes, add a comment /otterdog merge. 🚀

@lurtz
Copy link
Copy Markdown
Contributor Author

lurtz commented Mar 30, 2026

/otterdog merge

@eclipse-otterdog eclipse-otterdog Bot merged commit ef7ddc5 into eclipse-score:main Mar 30, 2026
3 checks passed
@eclipse-otterdog
Copy link
Copy Markdown
Contributor

Note

The following changes have been applied successfully:

Project automotive.score[github_id=eclipse-score]
!                                                                                                             
! Warning:   org_secret[name="REPO_TOKEN_USERNAME"] has a value                                               
!            'vault:automotive.score/repo.eclipse.org/token-username' that does not use a credential          
!            provider.                                                                                        
!                                                                                                             
!                                                                                                             
! Warning:   org_secret[name="REPO_TOKEN_PASSWORD"] has a value                                               
!            'vault:automotive.score/repo.eclipse.org/token-password' that does not use a credential          
!            provider.                                                                                        
!                                                                                                             
  there have been 34 validation infos, enable verbose output to display them.

  
!   repository[name="inc_someip_gateway"] {
!     squash_merge_commit_message = "COMMIT_MESSAGES" -> "PR_BODY"
!     squash_merge_commit_title   = "COMMIT_OR_PR_TITLE" -> "PR_TITLE"
!   }

  
!   repo_ruleset[name="main", repository=inc_someip_gateway] {
!     include_refs                                         = [
!       "refs/heads/main" -> "~DEFAULT_BRANCH"
!     ]
!     required_merge_queue                                 = {
+      build_concurrency                                    = 5
+      max_group_size                                       = 5
+      merge_method                                         = "SQUASH"
+      min_group_size                                       = 1
+      requires_all_group_entries_to_pass_required_checks   = true
+      status_check_timeout                                 = 60
+      wait_time_for_minimum_group_size                     = 5
!     }
!     required_status_checks                               = {
!       status_checks                                        = [
+        "ci/can_merge"
+        "ci_pull_request_target/can_merge"
!       ]
!     }
!   }

  
  Applying changes:
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
  
  Done.
  
  Executed plan: 0 added, 5 changed, 0 deleted.

@lurtz lurtz deleted the enable_merge_queue_for_inc_someip_gateway branch March 30, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants