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