diff --git a/bot/code_coverage_bot/notifier.py b/bot/code_coverage_bot/notifier.py index 4eabc661c..52d4e98c2 100644 --- a/bot/code_coverage_bot/notifier.py +++ b/bot/code_coverage_bot/notifier.py @@ -2,6 +2,7 @@ import structlog from code_coverage_bot.phabricator import parse_revision_id +from code_coverage_bot.phabricator import parse_revision_url from code_coverage_bot.secrets import secrets from code_coverage_bot.taskcluster import taskcluster_config @@ -21,8 +22,6 @@ def notify_email(revision, changesets, changesets_coverage): if any(text in desc for text in ["r=merge", "a=merge"]): continue - rev = changeset["node"] - # Lookup changeset coverage from phabricator uploader rev_id = parse_revision_id(changeset["desc"]) if rev_id is None: @@ -37,9 +36,8 @@ def notify_email(revision, changesets, changesets_coverage): added = sum(c["lines_added"] for c in coverage.values()) if covered < 0.2 * added: - content += "* [{}](https://firefox-code-coverage.herokuapp.com/#/changeset/{}): {} covered out of {} added.\n".format( - desc, rev, covered, added - ) # noqa + url = parse_revision_url(changeset["desc"]) + content += f"* [{desc}]({url}): {covered} covered out of {added} added.\n" if content == "": return diff --git a/bot/code_coverage_bot/phabricator.py b/bot/code_coverage_bot/phabricator.py index e17d97655..88e0f1b3c 100644 --- a/bot/code_coverage_bot/phabricator.py +++ b/bot/code_coverage_bot/phabricator.py @@ -15,7 +15,7 @@ logger = structlog.get_logger(__name__) PHABRICATOR_REVISION_REGEX = re.compile( - "Differential Revision: https://phabricator.services.mozilla.com/D([0-9]+)" + "Differential Revision: (https://phabricator.services.mozilla.com/D([0-9]+))" ) @@ -23,7 +23,14 @@ def parse_revision_id(desc): match = PHABRICATOR_REVISION_REGEX.search(desc) if not match: return None - return int(match.group(1)) + return int(match.group(2)) + + +def parse_revision_url(desc): + match = PHABRICATOR_REVISION_REGEX.search(desc) + if not match: + return None + return match.group(1) class PhabricatorUploader(object): diff --git a/bot/tests/test_notifier.py b/bot/tests/test_notifier.py index 67a8909b9..a97ec2bbe 100644 --- a/bot/tests/test_notifier.py +++ b/bot/tests/test_notifier.py @@ -50,7 +50,5 @@ def test_notification(mock_secrets, mock_taskcluster, mock_phabricator, fake_hg_ mail = notify_email(revision, stack, changesets_coverage) assert ( mail - == "* [Commit [(b'M', b'file')]Differential Revision: https://phabricator.services.mozilla.com/D2](https://firefox-code-coverage.herokuapp.com/#/changeset/{}): 0 covered out of 6 added.\n".format( ## noqa - revision - ) + == "* [Commit [(b'M', b'file')]Differential Revision: https://phabricator.services.mozilla.com/D2](https://phabricator.services.mozilla.com/D2): 0 covered out of 6 added.\n" # noqa )