A simple utility to generate a report about the owners of files inside a git repo
Project description
git-owners
A simple utility to pretty print the list of files in a git repo and their owners.
https://pypi.org/project/git-owners/
Installation
python3 -m pip install git-owners
Usage
usage: git-owners [-h]
[-p PATH]
[-d DEPTH]
[-f {file,dir,mixed}]
[--as-list] [-s SINCE]
[--include-extensions INCLUDE_EXTENSIONS]
[--exclude-extensions EXCLUDE_EXTENSIONS]
[-o OUTPUT]
[--verbose]
repo
Print author owners statistics for a given git repo
positional arguments:
repo Repository root
optional arguments:
-h, --help show this help message and exit
-p PATH, --path PATH Directory to process (Relative to repository root)
-d DEPTH, --depth DEPTH
Maximum level of directory leaves to print out in the final tree (-1 to print all leaves)
-f {file,dir,mixed}, --filter {file,dir,mixed}
Filter the output based on the value given. file: output files only (--as-list will be used in this case), dir: output directories only, mixed: output files and directories (default).
--as-list Print results as a list instead of a tree. If --filter is not specified, mixed will be used.
-s SINCE, --since SINCE
Specifies the date range limit to use when executing git blame. date format is the same as used for git blame --since
--include-extensions INCLUDE_EXTENSIONS
Comma separated extensions (ie. .py, .kt, .java). Specifies which file extensions to include while parsing the repository
--exclude-extensions EXCLUDE_EXTENSIONS
Like for --include-extensions, but this will exclude the specified extensions. If specified, --include-extensions will be ignored
-o OUTPUT, --output OUTPUT
Save Report to file instead of printing to stdout
--verbose Turn on logging
Example
Tree output
Consider the following input command:
git-owners --include-extensions=.gradle,.java,.kt,.xml --output ~/Desktop/test-report.txt ~/Documents/git/sephiroth74/AndroidUIGestureRecognizer
Will generate the file test-report.txt with this content:
Final Report for `~/Documents/git/sephiroth74/AndroidUIGestureRecognizer`
Command line: `/usr/local/bin/git-owners --include-extensions=.gradle,.java,.kt --path uigesturerecognizer/src --output ~/Desktop/test-report.txt ~/Documents/git/sephiroth74/AndroidUIGestureRecognizer`
Directory Structure Statistics:
Directory/File Percent Owner Lines Total Lines
--------------------------------------------------------------------------- --------- ------------------------------- ------- -------------
src 93.9% alessandro.crugnola@gmail.com 6410 6829
├── androidTest 100.0% alessandro.crugnola@gmail.com 2753 2753
│ └── java 100.0% alessandro.crugnola@gmail.com 2753 2753
│ └── it 100.0% alessandro.crugnola@gmail.com 2753 2753
│ └── sephiroth 100.0% alessandro.crugnola@gmail.com 2753 2753
│ └── android 100.0% alessandro.crugnola@gmail.com 2753 2753
│ └── library 100.0% alessandro.crugnola@gmail.com 2753 2753
│ └── uigestures 100.0% alessandro.crugnola@gmail.com 2753 2753
│ ├── Interaction.kt 100.0% alessandro.crugnola@gmail.com 450 450
│ ├── TestActivity.kt 100.0% alessandro.crugnola@gmail.com 78 78
│ ├── TestBaseClass.kt 100.0% alessandro.crugnola@gmail.com 88 88
│ ├── TestLongPressGesture.kt 100.0% alessandro.crugnola@gmail.com 430 430
│ ├── TestPanGesture.kt 100.0% alessandro.crugnola@gmail.com 330 330
│ ├── TestPinchGesture.kt 100.0% alessandro.crugnola@gmail.com 130 130
│ ├── TestRotateGesture.kt 100.0% alessandro.crugnola@gmail.com 61 61
│ ├── TestScreenEdgeGesture.kt 100.0% alessandro.crugnola@gmail.com 233 233
│ ├── TestSwipeGesture.kt 100.0% alessandro.crugnola@gmail.com 223 223
│ └── TestTapGesture.kt 100.0% alessandro.crugnola@gmail.com 730 730
├── main 89.0% alessandro.crugnola@gmail.com 3400 3819
│ └── java 89.0% alessandro.crugnola@gmail.com 3400 3819
│ └── it 89.0% alessandro.crugnola@gmail.com 3400 3819
│ └── sephiroth 89.0% alessandro.crugnola@gmail.com 3400 3819
│ └── android 89.0% alessandro.crugnola@gmail.com 3400 3819
│ └── library 89.0% alessandro.crugnola@gmail.com 3400 3819
│ └── uigestures 89.0% alessandro.crugnola@gmail.com 3400 3819
│ ├── Geometry.kt 100.0% alessandro.crugnola@gmail.com 21 21
│ ├── OnGestureRecognizerStateChangeListener.kt 100.0% alessandro.crugnola@gmail.com 8 8
│ ├── ScaleGestureDetector.kt 63.1% alessandro.crugnola@gmail.com 345 547
│ ├── UIContinuousRecognizer.kt 94.7% alessandro.crugnola@gmail.com 18 19
│ ├── UIDiscreteGestureRecognizer.kt 94.1% alessandro.crugnola@gmail.com 16 17
│ ├── UIGestureRecognizer.kt 91.5% alessandro.crugnola@gmail.com 346 378
│ ├── UIGestureRecognizerDelegate.kt 71.9% alessandro.crugnola@gmail.com 97 135
│ ├── UILongPressGestureRecognizer.kt 97.1% alessandro.crugnola@gmail.com 437 450
│ ├── UIPanGestureRecognizer.kt 89.8% alessandro.crugnola@gmail.com 360 401
│ ├── UIPinchGestureRecognizer.kt 92.1% alessandro.crugnola@gmail.com 234 254
│ ├── UIRectEdge.kt 100.0% alessandro.crugnola@gmail.com 5 5
│ ├── UIRotateGestureRecognizer.kt 93.7% alessandro.crugnola@gmail.com 328 350
│ ├── UIScreenEdgePanGestureRecognizer.kt 93.3% alessandro.crugnola@gmail.com 393 421
│ ├── UISwipeGestureRecognizer.kt 97.6% alessandro.crugnola@gmail.com 439 450
│ ├── UITapGestureRecognizer.kt 97.2% alessandro.crugnola@gmail.com 342 352
│ └── View.kt 100.0% alessandro.crugnola@gmail.com 11 11
└── test 100.0% alessandro.crugnola@gmail.com 257 257
└── java 100.0% alessandro.crugnola@gmail.com 257 257
└── it 100.0% alessandro.crugnola@gmail.com 257 257
└── sephiroth 100.0% alessandro.crugnola@gmail.com 257 257
└── android 100.0% alessandro.crugnola@gmail.com 257 257
└── library 100.0% alessandro.crugnola@gmail.com 257 257
└── uigestures 100.0% alessandro.crugnola@gmail.com 257 257
├── TestBase.kt 100.0% alessandro.crugnola@gmail.com 35 35
├── TestGeometry.kt 100.0% alessandro.crugnola@gmail.com 69 69
├── TestUIGestureRecognizerDelegate.kt 100.0% alessandro.crugnola@gmail.com 81 81
└── TestUITapGestureRecognizer.kt 100.0% alessandro.crugnola@gmail.com 72 72
Accumulated Statistics:
Percent Author Lines Total Lines
--------- ----------------------------- ------- -------------
93.9% alessandro.crugnola@gmail.com 6410 6829
6.1% crugnola@adobe.com 419 6829
List output
Report can be printed as simple list
`git-owners --include-extensions=.gradle,.java,.kt --filter=file --output ~/Desktop/test-report.txt ~/Documents/git/sephiroth74/AndroidUIGestureRecognizer
Final Report for `~/Documents/git/sephiroth74/AndroidUIGestureRecognizer` Command line: `/usr/local/bin/git-owners --include-extensions=.gradle,.java,.kt --filter=file --output /Users/alessandro/Desktop/test-report.txt ~/Documents/git/sephiroth74/AndroidUIGestureRecognizer` Directory Structure Statistics: Directory/File Perc Owner Lines Total Lines ---------------------------------------------------------------------------------------------------------------------- -------- ------------------------------- ------- ------------- app/build.gradle 50.9% alessandro.crugnola@gmail.com 29 57 app/src/main/java/it/sephiroth/android/library/uigestures/demo/BaseTest.java 77.3% crugnola@adobe.com 75 97 app/src/main/java/it/sephiroth/android/library/uigestures/demo/MainActivity.kt 100.0% alessandro.crugnola@gmail.com 146 146 app/src/main/java/it/sephiroth/android/library/uigestures/demo/MainApplication.java 86.7% alessandro.crugnola@gmail.com 13 15 app/src/main/java/it/sephiroth/android/library/uigestures/demo/MotionView.kt 100.0% alessandro.crugnola@gmail.com 183 183 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/IRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 23 23 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UILongPressGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 60 60 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UIPanGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 55 55 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UIPinchGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 41 41 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UIRotateGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 54 54 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UIScreenEdgePanGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 64 64 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UISwipeGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 68 68 app/src/main/java/it/sephiroth/android/library/uigestures/demo/fragments/UITapGestureRecognizerFragment.kt 100.0% alessandro.crugnola@gmail.com 51 51 build.gradle 59.0% crugnola@adobe.com 23 39 settings.gradle 100.0% alessandro.crugnola@gmail.com 2 2 uigesturerecognizer/build.gradle 75.7% alessandro.crugnola@gmail.com 178 235 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/Interaction.kt 100.0% alessandro.crugnola@gmail.com 450 450 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestActivity.kt 100.0% alessandro.crugnola@gmail.com 78 78 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestBaseClass.kt 100.0% alessandro.crugnola@gmail.com 88 88 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestLongPressGesture.kt 100.0% alessandro.crugnola@gmail.com 430 430 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestPanGesture.kt 100.0% alessandro.crugnola@gmail.com 330 330 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestPinchGesture.kt 100.0% alessandro.crugnola@gmail.com 130 130 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestRotateGesture.kt 100.0% alessandro.crugnola@gmail.com 61 61 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestScreenEdgeGesture.kt 100.0% alessandro.crugnola@gmail.com 233 233 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestSwipeGesture.kt 100.0% alessandro.crugnola@gmail.com 223 223 uigesturerecognizer/src/androidTest/java/it/sephiroth/android/library/uigestures/TestTapGesture.kt 100.0% alessandro.crugnola@gmail.com 730 730 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/Geometry.kt 100.0% alessandro.crugnola@gmail.com 21 21 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/OnGestureRecognizerStateChangeListener.kt 100.0% alessandro.crugnola@gmail.com 8 8 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/ScaleGestureDetector.kt 63.1% alessandro.crugnola@gmail.com 345 547 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIContinuousRecognizer.kt 94.7% alessandro.crugnola@gmail.com 18 19 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIDiscreteGestureRecognizer.kt 94.1% alessandro.crugnola@gmail.com 16 17 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIGestureRecognizer.kt 91.5% alessandro.crugnola@gmail.com 346 378 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIGestureRecognizerDelegate.kt 71.9% alessandro.crugnola@gmail.com 97 135 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UILongPressGestureRecognizer.kt 97.1% alessandro.crugnola@gmail.com 437 450 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIPanGestureRecognizer.kt 89.8% alessandro.crugnola@gmail.com 360 401 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIPinchGestureRecognizer.kt 92.1% alessandro.crugnola@gmail.com 234 254 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIRectEdge.kt 100.0% alessandro.crugnola@gmail.com 5 5 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIRotateGestureRecognizer.kt 93.7% alessandro.crugnola@gmail.com 328 350 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UIScreenEdgePanGestureRecognizer.kt 93.3% alessandro.crugnola@gmail.com 393 421 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UISwipeGestureRecognizer.kt 97.6% alessandro.crugnola@gmail.com 439 450 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/UITapGestureRecognizer.kt 97.2% alessandro.crugnola@gmail.com 342 352 uigesturerecognizer/src/main/java/it/sephiroth/android/library/uigestures/View.kt 100.0% alessandro.crugnola@gmail.com 11 11 uigesturerecognizer/src/test/java/it/sephiroth/android/library/uigestures/TestBase.kt 100.0% alessandro.crugnola@gmail.com 35 35 uigesturerecognizer/src/test/java/it/sephiroth/android/library/uigestures/TestGeometry.kt 100.0% alessandro.crugnola@gmail.com 69 69 uigesturerecognizer/src/test/java/it/sephiroth/android/library/uigestures/TestUIGestureRecognizerDelegate.kt 100.0% alessandro.crugnola@gmail.com 81 81 uigesturerecognizer/src/test/java/it/sephiroth/android/library/uigestures/TestUITapGestureRecognizer.kt 100.0% alessandro.crugnola@gmail.com 72 72 Accumulated Statistics: Percent Author Lines Total Lines --------- ----------------------------- ------- ------------- 92.5% alessandro.crugnola@gmail.com 7414 8019 7.5% crugnola@adobe.com 604 8019 0.0% not.committed.yet 1 8019
License
See the MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file git-owners-0.0.4.tar.gz.
File metadata
- Download URL: git-owners-0.0.4.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16741223e184005ed03d2f084143fbe668d8cde89284d9b6e0f7764de97a4507
|
|
| MD5 |
4a56b931d9427f691624f76a32420264
|
|
| BLAKE2b-256 |
4730d79b83610419d54fa163f691a5b8fc03d977990c6c4f622f5d9462c38d40
|
File details
Details for the file git_owners-0.0.4-py3-none-any.whl.
File metadata
- Download URL: git_owners-0.0.4-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7a061c4f6c48f1125ae97d3b050637517297cd090a9010ad175798a4203226e
|
|
| MD5 |
a2a3ce697519aff46e4c8a63c93894a7
|
|
| BLAKE2b-256 |
8bc2e89746312c9378d31cd481070a6625b03c6e32e96ae4704811ac21c845a0
|