Age | Commit message (Collapse) | Author |
|
The gitlab uses FindAllTags to fetch all tags and it requires
to do sorting in-memory after fetch. By this change we provide
ability to sort tags on the gitaly side by: tag name or creation
date in ascending or descending order.
The default remains the same as if no sorting requested - sort by
tag name, so it should not affect any existing clients.
Closes: https://gitlab.com/gitlab-org/gitaly/-/issues/3592
Changelog: added
|
|
If a page limit larger than 0 is set, this RPC will only retrieve that
number of entries from the list.
If a page token is set, this RPC will return entries after this OID.
This reduces the amount of recursive calls needed to flatten a path.
Relates to https://gitlab.com/gitlab-org/gitaly/-/issues/2704
Changelog: added
|
|
Git operations on the Web GUI are always set to UTC timezone. By adding timezone to User, the operations are set to the correct user time zone.
More Details See: gitlab-org/gitaly!3586
After completing this modification, we need to release a new version of Gitaly Gem.
Related GitLab MR: gitlab-org/gitlab!64084
|
|
The new "v14" version of the Gitaly module is named to match
the next GitLab release. The module versioning is needed in
order to pull gitaly as a dependency in other projects. The
change updates all imports to include v14 version. The go.mod
file was modified as well after go mod tidy execution. And
the changes in dependency licenses are reflected in the NOTICE
file.
Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/3177
|
|
This adds support for parsing Git trailers
(https://git-scm.com/docs/git-interpret-trailers). GitLab will use these
trailers to generate changelog information, as part of the epic
https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/351.
Parsing is done by parsing the output of `git log` when finding multiple
commits, and by parsing the output of `git show` when finding a single
commit. The Go parser is written such that it allocates as few objects
as possible, making it possible to efficiently parse trailers; even when
listing thousands of commits.
See https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/1364 for
more information.
|
|
The GitCommit structure doesn't returns or parse the Tree ID, and as
such it's unknown for the clients. It does however help with more
efficient parsing and diffing to know this. For example: Rails currently
can't cache the tree listings based on the Tree ID, but as combination
of reference and path. This is sub optimal as the trees are mostly
shared between commits.
This change also features a slight change regarding to our tests of the
parsing of commits. These were copied throughout, meaning that if we now
add a field to the `GitCommit` structure, the same field has to be added
in a many places. Additionally, having one place with definitions should
make it easier to use it for now tests too.
|
|
|
|
Pagination has always been ad hoc within Gitaly, and there was no
convergence to a standard. This change creates a structure around this,
which an implementation for one RPC to try it.
The structure uses a page token, as proposed in:
https://gitlab.com/gitlab-org/gitaly/-/issues/2704#note_349733942.
This allows a generic field to hold what's usually a numeric `offset`
field. Where `offset` can be unstable over a series of requests due to
race conditions, the page token could prevent that.
The change does alter the implementation for `lines.Send()` a little,
which create a situation where for other RPCs there's been slight
normalization on their input to `lines.Send()` to make this change
backward as well as forward compatible.
Helps with: https://gitlab.com/gitlab-org/gitlab-foss/-/issues/48097#note_354316835
Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2704
|
|
While running Make proto, two warnings are written to STDOUT.
> [libprotobuf WARNING google/protobuf/compiler/ruby/ruby_generator.cc:509] Omitting proto2 dependency 'google/protobuf/descriptor.proto' from proto3 output file 'lint_pb.rb' because we don't support proto2 and no proto2 types from that file are being used.
Given lint.proto does require the dependency, and the shared.proto
doesn't, one of these warnings is now removed.
|
|
Extracting lint-related stuff into separate proto file. It
is required in order to have proper working proto-linter.
Previously it was using compiled files for verification and
it fails in some cases
(https://gitlab.com/gitlab-org/gitaly/-/jobs/459024976).
lint.proto extracted from shared.proto and contains
lint-related declarations. New task `proto-lint` added to
compile source code that is required by `protoc-gen-gitaly`.
`protoc-gen-gitaly` fixed to use proper proto source data.
Regeneration of all proto-related files.
|
|
Instead of setting OID in the RPC method use annotation in the field
(`target_repository` and `additional_repository`). Having only this 2
annotations created a problem with messages that can be either target
or additional repository (for example `ObjectPool`). Those are marked
with `repository` annotation and `target_repository` and
`additional_repository` are used in the parent messages.
Signed-off-by: Mateusz Nowotyński <maxmati4@gmail.com>
Signed-off-by: jramsay <maxmati4@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|