Skip to content

Commit ac21c32

Browse files
authored
fix(cli): set git credentials helper correctly on git clone (#3348)
1 parent 4220f4e commit ac21c32

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

renku/command/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def session_list_command():
2929

3030
def session_start_command():
3131
"""Start an interactive session."""
32-
return Command().command(session_start).with_database()
32+
return Command().command(session_start).with_database().require_migration()
3333

3434

3535
def session_stop_command():

renku/core/login.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,13 @@
2828
from renku.core import errors
2929
from renku.core.config import get_value, remove_value, set_value
3030
from renku.core.util import communication
31-
from renku.core.util.git import RENKU_BACKUP_PREFIX, create_backup_remote, get_remote, get_renku_repo_url
31+
from renku.core.util.git import (
32+
RENKU_BACKUP_PREFIX,
33+
create_backup_remote,
34+
get_remote,
35+
get_renku_repo_url,
36+
set_git_credential_helper,
37+
)
3238
from renku.core.util.urls import parse_authentication_endpoint
3339
from renku.domain_model.enums import ConfigFilter
3440
from renku.domain_model.project_context import project_context
@@ -135,7 +141,7 @@ def login(endpoint: Optional[str], git_login: bool, yes: bool):
135141
_store_token(parsed_endpoint.netloc, access_token)
136142

137143
if git_login and repository:
138-
_set_git_credential_helper(repository=cast("Repository", repository), hostname=parsed_endpoint.netloc)
144+
set_git_credential_helper(repository=cast("Repository", repository), hostname=parsed_endpoint.netloc)
139145
backup_remote_name, backup_exists, remote = create_backup_remote(
140146
repository=repository, remote_name=remote_name, url=remote_url # type:ignore
141147
)
@@ -171,11 +177,6 @@ def _store_token(netloc, access_token):
171177
os.chmod(project_context.global_config_path, 0o600)
172178

173179

174-
def _set_git_credential_helper(repository: "Repository", hostname):
175-
with repository.get_configuration(writable=True) as config:
176-
config.set_value("credential", "helper", f"!renku credentials --hostname {hostname}")
177-
178-
179180
def _set_renku_url_for_remote(repository: "Repository", remote_name: str, remote_url: str, hostname: str):
180181
"""Set renku repository URL for ``remote_name``.
181182

renku/core/util/git.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,12 @@ def create_backup_remote(repository: "Repository", remote_name: str, url: str) -
241241
return backup_remote_name, False, remote
242242

243243

244+
def set_git_credential_helper(repository: "Repository", hostname):
245+
"""Set up credential helper for renku git."""
246+
with repository.get_configuration(writable=True) as config:
247+
config.set_value("credential", "helper", f"!renku credentials --hostname {hostname}")
248+
249+
244250
def get_full_repository_path(url: Optional[str]) -> str:
245251
"""Extract hostname/path of a git repository from its URL.
246252
@@ -682,6 +688,9 @@ def clone_renku_repository(
682688

683689
if create_backup:
684690
create_backup_remote(repository=repository, remote_name="origin", url=url)
691+
set_git_credential_helper(
692+
repository=cast("Repository", repository), hostname=deployment_hostname or parsed_url.hostname
693+
)
685694

686695
return repository
687696

0 commit comments

Comments
 (0)