code: func CloneContext(
  	ctx context.Context, s storage.Storer, worktree billy.Filesystem, o *CloneOptions,
  ) (*Repository, error) {
  	r, err := Init(s, worktree)
  	if err != nil {
  		return nil, err
  	}
  
  	return r, r.clone(ctx, o)
  }
docs: // CloneContext a repository into the given Storer and worktree Filesystem with
  // the given options, if worktree is nil a bare repository is created. If the
  // given storer is not empty ErrRepositoryAlreadyExists is returned.
  //
  // The provided Context must be non-nil. If the context expires before the
  // operation is complete, an error is returned. The context only affects to the
  // transport operations.