๐Ÿ™๐Ÿฑ๐Ÿ–ฅ๏ธ GitHub stats in your terminal

Overview

๐Ÿ™ ๐Ÿฑ ๐Ÿ–ฅ๏ธ octotui - GitHub stats in terminal

Inspired by metrics & github-profile-summary-cards & github-tui ๐Ÿ’–

Data - irevenko/octostats TUI - termui


Installation ๐Ÿ”จ

go get -u github.com/irevenko/octotui

Token

To generate token go here: https://github.com/settings/tokens
Press Generate new token and select repo:status, read:org, read:user, and user:email fields
Put this token into HOMEDIR/.config/octotui/token

Usage ๐Ÿ”ฌ

octotui search <USER_OR_ORGANIZATION>
Press Enter to invert image to monochrome color and then Tab to monochrome invert

TUI

  • Profile Image & user basic info/stats
  • Most starred, forked repos
  • Languages, by repo, commits, stars, forks
  • Activity sparkline
  • Spinner (while fetching stats)
  • Reconsider colors
  • Tabs with another data like metrics plugins

Contributing ๐Ÿค

Contributions, issues and feature requests are welcome! ๐Ÿ‘
Feel free to check open issues.

Quick Start ๐Ÿš€

git clone https://github.com/irevenko/octotui.git
cd octotui
go get -d ./...
go build

What I Learned ๐Ÿง 

  • Advanced termui

License ๐Ÿ“‘

(c) 2021 Ilya Revenko. MIT License

Comments
  • Use grids to render stats

    Use grids to render stats

    Resizes TUI elements relative to terminal size.

    Addresses #8

    This does make some changes to the ratio of the element sizes within the UI, so it won't be a 1:1 match to the previous UI. The most noticeable change is that the TUI now takes up all of the height in the terminal. Let me know if there should be a maximum height/width set instead of always being "fullscreen".

    opened by spenserblack 6
  • [BUG] `Something went wrong while executing your query`

    [BUG] `Something went wrong while executing your query`

    For some reason, when I try to look up my own username, I receive the error message Something went wrong while executing your query. I can look up other users, though. I did some digging, and it appears to be happening in SetupProfileStats.

    opened by spenserblack 6
  • [QUESTION] Access Token permissions

    [QUESTION] Access Token permissions

    Press Generate new token and select repo, admin:org, user

    Does octotui really need full permissions for repositories, organizations, and user data? That seems like more permissions than necessary. What are the minimum token permissions necessary to use octotui?

    opened by spenserblack 3
  • Add config option for default GitHub user/organization

    Add config option for default GitHub user/organization

    This adds a config value in a file called default_owner. The config value is in the format name:type, where name is the user or organization, and type is either user or org. octotui will attempt to read from this config file if the search subcommand is not used. If the config value is not set, then the user is instructed to either fill in this config value or use the search subcommand.

    Some other changes this PR makes:

    • Refactors code so that most of the logic from LoadToken is moved into a more generic function loadConfigFile
    • Fixes bug where octotui would fail early if the config folder exists, but not the config file
    • Made renderUser and renderOrganization public functions

    Resolves #5

    opened by spenserblack 2
  • Add command to search user by git remote

    Add command to search user by git remote

    This PR adds a command that allows a user to use the git remote URL to get the GitHub username to search. This should save some typing if they want to look up the user stats of an owner of a repo they're working on.

    Some example uses:

    • octotui by-remote: search the username from the origin URL
    • octotui by-remote --remote upstream: search the username from the upstream URL
    • octotui by-remote --repo ../other-project: search the username from the origin URL in a different local repository
    opened by spenserblack 1
  • Use init function to add commands

    Use init function to add commands

    This is just a small code refactor for how subcommands are added. Per cobra's documentation, subcommands should be added via the init function. This slightly simplifies the code by not requiring AddCommands to be run in main.

    opened by spenserblack 0
  • [FEATURE] Adjustable modules

    [FEATURE] Adjustable modules

    Its a little annoying, but is it possible for the little modules/boxes to adjust to the terminal width instead of being cut off. Also, it would be really cool to be able to modify which modules/boxes show.

    opened by Zaedus 4
  • [FEATURE] Default user config option

    [FEATURE] Default user config option

    I think it would be useful to optionally allow a default user to be set, which can be displayed by simply running octotui with no subcommand. I'm thinking of tools like neofetch and onefetch, which users run to gather information about themselves. The simplest usage for these tools is to run with no additional commands/arguments.

    I think this could be stored in a config file like ~/.config/octotui/default-user. If the file is empty, and no arguments are passed, then the user is instructed to either put something in the file, or use octotui search. If the file is not empty, then octotui will automatically use the username in that file unless search is used.

    opened by spenserblack 3
Owner
Ilya Revenko
almost cs grad ๐ŸŽ“
Ilya Revenko
github stats from the command line

Retrieve GitHub statistics per username from the command line: no need to open the browser anymore!

Gennaro Tedesco 33 Sep 8, 2022
Github user stats fetch written in golang

TACOMA It's like neofetch, but for github users. I saw something similar on reddit and decided to recreate it using only golang. Original inspiration:

Daniel M. Matongo 3 Dec 24, 2021
Show Languages In Code. A fast and lightweight CLI to generate stats on the languages inside your project

slic Show Languages In Code. Usage Run it with an -h flag to list all commands. -d flag can be used to specify the directory of search -i flag can be

Saurav Pal 3 Dec 25, 2021
A golang CLI to display various stats about Hockey teams and their players

A golang CLI to display various stats about Hockey teams and their players

Jonathan Mainguy 1 Oct 26, 2021
Library and command line tool for reading xDSL stats

xDSL Stats Parser This is a library and command line tool for reading basic xDSL stats, as well bitloading, SNR, QLN and Hlog data. It supports many d

Jan Hoffmann 10 Nov 12, 2022
GitHub CLI extension to preview your markdown similar to the style of GitHub.

gh markdown-preview GitHub CLI extension to preview your markdown similar to the style of GitHub gh markdown-preview is a GitHub CLI extension to prev

Yusuke Wada 233 Jan 8, 2023
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.

Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang >= 1.13 Manual Clone the repo Run make && make install Pack

Eric Moynihan 518 Dec 16, 2022
lazyhub - Terminal UI Client for GitHub using gocui.

lazyhub - Terminal UI Client for GitHub using gocui.

ryo-ma 170 Dec 14, 2022
Go terminal app listing open pull requests in chosen GitHub repositories

go-pr-watcher About Shows open pull requests on configured GitHub repositories. Getting started Create GitHub personal token with read permissions Cre

Oleg 1 Aug 23, 2022
Ghissue - This repo contains a github issue parser, that is useful for Enterprise Github accounts.

Ghissue - This repo contains a github issue parser, that is useful for Enterprise Github accounts. Sometimes is needed to parse the content of the issue for some data extraction or statistics purposes.

niloofargheibi 1 Feb 6, 2022
Are you programming and suddenly your stomach is rumbling? No problem, order your Ifood without leaving your favorite text editor โค๏ธ

vim-ifood Vocรช ta programando e de repente bateu aquela fome? Sem problemas, peรงa seu Ifood sem sair do seu editor de texto favorito โค๏ธ Are you progra

Felipe Volpone 4 Jun 2, 2022
gomerge is a tool to quickly bulk merge several pull requests from your terminal.

Gomerge is a tool to quickly enable you to bulk merge Github pull requests from your terminal. The intention of this tool is to simplfy, and eventually automate the merging of github pull requests. This tool should be able to run on most systems.

Cian Gallagher 41 Dec 28, 2022
YouTube client on your terminal

MeowTube YouTube client on your terminal Table of Contents About Getting Started Usage Contributing About MeowTube is a CLI (Command Line Interface) t

Abdul Fattah Ikhsan 27 Jul 29, 2022
๐ŸŽ„ A Christmas tree right from your terminal!

ctree ?? A Christmas tree right from your terminal! ?? Demo โŒ› No Refresh Don't want the tree to refresh every 2 seconds? Easy! Just add the --no-refre

Matthew Gleich 39 Dec 20, 2022
โ“๐Ÿ–ผ Find the anime scene by image using your terminal

What Anime CLI โ“ ?? > This application is basically a ?? wrapper around trace.moe PREVIEW Usage ?? Get Anime By Image File ?? what-anime file anime.jp

Ilya Revenko 759 Jan 2, 2023
Pi-hole data right from your terminal. Live updating view, query history extraction and more!

Pi-CLI Pi-CLI is a command line program used to view data from a Pi-Hole instance directly in your terminal.

Reece Mercer 41 Dec 12, 2022
Draw images in your ANSI terminal with true color

___ _____ ____ / _ \/ _/ |/_/ /____ ______ _ Made with love by Eliuk Blau / ___// /_> </ __/ -_) __/ ' \ https://github.com/eliukblau/pix

Eliuk Blau 898 Dec 14, 2022
The personal information dashboard for your terminal

WTF (aka 'wtfutil') is the personal information dashboard for your terminal, providing at-a-glance access to your very important but infrequently-need

WTFUtil 14.4k Dec 31, 2022
Advanced ANSI style & color support for your terminal applications

termenv lets you safely use advanced styling options on the terminal. It gathers information about the terminal environment in terms of its ANSI & col

Christian Muehlhaeuser 1.3k Dec 31, 2022