Age | Commit message (Collapse) | Author |
|
|
|
hooks: Remove prereceive hook Ruby implementation
See merge request gitlab-org/gitaly!2519
|
|
This change is part of a larger effort to move away from using the hooks
being implemented in Ruby, and moves the execution to Go to speed up the
hooks.
The prereceive hook was already enabled by default, meaning that the
change made doesn't influence anyone that hasn't explicity turned it
off. Given there were no bug reports, the old implementation is removed
as fallback.
|
|
Always build Git with PCRE2 support
See merge request gitlab-org/gitaly!2512
|
|
Renaming of the 'whitelist' to 'allowlist'
Closes #3031
See merge request gitlab-org/gitaly!2534
|
|
All 'whitelist's replaced with 'allowlist'.
Closes: https://gitlab.com/gitlab-org/gitaly/-/issues/3031
|
|
Improved SQL to get up to date storages for repository.
See merge request gitlab-org/gitaly!2514
|
|
Split out hook service's business logic
See merge request gitlab-org/gitaly!2523
|
|
Demo issue template
Closes #2872
See merge request gitlab-org/gitaly!2486
|
|
Pass correlation_id over to gitaly-ssh
See merge request gitlab-org/gitaly!2530
|
|
When gitaly-ssh is called it doesn't receive correlation_id.
That is why it is hard to understand what to what chain of calls
this call is related.
correlation_id passed as env var 'CORRELATION_ID' to gitaly-ssh
process. So it would be picked by it and used in outgoing requests.
In order to cover other missing parts where correlation_id should
be passed the client.DialContext method includes interceptors for it
by default. If correlation_id is present in the context.Context used
to invoke the method it will be passed to the remote.
Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/3047
|
|
Add omnibus gitaly to terraform setup
See merge request gitlab-org/gitaly!2520
|
|
With all hook implementations now being part of the hook manager, there
is no need for the hook service to hold the GitLab API or hook
configuration anymore. So let's clean it up so it only requires the hook
manager as input parameter.
|
|
Move business logic of the reference transaction hook into the new
`internal/hook` manager. This commit is part of the refactoring
splitting business logic from the hook service into the hook manager in
order to allow execution of hooks from Gitaly's own context.
|
|
Move business logic of the prereceive hook into the new `internal/hook`
manager. This commit is part of the refactoring splitting business logic
from the hook service into the hook manager in order to allow execution
of hooks from Gitaly's own context.
|
|
Move business logic of the postreceive hook into the new `internal/hook`
manager. This commit is part of the refactoring splitting business logic
from the hook service into the hook manager in order to allow execution
of hooks from Gitaly's own context.
|
|
Move business logic of the GitLab API authentication into the new
`internal/hook` manager. This commit is part of the refactoring
splitting business logic from the hook service into the hook manager in
order to allow execution of hooks from Gitaly's own context.
|
|
Move business logic of the update hook into the new `internal/hook`
manager. This commit is part of the refactoring splitting business logic
from the hook service into the hook manager in order to allow execution
of hooks from Gitaly's own context.
|
|
Move business logic of the hook executor into the new `internal/hook`
manager. This commit is part of the refactoring splitting business logic
from the hook service into the hook manager in order to allow execution
of hooks from Gitaly's own context.
|
|
In order to allow calling hooks from Go code without having to reach out
to our own internal socket, this commit sets the start for splitting up
the hook service into a part handling the gRPC service and one part
handling business logic. It thus introduces a new hook manager which is
going to host all logic required to invoke hooks as well as their logic.
|
|
Gitaly requires support for PCRE2 in Git for the RepositoryService's
search functionality, but the self-built version of Git that Gitaly
started to provide currently doesn't build it with PCRE2 support.
Fix this by adding `USE_PCRE2=YesPlease` to Git's build options. To
detect missing PCRE2 support early, this commit also adapts tests to
unconditionally check for PCRE2 support being present.
|
|
While he "git" target is supposed to be a PHONY one, the preceding PHONY
declaration was missing the target's name. This is harmless in most
cases, but if one somehow ends up with a file named "git" in the
top-level directory, then the target could potentially become stale.
Fix this by adding the missing target to the PHONY declaration.
|
|
Both gocover-cobertura and git targets depend on both the Makefile hash
and the build dir. But as the Makefile hash already has a dependency on
the build dir, this is duplicate, so we can just remove it.
|
|
ci: Stop publishing Docker images for scheduled builds
See merge request gitlab-org/gitaly!2527
|
|
gitaly: Move Gitaly-specific code into `internal/gitaly`
See merge request gitlab-org/gitaly!2528
|
|
Bump default Git version to v2.28.0
See merge request gitlab-org/gitaly!2432
|
|
Upgrade the Git version used by our Dockerfile to v2.28.0.
|
|
Upgrade the default version of Git to v2.28.0.
|
|
Since the introduction of Praefect, our code layout started to become
confusing: while Praefect code lives in `internal/praefect`,
Gitaly-specific code is all over the place and not neatly singled out.
This makes it hard at times to tell apart Praefect- and Gitaly-specific
from generic code.
To improve the situation, this commit thus moves most of the server
specific code into a new `internal/gitaly` package. Currently, this is
the `internal/config`, `internal/server`, `internal/service` and
`internal/rubyserver` packages, which are all main components of Gitaly.
The move was realized with the following script:
#!/bin/sh
mkdir -p internal/gitaly
git mv internal/{config,server,service,rubyserver} internal/gitaly/
find . -name '*.go' -exec sed -i \
-e 's|gitlab-org/gitaly/internal/rubyserver|gitlab-org/gitaly/internal/gitaly/rubyserver|' \
-e 's|gitlab-org/gitaly/internal/server|gitlab-org/gitaly/internal/gitaly/server|' \
-e 's|gitlab-org/gitaly/internal/service|gitlab-org/gitaly/internal/gitaly/service|' \
-e 's|gitlab-org/gitaly/internal/config|gitlab-org/gitaly/internal/gitaly/config|' {} \;
In addition to that, some minor adjustments were needed for tests which
used relative paths.
|
|
danger: Allow scoped merge request titles
See merge request gitlab-org/gitaly!2524
|
|
We've recently grown nightly builds, which allows us to test Gitaly
against Git's master branch without impacting merge requests. But with
this, we now started to publish Docker images for those nightly builds.
While harmless, it's definitely not needed and should thus be avoided.
So let's do so by using the new advanced `only` syntax to exclude
scheduled builds.
|
|
Add scheduled jobs testing against Git master
See merge request gitlab-org/gitaly!2513
|
|
Makefile: Avoid Git2Go being linked against stale libgit2
See merge request gitlab-org/gitaly!2525
|
|
Even though we're rebuilding libgit2.a on Makefile changes, this won't
update Git2Go. As a result, there may be a stale version of Git2Go in
the module cache that's linked against an old static archive of libgit2.
Fix this issue by always rebuilding Git2Go in case libgit2 gets rebuilt.
|
|
In the Git ecosystem, commit titles are commonly scoped to a given
subsystem to make immediately clear which parts of the system are being
changed (see e.g. this very commit's title). Using the same pattern for
merge requests is thus a natural urge for many used to this, but our
Danger rules will complain about such commit titles as their first
character is not an uppercase on.e
Let's improve the rule to allow optional (lower-cased) scopes.
|
|
Fix downgrade error handling
See merge request gitlab-org/gitaly!2522
|
|
DowngradeAttemptedError is not correctly handled in defaultReplicator.
This commit fixes the issue and adds logging for cases when a downgrade
was actually attempted.
|
|
[ci skip]
|
|
[ci skip]
|
|
[ci skip]
|
|
Fix stale connections to Praefect due to keepalive policy
See merge request gitlab-org/gitaly!2511
|
|
Setup the omnibus gitaly as a storage "internal"
|
|
Transactional voting via reference-transaction hook
See merge request gitlab-org/gitaly!2509
|
|
The SQL query to get up to date storages of the repository got
updated to one that shows better results. The benchmark test
added to check impact in future. The optimization is needed
as the resource consumption by the Postgresql instance increases
the more read operations praefect receives to serve.
It addresses the problem only partially as we should reduce
the load to database more with applying other optimizations.
Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/3053
|
|
Replication job acknowledge removes 'completed' and 'dead' events.
Closes #2941
See merge request gitlab-org/gitaly!2457
|
|
Makefile: Fix redirection of exit code
See merge request gitlab-org/gitaly!2483
|
|
The race-go job doesn't really do anything special compared to all the
other test jobs, except that it calls a different Makefile target. So
let's just inline it into the parallel test matrix.
|
|
Our pipeline currently tests against released versions of Git, only, but
with recent tooling improvements it's now trivial to build and test
against arbitrary Git versions.
So let's do so and test against Git's master branch in order to catch
regressions early, test our own upstreamed features more easily and be a
good citizen of the ecosystem by providing early feedback in case things
do break. In order to not break our merge request workflow, these jobs
only execute on schedule.
|
|
Use custom-built Git for tests
See merge request gitlab-org/gitaly!2479
|
|
hooks: Remove update feature flag
See merge request gitlab-org/gitaly!2501
|