DEV Community

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

Posted on • Updated on

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

Top comments (22)

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
 
ruthmoog profile image
ruthmoog

Really cool using jobs for updating the articles. 👍

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
 
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
Jack

Thank you.

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
 
smz01 profile image
Smartmen Zambia

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
Jack

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 😀

Collapse
 
artxe2 profile image
Yeom suyun

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.

Collapse
 
jacktt profile image
Jack

You can do it by placing your image in data/images/default-thumbnail.png

Collapse
 
godot profile image
Godot

It is giving me this error.

Error: .github#L1
No event triggers defined in on

What might've caused it?

Collapse
 
jacktt profile image
Jack

Could you share your repo?

Collapse
 
godot profile image
Godot

This is the profile
This is the profile repository for the Readme

Thread Thread
 
jacktt profile image
Jack

Please update this block:

on:
 schedule:
  - cron: '15 0 * * *'
Enter fullscreen mode Exit fullscreen mode
Collapse
 
theabdikhaliq profile image
Abdikhaliq Mohamoud

Can it work with Substack?

Collapse
 
jacktt profile image
Jack

I've written an ArticleService interface that you can implement for data sources. If Substack has an API, I will do it for you.

Collapse
 
godot profile image
Godot

The cron will run once every day right? Also would this work on Github organization page? ie. something like this.

Collapse
 
jacktt profile image
Jack

Regarding cron, you can define it as needed, such as every 6 hours, every 1 hour, or even every 5 minutes.
As for a GitHub organization page, I think it's the same as a personal page.