class_docstr: Frontend to `git credential`
      
class_docstr_tok: ["Frontend","to","`","git","credential","`"]
docstr: protocol: str, optional
    The protocol over which the credential will be used (e.g., https).
  host: str, optional
    The remote hostname for a network credential. This includes the port
    number if one was specified (e.g., "example.com:8088").
  path: str, optional
    The path with which the credential will be used. E.g., for accessing
    a remote https repository, this will be the repository’s path on the
    server.
  username: str, optional
    The credential’s username, if we already have one (e.g., from a URL,
    the configuration, the user, or from a previously run helper).
  password: str, optional
    The credential’s password, if we are asking it to be stored.
  url: str, optional
    When this special attribute is read by git credential as 'url', the
    value is parsed as a URL and treated as if its constituent parts were
    read (e.g., url=https://example.com would behave as if
    protocol=https and host=example.com had been provided).
    This can help callers avoid parsing URLs themselves.
  
    Note that specifying a protocol is mandatory and if the URL doesn’t
    specify a hostname (e.g., "cert:///path/to/file") the credential will
    contain a hostname attribute whose value is an empty string.
  
    Components which are missing from the URL (e.g., there is no username
    in the example above) will be left unset.
  repo : GitRepo, optional
      Specify to process credentials in the context of a particular
      repository (e.g. to consider a repository-local credential helper
      configuration).
docstr_tok: ["protocol",":","str",",","optional","The","protocol","over","which","the","credential","will","be","used","(","e.g.",",","https",")",".","host",":","str",",","optional","The","remote","hostname","for","a","network","credential",".","This","includes","the","port","number","if","one","was","specified","(","e.g.",",","``","example.com:8088","''",")",".","path",":","str",",","optional","The","path","with","which","the","credential","will","be","used",".","E.g.",",","for","accessing","a","remote","https","repository",",","this","will","be","the","repository","\u2019","s","path","on","the","server",".","username",":","str",",","optional","The","credential","\u2019","s","username",",","if","we","already","have","one","(","e.g.",",","from","a","URL",",","the","configuration",",","the","user",",","or","from","a","previously","run","helper",")",".","password",":","str",",","optional","The","credential","\u2019","s","password",",","if","we","are","asking","it","to","be","stored",".","url",":","str",",","optional","When","this","special","attribute","is","read","by","git","credential","as","'url","'",",","the","value","is","parsed","as","a","URL","and","treated","as","if","its","constituent","parts","were","read","(","e.g.",",","url=https",":","\/\/example.com","would","behave","as","if","protocol=https","and","host=example.com","had","been","provided",")",".","This","can","help","callers","avoid","parsing","URLs","themselves",".","Note","that","specifying","a","protocol","is","mandatory","and","if","the","URL","doesn","\u2019","t","specify","a","hostname","(","e.g.",",","``","cert",":","\/\/\/path\/to\/file","''",")","the","credential","will","contain","a","hostname","attribute","whose","value","is","an","empty","string",".","Components","which","are","missing","from","the","URL","(","e.g.",",","there","is","no","username","in","the","example","above",")","will","be","left","unset",".","repo",":","GitRepo",",","optional","Specify","to","process","credentials","in","the","context","of","a","particular","repository","(","e.g",".","to","consider","a","repository-local","credential","helper","configuration",")","."]
code: def __init__(
      self,
      protocol=None,
      host=None,
      path=None,
      username=None,
      password=None,
      url=None,
      repo=None,
  ):
      """
      protocol: str, optional
        The protocol over which the credential will be used (e.g., https).
      host: str, optional
        The remote hostname for a network credential. This includes the port
        number if one was specified (e.g., "example.com:8088").
      path: str, optional
        The path with which the credential will be used. E.g., for accessing
        a remote https repository, this will be the repository’s path on the
        server.
      username: str, optional
        The credential’s username, if we already have one (e.g., from a URL,
        the configuration, the user, or from a previously run helper).
      password: str, optional
        The credential’s password, if we are asking it to be stored.
      url: str, optional
        When this special attribute is read by git credential as 'url', the
        value is parsed as a URL and treated as if its constituent parts were
        read (e.g., url=https://example.com would behave as if
        protocol=https and host=example.com had been provided).
        This can help callers avoid parsing URLs themselves.
  
        Note that specifying a protocol is mandatory and if the URL doesn’t
        specify a hostname (e.g., "cert:///path/to/file") the credential will
        contain a hostname attribute whose value is an empty string.
  
        Components which are missing from the URL (e.g., there is no username
        in the example above) will be left unset.
      repo : GitRepo, optional
          Specify to process credentials in the context of a particular
          repository (e.g. to consider a repository-local credential helper
          configuration).
      """
      self._runner = None
      self._repo = repo
      self._credential_props = {}
      for name, var in (
          ("url", url),
          ("protocol", protocol),
          ("host", host),
          ("path", path),
          ("username", username),
          ("password", password),
      ):
          if var is None:
              continue
          self._credential_props[name] = var
  
file_path: datalad/datalad/local/gitcredential.py
imports: from io import StringIO
  from datalad.cmd import GitWitlessRunner, StdOutErrCapture
  from logging import getLogger
label_desc: Use image node_id 1 to create a new GitCredentialInterface object from inherited base classes: object with example: obj = GitCredentialInterface(protocol, host, path, username, password, url, repo)