diff --git a/.gitlab/ci/cng/main.gitlab-ci.yml b/.gitlab/ci/cng/main.gitlab-ci.yml
index 325b06d59cd45f9cc49a397961cfa9e0f1362249..ad6371e7374db15cafd846af3b71f2d74f492820 100644
--- a/.gitlab/ci/cng/main.gitlab-ci.yml
+++ b/.gitlab/ci/cng/main.gitlab-ci.yml
@@ -56,6 +56,6 @@ review-build-cng:
     GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}"
     RUBY_VERSION: "${FULL_RUBY_VERSION}"
   trigger:
-    project: gitlab-org/build/CNG-mirror
+    project: ${CI_PROJECT_NAMESPACE}/build/CNG-mirror
     branch: $TRIGGER_BRANCH
     strategy: depend
diff --git a/scripts/trigger-build.rb b/scripts/trigger-build.rb
index 89a2bf034cc53fd8bfed86a019a677c13608ee12..8f509399fd4265f4c9df4a8553b808485aef33f1 100755
--- a/scripts/trigger-build.rb
+++ b/scripts/trigger-build.rb
@@ -66,7 +66,7 @@ def simple_forwarded_variables
 
     def com_gitlab_client
       @com_gitlab_client ||= Gitlab.client(
-        endpoint: 'https://gitlab.com/api/v4',
+        endpoint: endpoint,
         private_token: self.class.access_token
       )
     end
@@ -113,12 +113,16 @@ def trigger_stable_branch_if_detected?
     end
 
     def stable_branch?
-      ENV['CI_COMMIT_REF_NAME'] =~ /^[\d-]+-stable(-ee)?$/
+      ENV['CI_COMMIT_REF_NAME'] =~ /^[\d-]+-stable(-ee|-jh)?$/
     end
 
     def fallback_ref
       if trigger_stable_branch_if_detected? && stable_branch?
-        ENV['CI_COMMIT_REF_NAME'].delete_suffix('-ee')
+        if ENV['CI_PROJECT_NAMESPACE'] == 'gitlab-cn'
+          ENV['CI_COMMIT_REF_NAME'].delete_suffix('-jh')
+        elsif ENV['CI_PROJECT_NAMESPACE'] == 'gitlab-org'
+          ENV['CI_COMMIT_REF_NAME'].delete_suffix('-ee')
+        end
       else
         primary_ref
       end
@@ -142,6 +146,12 @@ def version_file_variables
         params[version_file] = version_param_value(version_file)
       end
     end
+
+    def endpoint
+      return "https://jihulab.com/api/v4" if ENV['CI_PROJECT_NAMESPACE'] == 'gitlab-cn'
+
+      "https://gitlab.com/api/v4"
+    end
   end
 
   class CNG < Base
@@ -162,7 +172,9 @@ def ref_param_name
     end
 
     def primary_ref
-      'master'
+      return "main-jh" if ENV['CI_PROJECT_NAMESPACE'] == 'gitlab-cn'
+
+      "master"
     end
 
     def trigger_stable_branch_if_detected?
diff --git a/spec/scripts/trigger-build_spec.rb b/spec/scripts/trigger-build_spec.rb
index 3ac383e8d30b292412f3ac9b2b7aa78a02dab40b..1dd1f429b4345eef7e60a90142106ac090e25cc6 100644
--- a/spec/scripts/trigger-build_spec.rb
+++ b/spec/scripts/trigger-build_spec.rb
@@ -237,8 +237,14 @@ def ref_param_name
       describe "TRIGGER_BRANCH" do
         context 'when CNG_BRANCH is not set' do
           it 'sets TRIGGER_BRANCH to master' do
+            stub_env('CI_PROJECT_NAMESPACE', 'gitlab-org')
             expect(subject.variables['TRIGGER_BRANCH']).to eq('master')
           end
+
+          it 'sets TRIGGER_BRANCH to main-jh on JH side' do
+            stub_env('CI_PROJECT_NAMESPACE', 'gitlab-cn')
+            expect(subject.variables['TRIGGER_BRANCH']).to eq('main-jh')
+          end
         end
 
         context 'when CNG_BRANCH is set' do
@@ -261,6 +267,20 @@ def ref_param_name
           end
 
           it 'sets TRIGGER_BRANCH to the corresponding stable branch' do
+            stub_env('CI_PROJECT_NAMESPACE', 'gitlab-org')
+            expect(subject.variables['TRIGGER_BRANCH']).to eq(ref)
+          end
+        end
+
+        context 'when CI_COMMIT_REF_NAME is a stable branch on JH side' do
+          let(:ref) { '14-10-stable' }
+
+          before do
+            stub_env('CI_COMMIT_REF_NAME', "#{ref}-jh")
+          end
+
+          it 'sets TRIGGER_BRANCH to the corresponding stable branch' do
+            stub_env('CI_PROJECT_NAMESPACE', 'gitlab-cn')
             expect(subject.variables['TRIGGER_BRANCH']).to eq(ref)
           end
         end