Provided by: kgb-client_1.60-1_all bug

NAME

       App::KGB::Client::Git - Git support for KGB client

SYNOPSIS

       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'     ],
                       ...
                   ],
               });

           All the other ways to supply the changes data is converted internally to this one.

       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.

           The file must contain three words separated by spaces on each line. The first one is taken to be  the
           old revision, the second is the new revision and the third is the refname.

       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.

       In all of the above methods, the location of the .git directory can be given in the git_dir parameter, or
       it will be taken from the environment variable GIT_DIR.

   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.

           See "project-id" in App::KGB::Client for details.

       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.

           The default value is 20.

       squash-message-template string
           A template for construction of squashed messages.  See  "message-template"  in  App::KGB::Client  for
           details.

           The default is ${{module} }${{branch} }${{commit} }${{author-name} }${{log}}.

       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.

           The default value is 5.

       tag-squash-message-template string
           A template for construction of squashed tags messages. See "message-template" in App::KGB::Client for
           details.

           The default is ${{module} }${{author-name} }${{log}}.

       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.

           The default is "true".

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.

perl v5.36.0                                       2024-01-01                         App::KGB::Client::Git(3pm)