/githsearch

Search github from the CLI, the quick and dirty way

Primary LanguagePython

githsearch

Quick github search from the command line

Installation

pip install githsearch

Usage as a command line tool

options :
    -h or --help : display instructions
    -r or --repo [args] : search for args in github repos
    -u or --user [args] : search for args in github users
    -l or --limit : know your rate limit
example :
    githsearch -r python tetris

sample output :
--> https://github.com/davidcollins4481/tetris-clone
    -- Tetris Clone in Python (PyGame)
--> https://github.com/zxmarcos/pytrix
    -- Tetris clone in Python + PyGame
--> https://github.com/nickcrafford/python-pygame-tetris
    -- Quick and dirty Tetris clone written to learn Pygame.
--> https://github.com/davepgreene/tetris-clone
    -- A Tetris clone written in Python with pygame

(Bonus : lines alternate in a purple color which is cute)

Using GithSearch programmatically

You can search for repos or users. First instantiate the main class, and to search for a repo call get_repo and pass the terms you want to search as arguments :

>>> from githsearch import GithSearch
>>> g=GithSearch()
>>> g.get_repo('python tetris clone pygame')
[('https://github.com/davidcollins4481/tetris-clone',
'Tetris Clone in Python (PyGame)'),
('https://github.com/zxmarcos/pytrix', 'Tetris clone in Python + PyGame'),
('https://github.com/nickcrafford/python-pygame-tetris',
'Quick and dirty Tetris clone written to learn Pygame.'),
('https://github.com/davepgreene/tetris-clone',
'A Tetris clone written in Python with pygame'),
('https://github.com/AndreiMarks/BlindBlocks',
'Tetris Clone written in Python 3.2 using Pygame 1.9.2'),
('https://github.com/dannyburrows/PoorMansTetris',
'A Tetris clone, using python and pygame'), ...]

The search outputs the most relevant results. To search for a user is the same but call get_user instead

>>> g.get_user('test')
[('test', 'https://github.com/test'),
('prinnotamago', 'https://github.com/prinnotamago'),
('diannt', 'https://github.com/diannt'),
('73153', 'https://github.com/73153'),
('ssweetin', 'https://github.com/ssweetin'),
('deekoder', 'https://github.com/deekoder'),
('songkang666', 'https://github.com/songkang666'),
('ArdentZeal', 'https://github.com/ArdentZeal'),
('gitmobiletest', 'https://github.com/gitmobiletest'), ...]

But be aware that githsearch uses the free quotas from github search API so there is a rate limit. You can consult it by calling :

>>> g.get_limit
{'remaining': 10, 'reset': 1453497872, 'limit': 10}

As long as you don't hammer down the API you should be okay.

Changes :

Feb 2016 : added Command line tool, refactoring, changed readme from markdown to restructuredtext so that it looks better on the Pypi.