🔔

Commit2Feed: GitHubのコミット履歴をRSSフィードで出力する方法

2024/06/11に公開

tl;dr

Commit2Feedを使用して、RSSフィードを生成する方法。

  1. GitHubワークフローCommit2Feedを導入する
  2. 作成したワークフローでRSSフィードを生成する
  3. GitHub PagesRSSフィードを組み込む

以上の手順で、リポジトリの更新情報をRSSフィードで発信できます。
Enjoy!

はじめに

GitHubリポジトリのコミット履歴から、RSSフィードを生成するCommit2Feedアクションを開発しました。

TILリポジトリを例に、上記アクションの活用方法を説明します。

1. Commit2Feedとは

Commit2Feedは、GitHubリポジトリのコミット履歴をRSSフィード形式で自動生成します。
GitHubアクションとして提供されており、任意のワークフローで使用できます。

2. commit2feedのセットアップ

2.1 Commit2Feedのワークフロー設定方法

Commit2Feedカスタムアクションを使用して、RSSフィードを作成するGitHubワークフローを作成します。
次の手順でGitHubワークフローを作成します:

  1. GitHubワークフローの作成
    リポジトリに.github/workflowsディレクトリを作成し、generate_rss.ymlファイルを作成します。
    ファイルの中身は、次のようになります。

  2. GitHub workflowsの権限設定
    作成したRSSフィードをリポジトリに保存するため、GitHub Workflowにリポジトリへの書き込み権限を設定します。

    2.1 権限設定画面へ移動
    リポジトリ画面から、

    • Settingsメニューを選択し
    • 左のGeneralメニューから、Actions-Generalを選択します。

    GitHub Actions permissions

    2.2 権限の設定
    下段のWorkflow permissios画面で、

    • Read and write permissionsを選択し、
    • Allow GitHub Actions to create and approve pull requestsをチェックします。
    • Saveボタンで設定を保存します。

    workflow permission

2.2 RSSフィードの作成

Generate RSS Feedワークフローを使い、RSSフィードを作成します。
次の手順で、RSSフィードを作成します:

  1. Generate RSS Feed画面へ移動
    次の手順で、Generate RSS Feed画面に移動します。

    • Actionsメニューを選択し、
    • All workflowsで、Generate RSS Feedを選択します。

  2. RSSフィードの作成
    次の手順で、RSSフィードを作成します。

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

  3. RSSフィードの確認
    RSSフィードは、/docs/rss/feeds/xmlに作成されます。

3. RSSフィードの組み込み

作成したRSSフィードを、GitHubページに組み込む必要があります。
これにより、GitHubページの更新としてリポジトリの更新履歴が出力されます。

3.1 GitHubページの作成

次の手順で、GitHubページを作成します:

  1. ページ用ディレクトリの作成
    GitHubページ用に/docsディレクトリを作成し、TOP ページとしてindex.mdファイルを作成します。

  2. ページ作成画面に移動
    2.1 リポジトリ画面で、[Settings]を選択し、
    2.2 [Pages]を選択します。

    Pages

  3. GitHubページの作成
    branchセクションで、

    • mainブランチを選び、
    • /docディレクトリを選びます

    [save]をクリックし、作成するページを保存します。

    Build

  4. テーマの設定
    リポジトリルートに_config.ymlを作成し、下記の内容を設定します。

    _config.yml
    theme: jekyll-theme-cayman
    
    

3.2 RSSフィードGitHubページに組み込む

次の手順で、RSSフィードGitHubページに組み込みます:

  1. カスタマイズ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">
    
    
  2. フィードへのリンクを追加
    index.mdファイルを編集し、次のようにリンクを追加します。

    index.md
    ## RSS Feed
    
    [RSS Feed](https://atsushifx.github.io/til/rss/feeds.xml)
    
    

4. RSSフィードの確認

Webブラウザを使って、GitHubページRSSフィードの確認をします。

  1. GitHubページは、つぎのようになります。
    TIL

  2. 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アクションのリポジトリ
GitHubで編集を提案

Discussion