alunduil / alunduil/projects-v2-sync

Implement the idempotent Projects v2 sync reconciler

オープン
#3 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
TypeScript
スター
0
フォーク
0
平均マージ
53分
マージ済み PR(30日)
1

説明

## Summary

Implement the core sync: resolve the board and fields by name, mirror
items from the spec's sources, stamp fields — idempotently.

## Scope

- Resolve project (by owner + title), field IDs, and single-select
option IDs by name at runtime — the spec carries no IDs.
- List existing project items once.
- Run the source searches (owner / author / assignee); steady state
≈ list + ~6 searches.
- Diff item membership and field values; mutate only new URLs or
drifted field values.
- Stamp the source ("filed by") field and the per-type status option.
- Auth from the action's token input (`GITHUB_PROJECT_SYNC_TOKEN` in
the consumer).

## Acceptance criteria

- [ ] Clean re-run is a strict no-op (matches `sync-project.sh`).
- [ ] New items added and stamped; drifted fields corrected; untouched
items left alone.
- [ ] Field/option resolution is by name — renaming an option in the UI
doesn't break sync (re-resolves by current name).
- [ ] Tests cover the add / drift / no-op paths.

## Additional context

- Depends on #1, #2.
- Behavior parity target: `scripts/sync-project.sh` in
alunduil/alunduil-infrastructure.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Read scripts/sync-project.sh in alunduil/alunduil-infrastructure for the behavior-parity target, then review the prerequisite work in issues #1 and #2. Locate the TypeScript action entry point and the consumer's GITHUB_PROJECT_SYNC_TOKEN input before adding coverage for add, drift, and clean no-op paths. Done means runtime name resolution works and only new or changed items are mutated.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
github, github-actions, typescript
領域
devops, tooling
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。