Skip to content

testkun08080/action-kanpo

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

官報チェック🤖

はじめに

官報のRSSを探していたところ、見つからなかったため、このプロジェクトを作成しました。
このアクションを使い、官報の更新情報を毎日確認し、SNSなどで通知できるようにすることを目指しています。
別レポでRSSを作成していますので、RSSのみをご利用の方はこちらをご覧ください。

RSSについてはこちら

使い方

このGitHub Actionをワークフローに組み込むことで、官報の更新を自動的にチェックし、必要に応じてPDFをダウンロードすることができます。
以下は、ワークフローでの使用例です。
もしくは、定期更新ワークフローをご覧ください

ワークフロー例

name: 毎日官報発行チェッカー

on:
  schedule:
    - cron: "45 23 * * *" # 毎日8:45 JST
  workflow_dispatch:

jobs:
  fetch-kanpo:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: 官報チェック(DL無し)
        id: fetch-kanpo-step
        uses: testkun08080/action-kanpo@main
        with:
          dlpdf: "false" # PDFをダウンロードしない
          # date: "2025-07-03" # 日付を指定する場合はここに入力 ない場合は当日の日付を使用
    outputs:
      kanpo_found: ${{ steps.fetch-kanpo-step.outputs.kanpo_found }}
      pdf_infos: ${{ steps.fetch-kanpo-step.outputs.pdf_infos }}

  show-fetch-kanpo-results:
    needs: fetch-kanpo
    runs-on: ubuntu-latest
    steps:
      - name: 結果を表示
        run: |
          echo "官報取得成功 or 失敗: ${{needs.fetch-kanpo.outputs.kanpo_found}}"
          echo "取得PDF数: ${{needs.fetch-kanpo.outputs.pdf_infos}}"

  fetch-dl-kanpo:
    needs: fetch-kanpo
    if: needs.fetch-kanpo.outputs.kanpo_found == 'true'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: 官報チェック(DLあり)
        id: fetch-dl-kanpo-step
        uses: testkun08080/action-kanpo@main
        with:
          dlpdf: "true" # PDFをダウンロードする
          # date: "2025-07-03" # 日付を指定する場合はここに入力 ない場合は当日の日付を使用
      - name: 自動コミット
        uses: stefanzweifel/git-auto-commit-action@v6
        with:
          commit_message: 官報のダウンロード結果の自動コミット
    outputs:
      kanpo_found: ${{ steps.fetch-dl-kanpo-step.outputs.kanpo_found}}
      pdf_infos: ${{ steps.fetch-dl-kanpo-step.outputs.pdf_infos }}

  show-fetch-dl-kanpo-results:
    needs: fetch-dl-kanpo
    runs-on: ubuntu-latest
    steps:
      - name: 結果を表示
        run: |
          echo "官報取得成功 or 失敗: ${{needs.fetch-dl-kanpo.outputs.kanpo_found}}"
          echo "取得PDF数: ${{needs.fetch-dl-kanpo.outputs.pdf_infos}}"

入力と出力

入力

  • dlpdf: PDFをダウンロードするかどうか(デフォルト: false)。trueに設定するとPDFをダウンロードします。
  • date: 対象日付(例: 2025-07-05)。指定しない場合は当日の日付を使用します。

出力

  • kanpo_found: 官報が見つかったかどうかを示すブール値。
  • pdf_infos: ダウンロードしたPDFの情報リスト(JSON形式)。各PDF情報には以下の詳細が含まれます:
    Key 内容
    url PDFファイルのURL
    name PDFに関連する名前またはタイトル(通常は日付や説明)
    filename ダウンロードしたPDFのファイル名
  • toc_infos: 官報の目次情報リスト(JSON形式)。各目次情報には、htmlでの要素と内容(タイトル情報や、リンク情報)が含まれます
    Key 内容
    element_type htmlで扱われる要素 (h2/h3/h4/ul)など
    value タイトル名、もしくは [{"link_title": "リンク名", "url": "urllink"}] などの辞書型リスト形式の値が入っています

生成されるマークダウンファイルをPDF

  • PDFをダウンロードした場合、日付ごとにkanpo/YYYY-MM-DD/官報_YYYY-MM-DD.mdというファイルが生成されます。このファイルには、ダウンロードしたPDFの一覧と官報の目次情報が詳細に記載されています。

  • 出力ファイル 出力イメージ

  • 出力マークダウンサンプル

    官報マークダウンを見る

ローカルテスト

  • ローカルでテストする場合は、Python環境と依存関係(pyproject.tomlに記載)をインストールする必要があります。 このレポジトリのクローンを行ってから、以下のコマンドでセットアップできるはずです。

    uv sync
  • 以下のコマンドを参考に実行 ダウンロードしたい場合日付指定無し(当日)

    uv run fetch_kanpo.py --dlpdf true

    ダウンロードなし場合日付指定

    uv run fetch_kanpo.py --dlpdf false --date 2025-07-05

    ローカルで実行結果を確認したい場合

    result=$(uv run fetch_kanpo.py --dlpdf false --date 2025-07-03)
    echo $result

ライセンス

このプロジェクトのライセンスについては、LICENSEファイルを参照してください。

貢献

バグ報告や機能リクエスト、プルリクエストは大歓迎です。問題や提案がある場合は、GitHubのIssueを作成してください。

About

官報の公式ページからPDFリンクや目次情報を抽出またはダウンロード出来るアクションです。

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors