[pkg-perl-tools] 06/06: Add support to create pull requests for patches
Alex Muntada
alexm-guest at moszumanska.debian.org
Mon Oct 31 17:14:54 UTC 2016
This is an automated email from the git hooks/post-receive script.
alexm-guest pushed a commit to branch forward-github-pr
in repository pkg-perl-tools.
commit 7a6c58caaefbed3e2e2c8129ac82f362d4ee35cc
Author: Alex Muntada <alexm at alexm.org>
Date: Fri Oct 14 20:03:39 2016 +0200
Add support to create pull requests for patches
This feature permits to create pull requests in GitHub upstreams
instead of creating issues with the patch inlined as comments.
Add this to dpt.conf:
export PERL5LIB=$DPT_PACKAGES/pkg-perl-tools/lib
And then "dpt forward" should find modules in lib.
Lots of testing needed! This is still a work in progress.
---
scripts/forward | 76 +++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 49 insertions(+), 27 deletions(-)
diff --git a/scripts/forward b/scripts/forward
index dd91137..b3f2b65 100755
--- a/scripts/forward
+++ b/scripts/forward
@@ -16,6 +16,7 @@ use Text::Wrap qw(wrap);
use Proc::InvokeEditor;
use MIME::Lite;
use YAML::XS qw(LoadFile);
+use Debian::PkgPerl::GitHub;
use warnings;
use strict;
@@ -292,7 +293,7 @@ sub retrieve_bug_info {
sub get_subject {
my $default = ( $bug ? $bug_info{Subject} : $patch_info{Subject} ) // '';
$default = "[PATCH] $default"
- if $patch and $default !~ /\[PATCH\]/;
+ if $patch and $default !~ /\[PATCH\]/ and $opt_tracker ne 'github';
my $term = Term::ReadLine->new('forward');
@@ -402,8 +403,6 @@ sub prepare_body {
elsif ($patch) {
# patch but no bug
- my $pre = ( $opt_tracker eq 'github' ) ? ' ' : '';
-
$body
= "In Debian we are currently applying the following "
. "patch to $opt_dist.\n"
@@ -411,16 +410,18 @@ sub prepare_body {
$body = wrap( '', '', $body );
$body .= "\n\n";
- open my $patch_fh, '<', $patch;
-
- while ( my $line = <$patch_fh> ) {
- chomp($line);
- last if $line eq '---';
- last if $line =~ /^--- /;
- last if $line =~ /^diff\h--git\ha\//;
- last if $line =~ /^index\h[0-9a-f]+\.\.[0-9a-f]+\h\d*\h/;
- next if $line =~ /^Forwarded:/;
- $body .= $pre . $line . "\n";
+ if ( $opt_tracker ne 'github' ) {
+ open my $patch_fh, '<', $patch;
+
+ while ( my $line = <$patch_fh> ) {
+ chomp($line);
+ last if $line eq '---';
+ last if $line =~ /^--- /;
+ last if $line =~ /^diff\h--git\ha\//;
+ last if $line =~ /^index\h[0-9a-f]+\.\.[0-9a-f]+\h\d*\h/;
+ next if $line =~ /^Forwarded:/;
+ $body .= $line . "\n";
+ }
}
}
else {
@@ -607,23 +608,44 @@ sub submit_github {
access_token => $ENV{DPT_GITHUB_OAUTH},
);
- $gh->set_default_user_repo( $gh_user, $gh_repo );
-
- my $issue;
- if ($opt_ticket) {
- $issue = $gh->issue->issue($opt_ticket);
- $gh->issue->create_comment( $opt_ticket, { body => $body } );
+ if ($patch) {
+ my $orgname = 'pkg-perl-tools';
+ die "Cannot find your GitHub user in $orgname organization"
+ unless $gh->user->show($orgname)->{login} eq $orgname;
+
+ create_fork($gh, $gh_user, $gh_repo, $orgname)
+ unless fork_exists($gh, $orgname, $gh_repo);
+
+ my $branch = "pkg-perl-$^T";
+ clone_branch_patch_push($orgname, $gh_repo, $branch, $patch, $subject);
+
+ $issue_url = create_pull_request($gh, $gh_user, $gh_repo, {
+ title => $subject,
+ body => $body,
+ head => "$orgname:$branch",
+ base => 'master',
+ labels => [ split( /,/, $gh_labels ) ],
+ });
}
else {
- $issue = $gh->issue->create_issue(
- { title => $subject,
- body => $body,
- labels => [ split( /,/, $gh_labels ) ],
- }
- );
- }
+ $gh->set_default_user_repo( $gh_user, $gh_repo );
- $issue_url = $issue->{html_url};
+ my $issue;
+ if ($opt_ticket) {
+ $issue = $gh->issue->issue($opt_ticket);
+ $gh->issue->create_comment( $opt_ticket, { body => $body } );
+ }
+ else {
+ $issue = $gh->issue->create_issue(
+ { title => $subject,
+ body => $body,
+ labels => [ split( /,/, $gh_labels ) ],
+ }
+ );
+ }
+
+ $issue_url = $issue->{html_url};
+ }
ISSUE_CREATED:
mark_patch_as_forwarded($issue_url) if $patch;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/pkg-perl-tools.git
More information about the Pkg-perl-cvs-commits
mailing list