func()

in internal/mode/advanced/git/gitaly.go [276:304]


func (gc *gitalyClient) getBlob(oid string) (io.ReadCloser, error) {
	data := new(bytes.Buffer)

	request := &pb.GetBlobRequest{
		Repository: gc.repository,
		Oid:        oid,
		Limit:      gc.limitFileSize,
	}

	stream, err := gc.blobServiceClient.GetBlob(gc.ctx, request)
	if err != nil {
		return nil, fmt.Errorf("Cannot get blob: %s", oid)
	}

	for {
		c, err := stream.Recv()
		if errors.Is(err, io.EOF) {
			break
		}
		if err != nil {
			return nil, fmt.Errorf("%v.GetBlob: %w", c, err)
		}
		if c.Data != nil {
			data.Write(c.Data)
		}
	}

	return io.NopCloser(data), nil
}