Unverified Commit 2c935d8e authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub
Browse files

Merge pull request #9518 from yike5460/master

add branch support for extension installation
parents aee6d9bb 7c62bb27
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ def normalize_git_url(url):
    return url


def install_extension_from_url(dirname, url):
def install_extension_from_url(dirname, branch_name, url):
    check_access()

    assert url, 'No URL specified'
@@ -150,10 +150,17 @@ def install_extension_from_url(dirname, url):

    try:
        shutil.rmtree(tmpdir, True)
        if branch_name == '':
            # if no branch is specified, use the default branch
            with git.Repo.clone_from(url, tmpdir) as repo:
                repo.remote().fetch()
                for submodule in repo.submodules:
                    submodule.update()
        else:
            with git.Repo.clone_from(url, tmpdir, branch=branch_name) as repo:
                repo.remote().fetch()
                for submodule in repo.submodules:
                    submodule.update()
        try:
            os.rename(tmpdir, target_dir)
        except OSError as err:
@@ -376,13 +383,14 @@ def create_ui():

            with gr.TabItem("Install from URL"):
                install_url = gr.Text(label="URL for extension's git repository")
                install_branch = gr.Text(label="Specific branch name", placeholder="Leave empty for default main branch")
                install_dirname = gr.Text(label="Local directory name", placeholder="Leave empty for auto")
                install_button = gr.Button(value="Install", variant="primary")
                install_result = gr.HTML(elem_id="extension_install_result")

                install_button.click(
                    fn=modules.ui.wrap_gradio_call(install_extension_from_url, extra_outputs=[gr.update()]),
                    inputs=[install_dirname, install_url],
                    inputs=[install_dirname, install_branch, install_url],
                    outputs=[extensions_table, install_result],
                )