summaryrefslogtreecommitdiff
path: root/danger
diff options
context:
space:
mode:
authorLukas Eipert <leipert@gitlab.com>2019-06-27 10:17:18 +0200
committerLukas Eipert <leipert@gitlab.com>2019-06-27 12:07:06 +0200
commit068d6baa38df09c43d7364e9f87caffe73168460 (patch)
treea9c953a6f3756937e01c0561def01f88ba9f037e /danger
parentedcd28ca44649b5b3e0729a95a4d6b684e1ff7cb (diff)
downloadgitlab-ce-068d6baa38df09c43d7364e9f87caffe73168460.tar.gz
Add a danger rule to suggest `docs-` prefixesleipert-danger-dogs
If an MR only changes files within `doc/` we can save valueable CI time by prepending a branch name with `docs-`. This danger rule helps educate people about that fact. On the other hand, if someone has a branch with a `docs` prefix or suffix, the branch shouldn't contain any changes outside of the `docs` directory
Diffstat (limited to 'danger')
-rw-r--r--danger/only_documentation/Dangerfile24
1 files changed, 24 insertions, 0 deletions
diff --git a/danger/only_documentation/Dangerfile b/danger/only_documentation/Dangerfile
new file mode 100644
index 00000000000..8e4564f22b6
--- /dev/null
+++ b/danger/only_documentation/Dangerfile
@@ -0,0 +1,24 @@
+# rubocop:disable Style/SignalException
+# frozen_string_literal: true
+
+has_only_docs_changes = helper.all_changed_files.all? { |file| file.start_with?('doc/') }
+is_docs_only_branch = gitlab.branch_for_head =~ /(^docs[\/-].*|.*-docs$)/
+
+if is_docs_only_branch && !has_only_docs_changes
+ fail "It seems like your branch name has a `docs` prefix or suffix. "\
+ "The CI won't run the full pipeline, but you also have changed non-docs files. "\
+ "Please recreate this MR with a new branch name."
+end
+
+if has_only_docs_changes && !is_docs_only_branch
+ markdown(<<~MARKDOWN)
+
+ ## Documentation only changes
+
+ Hey! Seems your merge request contains only docs changes.
+ Tired of waiting 2 hours for the pipeline to finish?
+ Next time, prepend `docs-` to [your branch name](https://docs.gitlab.com/ee/development/documentation/#branch-naming)
+ and the pipeline will finish before you say GitLab (x300)!
+
+ MARKDOWN
+end