def run()

in servicecatalog_factory/workflow/codecommit/create_code_repo_task.py [0:0]


    def run(self):
        with self.client("s3") as s3:
            z = zipfile.ZipFile(
                io.BytesIO(
                    s3.get_object(Bucket=self.bucket, Key=self.key).get("Body").read()
                )
            )
            files = list()
            for f in z.namelist():
                files.append(
                    dict(
                        filePath=f,
                        fileMode="NORMAL",
                        fileContent=z.open(f, "r").read(),
                    )
                )
        with self.client("codecommit") as codecommit:
            try:
                repo = codecommit.get_repository(
                    repositoryName=self.repository_name
                ).get("repositoryMetadata")
            except codecommit.exceptions.RepositoryDoesNotExistException:
                repo = codecommit.create_repository(
                    repositoryName=self.repository_name
                ).get("repositoryMetadata")

            if repo.get("defaultBranch"):
                try:
                    codecommit.get_branch(
                        repositoryName=self.repository_name,
                        branchName=self.branch_name,
                    ).get("branch")
                except codecommit.exceptions.BranchDoesNotExistException:
                    default_branch = codecommit.get_branch(
                        repositoryName=self.repository_name,
                        branchName=repo.get("defaultBranch"),
                    ).get("branch")
                    codecommit.create_branch(
                        repositoryName=self.repository_name,
                        branchName=self.branch_name,
                        commitId=default_branch.get("commitId"),
                    )
                    codecommit.create_commit(
                        repositoryName=self.repository_name,
                        branchName=self.branch_name,
                        putFiles=files,
                        parentCommitId=default_branch.get("commitId"),
                    )
            else:
                codecommit.create_commit(
                    repositoryName=self.repository_name,
                    branchName=self.branch_name,
                    putFiles=files,
                )