Skip to content

Conversation

Copy link

Copilot AI commented Nov 15, 2025

Merged main branch into the feature branch to incorporate 85 commits of upstream changes, including:

  • New DojoConn Japan 2025 assets and homepage updates
  • Enhanced news fetching workflow consolidation (.github/workflows/daily.yml)
  • Updated dojo and event service data
  • Documentation improvements (English calendar, kata guides)
  • Dependency updates and bug fixes

This brings the global_club_id feature branch up to date with the latest codebase before implementing the migration and sync functionality.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

yasulab and others added 30 commits August 19, 2025 15:35
主な改善:
- デプロイを独立したジョブに分離し、GitHub Actionsのベストプラクティスに準拠
- job outputs を使用した適切なジョブ間データ共有の実装
- $GITHUB_ENV から $GITHUB_OUTPUT への移行(GitHub推奨の最新仕様)
- 重複した bundle install を削除(bundler-cache: true で自動実行)
- 環境変数名を FOUND_NEWS に統一(一貫性のある大文字表記)
- heroku-deploy アクションを最新版(v3.14.15)に更新

効果:
- ニュースが見つからない場合はデプロイジョブ自体がスキップされ、実行時間を短縮
- ワークフローの構造が明確になり、保守性が向上
- GitHub Actions の最新仕様に準拠し、将来的な互換性を確保
Fix: Failed to update news section automatically
Bumps [rexml](https://github.com/ruby/rexml) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](ruby/rexml@v3.4.1...v3.4.2)

---
updated-dependencies:
- dependency-name: rexml
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
サイトURLを変更しました。
サイトは再構築中近日中に再アップしますが、使用していたサービス(ペライチ)が停止になり、現状表示されていないため緊急の変更です。
Bumps [rack](https://github.com/rack/rack) from 3.1.16 to 3.1.17.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)
- [Commits](rack/rack@v3.1.16...v3.1.17)

---
updated-dependencies:
- dependency-name: rack
  dependency-version: 3.1.17
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rack](https://github.com/rack/rack) from 3.1.17 to 3.1.18.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)
- [Commits](rack/rack@v3.1.17...v3.1.18)

---
updated-dependencies:
- dependency-name: rack
  dependency-version: 3.1.18
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
yasulab and others added 20 commits November 14, 2025 12:58
- すべての published_at を ISO 8601 形式(例: 2025-10-24T20:00:07+09:00)に統一
- 予期しない RSS 形式の場合は例外を発生させて早期にエラー検出
- YAGNI原則に従い不要な防御的コードを削除
- 変数名を PR_TIMES_FEED に統一
- RSS形式の違いを明確にするコメント追加
  - PR TIMES: RSS 1.0 (RDF) 形式
  - CoderDojo News: RSS 2.0 形式
すべてのニュースエントリの published_at フィールドを
ISO 8601 形式(例: 2025-11-02T13:10:18+00:00)に統一
GitHub Actions で PR TIMES フィードが正しく自動取得・追加される
ことを確認するため、既存の PR TIMES エントリ(11件)を削除。

Actions が実行されると、これらのエントリが自動的に再追加される
はずです。
…-rss-feed-for-news-section

CoderDojo Japan の PR TIMES RSS フィードを News セクションに登録
WordPress REST API と PR TIMES RSS フィードから
全記事を取得してリセットする新機能を追加:

機能:
- news.yml を空にリセット
- WordPress REST API で全投稿を取得(ページネーション対応)
- PR TIMES RSS フィードから全プレスリリースを取得
- 古い順でID付与、最新順で保存
- データベースへの反映は別タスク(news:upsert)

実行例:
- WordPress: 136件取得(2018年〜2025年)
- PR TIMES: 11件取得
- 合計: 147件を news.yml に保存
- 不要なヘルパーメソッド fetch_all_wordpress_posts() と fetch_prtimes_feed() を削除
- タスク内にロジックをインライン化してシンプルな構造に変更
- PR TIMES RSS 取得の rescue を削除し、Fail-Fast 原則を実装
- エラー時は即座にタスク停止、部分的に壊れたデータでの継続を防止
- TASK_LOGGER の構文エラーを修正(括弧の適切な配置)
- WordPress 記事: UTC から JST(+09:00)への自動変換を実装
- PR TIMES 記事: 既存の JST を保持
- news:fetch と news:fetch:reset 両タスクで JST 統一
- タイムゾーン情報を完全保持(ISO 8601 形式)

Before:
- WordPress: '2025-10-04T13:20:16Z' (UTC)
- PR TIMES: '2025-10-24T20:00:07+09:00' (JST)

After:
- WordPress: '2025-10-04T22:20:16+09:00' (JST)
- PR TIMES: '2025-10-24T20:00:07+09:00' (JST)
- ログ出力での未定義変数エラーを修正(page → index)
- PR TIMES RSSの定数使用でハードコードを解消
- コードフォーマットの統一とインデント調整
- 重複ログメッセージを削除してクリーンなログ出力
- fetch_all_wordpress_posts → fetch_dojo_news_posts に変更
- より具体的で目的が明確な命名に改善
- DojoNews専用のWordPress REST API取得メソッドとして明確化
- fetch_prtimes_posts メソッドを新規追加
- RSS::Parser を使用してPR TIMESフィードを解析
- dc:date フィールドからのJST変換を統一
- fetch:reset タスクでインライン実装(15行)を1行に簡素化
- DRY原則に従いコードの重複を排除
BREAKING CHANGE: news:fetchの動作を大幅に変更

- 複雑な増分更新ロジック(78行)を削除
- シンプルな全件再取得方式(45行)に置き換え
- news:fetch:resetタスクを削除(不要になったため)
- 完全な冪等性を実現(何度実行しても同じ結果)
- 1日3リクエストのみで効率的
- DRY原則とKISS原則を徹底適用

Before: 230行の複雑なコード
After:  167行のシンプルなコード
削除:   128行(約55%削減)
- Time.parseを削除してISO 8601文字列の直接ソートに変更
- テスト環境の複雑な条件分岐を削除(pubDateのみ使用)
- パフォーマンス向上:オブジェクト変換オーバーヘッドを排除
- メモリ効率化:不要なTimeオブジェクト生成を削除

改善効果:
- 9行の不要な例外処理削除
- 文字列ソートによる高速化
- コードの可読性向上
- 不要な formatting hash を削除
- items_by_oldest.reverse.to_yaml で直接出力
- コード可読性の向上とさらなる簡素化を実現

パフォーマンス向上TIPS:
- ISO 8601は文字列として辞書順ソート対応で設計されている
- Time.parse(published_at) より published_at 文字列での直接比較が高速
- 例: '2025-11-02T22:10:18+09:00' は文字列比較で正しく時系列順になる
…set-task

`news:fetch` タスクを冪等かつ再取得する方針に変更(約55%削減)
- YAML出力のキー順序を id, url, title, published_at に統一
- データの識別性と可読性を向上
- 明示的なハッシュ構築による順序制御を実装
- 既存システムとの互換性は完全に維持

Before:
- url: https://...
  title: ...
  published_at: '...'
  id: 147

After:
- id: 147
  url: https://...
  title: ...
  published_at: '...'
@yasulab yasulab closed this Nov 15, 2025
Copilot AI changed the title [WIP] Add global_club_id to Dojo model and implement data sync with Clubs API Merge main branch to sync with latest changes Nov 15, 2025
Copilot AI requested a review from yasulab November 15, 2025 10:56
@yasulab yasulab deleted the copilot/sub-pr-1747 branch November 15, 2025 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants