Merge pull request #70216 from talyz/gitlab_12_3_2

gitlab: 12.1.6 -> 12.3.5, bundler: 1.17.2 -> 1.17.3
This commit is contained in:
Robin Gloster 2019-10-09 00:27:04 +02:00 committed by GitHub
commit eadeca9ea7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 17681 additions and 6421 deletions

View File

@ -1,32 +1,13 @@
{ {
"ce": { "version": "12.3.5",
"version": "12.1.6", "repo_hash": "12ywspgnbwm232vmzbqhkqmwmcrb9pvihsayzmw0cxvhlfwq6995",
"repo_hash": "0zyqxzyb1m8qa94iiyqf5ivqxrg60y378r94fsixy17fbh4y7sa6", "owner": "gitlab-org",
"deb_hash": "14bwcmwar44pjnjr6fdn2h9y92vyfva0kb76d4pz8pqc9pfm2hmg", "repo": "gitlab",
"deb_url": "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_12.1.6-ce.0_amd64.deb/download.deb", "rev": "v12.3.5-ee",
"owner": "gitlab-org", "passthru": {
"repo": "gitlab-ce", "GITALY_SERVER_VERSION": "1.65.1",
"rev": "v12.1.6", "GITLAB_PAGES_VERSION": "1.9.0",
"passthru": { "GITLAB_SHELL_VERSION": "10.0.0",
"GITALY_SERVER_VERSION": "1.53.2", "GITLAB_WORKHORSE_VERSION": "8.10.0"
"GITLAB_PAGES_VERSION": "1.7.1",
"GITLAB_SHELL_VERSION": "9.3.0",
"GITLAB_WORKHORSE_VERSION": "8.7.0"
}
},
"ee": {
"version": "12.1.6",
"repo_hash": "1lxci1hwcccgw567c5733yl95xsxr4gnw41m48igdw9y8p6g7zbc",
"deb_hash": "0yjilhf4bjhl1a596x6n4cvjklfbrwhymslhx977nfjazfb5slx3",
"deb_url": "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_12.1.6-ee.0_amd64.deb/download.deb",
"owner": "gitlab-org",
"repo": "gitlab-ee",
"rev": "v12.1.6-ee",
"passthru": {
"GITALY_SERVER_VERSION": "1.53.2",
"GITLAB_PAGES_VERSION": "1.7.1",
"GITLAB_SHELL_VERSION": "9.3.0",
"GITLAB_WORKHORSE_VERSION": "8.7.0"
}
} }
} }

View File

@ -1,13 +1,24 @@
{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv { stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
, ruby, tzdata, git, nettools, nixosTests , ruby, tzdata, git, nettools, nixosTests, nodejs
, gitlabEnterprise ? false , gitlabEnterprise ? false, callPackage, yarn
, yarn2nix-moretea
}: }:
let let
data = (builtins.fromJSON (builtins.readFile ./data.json));
version = data.version;
src = fetchFromGitLab {
owner = data.owner;
repo = data.repo;
rev = data.rev;
sha256 = data.repo_hash;
};
rubyEnv = bundlerEnv rec { rubyEnv = bundlerEnv rec {
name = "gitlab-env-${version}"; name = "gitlab-env-${version}";
inherit ruby; inherit ruby;
gemdir = ./rubyEnv- + (if gitlabEnterprise then "ee" else "ce"); gemdir = ./rubyEnv;
gemset = gemset =
let x = import (gemdir + "/gemset.nix"); let x = import (gemdir + "/gemset.nix");
in x // { in x // {
@ -19,35 +30,71 @@ let
}; };
}; };
groups = [ groups = [
"default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
]; ];
# N.B. omniauth_oauth2_generic and apollo_upload_server both provide a # N.B. omniauth_oauth2_generic and apollo_upload_server both provide a
# `console` executable. # `console` executable.
ignoreCollisions = true; ignoreCollisions = true;
}; };
flavour = if gitlabEnterprise then "ee" else "ce"; yarnOfflineCache = (callPackage ./yarnPkgs.nix {}).offline_cache;
data = (builtins.fromJSON (builtins.readFile ./data.json)).${flavour};
version = data.version; assets = stdenv.mkDerivation {
sources = { pname = "gitlab-assets";
gitlab = fetchFromGitLab { inherit version src;
owner = data.owner;
repo = data.repo; nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn ];
rev = data.rev;
sha256 = data.repo_hash; configurePhase = ''
}; runHook preConfigure
gitlabDeb = fetchurl {
url = data.deb_url; # Some rake tasks try to run yarn automatically, which won't work
sha256 = data.deb_hash; rm lib/tasks/yarn.rake
};
# The rake tasks won't run without a basic configuration in place
mv config/database.yml.env config/database.yml
mv config/gitlab.yml.example config/gitlab.yml
# Yarn and bundler wants a real home directory to write cache, config, etc to
export HOME=$NIX_BUILD_TOP/fake_home
# Make yarn install packages from our offline cache, not the registry
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
# Fixup "resolved"-entries in yarn.lock to match our offline cache
${yarn2nix-moretea.fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules/
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
bundle exec rake gettext:po_to_json RAILS_ENV=production NODE_ENV=production
bundle exec rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production
bundle exec rake webpack:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
bundle exec rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production
runHook postBuild
'';
installPhase = ''
runHook preInstall
mv public/assets $out
runHook postInstall
'';
}; };
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "gitlab${if gitlabEnterprise then "-ee" else ""}-${version}"; name = "gitlab${lib.optionalString gitlabEnterprise "-ee"}-${version}";
src = sources.gitlab; inherit src;
buildInputs = [ buildInputs = [
rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git nettools rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git nettools
@ -56,10 +103,15 @@ stdenv.mkDerivation {
patches = [ ./remove-hardcoded-locations.patch ]; patches = [ ./remove-hardcoded-locations.patch ];
postPatch = '' postPatch = ''
${lib.optionalString (!gitlabEnterprise) ''
# Remove all proprietary components
rm -rf ee
''}
# For reasons I don't understand "bundle exec" ignores the # For reasons I don't understand "bundle exec" ignores the
# RAILS_ENV causing tests to be executed that fail because we're # RAILS_ENV causing tests to be executed that fail because we're
# not installing development and test gems above. Deleting the # not installing development and test gems above. Deleting the
# tests works though.: # tests works though.
rm lib/tasks/test.rake rm lib/tasks/test.rake
rm config/initializers/gitlab_shell_secret_token.rb rm config/initializers/gitlab_shell_secret_token.rb
@ -69,27 +121,15 @@ stdenv.mkDerivation {
''; '';
buildPhase = '' buildPhase = ''
mv config/gitlab.yml.example config/gitlab.yml
# Building this requires yarn, node &c, so we just get it from the deb
ar p ${sources.gitlabDeb} data.tar.gz | gunzip > gitlab-deb-data.tar
# Work around unpacking deb containing binary with suid bit
tar -f gitlab-deb-data.tar --delete ./opt/gitlab/embedded/bin/ksu
tar -xf gitlab-deb-data.tar
rm gitlab-deb-data.tar
mv -v opt/gitlab/embedded/service/gitlab-rails/public/assets public
rm -rf opt # only directory in data.tar.gz
mv config/gitlab.yml config/gitlab.yml.example
rm -f config/secrets.yml rm -f config/secrets.yml
mv config config.dist mv config config.dist
rm -r tmp
''; '';
installPhase = '' installPhase = ''
rm -r tmp
mkdir -p $out/share mkdir -p $out/share
cp -r . $out/share/gitlab cp -r . $out/share/gitlab
ln -sf ${assets} $out/share/gitlab/public/assets
rm -rf $out/share/gitlab/log rm -rf $out/share/gitlab/log
ln -sf /run/gitlab/log $out/share/gitlab/log ln -sf /run/gitlab/log $out/share/gitlab/log
ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads
@ -102,7 +142,7 @@ stdenv.mkDerivation {
''; '';
passthru = { passthru = {
inherit rubyEnv; inherit rubyEnv assets;
ruby = rubyEnv.wrappedRuby; ruby = rubyEnv.wrappedRuby;
GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION; GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION;
GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION; GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION;
@ -116,7 +156,7 @@ stdenv.mkDerivation {
meta = with lib; { meta = with lib; {
homepage = http://www.gitlab.com/; homepage = http://www.gitlab.com/;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ fpletz globin krav ]; maintainers = with maintainers; [ fpletz globin krav talyz ];
} // (if gitlabEnterprise then } // (if gitlabEnterprise then
{ {
license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE

View File

@ -6,8 +6,7 @@ gem 'bundler', '>= 1.17.3'
gem 'rugged', '~> 0.28' gem 'rugged', '~> 0.28'
gem 'github-linguist', '~> 6.1', require: 'linguist' gem 'github-linguist', '~> 6.1', require: 'linguist'
gem 'gitlab-markup', '~> 1.7.0' gem 'gitlab-markup', '~> 1.7.0'
gem 'activesupport', '~> 5.1.7' gem 'activesupport', '~> 5.2.3'
gem 'gitaly-proto', '~> 1.36.0'
gem 'rdoc', '~> 4.2' gem 'rdoc', '~> 4.2'
gem 'gitlab-gollum-lib', '~> 4.2.7.7', require: false gem 'gitlab-gollum-lib', '~> 4.2.7.7', require: false
gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false
@ -17,7 +16,7 @@ gem 'faraday', '~> 0.12'
gem 'rbtrace', require: false gem 'rbtrace', require: false
# Labkit provides observability functionality # Labkit provides observability functionality
gem 'gitlab-labkit', '~> 0.3.0' gem 'gitlab-labkit', '~> 0.5.0'
# Detects the open source license the repository includes # Detects the open source license the repository includes
# This version needs to be in sync with GitLab CE/EE # This version needs to be in sync with GitLab CE/EE

View File

@ -2,20 +2,20 @@ GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
abstract_type (0.0.7) abstract_type (0.0.7)
actionpack (5.1.7) actionpack (5.2.3)
actionview (= 5.1.7) actionview (= 5.2.3)
activesupport (= 5.1.7) activesupport (= 5.2.3)
rack (~> 2.0) rack (~> 2.0)
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2) rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.1.7) actionview (5.2.3)
activesupport (= 5.1.7) activesupport (= 5.2.3)
builder (~> 3.1) builder (~> 3.1)
erubi (~> 1.4) erubi (~> 1.4)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3) rails-html-sanitizer (~> 1.0, >= 1.0.3)
activesupport (5.1.7) activesupport (5.2.3)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2) i18n (>= 0.7, < 2)
minitest (~> 5.1) minitest (~> 5.1)
@ -46,11 +46,9 @@ GEM
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
faraday (0.15.4) faraday (0.15.4)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
ffi (1.10.0) ffi (1.11.1)
gemojione (3.3.0) gemojione (3.3.0)
json json
gitaly-proto (1.36.0)
grpc (~> 1.0)
github-linguist (6.4.1) github-linguist (6.4.1)
charlock_holmes (~> 0.7.6) charlock_holmes (~> 0.7.6)
escape_utils (~> 1.2.0) escape_utils (~> 1.2.0)
@ -73,12 +71,13 @@ GEM
diff-lcs (~> 1.1) diff-lcs (~> 1.1)
mime-types (>= 1.16) mime-types (>= 1.16)
posix-spawn (~> 0.3) posix-spawn (~> 0.3)
gitlab-labkit (0.3.0) gitlab-labkit (0.5.2)
actionpack (~> 5) actionpack (~> 5)
activesupport (~> 5) activesupport (~> 5)
grpc (~> 1.19.0) grpc (~> 1.19)
jaeger-client (~> 0.10) jaeger-client (~> 0.10)
opentracing (~> 0.4) opentracing (~> 0.4)
redis (> 3.0.0, < 5.0.0)
gitlab-markup (1.7.0) gitlab-markup (1.7.0)
gollum-grit_adapter (1.0.1) gollum-grit_adapter (1.0.1)
gitlab-grit (~> 2.7, >= 2.7.1) gitlab-grit (~> 2.7, >= 2.7.1)
@ -111,10 +110,10 @@ GEM
mime-types-data (3.2019.0331) mime-types-data (3.2019.0331)
mini_portile2 (2.4.0) mini_portile2 (2.4.0)
minitest (5.11.3) minitest (5.11.3)
msgpack (1.2.10) msgpack (1.3.0)
multi_json (1.13.1) multi_json (1.13.1)
multipart-post (2.0.0) multipart-post (2.0.0)
nokogiri (1.10.3) nokogiri (1.10.4)
mini_portile2 (~> 2.4.0) mini_portile2 (~> 2.4.0)
nokogumbo (1.5.0) nokogumbo (1.5.0)
nokogiri nokogiri
@ -139,7 +138,7 @@ GEM
rails-dom-testing (2.0.3) rails-dom-testing (2.0.3)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.0.4) rails-html-sanitizer (1.2.0)
loofah (~> 2.2, >= 2.2.2) loofah (~> 2.2, >= 2.2.2)
rainbow (3.0.0) rainbow (3.0.0)
rbtrace (0.4.11) rbtrace (0.4.11)
@ -147,7 +146,8 @@ GEM
msgpack (>= 0.4.3) msgpack (>= 0.4.3)
optimist (>= 3.0.0) optimist (>= 3.0.0)
rdoc (4.3.0) rdoc (4.3.0)
rouge (3.5.1) redis (4.1.2)
rouge (3.11.0)
rspec (3.8.0) rspec (3.8.0)
rspec-core (~> 3.8.0) rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0) rspec-expectations (~> 3.8.0)
@ -175,7 +175,7 @@ GEM
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 1.7) unicode-display_width (>= 1.4.0, < 1.7)
ruby-progressbar (1.10.0) ruby-progressbar (1.10.0)
rugged (0.28.1) rugged (0.28.3.1)
safe_yaml (1.0.5) safe_yaml (1.0.5)
sanitize (4.6.6) sanitize (4.6.6)
crass (~> 1.0.2) crass (~> 1.0.2)
@ -213,15 +213,14 @@ PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
activesupport (~> 5.1.7) activesupport (~> 5.2.3)
bundler (>= 1.17.3) bundler (>= 1.17.3)
factory_bot factory_bot
faraday (~> 0.12) faraday (~> 0.12)
gitaly-proto (~> 1.36.0)
github-linguist (~> 6.1) github-linguist (~> 6.1)
gitlab-gollum-lib (~> 4.2.7.7) gitlab-gollum-lib (~> 4.2.7.7)
gitlab-gollum-rugged_adapter (~> 0.4.4.2) gitlab-gollum-rugged_adapter (~> 0.4.4.2)
gitlab-labkit (~> 0.3.0) gitlab-labkit (~> 0.5.0)
gitlab-markup (~> 1.7.0) gitlab-markup (~> 1.7.0)
google-protobuf (~> 3.7.1) google-protobuf (~> 3.7.1)
grpc (~> 1.19.0) grpc (~> 1.19.0)

View File

@ -17,14 +17,14 @@ let
}; };
}; };
in buildGoPackage rec { in buildGoPackage rec {
version = "1.53.2"; version = "1.65.1";
pname = "gitaly"; pname = "gitaly";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitaly"; repo = "gitaly";
rev = "v${version}"; rev = "v${version}";
sha256 = "0x4dhqaxx6n5jlcvf69rglxiz11037ghgcnskks6qnlcbkd85j3d"; sha256 = "1a39i723na2xk4363a7v48ba23vi04qpg0119dw09g13m0k5hjc3";
}; };
goPackagePath = "gitlab.com/gitlab-org/gitaly"; goPackagePath = "gitlab.com/gitlab-org/gitaly";
@ -40,7 +40,7 @@ in buildGoPackage rec {
postInstall = '' postInstall = ''
mkdir -p $ruby mkdir -p $ruby
cp -rv $src/ruby/{bin,lib,git-hooks,gitlab-shell} $ruby cp -rv $src/ruby/{bin,lib,proto,git-hooks,gitlab-shell} $ruby
# gitlab-shell will try to read its config relative to the source # gitlab-shell will try to read its config relative to the source
# code by default which doesn't work in nixos because it's a # code by default which doesn't work in nixos because it's a

View File

@ -270,6 +270,33 @@
sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9"; sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
}; };
} }
{
goPackagePath = "github.com/kr/pretty";
fetch = {
type = "git";
url = "https://github.com/kr/pretty";
rev = "v0.1.0";
sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
};
}
{
goPackagePath = "github.com/kr/pty";
fetch = {
type = "git";
url = "https://github.com/kr/pty";
rev = "v1.1.1";
sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
};
}
{
goPackagePath = "github.com/kr/text";
fetch = {
type = "git";
url = "https://github.com/kr/text";
rev = "v0.1.0";
sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
};
}
{ {
goPackagePath = "github.com/libgit2/git2go"; goPackagePath = "github.com/libgit2/git2go";
fetch = { fetch = {
@ -477,15 +504,6 @@
sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q"; sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q";
}; };
} }
{
goPackagePath = "gitlab.com/gitlab-org/gitaly-proto";
fetch = {
type = "git";
url = "https://gitlab.com/gitlab-org/gitaly-proto.git";
rev = "v1.36.0";
sha256 = "0xma8ys3lf1bdhlkmcis31xs1h1dshcr5796wwfwnzijwk6422m3";
};
}
{ {
goPackagePath = "gitlab.com/gitlab-org/labkit"; goPackagePath = "gitlab.com/gitlab-org/labkit";
fetch = { fetch = {
@ -509,8 +527,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/crypto"; url = "https://go.googlesource.com/crypto";
rev = "c2843e01d9a2"; rev = "20be4c3c3ed5";
sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r"; sha256 = "1ph7y8v30hc95h1dwr7vrhg1nzs47a261qin6zg8mhf12g5k2lxb";
}; };
} }
{ {
@ -554,8 +572,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://go.googlesource.com/sys"; url = "https://go.googlesource.com/sys";
rev = "d0b11bdaac8a"; rev = "953cdadca894";
sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl"; sha256 = "0gkha4whk8xkcv3isigbs250akag99isxnd3v9xmy0kl3g88hxy1";
}; };
} }
{ {
@ -626,8 +644,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://gopkg.in/check.v1"; url = "https://gopkg.in/check.v1";
rev = "20d25e280405"; rev = "788fd7840127";
sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"; sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
}; };
} }
{ {

View File

@ -13,10 +13,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0zyi3dc50ii2msdkawaf11y4xw645ig57ha2jfnr8lpr8s1nlh52"; sha256 = "1s2iay17i2k0xx36cmnpbrmr5w6x70jk7fq1d8w70xcdw5chm0w1";
type = "gem"; type = "gem";
}; };
version = "5.1.7"; version = "5.2.3";
}; };
actionview = { actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@ -24,10 +24,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0i2j580njb767yhf0k5ih3qqg38ybiah80ai8dsr6kjjw35aj747"; sha256 = "1v49rgf8305grqf6gq7qa47qhamr369igyy0giycz60x86afyr4h";
type = "gem"; type = "gem";
}; };
version = "5.1.7"; version = "5.2.3";
}; };
activesupport = { activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@ -35,10 +35,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0znhiy90hdlx66jqhaycin4qrphrymsw68c36a1an7g481zvfv91"; sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
type = "gem"; type = "gem";
}; };
version = "5.1.7"; version = "5.2.3";
}; };
adamantium = { adamantium = {
dependencies = ["ice_nine" "memoizable"]; dependencies = ["ice_nine" "memoizable"];
@ -205,12 +205,14 @@
version = "0.15.4"; version = "0.15.4";
}; };
ffi = { ffi = {
groups = ["default"];
platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
type = "gem"; type = "gem";
}; };
version = "1.10.0"; version = "1.11.1";
}; };
gemojione = { gemojione = {
dependencies = ["json"]; dependencies = ["json"];
@ -221,17 +223,6 @@
}; };
version = "3.3.0"; version = "3.3.0";
}; };
gitaly-proto = {
dependencies = ["grpc"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11bkrf2z5ppp55cipawdpinrva42x12grp2gl1dp1jdb35crqick";
type = "gem";
};
version = "1.36.0";
};
github-linguist = { github-linguist = {
dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"]; dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"];
groups = ["default"]; groups = ["default"];
@ -283,15 +274,15 @@
version = "2.8.2"; version = "2.8.2";
}; };
gitlab-labkit = { gitlab-labkit = {
dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing"]; dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0dvapmdc9axm9dq2gg89qrqb318rkrsabpyybrqvcx1ipbi5k3a1"; sha256 = "1j06gl4ksd83rycg3fb46bb77iw74i1ivs5li6pyf5klrxjq8k3h";
type = "gem"; type = "gem";
}; };
version = "0.3.0"; version = "0.5.2";
}; };
gitlab-markup = { gitlab-markup = {
groups = ["default"]; groups = ["default"];
@ -489,10 +480,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1w38hilm3dk42dwk8ygiq49bl4in7y80hfqr63hk54mj4gmzi6ch"; sha256 = "1186lhwnxiw5ryv6dbxrsfy0fajfll2l95kf9pmca50iyiqi86zn";
type = "gem"; type = "gem";
}; };
version = "1.2.10"; version = "1.3.0";
}; };
multi_json = { multi_json = {
source = { source = {
@ -516,10 +507,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4"; sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
type = "gem"; type = "gem";
}; };
version = "1.10.3"; version = "1.10.4";
}; };
nokogumbo = { nokogumbo = {
dependencies = ["nokogiri"]; dependencies = ["nokogiri"];
@ -649,10 +640,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; sha256 = "0ilwxzm3a7bql5c9q2n9g9nb1hax7vd8d65a5yp3d967ld97nvrq";
type = "gem"; type = "gem";
}; };
version = "1.0.4"; version = "1.2.0";
}; };
rainbow = { rainbow = {
source = { source = {
@ -679,15 +670,25 @@
}; };
version = "4.3.0"; version = "4.3.0";
}; };
redis = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mymdx7s5sr4mablklaipz679ckczsiigswm1g2v5mc93yj5amw3";
type = "gem";
};
version = "4.1.2";
};
rouge = { rouge = {
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q"; sha256 = "1zsyv6abqrk7lpql5f1ja4m88bfy9qndi8xykpss6cpvjdmi3ydb";
type = "gem"; type = "gem";
}; };
version = "3.5.1"; version = "3.11.0";
}; };
rspec = { rspec = {
dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@ -778,10 +779,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1yiszpz6y13vvgh3fss1l0ipp0zgsbbc8c28vynnpdyx1sy6krp6"; sha256 = "03w3k7j27kgzpcc3halkd3w0b677sny2lfwm2lwn2n1ac20dzjc6";
type = "gem"; type = "gem";
}; };
version = "0.28.1"; version = "0.28.3.1";
}; };
safe_yaml = { safe_yaml = {
groups = ["default" "development" "test"]; groups = ["default" "development" "test"];

View File

@ -0,0 +1,12 @@
source 'https://rubygems.org'
group :development, :test do
gem 'listen', '~> 0.5.0'
gem 'pry', '~> 0.12.2'
gem 'rspec', '~> 3.8.0'
gem 'rspec-parameterized', '~> 0.4.0'
gem 'rubocop', '0.49.1', require: false
gem 'simplecov', '~> 0.9.0', require: false
gem 'vcr', '~> 4.0.0'
gem 'webmock', '~> 3.4.0'
end

View File

@ -0,0 +1,109 @@
GEM
remote: https://rubygems.org/
specs:
abstract_type (0.0.7)
adamantium (0.2.0)
ice_nine (~> 0.11.0)
memoizable (~> 0.4.0)
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
ast (2.4.0)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
coderay (1.1.2)
concord (0.1.5)
adamantium (~> 0.2.0)
equalizer (~> 0.0.9)
crack (0.4.3)
safe_yaml (~> 1.0.0)
debug_inspector (0.0.3)
diff-lcs (1.3)
docile (1.1.5)
equalizer (0.0.11)
hashdiff (0.3.7)
ice_nine (0.11.2)
listen (0.5.3)
memoizable (0.4.2)
thread_safe (~> 0.3, >= 0.3.1)
method_source (0.9.2)
multi_json (1.13.1)
parallel (1.12.1)
parser (2.5.1.2)
ast (~> 2.4.0)
powerpack (0.1.2)
proc_to_ast (0.1.0)
coderay
parser
unparser
procto (0.0.3)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
public_suffix (3.0.3)
rainbow (2.2.2)
rake
rake (12.3.3)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-core (3.8.0)
rspec-support (~> 3.8.0)
rspec-expectations (3.8.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-mocks (3.8.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-parameterized (0.4.0)
binding_of_caller
parser
proc_to_ast
rspec (>= 2.13, < 4)
unparser
rspec-support (3.8.0)
rubocop (0.49.1)
parallel (~> 1.10)
parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.9.0)
safe_yaml (1.0.4)
simplecov (0.9.2)
docile (~> 1.1.0)
multi_json (~> 1.0)
simplecov-html (~> 0.9.0)
simplecov-html (0.9.0)
thread_safe (0.3.6)
unicode-display_width (1.4.0)
unparser (0.2.8)
abstract_type (~> 0.0.7)
adamantium (~> 0.2.0)
concord (~> 0.1.5)
diff-lcs (~> 1.3)
equalizer (~> 0.0.9)
parser (>= 2.3.1.2, < 2.6)
procto (~> 0.0.2)
vcr (4.0.0)
webmock (3.4.2)
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff
PLATFORMS
ruby
DEPENDENCIES
listen (~> 0.5.0)
pry (~> 0.12.2)
rspec (~> 3.8.0)
rspec-parameterized (~> 0.4.0)
rubocop (= 0.49.1)
simplecov (~> 0.9.0)
vcr (~> 4.0.0)
webmock (~> 3.4.0)
BUNDLED WITH
1.16.3

View File

@ -1,47 +1,72 @@
{ stdenv, ruby, bundler, fetchFromGitLab, go }: { stdenv, ruby, bundler, fetchFromGitLab, buildGoPackage, bundlerEnv }:
stdenv.mkDerivation rec {
version = "9.3.0";
pname = "gitlab-shell";
let
version = "10.0.0";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-shell"; repo = "gitlab-shell";
rev = "v${version}"; rev = "v${version}";
sha256 = "1r000h4sgplx7giqvqs5iy0zh3drf6qa1iiq0mxlk3h9fshs1348"; sha256 = "0n1llkb0jrqxm10l9wqmqxjycydqphgz0chbbf395d8pywyz826x";
}; };
rubyEnv = bundlerEnv {
name = "gitlab-shell-env";
inherit ruby;
gemdir = ./.;
};
goPackage = buildGoPackage {
pname = "gitlab-shell-go";
inherit src version;
buildInputs = [ ruby bundler go ]; patches = [ ./remove-hardcoded-locations-go.patch ];
patches = [ ./remove-hardcoded-locations.patch ]; goPackagePath = "gitlab.com/gitlab-org/gitlab-shell";
goDeps = ./deps.nix;
installPhase = '' # gitlab-shell depends on an older version of gitaly which
export GOCACHE="$TMPDIR/go-cache" # contains old, vendored versions of some packages; gitlab-shell
# also explicitly depends on newer versions of these libraries,
# but buildGoPackage exposes the vendored versions instead,
# leading to compilation errors. Since the vendored libraries
# aren't used here anyway, we'll just remove them.
postConfigure = ''
rm -r "$NIX_BUILD_TOP/go/src/gitlab.com/gitlab-org/gitaly/vendor/"
'';
};
in
stdenv.mkDerivation {
pname = "gitlab-shell";
inherit src version;
ruby bin/compile patches = [ ./remove-hardcoded-locations-ruby.patch ];
mkdir -p $out/
cp -R . $out/
# Nothing to install ATM for non-development but keeping the
# install command anyway in case that changes in the future:
export HOME=$(pwd)
bundle install -j4 --verbose --local --deployment --without development test
'';
# gitlab-shell will try to read its config relative to the source # gitlab-shell will try to read its config relative to the source
# code by default which doesn't work in nixos because it's a # code by default which doesn't work in nixos because it's a
# read-only filesystem # read-only filesystem
postPatch = '' postPatch = ''
substituteInPlace lib/gitlab_config.rb --replace \ substituteInPlace lib/gitlab_config.rb --replace \
"File.join(ROOT_PATH, 'config.yml')" \ "File.join(ROOT_PATH, 'config.yml')" \
"'/run/gitlab/shell-config.yml'" "'/run/gitlab/shell-config.yml'"
'';
buildInputs = [ rubyEnv.wrappedRuby ];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/
cp -R . $out/
cp ${goPackage.bin}/bin/* $out/bin/
runHook postInstall
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "SSH access and repository management app for GitLab"; description = "SSH access and repository management app for GitLab";
homepage = http://www.gitlab.com/; homepage = http://www.gitlab.com/;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ fpletz globin ]; maintainers = with maintainers; [ fpletz globin talyz ];
license = licenses.mit; license = licenses.mit;
}; };
} }

View File

@ -0,0 +1,507 @@
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
[
{
goPackagePath = "bou.ke/monkey";
fetch = {
type = "git";
url = "https://github.com/bouk/monkey";
rev = "v1.0.1";
sha256 = "050y07pwx5zk7fchp0lhf35w417sml7lxkkzly8f932fy25rydz5";
};
}
{
goPackagePath = "cloud.google.com/go";
fetch = {
type = "git";
url = "https://code.googlesource.com/gocloud";
rev = "v0.26.0";
sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
};
}
{
goPackagePath = "github.com/certifi/gocertifi";
fetch = {
type = "git";
url = "https://github.com/certifi/gocertifi";
rev = "ee1a9a0726d2";
sha256 = "08l6lqaw83pva6fa0aafmhmy1mhb145av21772zfh3ij809a37i4";
};
}
{
goPackagePath = "github.com/client9/misspell";
fetch = {
type = "git";
url = "https://github.com/client9/misspell";
rev = "v0.3.4";
sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
};
}
{
goPackagePath = "github.com/codahale/hdrhistogram";
fetch = {
type = "git";
url = "https://github.com/codahale/hdrhistogram";
rev = "3a0bb77429bd";
sha256 = "1zampgfjbxy192cbwdi7g86l1idxaam96d834wncnpfdwgh5kl57";
};
}
{
goPackagePath = "github.com/davecgh/go-spew";
fetch = {
type = "git";
url = "https://github.com/davecgh/go-spew";
rev = "v1.1.1";
sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
};
}
{
goPackagePath = "github.com/fsnotify/fsnotify";
fetch = {
type = "git";
url = "https://github.com/fsnotify/fsnotify";
rev = "v1.4.7";
sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
};
}
{
goPackagePath = "github.com/getsentry/raven-go";
fetch = {
type = "git";
url = "https://github.com/getsentry/raven-go";
rev = "v0.1.0";
sha256 = "1dl80kar4lzdcfl3w6jssi1ld6bv0rmx6sp6bz6rzysfr9ilm02z";
};
}
{
goPackagePath = "github.com/gogo/protobuf";
fetch = {
type = "git";
url = "https://github.com/gogo/protobuf";
rev = "v1.1.1";
sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
};
}
{
goPackagePath = "github.com/golang/glog";
fetch = {
type = "git";
url = "https://github.com/golang/glog";
rev = "23def4e6c14b";
sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
};
}
{
goPackagePath = "github.com/golang/lint";
fetch = {
type = "git";
url = "https://github.com/golang/lint";
rev = "06c8688daad7";
sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
};
}
{
goPackagePath = "github.com/golang/mock";
fetch = {
type = "git";
url = "https://github.com/golang/mock";
rev = "v1.1.1";
sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
};
}
{
goPackagePath = "github.com/golang/protobuf";
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
rev = "v1.2.0";
sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
};
}
{
goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
fetch = {
type = "git";
url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
rev = "v1.0.0";
sha256 = "0lwgxih021xfhfb1xb9la5f98bpgpaiz63sbllx77qwwl2rmhrsp";
};
}
{
goPackagePath = "github.com/hpcloud/tail";
fetch = {
type = "git";
url = "https://github.com/hpcloud/tail";
rev = "v1.0.0";
sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
};
}
{
goPackagePath = "github.com/kisielk/gotool";
fetch = {
type = "git";
url = "https://github.com/kisielk/gotool";
rev = "v1.0.0";
sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
};
}
{
goPackagePath = "github.com/lightstep/lightstep-tracer-go";
fetch = {
type = "git";
url = "https://github.com/lightstep/lightstep-tracer-go";
rev = "v0.15.6";
sha256 = "10n5r66g44s6rnz5kf86s4a3p1g55kc1kxqhnk7bx7mlayndgpmb";
};
}
{
goPackagePath = "github.com/mattn/go-shellwords";
fetch = {
type = "git";
url = "https://github.com/mattn/go-shellwords";
rev = "2444a32a19f4";
sha256 = "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d";
};
}
{
goPackagePath = "github.com/onsi/ginkgo";
fetch = {
type = "git";
url = "https://github.com/onsi/ginkgo";
rev = "v1.7.0";
sha256 = "14wgpdrvpc35rdz3859bz53sc1g4vpr1fysy15wy3ff9gmqs14yg";
};
}
{
goPackagePath = "github.com/onsi/gomega";
fetch = {
type = "git";
url = "https://github.com/onsi/gomega";
rev = "v1.4.3";
sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v";
};
}
{
goPackagePath = "github.com/opentracing/opentracing-go";
fetch = {
type = "git";
url = "https://github.com/opentracing/opentracing-go";
rev = "v1.0.2";
sha256 = "0i0ghg94dg8lk05mw5n23983wq04yjvkjmdkc9z5y1f3508938h9";
};
}
{
goPackagePath = "github.com/otiai10/copy";
fetch = {
type = "git";
url = "https://github.com/otiai10/copy";
rev = "v1.0.1";
sha256 = "0xmy0kfcx48q10s040579pcjswfaxlwhv7a2z07z9r92fdrgw03k";
};
}
{
goPackagePath = "github.com/otiai10/curr";
fetch = {
type = "git";
url = "https://github.com/otiai10/curr";
rev = "f5a3d24e5776";
sha256 = "01k33ifs9n0pnhwhbfb9ws3q5sa37fi7dhir5vjakpfzdin07y4w";
};
}
{
goPackagePath = "github.com/otiai10/mint";
fetch = {
type = "git";
url = "https://github.com/otiai10/mint";
rev = "v1.2.4";
sha256 = "1mf7b8h3akxbpj1rf3nk0ccqk5idd6z2gh9gm31phr7ll4gykn2m";
};
}
{
goPackagePath = "github.com/philhofer/fwd";
fetch = {
type = "git";
url = "https://github.com/philhofer/fwd";
rev = "v1.0.0";
sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "v0.8.0";
sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
};
}
{
goPackagePath = "github.com/pmezard/go-difflib";
fetch = {
type = "git";
url = "https://github.com/pmezard/go-difflib";
rev = "v1.0.0";
sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
};
}
{
goPackagePath = "github.com/sirupsen/logrus";
fetch = {
type = "git";
url = "https://github.com/sirupsen/logrus";
rev = "v1.0.5";
sha256 = "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz";
};
}
{
goPackagePath = "github.com/stretchr/testify";
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
rev = "v1.2.2";
sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
};
}
{
goPackagePath = "github.com/tinylib/msgp";
fetch = {
type = "git";
url = "https://github.com/tinylib/msgp";
rev = "v1.0.2";
sha256 = "0pypfknghg1hcjjrqz3f1riaylk6hcxn9h0qyzynb74rp0qmlxjc";
};
}
{
goPackagePath = "github.com/uber-go/atomic";
fetch = {
type = "git";
url = "https://github.com/uber-go/atomic";
rev = "v1.3.2";
sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
};
}
{
goPackagePath = "github.com/uber/jaeger-client-go";
fetch = {
type = "git";
url = "https://github.com/uber/jaeger-client-go";
rev = "v2.15.0";
sha256 = "0ki23m9zrf3vxp839fnp9ckr4m28y6mpad8g5s5lr5k8jkl0sfwj";
};
}
{
goPackagePath = "github.com/uber/jaeger-lib";
fetch = {
type = "git";
url = "https://github.com/uber/jaeger-lib";
rev = "v1.5.0";
sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q";
};
}
{
goPackagePath = "gitlab.com/gitlab-org/gitaly";
fetch = {
type = "git";
url = "https://gitlab.com/gitlab-org/gitaly.git";
rev = "v1.7.0";
sha256 = "1hhiyw1ag22mgn6chp8lf29y2fgj90xyb7wjd6s30hayqja7knh1";
};
}
{
goPackagePath = "gitlab.com/gitlab-org/gitaly-proto";
fetch = {
type = "git";
url = "https://gitlab.com/gitlab-org/gitaly-proto.git";
rev = "v1.12.0";
sha256 = "02aqw1q8n84v4f3rc0x7hsg0gkmbqkznp9cl6vrhjvsisv38v695";
};
}
{
goPackagePath = "gitlab.com/gitlab-org/labkit";
fetch = {
type = "git";
url = "https://gitlab.com/gitlab-org/labkit.git";
rev = "0c3fc7cdd57c";
sha256 = "0fpn37v7dhhdgd63v4mq9cna9wdzrsfams13qmjmps3xpdw2wr9i";
};
}
{
goPackagePath = "go.uber.org/atomic";
fetch = {
type = "git";
url = "https://github.com/uber-go/atomic";
rev = "v1.3.2";
sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "182114d58262";
sha256 = "0dhagsjpk3wn2f7w148v0h9i651jpk4c0mlsy5sihcnmqz8s764l";
};
}
{
goPackagePath = "golang.org/x/lint";
fetch = {
type = "git";
url = "https://go.googlesource.com/lint";
rev = "06c8688daad7";
sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "10aee1819953";
sha256 = "1rd6y0fr2gqhx3bsy0ahnacqzbxijkx8wyfmamrb3wbzc01091rl";
};
}
{
goPackagePath = "golang.org/x/oauth2";
fetch = {
type = "git";
url = "https://go.googlesource.com/oauth2";
rev = "d2e6202438be";
sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
};
}
{
goPackagePath = "golang.org/x/sync";
fetch = {
type = "git";
url = "https://go.googlesource.com/sync";
rev = "1d60e4601c6f";
sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "70b957f3b65e";
sha256 = "146jwkr39asigqbsnsigxpkpb4vydld4k9q34xvvw0bp10qzjxxw";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "v0.3.0";
sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
};
}
{
goPackagePath = "golang.org/x/tools";
fetch = {
type = "git";
url = "https://go.googlesource.com/tools";
rev = "6cd1fcedba52";
sha256 = "00hl0vkmy8impsnmc2dmm55sdhia95k0kqcrjbdpynryn1lamn5d";
};
}
{
goPackagePath = "google.golang.org/appengine";
fetch = {
type = "git";
url = "https://github.com/golang/appengine";
rev = "v1.1.0";
sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
};
}
{
goPackagePath = "google.golang.org/genproto";
fetch = {
type = "git";
url = "https://github.com/google/go-genproto";
rev = "bd91e49a0898";
sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
};
}
{
goPackagePath = "google.golang.org/grpc";
fetch = {
type = "git";
url = "https://github.com/grpc/grpc-go";
rev = "v1.16.0";
sha256 = "0a9xl6c5j7lvsb4q6ry5p892rjm86p47d4f8xrf0r8lxblf79qbg";
};
}
{
goPackagePath = "gopkg.in/DataDog/dd-trace-go.v1";
fetch = {
type = "git";
url = "https://gopkg.in/DataDog/dd-trace-go.v1";
rev = "v1.9.0";
sha256 = "1zfbsmm8fbcwhd6j28q3ijyswn1d3dyhydx3ckqpkkp6qiam3c2j";
};
}
{
goPackagePath = "gopkg.in/airbrake/gobrake.v2";
fetch = {
type = "git";
url = "https://gopkg.in/airbrake/gobrake.v2";
rev = "v2.0.9";
sha256 = "1x06f7n7qlyzqgyz0sdfcidf3w4ldn6zs6qx2mhibggk2z4whcjw";
};
}
{
goPackagePath = "gopkg.in/check.v1";
fetch = {
type = "git";
url = "https://gopkg.in/check.v1";
rev = "20d25e280405";
sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
};
}
{
goPackagePath = "gopkg.in/fsnotify.v1";
fetch = {
type = "git";
url = "https://gopkg.in/fsnotify.v1";
rev = "v1.4.7";
sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
};
}
{
goPackagePath = "gopkg.in/gemnasium/logrus-airbrake-hook.v2";
fetch = {
type = "git";
url = "https://gopkg.in/gemnasium/logrus-airbrake-hook.v2";
rev = "v2.1.2";
sha256 = "0sbg0dn6cysmf8f2bi209jwl4jnpiwp4rdghnxlzirw3c32ms5y5";
};
}
{
goPackagePath = "gopkg.in/tomb.v1";
fetch = {
type = "git";
url = "https://gopkg.in/tomb.v1";
rev = "dd632973f1e7";
sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "v2.2.1";
sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
};
}
{
goPackagePath = "honnef.co/go/tools";
fetch = {
type = "git";
url = "https://github.com/dominikh/go-tools";
rev = "88497007e858";
sha256 = "0rinkyx3r2bq45mgcasnn5jb07cwbv3p3s2wwcrzxsarsj6wa5lc";
};
}
]

View File

@ -0,0 +1,451 @@
{
abstract_type = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
type = "gem";
};
version = "0.0.7";
};
adamantium = {
dependencies = ["ice_nine" "memoizable"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
type = "gem";
};
version = "0.2.0";
};
addressable = {
dependencies = ["public_suffix"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
type = "gem";
};
version = "2.5.2";
};
ast = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
type = "gem";
};
version = "2.4.0";
};
binding_of_caller = {
dependencies = ["debug_inspector"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
type = "gem";
};
version = "0.8.0";
};
coderay = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
type = "gem";
};
version = "1.1.2";
};
concord = {
dependencies = ["adamantium" "equalizer"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
type = "gem";
};
version = "0.1.5";
};
crack = {
dependencies = ["safe_yaml"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
type = "gem";
};
version = "0.4.3";
};
debug_inspector = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
type = "gem";
};
version = "0.0.3";
};
diff-lcs = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
type = "gem";
};
version = "1.3";
};
docile = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
type = "gem";
};
version = "1.1.5";
};
equalizer = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
type = "gem";
};
version = "0.0.11";
};
hashdiff = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
type = "gem";
};
version = "0.3.7";
};
ice_nine = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
type = "gem";
};
version = "0.11.2";
};
listen = {
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0inlw7vix61170vjr87h9izhjm5dbby8rbfrf1iryiv7b3kyvkxl";
type = "gem";
};
version = "0.5.3";
};
memoizable = {
dependencies = ["thread_safe"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
type = "gem";
};
version = "0.4.2";
};
method_source = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
type = "gem";
};
version = "0.9.2";
};
multi_json = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
type = "gem";
};
version = "1.13.1";
};
parallel = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
type = "gem";
};
version = "1.12.1";
};
parser = {
dependencies = ["ast"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1zp89zg7iypncszxsjp8kiccrpbdf728jl449g6cnfkz990fyb5k";
type = "gem";
};
version = "2.5.1.2";
};
powerpack = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
type = "gem";
};
version = "0.1.2";
};
proc_to_ast = {
dependencies = ["coderay" "parser" "unparser"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
type = "gem";
};
version = "0.1.0";
};
procto = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
type = "gem";
};
version = "0.0.3";
};
pry = {
dependencies = ["coderay" "method_source"];
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
type = "gem";
};
version = "0.12.2";
};
public_suffix = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
type = "gem";
};
version = "3.0.3";
};
rainbow = {
dependencies = ["rake"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08w2ghc5nv0kcq5b257h7dwjzjz1pqcavajfdx2xjyxqsvh2y34w";
type = "gem";
};
version = "2.2.2";
};
rake = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp";
type = "gem";
};
version = "12.3.3";
};
rspec = {
dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
type = "gem";
};
version = "3.8.0";
};
rspec-core = {
dependencies = ["rspec-support"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p";
type = "gem";
};
version = "3.8.0";
};
rspec-expectations = {
dependencies = ["diff-lcs" "rspec-support"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vfqqcjmhdq25jrc8rd7nx4n8xid7s1ynv65ph06bk2xafn3rgll";
type = "gem";
};
version = "3.8.1";
};
rspec-mocks = {
dependencies = ["diff-lcs" "rspec-support"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp";
type = "gem";
};
version = "3.8.0";
};
rspec-parameterized = {
dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
type = "gem";
};
version = "0.4.0";
};
rspec-support = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609";
type = "gem";
};
version = "3.8.0";
};
rubocop = {
dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mqyylfzch0967w7nfnqza84sqhljijd9y4bnq8hcmrscch75cxw";
type = "gem";
};
version = "0.49.1";
};
ruby-progressbar = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk";
type = "gem";
};
version = "1.9.0";
};
safe_yaml = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
type = "gem";
};
version = "1.0.4";
};
simplecov = {
dependencies = ["docile" "multi_json" "simplecov-html"];
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1a3wy9zlmfwl3f47cibnxyxrgfz16y6fmy0dj1vyidzyys4mvy12";
type = "gem";
};
version = "0.9.2";
};
simplecov-html = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jv9pmpaxihrcsgcf6mgl3qg7rhf9scl5l2k67d768w9cz63xgvc";
type = "gem";
};
version = "0.9.0";
};
thread_safe = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
type = "gem";
};
version = "0.3.6";
};
unicode-display_width = {
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57";
type = "gem";
};
version = "1.4.0";
};
unparser = {
dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
groups = ["default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0rh1649846ac17av30x0b0v9l45v0x1j2y1i8m1a7xdd0v4sld0z";
type = "gem";
};
version = "0.2.8";
};
vcr = {
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qh7lkj9b0shph84dw1wsrlaprl0jn1i4339fpsfy99402290zrr";
type = "gem";
};
version = "4.0.0";
};
webmock = {
dependencies = ["addressable" "crack" "hashdiff"];
groups = ["development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03994dxs4xayvkxqp01dd1ivhg4xxx7z35f7cxw7y2mwj3xn24ib";
type = "gem";
};
version = "3.4.2";
};
}

View File

@ -0,0 +1,42 @@
diff --git a/go/internal/config/config.go b/go/internal/config/config.go
index f951fe6..b422fe3 100644
--- a/go/internal/config/config.go
+++ b/go/internal/config/config.go
@@ -3,7 +3,6 @@ package config
import (
"io/ioutil"
"net/url"
- "os"
"path"
"strings"
@@ -44,16 +43,13 @@ type Config struct {
}
func New() (*Config, error) {
- dir, err := os.Getwd()
- if err != nil {
- return nil, err
- }
+ dir := "/run/gitlab"
return NewFromDir(dir)
}
func NewFromDir(dir string) (*Config, error) {
- return newFromFile(path.Join(dir, configFile))
+ return newFromFile("/run/gitlab/shell-config.yml")
}
func (c *Config) FeatureEnabled(featureName string) bool {
diff --git a/go/internal/command/fallback/fallback.go b/go/internal/command/fallback/fallback.go
index 2cb76a8..f59ad5e 100644
--- a/go/internal/command/fallback/fallback.go
+++ b/go/internal/command/fallback/fallback.go
@@ -53,5 +53,5 @@
func (c *Command) fallbackProgram() string {
fileName := fmt.Sprintf("%s-ruby", c.Executable.Name)
- return filepath.Join(c.RootDir, "bin", fileName)
+ return filepath.Join("/run/current-system/sw/bin", fileName)
}

View File

@ -0,0 +1,27 @@
diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
index 0600a18..c46f2d7 100644
--- a/lib/gitlab_keys.rb
+++ b/lib/gitlab_keys.rb
@@ -2,7 +2,7 @@ class GitlabKeys # rubocop:disable Metrics/ClassLength
attr_accessor :auth_file, :key
def self.command(whatever)
- "#{ROOT_PATH}/bin/gitlab-shell #{whatever}"
+ "/run/current-system/sw/bin/gitlab-shell #{whatever}"
end
def self.command_key(key_id)
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
index 2cb76a8..f59ad5e 100644
--- a/lib/gitlab_shell.rb
+++ b/lib/gitlab_shell.rb
@@ -195,7 +195,8 @@ class GitlabShell # rubocop:disable Metrics/ClassLength
args = [executable, gitaly_address, json_args]
# We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
- Kernel.exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
+ # Except we don't, because we're already in the right directory on nixos!
+ Kernel.exec(env, *args, unsetenv_others: true)
end
def api

View File

@ -1,71 +0,0 @@
diff --git a/go/internal/config/config.go b/go/internal/config/config.go
index f951fe6..b422fe3 100644
--- a/go/internal/config/config.go
+++ b/go/internal/config/config.go
@@ -3,7 +3,6 @@ package config
import (
"io/ioutil"
"net/url"
- "os"
"path"
"strings"
@@ -30,16 +29,13 @@ type Config struct {
}
func New() (*Config, error) {
- dir, err := os.Getwd()
- if err != nil {
- return nil, err
- }
+ dir := "/run/gitlab"
return NewFromDir(dir)
}
func NewFromDir(dir string) (*Config, error) {
- return newFromFile(path.Join(dir, configFile))
+ return newFromFile("/run/gitlab/shell-config.yml")
}
func (c *Config) FeatureEnabled(featureName string) bool {
diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
index 0600a18..c46f2d7 100644
--- a/lib/gitlab_keys.rb
+++ b/lib/gitlab_keys.rb
@@ -10,7 +10,7 @@ class GitlabKeys # rubocop:disable Metrics/ClassLength
attr_accessor :auth_file, :key
def self.command(whatever)
- "#{ROOT_PATH}/bin/gitlab-shell #{whatever}"
+ "/run/current-system/sw/bin/gitlab-shell #{whatever}"
end
def self.command_key(key_id)
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
index 2cb76a8..f59ad5e 100644
--- a/lib/gitlab_shell.rb
+++ b/lib/gitlab_shell.rb
@@ -190,7 +190,8 @@ class GitlabShell # rubocop:disable Metrics/ClassLength
args = [executable, gitaly_address, json_args]
# We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
- Kernel.exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
+ # Except we don't, because we're already in the right directory on nixos!
+ Kernel.exec(env, *args, unsetenv_others: true)
end
def api
diff --git a/go/internal/command/fallback/fallback.go b/go/internal/command/fallback/fallback.go
index 2cb76a8..f59ad5e 100644
--- a/go/internal/command/fallback/fallback.go
+++ b/go/internal/command/fallback/fallback.go
@@ -21,7 +21,7 @@
)
func (c *Command) Execute() error {
- rubyCmd := filepath.Join(c.RootDir, "bin", RubyProgram)
+ rubyCmd := filepath.Join("/run/current-system/sw/bin", RubyProgram)
// Ensure rubyArgs[0] is the full path to gitlab-shell-ruby
rubyArgs := append([]string{rubyCmd}, c.Args[1:]...)

View File

@ -1,25 +1,37 @@
{ stdenv, fetchFromGitLab, git, go }: { stdenv, fetchFromGitLab, git, buildGoPackage }:
stdenv.mkDerivation rec { buildGoPackage rec {
pname = "gitlab-workhorse"; pname = "gitlab-workhorse";
version = "8.7.0"; version = "8.10.0";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-workhorse"; repo = "gitlab-workhorse";
rev = "v${version}"; rev = "v${version}";
sha256 = "1zlngc498hnzbxwdjn3ymr0xwrnfgnzzhn9lyf37yfbjl8x28n3z"; sha256 = "11cfhh48dga5ghfcijb68gbx0nfr5bs3vvp2j1gam9ac37fpvk0x";
}; };
buildInputs = [ git go ]; goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse";
goDeps = ./deps.nix;
buildInputs = [ git ];
makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" "GOCACHE=$(TMPDIR)/go-cache" ]; makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" "GOCACHE=$(TMPDIR)/go-cache" ];
# gitlab-workhorse depends on an older version of labkit which
# contains old, vendored versions of some packages; gitlab-workhorse
# also explicitly depends on newer versions of these libraries,
# but buildGoPackage exposes the vendored versions instead,
# leading to compilation errors. Since the vendored libraries
# aren't used here anyway, we'll just remove them.
postConfigure = ''
rm -r "$NIX_BUILD_TOP/go/src/gitlab.com/gitlab-org/labkit/vendor"
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.gitlab.com/; homepage = http://www.gitlab.com/;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ fpletz globin ]; maintainers = with maintainers; [ fpletz globin talyz ];
license = licenses.mit; license = licenses.mit;
}; };
} }

View File

@ -0,0 +1,885 @@
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
[
{
goPackagePath = "cloud.google.com/go";
fetch = {
type = "git";
url = "https://code.googlesource.com/gocloud";
rev = "v0.26.0";
sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
};
}
{
goPackagePath = "github.com/BurntSushi/toml";
fetch = {
type = "git";
url = "https://github.com/BurntSushi/toml";
rev = "v0.3.1";
sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
};
}
{
goPackagePath = "github.com/FZambia/sentinel";
fetch = {
type = "git";
url = "https://github.com/FZambia/sentinel";
rev = "v1.0.0";
sha256 = "14cfngdy0n5rg7nrvxg1ydcjd18v0s8h33jx9wkln5ms0d59kfly";
};
}
{
goPackagePath = "github.com/alecthomas/template";
fetch = {
type = "git";
url = "https://github.com/alecthomas/template";
rev = "a0175ee3bccc";
sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
};
}
{
goPackagePath = "github.com/alecthomas/units";
fetch = {
type = "git";
url = "https://github.com/alecthomas/units";
rev = "2efee857e7cf";
sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
};
}
{
goPackagePath = "github.com/beorn7/perks";
fetch = {
type = "git";
url = "https://github.com/beorn7/perks";
rev = "v1.0.0";
sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
};
}
{
goPackagePath = "github.com/certifi/gocertifi";
fetch = {
type = "git";
url = "https://github.com/certifi/gocertifi";
rev = "ee1a9a0726d2";
sha256 = "08l6lqaw83pva6fa0aafmhmy1mhb145av21772zfh3ij809a37i4";
};
}
{
goPackagePath = "github.com/client9/misspell";
fetch = {
type = "git";
url = "https://github.com/client9/misspell";
rev = "v0.3.4";
sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
};
}
{
goPackagePath = "github.com/client9/reopen";
fetch = {
type = "git";
url = "https://github.com/client9/reopen";
rev = "v1.0.0";
sha256 = "0f0dpdbmvk7w518c6zjhlmp65y55vvx47x4lq9pgzvcbsvjsf18s";
};
}
{
goPackagePath = "github.com/cloudflare/tableflip";
fetch = {
type = "git";
url = "https://github.com/cloudflare/tableflip";
rev = "8392f1641731";
sha256 = "0by5hk8s0bhhl3kiw658p5g53zvc61k4q2wxnh1w64p5ghd1rfn8";
};
}
{
goPackagePath = "github.com/codahale/hdrhistogram";
fetch = {
type = "git";
url = "https://github.com/codahale/hdrhistogram";
rev = "3a0bb77429bd";
sha256 = "1zampgfjbxy192cbwdi7g86l1idxaam96d834wncnpfdwgh5kl57";
};
}
{
goPackagePath = "github.com/davecgh/go-spew";
fetch = {
type = "git";
url = "https://github.com/davecgh/go-spew";
rev = "v1.1.1";
sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
};
}
{
goPackagePath = "github.com/dgrijalva/jwt-go";
fetch = {
type = "git";
url = "https://github.com/dgrijalva/jwt-go";
rev = "v3.2.0";
sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
};
}
{
goPackagePath = "github.com/fsnotify/fsnotify";
fetch = {
type = "git";
url = "https://github.com/fsnotify/fsnotify";
rev = "v1.4.7";
sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
};
}
{
goPackagePath = "github.com/getsentry/raven-go";
fetch = {
type = "git";
url = "https://github.com/getsentry/raven-go";
rev = "v0.1.2";
sha256 = "1dl80kar4lzdcfl3w6jssi1ld6bv0rmx6sp6bz6rzysfr9ilm02z";
};
}
{
goPackagePath = "github.com/go-kit/kit";
fetch = {
type = "git";
url = "https://github.com/go-kit/kit";
rev = "v0.8.0";
sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
};
}
{
goPackagePath = "github.com/go-logfmt/logfmt";
fetch = {
type = "git";
url = "https://github.com/go-logfmt/logfmt";
rev = "v0.3.0";
sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9";
};
}
{
goPackagePath = "github.com/go-stack/stack";
fetch = {
type = "git";
url = "https://github.com/go-stack/stack";
rev = "v1.8.0";
sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
};
}
{
goPackagePath = "github.com/gogo/protobuf";
fetch = {
type = "git";
url = "https://github.com/gogo/protobuf";
rev = "v1.1.1";
sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
};
}
{
goPackagePath = "github.com/golang/gddo";
fetch = {
type = "git";
url = "https://github.com/golang/gddo";
rev = "af0f2af80721";
sha256 = "0ja0xwgg31i2fyqn0b9sf1rjsqkw34kwrr0k0iczzn19mhhc3m7j";
};
}
{
goPackagePath = "github.com/golang/glog";
fetch = {
type = "git";
url = "https://github.com/golang/glog";
rev = "23def4e6c14b";
sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
};
}
{
goPackagePath = "github.com/golang/lint";
fetch = {
type = "git";
url = "https://github.com/golang/lint";
rev = "06c8688daad7";
sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
};
}
{
goPackagePath = "github.com/golang/mock";
fetch = {
type = "git";
url = "https://github.com/golang/mock";
rev = "v1.1.1";
sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
};
}
{
goPackagePath = "github.com/golang/protobuf";
fetch = {
type = "git";
url = "https://github.com/golang/protobuf";
rev = "v1.3.1";
sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl";
};
}
{
goPackagePath = "github.com/gomodule/redigo";
fetch = {
type = "git";
url = "https://github.com/gomodule/redigo";
rev = "v2.0.0";
sha256 = "1kg7s8027b4g1sfw0v3nh30c15j407kv684s53gg281r807dnfpk";
};
}
{
goPackagePath = "github.com/google/go-cmp";
fetch = {
type = "git";
url = "https://github.com/google/go-cmp";
rev = "v0.3.1";
sha256 = "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1";
};
}
{
goPackagePath = "github.com/google/renameio";
fetch = {
type = "git";
url = "https://github.com/google/renameio";
rev = "v0.1.0";
sha256 = "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx";
};
}
{
goPackagePath = "github.com/google/uuid";
fetch = {
type = "git";
url = "https://github.com/google/uuid";
rev = "v1.1.1";
sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb";
};
}
{
goPackagePath = "github.com/gopherjs/gopherjs";
fetch = {
type = "git";
url = "https://github.com/gopherjs/gopherjs";
rev = "0766667cb4d1";
sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw";
};
}
{
goPackagePath = "github.com/gorilla/websocket";
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
rev = "v1.4.0";
sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
};
}
{
goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
fetch = {
type = "git";
url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
rev = "v1.0.0";
sha256 = "0lwgxih021xfhfb1xb9la5f98bpgpaiz63sbllx77qwwl2rmhrsp";
};
}
{
goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
fetch = {
type = "git";
url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
rev = "v1.2.0";
sha256 = "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl";
};
}
{
goPackagePath = "github.com/hpcloud/tail";
fetch = {
type = "git";
url = "https://github.com/hpcloud/tail";
rev = "v1.0.0";
sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
};
}
{
goPackagePath = "github.com/jfbus/httprs";
fetch = {
type = "git";
url = "https://github.com/jfbus/httprs";
rev = "b0af8319bb15";
sha256 = "05cg9a27i9g92n3bivqrrqznccl5lfadlk97sp9izmd368dl5qvc";
};
}
{
goPackagePath = "github.com/jpillora/backoff";
fetch = {
type = "git";
url = "https://github.com/jpillora/backoff";
rev = "8eab2debe79d";
sha256 = "1m5z0703094vhbbmp6s7n6kk7ci5s1pfjq466mz14zp8d1w0yn3x";
};
}
{
goPackagePath = "github.com/json-iterator/go";
fetch = {
type = "git";
url = "https://github.com/json-iterator/go";
rev = "v1.1.6";
sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
};
}
{
goPackagePath = "github.com/jtolds/gls";
fetch = {
type = "git";
url = "https://github.com/jtolds/gls";
rev = "v4.20.0";
sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
};
}
{
goPackagePath = "github.com/julienschmidt/httprouter";
fetch = {
type = "git";
url = "https://github.com/julienschmidt/httprouter";
rev = "v1.2.0";
sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
};
}
{
goPackagePath = "github.com/kelseyhightower/envconfig";
fetch = {
type = "git";
url = "https://github.com/kelseyhightower/envconfig";
rev = "v1.3.0";
sha256 = "1zcq480ig7wbg4378qcfxznp2gzqmk7x6rbxizflvg9v2f376vrw";
};
}
{
goPackagePath = "github.com/kisielk/gotool";
fetch = {
type = "git";
url = "https://github.com/kisielk/gotool";
rev = "v1.0.0";
sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
};
}
{
goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
fetch = {
type = "git";
url = "https://github.com/konsorten/go-windows-terminal-sequences";
rev = "v1.0.2";
sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
};
}
{
goPackagePath = "github.com/kr/logfmt";
fetch = {
type = "git";
url = "https://github.com/kr/logfmt";
rev = "b84e30acd515";
sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
};
}
{
goPackagePath = "github.com/kr/pretty";
fetch = {
type = "git";
url = "https://github.com/kr/pretty";
rev = "v0.1.0";
sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
};
}
{
goPackagePath = "github.com/kr/pty";
fetch = {
type = "git";
url = "https://github.com/kr/pty";
rev = "v1.1.1";
sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
};
}
{
goPackagePath = "github.com/kr/text";
fetch = {
type = "git";
url = "https://github.com/kr/text";
rev = "v0.1.0";
sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
};
}
{
goPackagePath = "github.com/libgit2/git2go";
fetch = {
type = "git";
url = "https://github.com/libgit2/git2go";
rev = "ecaeb7a21d47";
sha256 = "14r7ryff93r49g94f6kg66xc0y6rwb31lj22s3qmzmlgywk0pgvr";
};
}
{
goPackagePath = "github.com/lightstep/lightstep-tracer-go";
fetch = {
type = "git";
url = "https://github.com/lightstep/lightstep-tracer-go";
rev = "v0.15.6";
sha256 = "10n5r66g44s6rnz5kf86s4a3p1g55kc1kxqhnk7bx7mlayndgpmb";
};
}
{
goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
fetch = {
type = "git";
url = "https://github.com/matttproud/golang_protobuf_extensions";
rev = "v1.0.1";
sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
};
}
{
goPackagePath = "github.com/mitchellh/copystructure";
fetch = {
type = "git";
url = "https://github.com/mitchellh/copystructure";
rev = "v1.0.0";
sha256 = "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr";
};
}
{
goPackagePath = "github.com/mitchellh/reflectwalk";
fetch = {
type = "git";
url = "https://github.com/mitchellh/reflectwalk";
rev = "v1.0.0";
sha256 = "0wzkp0fdx22n8f7y9y37dgmnlrlfsv9zjdb48cbx7rsqsbnny7l0";
};
}
{
goPackagePath = "github.com/modern-go/concurrent";
fetch = {
type = "git";
url = "https://github.com/modern-go/concurrent";
rev = "bacd9c7ef1dd";
sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
};
}
{
goPackagePath = "github.com/modern-go/reflect2";
fetch = {
type = "git";
url = "https://github.com/modern-go/reflect2";
rev = "v1.0.1";
sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
};
}
{
goPackagePath = "github.com/mwitkow/go-conntrack";
fetch = {
type = "git";
url = "https://github.com/mwitkow/go-conntrack";
rev = "cc309e4a2223";
sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
};
}
{
goPackagePath = "github.com/onsi/ginkgo";
fetch = {
type = "git";
url = "https://github.com/onsi/ginkgo";
rev = "v1.7.0";
sha256 = "14wgpdrvpc35rdz3859bz53sc1g4vpr1fysy15wy3ff9gmqs14yg";
};
}
{
goPackagePath = "github.com/onsi/gomega";
fetch = {
type = "git";
url = "https://github.com/onsi/gomega";
rev = "v1.4.3";
sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v";
};
}
{
goPackagePath = "github.com/opentracing/opentracing-go";
fetch = {
type = "git";
url = "https://github.com/opentracing/opentracing-go";
rev = "v1.0.2";
sha256 = "0i0ghg94dg8lk05mw5n23983wq04yjvkjmdkc9z5y1f3508938h9";
};
}
{
goPackagePath = "github.com/philhofer/fwd";
fetch = {
type = "git";
url = "https://github.com/philhofer/fwd";
rev = "v1.0.0";
sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "v0.8.0";
sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
};
}
{
goPackagePath = "github.com/pmezard/go-difflib";
fetch = {
type = "git";
url = "https://github.com/pmezard/go-difflib";
rev = "v1.0.0";
sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
};
}
{
goPackagePath = "github.com/prometheus/client_golang";
fetch = {
type = "git";
url = "https://github.com/prometheus/client_golang";
rev = "v1.0.0";
sha256 = "1f03ndyi3jq7zdxinnvzimz3s4z2374r6dikkc8i42xzb6d1bli6";
};
}
{
goPackagePath = "github.com/prometheus/client_model";
fetch = {
type = "git";
url = "https://github.com/prometheus/client_model";
rev = "fd36f4220a90";
sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
};
}
{
goPackagePath = "github.com/prometheus/common";
fetch = {
type = "git";
url = "https://github.com/prometheus/common";
rev = "v0.4.1";
sha256 = "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s";
};
}
{
goPackagePath = "github.com/prometheus/procfs";
fetch = {
type = "git";
url = "https://github.com/prometheus/procfs";
rev = "v0.0.2";
sha256 = "0s7pvs7fgnfpmym3cd0k219av321h9sf3yvdlnn3qy0ps280lg7k";
};
}
{
goPackagePath = "github.com/rafaeljusto/redigomock";
fetch = {
type = "git";
url = "https://github.com/rafaeljusto/redigomock";
rev = "257e089e14a1";
sha256 = "1k572vsda7q5l42s1kn5bjkfb30jshsbc96dz4cnghg43qylyd6h";
};
}
{
goPackagePath = "github.com/rogpeppe/go-internal";
fetch = {
type = "git";
url = "https://github.com/rogpeppe/go-internal";
rev = "v1.3.0";
sha256 = "0mcdh1licgnnahwml9y2iq6xy5x9xmjw5frcnds2s3wpjyqrl216";
};
}
{
goPackagePath = "github.com/sebest/xff";
fetch = {
type = "git";
url = "https://github.com/sebest/xff";
rev = "6c115e0ffa35";
sha256 = "0l11d8mc870vxzgi74cc9dqr7kgxjmbfkfi53gc30rsyx877jx4h";
};
}
{
goPackagePath = "github.com/sirupsen/logrus";
fetch = {
type = "git";
url = "https://github.com/sirupsen/logrus";
rev = "v1.3.0";
sha256 = "0ib7k8cwxn53dyxd3af1g81z018n77n6q64pm4miznirf7c2c9gk";
};
}
{
goPackagePath = "github.com/smartystreets/assertions";
fetch = {
type = "git";
url = "https://github.com/smartystreets/assertions";
rev = "b2de0cb4f26d";
sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
};
}
{
goPackagePath = "github.com/smartystreets/goconvey";
fetch = {
type = "git";
url = "https://github.com/smartystreets/goconvey";
rev = "505e41936337";
sha256 = "07zjxwszayal88z1j2bwnqrsa32vg8l4nivks5yfr9j8xfsw7n6m";
};
}
{
goPackagePath = "github.com/stretchr/objx";
fetch = {
type = "git";
url = "https://github.com/stretchr/objx";
rev = "v0.1.1";
sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
};
}
{
goPackagePath = "github.com/stretchr/testify";
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
rev = "v1.3.0";
sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
};
}
{
goPackagePath = "github.com/tinylib/msgp";
fetch = {
type = "git";
url = "https://github.com/tinylib/msgp";
rev = "v1.1.0";
sha256 = "08ha23sn14071ywrgxlyj7r523vzdwx1i83dcp1mqa830glgqaff";
};
}
{
goPackagePath = "github.com/uber-go/atomic";
fetch = {
type = "git";
url = "https://github.com/uber-go/atomic";
rev = "v1.3.2";
sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
};
}
{
goPackagePath = "github.com/uber/jaeger-client-go";
fetch = {
type = "git";
url = "https://github.com/uber/jaeger-client-go";
rev = "v2.15.0";
sha256 = "0ki23m9zrf3vxp839fnp9ckr4m28y6mpad8g5s5lr5k8jkl0sfwj";
};
}
{
goPackagePath = "github.com/uber/jaeger-lib";
fetch = {
type = "git";
url = "https://github.com/uber/jaeger-lib";
rev = "v1.5.0";
sha256 = "113fwpn80ylx970w8h7nfqnhh18dpx1jadbk7rbr8k68q4di4y0q";
};
}
{
goPackagePath = "gitlab.com/gitlab-org/gitaly";
fetch = {
type = "git";
url = "https://gitlab.com/gitlab-org/gitaly.git";
rev = "v1.57.0";
sha256 = "0mgawp5afcv9s4y8fq3mc4dn6hhdg1shbns8vmjwklh9bia988cy";
};
}
{
goPackagePath = "gitlab.com/gitlab-org/labkit";
fetch = {
type = "git";
url = "https://gitlab.com/gitlab-org/labkit.git";
rev = "905271af7abb";
sha256 = "144w5dikd82wz53drml9khlx39pmp6kgqccc5c0xfzpijbj7krbd";
};
}
{
goPackagePath = "go.uber.org/atomic";
fetch = {
type = "git";
url = "https://github.com/uber-go/atomic";
rev = "v1.3.2";
sha256 = "11pzvjys5ddjjgrv94pgk9pnip9yyb54z7idf33zk7p7xylpnsv6";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "20be4c3c3ed5";
sha256 = "1ph7y8v30hc95h1dwr7vrhg1nzs47a261qin6zg8mhf12g5k2lxb";
};
}
{
goPackagePath = "golang.org/x/lint";
fetch = {
type = "git";
url = "https://go.googlesource.com/lint";
rev = "06c8688daad7";
sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
};
}
{
goPackagePath = "golang.org/x/mod";
fetch = {
type = "git";
url = "https://go.googlesource.com/mod";
rev = "4bf6d317e70e";
sha256 = "19lg1ly3j31anx92p0hynic1gjk417wwxphfdrb2cq1c19kj3r17";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "d28f0bde5980";
sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
};
}
{
goPackagePath = "golang.org/x/oauth2";
fetch = {
type = "git";
url = "https://go.googlesource.com/oauth2";
rev = "d2e6202438be";
sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
};
}
{
goPackagePath = "golang.org/x/sync";
fetch = {
type = "git";
url = "https://go.googlesource.com/sync";
rev = "112230192c58";
sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "953cdadca894";
sha256 = "0gkha4whk8xkcv3isigbs250akag99isxnd3v9xmy0kl3g88hxy1";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "v0.3.0";
sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
};
}
{
goPackagePath = "golang.org/x/tools";
fetch = {
type = "git";
url = "https://go.googlesource.com/tools";
rev = "6e04913cbbac";
sha256 = "1314j8r4cp69a12nqdaljd06r6hmh3b1v4xyrz8prw6gx5jg7h3q";
};
}
{
goPackagePath = "google.golang.org/appengine";
fetch = {
type = "git";
url = "https://github.com/golang/appengine";
rev = "v1.1.0";
sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
};
}
{
goPackagePath = "google.golang.org/genproto";
fetch = {
type = "git";
url = "https://github.com/google/go-genproto";
rev = "bd91e49a0898";
sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
};
}
{
goPackagePath = "google.golang.org/grpc";
fetch = {
type = "git";
url = "https://github.com/grpc/grpc-go";
rev = "v1.16.0";
sha256 = "0a9xl6c5j7lvsb4q6ry5p892rjm86p47d4f8xrf0r8lxblf79qbg";
};
}
{
goPackagePath = "gopkg.in/DataDog/dd-trace-go.v1";
fetch = {
type = "git";
url = "https://gopkg.in/DataDog/dd-trace-go.v1";
rev = "v1.7.0";
sha256 = "0j45skiiayfsaw8id4g20k51zfr0raj47a03q2icka5xrh3qj6yq";
};
}
{
goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
fetch = {
type = "git";
url = "https://gopkg.in/alecthomas/kingpin.v2";
rev = "v2.2.6";
sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
};
}
{
goPackagePath = "gopkg.in/check.v1";
fetch = {
type = "git";
url = "https://gopkg.in/check.v1";
rev = "788fd7840127";
sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
};
}
{
goPackagePath = "gopkg.in/errgo.v2";
fetch = {
type = "git";
url = "https://gopkg.in/errgo.v2";
rev = "v2.1.0";
sha256 = "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2";
};
}
{
goPackagePath = "gopkg.in/fsnotify.v1";
fetch = {
type = "git";
url = "https://gopkg.in/fsnotify.v1";
rev = "v1.4.7";
sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
};
}
{
goPackagePath = "gopkg.in/tomb.v1";
fetch = {
type = "git";
url = "https://gopkg.in/tomb.v1";
rev = "dd632973f1e7";
sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "v2.2.2";
sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
};
}
{
goPackagePath = "honnef.co/go/tools";
fetch = {
type = "git";
url = "https://github.com/dominikh/go-tools";
rev = "v0.0.1-2019.2.2";
sha256 = "1vndpwg797z2gw9h9378iq99aqy7nalqx82lgvcsaqnkypdmppnd";
};
}
]

View File

@ -1,449 +0,0 @@
source 'https://rubygems.org'
gem 'rails', '5.2.3'
# Improves copy-on-write performance for MRI
gem 'nakayoshi_fork', '~> 0.0.4'
# Responders respond_to and respond_with
gem 'responders', '~> 2.0'
gem 'sprockets', '~> 3.7.0'
# Default values for AR models
gem 'default_value_for', '~> 3.2.0'
# Supported DBs
gem 'mysql2', '~> 0.4.10', group: :mysql
gem 'pg', '~> 1.1', group: :postgres
gem 'rugged', '~> 0.28'
gem 'grape-path-helpers', '~> 1.1'
gem 'faraday', '~> 0.12'
# Authentication libraries
gem 'devise', '~> 4.6'
gem 'doorkeeper', '~> 4.3'
gem 'doorkeeper-openid_connect', '~> 1.5'
gem 'omniauth', '~> 1.8'
gem 'omniauth-auth0', '~> 2.0.0'
gem 'omniauth-azure-oauth2', '~> 0.0.9'
gem 'omniauth-cas3', '~> 1.1.4'
gem 'omniauth-facebook', '~> 4.0.0'
gem 'omniauth-github', '~> 1.3'
gem 'omniauth-gitlab', '~> 1.0.2'
gem 'omniauth-google-oauth2', '~> 0.6.0'
gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
gem 'omniauth-oauth2-generic', '~> 0.2.2'
gem 'omniauth-saml', '~> 1.10'
gem 'omniauth-shibboleth', '~> 1.3.0'
gem 'omniauth-twitter', '~> 1.4'
gem 'omniauth_crowd', '~> 2.2.0'
gem 'omniauth-authentiq', '~> 0.3.3'
gem 'omniauth_openid_connect', '~> 0.3.1'
gem "omniauth-ultraauth", '~> 0.0.2'
gem 'omniauth-salesforce', '~> 1.0.5'
gem 'rack-oauth2', '~> 1.9.3'
gem 'jwt', '~> 2.1.0'
# Spam and anti-bot protection
gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
gem 'akismet', '~> 2.0'
# Two-factor authentication
gem 'devise-two-factor', '~> 3.0.0'
gem 'rqrcode-rails3', '~> 0.1.7'
gem 'attr_encrypted', '~> 3.1.0'
gem 'u2f', '~> 0.2.1'
# GitLab Pages
gem 'validates_hostname', '~> 1.0.6'
gem 'rubyzip', '~> 1.2.2', require: 'zip'
# GitLab Pages letsencrypt support
gem 'acme-client', '~> 2.0.2'
# Browser detection
gem 'browser', '~> 2.5'
# GPG
gem 'gpgme', '~> 2.0.18'
# LDAP Auth
# GitLab fork with several improvements to original library. For full list of changes
# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap'
gem 'net-ldap'
# API
gem 'grape', '~> 1.1.0'
gem 'grape-entity', '~> 0.7.1'
gem 'rack-cors', '~> 1.0.0', require: 'rack/cors'
# GraphQL API
gem 'graphql', '~> 1.8.0'
gem 'graphiql-rails', '~> 1.4.10'
gem 'apollo_upload_server', '~> 2.0.0.beta3'
gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
# Disable strong_params so that Mash does not respond to :permitted?
gem 'hashie-forbidden_attributes'
# Pagination
gem 'kaminari', '~> 1.0'
# HAML
gem 'hamlit', '~> 2.8.8'
# Files attachments
gem 'carrierwave', '~> 1.3'
gem 'mini_magick'
# for backups
gem 'fog-aws', '~> 3.5'
# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
# Also see config/initializers/fog_core_patch.rb.
gem 'fog-core', '= 2.1.0'
gem 'fog-google', '~> 1.8'
gem 'fog-local', '~> 0.6'
gem 'fog-openstack', '~> 1.0'
gem 'fog-rackspace', '~> 0.1.1'
gem 'fog-aliyun', '~> 0.3'
# for Google storage
gem 'google-api-client', '~> 0.23'
# for aws storage
gem 'unf', '~> 0.1.4'
# Seed data
gem 'seed-fu', '~> 2.3.7'
# Markdown and HTML processing
gem 'html-pipeline', '~> 2.8'
gem 'deckar01-task_list', '2.2.0'
gem 'gitlab-markup', '~> 1.7.0'
gem 'github-markup', '~> 1.7.0', require: 'github/markup'
gem 'commonmarker', '~> 0.17'
gem 'RedCloth', '~> 4.3.2'
gem 'rdoc', '~> 6.0'
gem 'org-ruby', '~> 0.9.12'
gem 'creole', '~> 0.5.0'
gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 2.0.10'
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
gem 'asciidoctor-plantuml', '0.0.9'
gem 'rouge', '~> 3.5'
gem 'truncato', '~> 0.7.11'
gem 'bootstrap_form', '~> 4.2.0'
gem 'nokogiri', '~> 1.10.3'
gem 'escape_utils', '~> 1.1'
# Calendar rendering
gem 'icalendar'
# Diffs
gem 'diffy', '~> 3.1.0'
# Application server
gem 'rack', '~> 2.0.7'
group :unicorn do
gem 'unicorn', '~> 5.4.1'
gem 'unicorn-worker-killer', '~> 0.4.4'
end
group :puma do
gem 'puma', '~> 3.12', require: false
gem 'puma_worker_killer', require: false
gem 'rack-timeout', require: false
end
# State machine
gem 'state_machines-activerecord', '~> 0.5.1'
# Issue tags
gem 'acts-as-taggable-on', '~> 6.0'
# Background jobs
gem 'sidekiq', '~> 5.2.7'
gem 'sidekiq-cron', '~> 1.0'
gem 'redis-namespace', '~> 1.6.0'
gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
# Cron Parser
gem 'fugit', '~> 1.2.1'
# HTTP requests
gem 'httparty', '~> 0.16.4'
# Colored output to console
gem 'rainbow', '~> 3.0'
# Progress bar
gem 'ruby-progressbar'
# GitLab settings
gem 'settingslogic', '~> 2.0.9'
# Linear-time regex library for untrusted regular expressions
gem 're2', '~> 1.1.1'
# Misc
gem 'version_sorter', '~> 2.2.4'
# Export Ruby Regex to Javascript
gem 'js_regex', '~> 3.1'
# User agent parsing
gem 'device_detector'
# Cache
gem 'redis-rails', '~> 5.0.2'
# Redis
gem 'redis', '~> 3.2'
gem 'connection_pool', '~> 2.0'
# Discord integration
gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
# HipChat integration
gem 'hipchat', '~> 1.5.0'
# Jira integration
gem 'jira-ruby', '~> 1.4'
# Flowdock integration
gem 'flowdock', '~> 0.7'
# Slack integration
gem 'slack-notifier', '~> 1.5.1'
# Hangouts Chat integration
gem 'hangouts-chat', '~> 0.0.5'
# Asana integration
gem 'asana', '~> 0.8.1'
# FogBugz integration
gem 'ruby-fogbugz', '~> 0.2.1'
# Kubernetes integration
gem 'kubeclient', '~> 4.2.2'
# Sanitize user input
gem 'sanitize', '~> 4.6'
gem 'babosa', '~> 1.0.2'
# Sanitizes SVG input
gem 'loofah', '~> 2.2'
# Working with license
gem 'licensee', '~> 8.9'
# Protect against bruteforcing
gem 'rack-attack', '~> 4.4.1'
# Ace editor
gem 'ace-rails-ap', '~> 4.1.0'
# Detect and convert string character encoding
gem 'charlock_holmes', '~> 0.7.5'
# Detect mime content type from content
gem 'mimemagic', '~> 0.3.2'
# Faster blank
gem 'fast_blank'
# Parse time & duration
gem 'chronic', '~> 0.10.2'
gem 'chronic_duration', '~> 0.10.6'
gem 'webpack-rails', '~> 0.9.10'
gem 'rack-proxy', '~> 0.6.0'
gem 'sassc-rails', '~> 2.1.0'
gem 'uglifier', '~> 2.7.2'
gem 'addressable', '~> 2.5.2'
gem 'font-awesome-rails', '~> 4.7'
gem 'gemojione', '~> 3.3'
gem 'gon', '~> 6.2'
gem 'request_store', '~> 1.3'
gem 'virtus', '~> 1.0.1'
gem 'base32', '~> 0.3.0'
# Sentry integration
gem 'sentry-raven', '~> 2.9'
gem 'premailer-rails', '~> 1.9.7'
# LabKit: Tracing and Correlation
gem 'gitlab-labkit', '~> 0.3.0'
# I18n
gem 'ruby_parser', '~> 3.8', require: false
gem 'rails-i18n', '~> 5.1'
gem 'gettext_i18n_rails', '~> 1.8.0'
gem 'gettext_i18n_rails_js', '~> 1.3'
gem 'gettext', '~> 3.2.2', require: false, group: :development
gem 'batch-loader', '~> 1.4.0'
# Perf bar
gem 'peek', '~> 1.0.1'
gem 'peek-gc', '~> 0.0.2'
gem 'peek-mysql2', '~> 1.2.0', group: :mysql
gem 'peek-pg', '~> 1.3.0', group: :postgres
gem 'peek-rblineprof', '~> 0.2.0'
gem 'peek-redis', '~> 1.2.0'
# Memory benchmarks
gem 'derailed_benchmarks', require: false
# Metrics
group :metrics do
gem 'method_source', '~> 0.8', require: false
gem 'influxdb', '~> 0.2', require: false
# Prometheus
gem 'prometheus-client-mmap', '~> 0.9.8'
gem 'raindrops', '~> 0.18'
end
group :development do
gem 'foreman', '~> 0.84.0'
gem 'brakeman', '~> 4.2', require: false
gem 'letter_opener_web', '~> 1.3.4'
gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
# Better errors handler
gem 'better_errors', '~> 2.5.0'
gem 'binding_of_caller', '~> 0.8.0'
# thin instead webrick
gem 'thin', '~> 1.7.0'
end
group :development, :test do
gem 'bootsnap', '~> 1.4'
gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
gem 'pry-byebug', '~> 3.5.1', platform: :mri
gem 'pry-rails', '~> 0.3.4'
gem 'awesome_print', require: false
gem 'fuubar', '~> 2.2.0'
gem 'database_cleaner', '~> 1.7.0'
gem 'factory_bot_rails', '~> 4.8.2'
gem 'rspec-rails', '~> 3.8.0'
gem 'rspec-retry', '~> 0.6.1'
gem 'rspec_profiling', '~> 0.0.5'
gem 'rspec-set', '~> 0.1.3'
gem 'rspec-parameterized', require: false
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
gem 'minitest', '~> 5.11.0'
# Generate Fake data
gem 'ffaker', '~> 2.10'
gem 'capybara', '~> 3.22.0'
gem 'capybara-screenshot', '~> 1.0.22'
gem 'selenium-webdriver', '~> 3.141'
gem 'spring', '~> 2.0.0'
gem 'spring-commands-rspec', '~> 1.0.4'
gem 'gitlab-styles', '~> 2.7', require: false
# Pin these dependencies, otherwise a new rule could break the CI pipelines
gem 'rubocop', '~> 0.69.0'
gem 'rubocop-performance', '~> 1.1.0'
gem 'rubocop-rspec', '~> 1.22.1'
gem 'scss_lint', '~> 0.56.0', require: false
gem 'haml_lint', '~> 0.31.0', require: false
gem 'simplecov', '~> 0.16.1', require: false
gem 'bundler-audit', '~> 0.5.0', require: false
gem 'mdl', '~> 0.5.0', require: false
gem 'benchmark-ips', '~> 2.3.0', require: false
gem 'license_finder', '~> 5.4', require: false
gem 'knapsack', '~> 1.17'
gem 'activerecord_sane_schema_dumper', '1.0'
gem 'stackprof', '~> 0.2.10', require: false
gem 'simple_po_parser', '~> 1.1.2', require: false
gem 'timecop', '~> 0.8.0'
end
group :test do
gem 'shoulda-matchers', '~> 4.0.1', require: false
gem 'email_spec', '~> 2.2.0'
gem 'json-schema', '~> 2.8.0'
gem 'webmock', '~> 3.5.1'
gem 'rails-controller-testing'
gem 'sham_rack', '~> 1.3.6'
gem 'concurrent-ruby', '~> 1.1'
gem 'test-prof', '~> 0.2.5'
gem 'rspec_junit_formatter'
end
gem 'octokit', '~> 4.9'
gem 'mail_room', '~> 0.9.1'
gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text'
gem 'ruby-prof', '~> 0.17.0'
gem 'rbtrace', '~> 0.4', require: false
gem 'memory_profiler', '~> 0.9', require: false
gem 'benchmark-memory', '~> 0.1', require: false
gem 'activerecord-explain-analyze', '~> 0.1', require: false
# OAuth
gem 'oauth2', '~> 1.4'
# Health check
gem 'health_check', '~> 2.6.0'
# System information
gem 'vmstat', '~> 2.3.0'
gem 'sys-filesystem', '~> 1.1.6'
# SSH host key support
gem 'net-ssh', '~> 5.2'
gem 'sshkey', '~> 2.0'
# Required for ED25519 SSH host key support
group :ed25519 do
gem 'ed25519', '~> 1.2'
gem 'bcrypt_pbkdf', '~> 1.0'
end
# Gitaly GRPC client
gem 'gitaly-proto', '~> 1.37.0', require: 'gitaly'
gem 'grpc', '~> 1.19.0'
gem 'google-protobuf', '~> 3.7.1'
gem 'toml-rb', '~> 1.0.0', require: false
# Feature toggles
gem 'flipper', '~> 0.13.0'
gem 'flipper-active_record', '~> 0.13.0'
gem 'flipper-active_support_cache_store', '~> 0.13.0'
# Structured logging
gem 'lograge', '~> 0.5'
gem 'grape_logging', '~> 1.7'

View File

@ -2,6 +2,8 @@ source 'https://rubygems.org'
gem 'rails', '5.2.3' gem 'rails', '5.2.3'
gem 'bootsnap', '~> 1.4'
# Improves copy-on-write performance for MRI # Improves copy-on-write performance for MRI
gem 'nakayoshi_fork', '~> 0.0.4' gem 'nakayoshi_fork', '~> 0.0.4'
@ -14,8 +16,7 @@ gem 'sprockets', '~> 3.7.0'
gem 'default_value_for', '~> 3.2.0' gem 'default_value_for', '~> 3.2.0'
# Supported DBs # Supported DBs
gem 'mysql2', '~> 0.4.10', group: :mysql gem 'pg', '~> 1.1'
gem 'pg', '~> 1.1', group: :postgres
gem 'rugged', '~> 0.28' gem 'rugged', '~> 0.28'
gem 'grape-path-helpers', '~> 1.1' gem 'grape-path-helpers', '~> 1.1'
@ -53,6 +54,7 @@ gem 'gssapi', group: :kerberos
# Spam and anti-bot protection # Spam and anti-bot protection
gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails' gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
gem 'akismet', '~> 2.0' gem 'akismet', '~> 2.0'
gem 'invisible_captcha', '~> 0.12.1'
# Two-factor authentication # Two-factor authentication
gem 'devise-two-factor', '~> 3.0.0' gem 'devise-two-factor', '~> 3.0.0'
@ -84,7 +86,10 @@ gem 'grape-entity', '~> 0.7.1'
gem 'rack-cors', '~> 1.0.0', require: 'rack/cors' gem 'rack-cors', '~> 1.0.0', require: 'rack/cors'
# GraphQL API # GraphQL API
gem 'graphql', '~> 1.8.0' gem 'graphql', '~> 1.9.11'
# NOTE: graphiql-rails v1.5+ doesn't work: https://gitlab.com/gitlab-org/gitlab-ce/issues/67293
# TODO: remove app/views/graphiql/rails/editors/show.html.erb when https://github.com/rmosolgo/graphiql-rails/pull/71 is released:
# https://gitlab.com/gitlab-org/gitlab-ce/issues/67263
gem 'graphiql-rails', '~> 1.4.10' gem 'graphiql-rails', '~> 1.4.10'
gem 'apollo_upload_server', '~> 2.0.0.beta3' gem 'apollo_upload_server', '~> 2.0.0.beta3'
gem 'graphql-docs', '~> 1.6.0', group: [:development, :test] gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
@ -107,7 +112,7 @@ gem 'fog-aws', '~> 3.5'
# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421. # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
# Also see config/initializers/fog_core_patch.rb. # Also see config/initializers/fog_core_patch.rb.
gem 'fog-core', '= 2.1.0' gem 'fog-core', '= 2.1.0'
gem 'fog-google', '~> 1.8' gem 'fog-google', '~> 1.9'
gem 'fog-local', '~> 0.6' gem 'fog-local', '~> 0.6'
gem 'fog-openstack', '~> 1.0' gem 'fog-openstack', '~> 1.0'
gem 'fog-rackspace', '~> 0.1.1' gem 'fog-rackspace', '~> 0.1.1'
@ -143,10 +148,10 @@ gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 2.0.10' gem 'asciidoctor', '~> 2.0.10'
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
gem 'asciidoctor-plantuml', '0.0.9' gem 'asciidoctor-plantuml', '0.0.9'
gem 'rouge', '~> 3.5' gem 'rouge', '~> 3.7'
gem 'truncato', '~> 0.7.11' gem 'truncato', '~> 0.7.11'
gem 'bootstrap_form', '~> 4.2.0' gem 'bootstrap_form', '~> 4.2.0'
gem 'nokogiri', '~> 1.10.3' gem 'nokogiri', '~> 1.10.4'
gem 'escape_utils', '~> 1.1' gem 'escape_utils', '~> 1.1'
# Calendar rendering # Calendar rendering
@ -179,7 +184,7 @@ gem 'acts-as-taggable-on', '~> 6.0'
gem 'sidekiq', '~> 5.2.7' gem 'sidekiq', '~> 5.2.7'
gem 'sidekiq-cron', '~> 1.0' gem 'sidekiq-cron', '~> 1.0'
gem 'redis-namespace', '~> 1.6.0' gem 'redis-namespace', '~> 1.6.0'
gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch' gem 'gitlab-sidekiq-fetcher', '0.5.2', require: 'sidekiq-reliable-fetch'
# Cron Parser # Cron Parser
gem 'fugit', '~> 1.2.1' gem 'fugit', '~> 1.2.1'
@ -209,13 +214,13 @@ gem 'js_regex', '~> 3.1'
# User agent parsing # User agent parsing
gem 'device_detector' gem 'device_detector'
# Cache
gem 'redis-rails', '~> 5.0.2'
# Redis # Redis
gem 'redis', '~> 3.2' gem 'redis', '~> 4.0'
gem 'connection_pool', '~> 2.0' gem 'connection_pool', '~> 2.0'
# Redis session store
gem 'redis-rails', '~> 5.0.2'
# Discord integration # Discord integration
gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
@ -223,7 +228,8 @@ gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
gem 'hipchat', '~> 1.5.0' gem 'hipchat', '~> 1.5.0'
# Jira integration # Jira integration
gem 'jira-ruby', '~> 1.4' gem 'jira-ruby', '~> 1.7'
gem 'atlassian-jwt', '~> 0.2.0'
# Flowdock integration # Flowdock integration
gem 'flowdock', '~> 0.7' gem 'flowdock', '~> 0.7'
@ -241,7 +247,7 @@ gem 'asana', '~> 0.8.1'
gem 'ruby-fogbugz', '~> 0.2.1' gem 'ruby-fogbugz', '~> 0.2.1'
# Kubernetes integration # Kubernetes integration
gem 'kubeclient', '~> 4.2.2' gem 'kubeclient', '~> 4.4.0'
# Sanitize user input # Sanitize user input
gem 'sanitize', '~> 4.6' gem 'sanitize', '~> 4.6'
@ -270,7 +276,7 @@ gem 'fast_blank'
# Parse time & duration # Parse time & duration
gem 'chronic', '~> 0.10.2' gem 'chronic', '~> 0.10.2'
gem 'chronic_duration', '~> 0.10.6' gem 'gitlab_chronic_duration', '~> 0.10.6.1'
gem 'webpack-rails', '~> 0.9.10' gem 'webpack-rails', '~> 0.9.10'
gem 'rack-proxy', '~> 0.6.0' gem 'rack-proxy', '~> 0.6.0'
@ -283,7 +289,6 @@ gem 'font-awesome-rails', '~> 4.7'
gem 'gemojione', '~> 3.3' gem 'gemojione', '~> 3.3'
gem 'gon', '~> 6.2' gem 'gon', '~> 6.2'
gem 'request_store', '~> 1.3' gem 'request_store', '~> 1.3'
gem 'virtus', '~> 1.0.1'
gem 'base32', '~> 0.3.0' gem 'base32', '~> 0.3.0'
gem "gitlab-license", "~> 1.0" gem "gitlab-license", "~> 1.0"
@ -294,7 +299,7 @@ gem 'sentry-raven', '~> 2.9'
gem 'premailer-rails', '~> 1.9.7' gem 'premailer-rails', '~> 1.9.7'
# LabKit: Tracing and Correlation # LabKit: Tracing and Correlation
gem 'gitlab-labkit', '~> 0.3.0' gem 'gitlab-labkit', '~> 0.5'
# I18n # I18n
gem 'ruby_parser', '~> 3.8', require: false gem 'ruby_parser', '~> 3.8', require: false
@ -306,12 +311,8 @@ gem 'gettext', '~> 3.2.2', require: false, group: :development
gem 'batch-loader', '~> 1.4.0' gem 'batch-loader', '~> 1.4.0'
# Perf bar # Perf bar
gem 'peek', '~> 1.0.1' # https://gitlab.com/gitlab-org/gitlab-ee/issues/13996
gem 'peek-gc', '~> 0.0.2' gem 'gitlab-peek', '~> 0.0.1', require: 'peek'
gem 'peek-mysql2', '~> 1.2.0', group: :mysql
gem 'peek-pg', '~> 1.3.0', group: :postgres
gem 'peek-rblineprof', '~> 0.2.0'
gem 'peek-redis', '~> 1.2.0'
# Snowplow events tracking # Snowplow events tracking
gem 'snowplow-tracker', '~> 0.6.1' gem 'snowplow-tracker', '~> 0.6.1'
@ -325,13 +326,14 @@ group :metrics do
gem 'influxdb', '~> 0.2', require: false gem 'influxdb', '~> 0.2', require: false
# Prometheus # Prometheus
gem 'prometheus-client-mmap', '~> 0.9.8' gem 'prometheus-client-mmap', '~> 0.9.10'
gem 'raindrops', '~> 0.18' gem 'raindrops', '~> 0.18'
end end
group :development do group :development do
gem 'foreman', '~> 0.84.0' gem 'foreman', '~> 0.84.0'
gem 'brakeman', '~> 4.2', require: false gem 'brakeman', '~> 4.2', require: false
gem 'danger', '~> 6.0', require: false
gem 'letter_opener_web', '~> 1.3.4' gem 'letter_opener_web', '~> 1.3.4'
gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
@ -345,7 +347,6 @@ group :development do
end end
group :development, :test do group :development, :test do
gem 'bootsnap', '~> 1.4'
gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET'] gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
gem 'pry-byebug', '~> 3.5.1', platform: :mri gem 'pry-byebug', '~> 3.5.1', platform: :mri
gem 'pry-rails', '~> 0.3.4' gem 'pry-rails', '~> 0.3.4'
@ -384,15 +385,12 @@ group :development, :test do
gem 'haml_lint', '~> 0.31.0', require: false gem 'haml_lint', '~> 0.31.0', require: false
gem 'simplecov', '~> 0.16.1', require: false gem 'simplecov', '~> 0.16.1', require: false
gem 'bundler-audit', '~> 0.5.0', require: false gem 'bundler-audit', '~> 0.5.0', require: false
gem 'mdl', '~> 0.5.0', require: false
gem 'benchmark-ips', '~> 2.3.0', require: false gem 'benchmark-ips', '~> 2.3.0', require: false
gem 'license_finder', '~> 5.4', require: false gem 'license_finder', '~> 5.4', require: false
gem 'knapsack', '~> 1.17' gem 'knapsack', '~> 1.17'
gem 'activerecord_sane_schema_dumper', '1.0'
gem 'stackprof', '~> 0.2.10', require: false gem 'stackprof', '~> 0.2.10', require: false
gem 'simple_po_parser', '~> 1.1.2', require: false gem 'simple_po_parser', '~> 1.1.2', require: false
@ -406,7 +404,6 @@ group :test do
gem 'json-schema', '~> 2.8.0' gem 'json-schema', '~> 2.8.0'
gem 'webmock', '~> 3.5.1' gem 'webmock', '~> 3.5.1'
gem 'rails-controller-testing' gem 'rails-controller-testing'
gem 'sham_rack', '~> 1.3.6'
gem 'concurrent-ruby', '~> 1.1' gem 'concurrent-ruby', '~> 1.1'
gem 'test-prof', '~> 0.2.5' gem 'test-prof', '~> 0.2.5'
gem 'rspec_junit_formatter' gem 'rspec_junit_formatter'
@ -419,7 +416,7 @@ gem 'mail_room', '~> 0.9.1'
gem 'email_reply_trimmer', '~> 0.1' gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text' gem 'html2text'
gem 'ruby-prof', '~> 0.17.0' gem 'ruby-prof', '~> 1.0.0'
gem 'rbtrace', '~> 0.4', require: false gem 'rbtrace', '~> 0.4', require: false
gem 'memory_profiler', '~> 0.9', require: false gem 'memory_profiler', '~> 0.9', require: false
gem 'benchmark-memory', '~> 0.1', require: false gem 'benchmark-memory', '~> 0.1', require: false
@ -448,8 +445,8 @@ group :ed25519 do
gem 'bcrypt_pbkdf', '~> 1.0' gem 'bcrypt_pbkdf', '~> 1.0'
end end
# Gitaly GRPC client # Gitaly GRPC protocol definitions
gem 'gitaly-proto', '~> 1.37.0', require: 'gitaly' gem 'gitaly', '~> 1.58.0'
gem 'grpc', '~> 1.19.0' gem 'grpc', '~> 1.19.0'
@ -461,6 +458,7 @@ gem 'toml-rb', '~> 1.0.0', require: false
gem 'flipper', '~> 0.13.0' gem 'flipper', '~> 0.13.0'
gem 'flipper-active_record', '~> 0.13.0' gem 'flipper-active_record', '~> 0.13.0'
gem 'flipper-active_support_cache_store', '~> 0.13.0' gem 'flipper-active_support_cache_store', '~> 0.13.0'
gem 'unleash', '~> 0.1.5'
# Structured logging # Structured logging
gem 'lograge', '~> 0.5' gem 'lograge', '~> 0.5'
@ -468,3 +466,6 @@ gem 'grape_logging', '~> 1.7'
# DNS Lookup # DNS Lookup
gem 'net-dns', '~> 0.9.0' gem 'net-dns', '~> 0.9.0'
# Countries list
gem 'countries', '~> 3.0'

View File

@ -41,8 +41,6 @@ GEM
activerecord-explain-analyze (0.1.0) activerecord-explain-analyze (0.1.0)
activerecord (>= 4) activerecord (>= 4)
pg pg
activerecord_sane_schema_dumper (1.0)
rails (>= 5, < 6)
activestorage (5.2.3) activestorage (5.2.3)
actionpack (= 5.2.3) actionpack (= 5.2.3)
activerecord (= 5.2.3) activerecord (= 5.2.3)
@ -76,7 +74,8 @@ GEM
asciidoctor-plantuml (0.0.9) asciidoctor-plantuml (0.0.9)
asciidoctor (>= 1.5.6, < 3.0.0) asciidoctor (>= 1.5.6, < 3.0.0)
ast (2.4.0) ast (2.4.0)
atomic (1.1.99) atlassian-jwt (0.2.0)
jwt (~> 2.1.0)
attr_encrypted (3.1.0) attr_encrypted (3.1.0)
encryptor (~> 3.0.0) encryptor (~> 3.0.0)
attr_required (1.0.1) attr_required (1.0.1)
@ -109,7 +108,7 @@ GEM
binding_ninja (0.2.3) binding_ninja (0.2.3)
binding_of_caller (0.8.0) binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1) debug_inspector (>= 0.0.1)
bootsnap (1.4.1) bootsnap (1.4.4)
msgpack (~> 1.0) msgpack (~> 1.0)
bootstrap_form (4.2.0) bootstrap_form (4.2.0)
actionpack (>= 5.0) actionpack (>= 5.0)
@ -145,23 +144,31 @@ GEM
childprocess (0.9.0) childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11) ffi (~> 1.0, >= 1.0.11)
chronic (0.10.2) chronic (0.10.2)
chronic_duration (0.10.6)
numerizer (~> 0.1.1)
chunky_png (1.3.5) chunky_png (1.3.5)
citrus (3.0.2) citrus (3.0.2)
claide (1.0.3)
claide-plugins (0.9.2)
cork
nap
open4 (~> 1.3)
coderay (1.1.2) coderay (1.1.2)
coercible (1.0.0) coercible (1.0.0)
descendants_tracker (~> 0.0.1) descendants_tracker (~> 0.0.1)
colored2 (3.1.2)
commonmarker (0.17.13) commonmarker (0.17.13)
ruby-enum (~> 0.5) ruby-enum (~> 0.5)
concord (0.1.5) concord (0.1.5)
adamantium (~> 0.2.0) adamantium (~> 0.2.0)
equalizer (~> 0.0.9) equalizer (~> 0.0.9)
concurrent-ruby (1.1.5) concurrent-ruby (1.1.5)
concurrent-ruby-ext (1.1.5)
concurrent-ruby (= 1.1.5)
connection_pool (2.2.2) connection_pool (2.2.2)
contracts (0.11.0) contracts (0.11.0)
cork (0.3.0)
colored2 (~> 3.1)
countries (3.0.0)
i18n_data (~> 0.8.0)
sixarm_ruby_unaccent (~> 1.1)
unicode_utils (~> 1.4)
crack (0.4.3) crack (0.4.3)
safe_yaml (~> 1.0.0) safe_yaml (~> 1.0.0)
crass (1.0.4) crass (1.0.4)
@ -169,6 +176,19 @@ GEM
css_parser (1.5.0) css_parser (1.5.0)
addressable addressable
daemons (1.2.6) daemons (1.2.6)
danger (6.0.9)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
cork (~> 0.1)
faraday (~> 0.9)
faraday-http-cache (~> 2.0)
git (~> 1.5)
kramdown (~> 2.0)
kramdown-parser-gfm (~> 1.0)
no_proxy_fix
octokit (~> 4.7)
terminal-table (~> 1)
database_cleaner (1.7.0) database_cleaner (1.7.0)
debug_inspector (0.0.3) debug_inspector (0.0.3)
debugger-ruby_core_source (1.3.8) debugger-ruby_core_source (1.3.8)
@ -251,6 +271,8 @@ GEM
railties (>= 3.0.0) railties (>= 3.0.0)
faraday (0.12.2) faraday (0.12.2)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
faraday-http-cache (2.0.0)
faraday (~> 0.8)
faraday_middleware (0.12.2) faraday_middleware (0.12.2)
faraday (>= 0.7.4, < 1.0) faraday (>= 0.7.4, < 1.0)
faraday_middleware-aws-signers-v4 (0.1.7) faraday_middleware-aws-signers-v4 (0.1.7)
@ -262,7 +284,7 @@ GEM
fast_blank (1.0.0) fast_blank (1.0.0)
fast_gettext (1.6.0) fast_gettext (1.6.0)
ffaker (2.10.0) ffaker (2.10.0)
ffi (1.10.0) ffi (1.11.1)
flipper (0.13.0) flipper (0.13.0)
flipper-active_record (0.13.0) flipper-active_record (0.13.0)
activerecord (>= 3.2, < 6) activerecord (>= 3.2, < 6)
@ -288,7 +310,7 @@ GEM
excon (~> 0.58) excon (~> 0.58)
formatador (~> 0.2) formatador (~> 0.2)
mime-types mime-types
fog-google (1.8.2) fog-google (1.9.1)
fog-core (<= 2.1.0) fog-core (<= 2.1.0)
fog-json (~> 1.2) fog-json (~> 1.2)
fog-xml (~> 0.1.0) fog-xml (~> 0.1.0)
@ -335,24 +357,30 @@ GEM
gettext_i18n_rails (>= 0.7.1) gettext_i18n_rails (>= 0.7.1)
po_to_json (>= 1.0.0) po_to_json (>= 1.0.0)
rails (>= 3.2.0) rails (>= 3.2.0)
gitaly-proto (1.37.0) git (1.5.0)
gitaly (1.58.0)
grpc (~> 1.0) grpc (~> 1.0)
github-markup (1.7.0) github-markup (1.7.0)
gitlab-labkit (0.3.0) gitlab-labkit (0.5.2)
actionpack (~> 5) actionpack (~> 5)
activesupport (~> 5) activesupport (~> 5)
grpc (~> 1.19.0) grpc (~> 1.19)
jaeger-client (~> 0.10) jaeger-client (~> 0.10)
opentracing (~> 0.4) opentracing (~> 0.4)
redis (> 3.0.0, < 5.0.0)
gitlab-license (1.0.0) gitlab-license (1.0.0)
gitlab-markup (1.7.0) gitlab-markup (1.7.0)
gitlab-sidekiq-fetcher (0.4.0) gitlab-peek (0.0.1)
railties (>= 4.0.0)
gitlab-sidekiq-fetcher (0.5.2)
sidekiq (~> 5) sidekiq (~> 5)
gitlab-styles (2.7.0) gitlab-styles (2.8.0)
rubocop (~> 0.69.0) rubocop (~> 0.69.0)
rubocop-gitlab-security (~> 0.1.0) rubocop-gitlab-security (~> 0.1.0)
rubocop-performance (~> 1.1.0) rubocop-performance (~> 1.1.0)
rubocop-rspec (~> 1.19) rubocop-rspec (~> 1.19)
gitlab_chronic_duration (0.10.6.1)
numerizer (~> 0.1.1)
gitlab_omniauth-ldap (2.1.1) gitlab_omniauth-ldap (2.1.1)
net-ldap (~> 0.16) net-ldap (~> 0.16)
omniauth (~> 1.3) omniauth (~> 1.3)
@ -402,7 +430,7 @@ GEM
graphiql-rails (1.4.10) graphiql-rails (1.4.10)
railties railties
sprockets-rails sprockets-rails
graphql (1.8.1) graphql (1.9.11)
graphql-docs (1.6.0) graphql-docs (1.6.0)
commonmarker (~> 0.16) commonmarker (~> 0.16)
escape_utils (~> 1.2) escape_utils (~> 1.2)
@ -461,18 +489,22 @@ GEM
httpclient (2.8.3) httpclient (2.8.3)
i18n (1.6.0) i18n (1.6.0)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
i18n_data (0.8.0)
icalendar (2.4.1) icalendar (2.4.1)
ice_nine (0.11.2) ice_nine (0.11.2)
influxdb (0.2.3) influxdb (0.2.3)
cause cause
json json
invisible_captcha (0.12.1)
rails (>= 3.2.0)
ipaddress (0.8.3) ipaddress (0.8.3)
jaeger-client (0.10.0) jaeger-client (0.10.0)
opentracing (~> 0.3) opentracing (~> 0.3)
thrift thrift
jaro_winkler (1.5.2) jaro_winkler (1.5.3)
jira-ruby (1.4.1) jira-ruby (1.7.1)
activesupport activesupport
atlassian-jwt
multipart-post multipart-post
oauth (~> 0.5, >= 0.5.0) oauth (~> 0.5, >= 0.5.0)
jmespath (1.3.1) jmespath (1.3.1)
@ -503,8 +535,10 @@ GEM
kgio (2.11.2) kgio (2.11.2)
knapsack (1.17.0) knapsack (1.17.0)
rake rake
kramdown (1.17.0) kramdown (2.1.0)
kubeclient (4.2.2) kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
kubeclient (4.4.0)
http (~> 3.0) http (~> 3.0)
recursive-open-struct (~> 1.0, >= 1.0.4) recursive-open-struct (~> 1.0, >= 1.0.4)
rest-client (~> 2.0) rest-client (~> 2.0)
@ -539,10 +573,6 @@ GEM
mail_room (0.9.1) mail_room (0.9.1)
marcel (0.3.3) marcel (0.3.3)
mimemagic (~> 0.3.2) mimemagic (~> 0.3.2)
mdl (0.5.0)
kramdown (~> 1.12, >= 1.12.0)
mixlib-cli (~> 1.7, >= 1.7.0)
mixlib-config (~> 2.2, >= 2.2.1)
memoist (0.16.0) memoist (0.16.0)
memoizable (0.4.2) memoizable (0.4.2)
thread_safe (~> 0.3, >= 0.3.1) thread_safe (~> 0.3, >= 0.3.1)
@ -552,29 +582,28 @@ GEM
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2019.0331) mime-types-data (3.2019.0331)
mimemagic (0.3.2) mimemagic (0.3.2)
mini_magick (4.8.0) mini_magick (4.9.5)
mini_mime (1.0.1) mini_mime (1.0.1)
mini_portile2 (2.4.0) mini_portile2 (2.4.0)
minitest (5.11.3) minitest (5.11.3)
mixlib-cli (1.7.0) msgpack (1.3.0)
mixlib-config (2.2.18)
tomlrb
msgpack (1.2.10)
multi_json (1.13.1) multi_json (1.13.1)
multi_xml (0.6.0) multi_xml (0.6.0)
multipart-post (2.0.0) multipart-post (2.0.0)
murmurhash3 (0.1.6)
mustermann (1.0.3) mustermann (1.0.3)
mustermann-grape (1.0.0) mustermann-grape (1.0.0)
mustermann (~> 1.0.0) mustermann (~> 1.0.0)
mysql2 (0.4.10)
nakayoshi_fork (0.0.4) nakayoshi_fork (0.0.4)
nap (1.1.0)
net-dns (0.9.0) net-dns (0.9.0)
net-ldap (0.16.0) net-ldap (0.16.0)
net-ntp (2.1.3) net-ntp (2.1.3)
net-ssh (5.2.0) net-ssh (5.2.0)
netrc (0.11.0) netrc (0.11.0)
nio4r (2.3.1) nio4r (2.3.1)
nokogiri (1.10.3) no_proxy_fix (0.1.2)
nokogiri (1.10.4)
mini_portile2 (~> 2.4.0) mini_portile2 (~> 2.4.0)
nokogumbo (1.5.0) nokogumbo (1.5.0)
nokogiri nokogiri
@ -650,6 +679,7 @@ GEM
addressable (~> 2.5) addressable (~> 2.5)
omniauth (~> 1.3) omniauth (~> 1.3)
openid_connect (~> 1.1) openid_connect (~> 1.1)
open4 (1.3.4)
openid_connect (1.1.6) openid_connect (1.1.6)
activemodel activemodel
attr_required (>= 1.0.0) attr_required (>= 1.0.0)
@ -670,29 +700,6 @@ GEM
parser (2.6.3.0) parser (2.6.3.0)
ast (~> 2.4.0) ast (~> 2.4.0)
parslet (1.8.2) parslet (1.8.2)
peek (1.0.1)
concurrent-ruby (>= 0.9.0)
concurrent-ruby-ext (>= 0.9.0)
railties (>= 4.0.0)
peek-gc (0.0.2)
peek
peek-mysql2 (1.2.0)
concurrent-ruby
concurrent-ruby-ext
mysql2
peek
peek-pg (1.3.0)
concurrent-ruby
concurrent-ruby-ext
peek
pg
peek-rblineprof (0.2.0)
peek
rblineprof
peek-redis (1.2.0)
atomic (>= 1.0.0)
peek
redis
pg (1.1.4) pg (1.1.4)
po_to_json (1.0.1) po_to_json (1.0.1)
json (>= 1.6.0) json (>= 1.6.0)
@ -708,7 +715,7 @@ GEM
parser parser
unparser unparser
procto (0.0.3) procto (0.0.3)
prometheus-client-mmap (0.9.8) prometheus-client-mmap (0.9.10)
pry (0.11.3) pry (0.11.3)
coderay (~> 1.1.0) coderay (~> 1.1.0)
method_source (~> 0.9.0) method_source (~> 0.9.0)
@ -763,7 +770,7 @@ GEM
rails-dom-testing (2.0.3) rails-dom-testing (2.0.3)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.0.4) rails-html-sanitizer (1.2.0)
loofah (~> 2.2, >= 2.2.2) loofah (~> 2.2, >= 2.2.2)
rails-i18n (5.1.1) rails-i18n (5.1.1)
i18n (>= 0.7, < 2) i18n (>= 0.7, < 2)
@ -791,17 +798,17 @@ GEM
recaptcha (4.13.1) recaptcha (4.13.1)
json json
recursive-open-struct (1.1.0) recursive-open-struct (1.1.0)
redis (3.3.5) redis (4.1.2)
redis-actionpack (5.0.2) redis-actionpack (5.0.2)
actionpack (>= 4.0, < 6) actionpack (>= 4.0, < 6)
redis-rack (>= 1, < 3) redis-rack (>= 1, < 3)
redis-store (>= 1.1.0, < 2) redis-store (>= 1.1.0, < 2)
redis-activesupport (5.0.4) redis-activesupport (5.0.7)
activesupport (>= 3, < 6) activesupport (>= 3, < 6)
redis-store (>= 1.3, < 2) redis-store (>= 1.3, < 2)
redis-namespace (1.6.0) redis-namespace (1.6.0)
redis (>= 3.0.4) redis (>= 3.0.4)
redis-rack (2.0.4) redis-rack (2.0.5)
rack (>= 1.5, < 3) rack (>= 1.5, < 3)
redis-store (>= 1.2, < 2) redis-store (>= 1.2, < 2)
redis-rails (5.0.2) redis-rails (5.0.2)
@ -827,7 +834,7 @@ GEM
retriable (3.1.2) retriable (3.1.2)
rinku (2.0.0) rinku (2.0.0)
rotp (2.1.2) rotp (2.1.2)
rouge (3.5.1) rouge (3.7.0)
rqrcode (0.7.0) rqrcode (0.7.0)
chunky_png chunky_png
rqrcode-rails3 (0.1.7) rqrcode-rails3 (0.1.7)
@ -886,8 +893,8 @@ GEM
i18n i18n
ruby-fogbugz (0.2.1) ruby-fogbugz (0.2.1)
crack (~> 0.4) crack (~> 0.4)
ruby-prof (0.17.0) ruby-prof (1.0.0)
ruby-progressbar (1.10.0) ruby-progressbar (1.10.1)
ruby-saml (1.7.2) ruby-saml (1.7.2)
nokogiri (>= 1.5.10) nokogiri (>= 1.5.10)
ruby_parser (3.13.1) ruby_parser (3.13.1)
@ -895,7 +902,7 @@ GEM
rubyntlm (0.6.2) rubyntlm (0.6.2)
rubypants (0.2.0) rubypants (0.2.0)
rubyzip (1.2.2) rubyzip (1.2.2)
rugged (0.28.1) rugged (0.28.3.1)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sanitize (4.6.6) sanitize (4.6.6)
crass (~> 1.0.2) crass (~> 1.0.2)
@ -931,8 +938,6 @@ GEM
faraday (>= 0.7.6, < 1.0) faraday (>= 0.7.6, < 1.0)
settingslogic (2.0.9) settingslogic (2.0.9)
sexp_processor (4.12.0) sexp_processor (4.12.0)
sham_rack (1.3.6)
rack
shoulda-matchers (4.0.1) shoulda-matchers (4.0.1)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
sidekiq (5.2.7) sidekiq (5.2.7)
@ -954,6 +959,7 @@ GEM
json (>= 1.8, < 3) json (>= 1.8, < 3)
simplecov-html (~> 0.10.0) simplecov-html (~> 0.10.0)
simplecov-html (0.10.2) simplecov-html (0.10.2)
sixarm_ruby_unaccent (1.2.0)
slack-notifier (1.5.1) slack-notifier (1.5.1)
snowplow-tracker (0.6.1) snowplow-tracker (0.6.1)
contracts (~> 0.7, <= 0.11) contracts (~> 0.7, <= 0.11)
@ -986,6 +992,8 @@ GEM
ffi ffi
sysexits (1.2.0) sysexits (1.2.0)
temple (0.8.1) temple (0.8.1)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
test-prof (0.2.5) test-prof (0.2.5)
text (1.3.1) text (1.3.1)
thin (1.7.2) thin (1.7.2)
@ -1002,7 +1010,6 @@ GEM
parslet (~> 1.8.0) parslet (~> 1.8.0)
toml-rb (1.0.0) toml-rb (1.0.0)
citrus (~> 3.0, > 3.0) citrus (~> 3.0, > 3.0)
tomlrb (1.2.8)
truncato (0.7.11) truncato (0.7.11)
htmlentities (~> 4.3.1) htmlentities (~> 4.3.1)
nokogiri (>= 1.7.0, <= 2.0) nokogiri (>= 1.7.0, <= 2.0)
@ -1017,6 +1024,7 @@ GEM
unf_ext unf_ext
unf_ext (0.0.7.5) unf_ext (0.0.7.5)
unicode-display_width (1.6.0) unicode-display_width (1.6.0)
unicode_utils (1.4.0)
unicorn (5.4.1) unicorn (5.4.1)
kgio (~> 2.6) kgio (~> 2.6)
raindrops (~> 0.7) raindrops (~> 0.7)
@ -1024,6 +1032,8 @@ GEM
get_process_mem (~> 0) get_process_mem (~> 0)
unicorn (>= 4, < 6) unicorn (>= 4, < 6)
uniform_notifier (1.10.0) uniform_notifier (1.10.0)
unleash (0.1.5)
murmurhash3 (~> 0.1.6)
unparser (0.4.5) unparser (0.4.5)
abstract_type (~> 0.0.7) abstract_type (~> 0.0.7)
adamantium (~> 0.2.0) adamantium (~> 0.2.0)
@ -1079,7 +1089,6 @@ DEPENDENCIES
ace-rails-ap (~> 4.1.0) ace-rails-ap (~> 4.1.0)
acme-client (~> 2.0.2) acme-client (~> 2.0.2)
activerecord-explain-analyze (~> 0.1) activerecord-explain-analyze (~> 0.1)
activerecord_sane_schema_dumper (= 1.0)
acts-as-taggable-on (~> 6.0) acts-as-taggable-on (~> 6.0)
addressable (~> 2.5.2) addressable (~> 2.5.2)
akismet (~> 2.0) akismet (~> 2.0)
@ -1088,6 +1097,7 @@ DEPENDENCIES
asciidoctor (~> 2.0.10) asciidoctor (~> 2.0.10)
asciidoctor-include-ext (~> 0.3.1) asciidoctor-include-ext (~> 0.3.1)
asciidoctor-plantuml (= 0.0.9) asciidoctor-plantuml (= 0.0.9)
atlassian-jwt (~> 0.2.0)
attr_encrypted (~> 3.1.0) attr_encrypted (~> 3.1.0)
awesome_print awesome_print
aws-sdk aws-sdk
@ -1110,11 +1120,12 @@ DEPENDENCIES
carrierwave (~> 1.3) carrierwave (~> 1.3)
charlock_holmes (~> 0.7.5) charlock_holmes (~> 0.7.5)
chronic (~> 0.10.2) chronic (~> 0.10.2)
chronic_duration (~> 0.10.6)
commonmarker (~> 0.17) commonmarker (~> 0.17)
concurrent-ruby (~> 1.1) concurrent-ruby (~> 1.1)
connection_pool (~> 2.0) connection_pool (~> 2.0)
countries (~> 3.0)
creole (~> 0.5.0) creole (~> 0.5.0)
danger (~> 6.0)
database_cleaner (~> 1.7.0) database_cleaner (~> 1.7.0)
deckar01-task_list (= 2.2.0) deckar01-task_list (= 2.2.0)
default_value_for (~> 3.2.0) default_value_for (~> 3.2.0)
@ -1145,7 +1156,7 @@ DEPENDENCIES
fog-aliyun (~> 0.3) fog-aliyun (~> 0.3)
fog-aws (~> 3.5) fog-aws (~> 3.5)
fog-core (= 2.1.0) fog-core (= 2.1.0)
fog-google (~> 1.8) fog-google (~> 1.9)
fog-local (~> 0.6) fog-local (~> 0.6)
fog-openstack (~> 1.0) fog-openstack (~> 1.0)
fog-rackspace (~> 0.1.1) fog-rackspace (~> 0.1.1)
@ -1157,13 +1168,15 @@ DEPENDENCIES
gettext (~> 3.2.2) gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3) gettext_i18n_rails_js (~> 1.3)
gitaly-proto (~> 1.37.0) gitaly (~> 1.58.0)
github-markup (~> 1.7.0) github-markup (~> 1.7.0)
gitlab-labkit (~> 0.3.0) gitlab-labkit (~> 0.5)
gitlab-license (~> 1.0) gitlab-license (~> 1.0)
gitlab-markup (~> 1.7.0) gitlab-markup (~> 1.7.0)
gitlab-sidekiq-fetcher (~> 0.4.0) gitlab-peek (~> 0.0.1)
gitlab-sidekiq-fetcher (= 0.5.2)
gitlab-styles (~> 2.7) gitlab-styles (~> 2.7)
gitlab_chronic_duration (~> 0.10.6.1)
gitlab_omniauth-ldap (~> 2.1.1) gitlab_omniauth-ldap (~> 2.1.1)
gon (~> 6.2) gon (~> 6.2)
google-api-client (~> 0.23) google-api-client (~> 0.23)
@ -1174,7 +1187,7 @@ DEPENDENCIES
grape-path-helpers (~> 1.1) grape-path-helpers (~> 1.1)
grape_logging (~> 1.7) grape_logging (~> 1.7)
graphiql-rails (~> 1.4.10) graphiql-rails (~> 1.4.10)
graphql (~> 1.8.0) graphql (~> 1.9.11)
graphql-docs (~> 1.6.0) graphql-docs (~> 1.6.0)
grpc (~> 1.19.0) grpc (~> 1.19.0)
gssapi gssapi
@ -1189,32 +1202,31 @@ DEPENDENCIES
httparty (~> 0.16.4) httparty (~> 0.16.4)
icalendar icalendar
influxdb (~> 0.2) influxdb (~> 0.2)
jira-ruby (~> 1.4) invisible_captcha (~> 0.12.1)
jira-ruby (~> 1.7)
js_regex (~> 3.1) js_regex (~> 3.1)
json-schema (~> 2.8.0) json-schema (~> 2.8.0)
jwt (~> 2.1.0) jwt (~> 2.1.0)
kaminari (~> 1.0) kaminari (~> 1.0)
knapsack (~> 1.17) knapsack (~> 1.17)
kubeclient (~> 4.2.2) kubeclient (~> 4.4.0)
letter_opener_web (~> 1.3.4) letter_opener_web (~> 1.3.4)
license_finder (~> 5.4) license_finder (~> 5.4)
licensee (~> 8.9) licensee (~> 8.9)
lograge (~> 0.5) lograge (~> 0.5)
loofah (~> 2.2) loofah (~> 2.2)
mail_room (~> 0.9.1) mail_room (~> 0.9.1)
mdl (~> 0.5.0)
memory_profiler (~> 0.9) memory_profiler (~> 0.9)
method_source (~> 0.8) method_source (~> 0.8)
mimemagic (~> 0.3.2) mimemagic (~> 0.3.2)
mini_magick mini_magick
minitest (~> 5.11.0) minitest (~> 5.11.0)
mysql2 (~> 0.4.10)
nakayoshi_fork (~> 0.0.4) nakayoshi_fork (~> 0.0.4)
net-dns (~> 0.9.0) net-dns (~> 0.9.0)
net-ldap net-ldap
net-ntp net-ntp
net-ssh (~> 5.2) net-ssh (~> 5.2)
nokogiri (~> 1.10.3) nokogiri (~> 1.10.4)
oauth2 (~> 1.4) oauth2 (~> 1.4)
octokit (~> 4.9) octokit (~> 4.9)
omniauth (~> 1.8) omniauth (~> 1.8)
@ -1236,15 +1248,9 @@ DEPENDENCIES
omniauth_crowd (~> 2.2.0) omniauth_crowd (~> 2.2.0)
omniauth_openid_connect (~> 0.3.1) omniauth_openid_connect (~> 0.3.1)
org-ruby (~> 0.9.12) org-ruby (~> 0.9.12)
peek (~> 1.0.1)
peek-gc (~> 0.0.2)
peek-mysql2 (~> 1.2.0)
peek-pg (~> 1.3.0)
peek-rblineprof (~> 0.2.0)
peek-redis (~> 1.2.0)
pg (~> 1.1) pg (~> 1.1)
premailer-rails (~> 1.9.7) premailer-rails (~> 1.9.7)
prometheus-client-mmap (~> 0.9.8) prometheus-client-mmap (~> 0.9.10)
pry-byebug (~> 3.5.1) pry-byebug (~> 3.5.1)
pry-rails (~> 0.3.4) pry-rails (~> 0.3.4)
puma (~> 3.12) puma (~> 3.12)
@ -1265,12 +1271,12 @@ DEPENDENCIES
rdoc (~> 6.0) rdoc (~> 6.0)
re2 (~> 1.1.1) re2 (~> 1.1.1)
recaptcha (~> 4.11) recaptcha (~> 4.11)
redis (~> 3.2) redis (~> 4.0)
redis-namespace (~> 1.6.0) redis-namespace (~> 1.6.0)
redis-rails (~> 5.0.2) redis-rails (~> 5.0.2)
request_store (~> 1.3) request_store (~> 1.3)
responders (~> 2.0) responders (~> 2.0)
rouge (~> 3.5) rouge (~> 3.7)
rqrcode-rails3 (~> 0.1.7) rqrcode-rails3 (~> 0.1.7)
rspec-parameterized rspec-parameterized
rspec-rails (~> 3.8.0) rspec-rails (~> 3.8.0)
@ -1282,7 +1288,7 @@ DEPENDENCIES
rubocop-performance (~> 1.1.0) rubocop-performance (~> 1.1.0)
rubocop-rspec (~> 1.22.1) rubocop-rspec (~> 1.22.1)
ruby-fogbugz (~> 0.2.1) ruby-fogbugz (~> 0.2.1)
ruby-prof (~> 0.17.0) ruby-prof (~> 1.0.0)
ruby-progressbar ruby-progressbar
ruby_parser (~> 3.8) ruby_parser (~> 3.8)
rubyzip (~> 1.2.2) rubyzip (~> 1.2.2)
@ -1294,7 +1300,6 @@ DEPENDENCIES
selenium-webdriver (~> 3.141) selenium-webdriver (~> 3.141)
sentry-raven (~> 2.9) sentry-raven (~> 2.9)
settingslogic (~> 2.0.9) settingslogic (~> 2.0.9)
sham_rack (~> 1.3.6)
shoulda-matchers (~> 4.0.1) shoulda-matchers (~> 4.0.1)
sidekiq (~> 5.2.7) sidekiq (~> 5.2.7)
sidekiq-cron (~> 1.0) sidekiq-cron (~> 1.0)
@ -1319,9 +1324,9 @@ DEPENDENCIES
unf (~> 0.1.4) unf (~> 0.1.4)
unicorn (~> 5.4.1) unicorn (~> 5.4.1)
unicorn-worker-killer (~> 0.4.4) unicorn-worker-killer (~> 0.4.4)
unleash (~> 0.1.5)
validates_hostname (~> 1.0.6) validates_hostname (~> 1.0.6)
version_sorter (~> 2.2.4) version_sorter (~> 2.2.4)
virtus (~> 1.0.1)
vmstat (~> 2.3.0) vmstat (~> 2.3.0)
webmock (~> 3.5.1) webmock (~> 3.5.1)
webpack-rails (~> 0.9.10) webpack-rails (~> 0.9.10)

View File

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix #! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log vgo2nix yarn2nix-moretea.yarn2nix
import click import click
import click_log import click_log
@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
class GitLabRepo: class GitLabRepo:
version_regex = re.compile(r"^v\d+\.\d+\.\d+(\-rc\d+)?(\-ee)?") version_regex = re.compile(r"^v\d+\.\d+\.\d+(\-rc\d+)?(\-ee)?")
def __init__(self, owner: str, repo: str): def __init__(self, owner: str = 'gitlab-org', repo: str = 'gitlab'):
self.owner = owner self.owner = owner
self.repo = repo self.repo = repo
@ -46,24 +46,6 @@ class GitLabRepo:
j = json.loads(out) j = json.loads(out)
return j['sha256'] return j['sha256']
def get_deb_url(self, flavour: str, version: str, arch: str = 'amd64') -> str:
"""
gitlab builds debian packages, which we currently need as we don't build the frontend on our own
this returns the url of a given flavour, version and arch
:param flavour: 'ce' or 'ee'
:param version: a version, without 'v' prefix and '-ee' suffix
:param arch: amd64
:return: url of the debian package
"""
if self.owner != "gitlab-org" or self.repo not in ['gitlab-ce', 'gitlab-ee']:
raise Exception(f"don't know how to get deb_url for {self.url}")
return f"https://packages.gitlab.com/gitlab/gitlab-{flavour}/packages" + \
f"/debian/stretch/gitlab-{flavour}_{version}-{flavour}.0_{arch}.deb/download.deb"
def get_deb_hash(self, flavour: str, version: str) -> str:
out = subprocess.check_output(['nix-prefetch-url', self.get_deb_url(flavour, version)])
return out.decode('utf-8').strip()
@staticmethod @staticmethod
def rev2version(tag: str) -> str: def rev2version(tag: str) -> str:
""" """
@ -86,46 +68,19 @@ class GitLabRepo:
""" """
return requests.get(self.url + f"/raw/{rev}/{filepath}").text return requests.get(self.url + f"/raw/{rev}/{filepath}").text
def get_data(self, rev, flavour): def get_data(self, rev):
version = self.rev2version(rev) version = self.rev2version(rev)
passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION', passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']} 'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
return dict(version=self.rev2version(rev), return dict(version=self.rev2version(rev),
repo_hash=self.get_git_hash(rev), repo_hash=self.get_git_hash(rev),
deb_hash=self.get_deb_hash(flavour, version),
deb_url=self.get_deb_url(flavour, version),
owner=self.owner, owner=self.owner,
repo=self.repo, repo=self.repo,
rev=rev, rev=rev,
passthru=passthru) passthru=passthru)
def _flavour2gitlabrepo(flavour: str):
if flavour not in ['ce', 'ee']:
raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
owner = 'gitlab-org'
repo = 'gitlab-' + flavour
return GitLabRepo(owner, repo)
def _update_data_json(filename: str, repo: GitLabRepo, rev: str, flavour: str):
flavour_data = repo.get_data(rev, flavour)
if not os.path.exists(filename):
with open(filename, 'w') as f:
json.dump({flavour: flavour_data}, f, indent=2)
else:
with open(filename, 'r+') as f:
data = json.load(f)
data[flavour] = flavour_data
f.seek(0)
f.truncate()
json.dump(data, f, indent=2)
def _get_data_json(): def _get_data_json():
data_file_path = pathlib.Path(__file__).parent / 'data.json' data_file_path = pathlib.Path(__file__).parent / 'data.json'
with open(data_file_path, 'r') as f: with open(data_file_path, 'r') as f:
@ -146,100 +101,139 @@ def cli():
@cli.command('update-data') @cli.command('update-data')
@click.option('--rev', default='latest', help='The rev to use, \'latest\' points to the latest (stable) tag') @click.option('--rev', default='latest', help='The rev to use, \'latest\' points to the latest (stable) tag')
@click.argument('flavour') def update_data(rev: str):
def update_data(rev: str, flavour: str): """Update data.nix"""
"""Update data.nix for a selected flavour""" repo = GitLabRepo()
r = _flavour2gitlabrepo(flavour)
if rev == 'latest': if rev == 'latest':
# filter out pre and re releases # filter out pre and re releases
rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), r.tags)) rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), repo.tags))
logger.debug(f"Using rev {rev}") logger.debug(f"Using rev {rev}")
version = r.rev2version(rev) version = repo.rev2version(rev)
logger.debug(f"Using version {version}") logger.debug(f"Using version {version}")
data_file_path = pathlib.Path(__file__).parent / 'data.json' data_file_path = pathlib.Path(__file__).parent / 'data.json'
_update_data_json(filename=data_file_path.as_posix(), data = repo.get_data(rev)
repo=r,
rev=rev, with open(data_file_path.as_posix(), 'w') as f:
flavour=flavour) json.dump(data, f, indent=2)
@cli.command('update-rubyenv') @cli.command('update-rubyenv')
@click.argument('flavour') def update_rubyenv():
def update_rubyenv(flavour): """Update rubyEnv"""
"""Update rubyEnv-${flavour}""" repo = GitLabRepo()
if flavour not in ['ce', 'ee']: rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv"
raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
r = _flavour2gitlabrepo(flavour)
rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv-{flavour}"
# load rev from data.json # load rev from data.json
data = _get_data_json() data = _get_data_json()
rev = data[flavour]['rev'] rev = data['rev']
for fn in ['Gemfile.lock', 'Gemfile']: for fn in ['Gemfile.lock', 'Gemfile']:
with open(rubyenv_dir / fn, 'w') as f: with open(rubyenv_dir / fn, 'w') as f:
f.write(r.get_file(fn, rev)) f.write(repo.get_file(fn, rev))
subprocess.check_output(['bundix'], cwd=rubyenv_dir) subprocess.check_output(['bundix'], cwd=rubyenv_dir)
@cli.command('update-yarnpkgs')
def update_yarnpkgs():
"""Update yarnPkgs"""
repo = GitLabRepo()
yarnpkgs_dir = pathlib.Path(__file__).parent
# load rev from data.json
data = _get_data_json()
rev = data['rev']
with open(yarnpkgs_dir / 'yarn.lock', 'w') as f:
f.write(repo.get_file('yarn.lock', rev))
with open(yarnpkgs_dir / 'yarnPkgs.nix', 'w') as f:
subprocess.run(['yarn2nix'], cwd=yarnpkgs_dir, check=True, stdout=f)
os.unlink(yarnpkgs_dir / 'yarn.lock')
@cli.command('update-gitaly') @cli.command('update-gitaly')
def update_gitaly(): def update_gitaly():
"""Update gitaly""" """Update gitaly"""
data = _get_data_json() data = _get_data_json()
gitaly_server_version = data['ce']['passthru']['GITALY_SERVER_VERSION'] gitaly_server_version = data['passthru']['GITALY_SERVER_VERSION']
r = GitLabRepo('gitlab-org', 'gitaly') repo = GitLabRepo(repo='gitaly')
gitaly_dir = pathlib.Path(__file__).parent / 'gitaly' gitaly_dir = pathlib.Path(__file__).parent / 'gitaly'
for fn in ['Gemfile.lock', 'Gemfile']: for fn in ['Gemfile.lock', 'Gemfile']:
with open(gitaly_dir / fn, 'w') as f: with open(gitaly_dir / fn, 'w') as f:
f.write(r.get_file(f"ruby/{fn}", f"v{gitaly_server_version}")) f.write(repo.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
for fn in ['go.mod', 'go.sum']: for fn in ['go.mod', 'go.sum']:
with open(gitaly_dir / fn, 'w') as f: with open(gitaly_dir / fn, 'w') as f:
f.write(r.get_file(fn, f"v{gitaly_server_version}")) f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
subprocess.check_output(['bundix'], cwd=gitaly_dir) subprocess.check_output(['bundix'], cwd=gitaly_dir)
subprocess.check_output(['vgo2nix'], cwd=gitaly_dir) subprocess.check_output(['vgo2nix'], cwd=gitaly_dir)
for fn in ['go.mod', 'go.sum']: for fn in ['go.mod', 'go.sum']:
os.unlink(gitaly_dir / fn) os.unlink(gitaly_dir / fn)
# currently broken, as `gitaly.meta.position` returns
# pkgs/development/go-modules/generic/default.nix _call_update_source_version('gitaly', gitaly_server_version)
# so update-source-version doesn't know where to update hashes
# _call_update_source_version('gitaly', gitaly_server_version)
gitaly_hash = r.get_git_hash(f"v{gitaly_server_version}")
click.echo(f"Please update gitaly/default.nix to version {gitaly_server_version} and hash {gitaly_hash}")
@cli.command('update-gitlab-shell') @cli.command('update-gitlab-shell')
def update_gitlab_shell(): def update_gitlab_shell():
"""Update gitlab-shell""" """Update gitlab-shell"""
data = _get_data_json() data = _get_data_json()
gitlab_shell_version = data['ce']['passthru']['GITLAB_SHELL_VERSION'] gitlab_shell_version = data['passthru']['GITLAB_SHELL_VERSION']
_call_update_source_version('gitlab-shell', gitlab_shell_version) _call_update_source_version('gitlab-shell', gitlab_shell_version)
repo = GitLabRepo(repo='gitlab-shell')
gitlab_shell_dir = pathlib.Path(__file__).parent / 'gitlab-shell'
for fn in ['Gemfile.lock', 'Gemfile']:
with open(gitlab_shell_dir / fn, 'w') as f:
f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
for fn in ['go.mod', 'go.sum']:
with open(gitlab_shell_dir / fn, 'w') as f:
f.write(repo.get_file(f"go/{fn}", f"v{gitlab_shell_version}"))
subprocess.check_output(['bundix'], cwd=gitlab_shell_dir)
subprocess.check_output(['vgo2nix'], cwd=gitlab_shell_dir)
for fn in ['go.mod', 'go.sum']:
os.unlink(gitlab_shell_dir / fn)
@cli.command('update-gitlab-workhorse') @cli.command('update-gitlab-workhorse')
def update_gitlab_workhorse(): def update_gitlab_workhorse():
"""Update gitlab-shell""" """Update gitlab-workhorse"""
data = _get_data_json() data = _get_data_json()
gitlab_workhorse_version = data['ce']['passthru']['GITLAB_WORKHORSE_VERSION'] gitlab_workhorse_version = data['passthru']['GITLAB_WORKHORSE_VERSION']
_call_update_source_version('gitlab-workhorse', gitlab_workhorse_version) _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
repo = GitLabRepo('gitlab-org', 'gitlab-workhorse')
gitlab_workhorse_dir = pathlib.Path(__file__).parent / 'gitlab-workhorse'
for fn in ['go.mod', 'go.sum']:
with open(gitlab_workhorse_dir / fn, 'w') as f:
f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
subprocess.check_output(['vgo2nix'], cwd=gitlab_workhorse_dir)
for fn in ['go.mod', 'go.sum']:
os.unlink(gitlab_workhorse_dir / fn)
@cli.command('update-all') @cli.command('update-all')
@click.pass_context @click.pass_context
def update_all(ctx): def update_all(ctx):
"""Update gitlab ce and ee data.nix and rubyenvs to the latest stable release""" """Update all gitlab components to the latest stable release"""
for flavour in ['ce', 'ee']: ctx.invoke(update_data, rev='latest')
ctx.invoke(update_data, rev='latest', flavour=flavour) ctx.invoke(update_rubyenv)
ctx.invoke(update_rubyenv, flavour=flavour) ctx.invoke(update_yarnpkgs)
ctx.invoke(update_gitaly) ctx.invoke(update_gitaly)
ctx.invoke(update_gitlab_shell) ctx.invoke(update_gitlab_shell)
ctx.invoke(update_gitlab_workhorse) ctx.invoke(update_gitlab_workhorse)

File diff suppressed because it is too large Load Diff