TeamControl is a git send-email --to-cmd/--cc-cmd tool for repositories with multiple teams or/and constantly changing teams without a mailing-list.
Install
Use your favorite tool to download from the Cheeseshop and install:
pip install teamcontrol
Or:
easy_install teamcontrol
If you’d rather download and install from the sources, simply run:
python setup.py install
Setup
A project using ‘TeamControl’ must have a configuration file easily accessible for every developer (either versioned along the sources or publicly available somewhere).
Configuration File
A configuration file is a basic ini-like file with sections describing teams and a set of rules which might trigger the inclusion of it’s members on a code review request. Example:
[members]
batman = bruce@wainecorp.com
ironman = tony@starkindustries.com
superman = jkclark@dailyplanet.com
thor = thealmighty@valhalla.asgard.com
wonderwoman = diana@themyscira.net
[rules]
avcomics = ^comics/[Aa]vengers
dc = ^publisher/dc
jlcomics = ^comics/(the)?\justiceleague
marvel = ^published/marvel
[justiceleague]
members = batman, superman, wonderwoman
rules = dc, jlcomics
[avengers]
members = thor, ironman
rules = avcomics
There are two special sections in this file: [members] and [rules]: they define aliases for named used for members = and rules = options to ease organization.
Every other defined section is regarded as a team, as long as they define the members = and rules = options (they can be empty, but must exist).
So, what is a “rule”? A Rule is a valid Python regular expression which will be matched against the files being modified by a given patch (generated by git-format-patch). If any rule matches with one of the modified files the team this rule belongs to will be included in the review request.
Per-user Setup
Now that we have a configuration file publicly accessible for every developer each must setup her git configuration to call the application when asking for review:
# tip: you can set cccmd instead of tocmd if you prefer
git config sendemail.tocmd /usr/bin/teamcontrol
And adjust properties required by “TeamControl”:
git config teamcontrol.config /path/to/teamcontrol/config/file
git config teamcontrol.team justiceleague
Requirements:
- Python
Comments not found