mirror of
https://github.com/metafy-social/python-scripts.git
synced 2024-12-18 00:00:17 +00:00
ae3a6d2f8b
--Shatanik Mahanty <shatanikmahanty@gmail.com>
63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
from github import Github
|
|
from rich.console import Console
|
|
from rich.table import Table
|
|
import typer
|
|
from rich import print
|
|
from rich.panel import Panel
|
|
from rich.console import Group
|
|
import random
|
|
|
|
app = typer.Typer()
|
|
console = Console()
|
|
|
|
# Create your token from https://github.com/settings/tokens/new
|
|
# Select repo and user scope
|
|
g = Github("ADD_YOUR_OWN")
|
|
|
|
|
|
@app.command()
|
|
def showall():
|
|
print("\n\n")
|
|
user = g.get_user()
|
|
table = Table("Repo Name", "URL", "Stars", "Open Issues", )
|
|
for repo in user.get_repos():
|
|
r = lambda: random.randint(0, 255)
|
|
color = str('#%02X%02X%02X' % (r(), r(), r()))
|
|
table.add_row("[bold " + color + "]" + repo.name, "[bold " + color + "]" + repo.url,
|
|
"[bold " + color + "]" + str(repo.stargazers_count),
|
|
"[bold " + color + "]" + str(repo.open_issues_count),
|
|
)
|
|
group = Group(
|
|
table,
|
|
)
|
|
print(Panel(group, title="[bold underline purple]All Repos of " + user.name))
|
|
print("\n\n")
|
|
|
|
|
|
@app.command()
|
|
def showproject(name: str):
|
|
repo = g.get_user().get_repo(name=name)
|
|
print("\n\n")
|
|
table = Table("Name", "Contributions")
|
|
for contributor in repo.get_contributors():
|
|
r = lambda: random.randint(0, 255)
|
|
color = str('#%02X%02X%02X' % (r(), r(), r()))
|
|
table.add_row("[bold " + color + "]" + contributor.name,
|
|
"[bold " + color + "]" + str(contributor.contributions))
|
|
group = Group(
|
|
"[bold green]Owner:[/bold green] " + "[bold]" + repo.owner.name + "[/bold]\n"
|
|
"[bold blue]URL:[/bold blue] " + "[bold]" + repo.url + "[/bold]\n"
|
|
"[bold #ecc73c]Stars:[/bold #ecc73c] " + "[bold]" + str(
|
|
repo.stargazers_count) + "[/bold]",
|
|
"[bold blue]Forks:[/bold blue] " + "[bold]" + str(repo.forks_count) + "[/bold]",
|
|
"[bold #6a5b64]Watchers:[/bold #6a5b64] " + "[bold]" + str(repo.watchers_count) + "[/bold]",
|
|
"[bold red]Issues:[/bold red] " + "[bold]" + str(repo.open_issues_count) + "[/bold]",
|
|
table,
|
|
)
|
|
print(Panel(group, title="[bold underline purple]Details of " + repo.name))
|
|
print("\n\n")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app()
|