class GithubPullRequestHandler(AbstractGithubJobHandler): name = JobType.check_downstream triggers = [JobTriggerType.pull_request] # https://developer.github.com/v3/activity/events/types/#events-api-payload-28 def __init__(self, config: ServiceConfig, job: JobConfig, pr_event: PullRequestEvent): super().__init__(config=config, job=job, event=pr_event) self.pr_event = pr_event self.project: GitProject = pr_event.get_project() self.package_config: PackageConfig = get_package_config_from_repo( self.project, pr_event.base_ref) if not self.package_config: raise ValueError( f"No config file found in {self.project.full_repo_name}") self.package_config.upstream_project_url = pr_event.project_url def run(self) -> HandlerResults: self.local_project = LocalProject( git_project=self.project, working_dir=self.config.command_handler_work_dir) self.api = PackitAPI(self.config, self.package_config, self.local_project) self.api.sync_pr( pr_id=self.pr_event.pr_id, dist_git_branch=self.job.metadata.get("dist-git-branch", "master"), # TODO: figure out top upstream commit for source-git here ) return HandlerResults(success=True, details={})
class PullRequestGithubCheckDownstreamHandler(AbstractGithubJobHandler): type = JobType.check_downstream triggers = [TheJobTriggerType.pull_request] event: PullRequestEvent # https://developer.github.com/v3/activity/events/types/#events-api-payload-28 def __init__(self, config: ServiceConfig, job_config: JobConfig, event: PullRequestEvent): super().__init__(config=config, job_config=job_config, event=event) self.event = event self.project: GitProject = event.get_project() self.package_config: PackageConfig = self.get_package_config_from_repo( self.project, event.base_ref, event.pr_id) self.package_config.upstream_project_url = event.project_url def run(self) -> HandlerResults: self.local_project = LocalProject( git_project=self.project, working_dir=self.config.command_handler_work_dir) self.api = PackitAPI(self.config, self.package_config, self.local_project) self.api.sync_pr( pr_id=self.event.pr_id, dist_git_branch=self.job_config.metadata.get( "dist-git-branch", "master"), # TODO: figure out top upstream commit for source-git here ) return HandlerResults(success=True, details={})
def run(self): pr_id = self.event["pull_request"]["number"] local_project = LocalProject(git_project=self.project) api = PackitAPI(self.config, self.package_config, local_project) api.sync_pr( pr_id=pr_id, dist_git_branch=self.job.metadata.get("dist-git-branch", "master"), # TODO: figure out top upstream commit for source-git here )
def sync_upstream_pull_request( self, package_config: PackageConfig, pr_id: int, dist_git_branch: str, upstream_local_project: LocalProject, ): logger.info("syncing the upstream code to downstream") packit_api = PackitAPI( config=self.config, package_config=package_config, upstream_local_project=upstream_local_project, ) packit_api.sync_pr(pr_id=pr_id, dist_git_branch=dist_git_branch)
class GithubPullRequestHandler(JobHandler): name = JobType.check_downstream triggers = [JobTriggerType.pull_request] # https://developer.github.com/v3/activity/events/types/#events-api-payload-28 def run(self) -> HandlerResults: pr_id = self.event["pull_request"]["number"] self.local_project = LocalProject( git_project=self.project, working_dir=self.config.command_handler_work_dir ) self.api = PackitAPI(self.config, self.package_config, self.local_project) self.api.sync_pr( pr_id=pr_id, dist_git_branch=self.job.metadata.get("dist-git-branch", "master"), # TODO: figure out top upstream commit for source-git here ) return HandlerResults(success=True, details={})