Skip to content

Commit 46bec83

Browse files
committed
scripts(task_sync): fix AttributeError and add plan summary output
1 parent 5319aad commit 46bec83

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

scripts/task_sync/tri_sync.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,11 @@ def _first_present(payload: Mapping[str, Any], *paths: str) -> Any:
138138
return None
139139

140140

141-
def _parse_updated_at(payload: Mapping[str, Any], *paths: str) -> datetime:
141+
def _parse_updated_at(payload: Mapping[str, Any], *paths: str) -> datetime | None:
142142
updated_at = _first_present(payload, *paths)
143-
if isinstance(updated_at, str) and updated_at.strip():
144-
return parse_iso8601(updated_at)
145-
return datetime.now(timezone.utc)
143+
if not isinstance(updated_at, str):
144+
return None
145+
return parse_iso8601(updated_at.strip())
146146

147147

148148
def _parse_provider_ids(metadata: Mapping[str, str]) -> dict[str, str]:
@@ -380,7 +380,8 @@ def normalize_beads_payload(payload: Mapping[str, Any]) -> TaskRecord | None:
380380
title=str(payload.get("title") or payload.get("name") or ""),
381381
body=body,
382382
status=normalize_status(str(payload.get("status") or payload.get("state") or "open")),
383-
updated_at=_parse_updated_at(payload, "updated_at", "updatedAt", "created_at", "createdAt"),
383+
updated_at=_parse_updated_at(payload, "updated_at", "updatedAt", "created_at", "createdAt")
384+
or datetime.now(timezone.utc),
384385
sync_key=metadata.get("key"),
385386
provider_ids=_parse_provider_ids(metadata),
386387
raw=payload,
@@ -414,7 +415,8 @@ def normalize_asana_payload(payload: Mapping[str, Any]) -> TaskRecord | None:
414415
"updated_at",
415416
"completed_at",
416417
"created_at",
417-
),
418+
)
419+
or datetime.now(timezone.utc),
418420
sync_key=_string_or_empty(_first_present(payload, "sync_key")) or metadata.get("key"),
419421
provider_ids=_parse_provider_ids(metadata),
420422
raw=payload,
@@ -441,7 +443,8 @@ def normalize_jira_payload(payload: Mapping[str, Any]) -> TaskRecord | None:
441443
"fields.updated",
442444
"created",
443445
"fields.created",
444-
),
446+
)
447+
or datetime.now(timezone.utc),
445448
sync_key=_string_or_empty(_first_present(payload, "sync_key", "external_ref"))
446449
or metadata.get("key"),
447450
provider_ids=_parse_provider_ids(metadata),
@@ -576,7 +579,8 @@ def main(argv: Sequence[str] | None = None) -> int:
576579
raise SystemExit("Usage: tri_sync.py [plan|dry-run]")
577580

578581
plan = plan_from_sources()
579-
summarize_plan(plan)
582+
summary = summarize_plan(plan)
583+
print(json.dumps(summary, indent=2))
580584
return 0
581585

582586

0 commit comments

Comments
 (0)