In this article, I'll share you how to update your latest articles on dev.to into your Github profile.
What is Github profile
GitHub will display your profile README on your profile page if all of the following are true.
- You've created a repository with a name that matches your GitHub username.
- The repository is public.
- The repository contains a file named README.md in its root.
- The README.md file contains any content.
How to update articles into your repository
Follow the same approach as outlined in my previous article, Creating a Dynamic README.md File, I have recently developed another GitHub Action for updating your dev.to
articles on your GitHub profile.
To do that, let's follow these straightforward steps:
Step 1: In your repository, create a file named README.md.template
.
Step 2: Write anything you want within the README.md.template
file.
Step 3: Embed one of the following entities within your README.md.template
:
- Article listing:
{{ template "article-list" .Articles }}
- Article table:
{{ template "article-table" .Articles }}
If you are familiar with Go templates, you have access to the root
variable, which includes the following fields:
-
Articles
: An array of Article. You can view the Article struct definition in model/article.go. -
Time
: Updated Time
Step 4: Register Github Action
- Create a file
.github/workflows/update-articles.yml
in your repository.
name: "Cronjob"
on:
schedule:
- cron: '15 0 * * *'
jobs:
update-articles:
permissions: write-all
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Generate README
uses: huantt/article-listing@v1.1.0
with:
username: YOUR_USERNAME_ON_DEV_TO
template-file: 'README.md.template'
out-file: 'README.md'
limit: 5
- name: Commit
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "update articles"
git push origin main
Step 5: Commit your change, then Github actions will run as your specified cron to update Articles into your README.md file
Source Code
See the source code and an example here: https://github.com/huantt/article-listing
Top comments (22)
Awesome article!
It's probably worth noting for those who don't know, the
update-articles.yml
is a cron job that is set to run everyday0:15 AM
. So don't expect your GitHub profile to be updated immediately... You can obviously tweak that at the start to just check that it is working sooner rather than waiting overnight ;)Really cool using jobs for updating the articles. 👍
Thanks for this!
I added it, and it works as you can see here on my profile
Just incase this catches anyone else out...
If your main branch is called 'master' instead of 'main', be sure to update that in the cron job, that caught me out :P
Thank you.
Nice stuff! will definitely try this out!
Thanks a lot! It looks like something I was looking for!
Great article definitely gonna try this out
Great
thanks I will probably use it now
can you do it for Medium too? 😁
Of course, I will do it soon!
we will be waiting until then
I might wanna tinker it later 😀
I think it would be really cool to use GitHub Actions to update the README in real time, even for library code.
However, I'm not a fan of dev.to's default thumbnails, so I think it would be essential to include an image if I'm going to connect dev.to posts to my GitHub profile.
You can do it by placing your image in data/images/default-thumbnail.png