[![Build Status](https://travis-ci.org/ivanwills/Group-Git.png)](https://travis-ci.org/ivanwills/Group-Git)
[![Coverage Status](https://coveralls.io/repos/ivanwills/Group-Git/badge.svg?branch=master)](https://coveralls.io/r/ivanwills/Group-Git?branch=master)

# Group-Git

The `group-git` tool allows you perform operations on many git
repositories at once. For example updating many repositores with the latest
upstream code:

```bash
$ group-git pull
```

Would update all git repositories in the current directory.

Several `git` comands have some extras such as `status` which adds the
`--quiet` parameter which will suppress output for repositories with not
changes.

There are also tool to help with various git repository servers such as

* Github
* Bitbucket Server (nee Stash)
* Gitosis

## Repository Helpers

These helpers allow you to store your credentials in a `group-git.yml`
configuration file and will find all repositories you have access to. If you
use the `group-git pull` command it will automatically clone any repository
not currently downloaded for you.

## Tagging repositories

You can also tag repositories to limit opperations to a subset of available
repositories. There are 3 ways to tag repositories:

* Add a tag file(s) to the root of the repository (eg `.my-tag.tag>)
* Use a tagger library, `Group::Git` comes with two, remore and local which
determine if the repository has a remote or not.
* The Bitbucket server helper will tag repositories with their project.

## Extending with your own commands

`Group::Git` looks for commands in the perl modules path `Group::Git::Cmd`
and it look in the path for any command in the form of `group-git-cmd` or
`git-cmd` as well as supoorting all the built in git commands. If you want
perform an operation you can write your own script put it your path and
`Group::Git` will find it execute it the same was git would.

# INSTALLATION

To install this module from CPAN:

```bash
$ capnm Group::Git
# or if you don't have the cpanm command
$ cpan Group::Git
```

Or from source run the following commands:

```
# with cpanm
$ cpanm .
# without
$ perl Build.PL
$ ./Build
$ ./Build test
$ ./Build install
```

# SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc Group::Git

You can also look for information at:

    RT, CPAN's request tracker
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Group-Git

    AnnoCPAN, Annotated CPAN documentation
        http://annocpan.org/dist/Group-Git

    CPAN Ratings
        http://cpanratings.perl.org/d/Group-Git

    Search CPAN
        http://search.cpan.org/dist/Group-Git/

    Source Code
        git://github.com/ivanwills/Group-Git.git

# COPYRIGHT AND LICENCE

Copyright (C) 2013-2016 Ivan Wills

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.