DEV Community

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

Posted on • Edited 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

Latest comments (23)

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
 
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
 
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
 
theabdikhaliq profile image
Abdikhaliq Mohamoud

Can it work with Substack?

Collapse
 
jacktt profile image
JackTT

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

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

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
JackTT

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
JackTT

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
JackTT

Please update this block:

on:
 schedule:
  - cron: '15 0 * * *'
Enter fullscreen mode Exit fullscreen mode
Collapse
 
epi2024 profile image
Je Phiri

Great

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
JackTT

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.

Collapse
 
kumarkalyan profile image
Kumar Kalyan

Great article definitely gonna try this out