Are you a compulsive Github stargazer? Starred_ml
is here for you! It will access Github https://api.github.com/user/starred
API and fetch all starred repositories and dump a mardown that you can use as
README.md
in a repository.
opam update
opam install starred_ml
TOKEN={{your github personal token}} starred_ml > README.md
For full option list, run starred_ml --help
.
See Templating section for details on the output markdown.
Will output something liket this:
Awesome Stars
===
> A curated list of Github stars! Generated by [starred_ml](https://github.com/paulosuzart/starred_ml)
Languages
---
Total of `7` Languages starred:
- [C](#C)
- [C#](#C#)
- [C++](#C++)
- [Haskell](#Haskell)
- [Java](#Java)
- [Jupyter Notebook](#Jupyter-Notebook)
- [Lua](#Lua)
...
Contents
---
## C
- [pikasTech/PikaPython](https://api.github.com/repos/pikasTech/PikaPython) - An ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C. Similar project: MicroPython, JerryScript.
## C#
- [microsoft/kiota](https://api.github.com/repos/microsoft/kiota) - OpenAPI based HTTP Client code generator
...
You can run starred_ml
locally, but it makes more sense that you atomatically generate a README.md in dedicated github repository. For that you can use my Awesome as a template https://github.com/paulosuzart/awesome
.
You need two things:
- Select
Allow GitHub Actions to create and approve pull requests
under (YOUR REPO)/Settings/Actions/General. - A PAT Personal Access Token with starred read-only access that you must set to your awesome repository under
(YOUR REPO)/Settings/Secrets and variables/Actions, then in the
Repository Secrets
you can add your generated token with the nameTOKEN
.
Starred_ml
uses jingoo as a template engine. Create a template file (default is default.jingoo
) if you want to customize.
You can reuse the provided template here and customize as you see fit. You can save the template with a different name. Use --template
the specify a different template file.
The availabe variables are:
lang_count
- The total count of languages found (IncludingNot set
)languages
- a list of languages detected across all starred repos. The slug of the language is provided.by_language
- a list of objects representing starred repositories with the following keys:language
- the slug language of in questionstarred
- a list of objects with the following keys:name
- name of the repositorylanguage_slug
- slug version of the languagehtml_url
- Github urldescription
- repository descriptionowner_login
- the repository owner login
While developing Starred_ml
I found at least one alternative:
- smaguowei/starred written in python. I then proceeded to use a similar output