def create_private_repo_without_chart(self, user, project_id, project_code): # 通过harbor api创建一次项目账号,然后存储在auth中 private_repos = Repository.objects.filter(name=project_code, project_id=project_id) if private_repos.exists(): return private_repos[0] account = get_jfrog_account(self.access_token, project_code, project_id) repo_auth = { "type": "basic", "role": "admin", "credentials": { # "username": settings.HELM_MERELY_REPO_USERNAME, # "password": settings.HELM_MERELY_REPO_PASSWORD, "username": account.get("user"), "password": account.get("password") } } url = '%s/chartrepo/%s/' % (settings.HELM_MERELY_REPO_URL, project_code) private_repo = add_plain_repo(target_project_id=project_id, name=project_code, url=url, repo_auth=repo_auth) return private_repo
def get_or_create_private_repo(user, project): # 通过harbor api创建一次项目账号,然后存储在auth中 project_id = project.project_id project_code = project.project_code private_repos = Repository.objects.filter(name=project_code, project_id=project_id) repo = private_repos.first() if repo: return repo account = get_jfrog_account(user.token.access_token, project_code, project_id) repo_auth = { "type": "basic", "role": "admin", "credentials": { "username": account.get("user"), "password": account.get("password") }, } url = f"{settings.HELM_MERELY_REPO_URL}/chartrepo/{project_code}/" private_repo = add_plain_repo(target_project_id=project_id, name=project_code, url=url, repo_auth=repo_auth) return private_repo
def get_or_add_private_repos(self, project_id, user): project = paas_cc.get_project(access_token=self.access_token, project_id=project_id) if settings.HELM_HAS_ABILITY_SUPPLY_CHART_REPO_SERVICE: # 2. add/get private repo for project private_repo = add_repo( target_project_id=project_id, name=project["data"]["english_name"], provider_name="chartmuseum", url="http://localhost/", # merely provide schema user=user, ) else: repo_auth = { "type": "basic", "role": "admin", "credentials": { "username": settings.HELM_MERELY_REPO_USERNAME, "password": settings.HELM_MERELY_REPO_PASSWORD, } } english_name = project['data']['english_name'] url = '%s/chartrepo/%s/' % (settings.HELM_MERELY_REPO_URL, english_name) private_repo = add_plain_repo(target_project_id=project_id, name=english_name, url=url, repo_auth=repo_auth) return [private_repo]