Skip to content

Commit

Permalink
GitCommitBear.py: Require URL in commit message body
Browse files Browse the repository at this point in the history
This ensures that the git commit contains a URL
that relates to an issue.

Fixes coala#1112
  • Loading branch information
nkprince007 committed Dec 11, 2016
1 parent 02b72ab commit e124770
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions bears/vcs/git/GitCommitBear.py
Expand Up @@ -3,6 +3,8 @@
import shutil
import os

from urllib.parse import urlparse

from coalib.bears.GlobalBear import GlobalBear
from coalib.bears.requirements.PipRequirement import PipRequirement
from coala_utils.ContextManagers import change_directory
Expand Down Expand Up @@ -197,6 +199,25 @@ def check_body(self, body,
'HEAD commit. Please add one.')
return

urls = re.findall(r'(https|http?://\S+)', body)
has_good_url = False
for url in urls:
pieces = urlparse(url)
netloc = pieces.netloc
scheme = pieces.scheme
path = pieces.path
try:
assert all([scheme, netloc, path])
if netloc.find('github') != -1 and path.find('issues'):
has_good_url = True
except AssertionError:
pass

if not has_good_url:
yield Result(self, 'No issue related URL found in the body at '
'HEAD commit. Please add one.')
return

ignore_regexes = [re.compile(regex) for regex in ignore_length_regex]
if any((len(line) > body_line_length and
not any(regex.search(line) for regex in ignore_regexes))
Expand Down

0 comments on commit e124770

Please sign in to comment.