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.
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
docs
directory. - 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
docs
directory. - Run the
scan_repos.py
script (requires Python 3) or thescan_repos
shell 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.json
file. - Run the
scan_repos.py
orscan_repos
script. (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.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.