Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToon Claes <toon@gitlab.com>2022-03-17 18:33:35 +0300
committerToon Claes <toon@gitlab.com>2022-03-17 18:33:35 +0300
commitdb8b5d43582182fd743ef2a1fdf84b07efd8f786 (patch)
treeafbe4b0b9fa0dc292baf9da9706c561f4519b51d
parent442277b91f5aa2822d52b810fd462a41c6cf5a0a (diff)
parent380f1ddaa17f49968ba1553c6ff56c66fbde9716 (diff)
Merge branch 'update-danger-config-2' into 'master'
Update Danger config to use new type & subtype labels See merge request gitlab-org/gitaly!4387
-rw-r--r--.gitlab-ci.yml20
-rw-r--r--Dangerfile17
-rw-r--r--danger/Gemfile2
-rw-r--r--danger/Gemfile.lock21
-rw-r--r--danger/plugins/project_helper.rb22
-rw-r--r--danger/rules/changelog/Dangerfile91
-rw-r--r--danger/rules/labels/Dangerfile47
-rw-r--r--danger/rules/merge_request/Dangerfile13
-rw-r--r--danger/rules/milestones/Dangerfile8
9 files changed, 35 insertions, 206 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 84c9940f1..4a33e6d17 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -29,6 +29,9 @@ include:
- template: Security/Dependency-Scanning.gitlab-ci.yml
- template: Security/Coverage-Fuzzing.gitlab-ci.yml
- template: Security/Secret-Detection.gitlab-ci.yml
+ - project: 'gitlab-org/quality/pipeline-common'
+ file:
+ - '/ci/danger-review.yml'
.cache_deps:
cache: &cache_deps_configuration
@@ -91,25 +94,8 @@ include:
danger-review:
stage: build
allow_failure: true
- only:
- - merge_requests
- except:
- - tags
- - master
variables:
BUNDLE_GEMFILE: danger/Gemfile
- before_script:
- - bundle install
- script:
- - >
- if [ -z "$DANGER_GITLAB_API_TOKEN" ]; then
- # Force danger to skip CI source GitLab and fallback to "local only git repo".
- unset GITLAB_CI
- # We need access to the base SHA to help danger determine the base commit for this shallow clone.
- bundle exec danger dry_run --fail-on-errors=true --verbose --base='$CI_MERGE_REQUEST_DIFF_BASE_SHA'
- else
- bundle exec danger --fail-on-errors=true --verbose
- fi
build:
stage: build
diff --git a/Dangerfile b/Dangerfile
index b938487f2..616556b1a 100644
--- a/Dangerfile
+++ b/Dangerfile
@@ -2,20 +2,17 @@
require 'gitlab-dangerfiles'
-Gitlab::Dangerfiles.for_project(self) do |dangerfiles|
- dangerfiles.import_defaults
+Gitlab::Dangerfiles.for_project(self) do |gitlab_dangerfiles|
+ gitlab_dangerfiles.config.files_to_category = {
+ %r{\Adoc/.*(\.(md|png|gif|jpg))\z} => :docs,
+ %r{\A(CONTRIBUTING|LICENSE|README|REVIEWING|STYLE)(\.md)?\z} => :docs,
- danger.import_plugin('danger/plugins/*.rb')
+ %r{.*} => [nil]
+ }.freeze
Dir.each_child('danger/rules') do |rule|
danger.import_dangerfile(path: "danger/rules/#{rule}")
end
- anything_to_post = status_report.values.any?(&:any?)
-
- if helper.ci? && anything_to_post
- markdown("**If needed, you can retry the [`danger-review` job](#{ENV['CI_JOB_URL']}) that generated this comment.**")
- end
+ gitlab_dangerfiles.import_defaults
end
-
-# vim: ft=ruby
diff --git a/danger/Gemfile b/danger/Gemfile
index 3a46d8197..5f3463039 100644
--- a/danger/Gemfile
+++ b/danger/Gemfile
@@ -1,3 +1,3 @@
source 'https://rubygems.org'
-gem 'gitlab-dangerfiles', require: false
+gem 'gitlab-dangerfiles', '~> 2.11.0', require: false
diff --git a/danger/Gemfile.lock b/danger/Gemfile.lock
index faefa107d..c4699bb11 100644
--- a/danger/Gemfile.lock
+++ b/danger/Gemfile.lock
@@ -11,7 +11,7 @@ GEM
colored2 (3.1.2)
cork (0.3.0)
colored2 (~> 3.1)
- danger (8.4.4)
+ danger (8.4.5)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
@@ -54,11 +54,11 @@ GEM
faraday-retry (1.0.3)
git (1.10.2)
rchardet (~> 1.8)
- gitlab (4.17.0)
+ gitlab (4.18.0)
httparty (~> 0.18)
- terminal-table (~> 1.5, >= 1.5.1)
- gitlab-dangerfiles (2.6.1)
- danger (>= 8.3.1)
+ terminal-table (>= 1.5.1)
+ gitlab-dangerfiles (2.11.0)
+ danger (>= 8.4.5)
danger-gitlab (>= 8.0.0)
httparty (0.20.0)
mime-types (~> 3.0)
@@ -69,7 +69,7 @@ GEM
kramdown (~> 2.0)
mime-types (3.4.1)
mime-types-data (~> 3.2015)
- mime-types-data (3.2021.1115)
+ mime-types-data (3.2022.0105)
multi_xml (0.6.0)
multipart-post (2.1.1)
nap (1.1.0)
@@ -85,15 +85,16 @@ GEM
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
- terminal-table (1.8.0)
- unicode-display_width (~> 1.1, >= 1.1.1)
- unicode-display_width (1.8.0)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
+ unicode-display_width (2.1.0)
PLATFORMS
+ x86_64-darwin-21
x86_64-linux
DEPENDENCIES
- gitlab-dangerfiles
+ gitlab-dangerfiles (~> 2.11.0)
BUNDLED WITH
2.2.22
diff --git a/danger/plugins/project_helper.rb b/danger/plugins/project_helper.rb
deleted file mode 100644
index bb7036586..000000000
--- a/danger/plugins/project_helper.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# frozen_string_literal: true
-
-module Danger
- # Common helper functions for danger scripts
- class ProjectHelper < ::Danger::Plugin
- # First-match win, so be sure to put more specific regex at the top...
- CATEGORIES = {
- %r{\Adoc/.*(\.(md|png|gif|jpg))\z} => :docs,
- %r{\A(CONTRIBUTING|LICENSE|README|REVIEWING|STYLE)(\.md)?\z} => :docs,
-
- %r{.*} => [nil]
- }.freeze
-
- def changes_by_category
- helper.changes_by_category(CATEGORIES)
- end
-
- def project_name
- 'gitaly'
- end
- end
-end
diff --git a/danger/rules/changelog/Dangerfile b/danger/rules/changelog/Dangerfile
deleted file mode 100644
index e1079b78a..000000000
--- a/danger/rules/changelog/Dangerfile
+++ /dev/null
@@ -1,91 +0,0 @@
-require 'yaml'
-
-def lint_commit(commit)
- trailer = commit.message.match(/^(?<name>Changelog):\s*(?<category>.+)$/i)
-
- return :missing if trailer.nil? || trailer[:category].nil?
-
- name = trailer[:name]
-
- unless name == 'Changelog'
- self.fail(
- "The changelog trailer for commit #{commit.sha} must be `Changelog` (starting with a capital C), not `#{name}`"
- )
-
- return :invalid
- end
-
- category = trailer[:category]
-
- return :valid if CATEGORIES.include?(category)
-
- self.fail(
- "Commit #{commit.sha} uses an invalid changelog category: #{category}"
- )
-
- :invalid
-end
-
-def presented_no_changelog_labels
- NO_CHANGELOG_LABELS.map { |label| %(~"#{label}") }.join(', ')
-end
-
-NO_CHANGELOG_LABELS = [
- 'documentation',
- 'type::tooling',
- 'tooling::pipelines',
- 'tooling::workflow',
- 'ci-build',
- 'meta'
-].freeze
-
-CATEGORIES = YAML
- .load_file(File.expand_path('../../../.gitlab/changelog_config.yml', __dir__))
- .fetch('categories')
- .keys
- .freeze
-
-SEE_DOC = "See [the documentation](https://docs.gitlab.com/ee/development/changelog.html).".freeze
-
-CHANGELOG_MISSING = <<~MSG.freeze
-**[CHANGELOG missing](https://docs.gitlab.com/ee/development/changelog.html).**
-
-To ceate a changelog, annotate one or more commits with the `Changelog` Git
-trailer. If you want to annotate the latest commit, you can do so using `git
-commit --amend`. If you want to annotate older or multiple commits, you need to
-do so using `git rebase -i`.
-
-When adding the trailer, you can use the following values:
-
-- #{CATEGORIES.join("\n- ")}
-
-For example:
-
-```
-This is the subject of your commit.
-
-This would be the body of your commit containing some extra details.
-
-Changelog: added
-```
-
-If your merge request doesn't warrant a CHANGELOG entry, consider adding any of
-the #{presented_no_changelog_labels} labels.
-
-#{SEE_DOC}
-MSG
-
-changelog_needed = (gitlab.mr_labels & NO_CHANGELOG_LABELS).empty?
-
-if changelog_needed
- checked = 0
-
- git.commits.each do |commit|
- case lint_commit(commit)
- when :valid, :invalid
- checked += 1
- end
- end
-
- warn(CHANGELOG_MISSING) if checked.zero?
-end
diff --git a/danger/rules/labels/Dangerfile b/danger/rules/labels/Dangerfile
index 6d1fa9d9b..6bebb8621 100644
--- a/danger/rules/labels/Dangerfile
+++ b/danger/rules/labels/Dangerfile
@@ -1,30 +1,12 @@
-def changelog_entry
- @changelog_entry ||=
- begin
- file = git.added_files.find { |path| path =~ %r{\Achangelogs/unreleased/} }
-
- YAML.safe_load(File.read(file))
- rescue
- # The change log danger file will handle this
- {}
- end
-end
-
-required_labels = %w[devops::create]
-
-TYPE_TO_LABEL = {
- 'added' => %w[type::feature feature::addition],
- 'fixed' => ['type::bug'],
- 'changed' => ['type::maintenance'],
- 'deprecated' => ['type::maintenance'],
- 'security' => ['security'],
- 'removed' => ['type::maintenance'],
- 'performance' => %w[type::maintenance performance],
- 'other' => ['type::tooling'],
- nil => []
-}
-
-INHERITABLE_LABELS = TYPE_TO_LABEL.values.flatten + %w[Deliverable]
+INHERITABLE_LABELS = %w[
+ type::bug
+ type::feature
+ type::maintenance
+ feature::addition
+ security
+ performance
+ Deliverable
+]
def inherited_labels
gitlab.api
@@ -35,13 +17,4 @@ def inherited_labels
.select { |label| INHERITABLE_LABELS.include?(label) }
end
-required_labels.concat(TYPE_TO_LABEL[changelog_entry["type"]])
-
-mr_labels = gitlab.mr_labels | required_labels | inherited_labels
-gitlab.api.update_merge_request(
- gitlab.mr_json['project_id'],
- gitlab.mr_json['iid'],
- labels: mr_labels.join(",")
-)
-
-# vim: ft=ruby
+helper.labels_to_add.concat(%w[devops::create] | inherited_labels)
diff --git a/danger/rules/merge_request/Dangerfile b/danger/rules/merge_request/Dangerfile
deleted file mode 100644
index b9c81d2af..000000000
--- a/danger/rules/merge_request/Dangerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-unless /^([[:alnum:]][[:lower:]]+: )?[[:upper:]]/ =~ gitlab.mr_title
- warn("Please capitalize the merge request title")
-end
-
-if gitlab.mr_body.empty?
- fail("Please provide a merge request description")
-end
-
-if gitlab.mr_title.length > 72
- warn "The title of this merge requests it too long"
-end
-
-# vim: ft=ruby
diff --git a/danger/rules/milestones/Dangerfile b/danger/rules/milestones/Dangerfile
index ce74bbb87..30ea440fe 100644
--- a/danger/rules/milestones/Dangerfile
+++ b/danger/rules/milestones/Dangerfile
@@ -1,5 +1,5 @@
unless gitlab.mr_json["milestone"]
- issues = gitlab.api.merge_request_closes_issues(gitlab.mr_json['project_id'], gitlab.mr_json['iid'])
+ issues = gitlab.api.merge_request_closes_issues(helper.mr_target_project_id, helper.mr_iid)
milestone_id = issues
.map { |i| i.milestone }
@@ -11,13 +11,11 @@ unless gitlab.mr_json["milestone"]
if milestone_id
gitlab.api.update_merge_request(
- gitlab.mr_json['project_id'],
- gitlab.mr_json['iid'],
+ helper.mr_target_project_id,
+ helper.mr_iid,
milestone_id: milestone_id
)
else
warn "No milestone was set, nor could it be detected from the issues this merge request closes."
end
end
-
-# vim: ft=ruby