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={})
Beispiel #2
0
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={})
Beispiel #3
0
    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
        )
Beispiel #4
0
 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)
Beispiel #5
0
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={})