Security Advisories (2)
CVE-2014-9390 (2020-02-12)

Git before 1.8.5.6, 1.9.x before 1.9.5, 2.0.x before 2.0.5, 2.1.x before 2.1.4, and 2.2.x before 2.2.1 on Windows and OS X; Mercurial before 3.2.3 on Windows and OS X; Apple Xcode before 6.2 beta 3; mine all versions before 08-12-2014; libgit2 all versions up to 0.21.2; Egit all versions before 08-12-2014; and JGit all versions before 08-12-2014 allow remote Git servers to execute arbitrary commands via a tree containing a crafted .git/config file with (1) an ignorable Unicode codepoint, (2) a git~1/config representation, or (3) mixed case that is improperly handled on a case-insensitive filesystem.

CVE-2018-25032 (2022-03-25)

zlib before 1.2.12 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.

NAME

Git::Raw::Push - Git push class

VERSION

version 0.21

SYNOPSIS

use Git::Raw;

# open the Git repository at $path
my $repo = Git::Raw::Repository -> open($path);

# add a new remote
my $remote = Git::Raw::Remote -> create($repo, 'origin', $url);

# set the acquire credentials callback
$remote -> cred_acquire(sub { Git::Raw::Cred -> plaintext($usr, $pwd) });

# connect the remote
$remote -> connect('push');

# create a push object
my $push = Git::Raw::Push -> new($remote);

# add a refspec
my $spec = "refs/heads/master:refs/heads/master";
$push -> add_refspec($spec);

# actually push and disconnect the remote
$push -> finish;
$remote -> disconnect;

# now fetch from the remote
$remote -> connect('fetch');
$remote -> download;
$remote -> update_tips;
$remote -> disconnect;

DESCRIPTION

Helper class for pushing.

WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).

METHODS

new( $remote )

Create a new push object.

add_refspec( $spec )

Add the $spec refspec to the push object. Note that $spec is a string.

finish( )

Actually push.

unpack_ok( )

Check if the remote successfully unpacked.

AUTHOR

Alessandro Ghedini <alexbio@cpan.org>

LICENSE AND COPYRIGHT

Copyright 2012 Alessandro Ghedini.

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.