alunduil / alunduil/projects-v2-sync
Implement the idempotent Projects v2 sync reconciler
- 主要言語
- 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