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,
)