Age | Commit message (Collapse) | Author |
|
|
|
This reverts commit eb6fd60561cffdbb183e74456268439bad60b21c.
|
|
The default Makefile target installs all of Gitaly's binaries into its
source directory. This fact was relied on in the past, where downstream
distributions used these parts to pick up correct binaries. This has
since changed, and to the best of my knowledge all distributions now use
binaries in the build directory.
Convert the default target to the "build" target, which will install
them into "_build/bin".
|
|
The backup subcommand accepts a stream of json objects
|
|
Users can nowadays configure some aspects of Gitaly's Makefile by
writing into a config.mak. The file isn't ignored by git though. Add it
to keep git from labelling it as untracked file.
|
|
Our gitignore files contain quite a lot of rules for testdata. As we
shouldn't generate any data inside of the repository during tests
anymore, this commit cleans up our gitignore files to get rid of them.
|
|
The no-proto-changes target checks whether there's any changes to either
our generated Go or Ruby proto files. To do so, it's currently writing
into "proto.diff" in the repo's root directory. Let's instead write it
into our build directory to keep our repo as clean as possible.
|
|
We've got some tests which set up gitlab-shell, which includes both
writing a config file as well as writing the secret. We typically do so
in the respective test's testdata directory, but that directory isn't
generally ignored by our gitignore. Naturally enough, there's been a
file which has been added by accident. Furthermore, we still have two
gitkeep files around for the hooks directy, which isn't used anymore
today.
This commit thus removes all `testdata/gitlab-shell` files and adds it
to our gitignore. The testdirectory is now created ad-hoc.
|
|
|
|
GitLab-Shell used to implement the Git hooks that performed
authorization and authentication. These were ported to Go, and since
61dcdf969231954c06f16a6222a7540460f4b4f0 these are merged, meaning that
the code this change removes isn't ever called. As such, we should
remove it.
Removing these files required updates to the Makefile as some make
targets are no longer needed as the gitlab-shell tests aren't executed
anymore.
|
|
We've recently grown a new executable "gitaly-lfs-smudge". As it hasn't
been added to our gitignore file, it's currently getting displayed as
ignored every time one builds Gitaly.
Add the missing executable to have it be ignored.
|
|
Our gitignore file has grown over time and became quite hard to read.
It's carrying patterns for things which have been removed meanwhile and
the remaining patterns aren't grouped in any logical way.
Improve the file by grouping together related ignore patterns and
stripping those which aren't needed anymore.
|
|
Currently the only hook in production running their Ruby implementation
is the postreceive hook. For GitLab.com the feature flag was toggled,
and performs very well. As such the feature will be expose to all GitLab
installs, as the feature flag is removed in this change.
|
|
As it is hard to reason about what is the difference between
local run and run on CI in the Docker container the first
step to identify what is the actual difference between two.
If it is only a formatting then it is possible that locally
generated version was formatted and committed.
To see the difference a new artifact 'proto.diff' would be
available after failed execution of the 'no-changes' task.
It will show delta between locally generated and committed
files vs files generated on CI during verification.
Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2855
|
|
With commit a6091637 (Merge branch 'pks-revert-git2go' into 'master',
2020-07-31), our new Git2Go dependency was reverted again due to several
issues:
- Some distributions didn't have a recent enough version of
CMake available. As a result, building libgit2 failed. This was
fixed by bumping the build images' CMake version.
- Build tags didn't work as expected and thus we ended up not using
them at all. This was fixed by passing build flags via the
Makefile. As this causes e.g. `go test ./...` to fail with a
linking error due to build tags not being specified and the
PKG_CONFIG_PATH not being set up as required. To work around this
issue and not break developer workflows, gitaly-git2go will now
only be built if build tags required for git2go are set.
- Invalidation of libgit2.a didn't work as required. E.g. if the
Makefile changes, it wasn't rebuilt and it was thus impossible to
provide fixes for any broken setups if libgit2.a was built
already. This was fixed by adding a build dependency on the
Makefile.
All in all, this should fix all currently known problems with building
libgit2.
|
|
This reverts commit 4f3253e9758affac7b7a8e7f74e97117299c4002, reversing
changes made to 40b90823b0d55561059d27249e02db426b428786.
|
|
This adds a new gitaly-git2go command that is currently intended as a
proof-of-concept for our Git2Go build framework. It thus doesn't do much
except demonstrating it's possible to link against Git2Go and its
bundled lbigit2 static archive and use its functionality. At a later
point, this is going to be the entrypoint for any Git functionality that
we want to implement via Git2Go.
|
|
While it's possible to override quite some different things of our
Makefiles, doing so is burdensome as the developer needs to keep in mind
to always pass those parameters to any calls of make(1). So let's make
this configurable in a persistent way by including an optional
"config.mak" file that may contain options set up by the developer. All
the developer now needs to do is write all variables he wants to
override into that file and then he's good to go.
|
|
|
|
Since the gitaly-remote command was added in 22eb30d2 (Add gitaly-remote
binary to add or update remote URL, 2019-03-27), it didn't catch much
interest and is not really used anywhere. It does require us to do quite
some build hacks, though, because of its dependency on git2go and thus
indirectly on libgit2, and in fact building gitaly-remote does not
currently work. Furthermore, it breaks our gosec-sast job that performs
scanning for security vulnerabilities.
So given that we'd require additional hacks to keep gitaly-remote while
nobody really uses it, let's instead remove it and the git2go/libgit2
dependencies altogether.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Mateusz Nowotyński <maxmati4@gmail.com>
|
|
Signed-off-by: Mateusz Nowotyński <maxmati4@gmail.com>
|
|
|
|
Create Praefect binary for proxy server execution
Closes #1483
See merge request gitlab-org/gitaly!1068
|
|
|
|
By introducting a new command, the pass through proxy gets an execution
path. To allow for manual testing, but also for, probably more
important; getting started with integrating into the GitLab
architecture.
For logging we default to logrus, but these aren't structured yet. Which
should be improved later.
Config is added too, by parsing a TOML file. The path to this file is
passed as first argument to the praefect binary. The output is JSON by
default and not yet configurable.
OS signals are handled too, and allow for a Shutdown of the server.
The basic observability was added too, but on the proxy layer this will
not yield too much, other than tracing.
|
|
|
|
Sending Git-Protocol: version=2 will make Gitaly
set an environment variable GIT_PROTOCOL that Git
should interpret as to using Git v2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Closes #103
|
|
|
|
See merge request !63
|
|
|
|
This allows Bundler to fetch development versions of the 'gitaly' gem
using git: directives.
|
|
|