Ejemplo n.º 1
0
 def test_new(self):
     porcelain.remote_add(
         self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
     c = self.repo.get_config()
     self.assertEqual(
         c.get((b'remote', b'jelmer'), b'url'),
         b'git://jelmer.uk/code/dulwich')
Ejemplo n.º 2
0
def process(input):
    gh_username = setup.get_gh_username()
    gh_password = setup.decrypt_password()
    gh = github.Github(gh_username, gh_password)
    click.echo(chalk.blue('you are in git module'))
    click.echo('input = %s' % input)
    CONFIG_FILE_PATH = config_file_paths['CONFIG_FILE_PATH']
    CONFIG_FOLDER_PATH = get_folder_path_from_file_path(CONFIG_FILE_PATH)
    repo = porcelain.init(CONFIG_FOLDER_PATH)
    porcelain.add(repo)
    porcelain.commit(repo, "A sample commit")
    porcelain.remote_add(repo, ".yoda", "https://github.com/manparvesh/.yoda")
    porcelain.push(repo, "https://github.com/manparvesh/.yoda")
Ejemplo n.º 3
0
 def test_exists(self):
     porcelain.remote_add(self.repo, 'jelmer',
                          'git://jelmer.uk/code/dulwich')
     self.assertRaises(porcelain.RemoteExists, porcelain.remote_add,
                       self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
Ejemplo n.º 4
0
 def test_new(self):
     porcelain.remote_add(self.repo, 'jelmer',
                          'git://jelmer.uk/code/dulwich')
     c = self.repo.get_config()
     self.assertEqual(c.get((b'remote', b'jelmer'), b'url'),
                      b'git://jelmer.uk/code/dulwich')
Ejemplo n.º 5
0
    def _clone(cls, url: str, refspec: GitRefSpec, target: Path) -> Repo:
        """
        Helper method to clone a remove repository at the given `url` at the specified
        ref spec.
        """
        local: Repo
        if not target.exists():
            local = Repo.init(str(target), mkdir=True)  # type: ignore[no-untyped-call]
            porcelain.remote_add(local, "origin", url)  # type: ignore[no-untyped-call]
        else:
            local = Repo(str(target))  # type: ignore[no-untyped-call]

        remote_refs = cls._fetch_remote_refs(url=url, local=local)

        logger.debug(
            "Cloning <c2>%s</> at '<c2>%s</>' to <c1>%s</>", url, refspec.key, target
        )

        try:
            refspec.resolve(remote_refs=remote_refs)
        except KeyError:  # branch / ref does not exist
            raise PoetrySimpleConsoleException(
                f"Failed to clone {url} at '{refspec.key}', verify ref exists on"
                " remote."
            )

        # ensure local HEAD matches remote
        local.refs[b"HEAD"] = remote_refs.refs[b"HEAD"]

        if refspec.is_ref:
            # set ref to current HEAD
            local.refs[refspec.ref] = local.refs[b"HEAD"]

        for base, prefix in {
            (b"refs/remotes/origin", b"refs/heads/"),
            (b"refs/tags", b"refs/tags"),
        }:
            local.refs.import_refs(  # type: ignore[no-untyped-call]
                base=base,
                other={
                    n[len(prefix) :]: v
                    for (n, v) in remote_refs.refs.items()
                    if n.startswith(prefix) and not n.endswith(ANNOTATED_TAG_SUFFIX)
                },
            )

        try:
            with local:
                local.reset_index()  # type: ignore[no-untyped-call]
        except (AssertionError, KeyError) as e:
            # this implies the ref we need does not exist or is invalid
            if isinstance(e, KeyError):
                # the local copy is at a bad state, lets remove it
                logger.debug(
                    "Removing local clone (<c1>%s</>) of repository as it is in a"
                    " broken state.",
                    local.path,
                )
                remove_directory(local.path, force=True)

            if isinstance(e, AssertionError) and "Invalid object name" not in str(e):
                raise

            logger.debug(
                "\nRequested ref (<c2>%s</c2>) was not fetched to local copy and cannot"
                " be used. The following error was raised:\n\n\t<warning>%s</>",
                refspec.key,
                e,
            )

            raise PoetrySimpleConsoleException(
                f"Failed to clone {url} at '{refspec.key}', verify ref exists on"
                " remote."
            )

        return local
Ejemplo n.º 6
0
 def run(self, args):
     parser = optparse.OptionParser()
     options, args = parser.parse_args(args)
     porcelain.remote_add('.', args[0], args[1])
Ejemplo n.º 7
0
 def write_remote(self, workspace, target_remote=None, **kw):
     target_remote = target_remote or self.default_remote
     porcelain.remote_rm(workspace.working_dir, target_remote.encode())
     porcelain.remote_add(workspace.working_dir, target_remote.encode(),
                          self.remote.encode('utf-8'))
Ejemplo n.º 8
0
 def test_exists(self):
     porcelain.remote_add(
         self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
     self.assertRaises(porcelain.RemoteExists, porcelain.remote_add,
                       self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
Ejemplo n.º 9
0
    elif command == "ls-remote":
        print >> sys.stderr, "handle command ls-remote"
        porcelain.ls_remote(remote)
    elif command == "remote":
        print >> sys.stderr, "handle command remote"
        try:
            verb = sys.argv[2]
            if verb == "add":
                """
                def remote_add(repo, name, url):
                Add a remote.
                :param repo: Path to the repository
                :param name: Remote name
                :param url: Remote URL
                """
                porcelain.remote_add(repoPath, sys.argv[3], sys.argv[4])

        except IndexError:
            print >> sys.stderr, "not sure what you want, consult help"
    elif command == "log":
        """
        def log(repo='.', paths=None, outstream=sys.stdout, max_entries=None, reverse=False, name_status=False):
        Write commit logs.
        Parameters	repo	Path to repository
        paths	Optional set of specific paths to print entries for
        outstream	Stream to write log output to
        reverse	Reverse order in which entries are printed
        name_status	Print name status
        max_entries	Optional maximum number of entries to display
        """
        print >> sys.stderr, "handle command log"
Ejemplo n.º 10
0
 def write_remote(self, workspace, target_remote=None, **kw):
     target_remote = target_remote or self.default_remote
     porcelain.remote_rm(workspace.working_dir, target_remote.encode())
     porcelain.remote_add(workspace.working_dir, target_remote.encode(), self.remote.encode('utf-8'))