[polari/ci-test] ci: Check for issue/MR URLs in commit messages
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [polari/ci-test] ci: Check for issue/MR URLs in commit messages
- Date: Thu, 14 Feb 2019 20:37:57 +0000 (UTC)
commit 4b67bc35b0316c1700a5e504bd9dd2a9516d0b44
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Feb 14 21:12:59 2019 +0100
ci: Check for issue/MR URLs in commit messages
.gitlab-ci.yml | 11 +++++++++++
.gitlab-ci/check-commit-log.sh | 31 +++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bfa05ab..4e36eaf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,5 @@
stages:
+ - commit_check
- source_check
- build
- review
@@ -7,6 +8,16 @@ variables:
BUNDLE: "polari-git.flatpak"
LINT_LOG: "eslint-report.txt"
+check_commit_log:
+ image: fedora:latest
+ stage: commit_check
+ before_script:
+ - dnf install -y git
+ script:
+ - ./.gitlab-ci/check-commit-log.sh
+ only:
+ - merge_requests
+
eslint:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
stage: source_check
diff --git a/.gitlab-ci/check-commit-log.sh b/.gitlab-ci/check-commit-log.sh
new file mode 100755
index 0000000..cc3bcee
--- /dev/null
+++ b/.gitlab-ci/check-commit-log.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
+ echo Cannot review non-merge request
+ exit 1
+fi
+
+git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
+
+branch_point=$(git merge-base HEAD FETCH_HEAD)
+
+commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
+
+if [ -z "$commits" ]; then
+ echo Commit range empty
+ exit 1
+fi
+
+function commit_message_has_url() {
+ commit=$1
+ commit_message=$(git show -s --format='format:%b' $commit)
+ echo "$commit_message" | grep -qe
"\($CI_MERGE_REQUEST_PROJECT_URL/\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
+ return $?
+}
+
+for commit in $commits; do
+ if ! commit_message_has_url $commit; then
+ echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
+ exit 1
+ fi
+done
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]