@@ -137,6 +137,23 @@ class LandingJob(Base):
137137 def landing_path (self ) -> list [tuple [int , int ]]:
138138 return [(revision .revision_id , revision .diff_id ) for revision in self .revisions ]
139139
140+ @property
141+ def landing_path_compat (self ):
142+ """Return landing path based on associated revisions or legacy fields."""
143+ if self .revisions :
144+ return [
145+ {
146+ "revision_id" : "D{}" .format (revision_id ),
147+ "diff_id" : diff_id ,
148+ }
149+ for revision_id , diff_id in self .landing_path
150+ ]
151+ else :
152+ return [
153+ {"revision_id" : "D{}" .format (r ), "diff_id" : self .revision_to_diff_id [r ]}
154+ for r in self .revision_order
155+ ]
156+
140157 @property
141158 def head_revision (self ) -> str :
142159 """Human-readable representation of the branch head's Phabricator revision ID."""
@@ -313,13 +330,7 @@ def serialize(self) -> dict[str, Any]:
313330 return {
314331 "id" : self .id ,
315332 "status" : self .status .value ,
316- "landing_path" : [
317- {
318- "revision_id" : "D{}" .format (revision .revision_id ),
319- "diff_id" : revision .diff_id ,
320- }
321- for revision in self .revisions
322- ],
333+ "landing_path" : self .landing_path_compat ,
323334 "error_breakdown" : self .error_breakdown ,
324335 "details" : (
325336 self .error or self .landed_commit_id
0 commit comments