88from flask import current_app
99from landoapi .commit_message import format_commit_message
1010from landoapi .decorators import require_phabricator_api_key
11+ from landoapi .models .revisions import Revision
1112from landoapi .phabricator import PhabricatorClient
1213from landoapi .projects import (
1314 get_release_managers ,
@@ -116,19 +117,25 @@ def get(phab: PhabricatorClient, revision_id: str):
116117 }
117118
118119 revisions_response = []
119- for revision_phid , revision in stack_data .revisions .items ():
120- fields = PhabricatorClient .expect (revision , "fields" )
120+ for _phid , phab_revision in stack_data .revisions .items ():
121+ lando_revision = Revision .query .filter (
122+ Revision .revision_id == phab_revision ["id" ]
123+ ).one_or_none ()
124+ revision_phid = PhabricatorClient .expect (phab_revision , "phid" )
125+ fields = PhabricatorClient .expect (phab_revision , "fields" )
121126 diff_phid = PhabricatorClient .expect (fields , "diffPHID" )
122127 repo_phid = PhabricatorClient .expect (fields , "repositoryPHID" )
123128 diff = stack_data .diffs [diff_phid ]
124- human_revision_id = "D{}" .format (PhabricatorClient .expect (revision , "id" ))
129+ human_revision_id = "D{}" .format (PhabricatorClient .expect (phab_revision , "id" ))
125130 revision_url = urllib .parse .urljoin (
126131 current_app .config ["PHABRICATOR_URL" ], human_revision_id
127132 )
128- secure = revision_is_secure (revision , secure_project_phid )
129- commit_description = find_title_and_summary_for_display (phab , revision , secure )
130- bug_id = get_bugzilla_bug (revision )
131- reviewers = get_collated_reviewers (revision )
133+ secure = revision_is_secure (phab_revision , secure_project_phid )
134+ commit_description = find_title_and_summary_for_display (
135+ phab , phab_revision , secure
136+ )
137+ bug_id = get_bugzilla_bug (phab_revision )
138+ reviewers = get_collated_reviewers (phab_revision )
132139 accepted_reviewers = reviewers_for_commit_message (
133140 reviewers , users , projects , sec_approval_project_phid
134141 )
@@ -163,16 +170,16 @@ def get(phab: PhabricatorClient, revision_id: str):
163170 {
164171 "id" : human_revision_id ,
165172 "phid" : revision_phid ,
166- "status" : serialize_status (revision ),
173+ "status" : serialize_status (phab_revision ),
167174 "blocked_reason" : blocked .get (revision_phid , "" ),
168175 "bug_id" : bug_id ,
169176 "title" : commit_description .title ,
170177 "url" : revision_url ,
171178 "date_created" : PhabricatorClient .to_datetime (
172- PhabricatorClient .expect (revision , "fields" , "dateCreated" )
179+ PhabricatorClient .expect (phab_revision , "fields" , "dateCreated" )
173180 ).isoformat (),
174181 "date_modified" : PhabricatorClient .to_datetime (
175- PhabricatorClient .expect (revision , "fields" , "dateModified" )
182+ PhabricatorClient .expect (phab_revision , "fields" , "dateModified" )
176183 ).isoformat (),
177184 "summary" : commit_description .summary ,
178185 "commit_message_title" : commit_message_title ,
@@ -183,6 +190,9 @@ def get(phab: PhabricatorClient, revision_id: str):
183190 "reviewers" : serialize_reviewers (reviewers , users , projects , diff_phid ),
184191 "is_secure" : secure ,
185192 "is_using_secure_commit_message" : commit_description .sanitized ,
193+ "lando_revision" : lando_revision .serialize ()
194+ if lando_revision
195+ else None ,
186196 }
187197 )
188198
0 commit comments