Commit2Feed: GitHubのコミット履歴をRSSフィードで出力する方法
tl;dr
Commit2Feedを使用して、RSSフィードを生成する方法。
-
GitHubワークフローにCommit2Feedを導入する - 作成したワークフローで
RSSフィードを生成する -
GitHub PagesにRSSフィードを組み込む
以上の手順で、リポジトリの更新情報をRSSフィードで発信できます。
Enjoy!
はじめに
GitHubリポジトリのコミット履歴から、RSSフィードを生成するCommit2Feedアクションを開発しました。
TILリポジトリを例に、上記アクションの活用方法を説明します。
1. Commit2Feedとは
Commit2Feedは、GitHubリポジトリのコミット履歴をRSSフィード形式で自動生成します。
GitHubアクションとして提供されており、任意のワークフローで使用できます。
2. commit2feedのセットアップ
2.1 Commit2Feedのワークフロー設定方法
Commit2Feedカスタムアクションを使用して、RSSフィードを作成するGitHubワークフローを作成します。
次の手順でGitHubワークフローを作成します:
-
GitHubワークフローの作成
リポジトリに.github/workflowsディレクトリを作成し、generate_rss.ymlファイルを作成します。
ファイルの中身は、次のようになります。 -
GitHub workflowsの権限設定
作成したRSSフィードをリポジトリに保存するため、GitHub Workflowにリポジトリへの書き込み権限を設定します。2.1 権限設定画面へ移動
リポジトリ画面から、-
Settingsメニューを選択し - 左の
Generalメニューから、Actions-Generalを選択します。

2.2 権限の設定
下段のWorkflow permissios画面で、-
Read and write permissionsを選択し、 -
Allow GitHub Actions to create and approve pull requestsをチェックします。 -
Saveボタンで設定を保存します。

-
2.2 RSSフィードの作成
Generate RSS Feedワークフローを使い、RSSフィードを作成します。
次の手順で、RSSフィードを作成します:
-
Generate RSS Feed画面へ移動
次の手順で、Generate RSS Feed画面に移動します。-
Actionsメニューを選択し、 -
All workflowsで、Generate RSS Feedを選択します。

-
-
RSSフィードの作成
次の手順で、RSSフィードを作成します。-
Run workflowボタンをクリックし、Use workflow flomダイアログを表示します。 - ダイアログ中の
Run workflowボタンをクリックし、RSSフィードを作成します。

-
-
RSSフィードの確認
RSSフィードは、/docs/rss/feeds/xmlに作成されます。
3. RSSフィードの組み込み
作成したRSSフィードを、GitHubページに組み込む必要があります。
これにより、GitHubページの更新としてリポジトリの更新履歴が出力されます。
3.1 GitHubページの作成
次の手順で、GitHubページを作成します:
-
ページ用ディレクトリの作成
GitHubページ用に/docsディレクトリを作成し、TOP ページとしてindex.mdファイルを作成します。 -
ページ作成画面に移動
2.1 リポジトリ画面で、[Settings]を選択し、
2.2 [Pages]を選択します。
-
GitHubページの作成
branchセクションで、-
mainブランチを選び、 -
/docディレクトリを選びます
[save]をクリックし、作成するページを保存します。

-
-
テーマの設定
リポジトリルートに_config.ymlを作成し、下記の内容を設定します。_config.ymltheme: jekyll-theme-cayman
3.2 RSSフィードをGitHubページに組み込む
次の手順で、RSSフィードをGitHubページに組み込みます:
-
カスタマイズ
headerファイルの作成
1.1/docs下に/_includes/head_custom.htmlファイルを作成します。
1.2/_includes/head_custom.htmlに次の内容を記述します。head_custom.html<link rel="alternate" type="application/atom+xml" title="RSS Feed (ATOM)" href="https://atsushifx.github.io/til/rss/feeds.xml"> -
フィードへのリンクを追加
index.mdファイルを編集し、次のようにリンクを追加します。index.md## RSS Feed [RSS Feed](https://atsushifx.github.io/til/rss/feeds.xml)
4. RSSフィードの確認
Webブラウザを使って、GitHubページ、RSSフィードの確認をします。
-
GitHubページは、つぎのようになります。

-
RSSフィードは、つぎのようになります。

このように、RSSフィードが表示されれば、正常です。
おわりに
以上で、GitHubリポジトリの更新履歴をRSSフィードで出力できました。
生成したRSSフィードは、GitHubページを通じて提供できます。
この記事のようにTIL (Today I Learned)で、リポジトリの更新履歴を出力すれば、自身の学習結果を効率的に発信できます。
やり方は簡単です。この記事のgithub workflowをコピーし、記事にしたがってGitHubページを作成します。
そのあとは、GitHubページに追加した記事が学習履歴としてRSSフィードに出力されます。
ぜひ、TILリポジトリを作成し、自身の学習成果を共有しましょう。
それでは、Happy Hacking!
技術用語と注釈
-
GitHubワークフロー(GitHub workflows):
GitHub上で、自動的に実行される一連のタスク -
Commit2Feed:
GitHubのコミット履歴をRSSフィード形式で出力するカスタムアクション -
RSSフィード:
Webサイトの更新情報を配信する XML形式のフォーマット -
GitHubページ(GitHub Pages):
GitHub リポジトリを用いて、静的サイトをホスティングする無料のサービス。 -
workflowの権限設定:
GitHubワークフローがリポジトリに対して行える操作の権限を設定すること -
GitHubアクション(GitHub Actions):
GitHubリポジトリで自動化されたタスクを実行するためのGitHubの機能
参考資料
Webサイト
-
Commit2Feed:
コミット履歴からRSSフィードを生成するCommit2Feedアクションのリポジトリ
Discussion