Example #1
0
def upload_asset_to_github_release(
    parameters: Parameters,
    asset_path: str,
    release_tag: str,
    github_token: str,
    asset_name: str = None,
):

    slug = "{}/{}".format(parameters.github_organization_slug,
                          parameters.project_slug)
    repo = Github(github_token).get_repo(slug)
    try:
        print("Getting release on {}/{}".format(
            parameters.github_organization_slug, parameters.project_slug))
        gh_release = repo.get_release(id=release_tag)
        print(gh_release, gh_release.tag_name, gh_release.upload_url)
    except GithubException as e:
        raise GithubReleaseNotFound("Release {} not found".format(release_tag))
    try:
        assert os.path.exists(asset_path)
        if asset_name:
            print("Uploading asset: {} as {}".format(asset_path, asset_name))
            gh_release.upload_asset(path=asset_path,
                                    label=asset_name,
                                    name=asset_name)
        else:
            print("Uploading asset: {}".format(asset_path))
            gh_release.upload_asset(asset_path)
        print("OK")
    except GithubException as e:
        print(e)
        raise GithubReleaseCouldNotUploadAsset(
            "Could not upload asset for release {}. "
            "Are you sure the user for the given token can upload asset to this repo?"
            .format(release_tag))
Example #2
0
 def clean_assets(self):
     if self.repo:
         rel = None
         try:
             rel = self.repo.get_release(id=RELEASE_VERSION_TEST)
         except GithubException as e:
             raise GithubReleaseNotFound(
                 'Release {} not found'.format(RELEASE_VERSION_TEST))
         if rel:
             print('deleting release assets')
             for asset in rel.get_assets():
                 print('  delete {}'.format(asset.name))
                 asset.delete_asset()
Example #3
0
def release_is_prerelease(
    parameters: Parameters,
    release_tag: str,
    github_token: str,
) -> bool:
    slug = "{}/{}".format(parameters.github_organization_slug,
                          parameters.project_slug)
    repo = Github(github_token).get_repo(slug)
    try:
        print("Getting release on {}/{}".format(
            parameters.github_organization_slug, parameters.project_slug))
        gh_release = repo.get_release(id=release_tag)
        print(gh_release, gh_release.tag_name, gh_release.upload_url)
    except GithubException as e:
        raise GithubReleaseNotFound("Release {} not found".format(release_tag))
    return gh_release.prerelease
Example #4
0
 def clean_assets(self):
     if self.repo:
         rel = None
         try:
             rel = self.repo.get_release(id=RELEASE_VERSION_TEST)
         except GithubException as e:
             raise GithubReleaseNotFound('Release {} not found'.format(RELEASE_VERSION_TEST))
         if rel:
             print('deleting release assets')
             for asset in rel.get_assets():
                 print('  delete {}'.format(asset.name))
                 asset.delete_asset()
     if self.t:
         try:
             self.t._t.delete_project(self.parameters.project_slug)
         except PyTransifexException:
             pass
         try:
             self.t._t.delete_team('{}-team'.format(self.parameters.project_slug))
         except PyTransifexException:
             pass