DEV Community

Cover image for Auto Updating Profile Readme with Waka-Readme
Athul Cyriac for GitHub Campus Experts

Posted on • Edited on

Auto Updating Profile Readme with Waka-Readme

Profile Readme are a new way to show off your GitHub profile and gives you all the powers of Markdown for doing it. Let's discuss a way you can add a nerdy stats to your profile readme with Python and GitHub Actions and how I use them to update my Profile Readme.

So I would like to introduce you to waka-readme. It's built with Python and can be used to generate a graph like this in your Profile Repo. It mostly uses regex and GitHub's REST API for Python to update the readme. This graph will be updated every day at 00.00 UTC on schedule thanks to GitHub Actions.

Week #29 : July 13 - 18

Python      8 hrs 52 mins       ███████████████████░░░░░░   75.87% 
Go          1 hr 15 mins        ██░░░░░░░░░░░░░░░░░░░░░░░   10.79% 
Markdown    52 mins             █░░░░░░░░░░░░░░░░░░░░░░░░   7.43% 
Docker      16 mins             ░░░░░░░░░░░░░░░░░░░░░░░░░   2.32% 
YAML        7 mins              ░░░░░░░░░░░░░░░░░░░░░░░░░   1.07%

Currently waka-readme has nearly 50 ⭐️s on GitHub and 3 Contributors and about 64 people use this in their Profile. It's not that fancy in any way but totally nerdy in my opinion🤓.

FlashBack

I don't know if any of you remember, but there was a time when pinnable gists came and the GitHub world just went for new tricks and hacks for creating pinnable gists. I saw some people rickrolling with pinnable Gists. That was a perfect time time for creating some cool hacks and GitHub Actions were still in the early beta phases. I was a user of WakaTime and the waka-box workflow and had been using it till the Profile Readme came.

Waka-Readme

Once I was able to get the profile readme on my GitHub profile, I tried to hack on it a bit and the first hack was to include the WakaTime stats in the profile readme. The first method I used was to scrape it from the Gist I made for waka-box by simply a GET request to the Gist's raw URL. Then I thought that this wouldn't be useful for any other people since that would simply introduce a bit more overhead for people not using waka-box. So I went to hack on it a bit more and used WakaTime's API to get my data and generate a graph with Python. I used the percentage part of the API response and divided that with 4 and used that value to generate a graph with 25 blocks of and . This will give a good graph for the metrics in regards with the percentage of time spent on a language. This data is collected from the WakaTime plugin in your code-editor and it support almost editors the last time I checked.

I encourage you to update your Profile readme till it gives a whole idea of who you are and if you have time do try waka-readme and fell free to open an issue or ping me on twitter @athulcajay for any queries plus drop a ⭐️ if you found it useful. Your feedbacks are highly appreciated.

GitHub logo athul / waka-readme

Wakatime Weekly Metrics on your Profile Readme.

Dev Metrics in Readme

Project Preview


WakaTime Weekly Metrics on your Profile Readme:

Prep Work

  1. You need to update the markdown file(.md) with 2 comments. You can refer here for updating it.
  2. You'll need a WakaTime API Key. You can get that from your WakaTime Account Settings
    • You can refer here, if you're new to WakaTime
  3. Optional You'll need a GitHub API Token with repo scope from here if you're running the action not in your Profile Repository
    • You can use this example to work it out
  4. You need to save the WakaTime API Key (and the GitHub API Token, if you need it) in the repository secrets. You can find that in the Settings of your Repository.Be sure to save those as the following
    • WakaTime-api-key as WAKATIME_API_KEY = <your wakatime API Key>and
    • The GitHub Access Token as GH_TOKEN=<your github access token>
  5. You can follow either of the Two Examples…

Top comments (2)

Collapse
 
n1try profile image
Ferdinand Mütsch

What a cool project! Thanks a lot for sharing!
I'm thinking of 🍴ing it and making it work with Wakapi as well.

Collapse
 
athulcajay profile image
Athul Cyriac

Wakapi seems so cool. Feel free to ping me if you need any help on this. 😊