GitHub - jiacai2050/oh-my-github: Oh My GitHub is a delightful, open source tool...
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.
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
- Download oh-my-github.el
- Download required shared object, and rename it to
omg-dyn.so
ordll
suffix if you are on Windows- From release page according to your operating system
- or you can build it yourself with
make emacs-dyn
, be sure to install required dependencies
- Put
el
andso
files underload-path
- Generate Github personal access tokens at https://github.com/settings/tokens and set it to
oh-my-github-pat
- 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 withoh-my-github-db-file
variable.
- Local database is
Usage
There are five major-modes in Oh My GitHub:
oh-my-github-repos-mode
, used for owned repositoriesoh-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 repositoryoh-my-github-releases-mode
, used for display releases of a repositoryoh-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.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK