Index: head/devel/gitaly/Makefile =================================================================== --- head/devel/gitaly/Makefile (revision 506115) +++ head/devel/gitaly/Makefile (revision 506116) @@ -1,57 +1,110 @@ # $FreeBSD$ PORTNAME= gitaly -DISTVERSION= 1.42.5 +DISTVERSION= 1.47.0 PORTREVISION= 0 CATEGORIES= devel MAINTAINER= mfechner@FreeBSD.org COMMENT= Smart reverse proxy for GitLab LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE # define dependencies that are required for build and run under MY_DEPENDS MY_DEPENDS= git>=2.21:devel/git \ rubygem-bundler>=1.17.3:sysutils/rubygem-bundler \ rubygem-rugged>=0.28.0:devel/rubygem-rugged \ rubygem-github-linguist>=6.1:textproc/rubygem-github-linguist \ rubygem-gitlab-markup>=1.7.0:textproc/rubygem-gitlab-markup \ rubygem-activesupport5>=5.1.7:devel/rubygem-activesupport5 \ - rubygem-gitaly-proto>=1.27.0:net/rubygem-gitaly-proto \ + rubygem-gitaly-proto>=1.32.0:net/rubygem-gitaly-proto \ rubygem-rdoc>=6.0:devel/rubygem-rdoc \ rubygem-gitlab-gollum-lib>=4.2.7.7:www/rubygem-gitlab-gollum-lib \ rubygem-gitlab-gollum-rugged_adapter>=0.4.4.2:www/rubygem-gitlab-gollum-rugged_adapter \ rubygem-grpc>=1.19.0:net/rubygem-grpc \ rubygem-sentry-raven>=2.9.0:devel/rubygem-sentry-raven \ rubygem-faraday>=0.12:www/rubygem-faraday \ rubygem-rbtrace>0:devel/rubygem-rbtrace \ + rubygem-gitlab-labkit>=0.3.0:devel/rubygem-gitlab-labkit \ rubygem-licensee8>=8.9.0:devel/rubygem-licensee8 \ rubygem-google-protobuf371>=3.7.1:devel/rubygem-google-protobuf371 BUILD_DEPENDS= gem:devel/ruby-gems \ ${MY_DEPENDS} RUN_DEPENDS= ${MY_DEPENDS} \ - gitlab-shell>=6.0.4:devel/gitlab-shell + gitlab-shell>=9.3.0:devel/gitlab-shell -USES= gmake go:no_targets +USES= gmake go:modules,no_targets USE_RUBY= yes +MAKE_ENV= GOFLAGS="${GO_BUILDFLAGS}" + USE_GITLAB= yes GL_ACCOUNT= gitlab-org # Find this here: https://gitlab.com/gitlab-org/gitaly/tags -GL_COMMIT= 49cffe530ac3dccbc168e568f9e7220180817e55 +GL_COMMIT= 333775253533ae4e9e9e66dc12b636821646551f +# for go dependencies +USE_GITHUB= nodefault +# generated with gomod-deps below +GH_TUPLE= \ + BurntSushi:toml:v0.3.1:burntsushi_toml/vendor/github.com/BurntSushi/toml \ + DataDog:dd-trace-go:v1.7.0:datadog_dd_trace_go/vendor/gopkg.in/DataDog/dd-trace-go.v1 \ + beorn7:perks:v1.0.0:beorn7_perks/vendor/github.com/beorn7/perks \ + certifi:gocertifi:ee1a9a0726d2:certifi_gocertifi/vendor/github.com/certifi/gocertifi \ + cloudflare:tableflip:8392f1641731:cloudflare_tableflip/vendor/github.com/cloudflare/tableflip \ + codahale:hdrhistogram:3a0bb77429bd:codahale_hdrhistogram/vendor/github.com/codahale/hdrhistogram \ + davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \ + getsentry:raven-go:v0.1.2:getsentry_raven_go/vendor/github.com/getsentry/raven-go \ + golang:crypto:c2843e01d9a2:golang_crypto/vendor/golang.org/x/crypto \ + golang:net:d8887717615a:golang_net/vendor/golang.org/x/net \ + golang:protobuf:v1.3.1:golang_protobuf/vendor/github.com/golang/protobuf \ + golang:sync:37e7f081c4d4:golang_sync/vendor/golang.org/x/sync \ + golang:sys:d0b11bdaac8a:golang_sys/vendor/golang.org/x/sys \ + golang:text:v0.3.0:golang_text/vendor/golang.org/x/text \ + google:go-genproto:bd91e49a0898:google_go_genproto/vendor/google.golang.org/genproto \ + grpc-ecosystem:go-grpc-middleware:v1.0.0:grpc_ecosystem_go_grpc_middleware/vendor/github.com/grpc-ecosystem/go-grpc-middleware \ + grpc-ecosystem:go-grpc-prometheus:v1.2.0:grpc_ecosystem_go_grpc_prometheus/vendor/github.com/grpc-ecosystem/go-grpc-prometheus \ + grpc:grpc-go:v1.16.0:grpc_grpc_go/vendor/google.golang.org/grpc \ + kelseyhightower:envconfig:v1.3.0:kelseyhightower_envconfig/vendor/github.com/kelseyhightower/envconfig \ + konsorten:go-windows-terminal-sequences:v1.0.1:konsorten_go_windows_terminal_sequences/vendor/github.com/konsorten/go-windows-terminal-sequences \ + libgit2:git2go:ecaeb7a21d47:libgit2_git2go/vendor/github.com/libgit2/git2go \ + lightstep:lightstep-tracer-go:v0.15.6:lightstep_lightstep_tracer_go/vendor/github.com/lightstep/lightstep-tracer-go \ + matttproud:golang_protobuf_extensions:v1.0.1:matttproud_golang_protobuf_extensions/vendor/github.com/matttproud/golang_protobuf_extensions \ + opentracing:opentracing-go:v1.0.2:opentracing_opentracing_go/vendor/github.com/opentracing/opentracing-go \ + philhofer:fwd:v1.0.0:philhofer_fwd/vendor/github.com/philhofer/fwd \ + pkg:errors:v0.8.0:pkg_errors/vendor/github.com/pkg/errors \ + pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \ + prometheus:client_golang:v0.9.3:prometheus_client_golang/vendor/github.com/prometheus/client_golang \ + prometheus:client_model:fd36f4220a90:prometheus_client_model/vendor/github.com/prometheus/client_model \ + prometheus:common:v0.4.0:prometheus_common/vendor/github.com/prometheus/common \ + prometheus:procfs:5867b95ac084:prometheus_procfs/vendor/github.com/prometheus/procfs \ + sirupsen:logrus:v1.2.0:sirupsen_logrus/vendor/github.com/sirupsen/logrus \ + stretchr:testify:v1.2.2:stretchr_testify/vendor/github.com/stretchr/testify \ + tinylib:msgp:v1.1.0:tinylib_msgp/vendor/github.com/tinylib/msgp \ + uber:jaeger-client-go:v2.15.0:uber_jaeger_client_go/vendor/github.com/uber/jaeger-client-go \ + uber:jaeger-lib:v1.5.0:uber_jaeger_lib/vendor/github.com/uber/jaeger-lib +GL_TUPLE= gitlab-org:labkit:0c3fc7cdd57c57da5ab474aa72b6640d2bdc9ebb:labkit/vendor/gitlab.com/gitlab-org/labkit \ + gitlab-org:gitaly-proto:f4db5d05d437abe1154d7308ca044d3577b5ccba:gitaly_proto/vendor/gitlab.com/gitlab-org/gitaly-proto + + post-patch: ${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" ${WRKSRC}/config.toml.example ${MV} ${WRKSRC}/config.toml.example ${WRKSRC}/config.toml.sample + ${CP} ${WRKSRC}/internal/helper/fstype/detect_linux.go ${WRKSRC}/internal/helper/fstype/detect_freebsd.go + +# Build the go deps, use `pkg install modules2tuple` +gomod-deps: patch + (cd ${WRKSRC} && go mod vendor) + (cd ${WRKSRC} && modules2tuple vendor/modules.txt) do-install: ${MKDIR} ${STAGEDIR}${DATADIR} ${MKDIR} ${STAGEDIR}${DATADIR}/bin ${FIND} ${WRKSRC} -name '*.orig' -delete ${FIND} ${WRKSRC} -name "Gemfile.lock" -delete (cd ${WRKSRC}/_build/bin/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/bin && \ cd ${WRKSRC} && ${COPYTREE_SHARE} config.toml.sample ${STAGEDIR}${DATADIR}) && \ cd ${WRKSRC}/ruby && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/ruby .include Index: head/devel/gitaly/distinfo =================================================================== --- head/devel/gitaly/distinfo (revision 506115) +++ head/devel/gitaly/distinfo (revision 506116) @@ -1,3 +1,79 @@ -TIMESTAMP = 1562180603 -SHA256 (gitlab-org-gitaly-49cffe530ac3dccbc168e568f9e7220180817e55_GL0.tar.gz) = 00e5cef916edf0459eca7cca04c716d023dd32c4993e0e1a4e971eca1414e121 -SIZE (gitlab-org-gitaly-49cffe530ac3dccbc168e568f9e7220180817e55_GL0.tar.gz) = 8288039 +TIMESTAMP = 1562482490 +SHA256 (BurntSushi-toml-v0.3.1_GH0.tar.gz) = 6593da894578ba510a470735ffbdc88ce88033094dc5a8f4d3957ab87e18803f +SIZE (BurntSushi-toml-v0.3.1_GH0.tar.gz) = 42077 +SHA256 (DataDog-dd-trace-go-v1.7.0_GH0.tar.gz) = d81bd47683ef9cbd228691b077373d3e15ca5fa5b9e7919099c4e87779040e84 +SIZE (DataDog-dd-trace-go-v1.7.0_GH0.tar.gz) = 3321111 +SHA256 (beorn7-perks-v1.0.0_GH0.tar.gz) = b69d92e2e84b7d510dfa6110d3ac4ada0096a6c81190c5e174aa888bfe475cbc +SIZE (beorn7-perks-v1.0.0_GH0.tar.gz) = 10866 +SHA256 (certifi-gocertifi-ee1a9a0726d2_GH0.tar.gz) = b0b9ac422d6378c82be85f71f206757db24ecad314aca6155e9954363817fae1 +SIZE (certifi-gocertifi-ee1a9a0726d2_GH0.tar.gz) = 143846 +SHA256 (cloudflare-tableflip-8392f1641731_GH0.tar.gz) = 0fab510fb61d488f63c59485dadb166d7d5fac5ebbd65e6a3cacfc9fdd1fb6d3 +SIZE (cloudflare-tableflip-8392f1641731_GH0.tar.gz) = 12582 +SHA256 (codahale-hdrhistogram-3a0bb77429bd_GH0.tar.gz) = 3ef6b86658bc370e027304e55a8685767f7fd8a94199f4bea08c9388bf84a1b0 +SIZE (codahale-hdrhistogram-3a0bb77429bd_GH0.tar.gz) = 7738 +SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e +SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152 +SHA256 (getsentry-raven-go-v0.1.2_GH0.tar.gz) = fe603da75a8284273f253a8524d456cd6293fb47508d907f830153ed9af98cb5 +SIZE (getsentry-raven-go-v0.1.2_GH0.tar.gz) = 19314 +SHA256 (golang-crypto-c2843e01d9a2_GH0.tar.gz) = a4d91350f176b2ef99084cd71f990ecee5f549efed72ef59a5b9e425a00d454a +SIZE (golang-crypto-c2843e01d9a2_GH0.tar.gz) = 1650817 +SHA256 (golang-net-d8887717615a_GH0.tar.gz) = 275e6ecfc70b51e05127339c58d0ded3db9b74bf8be869d32c4e731b154af71d +SIZE (golang-net-d8887717615a_GH0.tar.gz) = 974014 +SHA256 (golang-protobuf-v1.3.1_GH0.tar.gz) = 3f3a6123054a9847093c119895f1660612f301fe95358f3a6a1a33fd0933e6cf +SIZE (golang-protobuf-v1.3.1_GH0.tar.gz) = 310884 +SHA256 (golang-sync-37e7f081c4d4_GH0.tar.gz) = d0f0ce92264903fa32032fc365c0c0d36d129fa282d74364c406179a94714f10 +SIZE (golang-sync-37e7f081c4d4_GH0.tar.gz) = 16238 +SHA256 (golang-sys-d0b11bdaac8a_GH0.tar.gz) = e7e3f36dd307e908e59dbda3864ff74f9a5d7f0fdd4d88af630e092beb7d270c +SIZE (golang-sys-d0b11bdaac8a_GH0.tar.gz) = 1243049 +SHA256 (golang-text-v0.3.0_GH0.tar.gz) = 8f4c9a048345befc7beccd09267737ee1f55c7b35e5ff80f344ec9e0aa90febb +SIZE (golang-text-v0.3.0_GH0.tar.gz) = 6102619 +SHA256 (google-go-genproto-bd91e49a0898_GH0.tar.gz) = 659ae77d08446b4bcb7d6b8a9c050d903e6e13fbd903541da7bf9966142e9377 +SIZE (google-go-genproto-bd91e49a0898_GH0.tar.gz) = 2429775 +SHA256 (grpc-ecosystem-go-grpc-middleware-v1.0.0_GH0.tar.gz) = e9178768b55709d2fc2b5a509baceccb4e51d841fa13ed409e16455435e6917b +SIZE (grpc-ecosystem-go-grpc-middleware-v1.0.0_GH0.tar.gz) = 97266 +SHA256 (grpc-ecosystem-go-grpc-prometheus-v1.2.0_GH0.tar.gz) = eba66530952a126ab869205bdb909af607bfd9eb09f00207b62eb29140258aa9 +SIZE (grpc-ecosystem-go-grpc-prometheus-v1.2.0_GH0.tar.gz) = 24760 +SHA256 (grpc-grpc-go-v1.16.0_GH0.tar.gz) = 771230b79dc89753e860b35870ec245b19248b538f0de3fe45d818281739167a +SIZE (grpc-grpc-go-v1.16.0_GH0.tar.gz) = 545087 +SHA256 (kelseyhightower-envconfig-v1.3.0_GH0.tar.gz) = 3556a0d014ba778b78955e8ec9fc320de81509f4aa582ea3b6ce18476c3e40dd +SIZE (kelseyhightower-envconfig-v1.3.0_GH0.tar.gz) = 12408 +SHA256 (konsorten-go-windows-terminal-sequences-v1.0.1_GH0.tar.gz) = e36c5a5de388bf72db3037b47f025b09e574be8d0bc74b3e44c960cba0880e87 +SIZE (konsorten-go-windows-terminal-sequences-v1.0.1_GH0.tar.gz) = 1909 +SHA256 (libgit2-git2go-ecaeb7a21d47_GH0.tar.gz) = 2a7cd9579aad7f046795f26c17a92d79f6caded6a512cc37d366a6ae7e28b396 +SIZE (libgit2-git2go-ecaeb7a21d47_GH0.tar.gz) = 72760 +SHA256 (lightstep-lightstep-tracer-go-v0.15.6_GH0.tar.gz) = b3c3245404b05ea7d030591c1862a807cc0801ce561553b8b7682cb0e198fb14 +SIZE (lightstep-lightstep-tracer-go-v0.15.6_GH0.tar.gz) = 194986 +SHA256 (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 2def0ee6f6b12b1efc0e3007d89f598608a072610e805c3655ea9d13c3ead49b +SIZE (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 37184 +SHA256 (opentracing-opentracing-go-v1.0.2_GH0.tar.gz) = fe3606493ab322c3ae9922b7ebf3e78350665054b0f6142a6ced06eebf1e41df +SIZE (opentracing-opentracing-go-v1.0.2_GH0.tar.gz) = 24067 +SHA256 (philhofer-fwd-v1.0.0_GH0.tar.gz) = 55736f48940198a11b7aeb4faba258459451994a8889ec003ce8d8d26ceca9ff +SIZE (philhofer-fwd-v1.0.0_GH0.tar.gz) = 9221 +SHA256 (pkg-errors-v0.8.0_GH0.tar.gz) = bacf6c58e490911398cee61742ddc6a90c560733e4c9dcb3d867b17a894c9dd5 +SIZE (pkg-errors-v0.8.0_GH0.tar.gz) = 11344 +SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda +SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398 +SHA256 (prometheus-client_golang-v0.9.3_GH0.tar.gz) = 691646522cee404fc8d48bf830309bb75e7b36ceca31d8dc2febe142e66a9ca8 +SIZE (prometheus-client_golang-v0.9.3_GH0.tar.gz) = 138415 +SHA256 (prometheus-client_model-fd36f4220a90_GH0.tar.gz) = 17571c708bab9a1ba18d9dd0c9bfe96dff3f1b84c63e7d8d4c3489ef5c34ee40 +SIZE (prometheus-client_model-fd36f4220a90_GH0.tar.gz) = 57491 +SHA256 (prometheus-common-v0.4.0_GH0.tar.gz) = 5fbad5f7332e40e1e1a75da389e81cf51300c26efff8dfe894eb814d2db5062e +SIZE (prometheus-common-v0.4.0_GH0.tar.gz) = 98312 +SHA256 (prometheus-procfs-5867b95ac084_GH0.tar.gz) = e7a790683185905621d3ea93fc605a38957b3a5e4a16ff90dee557d2e714c842 +SIZE (prometheus-procfs-5867b95ac084_GH0.tar.gz) = 72672 +SHA256 (sirupsen-logrus-v1.2.0_GH0.tar.gz) = 679aa05d23ca81b74f1327e7a25267a322dc9fd807a276e73e781f62ee679c6d +SIZE (sirupsen-logrus-v1.2.0_GH0.tar.gz) = 37794 +SHA256 (stretchr-testify-v1.2.2_GH0.tar.gz) = 0728bb470254e8b39deae3e6c1c92a98e737239ae0be484188fb9083250adf5f +SIZE (stretchr-testify-v1.2.2_GH0.tar.gz) = 101698 +SHA256 (tinylib-msgp-v1.1.0_GH0.tar.gz) = 30ac583b725d84aee147c26d1bc31e8770a3911e8437461cda0e53fb69c54570 +SIZE (tinylib-msgp-v1.1.0_GH0.tar.gz) = 77923 +SHA256 (uber-jaeger-client-go-v2.15.0_GH0.tar.gz) = 6b89d1a6684475fcbaed3f9d2137df072e2c1f7b15feb69a8ef8963804c44c94 +SIZE (uber-jaeger-client-go-v2.15.0_GH0.tar.gz) = 164460 +SHA256 (uber-jaeger-lib-v1.5.0_GH0.tar.gz) = 98901cc41df77858a2f601ad48b45bdf72af40c56f15bc5182416b15db0daac3 +SIZE (uber-jaeger-lib-v1.5.0_GH0.tar.gz) = 31655 +SHA256 (gitlab-org-gitaly-333775253533ae4e9e9e66dc12b636821646551f_GL0.tar.gz) = a3eb4087178fcc151a0b7545f8708c0484886bd1e2b02eafc9c7d6ccf24142d4 +SIZE (gitlab-org-gitaly-333775253533ae4e9e9e66dc12b636821646551f_GL0.tar.gz) = 2061778 +SHA256 (gitlab-org-labkit-0c3fc7cdd57c57da5ab474aa72b6640d2bdc9ebb_GL0.tar.gz) = 449f2e2d1cedea1ea276a1d8132d0244a4c5ffc465d2a24b824ab9790641f78e +SIZE (gitlab-org-labkit-0c3fc7cdd57c57da5ab474aa72b6640d2bdc9ebb_GL0.tar.gz) = 2280466 +SHA256 (gitlab-org-gitaly-proto-f4db5d05d437abe1154d7308ca044d3577b5ccba_GL0.tar.gz) = 5f716dae8d3085eeff97bb1df5d8078c7194b589e63a442126eebcf8c56c64a2 +SIZE (gitlab-org-gitaly-proto-f4db5d05d437abe1154d7308ca044d3577b5ccba_GL0.tar.gz) = 177233 Index: head/devel/gitaly/files/patch-bfb7648ed9b54d3c9c095408c117320da6f244dc.diff =================================================================== --- head/devel/gitaly/files/patch-bfb7648ed9b54d3c9c095408c117320da6f244dc.diff (revision 506115) +++ head/devel/gitaly/files/patch-bfb7648ed9b54d3c9c095408c117320da6f244dc.diff (nonexistent) @@ -1,330 +0,0 @@ -diff --git changelogs/unreleased/ac-package-ps.yml changelogs/unreleased/ac-package-ps.yml -new file mode 100644 -index 0000000000000000000000000000000000000000..f493fa5c615663b0c08d39f358129602fd596df3 ---- /dev/null -+++ changelogs/unreleased/ac-package-ps.yml -@@ -0,0 +1,5 @@ -+--- -+title: Introduce ps package -+merge_request: 1258 -+author: -+type: added -diff --git cmd/gitaly-wrapper/main.go cmd/gitaly-wrapper/main.go -index 4a8ea6ae25b0c4db300ddb0c27972a49e6df02ed..79f100f6d7a9df2531e7732b912142cb36aff5bf 100644 ---- cmd/gitaly-wrapper/main.go -+++ cmd/gitaly-wrapper/main.go -@@ -13,6 +13,7 @@ import ( - - "github.com/sirupsen/logrus" - "gitlab.com/gitlab-org/gitaly/internal/config" -+ "gitlab.com/gitlab-org/gitaly/internal/ps" - ) - - const ( -@@ -43,7 +44,7 @@ func main() { - log.WithError(err).Fatal("find gitaly") - } - -- if gitaly != nil { -+ if gitaly != nil && isGitaly(gitaly, gitalyBin) { - log.Info("adopting a process") - } else { - log.Info("spawning a process") -@@ -82,10 +83,6 @@ func findGitaly() (*os.Process, error) { - } - - if isAlive(gitaly) { -- if ok, err := isGitaly(pid); !ok { -- return nil, err -- } -- - return gitaly, nil - } - -@@ -143,17 +140,17 @@ func isAlive(p *os.Process) bool { - return p.Signal(syscall.Signal(0)) == nil - } - --func isGitaly(pid int) (bool, error) { -- command, err := procPath(pid) -+func isGitaly(p *os.Process, gitalyBin string) bool { -+ command, err := ps.Comm(p.Pid) - if err != nil { -- return false, err -+ return false - } - -- if path.Base(command) == "gitaly" { -- return true, nil -+ if path.Base(command) == path.Base(gitalyBin) { -+ return true - } - -- return false, nil -+ return false - } - - func pidFile() string { -diff --git cmd/gitaly-wrapper/main_test.go cmd/gitaly-wrapper/main_test.go -index cde68e840ad191b22cce4355606be11738da295e..f4d98a37480158d17665c698314adf004876152b 100644 ---- cmd/gitaly-wrapper/main_test.go -+++ cmd/gitaly-wrapper/main_test.go -@@ -1,11 +1,9 @@ - package main - - import ( -- "io" - "io/ioutil" - "os" - "os/exec" -- "path" - "strconv" - "testing" - -@@ -33,60 +31,16 @@ func TestStolenPid(t *testing.T) { - require.NoError(t, err) - require.NoError(t, pidFile.Close()) - -- gitaly, err := findGitaly() -+ tail, err := findGitaly() - require.NoError(t, err) -- require.Nil(t, gitaly) --} -- --func TestExistingGitaly(t *testing.T) { -- defer func(oldValue string) { -- os.Setenv(config.EnvPidFile, oldValue) -- }(os.Getenv(config.EnvPidFile)) -- -- tmpDir, err := ioutil.TempDir("", "gitaly-pid") -- require.NoError(t, err) -- defer os.RemoveAll(tmpDir) -- -- pidFile := path.Join(tmpDir, "gitaly.pid") -- fakeGitaly := path.Join(tmpDir, "gitaly") -- -- require.NoError(t, buildFakeGitaly(t, fakeGitaly), "Can't build a fake gitaly binary") -- -- os.Setenv(config.EnvPidFile, pidFile) -- -- cmd := exec.Command(fakeGitaly, "-f") -- require.NoError(t, cmd.Start()) -- defer cmd.Process.Kill() -- -- require.NoError(t, ioutil.WriteFile(pidFile, []byte(strconv.Itoa(cmd.Process.Pid)), 0644)) -- -- gitaly, err := findGitaly() -- require.NoError(t, err) -- require.NotNil(t, gitaly) -- require.Equal(t, cmd.Process.Pid, gitaly.Pid) -- gitaly.Kill() --} -- --func buildFakeGitaly(t *testing.T, path string) error { -- tail := exec.Command("tail", "-f") -- require.NoError(t, tail.Start()) -- defer tail.Process.Kill() -- -- tailPath, err := procPath(tail.Process.Pid) -- require.NoError(t, err) -- tail.Process.Kill() -- -- src, err := os.Open(tailPath) -- require.NoError(t, err) -- defer src.Close() -- -- out, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY, 0744) -- require.NoError(t, err) -- defer out.Close() -+ require.NotNil(t, tail) -+ require.Equal(t, cmd.Process.Pid, tail.Pid) - -- if _, err := io.Copy(out, src); err != nil { -- return err -- } -+ t.Run("stolen", func(t *testing.T) { -+ require.False(t, isGitaly(tail, "/path/to/gitaly")) -+ }) - -- return out.Sync() -+ t.Run("not stolen", func(t *testing.T) { -+ require.True(t, isGitaly(tail, "/path/to/tail")) -+ }) - } -diff --git cmd/gitaly-wrapper/proc_path_darwin.go cmd/gitaly-wrapper/proc_path_darwin.go -deleted file mode 100644 -index 4979cc20393c46110698f861fe8cbfd23f65fbf2..0000000000000000000000000000000000000000 ---- cmd/gitaly-wrapper/proc_path_darwin.go -+++ /dev/null -@@ -1,25 +0,0 @@ --package main -- --// #include --// #include --import "C" -- --import ( -- "fmt" -- "unsafe" --) -- --func procPath(pid int) (string, error) { -- // MacOS does not implement procfs, this simple function calls proc_pidpath from MacOS libproc -- // https://opensource.apple.com/source/xnu/xnu-2422.1.72/libsyscall/wrappers/libproc/libproc.h.auto.html -- // this is just for testing purpose as we do not support MacOS as a production environment -- -- buf := C.CString(string(make([]byte, C.PROC_PIDPATHINFO_MAXSIZE))) -- defer C.free(unsafe.Pointer(buf)) -- -- if ret, err := C.proc_pidpath(C.int(pid), unsafe.Pointer(buf), C.PROC_PIDPATHINFO_MAXSIZE); ret <= 0 { -- return "", fmt.Errorf("failed process path retrieval: %v", err) -- } -- -- return C.GoString(buf), nil --} -diff --git cmd/gitaly-wrapper/proc_path_linux.go cmd/gitaly-wrapper/proc_path_linux.go -deleted file mode 100644 -index d48828a93ef454d07a7c11a71f30ca0399b740f3..0000000000000000000000000000000000000000 ---- cmd/gitaly-wrapper/proc_path_linux.go -+++ /dev/null -@@ -1,10 +0,0 @@ --package main -- --import ( -- "os" -- "strconv" --) -- --func procPath(pid int) (path string, err error) { -- return os.Readlink("/proc/" + strconv.Itoa(pid) + "/exe") --} -diff --git internal/ps/ps.go internal/ps/ps.go -new file mode 100644 -index 0000000000000000000000000000000000000000..1115547ac9db363673a5788dbb2f3b085f35d9c6 ---- /dev/null -+++ internal/ps/ps.go -@@ -0,0 +1,32 @@ -+package ps -+ -+import ( -+ "os/exec" -+ "strconv" -+ "strings" -+) -+ -+// Exec invokes ps -o keywords -p pid and returns its output -+func Exec(pid int, keywords string) (string, error) { -+ out, err := exec.Command("ps", "-o", keywords, "-p", strconv.Itoa(pid)).Output() -+ if err != nil { -+ return "", err -+ } -+ -+ return strings.TrimSpace(string(out)), nil -+} -+ -+// RSS invokes ps -o rss= -p pid and returns its output -+func RSS(pid int) (int, error) { -+ rss, err := Exec(pid, "rss=") -+ if err != nil { -+ return 0, err -+ } -+ -+ return strconv.Atoi(rss) -+} -+ -+// Comm invokes ps -o comm= -p pid and returns its output -+func Comm(pid int) (string, error) { -+ return Exec(pid, "comm=") -+} -diff --git internal/ps/ps_test.go internal/ps/ps_test.go -new file mode 100644 -index 0000000000000000000000000000000000000000..e752d146c6b2b14133a994d7b28853ff5dbbee56 ---- /dev/null -+++ internal/ps/ps_test.go -@@ -0,0 +1,28 @@ -+package ps -+ -+import ( -+ "os" -+ "testing" -+ -+ "github.com/stretchr/testify/require" -+) -+ -+var pid = os.Getpid() -+ -+func TestFailure(t *testing.T) { -+ _, err := Exec(pid, "not-existing-keyword=") -+ require.Error(t, err) -+} -+ -+func TestComm(t *testing.T) { -+ comm, err := Comm(pid) -+ require.NoError(t, err) -+ // the name of the testing binary may vary depending on how test are invoked (make or IDE) -+ require.Contains(t, comm, "test") -+} -+ -+func TestRSS(t *testing.T) { -+ rss, err := RSS(pid) -+ require.NoError(t, err) -+ require.True(t, rss > 0, "Expected a positive RSS") -+} -diff --git internal/supervisor/monitor.go internal/supervisor/monitor.go -index 4544e259a1ecdc4f968eb7900a3e9e6d5824d1bb..fc1ddb1468fa8992037fd6e6f65b454907a073ea 100644 ---- internal/supervisor/monitor.go -+++ internal/supervisor/monitor.go -@@ -1,13 +1,11 @@ - package supervisor - - import ( -- "os/exec" -- "strconv" - "time" - - "github.com/prometheus/client_golang/prometheus" - log "github.com/sirupsen/logrus" -- "gitlab.com/gitlab-org/gitaly/internal/helper/text" -+ "gitlab.com/gitlab-org/gitaly/internal/ps" - ) - - var ( -@@ -48,7 +46,13 @@ func monitorRss(procs <-chan monitorProcess, done chan<- struct{}, events chan<- - for mp := range procs { - monitorLoop: - for { -- rss := 1024 * getRss(mp.pid) -+ rss, err := ps.RSS(mp.pid) -+ if err != nil { -+ log.WithError(err).Warn("getting RSS") -+ } -+ -+ // converts from kB to B -+ rss *= 1024 - rssGauge.WithLabelValues(name).Set(float64(rss)) - - if rss > 0 { -@@ -73,23 +77,6 @@ func monitorRss(procs <-chan monitorProcess, done chan<- struct{}, events chan<- - } - } - --// getRss returns RSS in kilobytes. --func getRss(pid int) int { -- // I tried adding a library to do this but it seemed like overkill -- // and YAGNI compared to doing this one 'ps' call. -- psRss, err := exec.Command("ps", "-o", "rss=", "-p", strconv.Itoa(pid)).Output() -- if err != nil { -- return 0 -- } -- -- rss, err := strconv.Atoi(text.ChompBytes(psRss)) -- if err != nil { -- return 0 -- } -- -- return rss --} -- - func monitorHealth(f func() error, events chan<- Event, name string, shutdown <-chan struct{}) { - for { - e := Event{Error: f()} Property changes on: head/devel/gitaly/files/patch-bfb7648ed9b54d3c9c095408c117320da6f244dc.diff ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/gitaly/files/patch-__support_makegen.go =================================================================== --- head/devel/gitaly/files/patch-__support_makegen.go (revision 506115) +++ head/devel/gitaly/files/patch-__support_makegen.go (revision 506116) @@ -1,21 +1,21 @@ ---- _support/makegen.go.orig 2019-04-05 16:17:09 UTC +--- _support/makegen.go.orig 2019-06-18 09:53:31 UTC +++ _support/makegen.go -@@ -253,7 +253,7 @@ var templateText = ` - # These variables may be overriden at runtime by top-level make +@@ -282,7 +282,7 @@ var templateText = ` + # These variables may be overridden at runtime by top-level make PREFIX ?= /usr/local INSTALL_DEST_DIR := $(DESTDIR)$(PREFIX)/bin/ -BUNDLE_FLAGS ?= --deployment +BUNDLE_FLAGS ?= --local ASSEMBLY_ROOT ?= {{ .BuildDir }}/assembly BUILD_TAGS := tracer_static tracer_static_jaeger -@@ -274,8 +274,8 @@ build: ../.ruby-bundle +@@ -330,8 +330,8 @@ build: ../.ruby-bundle # step. Both Omnibus and CNG assume it is in the Gitaly root, not in # _build. Hence the '../' in front. ../.ruby-bundle: {{ .GitalyRubyDir }}/Gemfile.lock {{ .GitalyRubyDir }}/Gemfile + cd {{ .GitalyRubyDir }} && rm Gemfile.lock && bundle install $(BUNDLE_FLAGS) cd {{ .GitalyRubyDir }} && bundle config # for debugging - cd {{ .GitalyRubyDir }} && bundle install $(BUNDLE_FLAGS) cd {{ .GitalyRubyDir }} && bundle show gitaly-proto # sanity check touch $@ Index: head/devel/gitaly/files/patch-config.toml.example =================================================================== --- head/devel/gitaly/files/patch-config.toml.example (revision 506115) +++ head/devel/gitaly/files/patch-config.toml.example (revision 506116) @@ -1,48 +1,49 @@ ---- config.toml.example.orig 2018-12-10 17:27:53 UTC +--- config.toml.example.orig 2019-06-18 09:53:31 UTC +++ config.toml.example @@ -1,9 +1,9 @@ # Example Gitaly configuration file -socket_path = "/home/git/gitlab/tmp/sockets/private/gitaly.socket" +socket_path = "%%PREFIX%%/www/gitlab-ce/tmp/sockets/private/gitaly.socket" # The directory where Gitaly's executables are stored -bin_dir = "/home/git/gitaly" +bin_dir = "%%PREFIX%%/share/gitaly/bin/" # # Optional: listen on a TCP socket. This is insecure (no authentication) # listen_addr = "localhost:9999" -@@ -22,12 +22,12 @@ bin_dir = "/home/git/gitaly" +@@ -22,13 +22,13 @@ bin_dir = "/home/git/gitaly" # key_path = '/home/git/key.pem' - # # Git executable settings + # # Git settings -# [git] -# bin_path = "/usr/bin/git" +[git] +bin_path = "%%PREFIX%%/bin/git" + # catfile_cache_size = 100 [[storage]] name = "default" -path = "/home/git/repositories" +path = "/usr/local/git/repositories" # # You can optionally configure more storages for this Gitaly instance to serve up # -@@ -55,7 +55,7 @@ path = "/home/git/repositories" +@@ -56,7 +56,7 @@ path = "/home/git/repositories" [gitaly-ruby] # The directory where gitaly-ruby is installed -dir = "/home/git/gitaly/ruby" +dir = "%%PREFIX%%/share/gitaly/ruby" # # Gitaly-ruby resident set size (RSS) that triggers a memory restart (bytes) # max_rss = 200000000 -@@ -71,7 +71,7 @@ dir = "/home/git/gitaly/ruby" +@@ -72,7 +72,7 @@ dir = "/home/git/gitaly/ruby" [gitlab-shell] # The directory where gitlab-shell is installed -dir = "/home/git/gitlab-shell" +dir = "%%PREFIX%%/share/gitlab-shell" # # You can adjust the concurrency of each RPC endpoint # [[concurrency]] Index: head/devel/gitaly/files/patch-ruby_Gemfile =================================================================== --- head/devel/gitaly/files/patch-ruby_Gemfile (revision 506115) +++ head/devel/gitaly/files/patch-ruby_Gemfile (revision 506116) @@ -1,29 +1,29 @@ ---- ruby/Gemfile.orig 2019-05-06 14:54:47 UTC +--- ruby/Gemfile.orig 2019-06-18 09:53:31 UTC +++ ruby/Gemfile @@ -8,7 +8,7 @@ gem 'github-linguist', '~> 6.1', require: 'linguist' gem 'gitlab-markup', '~> 1.7.0' gem 'activesupport', '~> 5.1.7' - gem 'gitaly-proto', '~> 1.27.0' + gem 'gitaly-proto', '~> 1.32.0' -gem 'rdoc', '~> 4.2' +gem 'rdoc', '~> 6.0' gem 'gitlab-gollum-lib', '~> 4.2.7.7', require: false gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false gem 'grpc', '~> 1.19.0' -@@ -22,17 +22,3 @@ gem 'licensee', '~> 8.9.0' +@@ -25,17 +25,3 @@ gem 'licensee', '~> 8.9.0' gem 'google-protobuf', '~> 3.7.1' -group :development, :test do -- gem 'rubocop', '~> 0.68', require: false +- gem 'rubocop', '~> 0.69', require: false - gem 'rspec', require: false - gem 'rspec-parameterized', require: false - gem 'timecop', require: false - gem 'factory_bot', require: false - gem 'pry', '~> 0.12.2', require: false - - # gitlab-shell spec gems - gem 'listen', '~> 0.5.0' - gem 'simplecov', '~> 0.9.0', require: false - gem 'vcr', '~> 4.0.0' - gem 'webmock', '~> 3.4.0' -end Index: head/devel/gitaly/pkg-plist =================================================================== --- head/devel/gitaly/pkg-plist (revision 506115) +++ head/devel/gitaly/pkg-plist (revision 506116) @@ -1,199 +1,197 @@ %%DATADIR%%/ruby/Gemfile %%DATADIR%%/ruby/README.md @(,,555) %%DATADIR%%/ruby/bin/gitaly-ruby @(,,555) %%DATADIR%%/ruby/bin/ruby-cd %%DATADIR%%/ruby/.rubocop.yml %%DATADIR%%/ruby/.rubocop_todo.yml %%DATADIR%%/ruby/git-hooks/post-receive %%DATADIR%%/ruby/git-hooks/pre-receive %%DATADIR%%/ruby/git-hooks/update %%DATADIR%%/ruby/gitlab-shell/.codeclimate.yml %%DATADIR%%/ruby/gitlab-shell/.gitlab-ci.yml %%DATADIR%%/ruby/gitlab-shell/.rubocop.yml %%DATADIR%%/ruby/gitlab-shell/.ruby-version %%DATADIR%%/ruby/gitlab-shell/CHANGELOG %%DATADIR%%/ruby/gitlab-shell/CONTRIBUTING.md %%DATADIR%%/ruby/gitlab-shell/Gemfile %%DATADIR%%/ruby/gitlab-shell/LICENSE %%DATADIR%%/ruby/gitlab-shell/README.md %%DATADIR%%/ruby/gitlab-shell/README.orig.md %%DATADIR%%/ruby/gitlab-shell/VERSION %%DATADIR%%/ruby/gitlab-shell/bin/check %%DATADIR%%/ruby/gitlab-shell/bin/test-logger %%DATADIR%%/ruby/gitlab-shell/config.yml.example %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_access.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_access_status.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_config.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_custom_hook.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_init.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_logger.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_metrics.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_net.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_net/errors.rb %%DATADIR%%/ruby/gitlab-shell/lib/gitlab_post_receive.rb %%DATADIR%%/ruby/gitlab-shell/lib/hooks_utils.rb %%DATADIR%%/ruby/gitlab-shell/lib/http_helper.rb %%DATADIR%%/ruby/gitlab-shell/lib/httpunix.rb %%DATADIR%%/ruby/gitlab-shell/lib/object_dirs_helper.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_access_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_config_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_custom_hook_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_logger_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_metrics_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_net_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/gitlab_post_receive_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/hooks_utils_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/httpunix_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/object_dirs_helper_spec.rb %%DATADIR%%/ruby/gitlab-shell/spec/spec_helper.rb %%DATADIR%%/ruby/gitlab-shell/spec/support/gitlab_shell_setup.rb %%DATADIR%%/ruby/gitlab-shell/spec/support/gl_id_test_hook %%DATADIR%%/ruby/gitlab-shell/spec/support/hook_fail %%DATADIR%%/ruby/gitlab-shell/spec/support/hook_ok %%DATADIR%%/ruby/gitlab-shell/spec/support/http_unix_server.rb %%DATADIR%%/ruby/gitlab-shell/spec/support/vcr.rb %%DATADIR%%/ruby/gitlab-shell/spec/support/webmock.rb %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-pull.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-404-text-html.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-404-text-plain.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-404.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-text-html.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found-text-plain.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push-project-not-found.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/allowed-push.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/broadcast_message-none.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/broadcast_message-ok.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/check-ok.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/http-pull-disabled.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/http-push-disabled.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/notify-post-receive.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/post-receive-not-found.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/post-receive.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/pre-receive-not-found.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/pre-receive.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-pull-disabled.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-401-text-html.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-401-text-plain.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-401.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied-with-user.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-pull-project-denied.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-push-disabled.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied-401-text-html.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied-401-text-plain.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied-401.yml %%DATADIR%%/ruby/gitlab-shell/spec/vcr_cassettes/ssh-push-project-denied.yml %%DATADIR%%/ruby/lib/gitaly_server.rb %%DATADIR%%/ruby/lib/gitaly_server/blob_service.rb %%DATADIR%%/ruby/lib/gitaly_server/client.rb %%DATADIR%%/ruby/lib/gitaly_server/commit_service.rb %%DATADIR%%/ruby/lib/gitaly_server/conflicts_service.rb %%DATADIR%%/ruby/lib/gitaly_server/diff_service.rb %%DATADIR%%/ruby/lib/gitaly_server/exception_sanitizer_interceptor.rb %%DATADIR%%/ruby/lib/gitaly_server/health_service.rb %%DATADIR%%/ruby/lib/gitaly_server/operations_service.rb %%DATADIR%%/ruby/lib/gitaly_server/ref_service.rb %%DATADIR%%/ruby/lib/gitaly_server/remote_service.rb %%DATADIR%%/ruby/lib/gitaly_server/repository_service.rb %%DATADIR%%/ruby/lib/gitaly_server/rugged_interceptor.rb %%DATADIR%%/ruby/lib/gitaly_server/sentry.rb %%DATADIR%%/ruby/lib/gitaly_server/sentry_interceptor.rb %%DATADIR%%/ruby/lib/gitaly_server/utils.rb %%DATADIR%%/ruby/lib/gitaly_server/wiki_service.rb %%DATADIR%%/ruby/lib/gitlab/config.rb %%DATADIR%%/ruby/lib/gitlab/encoding_helper.rb %%DATADIR%%/ruby/lib/gitlab/git.rb %%DATADIR%%/ruby/lib/gitlab/git/blob.rb %%DATADIR%%/ruby/lib/gitlab/git/branch.rb %%DATADIR%%/ruby/lib/gitlab/git/commit.rb %%DATADIR%%/ruby/lib/gitlab/git/commit_patches.rb %%DATADIR%%/ruby/lib/gitlab/git/committer_with_hooks.rb %%DATADIR%%/ruby/lib/gitlab/git/conflict/file.rb %%DATADIR%%/ruby/lib/gitlab/git/conflict/parser.rb %%DATADIR%%/ruby/lib/gitlab/git/conflict/resolution.rb %%DATADIR%%/ruby/lib/gitlab/git/conflict/resolver.rb -%%DATADIR%%/ruby/lib/gitlab/git/diff.rb %%DATADIR%%/ruby/lib/gitlab/git/gitaly_remote_repository.rb %%DATADIR%%/ruby/lib/gitlab/git/gitlab_projects.rb %%DATADIR%%/ruby/lib/gitlab/git/hook.rb %%DATADIR%%/ruby/lib/gitlab/git/hooks_service.rb %%DATADIR%%/ruby/lib/gitlab/git/http_auth.rb %%DATADIR%%/ruby/lib/gitlab/git/index.rb %%DATADIR%%/ruby/lib/gitlab/git/lfs_changes.rb %%DATADIR%%/ruby/lib/gitlab/git/operation_service.rb %%DATADIR%%/ruby/lib/gitlab/git/path_helper.rb %%DATADIR%%/ruby/lib/gitlab/git/popen.rb %%DATADIR%%/ruby/lib/gitlab/git/ref.rb %%DATADIR%%/ruby/lib/gitlab/git/remote_mirror.rb %%DATADIR%%/ruby/lib/gitlab/git/remote_repository.rb %%DATADIR%%/ruby/lib/gitlab/git/repository.rb %%DATADIR%%/ruby/lib/gitlab/git/repository_mirroring.rb %%DATADIR%%/ruby/lib/gitlab/git/rev_list.rb %%DATADIR%%/ruby/lib/gitlab/git/ssh_auth.rb %%DATADIR%%/ruby/lib/gitlab/git/submodule.rb %%DATADIR%%/ruby/lib/gitlab/git/tag.rb %%DATADIR%%/ruby/lib/gitlab/git/user.rb %%DATADIR%%/ruby/lib/gitlab/git/wiki.rb %%DATADIR%%/ruby/lib/gitlab/git/wiki_file.rb %%DATADIR%%/ruby/lib/gitlab/git/wiki_page.rb %%DATADIR%%/ruby/lib/gitlab/git/wiki_page_version.rb %%DATADIR%%/ruby/lib/gitlab/git_logger.rb %%DATADIR%%/ruby/lib/gitlab/gollum.rb %%DATADIR%%/ruby/lib/gitlab/rails_logger.rb %%DATADIR%%/ruby/lib/gitlab/ref_matcher.rb %%DATADIR%%/ruby/lib/gitlab/utils/strong_memoize.rb %%DATADIR%%/ruby/spec/factories/gitaly/commit.rb %%DATADIR%%/ruby/spec/factories/gitaly/commit_author.rb %%DATADIR%%/ruby/spec/factories/sequences.rb %%DATADIR%%/ruby/spec/gitaly/ref_service_spec.rb %%DATADIR%%/ruby/spec/gitaly/remote_service_spec.rb %%DATADIR%%/ruby/spec/gitaly/repository_service_spec.rb %%DATADIR%%/ruby/spec/lib/gitaly_server/exception_sanitizer_interceptor_spec.rb %%DATADIR%%/ruby/spec/lib/gitaly_server/rugged_interceptor_spec.rb %%DATADIR%%/ruby/spec/lib/gitaly_server/utils_spec.rb %%DATADIR%%/ruby/spec/lib/gitaly_server/sentry/url_sanitizer_spec.rb %%DATADIR%%/ruby/spec/lib/gitaly_server/sentry_interceptor_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/config_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/blob_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/branch_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/commit_patches_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/commit_spec.rb -%%DATADIR%%/ruby/spec/lib/gitlab/git/diff_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/gitlab_projects_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/hook_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/index_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/lfs_changes_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/popen_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/remote_mirror_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/remote_repository_client_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/remote_repository_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/repository_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/rev_list_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/ssh_auth_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/submodule_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/testdata/certs/gitalycert.pem %%DATADIR%%/ruby/spec/lib/gitlab/git/testdata/certs/gitalycert2.pem %%DATADIR%%/ruby/spec/lib/gitlab/git/testdata/certs/gitalycert3.pem %%DATADIR%%/ruby/spec/lib/gitlab/git/testdata/certs/gitalycertdup.pem %%DATADIR%%/ruby/spec/lib/gitlab/git/testdata/gitalycert.pem %%DATADIR%%/ruby/spec/lib/gitlab/git/user_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/git/wiki_spec.rb %%DATADIR%%/ruby/spec/lib/gitlab/ref_matcher_spec.rb %%DATADIR%%/ruby/spec/spec_helper.rb %%DATADIR%%/ruby/spec/support/generate-seed-repo-rb %%DATADIR%%/ruby/spec/support/helpers/certs/gitalycert.pem %%DATADIR%%/ruby/spec/support/helpers/certs/gitalykey.pem %%DATADIR%%/ruby/spec/support/helpers/gitlab_shell_helper.rb %%DATADIR%%/ruby/spec/support/helpers/integration_helper.rb %%DATADIR%%/ruby/spec/support/helpers/seed_repo.rb %%DATADIR%%/ruby/spec/support/sentry.rb %%DATADIR%%/ruby/spec/test_repo_helper.rb @(,,555) %%DATADIR%%/ruby/git-hooks/gitlab-shell-hook @(,,555) %%DATADIR%%/ruby/gitlab-shell/hooks/post-receive @(,,555) %%DATADIR%%/ruby/gitlab-shell/hooks/pre-receive @(,,555) %%DATADIR%%/ruby/gitlab-shell/hooks/update @(,,555) %%DATADIR%%/bin/gitaly @(,,555) %%DATADIR%%/bin/gitaly-debug @(,,555) %%DATADIR%%/bin/gitaly-ssh @(,,555) %%DATADIR%%/bin/gitaly-wrapper @(,,555) %%DATADIR%%/bin/praefect @sample %%DATADIR%%/config.toml.sample