.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "App::KGB::Client::Git 3pm" .TH App::KGB::Client::Git 3pm "2024-01-01" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" App::KGB::Client::Git \- Git support for KGB client .SH "SYNOPSIS" .IX Header "SYNOPSIS" my \f(CW$c\fR = App::KGB::Client::Git\->new({ ... git_dir => '/some/where', # defaults to \f(CW$ENV\fR{\s-1GIT_DIR\s0} old_rev => 'a7c42f58', new_rev => '8b37ed8a', }); .SH "DESCRIPTION" .IX Header "DESCRIPTION" App::KGB::Client::Git provides \s-1KGB\s0 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. .SH "CONSTRUCTION" .IX Header "CONSTRUCTION" .SS "App::KGB::Client::Git\->new( { parameters... } )" .IX Subsection "App::KGB::Client::Git->new( { parameters... } )" Input data can be given in any of the following ways: .IP "as parameters to the constructor" 4 .IX Item "as parameters to the constructor" .Vb 6 \& # a single commit \& my $c = App::KGB::Client::Git\->new({ \& old_rev => \*(Aq9ae45bc\*(Aq, \& new_rev => \*(Aqa04d3ef\*(Aq, \& refname => \*(Aqmaster\*(Aq, \& }); .Ve .IP "as a list of revisions/refnames" 4 .IX Item "as a list of revisions/refnames" .Vb 8 \& # several commits \& my $c = App::KGB::Client::Git\->new({ \& changesets => [ \& [ \*(Aq4b3d756\*(Aq, \*(Aq62a7c8f\*(Aq, \*(Aqmaster\*(Aq ], \& [ \*(Aq7a2fedc\*(Aq, \*(Aq0d68c3a\*(Aq, \*(Aqmy\*(Aq ], \& ... \& ], \& }); .Ve .Sp All the other ways to supply the changes data is converted internally to this one. .IP "in a file whose name is in the \fBreflog\fR parameter" 4 .IX Item "in a file whose name is in the reflog parameter" A file name of \f(CW\*(C`\-\*(C'\fR means standard input, which is the normal way for Git post-receive hooks to get the data. .Sp 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. .IP "on the command line" 4 .IX Item "on the command line" Useful when testing the \s-1KGB\s0 client from the command line. If neither \&\fBold_rev\fR, \fBnew_rev\fR, \fBrefname\fR nor \fBchangesets\fR is given to the constructor, and if \f(CW@ARGV\fR 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. .PP In all of the above methods, the location of the \fI.git\fR directory can be given in the \fBgit_dir\fR parameter, or it will be taken from the environment variable \&\fB\s-1GIT_DIR\s0\fR. .SS "\fBgit-config\fP parameters" .IX Subsection "git-config parameters" The following parameters can be set in the \f(CW\*(C`[kgb]\*(C'\fR section of \&\fBgit\-config\fR\|(1). If present, they override the settings in the configuration file and these given on the command line. .IP "project-id" 4 .IX Item "project-id" The project \s-1ID.\s0 .Sp See \*(L"project-id\*(R" in App::KGB::Client for details. .IP "web-link" 4 .IX Item "web-link" See \*(L"web-link\*(R" in App::KGB::Client for details. .IP "squash-threshold \fInumber\fR" 4 .IX Item "squash-threshold number" Unique to Git \s-1KGB\s0 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 \*(L"squashed\*(R" into one notification per branch with a summary of the changes. .Sp The default value is \f(CW20\fR. .IP "squash-message-template \fIstring\fR" 4 .IX Item "squash-message-template string" A template for construction of squashed messages. See \&\*(L"message-template\*(R" in App::KGB::Client for details. .Sp The default is \f(CW${{module} }${{branch} }${{commit} }${{author\-name} }${{log}}\fR. .IP "tag-squash-threshold \fInumber\fR" 4 .IX Item "tag-squash-threshold number" Unique to Git \s-1KGB\s0 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 \*(L"squashed\*(R" into one notification summarizing the information. .Sp The default value is \f(CW5\fR. .IP "tag-squash-message-template \fIstring\fR" 4 .IX Item "tag-squash-message-template string" A template for construction of squashed tags messages. See \&\*(L"message-template\*(R" in App::KGB::Client for details. .Sp The default is \f(CW${{module} }${{author\-name} }${{log}}\fR. .IP "enable-branch-ff-notification \fIbool\fR" 4 .IX Item "enable-branch-ff-notification bool" Enables notifications about branch updates whose commits have already been reported. Normally this causes a notification like \f(CW\*(C`fast forward\*(C'\fR to appear. If you don't like this, set it to false. .Sp The default is \f(CW\*(C`true\*(C'\fR. .SH "METHODS" .IX Header "METHODS" .IP "describe_commit" 4 .IX Item "describe_commit" Returns an instance of App::KGB::Change class for each commit. Returns \&\fBundef\fR when all commits were processed. .IP "format_git_stat \fItext\fR" 4 .IX Item "format_git_stat text" returns a colored version of \fItext\fR, which is expected to be the result of \f(CW\*(C`git diff \-\-shortstat\*(C'\fR. .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright (c) 2009, 2013 Damyan Ivanov .PP Based on the shell post-receive hook by Andy Parkins .PP This file is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \s-1MA\s0 02110\-1301, \s-1USA.\s0