mongo/buildscripts/patch_builds/evg_change_data.py

28 lines
958 B
Python

"""Tools for detecting changes inside of Evergreen."""
from typing import List
from git import Repo
from evergreen import EvergreenApi
from buildscripts.patch_builds.change_data import RevisionMap, generate_revision_map
def generate_revision_map_from_manifest(repos: List[Repo], task_id: str,
evg_api: EvergreenApi) -> RevisionMap:
"""
Generate a revision map for the given repositories using the revisions from the manifest.
:param repos: Repositories to generate map for.
:param task_id: Id of evergreen task running.
:param evg_api: Evergreen API object.
:return: Map of repositories to revisions
"""
manifest = evg_api.manifest_for_task(task_id)
revisions_data = {
module_name: module.revision
for module_name, module in manifest.modules.items()
}
revisions_data["mongo"] = manifest.revision
return generate_revision_map(repos, revisions_data)