RepoRecon
This project consists of two tools:
- A Python script that queries Github for groups of repositories mentioning various topics and stores information about them in a set of JSON files. (There is also a shell-script version of this.)
- A single-page Javascript app that displays the collections of repos as a set of BATs (big-ass tables) that allow searching, filtering, and sorting.
Usage
You can explore some tables of collected repositories here. If you want to run it locally, do this:
- Clone this repository to your machine;
- Go into the
docsdirectory. - Run an http server:
python -m http.server. - Use your web browser to open
0.0.0.0:8000.
If you want to update the tables with the latest repository information, do this:
- Install this Python dependency:
pip install PyGithub - Go into the
docsdirectory. - Run the
scan_repos.pyscript (requires Python 3) or thescan_reposshell script. - Refresh your web browser page.
If you want to modify the list of topics for collecting repositories, do this:
- Edit the contents of the
docs/topics.jsonfile. - Run the
scan_repos.pyorscan_reposscript. (This will take some time if you add a new topic.) - Refresh your web browser page.
If you want to create a link that displays a table of collected repositories on a specific topic, you can attach query parameters to the RepoRecon link like so:
devbisme.github.io/RepoRecon?topic=kicad&filter=desc:raspberry&sort=stars:desc
The link above will display a table of KiCad repositories that have the string raspberry in their
descriptions starting with the most starred repositories.
The topic parameter must specify a string that matches a substring within the list of topics.
The filter and sort parameters each start with a label that matches the beginning of
one of the following table column names: description, owner, stars, forks, size, pushed.
For the filter parameter, the column label is followed with a colon and a string to search for.
For the sort parameter, the column label is followed by asc or desc to sort the table entries
by the contents of the specified column in ascending or descending order going downwards.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.