azure devops utf8 file based requests_ja - tfsugjp/skills GitHub Wiki
Azure DevOps の REST 書き込みで UTF-8 のリクエストファイルを使い、Windows の PowerShell やコマンドライン処理を通しても日本語などの非 ASCII 文字を保ちます。既存の MCP 優先順序は維持します。
| 種類 | Issue |
|---|---|
| 親 | Issue #66 |
| 子 | Issue #67 |
| 子 | Issue #68 |
| 子 | Issue #69 |
JSON の直接指定や非 ASCII 文字のコマンド引数は、PowerShell の引用符処理やコンソールのエンコーディングで失敗することがあります。CLI の表示が文字化けしても保存データの破損とは限らないため、保存値を読み戻して確認します。
- Windows では構造化した JSON を
ConvertTo-Json -InputObjectで生成し、BOM なしの UTF-8 一時ファイルに保存します。PowerShell 7 のInvoke-RestMethod -InFileと API に合った Content-Type で送り、finallyで削除します。認証情報はヘッダーに保持します。 - Boards の JSON Patch 配列にも同じ方法を使います。説明文のリテラルな改行エスケープを送信前に検出し、標準の説明欄には Markdown を HTML リッチテキストに変換して登録し、保存形式を読み戻して確認します。Wiki は UTF-8 の Markdown ファイルを読み、JSON の
contentに格納します。更新時は ETag を使い、保存後に元の本文と比較します。Wiki CLI は--file-pathと--encoding utf-8を使います。Azure DevOps Wiki の Work Item 参照には#<id>を使い、本文中のAB#<id>を登録前と読み戻し時に拒否します。 - GitHub issue の本文ファイルは登録前に検証し、コードフェンス外のリテラルな改行エスケープと本文全体を囲む誤ったコードフェンスを拒否します。登録後に本文を読み戻して元ファイルと比較します。
- Linux/macOS の Bash 例は
curl --data-binaryでリクエストファイルを送ります。無関係な作業ツリーの変更を上書きせず、plugins/azure-devops-toolkitと.github/skillsの複製を同期します。
- Azure DevOps 基盤スキルに共通のファイル送信手順と PowerShell/Bash の例を追加します。
- Boards のリッチテキスト検証、Wiki の
#<id>形式、Windows 実行手順、Wiki の競合防止と読み戻しを含めて Boards・Wiki の書き込み手順を更新します。 - その他の REST スキルの JSON 直接指定を改め、CLI スキルに非 ASCII の Boards とファイル経由の Wiki 手順を追加します。GitHub issue の本文ファイル検証と読み戻しも追加します。
- 日本語、絵文字、引用符、バックスラッシュ、改行で JSON の往復変換とローカル HTTP 受信先への
-InFile送信を確認します。JSON Patch 配列、BOM なし UTF-8、Content-Type、Unicode 本文の一致を検証します。 - 改行エスケープが文字列のまま残る例を issue・Work Item 登録前に拒否し、実改行を含む日本語・絵文字の本文と Boards の Markdown から HTML への変換を確認します。Wiki の Markdown から JSON 本文への変換をローカルで確認します。Azure DevOps への試験書き込みは行いません。
- スキルと Marketplace の検証、
git diff --check、複製ファイルの一致を確認します。公開後は Wiki ページと Home の言語切替リンクを確認します。