7

GitHub - jiacai2050/oh-my-github: Oh My GitHub is a delightful, open source tool...

 2 years ago
source link: https://github.com/jiacai2050/oh-my-github
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Oh My GitHub

Oh My GitHub is a delightful, open source tool for managing your GitHub repositories.

There are mainly two user interfaces:

  • Emacs. Full-featured
    • Sync repositories(owned and starred) list into local database
    • Query repositories by keyword or programming language
    • Unstar
    • Query latest commits
    • Query latest releases
    • Download release asset files
  • CLI, TBD
    • Sync

Features

  • Support local storage
    • GitHub synchronization is only required on first use
  • Support search by keyword or programming language
  • Fast. Oh My GitHub’s core is built in GNU99 C (tested with Valgrind/ASAN)

Emacs Interface

Install

  1. Download oh-my-github.el
  2. Download required shared object, and rename it to omg-dyn.so or dll suffix if you are on Windows
  3. Put el and so files under load-path
  4. Generate Github personal access tokens at https://github.com/settings/tokens and set it to oh-my-github-pat
  5. Setup oh-my-github with oh-my-github-setup

Here is a use-package config demo:

(use-package oh-my-github
  :load-path "/path/to/oh-my-github/emacs"
  :config
  (setq oh-my-github-pat (getenv "GITHUB_TOKEN"))
  (oh-my-github-setup))

After setup, you can

  • Check authentication with M-x oh-my-github-whoami
  • Sync GitHub repositories into local database with M-x oh-my-github-sync
    • Local database is oh-my-github.db inside your Emacs config directory by default, you can customize it with oh-my-github-db-file variable.

Usage

There are five major-modes in Oh My GitHub:

  • oh-my-github-repos-mode, used for owned repositories
  • oh-my-github-stars-mode, used for starred repositories

repos/stars-mode are two main mode, there are three derived modes based those two:

  • oh-my-github-commits-mode, used for display commits of a repository
  • oh-my-github-releases-mode, used for display releases of a repository
  • oh-my-github-assets-mode, used for display asset files of a release

The figure below shows relations among those mode:

Useful commands

  • M-x oh-my-github-sync Sync GitHub repositories(owned and starred).
    • Emacs maybe hang a while depending on how many repositories you have.
    • Mostly this command only need to be executed once.
  • M-x oh-my-github-star-list Display GitHub starred repositories in table view.
  • M-x oh-my-github-repo-list Display GitHub owned repositories in table view.
  • M-x oh-my-github-whoami Display GitHub user information.

Screenshots

Roadmap

  • [ ] Gists
  • [ ] Trending

Development

Ubuntu

sudo apt install -y libcurl4-openssl-dev pkg-config libjansson-dev libsqlite3-dev valgrind

macOS

brew install jansson pkg-config

LICENSE

Copyright (c) 2022 Jiacai Liu <[email protected]>

Oh My GitHub is distributed under GPL-3.0 license.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK