解説
何が起きたか
このプロジェクトでは、GitHub Actionsのワークフローとして「Collect information」を用意しています。手動実行に加えて、cronで毎日07:00 JSTに起動し、Pythonスクリプトで情報源を巡回して記事候補を集めます。
仕組み
ワークフローはリポジトリをチェックアウトし、Python 3.12を準備して、scripts/collect_information.pyを実行します。スクリプトはconfig/sources.jsonのカテゴリ、キーワード、情報源を読み込み、RSSやHTMLから候補を抽出してdata/raw/latest.jsonと日別スナップショットに保存します。
長所
定期的な情報収集をGitHub上で完結できるため、手元のPCを起動しておく必要がありません。収集結果がJSONとして残るので、後から候補を見返しやすく、記事化済みURLや類似タイトルを避ける処理も入れられます。変更があると自動コミットされるため、データの履歴も追いやすくなります。
注意点
GitHub Actionsは便利ですが、取得した情報がそのまま記事になるわけではありません。サイト構造の変更、取得エラー、古い情報、似た制度名の取り違えが起きる可能性があります。また、contents: write権限で自動コミットするため、ワークフローの変更範囲や実行内容は慎重に管理する必要があります。
利用方法
新しい情報源を増やすときはconfig/sources.jsonにカテゴリ、キーワード、URL、HTMLまたはRSSの種別を追加します。動作確認はscripts/collect_information.pyのdry-runで行い、問題なければGitHubのActions画面から手動実行するか、定期実行を待ちます。記事化するときはdata/rawの候補を選び、4コマ、要約、解説に整えて公開します。
ここちゃんメモ
自動化は「人が見る前の材料集め」に使うと強いでち。集める、保存する、差分を残すところはActionsに任せて、公開判断と読みやすい記事づくりは人が確認する流れが安心でち!