HackerNews を翻訳・要約して RSS 配信するパイプラインを完全無料で作った話

こんにちは。jedipunkz🚀 です。 HackerNews を毎日読みたいのですが、昔は狂ったように巡回していたものの最近は厳しく英語も何だか疲れてしまうし、そして1日に流れてくる記事数が多すぎて自分の関心領域(SRE / Platform Engineering / AI)に絞り込むのが面倒、という課題がありました。そこで「興味のある記事だけを日本語に翻訳し、AI でサマライズして RSS リーダーに流す」パイプラインを作りました。ポイントは、翻訳・要約・ホスティングまで含めてすべて無料サービスだけで完結している点です。 全体アーキテクチャ パイプラインは下記のように、クロール → 翻訳 → AI 要約 → RSS 配信という流れになっています。 (1) HackerNews をクロール (GitHub Actions + Go + Algolia API) (2) contents/YYYY-MM-DD/*.md として保存 (Google Tranalate) (3) AI 翻訳 (GitHub Models - gpt-4o-mini (4) summaries/YYYY-MM-DD.json 保存 (5) Astro ビルド -> rss.xml 配信 (Vercel) クロールと要約は2つの GitHub Actions ワークフローに分かれていて、前者の完了をトリガーに後者が走るようにしています。要約結果の JSON が main に push されると Vercel が自動でビルドし、RSS が更新されます。 1. クロールと翻訳(GitHub Actions + Go) 最初のステップは HackerNews からの記事取得です。これは Go で書いたツールが担当しています。HackerNews 公式 API ではなく Algolia の HN Search API を使うことで、期間指定や検索が簡単になります。API キーは不要です。 ...

2026-06-06 · 3 分 · jedipunkz

Terraform Plan 差分をパースする GitHub Actions を作った

こんにちは。jedipunkz🚀 です。 Terraform を運用しているとたまに Plan 結果がどうしても出てしまう事があります。また Terraform を GitHub で実行する環境を運用していると Plan 結果をうまく扱って自動化したいモチベーションも湧いてきます。この場合に Plan の差分をうまく処理してくれる GitHub Action があればなと思って作ってみました。 GitHub Actions 作成した GitHub Action は下記のレポジトリで公開しています。 https://github.com/jedipunkz/tf-plan-parser 入力・オプション設定 この GitHub Action では2つの入力オプションが利用可能です: terraform-plan (必須) パース対象となる Terraform Plan の出力結果を指定します。通常は前のステップで実行した terraform plan コマンドの標準出力を渡します。 ignore-resources (オプション) 無視したいリソースタイプや特定のリソースを配列形式で指定します。デフォルトは空の配列 [] です。 指定方法の例: リソースタイプ全体を無視: ignore-resources: '["null_resource", "local_file"]' 特定のリソースインスタンスを無視: ignore-resources: '["null_resource.temporary", "local_file.cache"]' リソースタイプとインスタンスの混在: ignore-resources: '["null_resource", "aws_s3_bucket.temp", "local_file"]' 出力される情報 この Action は以下の出力を提供します。また下記は ignore-resources オプションの指定に沿って結果を出力してくれます。 diff-bool: 変更があるかどうかの真偽値(true または false) diff-count: 変更されるリソースの数 diff-resources: 変更されるリソースのアドレス一覧(カンマ区切り) diff-raw: 生の差分データ diff-json: s分データの JSON 形式 これらの出力を使って、後続のステップで条件分岐や通知の制御が可能です。 ...

2025-09-15 · 5 分 · jedipunkz