This removes the locally maintained DCO checking script in favour of the
shared containre image provided by libvirt-ci.git.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
.gitlab-ci.yml | 21 ++++-----
scripts/require-dco.py | 99 ------------------------------------------
2 files changed, 9 insertions(+), 111 deletions(-)
delete mode 100755 scripts/require-dco.py
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 99e7b510c7..3752618b43 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -221,18 +221,15 @@ potfile:
- libvirt.pot
-# Check that all commits are signed-off for the DCO. Skip
-# on master branch and -maint branches, since we only need
-# to test developer's personal branches.
-dco:
+# Check that all commits are signed-off for the DCO.
+# Skip on "libvirt" namespace, since we only need to run
+# this test on developer's personal forks from which
+# merge requests are submitted
+check-dco:
stage: prebuild
- image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
- before_script:
- - *script_variables
+ image:
registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
script:
- - ./scripts/require-dco.py
- only:
- - branches
+ - /check-dco
except:
- - /^v.*-maint$/
- - master
+ variables:
+ - $CI_PROJECT_NAMESPACE == 'libvirt'
diff --git a/scripts/require-dco.py b/scripts/require-dco.py
deleted file mode 100755
index ae94393319..0000000000
--- a/scripts/require-dco.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python3
-
-# require-dco.py: validate all commits are signed off
-#
-# Copyright (C) 2020 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library. If not, see
-# <
http://www.gnu.org/licenses/>.
-
-import os
-import os.path
-import sys
-import subprocess
-
-cwd = os.getcwd()
-reponame = os.path.basename(cwd)
-repourl = "https://gitlab.com/libvirt/%s.git" % reponame
-
-subprocess.check_call(["git", "remote", "add",
"dcocheck", repourl])
-subprocess.check_call(["git", "fetch", "dcocheck",
"master"],
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL)
-
-ancestor = subprocess.check_output(["git", "merge-base",
"dcocheck/master", "HEAD"],
- universal_newlines=True)
-
-ancestor = ancestor.strip()
-
-subprocess.check_call(["git", "remote", "rm",
"dcocheck"])
-
-errors = False
-
-print("\nChecking for 'Signed-off-by: NAME <EMAIL>' on all commits
since %s...\n" % ancestor)
-
-log = subprocess.check_output(["git", "log", "--format=%H
%s", ancestor + "..."],
- universal_newlines=True)
-
-if log == "":
- commits = []
-else:
- commits = [[c[0:40], c[41:]] for c in log.strip().split("\n")]
-
-for sha, subject in commits:
-
- msg = subprocess.check_output(["git", "show", "-s",
sha],
- universal_newlines=True)
- lines = msg.strip().split("\n")
-
- print("🔍 %s %s" % (sha, subject))
- sob = False
- for line in lines:
- if "Signed-off-by:" in line:
- sob = True
- if "localhost" in line:
- print(" ❌ FAIL: bad email in %s" % line)
- errors = True
-
- if not sob:
- print(" ❌ FAIL missing Signed-off-by tag")
- errors = True
-
-if errors:
- print("""
-
-❌ ERROR: One or more commits are missing a valid Signed-off-By tag.
-
-
-This project requires all contributors to assert that their contributions
-are provided in compliance with the terms of the Developer's Certificate
-of Origin 1.1 (DCO):
-
-
https://developercertificate.org/
-
-To indicate acceptance of the DCO every commit must have a tag
-
- Signed-off-by: REAL NAME <EMAIL>
-
-This can be achieved by passing the "-s" flag to the "git commit"
command.
-
-To bulk update all commits on current branch "git rebase" can be used:
-
- git rebase -i master -x 'git commit --amend --no-edit -s'
-
-""")
-
- sys.exit(1)
-
-sys.exit(0)
--
2.25.4