Files
gitlabhq/Dangerfile
2025-07-22 09:17:25 +00:00

45 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'gitlab-dangerfiles'
# Version check for gitlab-dangerfiles gem to prevent cryptic error messages
begin
gem_version = Gem::Specification.find_by_name('gitlab-dangerfiles').version
unless Gem::Requirement.new('>= 4.0.0').satisfied_by?(gem_version)
puts "\n❌ ERROR: Incompatible gitlab-dangerfiles version detected!"
puts "Found version: #{gem_version}"
puts 'Required version: >= 4.0.0 (preferably ~> 4.9.0)'
puts "\n🔧 To fix this issue:"
puts '1. Run: bundle install'
puts '2. Or run: gem update gitlab-dangerfiles'
puts '3. Or clear gem cache: gem cleanup gitlab-dangerfiles'
puts "\n💡 This prevents the cryptic 'doesn't contain valid danger plugins' error."
puts ' when old gitlab-dangerfiles versions are cached.'
exit 1
end
rescue StandardError => e
puts "\n⚠️ Warning: Could not verify gitlab-dangerfiles version: #{e.message}"
puts 'Proceeding anyway, but if you see "doesn\'t contain valid danger plugins",'
puts 'try: bundle install or gem update gitlab-dangerfiles'
end
def ee?
# Support former project name for `dev` and support local Danger run
%w[gitlab gitlab-ee].include?(ENV['CI_PROJECT_NAME']) ||
Dir.exist?(File.expand_path('ee', __dir__))
end
project_name = ee? ? 'gitlab' : 'gitlab-foss'
Gitlab::Dangerfiles.for_project(self, project_name) do |gitlab_dangerfiles|
gitlab_dangerfiles.import_plugins
gitlab_dangerfiles.config.ci_only_rules = ProjectHelper::CI_ONLY_RULES
gitlab_dangerfiles.config.files_to_category = ProjectHelper::CATEGORIES
gitlab_dangerfiles.config.excluded_required_codeowners_sections_for_roulette.push('Database')
gitlab_dangerfiles.config.included_optional_codeowners_sections_for_roulette.push(
'Backend Static Code Analysis'
)
gitlab_dangerfiles.import_dangerfiles(except: %w[simple_roulette])
end