Provided by: pkg-perl-tools_0.74_all bug

NAME

       Debian::PkgPerl::GitHub - Help forwarding a bug or a patch to GitHub

SYNOPSIS

           use Debian::PkgPerl::Bug;
           use Debian::PkgPerl::Patch;
           use Debian::PkgPerl::Message;
           use Debian::PkgPerl::GitHub;

           my %params = (
               url     => 'https://github.com/foo/bar/issues',
               tracker => 'github',
               dist    => 'Foo-Bar',
               name    => 'My Name',
               email   => 'my.name@example.com',
               mailto  => 'your.name@example.com',
           );

           my %bug_info = Debian::PkgPerl::Bug
               ->new( bug => 123 )
               ->retrieve_bug_info();
           my $bug_msg = Debian::PkgPerl::Message->new(
               %params,
               info => \%bug_info,
           );
           print Debian::PkgPerl::GitHub->new(
               message => $bug_msg,
               ticket  => 456,
           )->forward();

           my %patch_info = Debian::PkgPerl::Patch
               ->new( patch => 'foo-bar.patch' )
               ->retrieve_patch_info();
           my $patch_msg = Debian::PkgPerl::Message->new(
               %params,
               info => \%patch_info,
           );
           print Debian::PkgPerl::GitHub->new(
               message  => $patch_msg,
               fallback => 0,
           )->forward();

DESCRIPTION

       This module exports several helpers that that provide support for forwarding patches to
       GitHub as pull requests.

METHODS

   new(%params)
       Parameters:

       •   message

           Message to be forwarded to an upstream project.

       •   ticket

           Existing issue number to forward the bug to.

       •   fallback

           Enables fallback to forwarding a patch as an issue if pull-request fails for any
           reason. Default is false.

       Environment:

       •   DPT_GITHUB_OAUTH

           GitHub personal API token. No default.

       •   DPT_GITHUB_ORGNAME

           Organization used to fork upstreams. Defaults to pkg-perl-tools.

       •   DPT_GITHUB_BRANCH

           Branch name for pull requests. Defaults to "pkg-perl-$^T".

       •   DPT_GITHUB_PROTOCOL

           Protocol used to clone a repository. Defaults to ssh.  Accepted protocols: ssh, https.

   fork_exists()
       Checks if any member in the GitHub organization has already forked a repository.

       Returns:

       Boolean value.

   create_fork()
       Creates a repository fork by an organization.

       Returns:

       The new forked repository.

   clone_branch_patch_push()
       Clones a repository in a temporary directory, creates a new branch, applies the patch,
       commits the change, pushes it and removes the temporary working copy.

       Returns:

       Nothing.

   create_pull_request()
       Returns:

       Pull request URL on success, nothing otherwise.

   forward_patch_as_pull_request()
   forward_patch_as_ticket()
       Fallback to forwarding a patch as a bug.

       Returns:

       Issue URL on success, nothing otherwise.

   forward_bug_as_issue()
   forward()
       Forward an issue as a pull request or bug.

   test()
       Support for off-line testing.

LICENSE AND COPYRIGHT

       Copyright 2016 Alex Muntada.
       Copyright 2018 Damyan Ivanov.

       This program is free software; you can redistribute it and/or modify it under the terms of
       either: the GNU General Public License as published by the Free Software Foundation; or
       the Artistic License.

       See http://dev.perl.org/licenses/ for more information.