Skip to main content

Terminal-based toolkit for GitHub data analysis.

Project description

octosuite

Terminal-based toolkit for GitHub data analysis.

PyPI - Version PyPI - Downloads Code Size Release Date Build Status License

$ octosuite user torvalds
from pprint import pprint
import octosuite

user = octosuite.User(name="torvalds")
exists, profile = user.exists()

if exists:
    pprint(profile)

Installation

pip install octosuite

Usage

TUI (Interactive)

Launch the interactive terminal interface:

octosuite -t/--tui

Navigate using arrow keys and Enter to select options.

CLI

Query GitHub data directly from the command line:

# User data
octosuite user torvalds
octosuite user torvalds --repos --page 1 --per-page 50
octosuite user torvalds --followers --json

# Repository data
octosuite repo torvalds/linux
octosuite repo torvalds/linux --commits
octosuite repo torvalds/linux --stargazers --export ./data

# Organisation data
octosuite org github
octosuite org github --members --json

# Search
octosuite search "machine learning" --repos
octosuite search "python cli" --users --json

Common options:

  • --page - Page number (default: 1)
  • --per-page - Results per page, max 100 (default: 100)
  • --json - Output as JSON
  • --export DIR - Export to directory

Run octosuite <command> --help for available data type flags.

Library

Use octosuite in your Python projects:

from octosuite import User, Repo, Org, Search

# Get user data
user = User("torvalds")
exists, profile = user.exists()
if exists:
    repos = user.repos(page=1, per_page=100)
    followers = user.followers(page=1, per_page=50)

# Get repository data
repo = Repo(name="linux", owner="torvalds")
exists, profile = repo.exists()
if exists:
    commits = repo.commits(page=1, per_page=100)
    languages = repo.languages()

# Get organisation data
org = Org("github")
exists, profile = org.exists()
if exists:
    members = org.members(page=1, per_page=100)

# Search GitHub
search = Search(query="machine learning", page=1, per_page=50)
results = search.repos()

Features

Data Types

User: profile, repos, subscriptions, starred, followers, following, orgs, gists, events, received_events

Repository: profile, forks, issue_events, events, assignees, branches, tags, languages, stargazers, subscribers, commits, comments, issues, releases, deployments, labels

Organisation: profile, repos, events, hooks, issues, members

Search: repos, users, commits, issues, topics

Export Formats
  • JSON
  • CSV
  • HTML

Licence

MIT Licence. See the LICENCE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octosuite-5.1.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octosuite-5.1.0-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file octosuite-5.1.0.tar.gz.

File metadata

  • Download URL: octosuite-5.1.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for octosuite-5.1.0.tar.gz
Algorithm Hash digest
SHA256 15cc4a8b3263e8dceadd023eb787e442d771742eb1d37248793646150323581c
MD5 c578dc6607bd68976d27a77f63566343
BLAKE2b-256 d691f9cac6ebf8de5f85b5e67a8914fdd879195c9759d6909b488a1724f0d690

See more details on using hashes here.

Provenance

The following attestation bundles were made for octosuite-5.1.0.tar.gz:

Publisher: python-publish.yml on bellingcat/octosuite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file octosuite-5.1.0-py3-none-any.whl.

File metadata

  • Download URL: octosuite-5.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for octosuite-5.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 23860e74161ad0ecb715ecc146745d9778cdd1d44aee8c1e8d2fa7188c03dc72
MD5 a6a82aaa1cee5e631d655357ad8b7cde
BLAKE2b-256 13345976bb4222af7048be9d81687539126a2a3c99b4b8c47288500be56a03a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for octosuite-5.1.0-py3-none-any.whl:

Publisher: python-publish.yml on bellingcat/octosuite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page