def main(): config = get_config() git_tool = GitTool() ( dct_remote_1, dct_project_1, default_remote_1, ) = git_tool.get_manifest_xml_info(filename=config.input1, add_root=True) ( dct_remote_2, dct_project_2, default_remote_2, ) = git_tool.get_manifest_xml_info(filename=config.input2, add_root=True) dct_remote_3 = copy.deepcopy(dct_remote_2) dct_project_3 = copy.deepcopy(dct_project_2) for key, value in dct_project_1.items(): revision = value.get("@revision") if revision: dct_project_3[key]["@revision"] = revision else: dct_project_3[key]["@upstream"] = "12.0" dct_project_3[key]["@dest-branch"] = "12.0" # Update origin to new repo git_tool.generate_repo_manifest( dct_remote=dct_remote_3, dct_project=dct_project_3, output=config.output, default_remote=default_remote_2, )
def main(): config = get_config() git_tool = GitTool() lst_repo = git_tool.get_source_repo_addons(repo_path=config.dir, add_repo_root=True) lst_repo_organization = [ git_tool.get_transformed_repo_info_from_url( a.get("url"), repo_path=config.dir, get_obj=True, is_submodule=a.get("is_submodule"), sub_path=a.get("sub_path"), revision=a.get("revision"), clone_depth=a.get("clone_depth")) for a in lst_repo ] # Update origin to new repo if not config.clear: dct_remote, dct_project, _ = git_tool.get_manifest_xml_info( repo_path=config.dir, add_root=True) else: dct_remote = {} dct_project = {} git_tool.generate_repo_manifest(lst_repo_organization, output=f"{config.dir}{config.manifest}", dct_remote=dct_remote, dct_project=dct_project, keep_original=True) git_tool.generate_install_locally()
def main(): config = get_config() github_token = config.github_token git_tool = GitTool() root_repo = Repo(config.dir) if not github_token and not config.skip_fork: raise ValueError("Missing github_token") organization_name = config.organization lst_repo = git_tool.get_source_repo_addons(repo_path=config.dir, add_repo_root=True) lst_repo_organization = [git_tool.get_transformed_repo_info_from_url( a.get("url"), repo_path=config.dir, organization_force=organization_name, is_submodule=a.get("is_submodule"), sub_path=a.get("sub_path"), revision=a.get("revision"), clone_depth=a.get("clone_depth")) for a in lst_repo] if not config.skip_fork: i = 0 total = len(lst_repo) for repo in lst_repo: i += 1 print(f"Nb element {i}/{total} - {repo.get('project_name')}") if config.fast and repo.get("is_submodule") and os.path.isdir(repo.get("path")): continue url = repo.get("url") try: working_repo = Repo(repo.get("relative_path")) except git.exc.NoSuchPathError: # Check to fork # repo_info = git_tool.get_transformed_repo_info_from_url( # url, organization_force="ERPLibre", # is_submodule=repo.get("is_submodule"), # sub_path=repo.get("sub_path")) git_tool.fork_repo(upstream_url=url, github_token=github_token, organization_name="ERPLibre") repo_info = git_tool.get_transformed_repo_info_from_url( url, organization_force=organization_name, is_submodule=repo.get("is_submodule"), sub_path=repo.get("sub_path")) git_tool.fork_repo(upstream_url=url, github_token=github_token, organization_name=organization_name) # git_tool.add_and_fetch_remote(repo_info, root_repo=root_repo) continue dct_remote_name = {a.name: a for a in working_repo.remotes} remote_origin = dct_remote_name.get("origin") remote_erplibre = dct_remote_name.get("ERPLibre") remote_organization = dct_remote_name.get(organization_name) if not remote_erplibre: repo_info = git_tool.get_transformed_repo_info_from_url( url, organization_force="ERPLibre", is_submodule=repo.get("is_submodule"), sub_path=repo.get("sub_path")) # git_tool.add_and_fetch_remote(repo_info) git_tool.fork_repo(url, github_token, organization_name=organization_name, ) repo_info = git_tool.get_transformed_repo_info_from_url( url, organization_force=organization_name, is_submodule=repo.get("is_submodule"), sub_path=repo.get("sub_path")) if remote_origin: working_repo.git.remote("remove", "origin") repo_info.organization = "origin" # try: # git_tool.add_and_fetch_remote(repo_info, root_repo=root_repo) # except Exception as e: # print(e) if config.force and remote_organization: working_repo.git.remote("remove", organization_name) repo_info.organization = organization_name # git_tool.add_and_fetch_remote(repo_info) # Update origin to new repo # git_tool.generate_git_modules(lst_repo_organization, repo_path=config.dir) git_tool.generate_repo_manifest(lst_repo_organization, output=f"{config.dir}manifest/default.dev.xml") git_tool.generate_install_locally()