Skip to content

feat: repo-maintenance に CI 統一チェックを追加 - #603

Merged
keito4 merged 2 commits into
mainfrom
feat/repo-maintenance-ci-unification
Mar 21, 2026
Merged

feat: repo-maintenance に CI 統一チェックを追加#603
keito4 merged 2 commits into
mainfrom
feat/repo-maintenance-ci-unification

Conversation

@keito4

@keito4 keito4 commented Mar 21, 2026

Copy link
Copy Markdown
Owner

Summary

/repo-maintenance コマンドに CI 統一チェックの 3 ステップを追加:

3.5.1 CI Template Sync Check

  • templates/workflows/.github/workflows/ の差分を自動検出
  • 乖離時は diff 表示と同期提案
  • full モードではテンプレートの反映を対話的に確認

3.5.2 CI Consistency Check

  • Node.js バージョン整合性(.node-version vs ワークフロー)
  • 同一 Actions の複数バージョン検出
  • Runner バージョンの一貫性確認

3.5.3 CI Template Deployment Check

  • 再利用可能ワークフローの workflow_call 定義チェック
  • テンプレート内のハードコードされたリポジトリ名検出
  • 他リポジトリへの展開準備状況確認

Test plan

  • /repo-maintenance --mode check-only で CI 統一チェックが表示されること
  • /repo-maintenance --mode full でテンプレート同期が提案されること

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a CI fallback check that detects existing CI runs and conditionally marks quality gate status; tightened Dependabot automation gating to only run for Dependabot PRs and specific update types.
  • Documentation

    • Expanded CI/CD maintenance guidance with template sync, workflow consistency checks (versions, runtimes, job names), and reporting.
  • Chores

    • Updated internal maintenance command references and summaries.

Step 3.5 の後に 3 つの CI 統一チェックを追加:

1. 3.5.1 CI Template Sync Check
   - templates/workflows/ と .github/workflows/ の差分検出
   - 乖離時は diff 表示と同期提案

2. 3.5.2 CI Consistency Check
   - Node.js バージョン整合性(.node-version vs ワークフロー)
   - Actions バージョン統一(同一アクションの複数バージョン検出)
   - Runner バージョン一貫性

3. 3.5.3 CI Template Deployment Check
   - 再利用可能ワークフローの定義チェック
   - テンプレート内のハードコードされたリポジトリ名検出

Summary Report と Related Commands にも反映済み。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Mar 21, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 40e255b1-2b65-4f7e-a69d-743cdb6a97c1

📥 Commits

Reviewing files that changed from the base of the PR and between 8cedc17 and 5b8aad5.

📒 Files selected for processing (3)
  • .github/workflows/quality-gate-fallback.yml
  • templates/workflows/dependabot-auto-merge.yml
  • templates/workflows/label-sync.yml

📝 Walkthrough

Walkthrough

Added CI/CD validation and template-sync procedures: new workflow to detect fallback CI runs, updates to Dependabot and label-sync templates, and expanded repo-maintenance documentation with template synchronization, version/consistency checks, and deployment guidance.

Changes

Cohort / File(s) Summary
Repo maintenance doc
​.claude/commands/repo-maintenance.md
Added CI-related checklist items and procedures: CI Template Sync, CI Consistency, CI Template Deployment; checks for workflow file mismatches, .node-version alignment, Actions uses: version consistency, required-status-check job-name consistency, runs-on uniformity, detection of workflow_call and hardcoded repo names, and full-mode remediation paths.
New fallback workflow
.github/workflows/quality-gate-fallback.yml
Added a CI workflow that checks for an existing CI run on the same commit and sets ci_running output; conditionally emits a quality-gate-passed message when no CI run exists.
Workflow templates updates
templates/workflows/dependabot-auto-merge.yml, templates/workflows/label-sync.yml
Dependabot: moved actor guard from job to step level and added an early skip step for non-Dependabot actors; gating conditions tightened for auto-merge/approve/label steps. Label-sync: bumped actions/checkout to v6.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

feature

Poem

🐇✨ I hopped through workflows late at night,
I nudged the templates till they fit just right.
Versions aligned and checks in a row,
A tidy CI garden where safe pipelines grow.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and specifically describes the main change: adding CI unification checks to the repo-maintenance command, which aligns with the primary objective of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/repo-maintenance-ci-unification

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@keito4

keito4 commented Mar 21, 2026

Copy link
Copy Markdown
Owner Author

🔍 AI Code Review (Local Hook)

Models: Codex (default) / Gemini (default)

🤖 Codex Review

指摘事項(重大度順)

  1. テンプレートチェックが“テンプレート不在”時に誤検知する可能性

    • .claude/commands/repo-maintenance.md 709-720
    • templates/workflows/*.yml が0件のとき、bashではグロブが展開されずリテラル文字列のままループが回り、MISS が出力される可能性があります。テンプレートが存在しない環境でも誤検知になり得るため、shopt -s nullglob の追加や、ループ前の存在チェックが必要です。
  2. Node.js バージョン整合性チェックが 20.x 表記を誤検知する可能性

    • .claude/commands/repo-maintenance.md 752-761
    • .node-version20.11.1、ワークフローが 20.x のような許容表記だと、NODE_FILE_VER=2020.x が一致せずミスマッチ扱いになります。20/20.x/20.11.1 の許容比較ロジックが必要です(例: 20.x20 と同一視)。

総合判定: patch is incorrect
理由: 手順として記載された検証ロジックが誤検知を生む可能性があり、運用上の判断を誤らせる恐れがあるため。
信頼度: 0.54


⚠️ 修正が必要です

上記のレビューで問題が指摘されています。修正してからマージしてください。


🤖 Generated by post_pr_ai_review.py hook

@keito4

keito4 commented Mar 21, 2026

Copy link
Copy Markdown
Owner Author

🔍 AI Code Review (Local Hook)

Models: Codex (default) / Gemini (default)

🤖 Codex Review

指摘なし。ドキュメント追加のみで、正確性・性能・セキュリティ・保守性・開発者体験に影響するアクション可能な問題は見当たりませんでした。

判定: patch is correct。理由: 変更は運用手順の追記で、内容に明確な誤りやリスク増加が見当たらないため。信頼度: 0.68


🤖 Generated by post_pr_ai_review.py hook

@keito4 keito4 self-assigned this Mar 21, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8cedc17853

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +758 to +759
if [ "$v" != "$NODE_FILE_VER" ] && [ "$v" != "$(cat .node-version)" ]; then
echo "MISMATCH: workflow uses node $v, .node-version is $(cat .node-version)"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Guard Node check when .node-version is missing

The mismatch condition calls $(cat .node-version) inside the loop without a file-existence guard. In repositories that set node-version in workflows but do not track a .node-version file, this emits No such file errors and flags every workflow version as mismatched, so the consistency check becomes false-positive noise. Gate this logic on -f .node-version (or compute one fallback value once) before iterating.

Useful? React with 👍 / 👎.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/commands/repo-maintenance.md:
- Around line 743-748: Add a validation block that verifies
"ジョブ名・ステータスチェック名の一貫性" by cross-checking workflow job IDs against branch
protection required status check contexts: enumerate job IDs from parsed
workflows and compare them to the strings in required_status_checks.contexts,
flagging any contexts that don't match an existing workflow job ID (and vice
versa). Integrate this into the existing validation routine that performs
Node.js/Actions/Runner checks so it runs alongside those checks, and surface
clear error messages referencing the mismatched context and the workflow
file/job id (e.g., mention "Quality Gate" if present) so maintainers can correct
either the workflow job name or branch protection setting.
- Around line 710-720: Enable bash nullglob before any glob-based loops/greps
and disable it afterward to avoid literal unmatched-glob strings; specifically,
add shopt -s nullglob before the loop that starts with "for f in
templates/workflows/*.yml; do" (and before the code that greps
.github/workflows/templates/) so empty directories produce no matches instead of
literal patterns, and restore the original state with shopt -u nullglob (or
save/restore with shopt -p) after those blocks.
- Around line 754-760: Normalize the node versions before comparing: read and
trim .node-version into NODE_FILE_VER (remove leading "v" and surrounding
whitespace), normalize each value in WORKFLOW_VERS the same way (strip any
leading "v" prefix and whitespace) in the extraction pipeline that builds
WORKFLOW_VERS, and then use those normalized values in the loop that checks for
mismatches (the for v in $WORKFLOW_VERS loop and the comparison against
NODE_FILE_VER and $(cat .node-version)). Ensure both sides of the comparison use
the same normalization logic so prefixes like "v" or trailing spaces won't
trigger false mismatches.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e3416f3e-0dfb-4a82-98b3-568ee8a68dff

📥 Commits

Reviewing files that changed from the base of the PR and between 552d4a8 and 8cedc17.

📒 Files selected for processing (1)
  • .claude/commands/repo-maintenance.md

Comment on lines +710 to +720
for f in templates/workflows/*.yml; do
base=$(basename "$f")
actual=".github/workflows/$base"
if [ -f "$actual" ]; then
if ! diff -q "$f" "$actual" > /dev/null 2>&1; then
echo "DIFF: $base — テンプレートと実ファイルが乖離"
fi
else
echo "MISS: $base — テンプレートはあるがワークフロー未配置"
fi
done

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify whether unmatched globs are handled before loops
rg -n -C2 'for f in (templates/workflows/\*\.yml|\.github/workflows/templates/\*\.yml)' .claude/commands/repo-maintenance.md
rg -n -C2 'nullglob' .claude/commands/repo-maintenance.md

Repository: keito4/config

Length of output: 430


🏁 Script executed:

#!/bin/bash
# Verify the exact content at the specified line ranges
sed -n '705,725p' .claude/commands/repo-maintenance.md
echo "---"
sed -n '800,815p' .claude/commands/repo-maintenance.md

Repository: keito4/config

Length of output: 866


🏁 Script executed:

#!/bin/bash
# Check if the directories referenced in the globs actually exist
ls -la templates/workflows/ 2>&1 | head -20
echo "---"
ls -la .github/workflows/templates/ 2>&1 | head -20

Repository: keito4/config

Length of output: 959


Add nullglob to handle empty template directories safely.

Without shopt -s nullglob, unmatched glob patterns expand to literal strings (templates/workflows/*.yml), causing:

  • Line 710-720: Silent misdetection if templates/workflows/ is empty
  • Line 804-808: Grep errors if .github/workflows/templates/ is empty

Directories currently exist with files, but the code lacks resilience to future emptying or misconfiguration.

🔧 Suggested fix
+shopt -s nullglob
+
 for f in templates/workflows/*.yml; do
   base=$(basename "$f")
   actual=".github/workflows/$base"
@@ -716,0 +720,2 @@
 done
+
+shopt -u nullglob

Also applies to: 804–808

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/commands/repo-maintenance.md around lines 710 - 720, Enable bash
nullglob before any glob-based loops/greps and disable it afterward to avoid
literal unmatched-glob strings; specifically, add shopt -s nullglob before the
loop that starts with "for f in templates/workflows/*.yml; do" (and before the
code that greps .github/workflows/templates/) so empty directories produce no
matches instead of literal patterns, and restore the original state with shopt
-u nullglob (or save/restore with shopt -p) after those blocks.

Comment on lines +743 to +748
| # | チェック | 確認方法 | 推奨 |
| --- | -------------------------------------- | --------------------------------------------------------------------------- | ------------------------------ |
| 1 | Node.js バージョン統一 | `grep -rh 'node-version' .github/workflows/*.yml` と `.node-version` を比較 | `.node-version` の値と一致 |
| 2 | Actions バージョン統一 | 同一アクションのバージョンがワークフロー間で一致しているか | 全ワークフローで同一バージョン |
| 3 | ジョブ名・ステータスチェック名の一貫性 | Required Status Checks に使われるジョブ名が正しいか | `Quality Gate` 等の統一名 |
| 4 | Runner バージョン | `runs-on` の値がワークフロー間で一貫しているか | `ubuntu-latest` に統一 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify that a concrete check exists for required status checks / job-name consistency
rg -n -C3 'ジョブ名・ステータスチェック名|Required Status Checks|Quality Gate' .claude/commands/repo-maintenance.md
rg -n -C3 'branch protection|required_status_checks|contexts|jobs:' .claude/commands/repo-maintenance.md

Repository: keito4/config

Length of output: 1909


🏁 Script executed:

sed -n '750,779p' .claude/commands/repo-maintenance.md

Repository: keito4/config

Length of output: 1084


The documented check for job/status check name consistency (line 747) has no corresponding implementation in the validation script.

The confirmation logic (lines 750–779) includes checks for Node.js versions, Actions versions, and Runner versions, but completely omits validation for the job name/status check consistency documented in line 747 (ジョブ名・ステータスチェック名の一貫性). This creates a false confidence that all four checks are being performed when only three are actually implemented.

Add a validation block to verify that job names used in Required Status Checks are consistent with workflow job IDs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/commands/repo-maintenance.md around lines 743 - 748, Add a
validation block that verifies "ジョブ名・ステータスチェック名の一貫性" by cross-checking workflow
job IDs against branch protection required status check contexts: enumerate job
IDs from parsed workflows and compare them to the strings in
required_status_checks.contexts, flagging any contexts that don't match an
existing workflow job ID (and vice versa). Integrate this into the existing
validation routine that performs Node.js/Actions/Runner checks so it runs
alongside those checks, and surface clear error messages referencing the
mismatched context and the workflow file/job id (e.g., mention "Quality Gate" if
present) so maintainers can correct either the workflow job name or branch
protection setting.

Comment on lines +754 to +760
NODE_FILE_VER=$(cat .node-version 2>/dev/null | cut -d. -f1)
WORKFLOW_VERS=$(grep -rh 'node-version' .github/workflows/*.yml \
| sed "s/.*node-version[: ]*['\"]*//" | sed "s/['\"].*//" | sort -u)
for v in $WORKFLOW_VERS; do
if [ "$v" != "$NODE_FILE_VER" ] && [ "$v" != "$(cat .node-version)" ]; then
echo "MISMATCH: workflow uses node $v, .node-version is $(cat .node-version)"
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify current parsing logic and likely mismatch-prone patterns
rg -n -C2 'NODE_FILE_VER|WORKFLOW_VERS|node-version' .claude/commands/repo-maintenance.md

Repository: keito4/config

Length of output: 1229


🏁 Script executed:

cat .node-version

Repository: keito4/config

Length of output: 64


🏁 Script executed:

find .github/workflows -name "*.yml" -o -name "*.yaml" | head -20

Repository: keito4/config

Length of output: 805


🏁 Script executed:

grep -rh 'node-version' .github/workflows/ 2>/dev/null | head -20

Repository: keito4/config

Length of output: 658


🏁 Script executed:

grep -rh 'node-version' .github/workflows/*.yml | head -30

Repository: keito4/config

Length of output: 490


🏁 Script executed:

grep -rh 'node-version' .github/workflows/*.yml | \
  sed "s/.*node-version[: ]*['\"]*//" | sed "s/['\"].*//" | sort -u

Repository: keito4/config

Length of output: 60


🏁 Script executed:

grep -rh 'node-version' .github/workflows/ | grep -E "v[0-9]|'v" | head -10

Repository: keito4/config

Length of output: 39


🏁 Script executed:

cat .github/workflows/ci.yml | grep -A2 -B2 'node-version'

Repository: keito4/config

Length of output: 419


Normalize Node version values before comparison.

Current comparison can mis-detect when .node-version contains formats like v22.14.0 or trailing spaces. While the current file uses a clean format (22.22.0), the parsing logic extracts only the first version segment and doesn't account for prefixes or whitespace, which could cause false positives if the file format changes.

🔧 Suggested fix
-NODE_FILE_VER=$(cat .node-version 2>/dev/null | cut -d. -f1)
+NODE_FILE_RAW=$(tr -d '[:space:]' < .node-version 2>/dev/null)
+NODE_FILE_VER=$(echo "$NODE_FILE_RAW" | sed -E 's/^v//' | cut -d. -f1)
@@
-for v in $WORKFLOW_VERS; do
-  if [ "$v" != "$NODE_FILE_VER" ] && [ "$v" != "$(cat .node-version)" ]; then
-    echo "MISMATCH: workflow uses node $v, .node-version is $(cat .node-version)"
+for v in $WORKFLOW_VERS; do
+  WV=$(echo "$v" | tr -d '[:space:]' | sed -E "s/^['\"]|['\"]$//g; s/^v//" | cut -d. -f1)
+  if [ -n "$NODE_FILE_VER" ] && [ "$WV" != "$NODE_FILE_VER" ]; then
+    echo "MISMATCH: workflow uses node $v, .node-version is $NODE_FILE_RAW"
   fi
 done
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
NODE_FILE_VER=$(cat .node-version 2>/dev/null | cut -d. -f1)
WORKFLOW_VERS=$(grep -rh 'node-version' .github/workflows/*.yml \
| sed "s/.*node-version[: ]*['\"]*//" | sed "s/['\"].*//" | sort -u)
for v in $WORKFLOW_VERS; do
if [ "$v" != "$NODE_FILE_VER" ] && [ "$v" != "$(cat .node-version)" ]; then
echo "MISMATCH: workflow uses node $v, .node-version is $(cat .node-version)"
fi
NODE_FILE_RAW=$(tr -d '[:space:]' < .node-version 2>/dev/null)
NODE_FILE_VER=$(echo "$NODE_FILE_RAW" | sed -E 's/^v//' | cut -d. -f1)
WORKFLOW_VERS=$(grep -rh 'node-version' .github/workflows/*.yml \
| sed "s/.*node-version[: ]*['\"]*//" | sed "s/['\"].*//" | sort -u)
for v in $WORKFLOW_VERS; do
WV=$(echo "$v" | tr -d '[:space:]' | sed -E "s/^['\"]|['\"]$//g; s/^v//" | cut -d. -f1)
if [ -n "$NODE_FILE_VER" ] && [ "$WV" != "$NODE_FILE_VER" ]; then
echo "MISMATCH: workflow uses node $v, .node-version is $NODE_FILE_RAW"
fi
done
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/commands/repo-maintenance.md around lines 754 - 760, Normalize the
node versions before comparing: read and trim .node-version into NODE_FILE_VER
(remove leading "v" and surrounding whitespace), normalize each value in
WORKFLOW_VERS the same way (strip any leading "v" prefix and whitespace) in the
extraction pipeline that builds WORKFLOW_VERS, and then use those normalized
values in the loop that checks for mismatches (the for v in $WORKFLOW_VERS loop
and the comparison against NODE_FILE_VER and $(cat .node-version)). Ensure both
sides of the comparison use the same normalization logic so prefixes like "v" or
trailing spaces won't trigger false mismatches.

@claude

claude Bot commented Mar 21, 2026

Copy link
Copy Markdown
Contributor

PR #603 レビュー結果

変更ファイルは .claude/commands/repo-maintenance.md のみで、Claude が実行するシェルスクリプトのサンプルロジックとして埋め込まれているため、バグはランタイムに影響します。

バグ・ロジックの問題:

  1. Node.js バージョン比較のロジックが不安定(3.5.2): NODE_FILE_VER はメジャーのみ(例: 20)を取得しているのに、ワークフロー側が 20.11.0 を使っている場合、両辺とも不一致となり誤検知します。.node-version を2回 cat しており非効率でもあります。修正案: 比較軸を統一する(どちらもメジャーのみ、またはどちらも完全一致)。

  2. grep -v がファイル名フィルタになっていない(3.5.3): grep -v はファイル名ではなく行の内容に対して適用されるため Markdown ファイルの除外ができません。修正案: --include/--exclude オプションを使う。

  3. wc -l による偽陽性リスク(3.5.2): versions 変数が空でも echo はデフォルトで改行を出力するため wc -l は 1 を返します。ループ先頭に [ -z versions ] && continue を追加することで回避できます。

  4. サマリー出力に 3.5.3 が未記載: CI Template Deployment Check の結果行がサマリーセクションに追加されていません。3つのチェックを追加しているのにサマリーは2行だけです。

軽微な指摘:
変数の未クォート: echo versions を echo versions に修正推奨。

良い点:

  • テンプレートと実ファイルの乖離検出(3.5.1)の設計は明快で実用的
  • check-only / full モードの使い分けが一貫している
  • テーブルへの追記も漏れなく対応されている

まとめ:
重要度高の2件(Node.js バージョン比較、grep -v のファイル名フィルタ誤り)を修正すれば LGTM です。

Reviewed with Claude Code

1. quality-gate-fallback.yml を追加
   - CI が paths フィルタでスキップされた場合に Quality Gate を Pass で報告
   - Required Status Check が pending にならなくなる
   - CI 本体が実行された場合は重複せず CI 側が優先

2. テンプレート同期
   - dependabot-auto-merge.yml: Pass 終了修正をテンプレートに反映
   - label-sync.yml: checkout@v4 → @v6 に更新

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@keito4
keito4 merged commit 1c34e03 into main Mar 21, 2026
11 of 12 checks passed
@keito4
keito4 deleted the feat/repo-maintenance-ci-unification branch March 21, 2026 02:54
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.100.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released リリース済み

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant