{"id":21452966,"url":"https://github.com/vifactor/repostat","last_synced_at":"2025-04-07T06:08:53.482Z","repository":{"id":40294206,"uuid":"149809702","full_name":"vifactor/repostat","owner":"vifactor","description":"Inspired by gitstats project: git repository desktop analyzer","archived":false,"fork":false,"pushed_at":"2024-09-15T19:01:02.000Z","size":899,"stargazers_count":107,"open_issues_count":27,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T22:11:26.777Z","etag":null,"topics":["analytics","git","gitstats","html-report","pandas","pygit2","repository","statistics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vifactor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-21T19:40:15.000Z","updated_at":"2025-03-07T15:15:34.000Z","dependencies_parsed_at":"2024-09-15T20:23:09.931Z","dependency_job_id":"533be179-ea29-4117-9c33-c187331b1d4b","html_url":"https://github.com/vifactor/repostat","commit_stats":{"total_commits":661,"total_committers":43,"mean_commits":"15.372093023255815","dds":0.594553706505295,"last_synced_commit":"fc6e974e0010c2d6c9cb91e122e345e0440e18c6"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vifactor%2Frepostat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vifactor%2Frepostat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vifactor%2Frepostat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vifactor%2Frepostat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vifactor","download_url":"https://codeload.github.com/vifactor/repostat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601448,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","git","gitstats","html-report","pandas","pygit2","repository","statistics"],"created_at":"2024-11-23T04:37:49.562Z","updated_at":"2025-04-07T06:08:53.465Z","avatar_url":"https://github.com/vifactor.png","language":"Python","readme":"# [repostat](https://github.com/vifactor/repostat)\nPython3-compatible Git repository analyser and HTML-report generator \nwith [nvd3](http://nvd3.org/) -driven interactive metrics visualisations.\n\nInitially, a fork of [gitstats](https://github.com/hoxu/gitstats) tool.\n\n---\nCheck how a *repostat*'s report looks like by going to:\n\nhttps://repostat.imfast.io/\n\n\n## Installation\nStarting from v2.0.0, *repostat* is installable from [PyPi](https://pypi.org/project/repostat-app/)\nunder the name *repostat-app*. Installation should be as simple as:\n```bash\npip3 install repostat-app\n```\n#### Newest and older versions\n- To install a development version with newest changes from\n[*repostat*'s github repository](https://github.com/vifactor/repostat),\nthe following command may be executed:\n    ```bash\n    sudo pip3 install git+https://github.com/vifactor/repostat\n    ```\n    This command installs *repostat* from HEAD of `master` branch.\n\n- To install *repostat* at specific tag or branch, use the following syntax\n    ```bash\n    sudo pip3 install git+https://github.com/vifactor/repostat@\u003cbranch|tag\u003e\n    ```\n*NOTE:*\nVersions prior to v2.0.0 have additional system-dependencies, e.g.\n`gnuplot`.\n\n### OS-specific requirements\n\n#### Linux installation\n![Repostat for Ubuntu 20.04](https://github.com/vifactor/repostat/workflows/Repostat%20for%20Ubuntu%2020.04/badge.svg)\n\n`python3-pip` must be in the system and then installation via `pip`\nworks fine.\n\n#### Mac OS (Catalina) installation\n![Repostat for Mac OS](https://github.com/vifactor/repostat/workflows/Repostat%20for%20Mac%20OS/badge.svg)\n\nPrior to installing repostat one needs to make sure to have\n*right version* of libgit2 in the system. This can be achieved\n- following [pygit2 installation](https://www.pygit2.org/install.html#id13) instructions\n- (not recommended) installing it via Homebrew\n```bash\n$ brew update\n$ brew install libgit2\n```\nThen, install *repostat* via:\n```\n$ pip3 install repostat-app\n```\n\n*NOTE*:\n1) Homebrew-way to install packages is slow and may break system dependencies.\n2) repostat's [CI for OSX](https://github.com/vifactor/repostat/blob/master/.github/workflows/repostat_macos.yml)\nbuilds libgit2 from source.\n\n### Windows installation\n![Repostat for Windows](https://github.com/vifactor/repostat/workflows/Repostat%20for%20Windows%202019/badge.svg)\n\nOnce there is python v3.6+ in the system path, *repostat* can be installed via:\n```shell script\npython -m pip install repostat-app\n```\n\n*NOTE*: On Windows 10+, symlink to `general.html` is not generated, when\n*repostat* launched by an unprivileged user. \n___\n## Usage\n```bash\nrepostat [--help] [--version] [--config_file CONFIG_FILE_PATH]\n                 git_repository_path report_output_path\n```\nRun `repostat --help` for details.\n\n### Configuration file\n\nA report can be customized using a JSON settings file. The file is passed\nusing the `--config-file` option as follows:\n\n```\nrepostat --config-file \u003cpath_to_config.json\u003e \u003crepo_path\u003e \u003cout_path\u003e\n```\nConfiguration file might contain following fields (all are optional):\n```json\n{\n    \"max_domains\": 10,\n    \"max_authors\": 7,\n    \"max_plot_authors_count\": 10,\n    \"max_authors_of_months\": 6,\n    \"authors_top\": 5,\n    \"colormap\": \"classic\",\n    \"max_recent_tags\": -1,\n    \"orphaned_extension_count\": 2,\n    \"time_sampling\": \"W\"\n}\n```\nDetailed information about role of the fields is below.\n\n#### Authors page configuration\n\nThese values are usually adjusted to accommodate projects with various number\nof contributors and activity levels, to avoid showing too much or too little\ninformation.\n\n* `max_domains`: number of e-mail domains to show in author stats\n* `max_authors`: number of authors in the \"top authors\" table \n(other authors are listed without detailed stats)\n* `max_plot_authors_count`: number of authors to include in plots\nin \"Authors\"-page (rest of the authors will be grouped as \"Others\"). \n* `max_authors_of_months`: number of months for which \"author of \nthe month\" should be displayed\n* `authors_top`: number of authors to show for each month/year in the\nauthor of month/year list\n* `orphaned_extension_count`: max file extension count to be \nconsidered as `orphaned` and displayed in report in the corresponding\ncategory (default: 0, i.e. all extensions are displayed)\n\n#### Colorscheme configuration\n\nThe colors of the thread \"heat maps\" tables in the activity page can be customized\nusing the \"colormap\" option. The allowed values are:\n\n* `classic`: (default) uses shades of red only, like gitstats\n* `plasma`: uses the [\"plasma\" colormap](https://bids.github.io/colormap/)\n* `viridis`: uses the [\"viridis\" colormap](https://bids.github.io/colormap/)\n* `clrscc`: uses a selection of colors from https://clrs.cc/\n\n#### History plots sampling\nis controlled by `\"time_sampling\"` field in configuration file and\ndefines how timeseries , e.g. number of files over a\nrepository history, are sampled. By default, weekly-sampling is used.\nFor old repositories one might want to increase that value to\nmonth or even quarter.\nAccepted values for `\"time_sampling\"` are the [Pandas' Offset aliases](https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases)\n\n#### Tags rendering\n\nSome git repositories contain thousands of tags most of which are not \nworth to check. Since v.1.3.0 there is a possibility to limit the number \nof tags displayed in \"Tags\" tab of the HTML report or even hide the tab.\n\nThe feature is controlled by \"max_recent_tags\" field\n\nIf JSON file has following content `{ [...], \"max_recent_tags\": 8 }`,\nthe report will contain the 8 most recent tags in \"Tags\" page. Setting the\nfield `max_recent_tags` to zero will not render \"Tags\" page at all. If\nno such field is provided in JSON settings, the report will contain a \"Tags\"\npage with all tags in the analysed repository.\n\n### Additional features\n\n#### Mailmap\nStarting from v1.1.2+ repostat supports [git mailmap](https://git-scm.com/docs/git-check-mailmap). \nTwo things are required in order to make the feature working:\n- have pygit2 v.0.28+ installed\n- create and fill .mailmap file (e.g. in the root of your repository)\n\n#### Relocatable reports\nBy default, images, css- and js-files required for html report\nrendering do not get copied to a report directory. Html pages contain \nabsolute paths to assets located in *repostat*'s package installation\ndirectory.\n\nStarting from v.1.0.x, the `--copy-assets` command-line option forces\nprogram to copy assets to generated report and embed relative paths\nin the generated html-files.\n\n## How to contribute\n\nBug reports and feature requests as well as pull requests are welcome.\nPlease, check the [\"Issues\"](https://github.com/vifactor/repostat/issues)\non github to find something you would like to work on.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvifactor%2Frepostat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvifactor%2Frepostat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvifactor%2Frepostat/lists"}