{"id":13822987,"url":"https://github.com/sarisia/actions-readme-feed","last_synced_at":"2026-03-08T20:32:33.009Z","repository":{"id":37955942,"uuid":"286787711","full_name":"sarisia/actions-readme-feed","owner":"sarisia","description":"Display RSS feed in your GitHub Profile README","archived":false,"fork":false,"pushed_at":"2024-08-01T18:39:02.000Z","size":1621,"stargazers_count":43,"open_issues_count":3,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-13T01:51:54.888Z","etag":null,"topics":["feed","github-actions","readme","rss"],"latest_commit_sha":null,"homepage":"https://qiita.com/sarisia/items/630d53cee7976e36faa3","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sarisia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"sarisia"}},"created_at":"2020-08-11T15:59:27.000Z","updated_at":"2024-11-22T20:36:27.000Z","dependencies_parsed_at":"2024-04-13T17:44:20.970Z","dependency_job_id":"a29b54e3-3043-434b-8624-0ac49f5ff510","html_url":"https://github.com/sarisia/actions-readme-feed","commit_stats":{"total_commits":89,"total_committers":5,"mean_commits":17.8,"dds":0.2696629213483146,"last_synced_commit":"ca98c8f608572460e4d973a397551eb8000fee63"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarisia%2Factions-readme-feed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarisia%2Factions-readme-feed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarisia%2Factions-readme-feed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarisia%2Factions-readme-feed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sarisia","download_url":"https://codeload.github.com/sarisia/actions-readme-feed/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234198230,"owners_count":18794837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["feed","github-actions","readme","rss"],"created_at":"2024-08-04T08:02:27.900Z","updated_at":"2026-03-08T20:32:32.935Z","avatar_url":"https://github.com/sarisia.png","language":"TypeScript","funding_links":["https://github.com/sponsors/sarisia"],"categories":["TypeScript"],"sub_categories":[],"readme":"# Actions Readme Feed\n\nDisplay and auto-update RSS feed in your [GitHub Profile README](https://docs.github.com/en/github/setting-up-and-managing-your-github-profile/managing-your-profile-readme)\n\n![image](https://user-images.githubusercontent.com/33576079/111362737-8191c400-86d2-11eb-9647-f29273d871b8.png)\n\n\u003e :warning: If you're reading this document in Marketplace page,\n\u003e please refer to the [latest document here](https://github.com/sarisia/actions-readme-feed).\n\n- [Usage](#usage)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n- [Examples](#examples)\n- [Remarks](#remarks)\n\n# Usage\n\nFirst, add flag comments to where you want in your document:\n\n```markdown\n### Latest Posts\n\u003c!-- feed start --\u003e\n\u003c!-- feed end --\u003e\n```\n\nThen add following steps to your workflow:\n\n```yaml\nsteps:\n  - uses: actions/checkout@v4\n  - uses: sarisia/actions-readme-feed@v1\n    with:\n      url: 'https://note.sarisia.cc/index.xml'\n      file: 'README.md'\n  - uses: sarisia/actions-commit@master\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eOr commit manually...\u003c/summary\u003e\n  \n```yaml\nsteps:\n  - uses: actions/checkout@v4\n  - uses: sarisia/actions-readme-feed@v1\n    with:\n      url: 'https://note.sarisia.cc/index.xml'\n      file: 'README.md'\n  - run: |\n      git config --global user.name \"${{ github.actor }}\"\n      git config --global user.email \"${{ github.actor }}@users.noreply.github.com\"\n      git add .\n      git commit -m \"docs: update feed\" || true\n      git push\n```\n\n\u003c/details\u003e\n\nThe result looks like:\n\n### Latest Posts\n\u003c!-- usage start --\u003e\n- Aug 21 - [C.UTF-8 とは何だったのか](https://note.sarisia.cc/entry/what-is-c-utf8/)\n- Aug 17 - [RSS フィードを GitHub プロフィールに表示する](https://note.sarisia.cc/entry/actions-readme-feed/)\n- Aug 10 - [fish スクリプトのデバッグ](https://note.sarisia.cc/entry/debugging-fish-script/)\n- Aug 08 - [Arch Linux Install Battle](https://note.sarisia.cc/entry/arch-linux-install-battle/)\n- Aug 05 - [Linuxbrew で emscripten を導入する](https://note.sarisia.cc/entry/linuxbrew-emscripten/)\n\u003c!-- usage end --\u003e\n\n# Inputs\n\n| Key | Required | Value | Default | Description |\n| :-: | :-: | :-: | - | - |\n| `url` | Yes | String | | URL of RSS feed (XML) |\n| `file` | Yes | String | | Path to document file to process.\u003cbr\u003eCan be relative path from repository root, or absolute path of Actions Runner. |\n| `sort` | | Boolean | `true` | Sort feed entries by date in decending order. |\n| `max_entry` | | Number | `5` | Number of feed entries to show |\n| `format` | | String | `- ${monthshort} ${02day} - [${title}](${url})` | Feed entry format string.\u003cbr\u003eSee [Formatting](#formatting) for details. |\n| `start_flag` | | String | `\u003c!-- feed start --\u003e` | Flag string to declare start of feed block |\n| `end_flag` | | String | `\u003c!-- feed end --\u003e` | Flag string to declare end of feed block |\n| `locale` | | String | `en-US` | Locale used to format date\u003cbr\u003e**NEEDS ADDITIONAL CONFIGURATION.** See [remarks](#locale-option-needs-additional-operation) |\n| `timezone` | | String | `UTC` | Timezone (e.g. `Asia/Tokyo`) used to format date |\n| `nowrite` | | Boolean | `false` | Do not write results to the file specified as `file` input |\n| `retry` | | Number | `3` | Number of retries for fetching feeds |\n| `retry_backoff` | | Number | `5` | Retry backoff (seconds) |\n| `ensure_all` | | Boolean | `false` | Ensure that all feeds specified as `url` input are fetched correctly (== does not skip fetch errors) |\n| `allow_empty` | | Boolean | `false` | Don't fail action if feed has no items |\n\n# Formatting\n\nExamples below uses following RSS feed item:\n\n```xml\n\u003citem\u003e\n  \u003ctitle\u003eBlog Post\u003c/title\u003e\n  \u003clink\u003ehttps://blog.example.com/blog-post\u003c/link\u003e\n  \u003cpubDate\u003eSat, 05 Aug 2020 00:00:00 +0000\u003c/pubDate\u003e\n\u003c/item\u003e\n```\n\n## Variables\n\n| Key | Example | Note |\n| :-: | :-: | - |\n| `title` | `Blog Post` | |\n| `url` | `https://blog.example.com/blog-post` | |\n| `guid` | `https://blog.example.com/blog-post` | Maybe a URL, maybe not. Check your feed. |\n| `year` | `2020` | [`timezone`](#inputs) affects |\n| `month` | `8` | [`timezone`](#inputs) affects. |\n| `monthshort` | `Aug` | [`timezone`](#inputs) affects. |\n| `monthlong` | `August` | [`timezone`](#inputs) affects. |\n| `day` | `5` | [`timezone`](#inputs) affects. |\n| `date` | `8/5/2020, 12:00:00 AM` | [`timezone`](#inputs) affects. |\n\nFor details, see [`src/format.ts`](src/format.ts)\n\n## Padding\n\nYou can padding variables with zeros or spaces.\n\n| Format | Output | Description |\n| :-: | :-: | - |\n| `${2day}` | ` 5` | Pads to length 2 with spaces |\n| `${05month}` | `00008` | Pads to length 5 with zeros |\n\n# Outputs\n\n- `changed`: Whether the document is changed while this actions's run. `1` if changed, `0` else.\n\n- `items`: Raw feed entry from [`rssparser`](https://www.npmjs.com/package/rss-parser).\n  ```json\n  [\n    {\n      \"title\":\"C.UTF-8 とは何だったのか\",\n      \"link\":\"https://note.sarisia.cc/entry/what-is-c-utf8/\",\"pubDate\":\"Fri, 21 Aug 2020 00:00:00 +0000\",\n      \"content\":\"TL;DR 全ての Linux ディス...\",\n      \"guid\":\"https://note.sarisia.cc/entry/what-is-c-utf8/\",\n      \"isoDate\":\"2020-08-21T00:00:00.000Z\"\n    },\n    ...\n  ]\n  ```\n\n- `newlines`: New lines inserted to the document specified as `file`. Lines are joined\nwith `\\n`.\n  ```\n  \u003c!-- feed start --\u003e\n  - Aug 10 - [fish スクリプトのデバッグ](https://note.sarisia.cc/entry/debugging-fish-script/)\n  - Aug 08 - [Arch Linux Install Battle](https://note.sarisia.cc/entry/arch-linux-install-battle/)\n  - Aug 05 - [Linuxbrew で emscripten を導入する](https://note.sarisia.cc/entry/linuxbrew-emscripten/)\n  - Jul 29 - [UWP アプリは localhost へ接続できない](https://note.sarisia.cc/entry/uwp-localhost/)\n  - Jul 22 - [Linuxbrew で入れた Go でビルドしたバイナリは可搬性が無い](https://note.sarisia.cc/entry/linuxbrew-go/)\n  \u003c!-- feed end --\u003e\n  ```\n\n- `result`: Result document with feed lines inserted. Lines are joined with `\\n`\n  ```\n  # Actions Readme Feed\n\n  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)\n  ...\n  ```\n\n# Examples\n\n## Other sources (e.g. Qiita)\n\nNot only Qiita, you can use any RSS feeds which [`rss-parser`](https://github.com/rbren/rss-parser) supports.\n\n```yaml\n- uses: sarisia/actions-readme-feed@v1\n  with:\n    url: 'https://qiita.com/sarisia/feed'\n    file: 'README.md'\n```\n\n\u003c!-- qiitaex start --\u003e\n- Aug 24 - [GitHubプロフィールにブログやQiitaの最新記事を表示する](https://qiita.com/sarisia/items/630d53cee7976e36faa3)\n- Jul 07 - [ローカルでも CI でも使える卒論ビルド環境](https://qiita.com/sarisia/items/bd306a064a8a5c2ab843)\n- Jun 21 - [Go Module Mirror から壊れたパッケージが落ちてくる](https://qiita.com/sarisia/items/6a0c2fdb7fa8a253b0de)\n- Jun 06 - [WSL2 Docker が PC のディスクを圧迫する](https://qiita.com/sarisia/items/5c53c078ab30eb26bc3b)\n\u003c!-- qiitaex end --\u003e\n\n## Update GitHub Profile README automatically\n\nMake your workflow with `schedule` trigger.\n\n```yaml\non:\n  schedule:\n    - cron: '0 */6 * * *'\n\njobs:\n  readme:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: sarisia/actions-readme-feed@v1\n        id: feed\n        with:\n          url: 'https://note.sarisia.cc/index.xml'\n          file: 'README.md'\n      - if: ${{ steps.feed.outputs.changed == true }}\n        uses: sarisia/actions-commit@master\n```\n\n## Using `changed` output\n\n`changed` output can be used directly in the `if` conditional.\n\n```yaml\nsteps:\n  - uses: sarisia/actions-readme-feed@v1\n    id: feed\n    with:\n      url: 'https://blog.example.com/feed.xml'\n      file: 'README.md'\n  - if: ${{ steps.feed.outputs.changed == true }}\n    run: echo \"changed!\"\n```\n\n## Multiple feeds (merged)\n\nYou can pass multiple URLs to `url` and get results with\nall feeds merged \u0026 sorted by date!\n\n```yaml\n- name: merged feed\n  uses: sarisia/actions-readme-feed@v1\n  with:\n    file: 'README.md'\n    url: |\n      https://note.sarisia.cc/index.xml\n      https://qiita.com/sarisia/feed\n      https://zenn.dev/sarisia/feed\n```\n\n## Multiple feeds (separated)\n\nMake sure to change `start_flag` and `end_flag` for each feed.\n\n```yaml\n- name: blog\n  uses: sarisia/actions-readme-feed@v1\n  with:\n    url: 'https://note.sarisia.cc/index.xml'\n    file: 'README.md'\n    start_flag: \"\u003c!-- blog start --\u003e\"\n    end_flag: \"\u003c!-- blog end --\u003e\"\n- name: qiita\n  uses: sarisia/actions-readme-feed@v1\n  with:\n    url: 'https://qiita.com/sarisia/feed'\n    file: 'README.md'\n    start_flag: \"\u003c!-- qiita start --\u003e\"\n    end_flag: \"\u003c!-- qiita end --\u003e\"\n```\n\n```markdown\n### Blog\n\u003c!-- blog start --\u003e\n\u003c!-- blog end --\u003e\n\n### Qiita\n\u003c!-- qiita start --\u003e\n\u003c!-- qiita end --\u003e\n```\n\n## Using Deploy Key or Personal Access Token\n\n[`actions/checkout`](https://github.com/actions/checkout) action can handle this.\n\nFor deploy key:\n\n```yaml\n- uses: actions/checkout@v4\n  with:\n    ssh-key: ${{ secrets.DEPLOY_KEY }}\n- uses: sarisia/actions-readme-feed@v1\n```\n\nFor Personal Access Token:\n\n```yaml\n- uses: actions/checkout@v4\n  with:\n    token: ${{ secrets.PAT }}\n- uses: sarisia/actions-readme-feed@v1\n```\n\n# Remarks\n\n## `locale` option needs additional operation\n\nSetting `locale` option is not working correctly due to the limitation of\nNode.js shipped with GitHub Actions runner.\n\nIf you want this to work, you need to set up ICU data set manually.\n\nYou can use the helper action [`sarisia/setup-icu`](https://github.com/sarisia/setup-icu) to do this:\n\n```yaml\nsteps:\n  - uses: sarisia/setup-icu@v1\n  - uses: sarisia/actions-readme-feed@v1\n    with:\n      url: https://note.sarisia.cc/index.xml\n      file: README.md\n      locale: 'ja-JP'\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eAlso you can do this manually...\u003c/summary\u003e\n\n```yaml\nsteps:\n  - run: npm install icu4c-data@64l\n  - uses: sarisia/actions-readme-feed@v1\n    with:\n      url: https://note.sarisia.cc/index.xml\n      file: README.md\n      locale: 'ja-JP'\n    env:\n      NODE_ICU_DATA: node_modules/icu4c-data\n```\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarisia%2Factions-readme-feed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarisia%2Factions-readme-feed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarisia%2Factions-readme-feed/lists"}