in libmozevent/phabricator.py [0:0]
def is_visible(self, build):
"""
Check the visibility of the revision by loading its details
"""
assert isinstance(build, PhabricatorBuild)
assert build.state == PhabricatorBuildState.Queued
try:
# Load revision with projects
build.revision = self.api.load_revision(
rev_id=build.revision_id,
attachments={"projects": True, "reviewers": True},
)
if not build.revision:
raise Exception("Not found")
# Check against secure projects
projects = set(build.revision["attachments"]["projects"]["projectPHIDs"])
if projects.intersection(self.secure_projects):
raise Exception("Secure revision")
except Exception as e:
logger.info("Revision not accessible", build=str(build), error=str(e))
return False
return True