[pkg-perl-tools] 04/04: Add support to create pull requests for patches
Alex Muntada
alexm-guest at moszumanska.debian.org
Fri Oct 14 18:08:43 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 479c3891a3acbd9dca64e579dfa554e7932acc9f
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 44b194f..5d87390 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');
@@ -401,8 +402,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"
@@ -410,16 +409,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 {
@@ -605,23 +606,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