aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-09-02 23:55:08 +0200
committerMichał Górny <mgorny@gentoo.org>2017-09-11 22:32:44 +0200
commit342d3d5479b08d97635bc09615083b5a4493eb92 (patch)
treef5649862dd643c8b035554d567348c39631347ad
parentDo not enable optimizations by default to work-around pycparser issue (diff)
downloadportage-342d3d5479b08d97635bc09615083b5a4493eb92.tar.gz
portage-342d3d5479b08d97635bc09615083b5a4493eb92.tar.bz2
portage-342d3d5479b08d97635bc09615083b5a4493eb92.zip
repoman: Unify usage of --bug and --closes options
Replace the different logic used for --bug and --closes options with a uniform solution. As a result, --closes now interprets numbers as Gentoo bug numbers rather than GitHub pull request numbers. This change is mostly done since the 'Closes' tag now started being used to resolve Gentoo bugs. While changing the logic could be confusing, it has not made it into a release yet and the GitHub default would not be very useful anyway. After all, repoman is normally used to commit the changes before a pull request is created, which implies that the user does not know the pull request number yet. The 'Closes' tag for pull request is usually added by the reviewer before merging, using 'git --amend' since repoman has no amending option. That considered, it is quite unlikely that anyone would find --closes with pull request numbers useful.
-rw-r--r--repoman/man/repoman.17
-rw-r--r--repoman/pym/repoman/actions.py17
2 files changed, 8 insertions, 16 deletions
diff --git a/repoman/man/repoman.1 b/repoman/man/repoman.1
index a49c72c0d..41df8ed2f 100644
--- a/repoman/man/repoman.1
+++ b/repoman/man/repoman.1
@@ -31,9 +31,10 @@ is forced for known bug trackers.
\fB-c\fR, \fB--closes\fR
Include a \fBCloses\fR tag in the commit message footer that can be used
to close pull requests (and issues) on GitHub and other compatible
-services (GitLab, Bitbucket). The argument can be either a PR number for
-the gentoo/gentoo GitHub repository or a full PR/bug URL. For bug URLs,
-HTTPS is forced automatically for known bug/PR trackers.
+services (GitLab, Bitbucket). The argument can be either a Gentoo bug
+number or a full PR/bug URL. Gentoo bug URLs are automatically shortened
+to the canonical \fBhttps://bugs.gentoo.org/NNNNNN\fR form, and HTTPS
+is forced for known bug trackers.
.TP
\fB\-\-digest=<y|n>\fR
Automatically update Manifest digests for modified files. This
diff --git a/repoman/pym/repoman/actions.py b/repoman/pym/repoman/actions.py
index 2112299c0..b76a6e466 100644
--- a/repoman/pym/repoman/actions.py
+++ b/repoman/pym/repoman/actions.py
@@ -357,7 +357,9 @@ class Actions(object):
# Common part of commit footer
commit_footer = "\n"
- for bug in self.options.bug:
+ for tag, bug in chain(
+ (('Bug', x) for x in self.options.bug),
+ (('Closes', x) for x in self.options.closes)):
# case 1: pure number NNNNNN
if bug.isdigit():
bug = 'https://bugs.gentoo.org/%s' % (bug, )
@@ -374,18 +376,7 @@ class Actions(object):
elif (purl.scheme == 'http' and
purl.netloc in self.https_bugtrackers):
bug = urlunsplit(('https',) + purl[1:])
- commit_footer += "Bug: %s\n" % (bug, )
-
- for closes in self.options.closes:
- # case 1: pure number NNNN
- if closes.isdigit():
- closes = 'https://github.com/gentoo/gentoo/pull/%s' % (closes, )
- else:
- purl = urlsplit(closes)
- # case 2: bug tracker w/ http -> https
- if purl.netloc in self.https_bugtrackers:
- closes = urlunsplit(('https',) + purl[1:])
- commit_footer += "Closes: %s\n" % (closes, )
+ commit_footer += "%s: %s\n" % (tag, bug)
if dco_sob:
commit_footer += "Signed-off-by: %s\n" % (dco_sob, )