Issue with using group runner to process MRs from forks

Problem to solve

We use a group runner to automate tasks in our project. One of the developers forked the repository into his personal namespace, made changes, and created a Merge Request (MR) back to the original project.

Actual behavior (problem):
The MR pipeline is triggered under the user’s personal namespace (once I open job it appears as https://gitlab.our.domain/user/cms/-/jobs/260590), and thus the group runner is not used to execute jobs. As a result, this job is not executed and fails due to a timeout.

Expected behavior:

The MR pipeline is triggered using the group runner configured for the project group, and jobs are executed successfully.

Questions:

  1. Is it possible to configure the group runner to process pipelines for MRs created from forks?
  2. Can the group runner be assigned to a user to ensure job execution in such cases?
  3. Is there any other recommended way to ensure that pipelines for MRs from forks are processed using the group runner?

Configuration

  • Self-managed

Versions:

root@gitlab:~# gitlab-rake gitlab:env:info

System information
System: Ubuntu 20.04
Current User: git
Using RVM: no
Ruby Version: 3.2.5
Gem Version: 3.5.23
Bundler Version:2.5.11
Rake Version: 13.0.6
Redis Version: 7.0.15
Sidekiq Version:7.2.4
Go Version: unknown

GitLab information
Version: 17.6.1
Revision: 8a31863db02
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 14.11
URL: https://gitlab.lfstrm.tv
HTTP Clone URL: https://gitlab.lfstrm.tv/some-group/some-project.git
SSH Clone URL: ssh://git@gitlab.lfstrm.tv:2002/some-group/some-project.git
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version: 14.39.0
Repository storages:

  • default: unix:/var/opt/gitlab/gitaly/gitaly.socket
    GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell

Gitaly

  • default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket
  • default Version: 17.6.1
  • default Git Version: 2.47.0