GitHub Action
Actions Readme Feed
Display RSS feed in your GitHub Profile README
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:
- Aug 21 - C.UTF-8 とは何だったのか
- Aug 17 - RSS フィードを GitHub プロフィールに表示する
- Aug 10 - fish スクリプトのデバッグ
- Aug 08 - Arch Linux Install Battle
- Aug 05 - Linuxbrew で emscripten を導入する
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 |
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>
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
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 |
-
changed
: Whether the document is changed while this actions's run.1
if changed,0
else. -
items
: Raw feed entry fromrssparser
.[ { "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 asfile
. 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) ...
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!"
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
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'
- Aug 24 - GitHubプロフィールにブログやQiitaの最新記事を表示する
- Jul 07 - ローカルでも CI でも使える卒論ビルド環境
- Jun 21 - Go Module Mirror から壊れたパッケージが落ちてくる
- Jun 06 - WSL2 Docker が PC のディスクを圧迫する
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 -->
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.