table of contents
other versions
- wheezy 1.15-2
- wheezy-backports 1.31-1~bpo70+1
- jessie 1.33-2
- testing 1.34-2
- unstable 1.34-2
App::KGB::Client::Git(3pm) | User Contributed Perl Documentation | App::KGB::Client::Git(3pm) |
NAME¶
App::KGB::Client::Git - Git support for KGB clientSYNOPSIS¶
my $c = App::KGB::Client::Git->new({...
git_dir => '/some/where', # defaults to $ENV{GIT_DIR}
old_rev => 'a7c42f58',
new_rev => '8b37ed8a', });
DESCRIPTION¶
App::KGB::Client::Git provides KGB client with knowledge about Git repositories. Its method returns a series of App::KGB::Commit objects, each corresponding to the next commit of the received series.CONSTRUCTION¶
App::KGB::Client::Git->new( { parameters... } )¶
Input data can be given in any of the following ways:- as parameters to the constructor
-
# a single commit my $c = App::KGB::Client::Git->new({ old_rev => '9ae45bc', new_rev => 'a04d3ef', refname => 'master', });
- as a list of revisions/refnames
-
# several commits my $c = App::KGB::Client::Git->new({ changesets => [ [ '4b3d756', '62a7c8f', 'master' ], [ '7a2fedc', '0d68c3a', 'my' ], ... ], });
- in a file whose name is in the reflog parameter
- A file name of "-" means standard input, which is
the normal way for Git post-receive hooks to get the data.
- on the command line
- Useful when testing the KGB client from the command line. If neither old_rev, new_rev, refname nor changesets is given to the constructor, and if @ARGV has exactly three elements, they are taken to be old revision, new revision and refname respectively. Only one commit can be represented on the command line.
git-config parameters¶
The following parameters can be set in the "[kgb]" section of git-config(1). If present, they override the settings in the configuration file and these given on the command line.- project-id
- The project ID.
- web-link
- See "web-link" in App::KGB::Client for details.
- squash-threshold number
- Unique to Git KGB client. Sets a threshold of the
notifications produced for a given branch update. If there are more
commits in the update, instead of producing huge amounts of notifications,
the commits are "squashed" into one notification per branch with
a summary of the changes.
- squash-message-template string
- A template for construction of squashed messages. See
"message-template" in App::KGB::Client for details.
- tag-squash-threshold number
- Unique to Git KGB client. Sets a threshold of the
notifications produced for tag creations. If there are more tags created
in the push, instead of producing huge amounts of notifications, the tags
are "squashed" into one notification summarizing the
information.
- tag-squash-message-template string
- A template for construction of squashed tags messages. See
"message-template" in App::KGB::Client for details.
- enable-branch-ff-notification bool
- Enables notifications about branch updates whose commits
have already been reported. Normally this causes a notification like
"fast forward" to appear. If you don't like this, set it to
false.
METHODS¶
- describe_commit
- Returns an instance of App::KGB::Change class for each commit. Returns undef when all commits were processed.
- format_git_stat text
- returns a colored version of text, which is expected to be the result of "git diff --shortstat".
COPYRIGHT & LICENSE¶
Copyright (c) 2009, 2013 Damyan Ivanov Based on the shell post-receive hook by Andy Parkins This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.2014-05-18 | perl v5.14.2 |