Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
rss

GitHub Action

Actions Readme Feed

v1.3.0

Actions Readme Feed

rss

Actions Readme Feed

Display RSS feed in your GitHub Profile README

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Actions Readme Feed

uses: sarisia/[email protected]

Learn more about this action in sarisia/actions-readme-feed

Choose a version

Actions Readme Feed

Display RSS feed in your GitHub Profile README

Usage

First, add flag comments to where you want in your document:

### Latest Posts
<!-- feed start -->
<!-- feed end -->

Then add following steps to your workflow:

steps:
  - uses: actions/checkout@v2
  - uses: sarisia/actions-readme-feed@v1
    with:
      url: 'https://note.sarisia.cc/index.xml'
      file: 'README.md'
  - run: |
      git config --global user.name "${{ github.actor }}"
      git config --global user.email "${{ github.actor }}@users.noreply.github.com"
      git add .
      git commit -m "docs: update feed" || true
      git push

The result looks like:

Latest Posts

Inputs

Key Required Value Default Description
url Yes String URL of RSS feed (XML)
file Yes String Path to document file to process.
Can be relative path from repository root, or absolute path of Actions Runner.
sort Boolean true Sort feed entries by date in decending order.
max_entry Number 5 Number of feed entries to show
format String - ${monthshort} ${02day} - [${title}](${url}) Feed entry format string.
See Formatting for details.
start_flag String <!-- feed start --> Flag string to declare start of feed block
end_flag String <!-- feed end --> Flag string to declare end of feed block
locale String en-US Locale used to format date
NOT WORKING. See []
timezone String UTC Timezone used to format date

Formatting

Examples below uses following RSS feed item:

<item>
  <title>Blog Post</title>
  <link>https://blog.example.com/blog-post</link>
  <pubDate>Sat, 05 Aug 2020 00:00:00 +0000</pubDate>
</item>

Variables

Key Example Note
title Blog Post
url https://blog.example.com/blog-post
year 2020 UTC
month 8 UTC
monthshort Aug UTC
monthlong August UTC
day 5 UTC
date 8/5/2020, 12:00:00 AM UTC

For details, see src/format.ts

Padding

You can padding variables with zeros or spaces.

Format Output Description
${2day} 5 Pads to length 2 with spaces
${05month} 00008 Pads to length 5 with zeros

Outputs

  • changed: Whether the document is changed while this actions's run. 1 if changed, 0 else.

  • items: Raw feed entry from rssparser.

    [
      {
        "title":"C.UTF-8 とは何だったのか",
        "link":"https://note.sarisia.cc/entry/what-is-c-utf8/","pubDate":"Fri, 21 Aug 2020 00:00:00 +0000",
        "content":"TL;DR 全ての Linux ディス...",
        "guid":"https://note.sarisia.cc/entry/what-is-c-utf8/",
        "isoDate":"2020-08-21T00:00:00.000Z"
      },
      ...
    ]
  • newlines: New lines inserted to the document specified as file. Lines are joined with \n.

    <!-- feed start -->
    - Aug 10 - [fish スクリプトのデバッグ](https://note.sarisia.cc/entry/debugging-fish-script/)
    - Aug 08 - [Arch Linux Install Battle](https://note.sarisia.cc/entry/arch-linux-install-battle/)
    - Aug 05 - [Linuxbrew で emscripten を導入する](https://note.sarisia.cc/entry/linuxbrew-emscripten/)
    - Jul 29 - [UWP アプリは localhost へ接続できない](https://note.sarisia.cc/entry/uwp-localhost/)
    - Jul 22 - [Linuxbrew で入れた Go でビルドしたバイナリは可搬性が無い](https://note.sarisia.cc/entry/linuxbrew-go/)
    <!-- feed end -->
    
  • result: Result document with feed lines inserted. Lines are joined with \n

    # Actions Readme Feed
    
    Display RSS feed in your [GitHub Profile README](https://docs.github.com/en/github/setting-up-and-managing-your-github-profile/managing-your-profile-readme)
    ...
    

Examples

Using changed output

changed output can be used directly in the if conditional.

steps:
  - uses: sarisia/actions-readme-feed@v1
    id: feed
    with:
      url: 'https://blog.example.com/feed.xml'
      file: 'README.md'
  - if: ${{ steps.feed.outputs.changed == true }}
    run: echo "changed!"

Update GitHub Profile README automatically

Make your workflow with schedule trigger.

on:
  schedule:
    - cron: '0 */6 * * *'

jobs:
  readme:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: sarisia/actions-readme-feed@v1
        id: feed
        with:
          url: 'https://note.sarisia.cc/index.xml'
          file: 'README.md'
      - if: ${{ steps.feed.outputs.changed == true }}
        run: |
          git config --global user.name "${{ github.actor }}"
          git config --global user.email "${{ github.actor }}@users.noreply.github.com"
          git add .
          git commit -m "docs: update feed"
          git push

Other sources (e.g. Qiita)

Not only Qiita, you can use any RSS feeds that rss-parser supports.

- uses: sarisia/actions-readme-feed@v1
  with:
    url: 'https://qiita.com/sarisia/feed'
    file: 'README.md'

Multiple feeds

Make sure to change start_flag and end_flag for each feed.

- name: blog
  uses: sarisia/actions-readme-feed@v1
  with:
    url: 'https://note.sarisia.cc/index.xml'
    file: 'README.md'
    start_flag: "<!-- blog start -->"
    end_flag: "<!-- blog end -->"
- name: qiita
  uses: sarisia/actions-readme-feed@v1
  with:
    url: 'https://qiita.com/sarisia/feed'
    file: 'README.md'
    start_flag: "<!-- qiita start -->"
    end_flag: "<!-- qiita end -->"
### Blog
<!-- blog start -->
<!-- blog end -->

### Qiita
<!-- qiita start -->
<!-- qiita end -->

Remarks

locale option is not working

Setting locale option is not working correctly due to the limitation of Node.js shipped with GitHub Actions runner. I'm investigating this issue.

timezone seems working correctly.