How to create a self updating GitHub Readme
source link: https://pybit.es/articles/how-to-create-a-self-updating-github-readme/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
How to create a self updating GitHub Readme
By Bob Belderbos on 21 November 2022
It was about time to give my GitHub profile a nice intro so inspired by Simon Willison’s blog post I decided to make an intro Readme that auto-updates.
First I made a GitHub repo called bbelderbos, my username. That’s how it works: GitHub defaults to showing the Readme.md
of your username’s repo on your profile page.
Now the auto-updating part:
- Looking at Simon and Brett‘s repos I started with a script to parse the Pybites article json and my Python tips repo (reminder: you learn so much by reading other developer’s code!)
- It created this template that the script updates and saves to
Readme.md
. - I set up a job with GitHub Actions to auto-update it (again, Brett’s repo was of great help here).
Looks nice no?
Some other things I learned:
- pip-tools: this nifty tool let’s you specify your dependencies in a requirements.in file.
pip-compile
makes a “rich” requirements.txt file where you not only see the pinned dependencies but also how they depend upon each other (for which I used pipdeptree previously). - Get it working first, then refactor: to get the last 5 tip titles I was making 5
httpx
requests to GitHub.
It later occurred to me that I already have these tip titles in theindex.md
file of the repo, so I refactored it to parse this file reducing 5 web requests to 1, making thebuild-readme.py
script almost twice as fast (2.7 -> 1.5 seconds).
Lesson / reminder: get it working first, then optimize. - Some other cool things I used with this script: type hints, jinja templating,
pathlib
to read + write files, a bit of regex and functions to make the code more modular.
I hope this inspires you to not only make a “Hi there” Readme yourself, but also to try to keep it updated by pulling in other data sources that are relevant for you (e.g. your blog feed).
Happy coding and sharing!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK