code: def load_repo(client, path=None, index='git'):
      
      path = dirname(dirname(abspath(__file__))) if path is None else path
      repo_name = basename(path)
      repo = git.Repo(path)
  
      create_git_index(client, index)
  
      # we let the streaming bulk continuously process the commits as they come
      # in - since the `parse_commits` function is a generator this will avoid
      # loading all the commits into memory
      for ok, result in streaming_bulk(
              client,
              parse_commits(repo.refs.master.commit, repo_name),
              index=index,
              doc_type='doc',
              chunk_size=50 # keep the batch sizes small for appearances only
          ):
          action, result = result.popitem()
          doc_id = '/%s/doc/%s' % (index, result['_id'])
          # process the information from ES whether the document has been
          # successfully indexed
          if not ok:
              print('Failed to %s document %s: %r' % (action, doc_id, result))
          else:
              print(doc_id)
docs: Parse a git repository with all it's commits and load it into elasticsearch
      using `client`. If the index doesn't exist it will be created.