about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/version-management/gitlab
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/version-management/gitlab')
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json32
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/default.nix115
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile30
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock171
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix563
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch58
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch152
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake43
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile434
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock1175
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix3524
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile452
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock1214
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix3653
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/gitlab/update.py235
18 files changed, 11962 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
new file mode 100644
index 000000000000..b5a5a9feb76b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -0,0 +1,32 @@
+{
+  "ce": {
+    "version": "11.7.4",
+    "repo_hash": "0qq9snykdlpkpbznwpkv0n7bz1rsgz4z7lcjl4xkjxkf2gkf8pxp",
+    "deb_hash": "1j76jya0ydyg7v3vcdfjmcr5ir23yzdwmg9fxlirvgh74py7q85c",
+    "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_11.7.4-ce.0_amd64.deb/download.deb",
+    "owner": "gitlab-org",
+    "repo": "gitlab-ce",
+    "rev": "v11.7.4",
+    "passthru": {
+      "GITALY_SERVER_VERSION": "1.12.2",
+      "GITLAB_PAGES_VERSION": "1.3.1",
+      "GITLAB_SHELL_VERSION": "8.4.4",
+      "GITLAB_WORKHORSE_VERSION": "8.0.1"
+    }
+  },
+  "ee": {
+    "version": "11.7.4",
+    "repo_hash": "0riqww094ylbbwb9mhjpsqhrdpxlcf6rc5p796p7x7f46p31mcjb",
+    "deb_hash": "02hnhhyrm4a3lgwnl399byka2dr5q3pjirki447373270ca93h5i",
+    "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_11.7.4-ee.0_amd64.deb/download.deb",
+    "owner": "gitlab-org",
+    "repo": "gitlab-ee",
+    "rev": "v11.7.4-ee",
+    "passthru": {
+      "GITALY_SERVER_VERSION": "1.12.2",
+      "GITLAB_PAGES_VERSION": "1.3.1",
+      "GITLAB_SHELL_VERSION": "8.4.4",
+      "GITLAB_WORKHORSE_VERSION": "8.0.1"
+    }
+  }
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
new file mode 100644
index 000000000000..2ffe1141b5a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -0,0 +1,115 @@
+{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
+, ruby, tzdata, git, procps, nettools
+, gitlabEnterprise ? false
+}:
+
+let
+  rubyEnv = bundlerEnv {
+    name = "gitlab-env-${version}";
+    inherit ruby;
+    gemdir = ./rubyEnv- + "${if gitlabEnterprise then "ee" else "ce"}";
+    groups = [ "default" "unicorn" "ed25519" "metrics" ];
+  };
+
+  flavour = if gitlabEnterprise then "ee" else "ce";
+  data = (builtins.fromJSON (builtins.readFile ./data.json)).${flavour};
+
+  version = data.version;
+  sources = {
+    gitlab = fetchFromGitLab {
+      owner = data.owner;
+      repo = data.repo;
+      rev = data.rev;
+      sha256 = data.repo_hash;
+    };
+    gitlabDeb = fetchurl {
+      url = data.deb_url;
+      sha256 = data.deb_hash;
+    };
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "gitlab${if gitlabEnterprise then "-ee" else ""}-${version}";
+
+  src = sources.gitlab;
+
+  buildInputs = [
+    rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git procps nettools
+  ];
+
+  patches = [ ./remove-hardcoded-locations.patch ];
+
+  postPatch = ''
+    # For reasons I don't understand "bundle exec" ignores the
+    # RAILS_ENV causing tests to be executed that fail because we're
+    # not installing development and test gems above. Deleting the
+    # tests works though.:
+    rm lib/tasks/test.rake
+
+    rm config/initializers/gitlab_shell_secret_token.rb
+
+    substituteInPlace app/controllers/admin/background_jobs_controller.rb \
+        --replace "ps -U" "${procps}/bin/ps -U"
+
+    sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake
+    sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb
+  '';
+
+  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
+
+    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
+    mv config config.dist
+  '';
+
+  installPhase = ''
+    rm -r tmp
+    mkdir -p $out/share
+    cp -r . $out/share/gitlab
+    rm -rf $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/config $out/share/gitlab/config
+    ln -sf /run/gitlab/tmp $out/share/gitlab/tmp
+
+    # rake tasks to mitigate CVE-2017-0882
+    # see https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/
+    cp ${./reset_token.rake} $out/share/gitlab/lib/tasks/reset_token.rake
+  '';
+
+  passthru = {
+    inherit rubyEnv;
+    ruby = rubyEnv.wrappedRuby;
+    GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION;
+    GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION;
+    GITLAB_SHELL_VERSION = data.passthru.GITLAB_SHELL_VERSION;
+    GITLAB_WORKHORSE_VERSION = data.passthru.GITLAB_WORKHORSE_VERSION;
+  };
+
+  meta = with lib; {
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fpletz globin krav ];
+  } // (if gitlabEnterprise then
+    {
+      license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE
+      description = "GitLab Enterprise Edition";
+    }
+  else
+    {
+      license = licenses.mit;
+      description = "GitLab Community Edition";
+      longDescription = "GitLab Community Edition (CE) is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab CE on your own servers, in a container, or on a cloud provider.";
+    });
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
new file mode 100644
index 000000000000..81f1864099f3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -0,0 +1,30 @@
+source 'https://rubygems.org'
+
+# Require bundler >= 1.16.5 to avoid this bug: https://github.com/bundler/bundler/issues/6537
+gem 'bundler', '>= 1.16.5'
+
+gem 'rugged', '~> 0.27'
+gem 'github-linguist', '~> 6.1', require: 'linguist'
+gem 'gitlab-markup', '~> 1.6.5'
+gem 'gitaly-proto', '~> 1.3.0'
+gem 'activesupport', '~> 5.0.2'
+gem 'rdoc', '~> 4.2'
+gem 'gitlab-gollum-lib', '~> 4.2', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false
+gem 'grpc', '~> 1.15.0'
+gem 'sentry-raven', '~> 2.7.2', require: false
+gem 'faraday', '~> 0.12'
+
+# Detects the open source license the repository includes
+# This version needs to be in sync with GitLab CE/EE
+gem 'licensee', '~> 8.9.0'
+
+gem 'google-protobuf', '~> 3.6'
+
+group :development, :test do
+  gem 'rubocop', '~> 0.50', require: false
+  gem 'rspec', require: false
+  gem 'rspec-parameterized', require: false
+  gem 'timecop', require: false
+  gem 'factory_bot', require: false
+end
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
new file mode 100644
index 000000000000..59f8ad69f223
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -0,0 +1,171 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    abstract_type (0.0.7)
+    activesupport (5.0.7)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    ast (2.4.0)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    charlock_holmes (0.7.6)
+    coderay (1.1.2)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    concurrent-ruby (1.1.3)
+    crass (1.0.4)
+    debug_inspector (0.0.3)
+    diff-lcs (1.3)
+    equalizer (0.0.11)
+    escape_utils (1.2.1)
+    factory_bot (4.11.1)
+      activesupport (>= 3.0.0)
+    faraday (0.15.3)
+      multipart-post (>= 1.2, < 3)
+    gemojione (3.3.0)
+      json
+    gitaly-proto (1.3.0)
+      grpc (~> 1.0)
+    github-linguist (6.2.0)
+      charlock_holmes (~> 0.7.6)
+      escape_utils (~> 1.2.0)
+      mime-types (>= 1.19)
+      rugged (>= 0.25.1)
+    github-markup (1.7.0)
+    gitlab-gollum-lib (4.2.7.5)
+      gemojione (~> 3.2)
+      github-markup (~> 1.6)
+      gollum-grit_adapter (~> 1.0)
+      nokogiri (>= 1.6.1, < 2.0)
+      rouge (~> 3.1)
+      sanitize (~> 4.6.4)
+      stringex (~> 2.6)
+    gitlab-gollum-rugged_adapter (0.4.4.1)
+      mime-types (>= 1.15)
+      rugged (~> 0.25)
+    gitlab-grit (2.8.2)
+      charlock_holmes (~> 0.6)
+      diff-lcs (~> 1.1)
+      mime-types (>= 1.16)
+      posix-spawn (~> 0.3)
+    gitlab-markup (1.6.5)
+    gollum-grit_adapter (1.0.1)
+      gitlab-grit (~> 2.7, >= 2.7.1)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
+      google-protobuf (~> 3.0)
+    grpc (1.15.0)
+      google-protobuf (~> 3.1)
+      googleapis-common-protos-types (~> 1.0.0)
+    i18n (1.1.1)
+      concurrent-ruby (~> 1.0)
+    ice_nine (0.11.2)
+    json (2.1.0)
+    licensee (8.9.2)
+      rugged (~> 0.24)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    multipart-post (2.0.0)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    nokogumbo (1.5.0)
+      nokogiri
+    parallel (1.12.1)
+    parser (2.5.3.0)
+      ast (~> 2.4.0)
+    posix-spawn (0.3.13)
+    powerpack (0.1.2)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    rainbow (3.0.0)
+    rdoc (4.3.0)
+    rouge (3.3.0)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.1)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-mocks (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.0)
+      binding_of_caller
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
+    rspec-support (3.7.1)
+    rubocop (0.54.0)
+      parallel (~> 1.10)
+      parser (>= 2.5)
+      powerpack (~> 0.1)
+      rainbow (>= 2.2.2, < 4.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.0, >= 1.0.1)
+    ruby-progressbar (1.10.0)
+    rugged (0.27.5)
+    sanitize (4.6.6)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4)
+    sentry-raven (2.7.2)
+      faraday (>= 0.7.6, < 1.0)
+    stringex (2.8.4)
+    thread_safe (0.3.6)
+    timecop (0.9.1)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    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)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  activesupport (~> 5.0.2)
+  bundler (>= 1.16.5)
+  factory_bot
+  faraday (~> 0.12)
+  gitaly-proto (~> 1.3.0)
+  github-linguist (~> 6.1)
+  gitlab-gollum-lib (~> 4.2)
+  gitlab-gollum-rugged_adapter (~> 0.4.4)
+  gitlab-markup (~> 1.6.5)
+  google-protobuf (~> 3.6)
+  grpc (~> 1.15.0)
+  licensee (~> 8.9.0)
+  rdoc (~> 4.2)
+  rspec
+  rspec-parameterized
+  rubocop (~> 0.50)
+  rugged (~> 0.27)
+  sentry-raven (~> 2.7.2)
+  timecop
+
+BUNDLED WITH
+   1.17.1
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
new file mode 100644
index 000000000000..349b75f19347
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitLab, buildGoPackage, ruby, bundlerEnv }:
+
+let
+  rubyEnv = bundlerEnv {
+    name = "gitaly-env";
+    inherit ruby;
+    gemdir = ./.;
+  };
+in buildGoPackage rec {
+  version = "1.12.2";
+  name = "gitaly-${version}";
+
+  src = fetchFromGitLab {
+    owner = "gitlab-org";
+    repo = "gitaly";
+    rev = "v${version}";
+    sha256 = "0pg3pm34jnssvh8m99d6w3ap1kn6kn3akqaa17zxv9y0xryvchpy";
+  };
+
+  goPackagePath = "gitlab.com/gitlab-org/gitaly";
+
+  passthru = {
+    inherit rubyEnv;
+  };
+
+  buildInputs = [ rubyEnv.wrappedRuby ];
+
+  postInstall = ''
+    mkdir -p $ruby
+    cp -rv $src/ruby/{bin,lib} $ruby
+  '';
+
+  outputs = [ "bin" "out" "ruby" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ roblabla ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
new file mode 100644
index 000000000000..c06be7891ffb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -0,0 +1,563 @@
+{
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yx73l984y3ri5ndj37l1dfarcdvbhra7vhz9fcww4za24is95d5";
+      type = "gem";
+    };
+    version = "5.0.7";
+  };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  ast = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  equalizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  escape_utils = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13q1b7imb591068plg4ashgsqgzarvfjz6xxn3jk6klzikz5zhg1";
+      type = "gem";
+    };
+    version = "4.11.1";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52";
+      type = "gem";
+    };
+    version = "0.15.3";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  gitaly-proto = {
+    dependencies = ["grpc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17fg29j089k94ssim9hfzpd5lycvhimbpvz12d73ywrbwz7a7680";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  github-linguist = {
+    dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fs0i5xxsl91hnfa17ipk8cwxrg84kjg9mzxvxkd4ykldfdp353y";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-gollum-lib = {
+    dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15h6a7lsfkm967d5dhjlbcm2lnl1l9akzvaq92qlxq40r5apw0kn";
+      type = "gem";
+    };
+    version = "4.2.7.5";
+  };
+  gitlab-gollum-rugged_adapter = {
+    dependencies = ["mime-types" "rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "092i02k3kd4ghk1h1l5yrvi9b180dgfxrvwni26facb2kc9f3wbi";
+      type = "gem";
+    };
+    version = "0.4.4.1";
+  };
+  gitlab-grit = {
+    dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xgs3l81ghlc5nm75n0pz7b2cj3hpscfq5iy27c483nnjn2v5mc4";
+      type = "gem";
+    };
+    version = "2.8.2";
+  };
+  gitlab-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12lzzhbmid4m23pk7d963n3njli2hw7g200arszh75j57bjgs4fy";
+      type = "gem";
+    };
+    version = "1.6.5";
+  };
+  gollum-grit_adapter = {
+    dependencies = ["gitlab-grit"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  google-protobuf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
+      type = "gem";
+    };
+    version = "3.6.1";
+  };
+  googleapis-common-protos-types = {
+    dependencies = ["google-protobuf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  grpc = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gcp1m1p6dpasycfz2sj82ci9ggz7lsskz9c9q6gvfwxrl8y9dx7";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  licensee = {
+    dependencies = ["rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      type = "gem";
+    };
+    version = "8.9.2";
+  };
+  memoizable = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  parallel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+      type = "gem";
+    };
+    version = "2.5.3.0";
+  };
+  posix-spawn = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw";
+      type = "gem";
+    };
+    version = "0.3.13";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  proc_to_ast = {
+    dependencies = ["coderay" "parser" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  procto = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c";
+      type = "gem";
+    };
+    version = "4.3.0";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-parameterized = {
+    dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
+      type = "gem";
+    };
+    version = "0.54.0";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+      type = "gem";
+    };
+    version = "0.27.5";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+      type = "gem";
+    };
+    version = "4.6.6";
+  };
+  sentry-raven = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yf2gysjw6sy1xcp2jw35z9cp83pwx33lq0qyvaqbs969j4993r4";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  stringex = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c5dfrjzkskzfsdvwsviq4111rwwpbk9022nxwdidz014mky5vi1";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  unicode-display_width = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rh1649846ac17av30x0b0v9l45v0x1j2y1i8m1a7xdd0v4sld0z";
+      type = "gem";
+    };
+    version = "0.2.8";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
new file mode 100644
index 000000000000..895e1e13bec8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, ruby, bundler, fetchFromGitLab, go }:
+
+stdenv.mkDerivation rec {
+  version = "8.4.4";
+  name = "gitlab-shell-${version}";
+
+  src = fetchFromGitLab {
+    owner = "gitlab-org";
+    repo = "gitlab-shell";
+    rev = "v${version}";
+    sha256 = "1a6p13g38f4gqqfjgymcvf09k4mnr2bfpj8mqz0x6rz7q67lllcq";
+  };
+
+  buildInputs = [ ruby bundler go ];
+
+  patches = [ ./remove-hardcoded-locations.patch ];
+
+  installPhase = ''
+    ruby bin/compile
+    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
+  # code by default which doesn't work in nixos because it's a
+  # read-only filesystem
+  postPatch = ''
+    substituteInPlace lib/gitlab_config.rb --replace \
+       "File.join(ROOT_PATH, 'config.yml')" \
+       "'/run/gitlab/shell-config.yml'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "SSH access and repository management app for GitLab";
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ fpletz globin ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..7819c863a359
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
@@ -0,0 +1,58 @@
+diff --git a/go/internal/config/config.go b/go/internal/config/config.go
+index 435cb29..078c1df 100644
+--- a/go/internal/config/config.go
++++ b/go/internal/config/config.go
+@@ -2,7 +2,6 @@ package config
+ 
+ import (
+ 	"io/ioutil"
+-	"os"
+ 	"path"
+ 
+ 	yaml "gopkg.in/yaml.v2"
+@@ -26,16 +25,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 newFromFile(filename string) (*Config, error) {
+diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
+index 57c70f5..700569b 100644
+--- a/lib/gitlab_shell.rb
++++ b/lib/gitlab_shell.rb
+@@ -187,7 +187,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/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
+index 0600a18..6814f0a 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/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
new file mode 100644
index 000000000000..96ea361a2548
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitLab, git, go }:
+
+stdenv.mkDerivation rec {
+  name = "gitlab-workhorse-${version}";
+
+  version = "8.0.1";
+
+  src = fetchFromGitLab {
+    owner = "gitlab-org";
+    repo = "gitlab-workhorse";
+    rev = "v${version}";
+    sha256 = "1aslcadag1q2rdirf9m0dl5vfaz8v3yy1232mvyjyvy1wb51pf4q";
+  };
+
+  buildInputs = [ git go ];
+
+  makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ fpletz globin ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..7a2bfea0c109
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -0,0 +1,152 @@
+diff --git a/config/environments/production.rb b/config/environments/production.rb
+index c5cbfcf64c..4d01f6fab8 100644
+--- a/config/environments/production.rb
++++ b/config/environments/production.rb
+@@ -70,10 +70,10 @@ Rails.application.configure do
+ 
+   config.action_mailer.delivery_method = :sendmail
+   # Defaults to:
+-  # # config.action_mailer.sendmail_settings = {
+-  # #   location: '/usr/sbin/sendmail',
+-  # #   arguments: '-i -t'
+-  # # }
++  config.action_mailer.sendmail_settings = {
++    location: '/usr/sbin/sendmail',
++    arguments: '-i -t'
++  }
+   config.action_mailer.perform_deliveries = true
+   config.action_mailer.raise_delivery_errors = true
+ 
+diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
+index bd696a7f2c..44e3863736 100644
+--- a/config/gitlab.yml.example
++++ b/config/gitlab.yml.example
+@@ -590,7 +590,7 @@ production: &base
+   # CAUTION!
+   # Use the default values unless you really know what you are doing
+   git:
+-    bin_path: /usr/bin/git
++    bin_path: git
+ 
+   ## Webpack settings
+   # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
+diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
+index 0bea8a4f4b..290248547b 100644
+--- a/config/initializers/1_settings.rb
++++ b/config/initializers/1_settings.rb
+@@ -255,7 +255,7 @@ Settings.gitlab['user']       ||= 'git'
+ Settings.gitlab['user_home']  ||= begin
+   Etc.getpwnam(Settings.gitlab['user']).dir
+ rescue ArgumentError # no user configured
+-  '/home/' + Settings.gitlab['user']
++  '/homeless-shelter'
+ end
+ Settings.gitlab['time_zone'] ||= nil
+ Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
+@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil
+ # Git
+ #
+ Settings['git'] ||= Settingslogic.new({})
+-Settings.git['bin_path'] ||= '/usr/bin/git'
++Settings.git['bin_path'] ||= 'git'
+ 
+ # Important: keep the satellites.path setting until GitLab 9.0 at
+ # least. This setting is fed to 'rm -rf' in
+diff --git a/lib/api/api.rb b/lib/api/api.rb
+index e953f3d2ec..3a8d9f076b 100644
+--- a/lib/api/api.rb
++++ b/lib/api/api.rb
+@@ -2,7 +2,7 @@ module API
+   class API < Grape::API
+     include APIGuard
+ 
+-    LOG_FILENAME = Rails.root.join("log", "api_json.log")
++    LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log")
+ 
+     NO_SLASH_URL_PART_REGEX = %r{[^/]+}
+     PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
+diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb
+index a42e312b5d..ccaab9229e 100644
+--- a/lib/gitlab/logger.rb
++++ b/lib/gitlab/logger.rb
+@@ -26,7 +26,7 @@ module Gitlab
+     end
+ 
+     def self.full_log_path
+-      Rails.root.join("log", file_name)
++        File.join(ENV["GITLAB_LOG_PATH"], file_name)
+     end
+ 
+     def self.cache_key
+diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb
+index 7d7400bdab..cb25211d44 100644
+--- a/lib/gitlab/uploads_transfer.rb
++++ b/lib/gitlab/uploads_transfer.rb
+@@ -1,7 +1,7 @@
+ module Gitlab
+   class UploadsTransfer < ProjectTransfer
+     def root_dir
+-      FileUploader.root
++      ENV['GITLAB_UPLOADS_PATH'] || FileUploader.root
+     end
+   end
+ end
+diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb
+index 3e0c436d6e..28cefc5514 100644
+--- a/lib/system_check/app/log_writable_check.rb
++++ b/lib/system_check/app/log_writable_check.rb
+@@ -21,7 +21,7 @@ module SystemCheck
+       private
+ 
+       def log_path
+-        Rails.root.join('log')
++        ENV["GITLAB_LOG_PATH"]
+       end
+     end
+   end
+diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb
+index 7026d0ba07..c56e1f7ed9 100644
+--- a/lib/system_check/app/uploads_directory_exists_check.rb
++++ b/lib/system_check/app/uploads_directory_exists_check.rb
+@@ -4,12 +4,13 @@ module SystemCheck
+       set_name 'Uploads directory exists?'
+ 
+       def check?
+-        File.directory?(Rails.root.join('public/uploads'))
++        File.directory?(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads'))
+       end
+ 
+       def show_error
++        uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
+         try_fixing_it(
+-          "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads"
++            "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
+         )
+         for_more_information(
+           see_installation_guide_section 'GitLab'
+diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb
+index 7df6c06025..bb447c16b2 100644
+--- a/lib/system_check/app/uploads_path_permission_check.rb
++++ b/lib/system_check/app/uploads_path_permission_check.rb
+@@ -25,7 +25,7 @@ module SystemCheck
+       private
+ 
+       def rails_uploads_path
+-        Rails.root.join('public/uploads')
++        ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
+       end
+ 
+       def uploads_fullpath
+diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb
+index b276a81eac..070e3ebd81 100644
+--- a/lib/system_check/app/uploads_path_tmp_permission_check.rb
++++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb
+@@ -33,7 +33,7 @@ module SystemCheck
+       end
+ 
+       def uploads_fullpath
+-        File.realpath(Rails.root.join('public/uploads'))
++        File.realpath(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads'))
+       end
+     end
+   end
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake
new file mode 100644
index 000000000000..705b5830edfc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake
@@ -0,0 +1,43 @@
+# Taken from:
+# https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/
+
+# lib/tasks/reset_token.rake
+require_relative '../../app/models/concerns/token_authenticatable.rb'
+
+STDOUT.sync = true
+
+namespace :tokens do
+  desc "Reset all GitLab user auth tokens"
+  task reset_all: :environment do
+    reset_all_users_token(:reset_authentication_token!)
+  end
+
+  desc "Reset all GitLab email tokens"
+  task reset_all_email: :environment do
+    reset_all_users_token(:reset_incoming_email_token!)
+  end
+
+  def reset_all_users_token(token)
+    TmpUser.find_in_batches do |batch|
+      puts "Processing batch starting with user ID: #{batch.first.id}"
+
+      batch.each(&token)
+    end
+  end
+end
+
+class TmpUser < ActiveRecord::Base
+  include TokenAuthenticatable
+
+  self.table_name = 'users'
+
+  def reset_authentication_token!
+    write_new_token(:authentication_token)
+    save!(validate: false)
+  end
+
+  def reset_incoming_email_token!
+    write_new_token(:incoming_email_token)
+    save!(validate: false)
+  end
+end
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile
new file mode 100644
index 000000000000..f59e61208ac3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile
@@ -0,0 +1,434 @@
+source 'https://rubygems.org'
+
+gem 'rails', '5.0.7.1'
+gem 'rails-deprecated_sanitizer', '~> 1.0.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 'gitlab-default_value_for', '~> 3.1.1', require: 'default_value_for'
+
+# Supported DBs
+gem 'mysql2', '~> 0.4.10', group: :mysql
+gem 'pg', '~> 0.18.2', group: :postgres
+
+gem 'rugged', '~> 0.27'
+gem 'grape-path-helpers', '~> 1.0'
+
+gem 'faraday', '~> 0.12'
+
+# Authentication libraries
+gem 'devise', '~> 4.4'
+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 'rack-oauth2', '~> 1.2.1'
+gem 'jwt', '~> 2.1.0'
+
+# Spam and anti-bot protection
+gem 'recaptcha', '~> 3.0', 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'
+
+# 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.0.4', 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'
+
+# 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', '~> 2.0.1'
+gem 'fog-core', '~> 1.44'
+gem 'fog-google', '~> 1.7.1'
+gem 'fog-local', '~> 0.3'
+gem 'fog-openstack', '~> 0.1'
+gem 'fog-rackspace', '~> 0.1.1'
+gem 'fog-aliyun', '~> 0.2.0'
+
+# 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.0.0'
+gem 'gitlab-markup', '~> 1.6.5'
+gem 'github-markup', '~> 1.7.0', require: 'github/markup'
+gem 'redcarpet', '~> 3.4'
+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', '~> 1.5.8'
+gem 'asciidoctor-plantuml', '0.0.8'
+gem 'rouge', '~> 3.1'
+gem 'truncato', '~> 0.7.9'
+gem 'bootstrap_form', '~> 2.7.0'
+gem 'nokogiri', '~> 1.8.5'
+gem 'escape_utils', '~> 1.1'
+
+# Calendar rendering
+gem 'icalendar'
+
+# Diffs
+gem 'diffy', '~> 3.1.0'
+
+# Application server
+# The 2.0.6 version of rack requires monkeypatch to be present in
+# `config.ru`. This can be removed once a new update for Rack
+# is available that contains https://github.com/rack/rack/pull/1201.
+gem 'rack', '2.0.6'
+
+group :unicorn do
+  gem 'unicorn', '~> 5.1.0'
+  gem 'unicorn-worker-killer', '~> 0.4.4'
+end
+
+group :puma do
+  gem 'puma', '~> 3.12', require: false
+  gem 'puma_worker_killer', require: false
+end
+
+# State machine
+gem 'state_machines-activerecord', '~> 0.5.1'
+
+# Issue tags
+gem 'acts-as-taggable-on', '~> 5.0'
+
+# Background jobs
+gem 'sidekiq', '~> 5.2.1'
+gem 'sidekiq-cron', '~> 0.6.0'
+gem 'redis-namespace', '~> 1.6.0'
+gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
+
+# Cron Parser
+gem 'rufus-scheduler', '~> 3.4'
+
+# HTTP requests
+gem 'httparty', '~> 0.13.3'
+
+# 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.1.0'
+
+# Export Ruby Regex to Javascript
+gem 'js_regex', '~> 2.2.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.0.0'
+
+# 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 'sass-rails', '~> 5.0.6'
+gem 'sass', '~> 3.5'
+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 'jquery-atwho-rails', '~> 1.3.2'
+gem 'request_store', '~> 1.3'
+gem 'select2-rails', '~> 3.5.9'
+gem 'virtus', '~> 1.0.1'
+gem 'base32', '~> 0.3.0'
+
+# Sentry integration
+gem 'sentry-raven', '~> 2.7'
+
+gem 'premailer-rails', '~> 1.9.7'
+
+# 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.2.2'
+
+# 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'
+
+# Metrics
+group :metrics do
+  gem 'method_source', '~> 0.8', require: false
+  gem 'influxdb', '~> 0.2', require: false
+
+  # Prometheus
+  gem 'prometheus-client-mmap', '~> 0.9.4'
+  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.0'
+  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.3'
+  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.7.0'
+  gem 'rspec-retry', '~> 0.4.5'
+  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', '~> 2.16.1'
+  gem 'capybara-screenshot', '~> 1.0.18'
+  gem 'selenium-webdriver', '~> 3.12'
+
+  gem 'spring', '~> 2.0.0'
+  gem 'spring-commands-rspec', '~> 1.0.4'
+
+  gem 'gitlab-styles', '~> 2.4', require: false
+  # Pin these dependencies, otherwise a new rule could break the CI pipelines
+  gem 'rubocop', '~> 0.54.0'
+  gem 'rubocop-rspec', '~> 1.22.1'
+
+  gem 'scss_lint', '~> 0.56.0', require: false
+  gem 'haml_lint', '~> 0.28.0', require: false
+  gem 'simplecov', '~> 0.14.0', require: false
+  gem 'bundler-audit', '~> 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', '~> 3.1.2', require: false
+  gem 'email_spec', '~> 2.2.0'
+  gem 'json-schema', '~> 2.8.0'
+  gem 'webmock', '~> 2.3.2'
+  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
+
+# 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.0'
+gem 'sshkey', '~> 1.9.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.5.0', require: 'gitaly'
+gem 'grpc', '~> 1.15.0'
+
+gem 'google-protobuf', '~> 3.6'
+
+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'
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock
new file mode 100644
index 000000000000..77b4360cf413
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock
@@ -0,0 +1,1175 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    RedCloth (4.3.2)
+    abstract_type (0.0.7)
+    ace-rails-ap (4.1.2)
+    actioncable (5.0.7.1)
+      actionpack (= 5.0.7.1)
+      nio4r (>= 1.2, < 3.0)
+      websocket-driver (~> 0.6.1)
+    actionmailer (5.0.7.1)
+      actionpack (= 5.0.7.1)
+      actionview (= 5.0.7.1)
+      activejob (= 5.0.7.1)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 2.0)
+    actionpack (5.0.7.1)
+      actionview (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      rack (~> 2.0)
+      rack-test (~> 0.6.3)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    actionview (5.0.7.1)
+      activesupport (= 5.0.7.1)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.0.3)
+    activejob (5.0.7.1)
+      activesupport (= 5.0.7.1)
+      globalid (>= 0.3.6)
+    activemodel (5.0.7.1)
+      activesupport (= 5.0.7.1)
+    activerecord (5.0.7.1)
+      activemodel (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      arel (~> 7.0)
+    activerecord_sane_schema_dumper (1.0)
+      rails (>= 5, < 6)
+    activesupport (5.0.7.1)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    acts-as-taggable-on (5.0.0)
+      activerecord (>= 4.2.8)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    aes_key_wrap (1.0.1)
+    akismet (2.0.0)
+    arel (7.1.4)
+    asana (0.8.1)
+      faraday (~> 0.9)
+      faraday_middleware (~> 0.9)
+      faraday_middleware-multi_json (~> 0.0)
+      oauth2 (~> 1.0)
+    asciidoctor (1.5.8)
+    asciidoctor-plantuml (0.0.8)
+      asciidoctor (~> 1.5)
+    ast (2.4.0)
+    atomic (1.1.99)
+    attr_encrypted (3.1.0)
+      encryptor (~> 3.0.0)
+    attr_required (1.0.0)
+    awesome_print (1.8.0)
+    axiom-types (0.1.1)
+      descendants_tracker (~> 0.0.4)
+      ice_nine (~> 0.11.0)
+      thread_safe (~> 0.3, >= 0.3.1)
+    babosa (1.0.2)
+    base32 (0.3.2)
+    batch-loader (1.2.2)
+    bcrypt (3.1.12)
+    bcrypt_pbkdf (1.0.0)
+    benchmark-ips (2.3.0)
+    better_errors (2.5.0)
+      coderay (>= 1.0.0)
+      erubi (>= 1.0.0)
+      rack (>= 0.9.0)
+    bindata (2.4.3)
+    binding_ninja (0.2.2)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.3.2)
+      msgpack (~> 1.0)
+    bootstrap_form (2.7.0)
+    brakeman (4.2.1)
+    browser (2.5.3)
+    builder (3.2.3)
+    bullet (5.5.1)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.10.0)
+    bundler-audit (0.5.0)
+      bundler (~> 1.2)
+      thor (~> 0.18)
+    byebug (9.1.0)
+    capybara (2.16.1)
+      addressable
+      mini_mime (>= 0.1.3)
+      nokogiri (>= 1.3.3)
+      rack (>= 1.0.0)
+      rack-test (>= 0.5.4)
+      xpath (~> 2.0)
+    capybara-screenshot (1.0.22)
+      capybara (>= 1.0, < 4)
+      launchy
+    carrierwave (1.3.1)
+      activemodel (>= 4.0.0)
+      activesupport (>= 4.0.0)
+      mime-types (>= 1.16)
+    cause (0.1)
+    charlock_holmes (0.7.6)
+    childprocess (0.9.0)
+      ffi (~> 1.0, >= 1.0.11)
+    chronic (0.10.2)
+    chronic_duration (0.10.6)
+      numerizer (~> 0.1.1)
+    chunky_png (1.3.5)
+    citrus (3.0.2)
+    coderay (1.1.2)
+    coercible (1.0.0)
+      descendants_tracker (~> 0.0.1)
+    commonmarker (0.17.13)
+      ruby-enum (~> 0.5)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    concurrent-ruby (1.1.3)
+    concurrent-ruby-ext (1.1.3)
+      concurrent-ruby (= 1.1.3)
+    connection_pool (2.2.2)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    crass (1.0.4)
+    creole (0.5.0)
+    css_parser (1.5.0)
+      addressable
+    daemons (1.2.6)
+    database_cleaner (1.7.0)
+    debug_inspector (0.0.3)
+    debugger-ruby_core_source (1.3.8)
+    deckar01-task_list (2.0.0)
+      html-pipeline
+    declarative (0.0.10)
+    declarative-option (0.1.0)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    device_detector (1.0.0)
+    devise (4.4.3)
+      bcrypt (~> 3.0)
+      orm_adapter (~> 0.1)
+      railties (>= 4.1.0, < 6.0)
+      responders
+      warden (~> 1.2.3)
+    devise-two-factor (3.0.0)
+      activesupport
+      attr_encrypted (>= 1.3, < 4, != 2)
+      devise (~> 4.0)
+      railties
+      rotp (~> 2.0)
+    diff-lcs (1.3)
+    diffy (3.1.0)
+    discordrb-webhooks-blackst0ne (3.3.0)
+      rest-client (~> 2.0)
+    docile (1.1.5)
+    domain_name (0.5.20180417)
+      unf (>= 0.0.5, < 1.0.0)
+    doorkeeper (4.3.2)
+      railties (>= 4.2)
+    doorkeeper-openid_connect (1.5.0)
+      doorkeeper (~> 4.3)
+      json-jwt (~> 1.6)
+    ed25519 (1.2.4)
+    email_reply_trimmer (0.1.6)
+    email_spec (2.2.0)
+      htmlentities (~> 4.3.3)
+      launchy (~> 2.1)
+      mail (~> 2.7)
+    encryptor (3.0.0)
+    equalizer (0.0.11)
+    erubi (1.7.1)
+    erubis (2.7.0)
+    escape_utils (1.2.1)
+    et-orbi (1.0.3)
+      tzinfo
+    eventmachine (1.2.7)
+    excon (0.62.0)
+    execjs (2.6.0)
+    expression_parser (0.9.0)
+    factory_bot (4.8.2)
+      activesupport (>= 3.0.0)
+    factory_bot_rails (4.8.2)
+      factory_bot (~> 4.8.2)
+      railties (>= 3.0.0)
+    faraday (0.12.2)
+      multipart-post (>= 1.2, < 3)
+    faraday_middleware (0.12.2)
+      faraday (>= 0.7.4, < 1.0)
+    faraday_middleware-multi_json (0.0.6)
+      faraday_middleware
+      multi_json
+    fast_blank (1.0.0)
+    fast_gettext (1.6.0)
+    ffaker (2.10.0)
+    ffi (1.9.25)
+    flipper (0.13.0)
+    flipper-active_record (0.13.0)
+      activerecord (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flipper-active_support_cache_store (0.13.0)
+      activesupport (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flowdock (0.7.1)
+      httparty (~> 0.7)
+      multi_json
+    fog-aliyun (0.2.0)
+      fog-core (~> 1.27)
+      fog-json (~> 1.0)
+      ipaddress (~> 0.8)
+      xml-simple (~> 1.1)
+    fog-aws (2.0.1)
+      fog-core (~> 1.38)
+      fog-json (~> 1.0)
+      fog-xml (~> 0.1)
+      ipaddress (~> 0.8)
+    fog-core (1.45.0)
+      builder
+      excon (~> 0.58)
+      formatador (~> 0.2)
+    fog-google (1.7.1)
+      fog-core
+      fog-json
+      fog-xml
+      google-api-client (~> 0.23.0)
+    fog-json (1.0.2)
+      fog-core (~> 1.0)
+      multi_json (~> 1.10)
+    fog-local (0.3.1)
+      fog-core (~> 1.27)
+    fog-openstack (0.1.21)
+      fog-core (>= 1.40)
+      fog-json (>= 1.0)
+      ipaddress (>= 0.8)
+    fog-rackspace (0.1.1)
+      fog-core (>= 1.35)
+      fog-json (>= 1.0)
+      fog-xml (>= 0.1)
+      ipaddress (>= 0.8)
+    fog-xml (0.1.3)
+      fog-core
+      nokogiri (>= 1.5.11, < 2.0.0)
+    font-awesome-rails (4.7.0.1)
+      railties (>= 3.2, < 5.1)
+    foreman (0.84.0)
+      thor (~> 0.19.1)
+    formatador (0.2.5)
+    fuubar (2.2.0)
+      rspec-core (~> 3.0)
+      ruby-progressbar (~> 1.4)
+    gemojione (3.3.0)
+      json
+    get_process_mem (0.2.0)
+    gettext (3.2.9)
+      locale (>= 2.0.5)
+      text (>= 1.3.0)
+    gettext_i18n_rails (1.8.0)
+      fast_gettext (>= 0.9.0)
+    gettext_i18n_rails_js (1.3.0)
+      gettext (>= 3.0.2)
+      gettext_i18n_rails (>= 0.7.1)
+      po_to_json (>= 1.0.0)
+      rails (>= 3.2.0)
+    gitaly-proto (1.5.0)
+      grpc (~> 1.0)
+    github-markup (1.7.0)
+    gitlab-default_value_for (3.1.1)
+      activerecord (>= 3.2.0, < 6.0)
+    gitlab-markup (1.6.5)
+    gitlab-sidekiq-fetcher (0.4.0)
+      sidekiq (~> 5)
+    gitlab-styles (2.4.1)
+      rubocop (~> 0.54.0)
+      rubocop-gitlab-security (~> 0.1.0)
+      rubocop-rspec (~> 1.19)
+    gitlab_omniauth-ldap (2.0.4)
+      net-ldap (~> 0.16)
+      omniauth (~> 1.3)
+      pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
+      rubyntlm (~> 0.5)
+    globalid (0.4.1)
+      activesupport (>= 4.2.0)
+    gon (6.2.0)
+      actionpack (>= 3.0)
+      multi_json
+      request_store (>= 1.0)
+    google-api-client (0.23.4)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (>= 0.5, < 0.7.0)
+      httpclient (>= 2.8.1, < 3.0)
+      mime-types (~> 3.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.0)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
+      google-protobuf (~> 3.0)
+    googleauth (0.6.6)
+      faraday (~> 0.12)
+      jwt (>= 1.4, < 3.0)
+      memoist (~> 0.12)
+      multi_json (~> 1.11)
+      os (>= 0.9, < 2.0)
+      signet (~> 0.7)
+    gpgme (2.0.18)
+      mini_portile2 (~> 2.3)
+    grape (1.1.0)
+      activesupport
+      builder
+      mustermann-grape (~> 1.0.0)
+      rack (>= 1.3.0)
+      rack-accept
+      virtus (>= 1.0.0)
+    grape-entity (0.7.1)
+      activesupport (>= 4.0)
+      multi_json (>= 1.3.2)
+    grape-path-helpers (1.0.6)
+      activesupport (>= 4, < 5.1)
+      grape (~> 1.0)
+      rake (~> 12)
+    grape_logging (1.7.0)
+      grape
+    graphiql-rails (1.4.10)
+      railties
+      sprockets-rails
+    graphql (1.8.1)
+    grpc (1.15.0)
+      google-protobuf (~> 3.1)
+      googleapis-common-protos-types (~> 1.0.0)
+    haml (5.0.4)
+      temple (>= 0.8.0)
+      tilt
+    haml_lint (0.28.0)
+      haml (>= 4.0, < 5.1)
+      rainbow
+      rake (>= 10, < 13)
+      rubocop (>= 0.50.0)
+      sysexits (~> 1.1)
+    hamlit (2.8.8)
+      temple (>= 0.8.0)
+      thor
+      tilt
+    hangouts-chat (0.0.5)
+    hashdiff (0.3.4)
+    hashie (3.5.7)
+    hashie-forbidden_attributes (0.1.1)
+      hashie (>= 3.0)
+    health_check (2.6.0)
+      rails (>= 4.0)
+    hipchat (1.5.2)
+      httparty
+      mimemagic
+    html-pipeline (2.8.4)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    html2text (0.2.0)
+      nokogiri (~> 1.6)
+    htmlentities (4.3.4)
+    http (3.3.0)
+      addressable (~> 2.3)
+      http-cookie (~> 1.0)
+      http-form_data (~> 2.0)
+      http_parser.rb (~> 0.6.0)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
+    http-form_data (2.1.1)
+    http_parser.rb (0.6.0)
+    httparty (0.13.7)
+      json (~> 1.8)
+      multi_xml (>= 0.5.2)
+    httpclient (2.8.3)
+    i18n (1.2.0)
+      concurrent-ruby (~> 1.0)
+    icalendar (2.4.1)
+    ice_nine (0.11.2)
+    influxdb (0.2.3)
+      cause
+      json
+    ipaddress (0.8.3)
+    jira-ruby (1.4.1)
+      activesupport
+      multipart-post
+      oauth (~> 0.5, >= 0.5.0)
+    jquery-atwho-rails (1.3.2)
+    js_regex (2.2.1)
+      regexp_parser (>= 0.4.11, <= 0.5.0)
+    json (1.8.6)
+    json-jwt (1.9.4)
+      activesupport
+      aes_key_wrap
+      bindata
+    json-schema (2.8.0)
+      addressable (>= 2.4)
+    jwt (2.1.0)
+    kaminari (1.0.1)
+      activesupport (>= 4.1.0)
+      kaminari-actionview (= 1.0.1)
+      kaminari-activerecord (= 1.0.1)
+      kaminari-core (= 1.0.1)
+    kaminari-actionview (1.0.1)
+      actionview
+      kaminari-core (= 1.0.1)
+    kaminari-activerecord (1.0.1)
+      activerecord
+      kaminari-core (= 1.0.1)
+    kaminari-core (1.0.1)
+    kgio (2.10.0)
+    knapsack (1.17.0)
+      rake
+    kubeclient (4.0.0)
+      http (~> 3.0)
+      recursive-open-struct (~> 1.0, >= 1.0.4)
+      rest-client (~> 2.0)
+    launchy (2.4.3)
+      addressable (~> 2.3)
+    letter_opener (1.4.1)
+      launchy (~> 2.2)
+    letter_opener_web (1.3.0)
+      actionmailer (>= 3.2)
+      letter_opener (~> 1.0)
+      railties (>= 3.2)
+    license_finder (5.4.0)
+      bundler
+      rubyzip
+      thor
+      toml (= 0.2.0)
+      with_env (= 1.1.0)
+      xml-simple
+    licensee (8.9.2)
+      rugged (~> 0.24)
+    locale (2.1.2)
+    lograge (0.10.0)
+      actionpack (>= 4)
+      activesupport (>= 4)
+      railties (>= 4)
+      request_store (~> 1.0)
+    loofah (2.2.3)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    mail (2.7.1)
+      mini_mime (>= 0.1.1)
+    mail_room (0.9.1)
+    memoist (0.16.0)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    method_source (0.9.2)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mimemagic (0.3.2)
+    mini_magick (4.8.0)
+    mini_mime (1.0.1)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    msgpack (1.2.4)
+    multi_json (1.13.1)
+    multi_xml (0.6.0)
+    multipart-post (2.0.0)
+    mustermann (1.0.3)
+    mustermann-grape (1.0.0)
+      mustermann (~> 1.0.0)
+    mysql2 (0.4.10)
+    nakayoshi_fork (0.0.4)
+    net-ldap (0.16.0)
+    net-ssh (5.0.1)
+    netrc (0.11.0)
+    nio4r (2.3.1)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    nokogumbo (1.5.0)
+      nokogiri
+    numerizer (0.1.1)
+    oauth (0.5.4)
+    oauth2 (1.4.1)
+      faraday (>= 0.8, < 0.16.0)
+      jwt (>= 1.0, < 3.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    octokit (4.9.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    omniauth (1.9.0)
+      hashie (>= 3.4.6, < 3.7.0)
+      rack (>= 1.6.2, < 3)
+    omniauth-auth0 (2.0.0)
+      omniauth-oauth2 (~> 1.4)
+    omniauth-authentiq (0.3.3)
+      jwt (>= 1.5)
+      omniauth-oauth2 (>= 1.5)
+    omniauth-azure-oauth2 (0.0.10)
+      jwt (>= 1.0, < 3.0)
+      omniauth (~> 1.0)
+      omniauth-oauth2 (~> 1.4)
+    omniauth-cas3 (1.1.4)
+      addressable (~> 2.3)
+      nokogiri (~> 1.7, >= 1.7.1)
+      omniauth (~> 1.2)
+    omniauth-facebook (4.0.0)
+      omniauth-oauth2 (~> 1.2)
+    omniauth-github (1.3.0)
+      omniauth (~> 1.5)
+      omniauth-oauth2 (>= 1.4.0, < 2.0)
+    omniauth-gitlab (1.0.3)
+      omniauth (~> 1.0)
+      omniauth-oauth2 (~> 1.0)
+    omniauth-google-oauth2 (0.6.0)
+      jwt (>= 2.0)
+      omniauth (>= 1.1.1)
+      omniauth-oauth2 (>= 1.5)
+    omniauth-kerberos (0.3.0)
+      omniauth-multipassword
+      timfel-krb5-auth (~> 0.8)
+    omniauth-multipassword (0.4.2)
+      omniauth (~> 1.0)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
+    omniauth-oauth2 (1.6.0)
+      oauth2 (~> 1.1)
+      omniauth (~> 1.9)
+    omniauth-oauth2-generic (0.2.2)
+      omniauth-oauth2 (~> 1.0)
+    omniauth-saml (1.10.0)
+      omniauth (~> 1.3, >= 1.3.2)
+      ruby-saml (~> 1.7)
+    omniauth-shibboleth (1.3.0)
+      omniauth (>= 1.0.0)
+    omniauth-twitter (1.4.0)
+      omniauth-oauth (~> 1.1)
+      rack
+    omniauth_crowd (2.2.3)
+      activesupport
+      nokogiri (>= 1.4.4)
+      omniauth (~> 1.0)
+    org-ruby (0.9.12)
+      rubypants (~> 0.2)
+    orm_adapter (0.5.0)
+    os (1.0.0)
+    parallel (1.12.1)
+    parser (2.5.3.0)
+      ast (~> 2.4.0)
+    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 (0.18.4)
+    po_to_json (1.0.1)
+      json (>= 1.6.0)
+    powerpack (0.1.1)
+    premailer (1.10.4)
+      addressable
+      css_parser (>= 1.4.10)
+      htmlentities (>= 4.0.0)
+    premailer-rails (1.9.7)
+      actionmailer (>= 3, < 6)
+      premailer (~> 1.7, >= 1.7.9)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    prometheus-client-mmap (0.9.4)
+    pry (0.11.3)
+      coderay (~> 1.1.0)
+      method_source (~> 0.9.0)
+    pry-byebug (3.5.1)
+      byebug (~> 9.1)
+      pry (~> 0.10)
+    pry-rails (0.3.6)
+      pry (>= 0.10.4)
+    public_suffix (3.0.3)
+    puma (3.12.0)
+    puma_worker_killer (0.1.0)
+      get_process_mem (~> 0.2)
+      puma (>= 2.7, < 4)
+    pyu-ruby-sasl (0.0.3.3)
+    rack (2.0.6)
+    rack-accept (0.4.5)
+      rack (>= 0.4)
+    rack-attack (4.4.1)
+      rack
+    rack-cors (1.0.2)
+    rack-oauth2 (1.2.3)
+      activesupport (>= 2.3)
+      attr_required (>= 0.0.5)
+      httpclient (>= 2.4)
+      multi_json (>= 1.3.6)
+      rack (>= 1.1)
+    rack-protection (2.0.4)
+      rack
+    rack-proxy (0.6.0)
+      rack
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (5.0.7.1)
+      actioncable (= 5.0.7.1)
+      actionmailer (= 5.0.7.1)
+      actionpack (= 5.0.7.1)
+      actionview (= 5.0.7.1)
+      activejob (= 5.0.7.1)
+      activemodel (= 5.0.7.1)
+      activerecord (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      bundler (>= 1.3.0)
+      railties (= 5.0.7.1)
+      sprockets-rails (>= 2.0.0)
+    rails-controller-testing (1.0.2)
+      actionpack (~> 5.x, >= 5.0.1)
+      actionview (~> 5.x, >= 5.0.1)
+      activesupport (~> 5.x)
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (2.0.3)
+      activesupport (>= 4.2.0)
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.0.4)
+      loofah (~> 2.2, >= 2.2.2)
+    rails-i18n (5.1.1)
+      i18n (>= 0.7, < 2)
+      railties (>= 5.0, < 6)
+    railties (5.0.7.1)
+      actionpack (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      method_source
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rainbow (3.0.0)
+    raindrops (0.18.0)
+    rake (12.3.2)
+    rb-fsevent (0.10.2)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    rblineprof (0.3.6)
+      debugger-ruby_core_source (~> 1.3)
+    rbtrace (0.4.10)
+      ffi (>= 1.0.6)
+      msgpack (>= 0.4.3)
+      trollop (>= 1.16.2)
+    rdoc (6.0.4)
+    re2 (1.1.1)
+    recaptcha (3.0.0)
+      json
+    recursive-open-struct (1.1.0)
+    redcarpet (3.4.0)
+    redis (3.3.5)
+    redis-actionpack (5.0.2)
+      actionpack (>= 4.0, < 6)
+      redis-rack (>= 1, < 3)
+      redis-store (>= 1.1.0, < 2)
+    redis-activesupport (5.0.4)
+      activesupport (>= 3, < 6)
+      redis-store (>= 1.3, < 2)
+    redis-namespace (1.6.0)
+      redis (>= 3.0.4)
+    redis-rack (2.0.4)
+      rack (>= 1.5, < 3)
+      redis-store (>= 1.2, < 2)
+    redis-rails (5.0.2)
+      redis-actionpack (>= 5.0, < 6)
+      redis-activesupport (>= 5.0, < 6)
+      redis-store (>= 1.2, < 2)
+    redis-store (1.6.0)
+      redis (>= 2.2, < 5)
+    regexp_parser (0.5.0)
+    representable (3.0.4)
+      declarative (< 0.1.0)
+      declarative-option (< 0.2.0)
+      uber (< 0.2.0)
+    request_store (1.3.1)
+    responders (2.4.0)
+      actionpack (>= 4.2.0, < 5.3)
+      railties (>= 4.2.0, < 5.3)
+    rest-client (2.0.2)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 4.0)
+      netrc (~> 0.8)
+    retriable (3.1.2)
+    rinku (2.0.0)
+    rotp (2.1.2)
+    rouge (3.3.0)
+    rqrcode (0.7.0)
+      chunky_png
+    rqrcode-rails3 (0.1.7)
+      rqrcode (>= 0.4.2)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.1)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-mocks (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.1)
+      binding_ninja (>= 0.2.1)
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
+    rspec-rails (3.7.2)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      railties (>= 3.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+      rspec-support (~> 3.7.0)
+    rspec-retry (0.4.5)
+      rspec-core
+    rspec-set (0.1.3)
+    rspec-support (3.7.1)
+    rspec_junit_formatter (0.4.1)
+      rspec-core (>= 2, < 4, != 2.12.0)
+    rspec_profiling (0.0.5)
+      activerecord
+      pg
+      rails
+      sqlite3
+    rubocop (0.54.0)
+      parallel (~> 1.10)
+      parser (>= 2.5)
+      powerpack (~> 0.1)
+      rainbow (>= 2.2.2, < 4.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.0, >= 1.0.1)
+    rubocop-gitlab-security (0.1.1)
+      rubocop (>= 0.51)
+    rubocop-rspec (1.22.2)
+      rubocop (>= 0.52.1)
+    ruby-enum (0.7.2)
+      i18n
+    ruby-fogbugz (0.2.1)
+      crack (~> 0.4)
+    ruby-prof (0.17.0)
+    ruby-progressbar (1.9.0)
+    ruby-saml (1.7.2)
+      nokogiri (>= 1.5.10)
+    ruby_parser (3.11.0)
+      sexp_processor (~> 4.9)
+    rubyntlm (0.6.2)
+    rubypants (0.2.0)
+    rubyzip (1.2.2)
+    rufus-scheduler (3.4.0)
+      et-orbi (~> 1.0)
+    rugged (0.27.5)
+    safe_yaml (1.0.4)
+    sanitize (4.6.6)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4)
+    sass (3.5.5)
+      sass-listen (~> 4.0.0)
+    sass-listen (4.0.0)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+    sass-rails (5.0.6)
+      railties (>= 4.0.0, < 6)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (>= 1.1, < 3)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    scss_lint (0.56.0)
+      rake (>= 0.9, < 13)
+      sass (~> 3.5.3)
+    seed-fu (2.3.7)
+      activerecord (>= 3.1)
+      activesupport (>= 3.1)
+    select2-rails (3.5.9.3)
+      thor (~> 0.14)
+    selenium-webdriver (3.12.0)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.2)
+    sentry-raven (2.7.4)
+      faraday (>= 0.7.6, < 1.0)
+    settingslogic (2.0.9)
+    sexp_processor (4.11.0)
+    sham_rack (1.3.6)
+      rack
+    shoulda-matchers (3.1.2)
+      activesupport (>= 4.0.0)
+    sidekiq (5.2.3)
+      connection_pool (~> 2.2, >= 2.2.2)
+      rack-protection (>= 1.5.0)
+      redis (>= 3.3.5, < 5)
+    sidekiq-cron (0.6.0)
+      rufus-scheduler (>= 3.3.0)
+      sidekiq (>= 4.2.1)
+    signet (0.11.0)
+      addressable (~> 2.3)
+      faraday (~> 0.9)
+      jwt (>= 1.5, < 3.0)
+      multi_json (~> 1.10)
+    simple_po_parser (1.1.2)
+    simplecov (0.14.1)
+      docile (~> 1.1.0)
+      json (>= 1.8, < 3)
+      simplecov-html (~> 0.10.0)
+    simplecov-html (0.10.0)
+    slack-notifier (1.5.1)
+    spring (2.0.2)
+      activesupport (>= 4.2)
+    spring-commands-rspec (1.0.4)
+      spring (>= 0.9.1)
+    sprockets (3.7.2)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.2.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sqlite3 (1.3.13)
+    sshkey (1.9.0)
+    stackprof (0.2.10)
+    state_machines (0.5.0)
+    state_machines-activemodel (0.5.1)
+      activemodel (>= 4.1, < 6.0)
+      state_machines (>= 0.5.0)
+    state_machines-activerecord (0.5.1)
+      activerecord (>= 4.1, < 6.0)
+      state_machines-activemodel (>= 0.5.0)
+    sys-filesystem (1.1.6)
+      ffi
+    sysexits (1.2.0)
+    temple (0.8.0)
+    test-prof (0.2.5)
+    text (1.3.1)
+    thin (1.7.2)
+      daemons (~> 1.0, >= 1.0.9)
+      eventmachine (~> 1.0, >= 1.0.4)
+      rack (>= 1, < 3)
+    thor (0.19.4)
+    thread_safe (0.3.6)
+    tilt (2.0.8)
+    timecop (0.8.1)
+    timfel-krb5-auth (0.8.3)
+    toml (0.2.0)
+      parslet (~> 1.8.0)
+    toml-rb (1.0.0)
+      citrus (~> 3.0, > 3.0)
+    trollop (2.1.3)
+    truncato (0.7.10)
+      htmlentities (~> 4.3.1)
+      nokogiri (~> 1.8.0, >= 1.7.0)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    u2f (0.2.1)
+    uber (0.1.0)
+    uglifier (2.7.2)
+      execjs (>= 0.3.0)
+      json (>= 1.8.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.5)
+    unicode-display_width (1.3.2)
+    unicorn (5.1.0)
+      kgio (~> 2.6)
+      raindrops (~> 0.7)
+    unicorn-worker-killer (0.4.4)
+      get_process_mem (~> 0)
+      unicorn (>= 4, < 6)
+    uniform_notifier (1.10.0)
+    unparser (0.4.2)
+      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)
+    validates_hostname (1.0.6)
+      activerecord (>= 3.0)
+      activesupport (>= 3.0)
+    version_sorter (2.1.0)
+    virtus (1.0.5)
+      axiom-types (~> 0.1)
+      coercible (~> 1.0)
+      descendants_tracker (~> 0.0, >= 0.0.3)
+      equalizer (~> 0.0, >= 0.0.9)
+    vmstat (2.3.0)
+    warden (1.2.7)
+      rack (>= 1.0)
+    webmock (2.3.2)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+    webpack-rails (0.9.11)
+      railties (>= 3.2.0)
+    websocket-driver (0.6.5)
+      websocket-extensions (>= 0.1.0)
+    websocket-extensions (0.1.3)
+    wikicloth (0.8.1)
+      builder
+      expression_parser
+      rinku
+    with_env (1.1.0)
+    xml-simple (1.1.5)
+    xpath (2.1.0)
+      nokogiri (~> 1.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  RedCloth (~> 4.3.2)
+  ace-rails-ap (~> 4.1.0)
+  activerecord_sane_schema_dumper (= 1.0)
+  acts-as-taggable-on (~> 5.0)
+  addressable (~> 2.5.2)
+  akismet (~> 2.0)
+  asana (~> 0.8.1)
+  asciidoctor (~> 1.5.8)
+  asciidoctor-plantuml (= 0.0.8)
+  attr_encrypted (~> 3.1.0)
+  awesome_print
+  babosa (~> 1.0.2)
+  base32 (~> 0.3.0)
+  batch-loader (~> 1.2.2)
+  bcrypt_pbkdf (~> 1.0)
+  benchmark-ips (~> 2.3.0)
+  better_errors (~> 2.5.0)
+  binding_of_caller (~> 0.8.0)
+  bootsnap (~> 1.3)
+  bootstrap_form (~> 2.7.0)
+  brakeman (~> 4.2)
+  browser (~> 2.5)
+  bullet (~> 5.5.0)
+  bundler-audit (~> 0.5.0)
+  capybara (~> 2.16.1)
+  capybara-screenshot (~> 1.0.18)
+  carrierwave (~> 1.3)
+  charlock_holmes (~> 0.7.5)
+  chronic (~> 0.10.2)
+  chronic_duration (~> 0.10.6)
+  commonmarker (~> 0.17)
+  concurrent-ruby (~> 1.1)
+  connection_pool (~> 2.0)
+  creole (~> 0.5.0)
+  database_cleaner (~> 1.7.0)
+  deckar01-task_list (= 2.0.0)
+  device_detector
+  devise (~> 4.4)
+  devise-two-factor (~> 3.0.0)
+  diffy (~> 3.1.0)
+  discordrb-webhooks-blackst0ne (~> 3.3)
+  doorkeeper (~> 4.3)
+  doorkeeper-openid_connect (~> 1.5)
+  ed25519 (~> 1.2)
+  email_reply_trimmer (~> 0.1)
+  email_spec (~> 2.2.0)
+  escape_utils (~> 1.1)
+  factory_bot_rails (~> 4.8.2)
+  faraday (~> 0.12)
+  fast_blank
+  ffaker (~> 2.10)
+  flipper (~> 0.13.0)
+  flipper-active_record (~> 0.13.0)
+  flipper-active_support_cache_store (~> 0.13.0)
+  flowdock (~> 0.7)
+  fog-aliyun (~> 0.2.0)
+  fog-aws (~> 2.0.1)
+  fog-core (~> 1.44)
+  fog-google (~> 1.7.1)
+  fog-local (~> 0.3)
+  fog-openstack (~> 0.1)
+  fog-rackspace (~> 0.1.1)
+  font-awesome-rails (~> 4.7)
+  foreman (~> 0.84.0)
+  fuubar (~> 2.2.0)
+  gemojione (~> 3.3)
+  gettext (~> 3.2.2)
+  gettext_i18n_rails (~> 1.8.0)
+  gettext_i18n_rails_js (~> 1.3)
+  gitaly-proto (~> 1.5.0)
+  github-markup (~> 1.7.0)
+  gitlab-default_value_for (~> 3.1.1)
+  gitlab-markup (~> 1.6.5)
+  gitlab-sidekiq-fetcher (~> 0.4.0)
+  gitlab-styles (~> 2.4)
+  gitlab_omniauth-ldap (~> 2.0.4)
+  gon (~> 6.2)
+  google-api-client (~> 0.23)
+  google-protobuf (~> 3.6)
+  gpgme (~> 2.0.18)
+  grape (~> 1.1.0)
+  grape-entity (~> 0.7.1)
+  grape-path-helpers (~> 1.0)
+  grape_logging (~> 1.7)
+  graphiql-rails (~> 1.4.10)
+  graphql (~> 1.8.0)
+  grpc (~> 1.15.0)
+  haml_lint (~> 0.28.0)
+  hamlit (~> 2.8.8)
+  hangouts-chat (~> 0.0.5)
+  hashie-forbidden_attributes
+  health_check (~> 2.6.0)
+  hipchat (~> 1.5.0)
+  html-pipeline (~> 2.8)
+  html2text
+  httparty (~> 0.13.3)
+  icalendar
+  influxdb (~> 0.2)
+  jira-ruby (~> 1.4)
+  jquery-atwho-rails (~> 1.3.2)
+  js_regex (~> 2.2.1)
+  json-schema (~> 2.8.0)
+  jwt (~> 2.1.0)
+  kaminari (~> 1.0)
+  knapsack (~> 1.17)
+  kubeclient (~> 4.0.0)
+  letter_opener_web (~> 1.3.0)
+  license_finder (~> 5.4)
+  licensee (~> 8.9)
+  lograge (~> 0.5)
+  loofah (~> 2.2)
+  mail_room (~> 0.9.1)
+  method_source (~> 0.8)
+  mimemagic (~> 0.3.2)
+  mini_magick
+  minitest (~> 5.11.0)
+  mysql2 (~> 0.4.10)
+  nakayoshi_fork (~> 0.0.4)
+  net-ldap
+  net-ssh (~> 5.0)
+  nokogiri (~> 1.8.5)
+  oauth2 (~> 1.4)
+  octokit (~> 4.9)
+  omniauth (~> 1.8)
+  omniauth-auth0 (~> 2.0.0)
+  omniauth-authentiq (~> 0.3.3)
+  omniauth-azure-oauth2 (~> 0.0.9)
+  omniauth-cas3 (~> 1.1.4)
+  omniauth-facebook (~> 4.0.0)
+  omniauth-github (~> 1.3)
+  omniauth-gitlab (~> 1.0.2)
+  omniauth-google-oauth2 (~> 0.6.0)
+  omniauth-kerberos (~> 0.3.0)
+  omniauth-oauth2-generic (~> 0.2.2)
+  omniauth-saml (~> 1.10)
+  omniauth-shibboleth (~> 1.3.0)
+  omniauth-twitter (~> 1.4)
+  omniauth_crowd (~> 2.2.0)
+  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 (~> 0.18.2)
+  premailer-rails (~> 1.9.7)
+  prometheus-client-mmap (~> 0.9.4)
+  pry-byebug (~> 3.5.1)
+  pry-rails (~> 0.3.4)
+  puma (~> 3.12)
+  puma_worker_killer
+  rack (= 2.0.6)
+  rack-attack (~> 4.4.1)
+  rack-cors (~> 1.0.0)
+  rack-oauth2 (~> 1.2.1)
+  rack-proxy (~> 0.6.0)
+  rails (= 5.0.7.1)
+  rails-controller-testing
+  rails-deprecated_sanitizer (~> 1.0.3)
+  rails-i18n (~> 5.1)
+  rainbow (~> 3.0)
+  raindrops (~> 0.18)
+  rblineprof (~> 0.3.6)
+  rbtrace (~> 0.4)
+  rdoc (~> 6.0)
+  re2 (~> 1.1.1)
+  recaptcha (~> 3.0)
+  redcarpet (~> 3.4)
+  redis (~> 3.2)
+  redis-namespace (~> 1.6.0)
+  redis-rails (~> 5.0.2)
+  request_store (~> 1.3)
+  responders (~> 2.0)
+  rouge (~> 3.1)
+  rqrcode-rails3 (~> 0.1.7)
+  rspec-parameterized
+  rspec-rails (~> 3.7.0)
+  rspec-retry (~> 0.4.5)
+  rspec-set (~> 0.1.3)
+  rspec_junit_formatter
+  rspec_profiling (~> 0.0.5)
+  rubocop (~> 0.54.0)
+  rubocop-rspec (~> 1.22.1)
+  ruby-fogbugz (~> 0.2.1)
+  ruby-prof (~> 0.17.0)
+  ruby-progressbar
+  ruby_parser (~> 3.8)
+  rubyzip (~> 1.2.2)
+  rufus-scheduler (~> 3.4)
+  rugged (~> 0.27)
+  sanitize (~> 4.6)
+  sass (~> 3.5)
+  sass-rails (~> 5.0.6)
+  scss_lint (~> 0.56.0)
+  seed-fu (~> 2.3.7)
+  select2-rails (~> 3.5.9)
+  selenium-webdriver (~> 3.12)
+  sentry-raven (~> 2.7)
+  settingslogic (~> 2.0.9)
+  sham_rack (~> 1.3.6)
+  shoulda-matchers (~> 3.1.2)
+  sidekiq (~> 5.2.1)
+  sidekiq-cron (~> 0.6.0)
+  simple_po_parser (~> 1.1.2)
+  simplecov (~> 0.14.0)
+  slack-notifier (~> 1.5.1)
+  spring (~> 2.0.0)
+  spring-commands-rspec (~> 1.0.4)
+  sprockets (~> 3.7.0)
+  sshkey (~> 1.9.0)
+  stackprof (~> 0.2.10)
+  state_machines-activerecord (~> 0.5.1)
+  sys-filesystem (~> 1.1.6)
+  test-prof (~> 0.2.5)
+  thin (~> 1.7.0)
+  timecop (~> 0.8.0)
+  toml-rb (~> 1.0.0)
+  truncato (~> 0.7.9)
+  u2f (~> 0.2.1)
+  uglifier (~> 2.7.2)
+  unf (~> 0.1.4)
+  unicorn (~> 5.1.0)
+  unicorn-worker-killer (~> 0.4.4)
+  validates_hostname (~> 1.0.6)
+  version_sorter (~> 2.1.0)
+  virtus (~> 1.0.1)
+  vmstat (~> 2.3.0)
+  webmock (~> 2.3.2)
+  webpack-rails (~> 0.9.10)
+  wikicloth (= 0.8.1)
+
+BUNDLED WITH
+   1.17.3
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix
new file mode 100644
index 000000000000..10b8c3f25ead
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix
@@ -0,0 +1,3524 @@
+{
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  ace-rails-ap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h";
+      type = "gem";
+    };
+    version = "4.1.2";
+  };
+  actioncable = {
+    dependencies = ["actionpack" "nio4r" "websocket-driver"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1443cal16yzc94hfxcx9ljagdbs5xs54bmr55wzmg84wx28bgvrb";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "077g5yg8l10rcs8r63pmmikakma1nr2bvxa1ifly1vbry8lajmhm";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zn3gw1naz1l6kcb4h5all24kisdv8fk733vm1niiaq2zmwbvlrw";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "053z1r9lbyqb7a8mvi7ppwgphqg1pn9ynhklwxavq65cym8qn9a1";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w9rspq9y5a99kyljzam7k0cpvkxpzhfmlvs1j6a4flxn14qy7lv";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activemodel = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i808lgn542x0lyk2dlnziiqcf1nmxhxqf6125dq6brr08yxgr0c";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "arel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qva7vdv9arliza0155k0xh5w1q6rzdajj3rmj7hv0f86ybd674c";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activerecord_sane_schema_dumper = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16jbf461wjaxyq26si5505wcj46mi23mii9hx4wjpva1zn9hz5m2";
+      type = "gem";
+    };
+    version = "1.0";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02dnmcmkvzijbzm5nlmrd55s5586b78s087kvpvkada3791b9agb";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  acts-as-taggable-on = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i";
+      type = "gem";
+    };
+    version = "5.0.0";
+  };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  aes_key_wrap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  akismet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  arel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l757dkkaxk5fq3368l79jpyzq9a9driricjamhiwhwvh0h7xcyx";
+      type = "gem";
+    };
+    version = "7.1.4";
+  };
+  asana = {
+    dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h0qiywvjjc9iyzq9nz5iaqyh6qsrix4ip0w86j5c4v5g940z6qx";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  asciidoctor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qld3a1pbcjvs8lbxp95iz83bfmg5scmnf8q3rklinmdmhzakslx";
+      type = "gem";
+    };
+    version = "1.5.8";
+  };
+  asciidoctor-plantuml = {
+    dependencies = ["asciidoctor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna";
+      type = "gem";
+    };
+    version = "0.0.8";
+  };
+  ast = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  atomic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9";
+      type = "gem";
+    };
+    version = "1.1.99";
+  };
+  attr_encrypted = {
+    dependencies = ["encryptor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  attr_required = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  awesome_print = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  axiom-types = {
+    dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  babosa = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  base32 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  batch-loader = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pwr2hk9x1qx9i2xpkpjwkdjsmm4kamz5f25wizsaw37zb64apjc";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  bcrypt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+      type = "gem";
+    };
+    version = "3.1.12";
+  };
+  bcrypt_pbkdf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  benchmark-ips = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  better_errors = {
+    dependencies = ["coderay" "erubi" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  bindata = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  binding_ninja = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19dk26qyx433ffa6y48511apc2iw71zw4jnlqxhy0wix9dlxr2ri";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  bootsnap = {
+    dependencies = ["msgpack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  bootstrap_form = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  brakeman = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
+      type = "gem";
+    };
+    version = "4.2.1";
+  };
+  browser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+  builder = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  bullet = {
+    dependencies = ["activesupport" "uniform_notifier"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5";
+      type = "gem";
+    };
+    version = "5.5.1";
+  };
+  bundler-audit = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  byebug = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vv7s88w8jb1qg4qz3jrs3x3y5d9jfyyl7wfiz78b5x95ydvx41q";
+      type = "gem";
+    };
+    version = "9.1.0";
+  };
+  capybara = {
+    dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hkl6p07gf29952biv07fy88vjz46ng2h37wwx5ks0mk9kn8vvvf";
+      type = "gem";
+    };
+    version = "2.16.1";
+  };
+  capybara-screenshot = {
+    dependencies = ["capybara" "launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q";
+      type = "gem";
+    };
+    version = "1.0.22";
+  };
+  carrierwave = {
+    dependencies = ["activemodel" "activesupport" "mime-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  cause = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
+      type = "gem";
+    };
+    version = "0.1";
+  };
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  chronic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  chronic_duration = {
+    dependencies = ["numerizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs";
+      type = "gem";
+    };
+    version = "0.10.6";
+  };
+  chunky_png = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
+      type = "gem";
+    };
+    version = "1.3.5";
+  };
+  citrus = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  coercible = {
+    dependencies = ["descendants_tracker"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  commonmarker = {
+    dependencies = ["ruby-enum"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
+      type = "gem";
+    };
+    version = "0.17.13";
+  };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  concurrent-ruby-ext = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h7k4wnvbxv7vzb53kaqxbbyhp3m98g2rgymr6n1l9v0jlzcr1i8";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  connection_pool = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  crack = {
+    dependencies = ["safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  creole = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  daemons = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+      type = "gem";
+    };
+    version = "1.2.6";
+  };
+  database_cleaner = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  debugger-ruby_core_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
+      type = "gem";
+    };
+    version = "1.3.8";
+  };
+  deckar01-task_list = {
+    dependencies = ["html-pipeline"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  declarative = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  declarative-option = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  descendants_tracker = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  device_detector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  devise = {
+    dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj";
+      type = "gem";
+    };
+    version = "4.4.3";
+  };
+  devise-two-factor = {
+    dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  diffy = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  discordrb-webhooks-blackst0ne = {
+    dependencies = ["rest-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  docile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  domain_name = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+      type = "gem";
+    };
+    version = "0.5.20180417";
+  };
+  doorkeeper = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  doorkeeper-openid_connect = {
+    dependencies = ["doorkeeper" "json-jwt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  ed25519 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  email_reply_trimmer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
+      type = "gem";
+    };
+    version = "0.1.6";
+  };
+  email_spec = {
+    dependencies = ["htmlentities" "launchy" "mail"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  encryptor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  equalizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  erubi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bws86na9k565raiz0kk61yy5pxxp0fmwyzpibdwjkq0xzx8q6q1";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  erubis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  escape_utils = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  et-orbi = {
+    dependencies = ["tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  eventmachine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  excon = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+      type = "gem";
+    };
+    version = "0.62.0";
+  };
+  execjs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  expression_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  factory_bot_rails = {
+    dependencies = ["factory_bot" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware-multi_json = {
+    dependencies = ["faraday_middleware" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
+      type = "gem";
+    };
+    version = "0.0.6";
+  };
+  fast_blank = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fast_gettext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  ffaker = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
+      type = "gem";
+    };
+    version = "2.10.0";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  flipper = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_record = {
+    dependencies = ["activerecord" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_support_cache_store = {
+    dependencies = ["activesupport" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flowdock = {
+    dependencies = ["httparty" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  fog-aliyun = {
+    dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  fog-aws = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  fog-core = {
+    dependencies = ["builder" "excon" "formatador"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3";
+      type = "gem";
+    };
+    version = "1.45.0";
+  };
+  fog-google = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  fog-json = {
+    dependencies = ["fog-core" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  fog-local = {
+    dependencies = ["fog-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  fog-openstack = {
+    dependencies = ["fog-core" "fog-json" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys";
+      type = "gem";
+    };
+    version = "0.1.21";
+  };
+  fog-rackspace = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  fog-xml = {
+    dependencies = ["fog-core" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  font-awesome-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw";
+      type = "gem";
+    };
+    version = "4.7.0.1";
+  };
+  foreman = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0";
+      type = "gem";
+    };
+    version = "0.84.0";
+  };
+  formatador = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  fuubar = {
+    dependencies = ["rspec-core" "ruby-progressbar"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  get_process_mem = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  gettext = {
+    dependencies = ["locale" "text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
+      type = "gem";
+    };
+    version = "3.2.9";
+  };
+  gettext_i18n_rails = {
+    dependencies = ["fast_gettext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  gettext_i18n_rails_js = {
+    dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  gitaly-proto = {
+    dependencies = ["grpc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p7c63saysp4ixj08kxrk5c4n94d6zala9wl1fxg7vx8nd84b2c0";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-default_value_for = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qqjf7nxmwxnkdlrgbnby8wjckaj2s5yna96avgb7fwm0h90f1sn";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  gitlab-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12lzzhbmid4m23pk7d963n3njli2hw7g200arszh75j57bjgs4fy";
+      type = "gem";
+    };
+    version = "1.6.5";
+  };
+  gitlab-sidekiq-fetcher = {
+    dependencies = ["sidekiq"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xaag97iclmiay8fx7dkiws8dsws2gi6l0axq4yljq5g7xm78qjr";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  gitlab-styles = {
+    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  gitlab_omniauth-ldap = {
+    dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  gon = {
+    dependencies = ["actionpack" "multi_json" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  google-api-client = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k";
+      type = "gem";
+    };
+    version = "0.23.4";
+  };
+  google-protobuf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
+      type = "gem";
+    };
+    version = "3.6.1";
+  };
+  googleapis-common-protos-types = {
+    dependencies = ["google-protobuf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  googleauth = {
+    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
+      type = "gem";
+    };
+    version = "0.6.6";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
+      type = "gem";
+    };
+    version = "2.0.18";
+  };
+  grape = {
+    dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  grape-entity = {
+    dependencies = ["activesupport" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  grape-path-helpers = {
+    dependencies = ["activesupport" "grape" "rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  grape_logging = {
+    dependencies = ["grape"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  graphiql-rails = {
+    dependencies = ["railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
+      type = "gem";
+    };
+    version = "1.4.10";
+  };
+  graphql = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  grpc = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  haml = {
+    dependencies = ["temple" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  haml_lint = {
+    dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "125aj0j84nx5gqm42hfx5d8486higlra423ahgfpsdjwbp399rwv";
+      type = "gem";
+    };
+    version = "0.28.0";
+  };
+  hamlit = {
+    dependencies = ["temple" "thor" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
+      type = "gem";
+    };
+    version = "2.8.8";
+  };
+  hangouts-chat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  hashdiff = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a";
+      type = "gem";
+    };
+    version = "0.3.4";
+  };
+  hashie = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
+      type = "gem";
+    };
+    version = "3.5.7";
+  };
+  hashie-forbidden_attributes = {
+    dependencies = ["hashie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  health_check = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  hipchat = {
+    dependencies = ["httparty" "mimemagic"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  html2text = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  htmlentities = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  http = {
+    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  http-form_data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  "http_parser.rb" = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  httparty = {
+    dependencies = ["json" "multi_xml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2";
+      type = "gem";
+    };
+    version = "0.13.7";
+  };
+  httpclient = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "079sqshk08mqs3d6yzvshmqf4s175lpi2pp71f1p10l09sgmrixr";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  icalendar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  influxdb = {
+    dependencies = ["cause" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  ipaddress = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  jira-ruby = {
+    dependencies = ["activesupport" "multipart-post" "oauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  jquery-atwho-rails = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  js_regex = {
+    dependencies = ["regexp_parser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+      type = "gem";
+    };
+    version = "1.8.6";
+  };
+  json-jwt = {
+    dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+      type = "gem";
+    };
+    version = "1.9.4";
+  };
+  json-schema = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  jwt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  kaminari = {
+    dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-actionview = {
+    dependencies = ["actionview" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-activerecord = {
+    dependencies = ["activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kgio = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118";
+      type = "gem";
+    };
+    version = "2.10.0";
+  };
+  knapsack = {
+    dependencies = ["rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
+      type = "gem";
+    };
+    version = "1.17.0";
+  };
+  kubeclient = {
+    dependencies = ["http" "recursive-open-struct" "rest-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s250z89nz7vzich3nikc8fs8vgpac38wjv8llm4ldvs4iyc4ypg";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  launchy = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  letter_opener = {
+    dependencies = ["launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  letter_opener_web = {
+    dependencies = ["actionmailer" "letter_opener" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  license_finder = {
+    dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v";
+      type = "gem";
+    };
+    version = "5.4.0";
+  };
+  licensee = {
+    dependencies = ["rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      type = "gem";
+    };
+    version = "8.9.2";
+  };
+  locale = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  lograge = {
+    dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  mail_room = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  memoist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  memoizable = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  method_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+      type = "gem";
+    };
+    version = "0.9.2";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mimemagic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  mini_magick = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n";
+      type = "gem";
+    };
+    version = "4.8.0";
+  };
+  mini_mime = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  msgpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  multi_xml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  mustermann = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  mustermann-grape = {
+    dependencies = ["mustermann"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mysql2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  nakayoshi_fork = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  net-ldap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  net-ssh = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w";
+      type = "gem";
+    };
+    version = "5.0.1";
+  };
+  netrc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  nio4r = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  numerizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  oauth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      type = "gem";
+    };
+    version = "0.5.4";
+  };
+  oauth2 = {
+    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  octokit = {
+    dependencies = ["sawyer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298";
+      type = "gem";
+    };
+    version = "4.9.0";
+  };
+  omniauth = {
+    dependencies = ["hashie" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  omniauth-auth0 = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  omniauth-authentiq = {
+    dependencies = ["jwt" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  omniauth-azure-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  omniauth-cas3 = {
+    dependencies = ["addressable" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  omniauth-facebook = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  omniauth-github = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-gitlab = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  omniauth-google-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  omniauth-kerberos = {
+    dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  omniauth-multipassword = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  omniauth-oauth = {
+    dependencies = ["oauth" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  omniauth-oauth2 = {
+    dependencies = ["oauth2" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  omniauth-oauth2-generic = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  omniauth-saml = {
+    dependencies = ["omniauth" "ruby-saml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  omniauth-shibboleth = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-twitter = {
+    dependencies = ["omniauth-oauth" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  omniauth_crowd = {
+    dependencies = ["activesupport" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  org-ruby = {
+    dependencies = ["rubypants"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
+      type = "gem";
+    };
+    version = "0.9.12";
+  };
+  orm_adapter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  os = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  parallel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+      type = "gem";
+    };
+    version = "2.5.3.0";
+  };
+  parslet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
+      type = "gem";
+    };
+    version = "1.8.2";
+  };
+  peek = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  peek-gc = {
+    dependencies = ["peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  peek-mysql2 = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "mysql2" "peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0avmwm3yw0kx0z8gh4cpqj79jb5aicd0h3yzrcdfpzwks56h1k9z";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  peek-pg = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  peek-rblineprof = {
+    dependencies = ["peek" "rblineprof"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  peek-redis = {
+    dependencies = ["atomic" "peek" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  pg = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
+      type = "gem";
+    };
+    version = "0.18.4";
+  };
+  po_to_json = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  premailer = {
+    dependencies = ["addressable" "css_parser" "htmlentities"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf";
+      type = "gem";
+    };
+    version = "1.10.4";
+  };
+  premailer-rails = {
+    dependencies = ["actionmailer" "premailer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim";
+      type = "gem";
+    };
+    version = "1.9.7";
+  };
+  proc_to_ast = {
+    dependencies = ["coderay" "parser" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  procto = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  prometheus-client-mmap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10";
+      type = "gem";
+    };
+    version = "0.9.4";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
+      type = "gem";
+    };
+    version = "0.11.3";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f9kj1qp14qb8crg2rdzf22pr6ngxvy4n6ipymla8q1yjr842625";
+      type = "gem";
+    };
+    version = "3.5.1";
+  };
+  pry-rails = {
+    dependencies = ["pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  puma = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  puma_worker_killer = {
+    dependencies = ["get_process_mem" "puma"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  pyu-ruby-sasl = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
+      type = "gem";
+    };
+    version = "0.0.3.3";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm";
+      type = "gem";
+    };
+    version = "2.0.6";
+  };
+  rack-accept = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rack-attack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  rack-cors = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  rack-oauth2 = {
+    dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ylx74ravz7nvnyygq0nk3v86qdzrmqxpwpayhppyy50l72rcajq";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  rack-proxy = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rails = {
+    dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0blacnfcn2944cml69wji2ywp9c13qjiciavnfsa9vpimk8ixq9w";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  rails-controller-testing = {
+    dependencies = ["actionpack" "actionview" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  rails-deprecated_sanitizer = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  rails-i18n = {
+    dependencies = ["i18n" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rqij2ggqz5iq36lbibhnd7pl4qxrvv9kgw9s0c6594vzbbxmhs0";
+      type = "gem";
+    };
+    version = "5.1.1";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cfh2ijfalxj8hhf0rfw8bqhazsq6km7barsxczsvyl2a9islanr";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  raindrops = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+      type = "gem";
+    };
+    version = "12.3.2";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  rblineprof = {
+    dependencies = ["debugger-ruby_core_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  rbtrace = {
+    dependencies = ["ffi" "msgpack" "trollop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  re2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  recaptcha = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  recursive-open-struct = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  redcarpet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  RedCloth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  redis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+      type = "gem";
+    };
+    version = "3.3.5";
+  };
+  redis-actionpack = {
+    dependencies = ["actionpack" "redis-rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-activesupport = {
+    dependencies = ["activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  redis-rack = {
+    dependencies = ["rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  redis-rails = {
+    dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-store = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  regexp_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  representable = {
+    dependencies = ["declarative" "declarative-option" "uber"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+      type = "gem";
+    };
+    version = "3.0.4";
+  };
+  request_store = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  responders = {
+    dependencies = ["actionpack" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  rest-client = {
+    dependencies = ["http-cookie" "mime-types" "netrc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  retriable = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  rinku = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  rotp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  rqrcode-rails3 = {
+    dependencies = ["rqrcode"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-parameterized = {
+    dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159yw3mb4dab5kr18a97miyyi7dqmyrfjp3aw6r6j9i4xkc4xk3a";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  rspec-rails = {
+    dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  rspec-retry = {
+    dependencies = ["rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rspec-set = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec_junit_formatter = {
+    dependencies = ["rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  rspec_profiling = {
+    dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
+      type = "gem";
+    };
+    version = "0.54.0";
+  };
+  rubocop-gitlab-security = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla";
+      type = "gem";
+    };
+    version = "1.22.2";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  ruby-fogbugz = {
+    dependencies = ["crack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  ruby-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c";
+      type = "gem";
+    };
+    version = "0.17.0";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  ruby-saml = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  ruby_parser = {
+    dependencies = ["sexp_processor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mysmdyxhvyn6dhshfxyw762f9asr3kxw45idvw1bh6np31kk4j1";
+      type = "gem";
+    };
+    version = "3.11.0";
+  };
+  rubyntlm = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  rubypants = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  rubyzip = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  rufus-scheduler = {
+    dependencies = ["et-orbi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+      type = "gem";
+    };
+    version = "0.27.5";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+      type = "gem";
+    };
+    version = "4.6.6";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
+      type = "gem";
+    };
+    version = "3.5.5";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  sass-rails = {
+    dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb";
+      type = "gem";
+    };
+    version = "5.0.6";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  scss_lint = {
+    dependencies = ["rake" "sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g";
+      type = "gem";
+    };
+    version = "0.56.0";
+  };
+  seed-fu = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
+      type = "gem";
+    };
+    version = "2.3.7";
+  };
+  select2-rails = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj";
+      type = "gem";
+    };
+    version = "3.5.9.3";
+  };
+  selenium-webdriver = {
+    dependencies = ["childprocess" "rubyzip"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  sentry-raven = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l0bci35amy7pqv81djyjcx023q4qylmq8a2zbx14zh6ifzib4f4";
+      type = "gem";
+    };
+    version = "2.7.4";
+  };
+  settingslogic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
+      type = "gem";
+    };
+    version = "2.0.9";
+  };
+  sexp_processor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vnmphfrd86694x5k7rxddbhbvv5rqbglsc34kfryy4jqhbzz42c";
+      type = "gem";
+    };
+    version = "4.11.0";
+  };
+  sham_rack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i";
+      type = "gem";
+    };
+    version = "1.3.6";
+  };
+  shoulda-matchers = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  sidekiq = {
+    dependencies = ["connection_pool" "rack-protection" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zyf9y3rvzizbwh68i2g1lzd40lalrdc4iyjmaa74gnfwsf92i26";
+      type = "gem";
+    };
+    version = "5.2.3";
+  };
+  sidekiq-cron = {
+    dependencies = ["rufus-scheduler" "sidekiq"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  signet = {
+    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  simple_po_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "json" "simplecov-html"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
+      type = "gem";
+    };
+    version = "0.14.1";
+  };
+  simplecov-html = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  slack-notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  spring = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  spring-commands-rspec = {
+    dependencies = ["spring"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  sqlite3 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
+      type = "gem";
+    };
+    version = "1.3.13";
+  };
+  sshkey = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  stackprof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski";
+      type = "gem";
+    };
+    version = "0.2.10";
+  };
+  state_machines = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  state_machines-activemodel = {
+    dependencies = ["activemodel" "state_machines"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  state_machines-activerecord = {
+    dependencies = ["activerecord" "state_machines-activemodel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  sys-filesystem = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
+      type = "gem";
+    };
+    version = "1.1.6";
+  };
+  sysexits = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  temple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  test-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  text = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  thin = {
+    dependencies = ["daemons" "eventmachine" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  thor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
+      type = "gem";
+    };
+    version = "0.19.4";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+      type = "gem";
+    };
+    version = "2.0.8";
+  };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  timfel-krb5-auth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  toml = {
+    dependencies = ["parslet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  toml-rb = {
+    dependencies = ["citrus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  trollop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  truncato = {
+    dependencies = ["htmlentities" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b";
+      type = "gem";
+    };
+    version = "0.7.10";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  u2f = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  uber = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  uglifier = {
+    dependencies = ["execjs" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+      type = "gem";
+    };
+    version = "0.0.7.5";
+  };
+  unicode-display_width = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  unicorn = {
+    dependencies = ["kgio" "raindrops"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
+  unicorn-worker-killer = {
+    dependencies = ["get_process_mem" "unicorn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  uniform_notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w662glqi7hwmfvx0smxckxgc7kw5bsqhqz0pyvalbyv1gc0gs2x";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  validates_hostname = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  version_sorter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  virtus = {
+    dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  vmstat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  warden = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  webpack-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr";
+      type = "gem";
+    };
+    version = "0.9.11";
+  };
+  websocket-driver = {
+    dependencies = ["websocket-extensions"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1943442yllhldh9dbp374x2q39cxa49xrm28nb78b7mfbv3y195l";
+      type = "gem";
+    };
+    version = "0.6.5";
+  };
+  websocket-extensions = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  wikicloth = {
+    dependencies = ["builder" "expression_parser" "rinku"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  with_env = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xml-simple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  xpath = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile
new file mode 100644
index 000000000000..f01944a0e877
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile
@@ -0,0 +1,452 @@
+source 'https://rubygems.org'
+
+gem 'rails', '5.0.7.1'
+gem 'rails-deprecated_sanitizer', '~> 1.0.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 'gitlab-default_value_for', '~> 3.1.1', require: 'default_value_for'
+
+# Supported DBs
+gem 'mysql2', '~> 0.4.10', group: :mysql
+gem 'pg', '~> 0.18.2', group: :postgres
+
+gem 'rugged', '~> 0.27'
+gem 'grape-path-helpers', '~> 1.0'
+
+gem 'faraday', '~> 0.12'
+
+# Authentication libraries
+gem 'devise', '~> 4.4'
+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 'rack-oauth2', '~> 1.2.1'
+gem 'jwt', '~> 2.1.0'
+
+# Kerberos authentication. EE-only
+gem 'gssapi', group: :kerberos
+
+# Spam and anti-bot protection
+gem 'recaptcha', '~> 3.0', 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'
+
+# 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.0.4', 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'
+
+# 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', '~> 2.0.1'
+gem 'fog-core', '~> 1.44'
+gem 'fog-google', '~> 1.7.1'
+gem 'fog-local', '~> 0.3'
+gem 'fog-openstack', '~> 0.1'
+gem 'fog-rackspace', '~> 0.1.1'
+gem 'fog-aliyun', '~> 0.2.0'
+
+# 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'
+
+# Search
+gem 'elasticsearch-model', '~> 0.1.9'
+gem 'elasticsearch-rails', '~> 0.1.9'
+gem 'elasticsearch-api',   '5.0.3'
+gem 'aws-sdk'
+gem 'faraday_middleware-aws-signers-v4'
+
+# Markdown and HTML processing
+gem 'html-pipeline', '~> 2.8'
+gem 'deckar01-task_list', '2.0.0'
+gem 'gitlab-markup', '~> 1.6.5'
+gem 'github-markup', '~> 1.7.0', require: 'github/markup'
+gem 'redcarpet', '~> 3.4'
+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', '~> 1.5.8'
+gem 'asciidoctor-plantuml', '0.0.8'
+gem 'rouge', '~> 3.1'
+gem 'truncato', '~> 0.7.9'
+gem 'bootstrap_form', '~> 2.7.0'
+gem 'nokogiri', '~> 1.8.5'
+gem 'escape_utils', '~> 1.1'
+
+# Calendar rendering
+gem 'icalendar'
+
+# Diffs
+gem 'diffy', '~> 3.1.0'
+
+# Application server
+# The 2.0.6 version of rack requires monkeypatch to be present in
+# `config.ru`. This can be removed once a new update for Rack
+# is available that contains https://github.com/rack/rack/pull/1201.
+gem 'rack', '2.0.6'
+
+group :unicorn do
+  gem 'unicorn', '~> 5.1.0'
+  gem 'unicorn-worker-killer', '~> 0.4.4'
+end
+
+group :puma do
+  gem 'puma', '~> 3.12', require: false
+  gem 'puma_worker_killer', require: false
+end
+
+# State machine
+gem 'state_machines-activerecord', '~> 0.5.1'
+
+# Issue tags
+gem 'acts-as-taggable-on', '~> 5.0'
+
+# Background jobs
+gem 'sidekiq', '~> 5.2.1'
+gem 'sidekiq-cron', '~> 0.6.0'
+gem 'redis-namespace', '~> 1.6.0'
+gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch'
+
+# Cron Parser
+gem 'rufus-scheduler', '~> 3.4'
+
+# HTTP requests
+gem 'httparty', '~> 0.13.3'
+
+# 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.1.0'
+
+# Export Ruby Regex to Javascript
+gem 'js_regex', '~> 2.2.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.0.0'
+
+# 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 'sass-rails', '~> 5.0.6'
+gem 'sass', '~> 3.5'
+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 'jquery-atwho-rails', '~> 1.3.2'
+gem 'request_store', '~> 1.3'
+gem 'select2-rails', '~> 3.5.9'
+gem 'virtus', '~> 1.0.1'
+gem 'base32', '~> 0.3.0'
+
+gem "gitlab-license", "~> 1.0"
+
+# Sentry integration
+gem 'sentry-raven', '~> 2.7'
+
+gem 'premailer-rails', '~> 1.9.7'
+
+# 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.2.2'
+
+# 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'
+
+# Metrics
+group :metrics do
+  gem 'method_source', '~> 0.8', require: false
+  gem 'influxdb', '~> 0.2', require: false
+
+  # Prometheus
+  gem 'prometheus-client-mmap', '~> 0.9.4'
+  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.0'
+  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.3'
+  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.7.0'
+  gem 'rspec-retry', '~> 0.4.5'
+  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', '~> 2.16.1'
+  gem 'capybara-screenshot', '~> 1.0.18'
+  gem 'selenium-webdriver', '~> 3.12'
+
+  gem 'spring', '~> 2.0.0'
+  gem 'spring-commands-rspec', '~> 1.0.4'
+
+  gem 'gitlab-styles', '~> 2.4', require: false
+  # Pin these dependencies, otherwise a new rule could break the CI pipelines
+  gem 'rubocop', '~> 0.54.0'
+  gem 'rubocop-rspec', '~> 1.22.1'
+
+  gem 'scss_lint', '~> 0.56.0', require: false
+  gem 'haml_lint', '~> 0.28.0', require: false
+  gem 'simplecov', '~> 0.14.0', require: false
+  gem 'bundler-audit', '~> 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', '~> 3.1.2', require: false
+  gem 'email_spec', '~> 2.2.0'
+  gem 'json-schema', '~> 2.8.0'
+  gem 'webmock', '~> 2.3.2'
+  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
+
+# 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'
+
+# NTP client
+gem 'net-ntp'
+
+# SSH host key support
+gem 'net-ssh', '~> 5.0'
+gem 'sshkey', '~> 1.9.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.5.0', require: 'gitaly'
+gem 'grpc', '~> 1.15.0'
+
+gem 'google-protobuf', '~> 3.6'
+
+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'
+
+# DNS Lookup
+gem 'net-dns', '~> 0.9.0'
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock
new file mode 100644
index 000000000000..8d07afb59bf1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock
@@ -0,0 +1,1214 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    RedCloth (4.3.2)
+    abstract_type (0.0.7)
+    ace-rails-ap (4.1.2)
+    actioncable (5.0.7.1)
+      actionpack (= 5.0.7.1)
+      nio4r (>= 1.2, < 3.0)
+      websocket-driver (~> 0.6.1)
+    actionmailer (5.0.7.1)
+      actionpack (= 5.0.7.1)
+      actionview (= 5.0.7.1)
+      activejob (= 5.0.7.1)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 2.0)
+    actionpack (5.0.7.1)
+      actionview (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      rack (~> 2.0)
+      rack-test (~> 0.6.3)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    actionview (5.0.7.1)
+      activesupport (= 5.0.7.1)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.0.3)
+    activejob (5.0.7.1)
+      activesupport (= 5.0.7.1)
+      globalid (>= 0.3.6)
+    activemodel (5.0.7.1)
+      activesupport (= 5.0.7.1)
+    activerecord (5.0.7.1)
+      activemodel (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      arel (~> 7.0)
+    activerecord_sane_schema_dumper (1.0)
+      rails (>= 5, < 6)
+    activesupport (5.0.7.1)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    acts-as-taggable-on (5.0.0)
+      activerecord (>= 4.2.8)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    aes_key_wrap (1.0.1)
+    akismet (2.0.0)
+    arel (7.1.4)
+    asana (0.8.1)
+      faraday (~> 0.9)
+      faraday_middleware (~> 0.9)
+      faraday_middleware-multi_json (~> 0.0)
+      oauth2 (~> 1.0)
+    asciidoctor (1.5.8)
+    asciidoctor-plantuml (0.0.8)
+      asciidoctor (~> 1.5)
+    ast (2.4.0)
+    atomic (1.1.99)
+    attr_encrypted (3.1.0)
+      encryptor (~> 3.0.0)
+    attr_required (1.0.0)
+    awesome_print (1.8.0)
+    aws-sdk (2.9.32)
+      aws-sdk-resources (= 2.9.32)
+    aws-sdk-core (2.9.32)
+      aws-sigv4 (~> 1.0)
+      jmespath (~> 1.0)
+    aws-sdk-resources (2.9.32)
+      aws-sdk-core (= 2.9.32)
+    aws-sigv4 (1.0.0)
+    axiom-types (0.1.1)
+      descendants_tracker (~> 0.0.4)
+      ice_nine (~> 0.11.0)
+      thread_safe (~> 0.3, >= 0.3.1)
+    babosa (1.0.2)
+    base32 (0.3.2)
+    batch-loader (1.2.2)
+    bcrypt (3.1.12)
+    bcrypt_pbkdf (1.0.0)
+    benchmark-ips (2.3.0)
+    better_errors (2.5.0)
+      coderay (>= 1.0.0)
+      erubi (>= 1.0.0)
+      rack (>= 0.9.0)
+    bindata (2.4.3)
+    binding_ninja (0.2.2)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.3.2)
+      msgpack (~> 1.0)
+    bootstrap_form (2.7.0)
+    brakeman (4.2.1)
+    browser (2.5.3)
+    builder (3.2.3)
+    bullet (5.5.1)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.10.0)
+    bundler-audit (0.5.0)
+      bundler (~> 1.2)
+      thor (~> 0.18)
+    byebug (9.1.0)
+    capybara (2.16.1)
+      addressable
+      mini_mime (>= 0.1.3)
+      nokogiri (>= 1.3.3)
+      rack (>= 1.0.0)
+      rack-test (>= 0.5.4)
+      xpath (~> 2.0)
+    capybara-screenshot (1.0.22)
+      capybara (>= 1.0, < 4)
+      launchy
+    carrierwave (1.3.1)
+      activemodel (>= 4.0.0)
+      activesupport (>= 4.0.0)
+      mime-types (>= 1.16)
+    cause (0.1)
+    charlock_holmes (0.7.6)
+    childprocess (0.9.0)
+      ffi (~> 1.0, >= 1.0.11)
+    chronic (0.10.2)
+    chronic_duration (0.10.6)
+      numerizer (~> 0.1.1)
+    chunky_png (1.3.5)
+    citrus (3.0.2)
+    coderay (1.1.2)
+    coercible (1.0.0)
+      descendants_tracker (~> 0.0.1)
+    commonmarker (0.17.13)
+      ruby-enum (~> 0.5)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    concurrent-ruby (1.1.3)
+    concurrent-ruby-ext (1.1.3)
+      concurrent-ruby (= 1.1.3)
+    connection_pool (2.2.2)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    crass (1.0.4)
+    creole (0.5.0)
+    css_parser (1.5.0)
+      addressable
+    daemons (1.2.6)
+    database_cleaner (1.7.0)
+    debug_inspector (0.0.3)
+    debugger-ruby_core_source (1.3.8)
+    deckar01-task_list (2.0.0)
+      html-pipeline
+    declarative (0.0.10)
+    declarative-option (0.1.0)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    device_detector (1.0.0)
+    devise (4.4.3)
+      bcrypt (~> 3.0)
+      orm_adapter (~> 0.1)
+      railties (>= 4.1.0, < 6.0)
+      responders
+      warden (~> 1.2.3)
+    devise-two-factor (3.0.0)
+      activesupport
+      attr_encrypted (>= 1.3, < 4, != 2)
+      devise (~> 4.0)
+      railties
+      rotp (~> 2.0)
+    diff-lcs (1.3)
+    diffy (3.1.0)
+    discordrb-webhooks-blackst0ne (3.3.0)
+      rest-client (~> 2.0)
+    docile (1.1.5)
+    domain_name (0.5.20180417)
+      unf (>= 0.0.5, < 1.0.0)
+    doorkeeper (4.3.2)
+      railties (>= 4.2)
+    doorkeeper-openid_connect (1.5.0)
+      doorkeeper (~> 4.3)
+      json-jwt (~> 1.6)
+    ed25519 (1.2.4)
+    elasticsearch (5.0.3)
+      elasticsearch-api (= 5.0.3)
+      elasticsearch-transport (= 5.0.3)
+    elasticsearch-api (5.0.3)
+      multi_json
+    elasticsearch-model (0.1.9)
+      activesupport (> 3)
+      elasticsearch (> 0.4)
+      hashie
+    elasticsearch-rails (0.1.9)
+    elasticsearch-transport (5.0.3)
+      faraday
+      multi_json
+    email_reply_trimmer (0.1.6)
+    email_spec (2.2.0)
+      htmlentities (~> 4.3.3)
+      launchy (~> 2.1)
+      mail (~> 2.7)
+    encryptor (3.0.0)
+    equalizer (0.0.11)
+    erubi (1.7.1)
+    erubis (2.7.0)
+    escape_utils (1.2.1)
+    et-orbi (1.0.3)
+      tzinfo
+    eventmachine (1.2.7)
+    excon (0.62.0)
+    execjs (2.6.0)
+    expression_parser (0.9.0)
+    factory_bot (4.8.2)
+      activesupport (>= 3.0.0)
+    factory_bot_rails (4.8.2)
+      factory_bot (~> 4.8.2)
+      railties (>= 3.0.0)
+    faraday (0.12.2)
+      multipart-post (>= 1.2, < 3)
+    faraday_middleware (0.12.2)
+      faraday (>= 0.7.4, < 1.0)
+    faraday_middleware-aws-signers-v4 (0.1.7)
+      aws-sdk-resources (~> 2)
+      faraday (~> 0.9)
+    faraday_middleware-multi_json (0.0.6)
+      faraday_middleware
+      multi_json
+    fast_blank (1.0.0)
+    fast_gettext (1.6.0)
+    ffaker (2.10.0)
+    ffi (1.9.25)
+    flipper (0.13.0)
+    flipper-active_record (0.13.0)
+      activerecord (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flipper-active_support_cache_store (0.13.0)
+      activesupport (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flowdock (0.7.1)
+      httparty (~> 0.7)
+      multi_json
+    fog-aliyun (0.2.0)
+      fog-core (~> 1.27)
+      fog-json (~> 1.0)
+      ipaddress (~> 0.8)
+      xml-simple (~> 1.1)
+    fog-aws (2.0.1)
+      fog-core (~> 1.38)
+      fog-json (~> 1.0)
+      fog-xml (~> 0.1)
+      ipaddress (~> 0.8)
+    fog-core (1.45.0)
+      builder
+      excon (~> 0.58)
+      formatador (~> 0.2)
+    fog-google (1.7.1)
+      fog-core
+      fog-json
+      fog-xml
+      google-api-client (~> 0.23.0)
+    fog-json (1.0.2)
+      fog-core (~> 1.0)
+      multi_json (~> 1.10)
+    fog-local (0.3.1)
+      fog-core (~> 1.27)
+    fog-openstack (0.1.21)
+      fog-core (>= 1.40)
+      fog-json (>= 1.0)
+      ipaddress (>= 0.8)
+    fog-rackspace (0.1.1)
+      fog-core (>= 1.35)
+      fog-json (>= 1.0)
+      fog-xml (>= 0.1)
+      ipaddress (>= 0.8)
+    fog-xml (0.1.3)
+      fog-core
+      nokogiri (>= 1.5.11, < 2.0.0)
+    font-awesome-rails (4.7.0.1)
+      railties (>= 3.2, < 5.1)
+    foreman (0.84.0)
+      thor (~> 0.19.1)
+    formatador (0.2.5)
+    fuubar (2.2.0)
+      rspec-core (~> 3.0)
+      ruby-progressbar (~> 1.4)
+    gemojione (3.3.0)
+      json
+    get_process_mem (0.2.0)
+    gettext (3.2.9)
+      locale (>= 2.0.5)
+      text (>= 1.3.0)
+    gettext_i18n_rails (1.8.0)
+      fast_gettext (>= 0.9.0)
+    gettext_i18n_rails_js (1.3.0)
+      gettext (>= 3.0.2)
+      gettext_i18n_rails (>= 0.7.1)
+      po_to_json (>= 1.0.0)
+      rails (>= 3.2.0)
+    gitaly-proto (1.5.0)
+      grpc (~> 1.0)
+    github-markup (1.7.0)
+    gitlab-default_value_for (3.1.1)
+      activerecord (>= 3.2.0, < 6.0)
+    gitlab-license (1.0.0)
+    gitlab-markup (1.6.5)
+    gitlab-sidekiq-fetcher (0.4.0)
+      sidekiq (~> 5)
+    gitlab-styles (2.4.1)
+      rubocop (~> 0.54.0)
+      rubocop-gitlab-security (~> 0.1.0)
+      rubocop-rspec (~> 1.19)
+    gitlab_omniauth-ldap (2.0.4)
+      net-ldap (~> 0.16)
+      omniauth (~> 1.3)
+      pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
+      rubyntlm (~> 0.5)
+    globalid (0.4.1)
+      activesupport (>= 4.2.0)
+    gon (6.2.0)
+      actionpack (>= 3.0)
+      multi_json
+      request_store (>= 1.0)
+    google-api-client (0.23.4)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (>= 0.5, < 0.7.0)
+      httpclient (>= 2.8.1, < 3.0)
+      mime-types (~> 3.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.0)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
+      google-protobuf (~> 3.0)
+    googleauth (0.6.6)
+      faraday (~> 0.12)
+      jwt (>= 1.4, < 3.0)
+      memoist (~> 0.12)
+      multi_json (~> 1.11)
+      os (>= 0.9, < 2.0)
+      signet (~> 0.7)
+    gpgme (2.0.18)
+      mini_portile2 (~> 2.3)
+    grape (1.1.0)
+      activesupport
+      builder
+      mustermann-grape (~> 1.0.0)
+      rack (>= 1.3.0)
+      rack-accept
+      virtus (>= 1.0.0)
+    grape-entity (0.7.1)
+      activesupport (>= 4.0)
+      multi_json (>= 1.3.2)
+    grape-path-helpers (1.0.6)
+      activesupport (>= 4, < 5.1)
+      grape (~> 1.0)
+      rake (~> 12)
+    grape_logging (1.7.0)
+      grape
+    graphiql-rails (1.4.10)
+      railties
+      sprockets-rails
+    graphql (1.8.1)
+    grpc (1.15.0)
+      google-protobuf (~> 3.1)
+      googleapis-common-protos-types (~> 1.0.0)
+    gssapi (1.2.0)
+      ffi (>= 1.0.1)
+    haml (5.0.4)
+      temple (>= 0.8.0)
+      tilt
+    haml_lint (0.28.0)
+      haml (>= 4.0, < 5.1)
+      rainbow
+      rake (>= 10, < 13)
+      rubocop (>= 0.50.0)
+      sysexits (~> 1.1)
+    hamlit (2.8.8)
+      temple (>= 0.8.0)
+      thor
+      tilt
+    hangouts-chat (0.0.5)
+    hashdiff (0.3.4)
+    hashie (3.5.7)
+    hashie-forbidden_attributes (0.1.1)
+      hashie (>= 3.0)
+    health_check (2.6.0)
+      rails (>= 4.0)
+    hipchat (1.5.2)
+      httparty
+      mimemagic
+    html-pipeline (2.8.4)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    html2text (0.2.0)
+      nokogiri (~> 1.6)
+    htmlentities (4.3.4)
+    http (3.3.0)
+      addressable (~> 2.3)
+      http-cookie (~> 1.0)
+      http-form_data (~> 2.0)
+      http_parser.rb (~> 0.6.0)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
+    http-form_data (2.1.1)
+    http_parser.rb (0.6.0)
+    httparty (0.13.7)
+      json (~> 1.8)
+      multi_xml (>= 0.5.2)
+    httpclient (2.8.3)
+    i18n (1.2.0)
+      concurrent-ruby (~> 1.0)
+    icalendar (2.4.1)
+    ice_nine (0.11.2)
+    influxdb (0.2.3)
+      cause
+      json
+    ipaddress (0.8.3)
+    jira-ruby (1.4.1)
+      activesupport
+      multipart-post
+      oauth (~> 0.5, >= 0.5.0)
+    jmespath (1.3.1)
+    jquery-atwho-rails (1.3.2)
+    js_regex (2.2.1)
+      regexp_parser (>= 0.4.11, <= 0.5.0)
+    json (1.8.6)
+    json-jwt (1.9.4)
+      activesupport
+      aes_key_wrap
+      bindata
+    json-schema (2.8.0)
+      addressable (>= 2.4)
+    jwt (2.1.0)
+    kaminari (1.0.1)
+      activesupport (>= 4.1.0)
+      kaminari-actionview (= 1.0.1)
+      kaminari-activerecord (= 1.0.1)
+      kaminari-core (= 1.0.1)
+    kaminari-actionview (1.0.1)
+      actionview
+      kaminari-core (= 1.0.1)
+    kaminari-activerecord (1.0.1)
+      activerecord
+      kaminari-core (= 1.0.1)
+    kaminari-core (1.0.1)
+    kgio (2.10.0)
+    knapsack (1.17.0)
+      rake
+    kubeclient (4.0.0)
+      http (~> 3.0)
+      recursive-open-struct (~> 1.0, >= 1.0.4)
+      rest-client (~> 2.0)
+    launchy (2.4.3)
+      addressable (~> 2.3)
+    letter_opener (1.4.1)
+      launchy (~> 2.2)
+    letter_opener_web (1.3.0)
+      actionmailer (>= 3.2)
+      letter_opener (~> 1.0)
+      railties (>= 3.2)
+    license_finder (5.4.0)
+      bundler
+      rubyzip
+      thor
+      toml (= 0.2.0)
+      with_env (= 1.1.0)
+      xml-simple
+    licensee (8.9.2)
+      rugged (~> 0.24)
+    locale (2.1.2)
+    lograge (0.10.0)
+      actionpack (>= 4)
+      activesupport (>= 4)
+      railties (>= 4)
+      request_store (~> 1.0)
+    loofah (2.2.3)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    mail (2.7.1)
+      mini_mime (>= 0.1.1)
+    mail_room (0.9.1)
+    memoist (0.16.0)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    method_source (0.9.2)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mimemagic (0.3.2)
+    mini_magick (4.8.0)
+    mini_mime (1.0.1)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    msgpack (1.2.4)
+    multi_json (1.13.1)
+    multi_xml (0.6.0)
+    multipart-post (2.0.0)
+    mustermann (1.0.3)
+    mustermann-grape (1.0.0)
+      mustermann (~> 1.0.0)
+    mysql2 (0.4.10)
+    nakayoshi_fork (0.0.4)
+    net-dns (0.9.0)
+    net-ldap (0.16.0)
+    net-ntp (2.1.3)
+    net-ssh (5.0.1)
+    netrc (0.11.0)
+    nio4r (2.3.1)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    nokogumbo (1.5.0)
+      nokogiri
+    numerizer (0.1.1)
+    oauth (0.5.4)
+    oauth2 (1.4.1)
+      faraday (>= 0.8, < 0.16.0)
+      jwt (>= 1.0, < 3.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    octokit (4.9.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    omniauth (1.9.0)
+      hashie (>= 3.4.6, < 3.7.0)
+      rack (>= 1.6.2, < 3)
+    omniauth-auth0 (2.0.0)
+      omniauth-oauth2 (~> 1.4)
+    omniauth-authentiq (0.3.3)
+      jwt (>= 1.5)
+      omniauth-oauth2 (>= 1.5)
+    omniauth-azure-oauth2 (0.0.10)
+      jwt (>= 1.0, < 3.0)
+      omniauth (~> 1.0)
+      omniauth-oauth2 (~> 1.4)
+    omniauth-cas3 (1.1.4)
+      addressable (~> 2.3)
+      nokogiri (~> 1.7, >= 1.7.1)
+      omniauth (~> 1.2)
+    omniauth-facebook (4.0.0)
+      omniauth-oauth2 (~> 1.2)
+    omniauth-github (1.3.0)
+      omniauth (~> 1.5)
+      omniauth-oauth2 (>= 1.4.0, < 2.0)
+    omniauth-gitlab (1.0.3)
+      omniauth (~> 1.0)
+      omniauth-oauth2 (~> 1.0)
+    omniauth-google-oauth2 (0.6.0)
+      jwt (>= 2.0)
+      omniauth (>= 1.1.1)
+      omniauth-oauth2 (>= 1.5)
+    omniauth-kerberos (0.3.0)
+      omniauth-multipassword
+      timfel-krb5-auth (~> 0.8)
+    omniauth-multipassword (0.4.2)
+      omniauth (~> 1.0)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
+    omniauth-oauth2 (1.6.0)
+      oauth2 (~> 1.1)
+      omniauth (~> 1.9)
+    omniauth-oauth2-generic (0.2.2)
+      omniauth-oauth2 (~> 1.0)
+    omniauth-saml (1.10.0)
+      omniauth (~> 1.3, >= 1.3.2)
+      ruby-saml (~> 1.7)
+    omniauth-shibboleth (1.3.0)
+      omniauth (>= 1.0.0)
+    omniauth-twitter (1.4.0)
+      omniauth-oauth (~> 1.1)
+      rack
+    omniauth_crowd (2.2.3)
+      activesupport
+      nokogiri (>= 1.4.4)
+      omniauth (~> 1.0)
+    org-ruby (0.9.12)
+      rubypants (~> 0.2)
+    orm_adapter (0.5.0)
+    os (1.0.0)
+    parallel (1.12.1)
+    parser (2.5.3.0)
+      ast (~> 2.4.0)
+    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 (0.18.4)
+    po_to_json (1.0.1)
+      json (>= 1.6.0)
+    powerpack (0.1.1)
+    premailer (1.10.4)
+      addressable
+      css_parser (>= 1.4.10)
+      htmlentities (>= 4.0.0)
+    premailer-rails (1.9.7)
+      actionmailer (>= 3, < 6)
+      premailer (~> 1.7, >= 1.7.9)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    prometheus-client-mmap (0.9.4)
+    pry (0.11.3)
+      coderay (~> 1.1.0)
+      method_source (~> 0.9.0)
+    pry-byebug (3.5.1)
+      byebug (~> 9.1)
+      pry (~> 0.10)
+    pry-rails (0.3.6)
+      pry (>= 0.10.4)
+    public_suffix (3.0.3)
+    puma (3.12.0)
+    puma_worker_killer (0.1.0)
+      get_process_mem (~> 0.2)
+      puma (>= 2.7, < 4)
+    pyu-ruby-sasl (0.0.3.3)
+    rack (2.0.6)
+    rack-accept (0.4.5)
+      rack (>= 0.4)
+    rack-attack (4.4.1)
+      rack
+    rack-cors (1.0.2)
+    rack-oauth2 (1.2.3)
+      activesupport (>= 2.3)
+      attr_required (>= 0.0.5)
+      httpclient (>= 2.4)
+      multi_json (>= 1.3.6)
+      rack (>= 1.1)
+    rack-protection (2.0.4)
+      rack
+    rack-proxy (0.6.0)
+      rack
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (5.0.7.1)
+      actioncable (= 5.0.7.1)
+      actionmailer (= 5.0.7.1)
+      actionpack (= 5.0.7.1)
+      actionview (= 5.0.7.1)
+      activejob (= 5.0.7.1)
+      activemodel (= 5.0.7.1)
+      activerecord (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      bundler (>= 1.3.0)
+      railties (= 5.0.7.1)
+      sprockets-rails (>= 2.0.0)
+    rails-controller-testing (1.0.2)
+      actionpack (~> 5.x, >= 5.0.1)
+      actionview (~> 5.x, >= 5.0.1)
+      activesupport (~> 5.x)
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (2.0.3)
+      activesupport (>= 4.2.0)
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.0.4)
+      loofah (~> 2.2, >= 2.2.2)
+    rails-i18n (5.1.1)
+      i18n (>= 0.7, < 2)
+      railties (>= 5.0, < 6)
+    railties (5.0.7.1)
+      actionpack (= 5.0.7.1)
+      activesupport (= 5.0.7.1)
+      method_source
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rainbow (3.0.0)
+    raindrops (0.18.0)
+    rake (12.3.2)
+    rb-fsevent (0.10.2)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    rblineprof (0.3.6)
+      debugger-ruby_core_source (~> 1.3)
+    rbtrace (0.4.10)
+      ffi (>= 1.0.6)
+      msgpack (>= 0.4.3)
+      trollop (>= 1.16.2)
+    rdoc (6.0.4)
+    re2 (1.1.1)
+    recaptcha (3.0.0)
+      json
+    recursive-open-struct (1.1.0)
+    redcarpet (3.4.0)
+    redis (3.3.5)
+    redis-actionpack (5.0.2)
+      actionpack (>= 4.0, < 6)
+      redis-rack (>= 1, < 3)
+      redis-store (>= 1.1.0, < 2)
+    redis-activesupport (5.0.4)
+      activesupport (>= 3, < 6)
+      redis-store (>= 1.3, < 2)
+    redis-namespace (1.6.0)
+      redis (>= 3.0.4)
+    redis-rack (2.0.4)
+      rack (>= 1.5, < 3)
+      redis-store (>= 1.2, < 2)
+    redis-rails (5.0.2)
+      redis-actionpack (>= 5.0, < 6)
+      redis-activesupport (>= 5.0, < 6)
+      redis-store (>= 1.2, < 2)
+    redis-store (1.6.0)
+      redis (>= 2.2, < 5)
+    regexp_parser (0.5.0)
+    representable (3.0.4)
+      declarative (< 0.1.0)
+      declarative-option (< 0.2.0)
+      uber (< 0.2.0)
+    request_store (1.3.1)
+    responders (2.4.0)
+      actionpack (>= 4.2.0, < 5.3)
+      railties (>= 4.2.0, < 5.3)
+    rest-client (2.0.2)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 4.0)
+      netrc (~> 0.8)
+    retriable (3.1.2)
+    rinku (2.0.0)
+    rotp (2.1.2)
+    rouge (3.3.0)
+    rqrcode (0.7.0)
+      chunky_png
+    rqrcode-rails3 (0.1.7)
+      rqrcode (>= 0.4.2)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.1)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-mocks (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.1)
+      binding_ninja (>= 0.2.1)
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
+    rspec-rails (3.7.2)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      railties (>= 3.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+      rspec-support (~> 3.7.0)
+    rspec-retry (0.4.5)
+      rspec-core
+    rspec-set (0.1.3)
+    rspec-support (3.7.1)
+    rspec_junit_formatter (0.4.1)
+      rspec-core (>= 2, < 4, != 2.12.0)
+    rspec_profiling (0.0.5)
+      activerecord
+      pg
+      rails
+      sqlite3
+    rubocop (0.54.0)
+      parallel (~> 1.10)
+      parser (>= 2.5)
+      powerpack (~> 0.1)
+      rainbow (>= 2.2.2, < 4.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.0, >= 1.0.1)
+    rubocop-gitlab-security (0.1.1)
+      rubocop (>= 0.51)
+    rubocop-rspec (1.22.2)
+      rubocop (>= 0.52.1)
+    ruby-enum (0.7.2)
+      i18n
+    ruby-fogbugz (0.2.1)
+      crack (~> 0.4)
+    ruby-prof (0.17.0)
+    ruby-progressbar (1.9.0)
+    ruby-saml (1.7.2)
+      nokogiri (>= 1.5.10)
+    ruby_parser (3.11.0)
+      sexp_processor (~> 4.9)
+    rubyntlm (0.6.2)
+    rubypants (0.2.0)
+    rubyzip (1.2.2)
+    rufus-scheduler (3.4.0)
+      et-orbi (~> 1.0)
+    rugged (0.27.5)
+    safe_yaml (1.0.4)
+    sanitize (4.6.6)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4)
+    sass (3.5.5)
+      sass-listen (~> 4.0.0)
+    sass-listen (4.0.0)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+    sass-rails (5.0.6)
+      railties (>= 4.0.0, < 6)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (>= 1.1, < 3)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    scss_lint (0.56.0)
+      rake (>= 0.9, < 13)
+      sass (~> 3.5.3)
+    seed-fu (2.3.7)
+      activerecord (>= 3.1)
+      activesupport (>= 3.1)
+    select2-rails (3.5.9.3)
+      thor (~> 0.14)
+    selenium-webdriver (3.12.0)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.2)
+    sentry-raven (2.7.4)
+      faraday (>= 0.7.6, < 1.0)
+    settingslogic (2.0.9)
+    sexp_processor (4.11.0)
+    sham_rack (1.3.6)
+      rack
+    shoulda-matchers (3.1.2)
+      activesupport (>= 4.0.0)
+    sidekiq (5.2.3)
+      connection_pool (~> 2.2, >= 2.2.2)
+      rack-protection (>= 1.5.0)
+      redis (>= 3.3.5, < 5)
+    sidekiq-cron (0.6.0)
+      rufus-scheduler (>= 3.3.0)
+      sidekiq (>= 4.2.1)
+    signet (0.11.0)
+      addressable (~> 2.3)
+      faraday (~> 0.9)
+      jwt (>= 1.5, < 3.0)
+      multi_json (~> 1.10)
+    simple_po_parser (1.1.2)
+    simplecov (0.14.1)
+      docile (~> 1.1.0)
+      json (>= 1.8, < 3)
+      simplecov-html (~> 0.10.0)
+    simplecov-html (0.10.0)
+    slack-notifier (1.5.1)
+    spring (2.0.2)
+      activesupport (>= 4.2)
+    spring-commands-rspec (1.0.4)
+      spring (>= 0.9.1)
+    sprockets (3.7.2)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.2.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sqlite3 (1.3.13)
+    sshkey (1.9.0)
+    stackprof (0.2.10)
+    state_machines (0.5.0)
+    state_machines-activemodel (0.5.1)
+      activemodel (>= 4.1, < 6.0)
+      state_machines (>= 0.5.0)
+    state_machines-activerecord (0.5.1)
+      activerecord (>= 4.1, < 6.0)
+      state_machines-activemodel (>= 0.5.0)
+    sys-filesystem (1.1.6)
+      ffi
+    sysexits (1.2.0)
+    temple (0.8.0)
+    test-prof (0.2.5)
+    text (1.3.1)
+    thin (1.7.2)
+      daemons (~> 1.0, >= 1.0.9)
+      eventmachine (~> 1.0, >= 1.0.4)
+      rack (>= 1, < 3)
+    thor (0.19.4)
+    thread_safe (0.3.6)
+    tilt (2.0.8)
+    timecop (0.8.1)
+    timfel-krb5-auth (0.8.3)
+    toml (0.2.0)
+      parslet (~> 1.8.0)
+    toml-rb (1.0.0)
+      citrus (~> 3.0, > 3.0)
+    trollop (2.1.3)
+    truncato (0.7.10)
+      htmlentities (~> 4.3.1)
+      nokogiri (~> 1.8.0, >= 1.7.0)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    u2f (0.2.1)
+    uber (0.1.0)
+    uglifier (2.7.2)
+      execjs (>= 0.3.0)
+      json (>= 1.8.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.5)
+    unicode-display_width (1.3.2)
+    unicorn (5.1.0)
+      kgio (~> 2.6)
+      raindrops (~> 0.7)
+    unicorn-worker-killer (0.4.4)
+      get_process_mem (~> 0)
+      unicorn (>= 4, < 6)
+    uniform_notifier (1.10.0)
+    unparser (0.4.2)
+      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)
+    validates_hostname (1.0.6)
+      activerecord (>= 3.0)
+      activesupport (>= 3.0)
+    version_sorter (2.1.0)
+    virtus (1.0.5)
+      axiom-types (~> 0.1)
+      coercible (~> 1.0)
+      descendants_tracker (~> 0.0, >= 0.0.3)
+      equalizer (~> 0.0, >= 0.0.9)
+    vmstat (2.3.0)
+    warden (1.2.7)
+      rack (>= 1.0)
+    webmock (2.3.2)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+    webpack-rails (0.9.11)
+      railties (>= 3.2.0)
+    websocket-driver (0.6.5)
+      websocket-extensions (>= 0.1.0)
+    websocket-extensions (0.1.3)
+    wikicloth (0.8.1)
+      builder
+      expression_parser
+      rinku
+    with_env (1.1.0)
+    xml-simple (1.1.5)
+    xpath (2.1.0)
+      nokogiri (~> 1.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  RedCloth (~> 4.3.2)
+  ace-rails-ap (~> 4.1.0)
+  activerecord_sane_schema_dumper (= 1.0)
+  acts-as-taggable-on (~> 5.0)
+  addressable (~> 2.5.2)
+  akismet (~> 2.0)
+  asana (~> 0.8.1)
+  asciidoctor (~> 1.5.8)
+  asciidoctor-plantuml (= 0.0.8)
+  attr_encrypted (~> 3.1.0)
+  awesome_print
+  aws-sdk
+  babosa (~> 1.0.2)
+  base32 (~> 0.3.0)
+  batch-loader (~> 1.2.2)
+  bcrypt_pbkdf (~> 1.0)
+  benchmark-ips (~> 2.3.0)
+  better_errors (~> 2.5.0)
+  binding_of_caller (~> 0.8.0)
+  bootsnap (~> 1.3)
+  bootstrap_form (~> 2.7.0)
+  brakeman (~> 4.2)
+  browser (~> 2.5)
+  bullet (~> 5.5.0)
+  bundler-audit (~> 0.5.0)
+  capybara (~> 2.16.1)
+  capybara-screenshot (~> 1.0.18)
+  carrierwave (~> 1.3)
+  charlock_holmes (~> 0.7.5)
+  chronic (~> 0.10.2)
+  chronic_duration (~> 0.10.6)
+  commonmarker (~> 0.17)
+  concurrent-ruby (~> 1.1)
+  connection_pool (~> 2.0)
+  creole (~> 0.5.0)
+  database_cleaner (~> 1.7.0)
+  deckar01-task_list (= 2.0.0)
+  device_detector
+  devise (~> 4.4)
+  devise-two-factor (~> 3.0.0)
+  diffy (~> 3.1.0)
+  discordrb-webhooks-blackst0ne (~> 3.3)
+  doorkeeper (~> 4.3)
+  doorkeeper-openid_connect (~> 1.5)
+  ed25519 (~> 1.2)
+  elasticsearch-api (= 5.0.3)
+  elasticsearch-model (~> 0.1.9)
+  elasticsearch-rails (~> 0.1.9)
+  email_reply_trimmer (~> 0.1)
+  email_spec (~> 2.2.0)
+  escape_utils (~> 1.1)
+  factory_bot_rails (~> 4.8.2)
+  faraday (~> 0.12)
+  faraday_middleware-aws-signers-v4
+  fast_blank
+  ffaker (~> 2.10)
+  flipper (~> 0.13.0)
+  flipper-active_record (~> 0.13.0)
+  flipper-active_support_cache_store (~> 0.13.0)
+  flowdock (~> 0.7)
+  fog-aliyun (~> 0.2.0)
+  fog-aws (~> 2.0.1)
+  fog-core (~> 1.44)
+  fog-google (~> 1.7.1)
+  fog-local (~> 0.3)
+  fog-openstack (~> 0.1)
+  fog-rackspace (~> 0.1.1)
+  font-awesome-rails (~> 4.7)
+  foreman (~> 0.84.0)
+  fuubar (~> 2.2.0)
+  gemojione (~> 3.3)
+  gettext (~> 3.2.2)
+  gettext_i18n_rails (~> 1.8.0)
+  gettext_i18n_rails_js (~> 1.3)
+  gitaly-proto (~> 1.5.0)
+  github-markup (~> 1.7.0)
+  gitlab-default_value_for (~> 3.1.1)
+  gitlab-license (~> 1.0)
+  gitlab-markup (~> 1.6.5)
+  gitlab-sidekiq-fetcher (~> 0.4.0)
+  gitlab-styles (~> 2.4)
+  gitlab_omniauth-ldap (~> 2.0.4)
+  gon (~> 6.2)
+  google-api-client (~> 0.23)
+  google-protobuf (~> 3.6)
+  gpgme (~> 2.0.18)
+  grape (~> 1.1.0)
+  grape-entity (~> 0.7.1)
+  grape-path-helpers (~> 1.0)
+  grape_logging (~> 1.7)
+  graphiql-rails (~> 1.4.10)
+  graphql (~> 1.8.0)
+  grpc (~> 1.15.0)
+  gssapi
+  haml_lint (~> 0.28.0)
+  hamlit (~> 2.8.8)
+  hangouts-chat (~> 0.0.5)
+  hashie-forbidden_attributes
+  health_check (~> 2.6.0)
+  hipchat (~> 1.5.0)
+  html-pipeline (~> 2.8)
+  html2text
+  httparty (~> 0.13.3)
+  icalendar
+  influxdb (~> 0.2)
+  jira-ruby (~> 1.4)
+  jquery-atwho-rails (~> 1.3.2)
+  js_regex (~> 2.2.1)
+  json-schema (~> 2.8.0)
+  jwt (~> 2.1.0)
+  kaminari (~> 1.0)
+  knapsack (~> 1.17)
+  kubeclient (~> 4.0.0)
+  letter_opener_web (~> 1.3.0)
+  license_finder (~> 5.4)
+  licensee (~> 8.9)
+  lograge (~> 0.5)
+  loofah (~> 2.2)
+  mail_room (~> 0.9.1)
+  method_source (~> 0.8)
+  mimemagic (~> 0.3.2)
+  mini_magick
+  minitest (~> 5.11.0)
+  mysql2 (~> 0.4.10)
+  nakayoshi_fork (~> 0.0.4)
+  net-dns (~> 0.9.0)
+  net-ldap
+  net-ntp
+  net-ssh (~> 5.0)
+  nokogiri (~> 1.8.5)
+  oauth2 (~> 1.4)
+  octokit (~> 4.9)
+  omniauth (~> 1.8)
+  omniauth-auth0 (~> 2.0.0)
+  omniauth-authentiq (~> 0.3.3)
+  omniauth-azure-oauth2 (~> 0.0.9)
+  omniauth-cas3 (~> 1.1.4)
+  omniauth-facebook (~> 4.0.0)
+  omniauth-github (~> 1.3)
+  omniauth-gitlab (~> 1.0.2)
+  omniauth-google-oauth2 (~> 0.6.0)
+  omniauth-kerberos (~> 0.3.0)
+  omniauth-oauth2-generic (~> 0.2.2)
+  omniauth-saml (~> 1.10)
+  omniauth-shibboleth (~> 1.3.0)
+  omniauth-twitter (~> 1.4)
+  omniauth_crowd (~> 2.2.0)
+  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 (~> 0.18.2)
+  premailer-rails (~> 1.9.7)
+  prometheus-client-mmap (~> 0.9.4)
+  pry-byebug (~> 3.5.1)
+  pry-rails (~> 0.3.4)
+  puma (~> 3.12)
+  puma_worker_killer
+  rack (= 2.0.6)
+  rack-attack (~> 4.4.1)
+  rack-cors (~> 1.0.0)
+  rack-oauth2 (~> 1.2.1)
+  rack-proxy (~> 0.6.0)
+  rails (= 5.0.7.1)
+  rails-controller-testing
+  rails-deprecated_sanitizer (~> 1.0.3)
+  rails-i18n (~> 5.1)
+  rainbow (~> 3.0)
+  raindrops (~> 0.18)
+  rblineprof (~> 0.3.6)
+  rbtrace (~> 0.4)
+  rdoc (~> 6.0)
+  re2 (~> 1.1.1)
+  recaptcha (~> 3.0)
+  redcarpet (~> 3.4)
+  redis (~> 3.2)
+  redis-namespace (~> 1.6.0)
+  redis-rails (~> 5.0.2)
+  request_store (~> 1.3)
+  responders (~> 2.0)
+  rouge (~> 3.1)
+  rqrcode-rails3 (~> 0.1.7)
+  rspec-parameterized
+  rspec-rails (~> 3.7.0)
+  rspec-retry (~> 0.4.5)
+  rspec-set (~> 0.1.3)
+  rspec_junit_formatter
+  rspec_profiling (~> 0.0.5)
+  rubocop (~> 0.54.0)
+  rubocop-rspec (~> 1.22.1)
+  ruby-fogbugz (~> 0.2.1)
+  ruby-prof (~> 0.17.0)
+  ruby-progressbar
+  ruby_parser (~> 3.8)
+  rubyzip (~> 1.2.2)
+  rufus-scheduler (~> 3.4)
+  rugged (~> 0.27)
+  sanitize (~> 4.6)
+  sass (~> 3.5)
+  sass-rails (~> 5.0.6)
+  scss_lint (~> 0.56.0)
+  seed-fu (~> 2.3.7)
+  select2-rails (~> 3.5.9)
+  selenium-webdriver (~> 3.12)
+  sentry-raven (~> 2.7)
+  settingslogic (~> 2.0.9)
+  sham_rack (~> 1.3.6)
+  shoulda-matchers (~> 3.1.2)
+  sidekiq (~> 5.2.1)
+  sidekiq-cron (~> 0.6.0)
+  simple_po_parser (~> 1.1.2)
+  simplecov (~> 0.14.0)
+  slack-notifier (~> 1.5.1)
+  spring (~> 2.0.0)
+  spring-commands-rspec (~> 1.0.4)
+  sprockets (~> 3.7.0)
+  sshkey (~> 1.9.0)
+  stackprof (~> 0.2.10)
+  state_machines-activerecord (~> 0.5.1)
+  sys-filesystem (~> 1.1.6)
+  test-prof (~> 0.2.5)
+  thin (~> 1.7.0)
+  timecop (~> 0.8.0)
+  toml-rb (~> 1.0.0)
+  truncato (~> 0.7.9)
+  u2f (~> 0.2.1)
+  uglifier (~> 2.7.2)
+  unf (~> 0.1.4)
+  unicorn (~> 5.1.0)
+  unicorn-worker-killer (~> 0.4.4)
+  validates_hostname (~> 1.0.6)
+  version_sorter (~> 2.1.0)
+  virtus (~> 1.0.1)
+  vmstat (~> 2.3.0)
+  webmock (~> 2.3.2)
+  webpack-rails (~> 0.9.10)
+  wikicloth (= 0.8.1)
+
+BUNDLED WITH
+   1.17.3
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix
new file mode 100644
index 000000000000..03f885f2f9e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix
@@ -0,0 +1,3653 @@
+{
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  ace-rails-ap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h";
+      type = "gem";
+    };
+    version = "4.1.2";
+  };
+  actioncable = {
+    dependencies = ["actionpack" "nio4r" "websocket-driver"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1443cal16yzc94hfxcx9ljagdbs5xs54bmr55wzmg84wx28bgvrb";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "077g5yg8l10rcs8r63pmmikakma1nr2bvxa1ifly1vbry8lajmhm";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zn3gw1naz1l6kcb4h5all24kisdv8fk733vm1niiaq2zmwbvlrw";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "053z1r9lbyqb7a8mvi7ppwgphqg1pn9ynhklwxavq65cym8qn9a1";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w9rspq9y5a99kyljzam7k0cpvkxpzhfmlvs1j6a4flxn14qy7lv";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activemodel = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i808lgn542x0lyk2dlnziiqcf1nmxhxqf6125dq6brr08yxgr0c";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "arel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qva7vdv9arliza0155k0xh5w1q6rzdajj3rmj7hv0f86ybd674c";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  activerecord_sane_schema_dumper = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16jbf461wjaxyq26si5505wcj46mi23mii9hx4wjpva1zn9hz5m2";
+      type = "gem";
+    };
+    version = "1.0";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02dnmcmkvzijbzm5nlmrd55s5586b78s087kvpvkada3791b9agb";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  acts-as-taggable-on = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i";
+      type = "gem";
+    };
+    version = "5.0.0";
+  };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  aes_key_wrap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  akismet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  arel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l757dkkaxk5fq3368l79jpyzq9a9driricjamhiwhwvh0h7xcyx";
+      type = "gem";
+    };
+    version = "7.1.4";
+  };
+  asana = {
+    dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h0qiywvjjc9iyzq9nz5iaqyh6qsrix4ip0w86j5c4v5g940z6qx";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  asciidoctor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qld3a1pbcjvs8lbxp95iz83bfmg5scmnf8q3rklinmdmhzakslx";
+      type = "gem";
+    };
+    version = "1.5.8";
+  };
+  asciidoctor-plantuml = {
+    dependencies = ["asciidoctor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna";
+      type = "gem";
+    };
+    version = "0.0.8";
+  };
+  ast = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  atomic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9";
+      type = "gem";
+    };
+    version = "1.1.99";
+  };
+  attr_encrypted = {
+    dependencies = ["encryptor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  attr_required = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  awesome_print = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  aws-sdk = {
+    dependencies = ["aws-sdk-resources"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03r754cqa0jayf1nxpcmp1anaypxwpcjyjaq5cz7i04l9jdxvsnn";
+      type = "gem";
+    };
+    version = "2.9.32";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-sigv4" "jmespath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pq09wwb74y4m5adk4hi4zlz05q6sxjxij6g71v6nkd0z83hi34x";
+      type = "gem";
+    };
+    version = "2.9.32";
+  };
+  aws-sdk-resources = {
+    dependencies = ["aws-sdk-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15m56k12x9gzkcyhwrab1qhi3wqla0qmv84dkqcjwp44d7c2xjyi";
+      type = "gem";
+    };
+    version = "2.9.32";
+  };
+  aws-sigv4 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cnrfxbaxn86qrxhfidg10f89ka1hddihakdhcvnri0dljaw7dsz";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  axiom-types = {
+    dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  babosa = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  base32 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  batch-loader = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pwr2hk9x1qx9i2xpkpjwkdjsmm4kamz5f25wizsaw37zb64apjc";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  bcrypt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+      type = "gem";
+    };
+    version = "3.1.12";
+  };
+  bcrypt_pbkdf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  benchmark-ips = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  better_errors = {
+    dependencies = ["coderay" "erubi" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  bindata = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  binding_ninja = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19dk26qyx433ffa6y48511apc2iw71zw4jnlqxhy0wix9dlxr2ri";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  bootsnap = {
+    dependencies = ["msgpack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  bootstrap_form = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  brakeman = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
+      type = "gem";
+    };
+    version = "4.2.1";
+  };
+  browser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+  builder = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  bullet = {
+    dependencies = ["activesupport" "uniform_notifier"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5";
+      type = "gem";
+    };
+    version = "5.5.1";
+  };
+  bundler-audit = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  byebug = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vv7s88w8jb1qg4qz3jrs3x3y5d9jfyyl7wfiz78b5x95ydvx41q";
+      type = "gem";
+    };
+    version = "9.1.0";
+  };
+  capybara = {
+    dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hkl6p07gf29952biv07fy88vjz46ng2h37wwx5ks0mk9kn8vvvf";
+      type = "gem";
+    };
+    version = "2.16.1";
+  };
+  capybara-screenshot = {
+    dependencies = ["capybara" "launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q";
+      type = "gem";
+    };
+    version = "1.0.22";
+  };
+  carrierwave = {
+    dependencies = ["activemodel" "activesupport" "mime-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  cause = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
+      type = "gem";
+    };
+    version = "0.1";
+  };
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  chronic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  chronic_duration = {
+    dependencies = ["numerizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs";
+      type = "gem";
+    };
+    version = "0.10.6";
+  };
+  chunky_png = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
+      type = "gem";
+    };
+    version = "1.3.5";
+  };
+  citrus = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  coercible = {
+    dependencies = ["descendants_tracker"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  commonmarker = {
+    dependencies = ["ruby-enum"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
+      type = "gem";
+    };
+    version = "0.17.13";
+  };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  concurrent-ruby-ext = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h7k4wnvbxv7vzb53kaqxbbyhp3m98g2rgymr6n1l9v0jlzcr1i8";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  connection_pool = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  crack = {
+    dependencies = ["safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  creole = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  daemons = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+      type = "gem";
+    };
+    version = "1.2.6";
+  };
+  database_cleaner = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  debugger-ruby_core_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
+      type = "gem";
+    };
+    version = "1.3.8";
+  };
+  deckar01-task_list = {
+    dependencies = ["html-pipeline"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  declarative = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  declarative-option = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  descendants_tracker = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  device_detector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  devise = {
+    dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj";
+      type = "gem";
+    };
+    version = "4.4.3";
+  };
+  devise-two-factor = {
+    dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  diffy = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  discordrb-webhooks-blackst0ne = {
+    dependencies = ["rest-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  docile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  domain_name = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+      type = "gem";
+    };
+    version = "0.5.20180417";
+  };
+  doorkeeper = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  doorkeeper-openid_connect = {
+    dependencies = ["doorkeeper" "json-jwt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  ed25519 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  elasticsearch = {
+    dependencies = ["elasticsearch-api" "elasticsearch-transport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fik4nrxyi28zy1xwi4rygn0pf1sm1gskcrvbsnmqfrsdd6l4ga4";
+      type = "gem";
+    };
+    version = "5.0.3";
+  };
+  elasticsearch-api = {
+    dependencies = ["multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0aal128hq59l5kscl2ag2cv24g1sp5ysdb4jxkqmj0b1l9rv16mw";
+      type = "gem";
+    };
+    version = "5.0.3";
+  };
+  elasticsearch-model = {
+    dependencies = ["activesupport" "elasticsearch" "hashie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10kbsdxd192g8x60fhaxs4gqpgwag68d53flcw8rwvdm0i8smyzf";
+      type = "gem";
+    };
+    version = "0.1.9";
+  };
+  elasticsearch-rails = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "081hm2dc3l6kky027wm3s8k6lmiygg0hnrggnidchbl94nlalw2z";
+      type = "gem";
+    };
+    version = "0.1.9";
+  };
+  elasticsearch-transport = {
+    dependencies = ["faraday" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a7fak70ajdqw1ahd2gmgijka52pjjfr3chaakkxa5fk3rwwna26";
+      type = "gem";
+    };
+    version = "5.0.3";
+  };
+  email_reply_trimmer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
+      type = "gem";
+    };
+    version = "0.1.6";
+  };
+  email_spec = {
+    dependencies = ["htmlentities" "launchy" "mail"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  encryptor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  equalizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  erubi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bws86na9k565raiz0kk61yy5pxxp0fmwyzpibdwjkq0xzx8q6q1";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  erubis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  escape_utils = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  et-orbi = {
+    dependencies = ["tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  eventmachine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  excon = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+      type = "gem";
+    };
+    version = "0.62.0";
+  };
+  execjs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  expression_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  factory_bot_rails = {
+    dependencies = ["factory_bot" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware-aws-signers-v4 = {
+    dependencies = ["aws-sdk-resources" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y88xcbq8k2ijhsqdava5493p26k49agvnzca6vkl3qwfv3ambhp";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
+  faraday_middleware-multi_json = {
+    dependencies = ["faraday_middleware" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
+      type = "gem";
+    };
+    version = "0.0.6";
+  };
+  fast_blank = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fast_gettext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  ffaker = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
+      type = "gem";
+    };
+    version = "2.10.0";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  flipper = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_record = {
+    dependencies = ["activerecord" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_support_cache_store = {
+    dependencies = ["activesupport" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flowdock = {
+    dependencies = ["httparty" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  fog-aliyun = {
+    dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  fog-aws = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  fog-core = {
+    dependencies = ["builder" "excon" "formatador"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3";
+      type = "gem";
+    };
+    version = "1.45.0";
+  };
+  fog-google = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  fog-json = {
+    dependencies = ["fog-core" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  fog-local = {
+    dependencies = ["fog-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  fog-openstack = {
+    dependencies = ["fog-core" "fog-json" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys";
+      type = "gem";
+    };
+    version = "0.1.21";
+  };
+  fog-rackspace = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  fog-xml = {
+    dependencies = ["fog-core" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  font-awesome-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw";
+      type = "gem";
+    };
+    version = "4.7.0.1";
+  };
+  foreman = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0";
+      type = "gem";
+    };
+    version = "0.84.0";
+  };
+  formatador = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  fuubar = {
+    dependencies = ["rspec-core" "ruby-progressbar"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  get_process_mem = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  gettext = {
+    dependencies = ["locale" "text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
+      type = "gem";
+    };
+    version = "3.2.9";
+  };
+  gettext_i18n_rails = {
+    dependencies = ["fast_gettext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  gettext_i18n_rails_js = {
+    dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  gitaly-proto = {
+    dependencies = ["grpc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p7c63saysp4ixj08kxrk5c4n94d6zala9wl1fxg7vx8nd84b2c0";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-default_value_for = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qqjf7nxmwxnkdlrgbnby8wjckaj2s5yna96avgb7fwm0h90f1sn";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  gitlab-license = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  gitlab-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12lzzhbmid4m23pk7d963n3njli2hw7g200arszh75j57bjgs4fy";
+      type = "gem";
+    };
+    version = "1.6.5";
+  };
+  gitlab-sidekiq-fetcher = {
+    dependencies = ["sidekiq"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xaag97iclmiay8fx7dkiws8dsws2gi6l0axq4yljq5g7xm78qjr";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  gitlab-styles = {
+    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  gitlab_omniauth-ldap = {
+    dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  gon = {
+    dependencies = ["actionpack" "multi_json" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  google-api-client = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k";
+      type = "gem";
+    };
+    version = "0.23.4";
+  };
+  google-protobuf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
+      type = "gem";
+    };
+    version = "3.6.1";
+  };
+  googleapis-common-protos-types = {
+    dependencies = ["google-protobuf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  googleauth = {
+    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
+      type = "gem";
+    };
+    version = "0.6.6";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
+      type = "gem";
+    };
+    version = "2.0.18";
+  };
+  grape = {
+    dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  grape-entity = {
+    dependencies = ["activesupport" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  grape-path-helpers = {
+    dependencies = ["activesupport" "grape" "rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  grape_logging = {
+    dependencies = ["grape"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  graphiql-rails = {
+    dependencies = ["railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
+      type = "gem";
+    };
+    version = "1.4.10";
+  };
+  graphql = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  grpc = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  gssapi = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  haml = {
+    dependencies = ["temple" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  haml_lint = {
+    dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "125aj0j84nx5gqm42hfx5d8486higlra423ahgfpsdjwbp399rwv";
+      type = "gem";
+    };
+    version = "0.28.0";
+  };
+  hamlit = {
+    dependencies = ["temple" "thor" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
+      type = "gem";
+    };
+    version = "2.8.8";
+  };
+  hangouts-chat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  hashdiff = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a";
+      type = "gem";
+    };
+    version = "0.3.4";
+  };
+  hashie = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
+      type = "gem";
+    };
+    version = "3.5.7";
+  };
+  hashie-forbidden_attributes = {
+    dependencies = ["hashie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  health_check = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  hipchat = {
+    dependencies = ["httparty" "mimemagic"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  html2text = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  htmlentities = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  http = {
+    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  http-form_data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  "http_parser.rb" = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  httparty = {
+    dependencies = ["json" "multi_xml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2";
+      type = "gem";
+    };
+    version = "0.13.7";
+  };
+  httpclient = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "079sqshk08mqs3d6yzvshmqf4s175lpi2pp71f1p10l09sgmrixr";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  icalendar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  influxdb = {
+    dependencies = ["cause" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  ipaddress = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  jira-ruby = {
+    dependencies = ["activesupport" "multipart-post" "oauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  jmespath = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07w8ipjg59qavijq59hl82zs74jf3jsp7vxl9q3a2d0wpv5akz3y";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  jquery-atwho-rails = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  js_regex = {
+    dependencies = ["regexp_parser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+      type = "gem";
+    };
+    version = "1.8.6";
+  };
+  json-jwt = {
+    dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+      type = "gem";
+    };
+    version = "1.9.4";
+  };
+  json-schema = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  jwt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  kaminari = {
+    dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-actionview = {
+    dependencies = ["actionview" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-activerecord = {
+    dependencies = ["activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kgio = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118";
+      type = "gem";
+    };
+    version = "2.10.0";
+  };
+  knapsack = {
+    dependencies = ["rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
+      type = "gem";
+    };
+    version = "1.17.0";
+  };
+  kubeclient = {
+    dependencies = ["http" "recursive-open-struct" "rest-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s250z89nz7vzich3nikc8fs8vgpac38wjv8llm4ldvs4iyc4ypg";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  launchy = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  letter_opener = {
+    dependencies = ["launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  letter_opener_web = {
+    dependencies = ["actionmailer" "letter_opener" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  license_finder = {
+    dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v";
+      type = "gem";
+    };
+    version = "5.4.0";
+  };
+  licensee = {
+    dependencies = ["rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      type = "gem";
+    };
+    version = "8.9.2";
+  };
+  locale = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  lograge = {
+    dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  mail_room = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  memoist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  memoizable = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  method_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+      type = "gem";
+    };
+    version = "0.9.2";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mimemagic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  mini_magick = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n";
+      type = "gem";
+    };
+    version = "4.8.0";
+  };
+  mini_mime = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  msgpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  multi_xml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  mustermann = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  mustermann-grape = {
+    dependencies = ["mustermann"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mysql2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  nakayoshi_fork = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  net-dns = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18d97xjphw21naaqfhgxp95ikr1d79rx708b2df3xm01j6isqy1d";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  net-ldap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  net-ntp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  net-ssh = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w";
+      type = "gem";
+    };
+    version = "5.0.1";
+  };
+  netrc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  nio4r = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  numerizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  oauth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      type = "gem";
+    };
+    version = "0.5.4";
+  };
+  oauth2 = {
+    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  octokit = {
+    dependencies = ["sawyer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298";
+      type = "gem";
+    };
+    version = "4.9.0";
+  };
+  omniauth = {
+    dependencies = ["hashie" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  omniauth-auth0 = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  omniauth-authentiq = {
+    dependencies = ["jwt" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  omniauth-azure-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  omniauth-cas3 = {
+    dependencies = ["addressable" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  omniauth-facebook = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  omniauth-github = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-gitlab = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  omniauth-google-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  omniauth-kerberos = {
+    dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  omniauth-multipassword = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  omniauth-oauth = {
+    dependencies = ["oauth" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  omniauth-oauth2 = {
+    dependencies = ["oauth2" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  omniauth-oauth2-generic = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  omniauth-saml = {
+    dependencies = ["omniauth" "ruby-saml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  omniauth-shibboleth = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-twitter = {
+    dependencies = ["omniauth-oauth" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  omniauth_crowd = {
+    dependencies = ["activesupport" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  org-ruby = {
+    dependencies = ["rubypants"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
+      type = "gem";
+    };
+    version = "0.9.12";
+  };
+  orm_adapter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  os = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  parallel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+      type = "gem";
+    };
+    version = "2.5.3.0";
+  };
+  parslet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
+      type = "gem";
+    };
+    version = "1.8.2";
+  };
+  peek = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  peek-gc = {
+    dependencies = ["peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  peek-mysql2 = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "mysql2" "peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0avmwm3yw0kx0z8gh4cpqj79jb5aicd0h3yzrcdfpzwks56h1k9z";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  peek-pg = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  peek-rblineprof = {
+    dependencies = ["peek" "rblineprof"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  peek-redis = {
+    dependencies = ["atomic" "peek" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  pg = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
+      type = "gem";
+    };
+    version = "0.18.4";
+  };
+  po_to_json = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  premailer = {
+    dependencies = ["addressable" "css_parser" "htmlentities"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf";
+      type = "gem";
+    };
+    version = "1.10.4";
+  };
+  premailer-rails = {
+    dependencies = ["actionmailer" "premailer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim";
+      type = "gem";
+    };
+    version = "1.9.7";
+  };
+  proc_to_ast = {
+    dependencies = ["coderay" "parser" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  procto = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  prometheus-client-mmap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10";
+      type = "gem";
+    };
+    version = "0.9.4";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
+      type = "gem";
+    };
+    version = "0.11.3";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f9kj1qp14qb8crg2rdzf22pr6ngxvy4n6ipymla8q1yjr842625";
+      type = "gem";
+    };
+    version = "3.5.1";
+  };
+  pry-rails = {
+    dependencies = ["pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  puma = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  puma_worker_killer = {
+    dependencies = ["get_process_mem" "puma"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  pyu-ruby-sasl = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
+      type = "gem";
+    };
+    version = "0.0.3.3";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm";
+      type = "gem";
+    };
+    version = "2.0.6";
+  };
+  rack-accept = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rack-attack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  rack-cors = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  rack-oauth2 = {
+    dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ylx74ravz7nvnyygq0nk3v86qdzrmqxpwpayhppyy50l72rcajq";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  rack-proxy = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rails = {
+    dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0blacnfcn2944cml69wji2ywp9c13qjiciavnfsa9vpimk8ixq9w";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  rails-controller-testing = {
+    dependencies = ["actionpack" "actionview" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  rails-deprecated_sanitizer = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  rails-i18n = {
+    dependencies = ["i18n" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rqij2ggqz5iq36lbibhnd7pl4qxrvv9kgw9s0c6594vzbbxmhs0";
+      type = "gem";
+    };
+    version = "5.1.1";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cfh2ijfalxj8hhf0rfw8bqhazsq6km7barsxczsvyl2a9islanr";
+      type = "gem";
+    };
+    version = "5.0.7.1";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  raindrops = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+      type = "gem";
+    };
+    version = "12.3.2";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  rblineprof = {
+    dependencies = ["debugger-ruby_core_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  rbtrace = {
+    dependencies = ["ffi" "msgpack" "trollop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  re2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  recaptcha = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  recursive-open-struct = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  redcarpet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  RedCloth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  redis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+      type = "gem";
+    };
+    version = "3.3.5";
+  };
+  redis-actionpack = {
+    dependencies = ["actionpack" "redis-rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-activesupport = {
+    dependencies = ["activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  redis-rack = {
+    dependencies = ["rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  redis-rails = {
+    dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-store = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  regexp_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  representable = {
+    dependencies = ["declarative" "declarative-option" "uber"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+      type = "gem";
+    };
+    version = "3.0.4";
+  };
+  request_store = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  responders = {
+    dependencies = ["actionpack" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  rest-client = {
+    dependencies = ["http-cookie" "mime-types" "netrc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  retriable = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  rinku = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  rotp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  rqrcode-rails3 = {
+    dependencies = ["rqrcode"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-parameterized = {
+    dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159yw3mb4dab5kr18a97miyyi7dqmyrfjp3aw6r6j9i4xkc4xk3a";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  rspec-rails = {
+    dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  rspec-retry = {
+    dependencies = ["rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rspec-set = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec_junit_formatter = {
+    dependencies = ["rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  rspec_profiling = {
+    dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
+      type = "gem";
+    };
+    version = "0.54.0";
+  };
+  rubocop-gitlab-security = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla";
+      type = "gem";
+    };
+    version = "1.22.2";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  ruby-fogbugz = {
+    dependencies = ["crack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  ruby-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c";
+      type = "gem";
+    };
+    version = "0.17.0";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  ruby-saml = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  ruby_parser = {
+    dependencies = ["sexp_processor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mysmdyxhvyn6dhshfxyw762f9asr3kxw45idvw1bh6np31kk4j1";
+      type = "gem";
+    };
+    version = "3.11.0";
+  };
+  rubyntlm = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  rubypants = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  rubyzip = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  rufus-scheduler = {
+    dependencies = ["et-orbi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+      type = "gem";
+    };
+    version = "0.27.5";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+      type = "gem";
+    };
+    version = "4.6.6";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
+      type = "gem";
+    };
+    version = "3.5.5";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  sass-rails = {
+    dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb";
+      type = "gem";
+    };
+    version = "5.0.6";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  scss_lint = {
+    dependencies = ["rake" "sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g";
+      type = "gem";
+    };
+    version = "0.56.0";
+  };
+  seed-fu = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
+      type = "gem";
+    };
+    version = "2.3.7";
+  };
+  select2-rails = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj";
+      type = "gem";
+    };
+    version = "3.5.9.3";
+  };
+  selenium-webdriver = {
+    dependencies = ["childprocess" "rubyzip"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  sentry-raven = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l0bci35amy7pqv81djyjcx023q4qylmq8a2zbx14zh6ifzib4f4";
+      type = "gem";
+    };
+    version = "2.7.4";
+  };
+  settingslogic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
+      type = "gem";
+    };
+    version = "2.0.9";
+  };
+  sexp_processor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vnmphfrd86694x5k7rxddbhbvv5rqbglsc34kfryy4jqhbzz42c";
+      type = "gem";
+    };
+    version = "4.11.0";
+  };
+  sham_rack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i";
+      type = "gem";
+    };
+    version = "1.3.6";
+  };
+  shoulda-matchers = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  sidekiq = {
+    dependencies = ["connection_pool" "rack-protection" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zyf9y3rvzizbwh68i2g1lzd40lalrdc4iyjmaa74gnfwsf92i26";
+      type = "gem";
+    };
+    version = "5.2.3";
+  };
+  sidekiq-cron = {
+    dependencies = ["rufus-scheduler" "sidekiq"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  signet = {
+    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  simple_po_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "json" "simplecov-html"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
+      type = "gem";
+    };
+    version = "0.14.1";
+  };
+  simplecov-html = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  slack-notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  spring = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  spring-commands-rspec = {
+    dependencies = ["spring"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  sqlite3 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
+      type = "gem";
+    };
+    version = "1.3.13";
+  };
+  sshkey = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  stackprof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski";
+      type = "gem";
+    };
+    version = "0.2.10";
+  };
+  state_machines = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  state_machines-activemodel = {
+    dependencies = ["activemodel" "state_machines"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  state_machines-activerecord = {
+    dependencies = ["activerecord" "state_machines-activemodel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  sys-filesystem = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
+      type = "gem";
+    };
+    version = "1.1.6";
+  };
+  sysexits = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  temple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  test-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  text = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  thin = {
+    dependencies = ["daemons" "eventmachine" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  thor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
+      type = "gem";
+    };
+    version = "0.19.4";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+      type = "gem";
+    };
+    version = "2.0.8";
+  };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  timfel-krb5-auth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  toml = {
+    dependencies = ["parslet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  toml-rb = {
+    dependencies = ["citrus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  trollop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  truncato = {
+    dependencies = ["htmlentities" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b";
+      type = "gem";
+    };
+    version = "0.7.10";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  u2f = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  uber = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  uglifier = {
+    dependencies = ["execjs" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+      type = "gem";
+    };
+    version = "0.0.7.5";
+  };
+  unicode-display_width = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  unicorn = {
+    dependencies = ["kgio" "raindrops"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
+  unicorn-worker-killer = {
+    dependencies = ["get_process_mem" "unicorn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  uniform_notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w662glqi7hwmfvx0smxckxgc7kw5bsqhqz0pyvalbyv1gc0gs2x";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  validates_hostname = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  version_sorter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  virtus = {
+    dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  vmstat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  warden = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  webpack-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr";
+      type = "gem";
+    };
+    version = "0.9.11";
+  };
+  websocket-driver = {
+    dependencies = ["websocket-extensions"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1943442yllhldh9dbp374x2q39cxa49xrm28nb78b7mfbv3y195l";
+      type = "gem";
+    };
+    version = "0.6.5";
+  };
+  websocket-extensions = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  wikicloth = {
+    dependencies = ["builder" "expression_parser" "rinku"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  with_env = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xml-simple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  xpath = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
new file mode 100755
index 000000000000..26dc3d39eb1b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -0,0 +1,235 @@
+#!/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
+
+import click
+import click_log
+import os
+import re
+import logging
+import subprocess
+import json
+import pathlib
+from typing import Iterable
+
+import requests
+from xml.etree import ElementTree
+
+logger = logging.getLogger(__name__)
+
+
+class GitLabRepo:
+    def __init__(self, owner: str, repo: str):
+        self.owner = owner
+        self.repo = repo
+
+    @property
+    def url(self):
+        return f"https://gitlab.com/{self.owner}/{self.repo}"
+
+    @property
+    def tags(self) -> Iterable[str]:
+        r = requests.get(self.url + "/tags?format=atom", stream=True)
+
+        tree = ElementTree.fromstring(r.content)
+        return sorted((e.text for e in tree.findall(
+            '{http://www.w3.org/2005/Atom}entry/{http://www.w3.org/2005/Atom}title')), reverse=True)
+
+    def get_git_hash(self, rev: str):
+        out = subprocess.check_output(['nix-prefetch-git', self.url, rev])
+        j = json.loads(out)
+        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
+    def rev2version(tag: str) -> str:
+        """
+        normalize a tag to a version number.
+        This obviously isn't very smart if we don't pass something that looks like a tag
+        :param tag: the tag to normalize
+        :return: a normalized version number
+        """
+        # strip v prefix
+        version = re.sub(r"^v", '', tag)
+        # strip -ee suffix
+        return re.sub(r"-ee$", '', version)
+
+    def get_file(self, filepath, rev):
+        """
+        returns file contents at a given rev
+        :param filepath: the path to the file, relative to the repo root
+        :param rev: the rev to fetch at
+        :return:
+        """
+        return requests.get(self.url + f"/raw/{rev}/{filepath}").text
+
+    def get_data(self, rev, flavour):
+        version = self.rev2version(rev)
+
+        passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
+                                                               'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
+        return dict(version=self.rev2version(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,
+                    repo=self.repo,
+                    rev=rev,
+                    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():
+    data_file_path = pathlib.Path(__file__).parent / 'data.json'
+    with open(data_file_path, 'r') as f:
+        return json.load(f)
+
+
+def _call_update_source_version(pkg, version):
+    """calls update-source-version from nixpkgs root dir"""
+    nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+    return subprocess.check_output(['update-source-version', pkg, version], cwd=nixpkgs_path)
+
+
+@click_log.simple_verbosity_option(logger)
+@click.group()
+def cli():
+    pass
+
+
+@cli.command('update-data')
+@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, flavour: str):
+    """Update data.nix for a selected flavour"""
+    r = _flavour2gitlabrepo(flavour)
+
+    if rev == 'latest':
+        # filter out pre and re releases
+        rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), r.tags))
+    logger.debug(f"Using rev {rev}")
+
+    version = r.rev2version(rev)
+    logger.debug(f"Using version {version}")
+
+    data_file_path = pathlib.Path(__file__).parent / 'data.json'
+
+    _update_data_json(filename=data_file_path.as_posix(),
+                      repo=r,
+                      rev=rev,
+                      flavour=flavour)
+
+
+@cli.command('update-rubyenv')
+@click.argument('flavour')
+def update_rubyenv(flavour):
+    """Update rubyEnv-${flavour}"""
+    if flavour not in ['ce', 'ee']:
+        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
+    data = _get_data_json()
+    rev = data[flavour]['rev']
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(r.get_file(fn, rev))
+
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+
+
+@cli.command('update-gitaly')
+def update_gitaly():
+    """Update gitaly"""
+    data = _get_data_json()
+    gitaly_server_version = data['ce']['passthru']['GITALY_SERVER_VERSION']
+    r = GitLabRepo('gitlab-org', 'gitaly')
+    rubyenv_dir = pathlib.Path(__file__).parent / 'gitaly'
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(r.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
+
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+    # currently broken, as `gitaly.meta.position` returns
+    # pkgs/development/go-modules/generic/default.nix
+    # 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')
+def update_gitlab_shell():
+    """Update gitlab-shell"""
+    data = _get_data_json()
+    gitlab_shell_version = data['ce']['passthru']['GITLAB_SHELL_VERSION']
+    _call_update_source_version('gitlab-shell', gitlab_shell_version)
+
+
+@cli.command('update-gitlab-workhorse')
+def update_gitlab_workhorse():
+    """Update gitlab-shell"""
+    data = _get_data_json()
+    gitlab_workhorse_version = data['ce']['passthru']['GITLAB_WORKHORSE_VERSION']
+    _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
+
+
+@cli.command('update-all')
+@click.pass_context
+def update_all(ctx):
+    """Update gitlab ce and ee data.nix and rubyenvs to the latest stable release"""
+    for flavour in ['ce', 'ee']:
+        ctx.invoke(update_data, rev='latest', flavour=flavour)
+        ctx.invoke(update_rubyenv, flavour=flavour)
+    ctx.invoke(update_gitaly)
+    ctx.invoke(update_gitlab_shell)
+    ctx.invoke(update_gitlab_workhorse)
+
+
+if __name__ == '__main__':
+    cli()