Commit de489e24 authored by Sébastien Tourbier's avatar Sébastien Tourbier
Browse files

fix: set git user name and email used by Datalad ops

parent 438e0e3d
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -9,7 +9,9 @@ from datahipy.bids.dataset import get_all_datasets_content
from datahipy.handlers.dataset import DatasetHandler
from datahipy.handlers.participants import ParticipantHandler
from datahipy.handlers.project import create_project, import_subject, import_document
from datahipy.utils.versioning import create_tag, get_tags, checkout_tag, release_version
from datahipy.utils.versioning import (
    create_tag, get_tags, checkout_tag, release_version, set_git_user_info_global
)

VALID_COMMANDS = [
    "dataset.create",
@@ -71,6 +73,9 @@ def main():
    dhdl = DatasetHandler(dataset_path=dataset_path)
    phdl = ParticipantHandler(dataset_path=dataset_path, input_path=input_path)

    # Set global git user info for Datalad operations
    set_git_user_info_global(name=git_user_name, email=git_user_email)

    # Dataset commands
    if command == "dataset.create":
        return dhdl.dataset_create(input_data=input_data)
+26 −0
Original line number Diff line number Diff line
@@ -15,6 +15,32 @@ from datahipy.bids.version import create_bids_changes_tag_entry, update_bids_cha
TAG_EXCEPTIONS = ["master", "main", "HEAD"]


def set_git_user_info_global(name=None, email=None):
    """Set Git user name and email.

    Parameters
    ----------
    name : str
        Git user name.

    email : str
        Git user email.
    """
    if name is None:
        if "USER" in os.environ.keys():
            if os.environ["USER"] == "root":
                name = "hip_admin"
            else:
                name = os.environ["USER"]
        else:
            name = "hip_admin"
    if email is None:    
        email = f"{name}@hip.ch"
    print(f"Set global Git user name ({name}) and email ({email})...")
    os.system(f"cd ~ && git config --global user.name {name}")
    os.system(f"cd ~ && git config --global user.email {email}")


def validate_tag(tag, discard_exceptions=False):
    """Validate a tag.