What did you do last week, month, year?
Comfortably gather status report data (e.g. list of committed changes) for given week, month, quarter, year or selected date range. By default all available stats for this week are reported.
Based on the config,
did explores user’s activity for given
tools in provided time frame. For example checks all configured
git repositories for the list of commits or contacts Bugzilla to
search for bugs created, modified or closed.
Some information (like git commits) is gathered from the local file system, but usually individual plugins are contacting remote API of the tool to query for the latest data. For tools which provide a public API there is no need for authentication. Some plugins support Kerberos, other need to create an authentication token. See individual plugin documentation for details.
Usage is straightforward:
did [this|last] [week|month|quarter|year] [opts]
Gather all stats for current week:
Show me all stats for today, yesterday, last Friday:
did today did yesterday did last friday
Gather stats for the last month:
did last month
did --help for complete list of available stats.
The list of available options depends on which plugins are configured. Here’s the list of general options which are not related to any plugin:
At least one email address needs to be provided on command line
unless defined in the config file. Use the complete email address
Name Surname <firstname.lastname@example.org> to display full name
in the report output. For date values
can be used instead of the full date format.
User email address(es)
Start date in the YYYY-MM-DD format
End date in the YYYY-MM-DD format
The default output is plain text of maximum width 79 characters.
This can be adjusted using the
--width parameter. To disable
shortening altogether use
--width=0. The default width value
can be saved in the config file as well. Use
enable simple MoinMoin wiki syntax. For stats which support them,
--verbose can be used to specify a different
level of detail to be shown.
Output style, possible values: text (default) or wiki
Maximum width of the report output (default: 79)
Show brief summary only, do not list individual items
Include more details (like modified git directories)
Multiple emails can be used to put together a team report or to
gather stats for all of your email aliases. For this use case
--merge can be used to append the overall
summary at the end or merge all results into a single report
--debug or set the environment variable
DEBUG to 1 through 5 to set the desired level of debugging.
Use alternate configuration file (default: ‘config’)
Append total stats after listing individual users
Merge stats of all users into a single report
Turn on debugging output, do not catch exceptions
did --help for complete list of available options.
Install directly from Fedora/Copr repository:
yum install did
Or use pip to install from Python Package Index:
pip install did
You may want to install some or all extra requires:
pip install did[plugin] pip install did[all]
To build and execute in a docker container, run:
See documentation for more details about installation options.
The config file
~/.did/config is used to store both general
settings and configuration of individual reports:
[general] email = "Petr Šplíchal" <email@example.com> width = 79 [header] type = header highlights = Highlights joy = Joy of the week ;-) [tools] type = git did = /home/psss/git/did [tests] type = git tests = /home/psss/git/tests/* [trac] type = trac prefix = TT url = https://some.trac.com/trac/project/rpc [bz] type = bugzilla prefix = BZ url = https://bugzilla.redhat.com/xmlrpc.cgi [footer] type = footer next = Plans, thoughts, ideas... status = Status: Green | Yellow | Orange | Red
See plugin documentation for more detailed description of options
available for particular plugin. You can also check python module
documentation directly, e.g.
pydoc did.plugins.git or use the
example config provided in the package and web documentation.
Copyright (c) 2015 Red Hat, Inc. All rights reserved.
This program 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.