From b23a7ed1300d1948b2dc60c8ad1adc0798ed1cf1 Mon Sep 17 00:00:00 2001 From: jakedt Date: Mon, 24 Feb 2014 22:57:58 -0500 Subject: [PATCH] Extract the top level zipball subdir from the zip file. --- endpoints/trigger.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/endpoints/trigger.py b/endpoints/trigger.py index acd1ab127..9dc266394 100644 --- a/endpoints/trigger.py +++ b/endpoints/trigger.py @@ -1,6 +1,7 @@ import logging import io import os.path +import zipfile from github import Github, UnknownObjectException, GithubException from tempfile import SpooledTemporaryFile @@ -228,10 +229,15 @@ class GithubBuildTrigger(BuildTrigger): archive_link = repo.get_archive_link('zipball', short_sha) download_archive = client.get(archive_link, stream=True) + zipball_subdir = '' with SpooledTemporaryFile(CHUNK_SIZE) as zipball: for chunk in download_archive.iter_content(CHUNK_SIZE): zipball.write(chunk) + # Pull out the name of the subdir that GitHub generated + with zipfile.ZipFile(zipball) as archive: + zipball_subdir = archive.namelist()[0] + dockerfile_id = user_files.store_file(zipball, ZIPBALL) logger.debug('Successfully prepared job') @@ -245,7 +251,6 @@ class GithubBuildTrigger(BuildTrigger): # compute the subdir repo_subdir = config['subdir'] - zipball_subdir = '%s-%s-%s' % (repo.owner.login, repo.name, short_sha) joined_subdir = os.path.join(zipball_subdir, repo_subdir) logger.debug('Final subdir: %s' % joined_subdir)