Collect information about dependencies between a github repo and other repositories. Results available in JSON, markdown and badges.
Project description
github-dependents-info
🚀 Features
GitHub API does not allow to collect information about package usage (Used by on home, Dependents in insights section)
This package uses GitHub HTML to collect dependents information and can:
- Output as text
- Output as json (including shields.io markdown badges)
- Generate summary markdown file
- Update existing markdown by inserting Used by badge within tags
<!-- gh-dependents-info-used-by-start --><!-- gh-dependents-info-used-by-end -->
- Handle multiple repositories packages
- Filter results using minimum stars
Badges example
JSON output
{
"all_public_dependent_repos": [
{
"name": "CIT-SeniorDesign/CIT-SeniorDesign.github.io",
"stars": 0
},
{
"name": "Moaz-Adel/Jobsity-Challenge",
"stars": 0
},
{
"name": "Moaz-Adel/automation-exercise-cypress",
"stars": 0
},
{
"name": "RecuencoJones/vscode-groovy-lint-issue",
"stars": 0
},
{
"name": "aboe026/data-structures",
"stars": 0
},
{
"name": "aboe026/shields.io-badge-results",
"stars": 0
},
{
"name": "aboe026/software-update-checker",
"stars": 2
},
{
"name": "katalon-labs/katalon-recorder-extension",
"stars": 0
},
{
"name": "mashafrancis/sa-jenkins",
"stars": 0
},
{
"name": "nvuillam/vscode-groovy-lint",
"stars": 52
},
{
"name": "run2cmd/dotfiles",
"stars": 2
}
],
"packages": [
{
"id": null,
"name": "nvuillam/npm-groovy-lint",
"url": "https://github.com/nvuillam/npm-groovy-lint/network/dependents",
"public_dependent_stars": 56,
"public_dependents": [
{
"name": "CIT-SeniorDesign/CIT-SeniorDesign.github.io",
"stars": 0
},
{
"name": "Moaz-Adel/Jobsity-Challenge",
"stars": 0
},
{
"name": "Moaz-Adel/automation-exercise-cypress",
"stars": 0
},
{
"name": "RecuencoJones/vscode-groovy-lint-issue",
"stars": 0
},
{
"name": "aboe026/data-structures",
"stars": 0
},
{
"name": "aboe026/shields.io-badge-results",
"stars": 0
},
{
"name": "aboe026/software-update-checker",
"stars": 2
},
{
"name": "katalon-labs/katalon-recorder-extension",
"stars": 0
},
{
"name": "mashafrancis/sa-jenkins",
"stars": 0
},
{
"name": "nvuillam/vscode-groovy-lint",
"stars": 52
},
{
"name": "run2cmd/dotfiles",
"stars": 2
}
],
"public_dependents_number": 11,
"private_dependents_number": 4,
"total_dependents_number": 15,
"badges": {
"total": "[![](https://img.shields.io/static/v1?label=Used%20by&message=15&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)",
"public": "[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=11&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)",
"private": "[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=4&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)",
"stars": "[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=56&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)"
}
}
],
"total_dependents_number": 15,
"public_dependents_number": 11,
"private_dependents_number": 4,
"public_dependents_stars": 56,
"badges": {
"total": "[![](https://img.shields.io/static/v1?label=Used%20by&message=15&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)",
"public": "[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=11&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)",
"private": "[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=4&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)",
"stars": "[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=56&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)"
}
}
Markdown output for single package
# Dependents stats for nvuillam/npm-groovy-lint
## Package nvuillam/npm-groovy-lint
[![](https://img.shields.io/static/v1?label=Used%20by&message=15&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)
[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=11&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)
[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=4&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)
[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=56&color=informational&logo=slickpic)](https://github.com/nvuillam/npm-groovy-lint/network/dependents)
| Repository | Stars |
|:--------------------------------------------------------------------------------------------------------------|------:|
| [CIT-SeniorDesign/CIT-SeniorDesign.github.io](https://github.com/CIT-SeniorDesign/CIT-SeniorDesign.github.io) | 0 |
| [Moaz-Adel/Jobsity-Challenge](https://github.com/Moaz-Adel/Jobsity-Challenge) | 0 |
| [Moaz-Adel/automation-exercise-cypress](https://github.com/Moaz-Adel/automation-exercise-cypress) | 0 |
| [RecuencoJones/vscode-groovy-lint-issue](https://github.com/RecuencoJones/vscode-groovy-lint-issue) | 0 |
| [aboe026/data-structures](https://github.com/aboe026/data-structures) | 0 |
| [aboe026/shields.io-badge-results](https://github.com/aboe026/shields.io-badge-results) | 0 |
| [aboe026/software-update-checker](https://github.com/aboe026/software-update-checker) | 2 |
| [katalon-labs/katalon-recorder-extension](https://github.com/katalon-labs/katalon-recorder-extension) | 0 |
| [mashafrancis/sa-jenkins](https://github.com/mashafrancis/sa-jenkins) | 0 |
| [nvuillam/vscode-groovy-lint](https://github.com/nvuillam/vscode-groovy-lint) | 52 |
| [run2cmd/dotfiles](https://github.com/run2cmd/dotfiles) | 2 |
_Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)_
Note: If your repository packages have millions of dependents, running github-dependent-infos could take hours, as it works by browsing and scraping HTML pages returned by GitHub. For example, angular/angular dependents did run during several hours !
⚙️ Installation
pip install -U github-dependents-info
or install with Poetry
poetry add github-dependents-info
🛠️ Usage
github-dependents-info [OPTIONS]
Parameter | Type | Description |
---|---|---|
--repo | String | Repository. Example: oxsecurity/megalinter |
-b --badgemarkdownfile |
String | (optional) Path to markdown file where to insert/update Used by badge (must contain tags <!-- gh-dependents-info-used-by-start --><!-- gh-dependents-info-used-by-end --> ) |
-s --sort |
String | (optional) Sort order: name (default) or stars |
-x --minstars |
String | (optional) If set, filters repositories to keep only those with more than X stars |
-m --markdownfile |
String | (optional) Output markdown file file |
-p --mergepackages |
String | (optional) In case of multiple packages, merge their stats in a single one in markdown and json output |
-j --json |
String | (optional) Output in json format |
-v --version |
Boolean | (optional) Displays version of github-dependents-info |
--verbose | Boolean | (optional) Verbose output |
🧪 Examples
-
Text output
github-dependents-info --repo nvuillam/npm-groovy-lint
-
JSON output
github-dependents-info --repo nvuillam/npm-groovy-lint --json
-
Insert/Update Used by markdown badge within an existing markdown file containing tags
<!-- gh-dependents-info-used-by-start --><!-- gh-dependents-info-used-by-end -->
github-dependents-info --repo nvuillam/npm-groovy-lint --badgemarkdownfile ./README.md
-
Build markdown file with dependent repos (single package), sorted by name
github-dependents-info --repo nvuillam/npm-groovy-lint --markdownfile ./docs/package-usage.md --verbose
-
Build markdown file with dependent repos (single package), with minimum 10 stars
github-dependents-info --repo nvuillam/npm-groovy-lint --markdownfile ./docs/package-usage.md --minstars 10 --verbose
-
Build markdown file with dependent repos (multiple package), sorted by stars
github-dependents-info --repo oxsecurity/megalinter --markdownfile ./docs/package-usage.md --sort stars --verbose
-
Build markdown file with dependent repos (multiple package), with merged list of packages in output markdown
github-dependents-info --repo oxsecurity/megalinter --markdownfile ./docs/package-usage.md --sort stars --mergepackages --verbose
🛡 License
This project is licensed under the terms of the MIT
license. See LICENSE for more details.
Credits
This package has been inspired by stackexchange post How to use GitHub API to get a repository's dependents information in GitHub?
This project was generated with python-package-template
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
File details
Details for the file github_dependents_info-1.0.1.tar.gz
.
File metadata
- Download URL: github_dependents_info-1.0.1.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.9.16 Linux/5.15.0-1036-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfdc2efaaa086bfb4c2426bfb8d2813111b4a710b9759c630cac4ee34140156b |
|
MD5 | 7deae522bbb786d59673cc9866ffb418 |
|
BLAKE2b-256 | 31f315e9757b1cbdf50f558a08ebb4f73abe2ecb9eafcb6ae55b5595515ef1fd |
File details
Details for the file github_dependents_info-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: github_dependents_info-1.0.1-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.9.16 Linux/5.15.0-1036-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a98f7a495b169e3aa2cb735036867f93b8943c51d654eaa0f49cc74e4b0f7e6 |
|
MD5 | 621de936574c9a9daa0b2fb25b3b39df |
|
BLAKE2b-256 | 2734adb768a53b75675e13d95d0174d4472c2d9124870d3425b65e264f5803a3 |