https://github.com/hibi221b/git-spy
command-line tool to efficiently collect github repository
https://github.com/hibi221b/git-spy
cli command-line crates-io github-repository-search rust-lang scraping terminal tool
Last synced: 9 months ago
JSON representation
command-line tool to efficiently collect github repository
- Host: GitHub
- URL: https://github.com/hibi221b/git-spy
- Owner: hibi221b
- License: mit
- Created: 2020-07-25T00:21:55.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-12-08T04:34:50.000Z (over 5 years ago)
- Last Synced: 2025-09-24T05:22:04.806Z (9 months ago)
- Topics: cli, command-line, crates-io, github-repository-search, rust-lang, scraping, terminal, tool
- Language: Rust
- Homepage:
- Size: 71.3 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://travis-ci.org/github/hibi221b/git-spy)
[](https://github.com/hibi221b/git-spy/blob/master/LICENSE)
[](https://crates.io/crates/git-spy)
# ~~Demo~~
# Prerequisite
- Chrome or Chromium
# Environment
| mac | linux | windows |
|:---:|:---:|:---:|
|○ |○ |△ |
# How to install
## cargo
### Recommend
```terminal
cargo install --git https://github.com/hibi221b/git-spy.git
```
### NOT recommend
```terminal
cargo install git-spy
```
# Usage
```terminal
git-spy VERSION
hibi221b
command-line tool to efficiently collect github repository
USAGE:
git-spy
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
```
# How to use
```terminal
$ git-spy
```
- this command needs no arguments
## [1] input language you want to search
- you can select one language
- rust, c, c++, go, swift, javascript, python, etc...
## [2] input lower bound of github star
- 100, 500, 1000, etc...
## [3] input upper bound of github star
- The upper bound needs to be greater than the lower bound.
- 100, 500, 1000, etc... or *
## [4] input topics
- you can select topics you want to search
- cli, web, gui, terminal, etc... or nothing
## ~~[5] confirm headless_mode~~
- git-spy always open browser.
```terminal
_______ __ .___________. _______. .______ ____ ____
/ _____| | | | | / | | _ \ \ \ / /
| | __ | | `---| |----`______ | (----` | |_) | \ \/ /
| | |_ | | | | | |______| \ \ | ___/ \_ _/
| |__| | | | | | .----) | | | | |
\______| |__| |__| |_______/ |__| |__|
https://github.com/hibi221b/git-spy
▼ language
rust <-------------------------------------------------------------------------------------- [1]
▼ lower bound of github star.
1000 <-------------------------------------------------------------------------------------- [2]
▼ upper bound of github star. (number or *)
* <----------------------------------------------------------------------------------------- [3]
▼ topic words.(cli, web, gui, terminal, etc...) If you don't need, press enter.
cli terminal command tool <----------------------------------------------------------------- [4]
headless mode: false
search query: language:rust stars:1000..* topic:"cli terminal command tool"
info: 27 repository results (The maximum number of repositories git-spy can get is 100)
info: hit 10 repositories
info: page 1/10
get: https://github.com/alacritty/alacritty
get: https://github.com/sharkdp/bat
get: https://github.com/BurntSushi/ripgrep
get: https://github.com/sharkdp/fd
get: https://github.com/denisidoro/navi
get: https://github.com/BurntSushi/xsv
get: https://github.com/Rigellute/spotify-tui
get: https://github.com/sharkdp/hyperfine
get: https://github.com/imsnif/bandwhich
get: https://github.com/sharkdp/hexyl
info: go to the next page
info: hit 10 repositories
info: page 2/10
get: https://github.com/timvisee/ffsend
get: https://github.com/svenstaro/genact
get: https://github.com/XAMPPRocky/tokei
get: https://github.com/imazen/imageflow
get: https://github.com/fdehau/tui-rs
get: https://github.com/sharkdp/pastel
get: https://github.com/rustwasm/wasm-pack
get: https://github.com/jmacdonald/amp
get: https://github.com/vi/websocat
get: https://github.com/gyscos/cursive
info: go to the next page
info: hit 7 repositories
info: page 3/10
get: https://github.com/jhspetersson/fselect
get: https://github.com/cloudflare/wrangler
get: https://github.com/extrawurst/gitui
get: https://github.com/chmln/sd
get: https://github.com/killercup/cargo-edit
get: https://github.com/redox-os/termion
get: https://github.com/databricks/click
info: 27 repositories acquired. ($HOME/Downloads/git-spy-result/xxxxx.json)
info: scraping successfully finished.
```
# Result
- create `$HOME/Downloads/git-spy-result`
- create `$HOME/Downloads/git-spy-result/index.html`
- create `$HOME/Downloads/git-spy-result/XXX.json`
# open $HOME/Downloads/git-spy-result/index.html
- `$HOME/Downloads/git-spy-result/index.html`

- `$HOME/Downloads/git-spy-result/XXX.json`
```json
[
{
"url": "https://github.com/alacritty/alacritty",
"repo": "alacritty",
"desc": "A cross-platform, GPU-accelerated terminal emulator",
"star": "24.1k",
"keywords": "terminal-emulators macos gpu linux windows rust terminal opengl bsd vte"
},
{
"url": "https://github.com/sharkdp/bat",
"repo": "bat",
"desc": "A cat(1) clone with wings.",
"star": "21.1k",
"keywords": "syntax-highlighting git rust cli terminal command-line tool"
},
...
...
...
{
"url": "https://github.com/databricks/click",
"repo": "click",
"desc": "The \"Command Line Interactive Controller for Kubernetes\"",
"star": "1.2k",
"keywords": "rust cli kuberentes"
}
]
```