hghooks/mozhghooks/push_printurls.py (49 lines of code) (raw):

#!/usr/bin/env python from mozhg.util import ( identify_repo, ) def hook(ui, repo, node, hooktype, source=None, **kwargs): if source in (b"pull", b"strip"): return 0 info = identify_repo(repo) if not info[b"hosted"]: return 0 # All changesets from node to "tip" inclusive are part of this push. rev = repo[node].rev() tipctx = repo[b"tip"] tip = tipctx.rev() tip_node = tipctx.hex() num_changes = tip + 1 - rev url = b"https://hg.mozilla.org/%s/" % info[b"path"] if num_changes <= 10: plural = b"s" if num_changes > 1 else b"" ui.write(b"\nView your change%s here:\n" % plural) for i in range(rev, tip + 1): node = repo[i].hex() ui.write(b" %srev/%s\n" % (url, node)) else: ui.write(b"\nView the pushlog for these changes here:\n") ui.write(b" %spushloghtml?changeset=%s\n" % (url, tip_node)) # For repositories that report CI results to Treeherder, also output a # Treeherder url. treeherder_repo = ui.config(b"mozilla", b"treeherder_repo") if treeherder_repo: treeherder_base_url = b"https://treeherder.mozilla.org" ui.write(b"\nFollow the progress of your build on Treeherder:\n") ui.write( b" %s/jobs?repo=%s&revision=%s\n" % (treeherder_base_url, treeherder_repo, tip_node) ) # if specifying a try build and talos jobs are enabled, suggest that # user use compareperf if treeherder_repo == b"try": msg = repo[b"tip"].description() if ( (b" -t " in msg or b" --talos " in msg) and b"-t none" not in msg and b"--talos none" not in msg ): ui.write( b"\nIt looks like this try push has talos jobs. Compare " b"performance against a baseline revision:\n" ) ui.write( b" %s/perf.html#/comparechooser" b"?newProject=try&newRevision=%s\n" % (treeherder_base_url, tip_node) ) return 0