Create a workflow to display your latest articles on your GitHub profile
Tags: githubactions, githubprofile
Published: 2023-06-20 13:40:42

I recently added a workflow to list my 5 latest Codú articles in my profile, and thought I'd share how I did it to allow you to do the same 😊

*Note:* These instructions are for adding an RSS Feed for Codú articles specifically. If you would like to add a list for your dev.to articles, you can skip step 1 and use the following URL `https://dev.to/feed/[your username here]`

### Part 1: Create your RSS URL

1. Copy the URL for your profile page on the Codú site.

2. Enter your URL into the RSS generator. I used [FetchRSS](https://fetchrss.com/) to create my RSS URL as it is free to use. Another alternative would be [rss.app](https://rss.app/)

3. This will either automatically generate the URL for you, or ask you to mark up the parsing pattern. This is basically where you let the generator know which parts to map as the news item, headline, summary, date, author and link etc. On the right hand side you can see the results of the generator. Once you are happy with your selections, click the Generate Feed button for your URL.

    [![Marking up the parsing pattern](https://i.gyazo.com/b9d09fc466c85b2e4d30ca345bfab543.gif)](https://gyazo.com/b9d09fc466c85b2e4d30ca345bfab543)

---

### Part 2: Create a GitHub Workflow

1. Open you GitHub profile repo and create a **.github** folder, and within that create a **workflow** folder.

2. In the workflow folder create a new file called **blog-post-workflow.yml** and insert the code below into the file. Update the `feed_list` value to be your RSS URL. 

    ```yml
    name: Latest blog post workflow
    on:
      schedule: # Run workflow automatically
        - cron: '0 1 * * *' # Runs daily at 01:00
      workflow_dispatch: # Run workflow manually (without waiting for the cron to be called), through the GitHub Actions Workflow page directly
    permissions:
      contents: write # To write the generated contents to the readme

    jobs:
      update-readme-with-blog:
        name: Update this repo's README with latest blog posts
        runs-on: ubuntu-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v3
          - name: Pull in codu posts
            uses: gautamkrishnar/blog-post-workflow@v1
            with:
              feed_list: "< ❗️INSERT YOUR RSS FEED URL HERE ❗️ >"
    ```

    *Note:* This workflow contains a cron job which tells the workflow how often to run. The code above will run daily at 01:00. If you would like to change the timing of when this workflow runs, you may find [crontab.guru](https://crontab.guru/) a useful site to format your cron value.

3. In your GitHub profile README, add the following code where you want to see your articles list. You can change the heading to whatever you would like to display, but don't adjust the comments.

    ```markdown
    # 📰  My Latest Articles
    <!-- BLOG-POST-LIST:START -->
    <!-- BLOG-POST-LIST:END -->
    ```


4. Commit and push your changes to your repo.

---

### Part 3: Manually Run the Workflow

Now that we have all the code in place, lets manually run the workflow to get our articles displaying in our profile 😊

1. In your GitHub profile repo, head on over to the actions tab.

2. On the left hand side, find and click the workflow we just created.  

3. On the right hand side you will see a tab called Run Workflow. Click and select the run workflow button. You will only need to run this workflow using another branch if you have saved the workflow to a different branch within your repo.

    [![Run Workflow button](https://i.gyazo.com/4958333256a0f93d5d07a3118638cf0f.gif)](https://gyazo.com/4958333256a0f93d5d07a3118638cf0f)

4. Once the workflow has run successfully, head on over to your profile and you'll be able to see your articles list!

    ![Screenshot 2023-06-20 at 12 07 55 pm](https://github.com/codu-code/codu/assets/92253071/523ad0f9-57f8-44a1-a980-889c57e6f774)

---

### Resources

* [This Article](https://blog.sachinchaurasiya.dev/how-to-show-your-latest-blogs-on-github-profile) was the inspiration for me adding a RSS feed to my profile.

* [Blog Post Workflow Repo](https://github.com/gautamkrishnar/blog-post-workflow) by gautamkrishnar. The workflow used to update the articles list. 

* [FetchRSS](https://fetchrss.com/account) - Free RSS URL generator (login required).

* [crontab.guru](https://crontab.guru/) - Easily create your cron schedule expressions using this generator.