DEV Community

Cover image for Update your dev.to articles into your Github profile
JackTT
JackTT

Posted on • Edited on

81 4 6 5 4

Update your dev.to articles into your Github profile

In this article, I'll share you how to update your latest articles on dev.to into your Github profile.
Image description

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 }}
Enter fullscreen mode Exit fullscreen mode

Image description

  • Article table:
{{ template "article-table" .Articles }}
Enter fullscreen mode Exit fullscreen mode

Image description

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
Enter fullscreen mode Exit fullscreen mode

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

Reference

Heroku

Built for developers, by developers.

Whether you're building a simple prototype or a business-critical product, Heroku's fully-managed platform gives you the simplest path to delivering apps quickly — using the tools and languages you already love!

Learn More

Top comments (23)

Collapse
 
ruthmoog profile image
ruthmoog

Really cool using jobs for updating the articles. 👍

Collapse
 
barrymichaeldoyle profile image
Barry Michael Doyle • Edited

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 everyday 0: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 ;)

Collapse
 
kasir-barati profile image
Mohammad Jawad (Kasir) Barati • Edited

Just a small feedback, there are those of us who have a README.md already and just want to append this at the end of existing README.md file. It is good to mention that in your article somewhere 🙂.

Collapse
 
sebastian_wessel profile image
Sebastian Wessel

Thanks for this!
I added it, and it works as you can see here on my profile

Collapse
 
tanushree_aggarwal profile image
Tanushree Aggarwal

Nice stuff! will definitely try this out!

Collapse
 
tharos70 profile image
tharos70

Thanks a lot! It looks like something I was looking for!

Collapse
 
kumarkalyan profile image
Kumar Kalyan

Great article definitely gonna try this out

Collapse
 
barrymichaeldoyle profile image
Barry Michael Doyle

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

Collapse
 
jacktt profile image
JackTT

Thank you.

Collapse
 
epi2024 profile image
Je Phiri

Great

Collapse
 
ranggakd profile image
Retiago Drago

thanks I will probably use it now
can you do it for Medium too? 😁

Collapse
 
jacktt profile image
JackTT

Of course, I will do it soon!

Collapse
 
ranggakd profile image
Retiago Drago

we will be waiting until then
I might wanna tinker it later 😀

Image of Timescale

📊 Benchmarking Databases for Real-Time Analytics Applications

Benchmarking Timescale, Clickhouse, Postgres, MySQL, MongoDB, and DuckDB for real-time analytics. Introducing RTABench 🚀

Read full post →

👋 Kindness is contagious

If you found this post useful, please drop a ❤️ or leave a kind comment!

Okay