Package: repostat-app
repostatPython3-compatible Git repository analyser and HTML-report generator
withnvd3-driven interactive metrics visualisations.Initially, a fork ofgitstatstool.Check how arepostat's report looks like by going to:https://repostat.imfast.io/InstallationStarting from v2.0.0,repostatis installable fromPyPiunder the namerepostat-app. Installation should be as simple as:pip3installrepostat-appNewest and older versionsTo install a development version with newest changes fromrepostat's github repository,
the following command may be executed:sudopip3installgit+https://github.com/vifactor/repostatThis command installsrepostatfrom HEAD ofmasterbranch.To installrepostatat specific tag or branch, use the following syntaxsudopip3installgit+https://github.com/vifactor/repostat@<branch|tag>NOTE:Versions prior to v2.0.0 have additional system-dependencies, e.g.gnuplot.OS-specific requirementsLinux installationpython3-pipmust be in the system and then installation viapipworks fine.Mac OS (Catalina) installationPrior to installing repostat one needs to make sure to haveright versionof libgit2 in the system. This can be achievedfollowingpygit2 installationinstructions(not recommended) installing it via Homebrew$brewupdate
$brewinstalllibgit2Then, installrepostatvia:$ pip3 install repostat-appNOTE:Homebrew-way to install packages is slow and may break system dependencies.repostat'sCI for OSXbuilds libgit2 from source.Windows installationOnce there is python v3.6+ in the system path,repostatcan be installed via:python-mpipinstallrepostat-appNOTE: On Windows 10+, symlink togeneral.htmlis not generated, whenrepostatlaunched by an unprivileged user.Usagerepostat[--help][--version][--config_fileCONFIG_FILE_PATH]git_repository_pathreport_output_pathRunrepostat --helpfor details.Configuration fileA report can be customized using a JSON settings file. The file is passed
using the--config-fileoption as follows:repostat --config-file <path_to_config.json> <repo_path> <out_path>Configuration file might contain following fields (all are optional):{"max_domains":10,"max_authors":7,"max_plot_authors_count":10,"max_authors_of_months":6,"authors_top":5,"colormap":"classic","max_recent_tags":-1,"orphaned_extension_count":2,"time_sampling":"W"}Detailed information about role of the fields is below.Authors page configurationThese values are usually adjusted to accommodate projects with various number
of contributors and activity levels, to avoid showing too much or too little
information.max_domains: number of e-mail domains to show in author statsmax_authors: number of authors in the "top authors" table
(other authors are listed without detailed stats)max_plot_authors_count: number of authors to include in plots
in "Authors"-page (rest of the authors will be grouped as "Others").max_authors_of_months: number of months for which "author of
the month" should be displayedauthors_top: number of authors to show for each month/year in the
author of month/year listorphaned_extension_count: max file extension count to be
considered asorphanedand displayed in report in the corresponding
category (default: 0, i.e. all extensions are displayed)Colorscheme configurationThe colors of the thread "heat maps" tables in the activity page can be customized
using the "colormap" option. The allowed values are:classic: (default) uses shades of red only, like gitstatsplasma: uses the"plasma" colormapviridis: uses the"viridis" colormapclrscc: uses a selection of colors fromhttps://clrs.cc/History plots samplingis controlled by"time_sampling"field in configuration file and
defines how timeseries , e.g. number of files over a
repository history, are sampled. By default, weekly-sampling is used.
For old repositories one might want to increase that value to
month or even quarter.
Accepted values for"time_sampling"are thePandas' Offset aliasesTags renderingSome git repositories contain thousands of tags most of which are not
worth to check. Since v.1.3.0 there is a possibility to limit the number
of tags displayed in "Tags" tab of the HTML report or even hide the tab.The feature is controlled by "max_recent_tags" fieldIf JSON file has following content{ [...], "max_recent_tags": 8 },
the report will contain the 8 most recent tags in "Tags" page. Setting the
fieldmax_recent_tagsto zero will not render "Tags" page at all. If
no such field is provided in JSON settings, the report will contain a "Tags"
page with all tags in the analysed repository.Additional featuresMailmapStarting from v1.1.2+ repostat supportsgit mailmap.
Two things are required in order to make the feature working:have pygit2 v.0.28+ installedcreate and fill .mailmap file (e.g. in the root of your repository)Relocatable reportsBy default, images, css- and js-files required for html report
rendering do not get copied to a report directory. Html pages contain
absolute paths to assets located inrepostat's package installation
directory.Starting from v.1.0.x, the--copy-assetscommand-line option forces
program to copy assets to generated report and embed relative paths
in the generated html-files.How to contributeBug reports and feature requests as well as pull requests are welcome.
Please, check the"Issues"on github to find something you would like to work on.