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