diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index 666a4fbe3a919adcb436605065bd3075747e2a27..ca1cdc5a61e70a72acd5d46768b9de8322762042 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -1776,7 +1776,7 @@
       changes: *code-backstage-patterns
       when: on_success
 
-.setup:rules:no_ee_check:
+.setup:rules:no-ee-check:
   rules:
     - <<: *if-not-foss
       when: never
@@ -1784,6 +1784,14 @@
       changes: *code-backstage-patterns
       when: on_success
 
+.setup:rules:no-jh-check:
+  rules:
+    - <<: *if-jh
+      when: never
+    - <<: *if-default-refs
+      changes: *code-backstage-patterns
+      when: on_success
+
 .setup:rules:verify-tests-yml:
   rules:
     - <<: *if-not-ee
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index 7c4ffafce1c1656a7cef0a37870decff0acd0028..4c674f3893936048cfb100d79cc66ac6839190bb 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -41,13 +41,21 @@ gitlab_git_test:
   script:
     - spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
 
-no_ee_check:
+no-ee-check:
   extends:
     - .minimal-job
-    - .setup:rules:no_ee_check
+    - .setup:rules:no-ee-check
   stage: test
   script:
-    - scripts/no-ee-check
+    - scripts/no-dir-check ee
+
+no-jh-check:
+  extends:
+    - .minimal-job
+    - .setup:rules:no-jh-check
+  stage: test
+  script:
+    - scripts/no-dir-check jh
 
 verify-tests-yml:
   extends:
diff --git a/scripts/no-dir-check b/scripts/no-dir-check
new file mode 100755
index 0000000000000000000000000000000000000000..bbb303da9b2ae534bf3a8db6577f63ccf7826c6f
--- /dev/null
+++ b/scripts/no-dir-check
@@ -0,0 +1,9 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+dir_name = ARGV.first || abort('ERROR: Please specify a directory.')
+dir_path = File.expand_path(dir_name, "#{__dir__}/..")
+
+if Dir.exist?(dir_path)
+  abort("ERROR: This repository contains #{dir_name}/ directory. #{dir_name.upcase} changes should go to the corresponding repository.")
+end
diff --git a/scripts/no-ee-check b/scripts/no-ee-check
deleted file mode 100755
index a878a4424e9752cbd1edf67b7dc835c8c15933f3..0000000000000000000000000000000000000000
--- a/scripts/no-ee-check
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env ruby
-# frozen_string_literal: true
-
-ee_path = File.join(File.expand_path(__dir__), '../ee')
-
-if Dir.exist?(ee_path)
-  puts 'The repository contains /ee directory. There should be no /ee directory in CE repo.'
-  exit 1
-end