summaryrefslogtreecommitdiff
path: root/scripts/check-pr-title-and-commit-messages.py
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2024-05-25 18:36:53 +0300
committerGitHub <noreply@github.com>2024-05-25 18:36:53 +0300
commita871f5be5ad0d930e1df6480b9c40c90c6c27d33 (patch)
tree2ba412e7a3e78ea8eec604dded3fe2bc016ea429 /scripts/check-pr-title-and-commit-messages.py
parent34042f62b67cd75eb87ec7f3bda5d77cf1612c85 (diff)
parentff473bbad3b879d80a90b7baf25e31439f1edf67 (diff)
downloadvyos-build-a871f5be5ad0d930e1df6480b9c40c90c6c27d33.tar.gz
vyos-build-a871f5be5ad0d930e1df6480b9c40c90c6c27d33.zip
Merge pull request #637 from vyos/feature/T6386-sagitta-add-caller-wf
T6386: added reusable workflows and codeowners (sagitta)
Diffstat (limited to 'scripts/check-pr-title-and-commit-messages.py')
-rwxr-xr-xscripts/check-pr-title-and-commit-messages.py54
1 files changed, 0 insertions, 54 deletions
diff --git a/scripts/check-pr-title-and-commit-messages.py b/scripts/check-pr-title-and-commit-messages.py
deleted file mode 100755
index 8fe3ca79..00000000
--- a/scripts/check-pr-title-and-commit-messages.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python3
-
-import re
-import sys
-import time
-
-import requests
-
-# Use the same regex for PR title and commit messages for now
-title_regex = r'^(([a-zA-Z\-_.]+:\s)?)T\d+:\s+[^\s]+.*'
-commit_regex = title_regex
-
-
-def check_pr_title(title):
- if not re.match(title_regex, title):
- print(f"PR title '{title}' does not match the required format!")
- print("Valid title example: T99999: make IPsec secure")
- sys.exit(1)
-
-
-def check_commit_message(title):
- if not re.match(commit_regex, title):
- print("Commit title '{title}' does not match the required format!")
- print("Valid title example: T99999: make IPsec secure")
- sys.exit(1)
-
-
-if __name__ == '__main__':
- if len(sys.argv) < 2:
- print("Please specify pull request URL!")
- sys.exit(1)
-
- # There seems to be a race condition that causes this scripts to receive
- # an incomplete PR object that is missing certain fields,
- # which causes temporary CI failures that require re-running the script
- #
- # It's probably better to add a small delay to prevent that
- time.sleep(5)
-
- # Get the pull request object
- pr = requests.get(sys.argv[1]).json()
- if "title" not in pr:
- print("The PR object does not have a title field!")
- print("Did not receive a valid pull request object, please check the URL!")
- sys.exit(1)
-
- check_pr_title(pr["title"])
-
- # Get the list of commits
- commits = requests.get(pr["commits_url"]).json()
- for c in commits:
- # Retrieve every individual commit and check its title
- co = requests.get(c["url"]).json()
- check_commit_message(co["commit"]["message"])