diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 6d5ee6fc84e98..85435884b1993 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -28,6 +28,9 @@ with lib; (mkRenamedOptionModule [ "services" "subsonic" "host" ] [ "services" "subsonic" "listenAddress" ]) (mkRenamedOptionModule [ "jobs" ] [ "systemd" "services" ]) + (mkRenamedOptionModule [ "services" "gitlab" "stateDir" ] [ "services" "gitlab" "statePath" ]) + (mkRemovedOptionModule [ "services" "gitlab" "satelliteDir" ]) + # Old Grub-related options. (mkRenamedOptionModule [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ]) (mkRenamedOptionModule [ "boot" "extraKernelParams" ] [ "boot" "kernelParams" ]) diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index 949357ab20f4c..074f1a040b8bf 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -21,14 +21,15 @@ let username: ${cfg.databaseUsername} encoding: utf8 ''; + gitlabShellYml = '' - user: gitlab - gitlab_url: "http://${cfg.host}:${toString cfg.port}/" + user: ${cfg.user} + gitlab_url: "http://localhost:8080/" http_settings: self_signed_cert: false - repos_path: "${cfg.stateDir}/repositories" - secret_file: "${cfg.stateDir}/config/gitlab_shell_secret" - log_file: "${cfg.stateDir}/log/gitlab-shell.log" + repos_path: "${cfg.statePath}/repositories" + secret_file: "${cfg.statePath}/config/gitlab_shell_secret" + log_file: "${cfg.statePath}/log/gitlab-shell.log" redis: bin: ${pkgs.redis}/bin/redis-cli host: 127.0.0.1 @@ -37,33 +38,101 @@ let namespace: resque:gitlab ''; + gitlabConfig = { + production = flip recursiveUpdate cfg.extraConfig { + gitlab = { + host = cfg.host; + port = cfg.port; + https = cfg.https; + user = cfg.user; + email_enabled = true; + email_display_name = "GitLab"; + email_reply_to = "noreply@localhost"; + default_theme = 2; + default_projects_features = { + issues = true; + merge_requests = true; + wiki = false; + snippets = false; + builds = true; + }; + }; + artifacts = { + enabled = true; + }; + lfs = { + enabled = true; + }; + gravatar = { + enabled = true; + }; + cron_jobs = { + stuck_ci_builds_worker = { + cron = "0 0 * * *"; + }; + }; + gitlab_ci = { + builds_path = "${cfg.statePath}/builds"; + }; + ldap = { + enabled = false; + }; + omniauth = { + enabled = false; + }; + shared = { + path = "${cfg.statePath}/shared"; + }; + backup = { + path = "${cfg.backupPath}"; + }; + gitlab_shell = { + path = "${pkgs.gitlab-shell}"; + repos_path = "${cfg.statePath}/repositories"; + hooks_path = "${cfg.statePath}/shell/hooks"; + secret_file = "${cfg.statePath}/config/gitlab_shell_secret"; + upload_pack = true; + receive_pack = true; + }; + git = { + bin_path = "git"; + max_size = 20971520; # 20MB + timeout = 10; + }; + extra = {}; + }; + }; + + gitlabEnv = { + HOME = "${cfg.statePath}/home"; + GEM_HOME = gemHome; + BUNDLE_GEMFILE = "${pkgs.gitlab}/share/gitlab/Gemfile"; + UNICORN_PATH = "${cfg.statePath}/"; + GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/"; + GITLAB_STATE_PATH = "${cfg.statePath}"; + GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads"; + GITLAB_LOG_PATH = "${cfg.statePath}/log"; + GITLAB_SHELL_PATH = "${pkgs.gitlab-shell}"; + GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/shell/config.yml"; + GITLAB_SHELL_SECRET_PATH = "${cfg.statePath}/config/gitlab_shell_secret"; + GITLAB_SHELL_HOOKS_PATH = "${cfg.statePath}/shell/hooks"; + RAILS_ENV = "production"; + }; + unicornConfig = builtins.readFile ./defaultUnicornConfig.rb; gitlab-runner = pkgs.stdenv.mkDerivation rec { name = "gitlab-runner"; - buildInputs = [ pkgs.gitlab pkgs.bundler pkgs.makeWrapper ]; + buildInputs = with pkgs; [ gitlab bundler makeWrapper ]; phases = "installPhase fixupPhase"; buildPhase = ""; installPhase = '' mkdir -p $out/bin - makeWrapper ${bundler}/bin/bundle $out/bin/gitlab-runner\ - --set RAKEOPT '"-f ${pkgs.gitlab}/share/gitlab/Rakefile"'\ - --set GEM_HOME '${gemHome}'\ - --set UNICORN_PATH "${cfg.stateDir}/"\ - --set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\ - --set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\ - --set GITLAB_SATELLITES_PATH "${cfg.stateDir}/satellites"\ - --set GITLAB_SHELL_PATH "${pkgs.gitlab-shell}"\ - --set GITLAB_REPOSITORIES_PATH "${cfg.stateDir}/repositories"\ - --set GITLAB_SHELL_HOOKS_PATH "${cfg.stateDir}/shell/hooks"\ - --set BUNDLE_GEMFILE "${pkgs.gitlab}/share/gitlab/Gemfile"\ - --set GITLAB_EMAIL_FROM "${cfg.emailFrom}"\ - --set GITLAB_SHELL_CONFIG_PATH "${cfg.stateDir}/shell/config.yml"\ - --set GITLAB_SHELL_SECRET_PATH "${cfg.stateDir}/config/gitlab_shell_secret"\ - --set GITLAB_HOST "${cfg.host}"\ - --set GITLAB_PORT "${toString cfg.port}"\ - --set GITLAB_BACKUP_PATH "${cfg.backupPath}"\ - --set RAILS_ENV "production" + makeWrapper ${bundler}/bin/bundle $out/bin/gitlab-runner \ + ${concatStrings (mapAttrsToList (name: value: "--set ${name} '\"${value}\"' ") gitlabEnv)} \ + --set GITLAB_CONFIG_PATH '"${cfg.statePath}/config"' \ + --set PATH '"${pkgs.nodejs}/bin:${pkgs.gzip}/bin:${config.services.postgresql.package}/bin:$PATH"' \ + --set RAKEOPT '"-f ${pkgs.gitlab}/share/gitlab/Rakefile"' ''; }; @@ -79,13 +148,7 @@ in { ''; }; - satelliteDir = mkOption { - type = types.str; - default = "/var/gitlab/git-satellites"; - description = "Gitlab directory to store checked out git trees requires for operation."; - }; - - stateDir = mkOption { + statePath = mkOption { type = types.str; default = "/var/gitlab/state"; description = "Gitlab state directory, logs are stored here."; @@ -93,7 +156,7 @@ in { backupPath = mkOption { type = types.str; - default = cfg.stateDir + "/backup"; + default = cfg.statePath + "/backup"; description = "Gitlab path for backups."; }; @@ -136,7 +199,60 @@ in { port = mkOption { type = types.int; default = 8080; - description = "Gitlab server listening port."; + description = '' + Gitlab server port for copy-paste URLs, e.g. 80 or 443 if you're + service over https. + ''; + }; + + https = mkOption { + type = types.bool; + default = false; + description = "Whether gitlab prints URLs with https as scheme."; + }; + + user = mkOption { + type = types.str; + default = "gitlab"; + description = "User to run gitlab and all related services."; + }; + + group = mkOption { + type = types.str; + default = "gitlab"; + description = "Group to run gitlab and all related services."; + }; + + initialRootEmail = mkOption { + type = types.str; + default = "admin@local.host"; + description = '' + Initial email address of the root account if this is a new install. + ''; + }; + + initialRootPassword = mkOption { + type = types.str; + default = "UseNixOS!"; + description = '' + Initial password of the root account if this is a new install. + ''; + }; + + extraConfig = mkOption { + type = types.attrs; + default = ""; + example = { + gitlab = { + default_projects_features = { + builds = false; + }; + }; + }; + description = '' + Extra options to be merged into config/gitlab.yml as nix + attribute set. + ''; }; }; }; @@ -159,39 +275,24 @@ in { services.postfix.enable = mkDefault true; users.extraUsers = [ - { name = "gitlab"; - group = "gitlab"; - home = "${cfg.stateDir}/home"; + { name = cfg.user; + group = cfg.group; + home = "${cfg.statePath}/home"; shell = "${pkgs.bash}/bin/bash"; uid = config.ids.uids.gitlab; - } ]; + } + ]; users.extraGroups = [ - { name = "gitlab"; + { name = cfg.group; gid = config.ids.gids.gitlab; - } ]; + } + ]; systemd.services.gitlab-sidekiq = { after = [ "network.target" "redis.service" ]; wantedBy = [ "multi-user.target" ]; - environment.HOME = "${cfg.stateDir}/home"; - environment.GEM_HOME = gemHome; - environment.UNICORN_PATH = "${cfg.stateDir}/"; - environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/"; - environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log"; - environment.GITLAB_SATELLITES_PATH = "${cfg.stateDir}/satellites"; - environment.GITLAB_SHELL_PATH = "${pkgs.gitlab-shell}"; - environment.GITLAB_REPOSITORIES_PATH = "${cfg.stateDir}/repositories"; - environment.GITLAB_SHELL_HOOKS_PATH = "${cfg.stateDir}/shell/hooks"; - environment.BUNDLE_GEMFILE = "${pkgs.gitlab}/share/gitlab/Gemfile"; - environment.GITLAB_EMAIL_FROM = "${cfg.emailFrom}"; - environment.GITLAB_SHELL_CONFIG_PATH = "${cfg.stateDir}/shell/config.yml"; - environment.GITLAB_SHELL_SECRET_PATH = "${cfg.stateDir}/config/gitlab_shell_secret"; - environment.GITLAB_HOST = "${cfg.host}"; - environment.GITLAB_PORT = "${toString cfg.port}"; - environment.GITLAB_DATABASE_HOST = "${cfg.databaseHost}"; - environment.GITLAB_DATABASE_PASSWORD = "${cfg.databasePassword}"; - environment.RAILS_ENV = "production"; + environment = gitlabEnv; path = with pkgs; [ config.services.postgresql.package gitAndTools.git @@ -201,116 +302,132 @@ in { ]; serviceConfig = { Type = "simple"; - User = "gitlab"; - Group = "gitlab"; + User = cfg.user; + Group = cfg.group; TimeoutSec = "300"; WorkingDirectory = "${pkgs.gitlab}/share/gitlab"; - ExecStart="${bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.stateDir}/tmp/sidekiq.pid\""; + ExecStart="${bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.statePath}/tmp/sidekiq.pid\""; }; }; - systemd.services.gitlab-git-http-server = { + systemd.services.gitlab-workhorse = { after = [ "network.target" "gitlab.service" ]; wantedBy = [ "multi-user.target" ]; - environment.HOME = "${cfg.stateDir}/home"; + environment.HOME = gitlabEnv.HOME; + environment.GITLAB_SHELL_CONFIG_PATH = gitlabEnv.GITLAB_SHELL_CONFIG_PATH; path = with pkgs; [ gitAndTools.git openssh ]; + preStart = '' + mkdir -p /run/gitlab + chown ${cfg.user}:${cfg.group} /run/gitlab + ''; serviceConfig = { + PermissionsStartOnly = true; # preStart must be run as root Type = "simple"; - User = "gitlab"; - Group = "gitlab"; + User = cfg.user; + Group = cfg.group; TimeoutSec = "300"; - ExecStart = "${pkgs.gitlab-git-http-server}/bin/gitlab-git-http-server -listenUmask 0 -listenNetwork unix -listenAddr ${cfg.stateDir}/tmp/sockets/gitlab-git-http-server.socket -authBackend http://localhost:8080 ${cfg.stateDir}/repositories"; + ExecStart = + "${pkgs.gitlab-workhorse}/bin/gitlab-workhorse " + + "-listenUmask 0 " + + "-listenNetwork unix " + + "-listenAddr /run/gitlab/gitlab-workhorse.socket " + + "-authSocket ${cfg.statePath}/tmp/sockets/gitlab.socket " + + "-documentRoot ${pkgs.gitlab}/share/gitlab/public"; }; }; systemd.services.gitlab = { after = [ "network.target" "postgresql.service" "redis.service" ]; wantedBy = [ "multi-user.target" ]; - environment.HOME = "${cfg.stateDir}/home"; - environment.GEM_HOME = gemHome; - environment.UNICORN_PATH = "${cfg.stateDir}/"; - environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/"; - environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log"; - environment.GITLAB_SATELLITES_PATH = "${cfg.stateDir}/satellites"; - environment.GITLAB_SHELL_PATH = "${pkgs.gitlab-shell}"; - environment.GITLAB_SHELL_CONFIG_PATH = "${cfg.stateDir}/shell/config.yml"; - environment.GITLAB_SHELL_SECRET_PATH = "${cfg.stateDir}/config/gitlab_shell_secret"; - environment.GITLAB_REPOSITORIES_PATH = "${cfg.stateDir}/repositories"; - environment.GITLAB_SHELL_HOOKS_PATH = "${cfg.stateDir}/shell/hooks"; - environment.BUNDLE_GEMFILE = "${pkgs.gitlab}/share/gitlab/Gemfile"; - environment.GITLAB_EMAIL_FROM = "${cfg.emailFrom}"; - environment.GITLAB_HOST = "${cfg.host}"; - environment.GITLAB_PORT = "${toString cfg.port}"; - environment.GITLAB_DATABASE_HOST = "${cfg.databaseHost}"; - environment.GITLAB_DATABASE_PASSWORD = "${cfg.databasePassword}"; - environment.RAILS_ENV = "production"; + environment = gitlabEnv; path = with pkgs; [ config.services.postgresql.package gitAndTools.git - ruby openssh nodejs + sudo ]; preStart = '' - # TODO: use env vars - mkdir -p ${cfg.stateDir} - mkdir -p ${cfg.stateDir}/log - mkdir -p ${cfg.stateDir}/satellites - mkdir -p ${cfg.stateDir}/repositories - mkdir -p ${cfg.stateDir}/shell/hooks - mkdir -p ${cfg.stateDir}/tmp/pids - mkdir -p ${cfg.stateDir}/tmp/sockets - rm -rf ${cfg.stateDir}/config - mkdir -p ${cfg.stateDir}/config - # TODO: What exactly is gitlab-shell doing with the secret? - tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c 20 > ${cfg.stateDir}/config/gitlab_shell_secret - mkdir -p ${cfg.stateDir}/home/.ssh - touch ${cfg.stateDir}/home/.ssh/authorized_keys + mkdir -p ${cfg.backupPath} + mkdir -p ${cfg.statePath}/builds + mkdir -p ${cfg.statePath}/repositories + mkdir -p ${gitlabConfig.production.shared.path}/artifacts + mkdir -p ${gitlabConfig.production.shared.path}/lfs-objects + mkdir -p ${cfg.statePath}/log + mkdir -p ${cfg.statePath}/shell + mkdir -p ${cfg.statePath}/tmp/pids + mkdir -p ${cfg.statePath}/tmp/sockets + + rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks + mkdir -p ${cfg.statePath}/config ${cfg.statePath}/shell - cp -rf ${pkgs.gitlab}/share/gitlab/config ${cfg.stateDir}/ - cp ${pkgs.gitlab}/share/gitlab/VERSION ${cfg.stateDir}/VERSION - - ln -fs ${pkgs.writeText "database.yml" databaseYml} ${cfg.stateDir}/config/database.yml - ln -fs ${pkgs.writeText "unicorn.rb" unicornConfig} ${cfg.stateDir}/config/unicorn.rb - - chown -R gitlab:gitlab ${cfg.stateDir}/ - chmod -R 755 ${cfg.stateDir}/ + # TODO: What exactly is gitlab-shell doing with the secret? + tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c 20 > ${cfg.statePath}/config/gitlab_shell_secret + + # The uploads directory is hardcoded somewhere deep in rails. It is + # symlinked in the gitlab package to /run/gitlab/uploads to make it + # configurable + mkdir -p /run/gitlab + mkdir -p ${cfg.statePath}/uploads + ln -sf ${cfg.statePath}/uploads /run/gitlab/uploads + chown -R ${cfg.user}:${cfg.group} /run/gitlab + + # Prepare home directory + mkdir -p ${gitlabEnv.HOME}/.ssh + touch ${gitlabEnv.HOME}/.ssh/authorized_keys + chown -R ${cfg.user}:${cfg.group} ${gitlabEnv.HOME}/ + chmod -R u+rwX,go-rwx+X ${gitlabEnv.HOME}/ + + cp -rf ${pkgs.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config + ln -sf ${cfg.statePath}/config /run/gitlab/config + cp ${pkgs.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION + + # JSON is a subset of YAML + ln -fs ${pkgs.writeText "gitlab.yml" (builtins.toJSON gitlabConfig)} ${cfg.statePath}/config/gitlab.yml + ln -fs ${pkgs.writeText "database.yml" databaseYml} ${cfg.statePath}/config/database.yml + ln -fs ${pkgs.writeText "unicorn.rb" unicornConfig} ${cfg.statePath}/config/unicorn.rb + + chown -R ${cfg.user}:${cfg.group} ${cfg.statePath}/ + chmod -R ug+rwX,o-rwx+X ${cfg.statePath}/ + + # Install the shell required to push repositories + ln -fs ${pkgs.writeText "config.yml" gitlabShellYml} "$GITLAB_SHELL_CONFIG_PATH" + ln -fs ${pkgs.gitlab-shell}/hooks "$GITLAB_SHELL_HOOKS_PATH" + ${pkgs.gitlab-shell}/bin/install if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then - if ! test -e "${cfg.stateDir}/db-created"; then - psql postgres -c "CREATE ROLE gitlab WITH LOGIN NOCREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.databasePassword}'" + if ! test -e "${cfg.statePath}/db-created"; then + psql postgres -c "CREATE ROLE gitlab WITH LOGIN CREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.databasePassword}'" ${config.services.postgresql.package}/bin/createdb --owner gitlab gitlab || true - touch "${cfg.stateDir}/db-created" + touch "${cfg.statePath}/db-created" - # force=yes disables the manual-interaction yes/no prompt - # which breaks without an stdin. - force=yes ${bundler}/bin/bundle exec rake -f ${pkgs.gitlab}/share/gitlab/Rakefile gitlab:setup RAILS_ENV=production + # The gitlab:setup task is horribly broken somehow, these two tasks will do the same for setting up the initial database + ${gitlab-runner}/bin/gitlab-runner exec rake db:migrate RAILS_ENV=production + ${gitlab-runner}/bin/gitlab-runner exec rake db:seed_fu RAILS_ENV=production \ + GITLAB_ROOT_PASSWORD="${cfg.initialRootPassword}" GITLAB_ROOT_EMAIL="${cfg.initialRootEmail}"; fi fi - ${bundler}/bin/bundle exec rake -f ${pkgs.gitlab}/share/gitlab/Rakefile db:migrate RAILS_ENV=production - # Install the shell required to push repositories - ln -fs ${pkgs.writeText "config.yml" gitlabShellYml} ${cfg.stateDir}/shell/config.yml - export GITLAB_SHELL_CONFIG_PATH=""${cfg.stateDir}/shell/config.yml - ${pkgs.gitlab-shell}/bin/install + # Always do the db migrations just to be sure the database is up-to-date + ${gitlab-runner}/bin/gitlab-runner exec rake db:migrate RAILS_ENV=production - # Change permissions in the last step because some of the - # intermediary scripts like to create directories as root. - chown -R gitlab:gitlab ${cfg.stateDir}/ - chmod -R 755 ${cfg.stateDir}/ + # Change permissions in the last step because some of the + # intermediary scripts like to create directories as root. + chown -R ${cfg.user}:${cfg.group} ${cfg.statePath} + chmod -R u+rwX,go-rwx+X ${cfg.statePath} ''; serviceConfig = { PermissionsStartOnly = true; # preStart must be run as root Type = "simple"; - User = "gitlab"; - Group = "gitlab"; + User = cfg.user; + Group = cfg.group; TimeoutSec = "300"; WorkingDirectory = "${pkgs.gitlab}/share/gitlab"; - ExecStart="${bundler}/bin/bundle exec \"unicorn -c ${cfg.stateDir}/config/unicorn.rb -E production\""; + ExecStart="${bundler}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\""; }; }; diff --git a/pkgs/applications/version-management/gitlab-git-http-server/default.nix b/pkgs/applications/version-management/gitlab-git-http-server/default.nix deleted file mode 100644 index 98b14d2ce86a7..0000000000000 --- a/pkgs/applications/version-management/gitlab-git-http-server/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, fetchgit, git, go }: - -stdenv.mkDerivation rec { - version = "0.2.14"; - name = "gitlab-git-http-server-${version}"; - - srcs = fetchgit { - url = "https://gitlab.com/gitlab-org/gitlab-git-http-server.git"; - rev = "7c63f08f7051348e56b903fc0bbefcfed398fc1c"; - sha256 = "557d63a90c61371598b971a06bc056993610b58c2ef5762d9ef145ec2fdada78"; - }; - - buildInputs = [ git go ]; - - buildPhase = '' - make PREFIX=$out - ''; - - installPhase = '' - mkdir -p $out/bin - make install PREFIX=$out - ''; -} diff --git a/pkgs/applications/version-management/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab-shell/default.nix index 5ee59c1e2550e..c2e746630da54 100644 --- a/pkgs/applications/version-management/gitlab-shell/default.nix +++ b/pkgs/applications/version-management/gitlab-shell/default.nix @@ -1,19 +1,22 @@ -{ stdenv, ruby, bundler, fetchgit }: +{ stdenv, ruby, bundler, fetchFromGitLab }: stdenv.mkDerivation rec { - version = "2.1.0"; + version = "2.6.10"; name = "gitlab-shell-${version}"; - srcs = fetchgit { - url = "https://gitlab.com/gitlab-org/gitlab-shell.git"; - rev = "ebbb9d80811c23d49a7d1b75d7a7d2b8ffe7437b"; - sha256 = "fe69ab85d75a3871b4afa11ebc17f43008d135bbdbd6c581f6bebee2a4a3c75d"; + srcs = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-shell"; + rev = "v${version}"; + sha256 = "1f1ma49xpkan2iksnw9amzjdw6i0bxnzdbsk0329m7if4987vcqd"; }; buildInputs = [ ruby bundler ]; + patches = [ ./remove-hardcoded-locations.patch ]; + installPhase = '' mkdir -p $out/ cp -R . $out/ diff --git a/pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch new file mode 100644 index 0000000000000..e1c924cdeefd3 --- /dev/null +++ b/pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch @@ -0,0 +1,13 @@ +diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb +index c1d175a..7f7fd2f 100644 +--- a/lib/gitlab_projects.rb ++++ b/lib/gitlab_projects.rb +@@ -5,7 +5,7 @@ require_relative 'gitlab_config' + require_relative 'gitlab_logger' + + class GitlabProjects +- GLOBAL_HOOKS_DIRECTORY = File.join(ROOT_PATH, 'hooks') ++ GLOBAL_HOOKS_DIRECTORY = ENV['GITLAB_SHELL_HOOKS_PATH'] || File.join(ROOT_PATH, 'hooks') + + # Project name is a directory name for repository with .git at the end + # It may be namespaced or not. Like repo.git or gitlab/repo.git diff --git a/pkgs/applications/version-management/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab-workhorse/default.nix new file mode 100644 index 0000000000000..06c05d9f3b3bd --- /dev/null +++ b/pkgs/applications/version-management/gitlab-workhorse/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitLab, git, go }: + +stdenv.mkDerivation rec { + version = "0.6.4"; + name = "gitlab-workhorse-${version}"; + + srcs = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-workhorse"; + rev = version; + sha256 = "09bs3kdmqi6avdak2nqma141y4fhfv050zwqqx7qh9a9hgkgwjxw"; + }; + + buildInputs = [ git go ]; + + patches = [ ./remove-hardcoded-paths.patch ]; + + buildPhase = '' + make PREFIX=$out + ''; + + installPhase = '' + mkdir -p $out/bin + make install PREFIX=$out + ''; +} diff --git a/pkgs/applications/version-management/gitlab-workhorse/remove-hardcoded-paths.patch b/pkgs/applications/version-management/gitlab-workhorse/remove-hardcoded-paths.patch new file mode 100644 index 0000000000000..37f3d2deef541 --- /dev/null +++ b/pkgs/applications/version-management/gitlab-workhorse/remove-hardcoded-paths.patch @@ -0,0 +1,12 @@ +diff --git a/internal/git/command.go b/internal/git/command.go +index 0e5496c..5778294 100644 +--- a/internal/git/command.go ++++ b/internal/git/command.go +@@ -16,6 +16,7 @@ func gitCommand(gl_id string, name string, args ...string) *exec.Cmd { + cmd.Env = []string{ + fmt.Sprintf("HOME=%s", os.Getenv("HOME")), + fmt.Sprintf("PATH=%s", os.Getenv("PATH")), ++ fmt.Sprintf("GITLAB_SHELL_CONFIG_PATH=%s", os.Getenv("GITLAB_SHELL_CONFIG_PATH")), + fmt.Sprintf("LD_LIBRARY_PATH=%s", os.Getenv("LD_LIBRARY_PATH")), + fmt.Sprintf("GL_ID=%s", gl_id), + } diff --git a/pkgs/applications/version-management/gitlab/Gemfile b/pkgs/applications/version-management/gitlab/Gemfile index 66261426c0147..ec40f2463945c 100644 --- a/pkgs/applications/version-management/gitlab/Gemfile +++ b/pkgs/applications/version-management/gitlab/Gemfile @@ -1,14 +1,10 @@ source "https://rubygems.org" -def darwin_only(require_as) - RUBY_PLATFORM.include?('darwin') && require_as -end - -def linux_only(require_as) - RUBY_PLATFORM.include?('linux') && require_as -end +gem 'rails', '4.2.5.1' +gem 'rails-deprecated_sanitizer', '~> 1.0.3' -gem 'rails', '4.1.12' +# Responders respond_to and respond_with +gem 'responders', '~> 2.0' # Specify a sprockets version due to security issue # See https://groups.google.com/forum/#!topic/rubyonrails-security/doAVp0YaTqY @@ -22,20 +18,27 @@ gem "mysql2", '~> 0.3.16', group: :mysql gem "pg", '~> 0.18.2', group: :postgres # Authentication libraries -gem "devise", '~> 3.5.2' -gem "devise-async", '~> 0.9.0' -gem 'omniauth', "~> 1.2.2" -gem 'omniauth-google-oauth2', '~> 0.2.5' -gem 'omniauth-twitter', '~> 1.0.1' -gem 'omniauth-github', '~> 1.1.1' -gem 'omniauth-shibboleth', '~> 1.1.1' -gem 'omniauth-kerberos', '~> 0.2.0', group: :kerberos -gem 'omniauth-gitlab', '~> 1.0.0' -gem 'omniauth-bitbucket', '~> 0.0.2' -gem 'omniauth-saml', '~> 1.4.0' -gem 'doorkeeper', '~> 2.1.3' -gem 'omniauth_crowd' -gem "rack-oauth2", "~> 1.0.5" +gem 'devise', '~> 3.5.4' +gem 'devise-async', '~> 0.9.0' +gem 'doorkeeper', '~> 2.2.0' +gem 'omniauth', '~> 1.3.1' +gem 'omniauth-azure-oauth2', '~> 0.0.6' +gem 'omniauth-bitbucket', '~> 0.0.2' +gem 'omniauth-cas3', '~> 1.1.2' +gem 'omniauth-facebook', '~> 3.0.0' +gem 'omniauth-github', '~> 1.1.1' +gem 'omniauth-gitlab', '~> 1.0.0' +gem 'omniauth-google-oauth2', '~> 0.2.0' +gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos +gem 'omniauth-saml', '~> 1.4.2' +gem 'omniauth-shibboleth', '~> 1.2.0' +gem 'omniauth-twitter', '~> 1.2.0' +gem 'omniauth_crowd', '~> 2.2.0' +gem 'rack-oauth2', '~> 1.2.1' + +# Spam and anti-bot protection +gem 'recaptcha', require: 'recaptcha/rails' +gem 'akismet', '~> 2.0' # Two-factor authentication gem 'devise-two-factor', '~> 2.0.0' @@ -47,7 +50,7 @@ gem "browser", '~> 1.0.0' # Extracting information from a git repository # Provide access to Gitlab::Git library -gem "gitlab_git", '~> 7.2.15' +gem "gitlab_git", '~> 8.2' # LDAP Auth # GitLab fork with several improvements to original library. For full list of changes @@ -55,32 +58,21 @@ gem "gitlab_git", '~> 7.2.15' gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: "omniauth-ldap" # Git Wiki -gem 'gollum-lib', '~> 4.0.2' +gem 'gollum-lib', '~> 4.1.0' # Language detection -# GitLab fork of linguist does not require pygments/python dependency. -# New version of original gem also dropped pygments support but it has strict -# dependency to unstable rugged version. We have internal issue for replacing -# fork with original gem when we meet on same rugged version - https://dev.gitlab.org/gitlab/gitlabhq/issues/2052. -gem "gitlab-linguist", "~> 3.0.1", require: "linguist" +gem "github-linguist", "~> 4.7.0", require: "linguist" # API -gem "grape", "~> 0.6.1" -gem "grape-entity", "~> 0.4.2" -gem 'rack-cors', '~> 0.2.9', require: 'rack/cors' - -# Format dates and times -# based on human-friendly examples -gem "stamp", '~> 0.5.0' - -# Enumeration fields -gem 'enumerize', '~> 0.7.0' +gem 'grape', '~> 0.13.0' +gem 'grape-entity', '~> 0.4.2' +gem 'rack-cors', '~> 0.4.0', require: 'rack/cors' # Pagination -gem "kaminari", "~> 0.15.1" +gem "kaminari", "~> 0.16.3" # HAML -gem "haml-rails", '~> 0.5.3' +gem "haml-rails", '~> 0.9.0' # Files attachments gem "carrierwave", '~> 0.9.0' @@ -89,7 +81,7 @@ gem "carrierwave", '~> 0.9.0' gem 'dropzonejs-rails', '~> 0.7.1' # for aws storage -gem "fog", "~> 1.25.0" +gem "fog", "~> 1.36.0" gem "unf", '~> 0.1.4' # Authorization @@ -102,13 +94,18 @@ gem "seed-fu", '~> 2.3.5' gem 'html-pipeline', '~> 1.11.0' gem 'task_list', '~> 1.0.2', require: 'task_list/railtie' gem 'github-markup', '~> 1.3.1' -gem 'redcarpet', '~> 3.3.2' +gem 'redcarpet', '~> 3.3.3' gem 'RedCloth', '~> 4.2.9' gem 'rdoc', '~>3.6' gem 'org-ruby', '~> 0.9.12' -gem 'creole', '~>0.3.6' +gem 'creole', '~> 0.5.0' gem 'wikicloth', '0.8.1' gem 'asciidoctor', '~> 1.5.2' +gem 'rouge', '~> 1.10.1' + +# See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s +# and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM +gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2' # Diffs gem 'diffy', '~> 3.0.3' @@ -120,7 +117,7 @@ group :unicorn do end # State machine -gem "state_machine", '~> 1.2.0' +gem "state_machines-activerecord", '~> 0.3.0' # Run events after state machine commits gem 'after_commit_queue' @@ -128,17 +125,16 @@ gem 'after_commit_queue' gem 'acts-as-taggable-on', '~> 3.4' # Background jobs -gem 'slim', '~> 2.0.2' gem 'sinatra', '~> 1.4.4', require: nil -gem 'sidekiq', '3.3.0' -gem 'sidetiq', '~> 0.6.3' +gem 'sidekiq', '~> 4.0' +gem 'sidekiq-cron', '~> 0.4.0' +gem 'redis-namespace' # HTTP requests gem "httparty", '~> 0.13.3' # Colored output to console -gem "colored", '~> 1.2' -gem "colorize", '~> 0.5.8' +gem "colorize", '~> 0.7.0' # GitLab settings gem 'settingslogic', '~> 2.0.9' @@ -151,7 +147,7 @@ gem 'version_sorter', '~> 2.0.0' gem "redis-rails", '~> 4.0.0' # Campfire integration -gem 'tinder', '~> 1.9.2' +gem 'tinder', '~> 1.10.0' # HipChat integration gem 'hipchat', '~> 1.5.0' @@ -163,28 +159,32 @@ gem "gitlab-flowdock-git-hook", "~> 1.0.1" gem "gemnasium-gitlab-service", "~> 0.2" # Slack integration -gem "slack-notifier", "~> 1.0.0" +gem "slack-notifier", "~> 1.2.0" # Asana integration -gem 'asana', '~> 0.0.6' +gem 'asana', '~> 0.4.0' # FogBugz integration gem 'ruby-fogbugz', '~> 0.2.1' # d3 -gem 'd3_rails', '~> 3.5.5' +gem 'd3_rails', '~> 3.5.0' #cal-heatmap -gem "cal-heatmap-rails", "~> 0.0.1" +gem 'cal-heatmap-rails', '~> 3.5.0' # underscore-rails -gem "underscore-rails", "~> 1.4.4" +gem "underscore-rails", "~> 1.8.0" # Sanitize user input gem "sanitize", '~> 2.0' +gem 'babosa', '~> 1.0.2' + +# Sanitizes SVG input +gem "loofah", "~> 2.0.3" # Protect against bruteforcing -gem "rack-attack", '~> 4.3.0' +gem "rack-attack", '~> 4.3.1' # Ace editor gem 'ace-rails-ap', '~> 2.0.1' @@ -193,38 +193,52 @@ gem 'ace-rails-ap', '~> 2.0.1' gem 'mousetrap-rails', '~> 1.4.6' # Detect and convert string character encoding -gem 'charlock_holmes', '~> 0.6.9.4' +gem 'charlock_holmes', '~> 0.7.3' -gem "sass-rails", '~> 4.0.5' +gem "sass-rails", '~> 5.0.0' gem "coffee-rails", '~> 4.1.0' -gem "uglifier", '~> 2.3.2' +gem "uglifier", '~> 2.7.2' gem 'turbolinks', '~> 2.5.0' -gem 'jquery-turbolinks', '~> 2.0.1' +gem 'jquery-turbolinks', '~> 2.1.0' gem 'addressable', '~> 2.3.8' -gem 'bootstrap-sass', '~> 3.0' +gem 'bootstrap-sass', '~> 3.3.0' gem 'font-awesome-rails', '~> 4.2' -gem 'gitlab_emoji', '~> 0.1' -gem 'gon', '~> 5.0.0' -gem 'jquery-atwho-rails', '~> 1.0.0' -gem 'jquery-rails', '~> 3.1.3' +gem 'gitlab_emoji', '~> 0.3.0' +gem 'gon', '~> 6.0.1' +gem 'jquery-atwho-rails', '~> 1.3.2' +gem 'jquery-rails', '~> 4.0.0' gem 'jquery-scrollto-rails', '~> 1.4.3' -gem 'jquery-ui-rails', '~> 4.2.1' -gem 'nprogress-rails', '~> 0.1.2.3' +gem 'jquery-ui-rails', '~> 5.0.0' +gem 'nprogress-rails', '~> 0.1.6.7' gem 'raphael-rails', '~> 2.1.2' gem 'request_store', '~> 1.2.0' gem 'select2-rails', '~> 3.5.9' gem 'virtus', '~> 1.0.1' +gem 'net-ssh', '~> 3.0.1' + +# Sentry integration +gem 'sentry-raven' + +# Metrics +group :metrics do + gem 'allocations', '~> 1.0', require: false, platform: :mri + gem 'method_source', '~> 0.8', require: false + gem 'influxdb', '~> 0.2', require: false + gem 'connection_pool', '~> 2.0', require: false +end group :development do gem "foreman" - gem 'brakeman', '3.0.1', require: false + gem 'brakeman', '~> 3.1.0', require: false gem "annotate", "~> 2.6.0" gem "letter_opener", '~> 1.1.2' gem 'quiet_assets', '~> 1.0.2' - gem 'rack-mini-profiler', '~> 0.9.0', require: false - gem 'rerun', '~> 0.10.0' + gem 'rerun', '~> 0.11.0' + gem 'bullet', require: false + gem 'rblineprof', platform: :mri, require: false + gem 'web-console', '~> 2.0' # Better errors handler gem 'better_errors', '~> 1.0.1' @@ -241,7 +255,7 @@ group :development, :test do gem 'byebug', platform: :mri gem 'pry-rails' - gem 'awesome_print', '~> 1.2.0' + gem 'awesome_print', '~> 1.2.0', require: false gem 'fuubar', '~> 2.0.0' gem 'database_cleaner', '~> 1.4.0' @@ -257,7 +271,7 @@ group :development, :test do gem 'capybara', '~> 2.4.0' gem 'capybara-screenshot', '~> 1.0.0' - gem 'poltergeist', '~> 1.6.0' + gem 'poltergeist', '~> 1.8.1' gem 'teaspoon', '~> 1.0.0' gem 'teaspoon-jasmine', '~> 2.2.0' @@ -267,16 +281,21 @@ group :development, :test do gem 'spring-commands-spinach', '~> 1.0.0' gem 'spring-commands-teaspoon', '~> 0.0.2' - gem 'rubocop', '~> 0.28.0', require: false + gem 'rubocop', '~> 0.35.0', require: false gem 'coveralls', '~> 0.8.2', require: false gem 'simplecov', '~> 0.10.0', require: false + gem 'flog', require: false + gem 'flay', require: false + gem 'bundler-audit', require: false + + gem 'benchmark-ips', require: false end group :test do gem 'shoulda-matchers', '~> 2.8.0', require: false gem 'email_spec', '~> 1.6.0' gem 'webmock', '~> 1.21.0' - gem 'test_after_commit', '~> 0.2.2' + gem 'test_after_commit', '~> 0.4.2' gem 'sham_rack' end @@ -284,12 +303,9 @@ group :production do gem "gitlab_meta", '7.0' end -gem "newrelic_rpm", '~> 3.9.4.245' -gem 'newrelic-grape' - -gem 'octokit', '~> 3.7.0' +gem 'octokit', '~> 3.8.0' -gem "mail_room", "~> 0.5.2" +gem "mail_room", "~> 0.6.1" gem 'email_reply_parser', '~> 0.5.8' @@ -298,19 +314,10 @@ gem 'activerecord-deprecated_finders', '~> 1.0.3' gem 'activerecord-session_store', '~> 0.1.0' gem "nested_form", '~> 0.3.2' -# Scheduled -gem 'whenever', '~> 0.8.4', require: false - # OAuth gem 'oauth2', '~> 1.0.0' # Soft deletion gem "paranoia", "~> 2.0" -group :development, :test do - gem 'guard-rspec', '~> 4.2.0' - - gem 'rb-fsevent', require: darwin_only('rb-fsevent') - gem 'growl', require: darwin_only('growl') - gem 'rb-inotify', require: linux_only('rb-inotify') -end +gem "activerecord-nulldb-adapter" diff --git a/pkgs/applications/version-management/gitlab/Gemfile.lock b/pkgs/applications/version-management/gitlab/Gemfile.lock index 56db3f619850c..ff16e6284fab7 100644 --- a/pkgs/applications/version-management/gitlab/Gemfile.lock +++ b/pkgs/applications/version-management/gitlab/Gemfile.lock @@ -1,63 +1,75 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (2.3.1) + CFPropertyList (2.3.2) RedCloth (4.2.9) ace-rails-ap (2.0.1) - actionmailer (4.1.12) - actionpack (= 4.1.12) - actionview (= 4.1.12) + actionmailer (4.2.5.1) + actionpack (= 4.2.5.1) + actionview (= 4.2.5.1) + activejob (= 4.2.5.1) mail (~> 2.5, >= 2.5.4) - actionpack (4.1.12) - actionview (= 4.1.12) - activesupport (= 4.1.12) - rack (~> 1.5.2) + rails-dom-testing (~> 1.0, >= 1.0.5) + actionpack (4.2.5.1) + actionview (= 4.2.5.1) + activesupport (= 4.2.5.1) + rack (~> 1.6) rack-test (~> 0.6.2) - actionview (4.1.12) - activesupport (= 4.1.12) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (4.2.5.1) + activesupport (= 4.2.5.1) builder (~> 3.1) erubis (~> 2.7.0) - activemodel (4.1.12) - activesupport (= 4.1.12) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + activejob (4.2.5.1) + activesupport (= 4.2.5.1) + globalid (>= 0.3.0) + activemodel (4.2.5.1) + activesupport (= 4.2.5.1) builder (~> 3.1) - activerecord (4.1.12) - activemodel (= 4.1.12) - activesupport (= 4.1.12) - arel (~> 5.0.0) + activerecord (4.2.5.1) + activemodel (= 4.2.5.1) + activesupport (= 4.2.5.1) + arel (~> 6.0) activerecord-deprecated_finders (1.0.4) - activerecord-session_store (0.1.1) + activerecord-nulldb-adapter (0.3.2) + activerecord (>= 2.0.0) + activerecord-session_store (0.1.2) actionpack (>= 4.0.0, < 5) activerecord (>= 4.0.0, < 5) railties (>= 4.0.0, < 5) - activeresource (4.0.0) - activemodel (~> 4.0) - activesupport (~> 4.0) - rails-observers (~> 0.1.1) - activesupport (4.1.12) - i18n (~> 0.6, >= 0.6.9) + activesupport (4.2.5.1) + i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) - thread_safe (~> 0.1) + thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) acts-as-taggable-on (3.5.0) activerecord (>= 3.2, < 5) addressable (2.3.8) - after_commit_queue (1.1.0) - rails (>= 3.0) + after_commit_queue (1.3.0) + activerecord (>= 3.0) + akismet (2.0.0) + allocations (1.0.4) annotate (2.6.10) activerecord (>= 3.2, <= 4.3) rake (~> 10.4) - arel (5.0.1.20140414130214) - asana (0.0.6) - activeresource (>= 3.2.3) - asciidoctor (1.5.2) + arel (6.0.3) + asana (0.4.0) + faraday (~> 0.9) + faraday_middleware (~> 0.9) + faraday_middleware-multi_json (~> 0.0) + oauth2 (~> 1.0) + asciidoctor (1.5.3) ast (2.1.0) astrolabe (1.3.1) parser (~> 2.2) attr_encrypted (1.3.4) encryptor (>= 1.3.0) attr_required (1.0.0) - autoprefixer-rails (5.2.1.2) + autoprefixer-rails (6.2.3) execjs json awesome_print (1.2.0) @@ -65,29 +77,39 @@ GEM descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) + babosa (1.0.2) bcrypt (3.1.10) + benchmark-ips (2.3.0) better_errors (1.0.1) coderay (>= 1.0.0) erubis (>= 2.6.6) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) - bootstrap-sass (3.3.5) - autoprefixer-rails (>= 5.0.0.1) - sass (>= 3.2.19) - brakeman (3.0.1) + bootstrap-sass (3.3.6) + autoprefixer-rails (>= 5.2.1) + sass (>= 3.3.4) + brakeman (3.1.4) erubis (~> 2.6) fastercsv (~> 1.5) haml (>= 3.0, < 5.0) - highline (~> 1.6.20) + highline (>= 1.6.20, < 2.0) multi_json (~> 1.2) - ruby2ruby (~> 2.1.1) - ruby_parser (~> 3.5.0) + ruby2ruby (>= 2.1.1, < 2.3.0) + ruby_parser (~> 3.7.0) + safe_yaml (>= 1.0) sass (~> 3.0) + slim (>= 1.3.6, < 4.0) terminal-table (~> 1.4) - browser (1.0.0) + browser (1.0.1) builder (3.2.2) - byebug (6.0.2) - cal-heatmap-rails (0.0.1) + bullet (4.14.10) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.9.0) + bundler-audit (0.4.0) + bundler (~> 1.2) + thor (~> 0.18) + byebug (8.2.1) + cal-heatmap-rails (3.5.1) capybara (2.4.4) mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -101,11 +123,9 @@ GEM activemodel (>= 3.2.0) activesupport (>= 3.2.0) json (>= 1.7) - celluloid (0.16.0) - timers (~> 4.0.0) - charlock_holmes (0.6.9.4) - chronic (0.10.2) - chunky_png (1.3.4) + cause (0.1) + charlock_holmes (0.7.3) + chunky_png (1.3.5) cliver (0.3.2) coderay (1.1.0) coercible (1.0.0) @@ -116,29 +136,31 @@ GEM coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.9.1.1) - colored (1.2) - colorize (0.5.8) + coffee-script-source (1.10.0) + colorize (0.7.7) + concurrent-ruby (1.0.0) connection_pool (2.2.0) - coveralls (0.8.2) + coveralls (0.8.9) json (~> 1.8) rest-client (>= 1.6.8, < 2) simplecov (~> 0.10.0) term-ansicolor (~> 1.3) thor (~> 0.19.1) - crack (0.4.2) + tins (~> 1.6.0) + crack (0.4.3) safe_yaml (~> 1.0.0) - creole (0.3.8) - d3_rails (3.5.6) + creole (0.5.0) + d3_rails (3.5.11) railties (>= 3.1.0) daemons (1.2.3) database_cleaner (1.4.1) debug_inspector (0.0.2) + debugger-ruby_core_source (1.3.8) default_value_for (3.0.1) activerecord (>= 3.2.0, < 5.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devise (3.5.2) + devise (3.5.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 3.2.6, < 5) @@ -147,7 +169,7 @@ GEM warden (~> 1.2.3) devise-async (0.9.0) devise (~> 3.2) - devise-two-factor (2.0.0) + devise-two-factor (2.0.1) activesupport attr_encrypted (~> 1.3.2) devise (~> 3.5.0) @@ -156,22 +178,20 @@ GEM diff-lcs (1.2.5) diffy (3.0.7) docile (1.1.5) - domain_name (0.5.24) + domain_name (0.5.25) unf (>= 0.0.5, < 1.0.0) - doorkeeper (2.1.4) + doorkeeper (2.2.2) railties (>= 3.2) - dropzonejs-rails (0.7.1) + dropzonejs-rails (0.7.2) rails (> 3.1) email_reply_parser (0.5.8) email_spec (1.6.0) launchy (~> 2.1) mail (~> 2.2) encryptor (1.3.0) - enumerize (0.7.0) - activesupport (>= 3.2) equalizer (0.0.11) erubis (2.7.0) - escape_utils (0.2.4) + escape_utils (1.1.0) eventmachine (1.0.8) excon (0.45.4) execjs (2.6.0) @@ -181,59 +201,116 @@ GEM factory_girl_rails (4.3.0) factory_girl (~> 4.3.0) railties (>= 3.0.0) - faraday (0.8.10) - multipart-post (~> 1.2.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) faraday_middleware (0.10.0) faraday (>= 0.7.4, < 0.10) + faraday_middleware-multi_json (0.0.6) + faraday_middleware + multi_json fastercsv (1.5.5) ffaker (2.0.0) ffi (1.9.10) fission (0.5.0) CFPropertyList (~> 2.2) - flowdock (0.7.0) + flay (2.6.1) + ruby_parser (~> 3.0) + sexp_processor (~> 4.0) + flog (4.3.2) + ruby_parser (~> 3.1, > 3.1.0) + sexp_processor (~> 4.4) + flowdock (0.7.1) httparty (~> 0.7) multi_json - fog (1.25.0) + fog (1.36.0) + fog-aliyun (>= 0.1.0) + fog-atmos + fog-aws (>= 0.6.0) fog-brightbox (~> 0.4) - fog-core (~> 1.25) + fog-core (~> 1.32) + fog-dynect (~> 0.0.2) + fog-ecloud (~> 0.1) + fog-google (<= 0.1.0) fog-json + fog-local + fog-powerdns (>= 0.1.1) fog-profitbricks fog-radosgw (>= 0.0.2) + fog-riakcs fog-sakuracloud (>= 0.0.4) + fog-serverlove fog-softlayer + fog-storm_on_demand fog-terremark fog-vmfusion fog-voxel + fog-xenserver fog-xml (~> 0.1.1) ipaddress (~> 0.5) nokogiri (~> 1.5, >= 1.5.11) - opennebula - fog-brightbox (0.9.0) + fog-aliyun (0.1.0) + fog-core (~> 1.27) + fog-json (~> 1.0) + ipaddress (~> 0.8) + xml-simple (~> 1.1) + fog-atmos (0.1.0) + fog-core + fog-xml + fog-aws (0.8.1) + fog-core (~> 1.27) + fog-json (~> 1.0) + fog-xml (~> 0.1) + ipaddress (~> 0.8) + fog-brightbox (0.10.1) fog-core (~> 1.22) fog-json inflecto (~> 0.0.2) - fog-core (1.32.1) + fog-core (1.35.0) builder excon (~> 0.45) formatador (~> 0.2) - mime-types - net-scp (~> 1.1) - net-ssh (>= 2.1.3) + fog-dynect (0.0.2) + fog-core + fog-json + fog-xml + fog-ecloud (0.3.0) + fog-core + fog-xml + fog-google (0.1.0) + fog-core + fog-json + fog-xml fog-json (1.0.2) fog-core (~> 1.0) multi_json (~> 1.10) + fog-local (0.2.1) + fog-core (~> 1.27) + fog-powerdns (0.1.1) + fog-core (~> 1.27) + fog-json (~> 1.0) + fog-xml (~> 0.1) fog-profitbricks (0.0.5) fog-core fog-xml nokogiri - fog-radosgw (0.0.4) + fog-radosgw (0.0.5) fog-core (>= 1.21.0) fog-json fog-xml (>= 0.0.1) - fog-sakuracloud (1.0.1) + fog-riakcs (0.1.0) + fog-core + fog-json + fog-xml + fog-sakuracloud (1.7.5) fog-core fog-json - fog-softlayer (0.4.7) + fog-serverlove (0.1.2) + fog-core + fog-json + fog-softlayer (1.0.3) + fog-core + fog-json + fog-storm_on_demand (0.1.1) fog-core fog-json fog-terremark (0.1.0) @@ -245,10 +322,13 @@ GEM fog-voxel (0.1.0) fog-core fog-xml + fog-xenserver (0.2.2) + fog-core + fog-xml fog-xml (0.1.2) fog-core nokogiri (~> 1.5, >= 1.5.11) - font-awesome-rails (4.4.0.0) + font-awesome-rails (4.5.0.0) railties (>= 3.2, < 5.0) foreman (0.78.0) thor (~> 0.19.1) @@ -258,10 +338,15 @@ GEM ruby-progressbar (~> 1.4) gemnasium-gitlab-service (0.2.6) rugged (~> 0.21) - gemojione (2.0.1) + gemojione (2.2.1) json get_process_mem (0.2.0) gherkin-ruby (0.3.2) + github-linguist (4.7.5) + charlock_holmes (~> 0.7.3) + escape_utils (~> 1.1.0) + mime-types (>= 1.19) + rugged (>= 0.23.0b) github-markup (1.3.3) gitlab-flowdock-git-hook (1.0.1) flowdock (~> 0.7) @@ -272,39 +357,39 @@ GEM diff-lcs (~> 1.1) mime-types (~> 1.15) posix-spawn (~> 0.3) - gitlab-linguist (3.0.1) - charlock_holmes (~> 0.6.6) - escape_utils (~> 0.2.4) - mime-types (~> 1.19) - gitlab_emoji (0.1.1) - gemojione (~> 2.0) - gitlab_git (7.2.15) + gitlab_emoji (0.3.1) + gemojione (~> 2.2, >= 2.2.1) + gitlab_git (8.2.0) activesupport (~> 4.0) - charlock_holmes (~> 0.6) - gitlab-linguist (~> 3.0) - rugged (~> 0.22.2) + charlock_holmes (~> 0.7.3) + github-linguist (~> 4.7.0) + rugged (~> 0.24.0b13) gitlab_meta (7.0) gitlab_omniauth-ldap (1.2.1) net-ldap (~> 0.9) omniauth (~> 1.0) pyu-ruby-sasl (~> 0.0.3.1) rubyntlm (~> 0.3) + globalid (0.3.6) + activesupport (>= 4.1.0) gollum-grit_adapter (1.0.0) gitlab-grit (~> 2.7, >= 2.7.1) - gollum-lib (4.0.3) + gollum-lib (4.1.0) github-markup (~> 1.3.3) gollum-grit_adapter (~> 1.0) nokogiri (~> 1.6.4) - rouge (~> 1.10.1) + rouge (~> 1.9) sanitize (~> 2.1.0) stringex (~> 2.5.1) - gon (5.0.4) - actionpack (>= 2.3.0) + gon (6.0.1) + actionpack (>= 3.0) json - grape (0.6.1) + multi_json + request_store (>= 1.0) + grape (0.13.0) activesupport builder - hashie (>= 1.2.0) + hashie (>= 2.1.0) multi_json (>= 1.3.2) multi_xml (>= 0.5.2) rack (>= 1.3.0) @@ -314,106 +399,91 @@ GEM grape-entity (0.4.8) activesupport multi_json (>= 1.3.2) - growl (1.0.3) - guard (2.13.0) - formatador (>= 0.2.4) - listen (>= 2.7, <= 4.0) - lumberjack (~> 1.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.9.12) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-rspec (4.2.10) - guard (~> 2.1) - rspec (>= 2.14, < 4.0) haml (4.0.7) tilt - haml-rails (0.5.3) + haml-rails (0.9.0) actionpack (>= 4.0.1) activesupport (>= 4.0.1) - haml (>= 3.1, < 5.0) + haml (>= 4.0.6, < 5.0) + html2haml (>= 1.0.1) railties (>= 4.0.1) - hashie (2.1.2) - highline (1.6.21) + hashie (3.4.3) + highline (1.7.8) hike (1.2.3) hipchat (1.5.2) httparty mimemagic - hitimes (1.2.3) html-pipeline (1.11.0) activesupport (>= 2) nokogiri (~> 1.4) + html2haml (2.0.0) + erubis (~> 2.7.0) + haml (~> 4.0.0) + nokogiri (~> 1.6.0) + ruby_parser (~> 3.5) http-cookie (1.0.2) domain_name (~> 0.5) http_parser.rb (0.5.3) - httparty (0.13.5) + httparty (0.13.7) json (~> 1.8) multi_xml (>= 0.5.2) - httpclient (2.6.0.1) + httpclient (2.7.0.1) i18n (0.7.0) - ice_cube (0.11.1) ice_nine (0.11.1) inflecto (0.0.2) - ipaddress (0.8.0) - jquery-atwho-rails (1.0.1) - jquery-rails (3.1.3) - railties (>= 3.0, < 5.0) + influxdb (0.2.3) + cause + json + ipaddress (0.8.2) + jquery-atwho-rails (1.3.2) + jquery-rails (4.0.5) + rails-dom-testing (~> 1.0) + railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-scrollto-rails (1.4.3) railties (> 3.1, < 5.0) - jquery-turbolinks (2.0.2) + jquery-turbolinks (2.1.0) railties (>= 3.1.0) turbolinks - jquery-ui-rails (4.2.1) + jquery-ui-rails (5.0.5) railties (>= 3.2.16) json (1.8.3) - jwt (1.5.1) - kaminari (0.15.1) + jwt (1.5.2) + kaminari (0.16.3) actionpack (>= 3.0.0) activesupport (>= 3.0.0) - kgio (2.9.3) + kgio (2.10.0) launchy (2.4.3) addressable (~> 2.3) letter_opener (1.1.2) launchy (~> 2.2) - listen (2.10.1) - celluloid (~> 0.16.0) + listen (3.0.5) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) - lumberjack (1.0.9) + loofah (2.0.3) + nokogiri (>= 1.5.9) macaddr (1.7.1) systemu (~> 2.6.2) mail (2.6.3) mime-types (>= 1.16, < 3) - mail_room (0.5.2) + mail_room (0.6.1) method_source (0.8.2) mime-types (1.25.1) mimemagic (0.3.0) - mini_portile (0.6.2) + mini_portile2 (2.0.0) minitest (5.7.0) mousetrap-rails (1.4.6) multi_json (1.11.2) multi_xml (0.5.5) - multipart-post (1.2.0) + multipart-post (2.0.0) mysql2 (0.3.20) - nenv (0.2.0) nested_form (0.3.2) - net-ldap (0.11) - net-scp (1.2.1) - net-ssh (>= 2.6.5) - net-ssh (2.9.2) - netrc (0.10.3) - newrelic-grape (2.0.0) - grape - newrelic_rpm - newrelic_rpm (3.9.4.245) - nokogiri (1.6.6.2) - mini_portile (~> 0.6.0) - notiffany (0.0.7) - nenv (~> 0.1) - shellany (~> 0.0) - nprogress-rails (0.1.2.3) + net-ldap (0.12.1) + net-ssh (3.0.1) + netrc (0.11.0) + nokogiri (1.6.7.2) + mini_portile2 (~> 2.0.0.rc2) + nprogress-rails (0.1.6.7) oauth (0.4.7) oauth2 (1.0.0) faraday (>= 0.8, < 0.10) @@ -421,25 +491,38 @@ GEM multi_json (~> 1.3) multi_xml (~> 0.5) rack (~> 1.2) - octokit (3.7.1) + octokit (3.8.0) sawyer (~> 0.6.0, >= 0.5.3) - omniauth (1.2.2) + omniauth (1.3.1) hashie (>= 1.2, < 4) - rack (~> 1.0) + rack (>= 1.0, < 3) + omniauth-azure-oauth2 (0.0.6) + jwt (~> 1.0) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.1) omniauth-bitbucket (0.0.2) multi_json (~> 1.7) omniauth (~> 1.1) omniauth-oauth (~> 1.0) + omniauth-cas3 (1.1.3) + addressable (~> 2.3) + nokogiri (~> 1.6.6) + omniauth (~> 1.2) + omniauth-facebook (3.0.0) + omniauth-oauth2 (~> 1.2) omniauth-github (1.1.2) omniauth (~> 1.0) omniauth-oauth2 (~> 1.1) - omniauth-gitlab (1.0.0) + omniauth-gitlab (1.0.1) omniauth (~> 1.0) omniauth-oauth2 (~> 1.0) - omniauth-google-oauth2 (0.2.6) - omniauth (> 1.0) - omniauth-oauth2 (~> 1.1) - omniauth-kerberos (0.2.0) + omniauth-google-oauth2 (0.2.10) + addressable (~> 2.3) + jwt (~> 1.0) + multi_json (~> 1.3) + omniauth (>= 1.1.1) + omniauth-oauth2 (~> 1.3.1) + omniauth-kerberos (0.3.0) omniauth-multipassword timfel-krb5-auth (~> 0.8) omniauth-multipassword (0.4.2) @@ -450,38 +533,34 @@ GEM omniauth-oauth2 (1.3.1) oauth2 (~> 1.0) omniauth (~> 1.2) - omniauth-saml (1.4.1) + omniauth-saml (1.4.2) omniauth (~> 1.1) - ruby-saml (~> 1.0.0) - omniauth-shibboleth (1.1.2) + ruby-saml (~> 1.1, >= 1.1.1) + omniauth-shibboleth (1.2.1) omniauth (>= 1.0.0) - omniauth-twitter (1.0.1) - multi_json (~> 1.3) - omniauth-oauth (~> 1.0) + omniauth-twitter (1.2.1) + json (~> 1.3) + omniauth-oauth (~> 1.1) omniauth_crowd (2.2.3) activesupport nokogiri (>= 1.4.4) omniauth (~> 1.0) - opennebula (4.12.1) - json - nokogiri - rbvmomi org-ruby (0.9.12) rubypants (~> 0.2) orm_adapter (0.5.0) - paranoia (2.1.3) + paranoia (2.1.4) activerecord (~> 4.0) - parser (2.2.2.6) + parser (2.2.3.0) ast (>= 1.1, < 3.0) - pg (0.18.2) - poltergeist (1.6.0) + pg (0.18.4) + poltergeist (1.8.1) capybara (~> 2.1) cliver (~> 0.3.1) multi_json (~> 1.0) websocket-driver (>= 0.2.0) posix-spawn (0.3.11) - powerpack (0.0.9) - pry (0.10.1) + powerpack (0.1.1) + pry (0.10.3) coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) @@ -490,17 +569,15 @@ GEM pyu-ruby-sasl (0.0.3.3) quiet_assets (1.0.3) railties (>= 3.1, < 5.0) - rack (1.5.5) + rack (1.6.4) rack-accept (0.4.5) rack (>= 0.4) - rack-attack (4.3.0) + rack-attack (4.3.1) rack - rack-cors (0.2.9) - rack-mini-profiler (0.9.7) - rack (>= 1.1.3) + rack-cors (0.4.0) rack-mount (0.8.3) rack (>= 1.0.0) - rack-oauth2 (1.0.10) + rack-oauth2 (1.2.1) activesupport (>= 2.3) attr_required (>= 0.0.5) httpclient (>= 2.4) @@ -510,44 +587,51 @@ GEM rack rack-test (0.6.3) rack (>= 1.0) - rails (4.1.12) - actionmailer (= 4.1.12) - actionpack (= 4.1.12) - actionview (= 4.1.12) - activemodel (= 4.1.12) - activerecord (= 4.1.12) - activesupport (= 4.1.12) + rails (4.2.5.1) + actionmailer (= 4.2.5.1) + actionpack (= 4.2.5.1) + actionview (= 4.2.5.1) + activejob (= 4.2.5.1) + activemodel (= 4.2.5.1) + activerecord (= 4.2.5.1) + activesupport (= 4.2.5.1) bundler (>= 1.3.0, < 2.0) - railties (= 4.1.12) - sprockets-rails (~> 2.0) - rails-observers (0.1.2) - activemodel (~> 4.0) - railties (4.1.12) - actionpack (= 4.1.12) - activesupport (= 4.1.12) + railties (= 4.2.5.1) + sprockets-rails + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (1.0.7) + activesupport (>= 4.2.0.beta, < 5.0) + nokogiri (~> 1.6.0) + rails-deprecated_sanitizer (>= 1.0.1) + rails-html-sanitizer (1.0.3) + loofah (~> 2.0) + railties (4.2.5.1) + actionpack (= 4.2.5.1) + activesupport (= 4.2.5.1) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.0.0) raindrops (0.15.0) - rake (10.4.2) + rake (10.5.0) raphael-rails (2.1.2) - rb-fsevent (0.9.5) + rb-fsevent (0.9.6) rb-inotify (0.9.5) ffi (>= 0.5.0) - rbvmomi (1.8.2) - builder - nokogiri (>= 1.4.1) - trollop + rblineprof (0.3.6) + debugger-ruby_core_source (~> 1.3) rdoc (3.12.2) json (~> 1.4) - redcarpet (3.3.2) - redis (3.2.1) - redis-actionpack (4.0.0) + recaptcha (1.0.2) + json + redcarpet (3.3.3) + redis (3.2.2) + redis-actionpack (4.0.1) actionpack (~> 4) redis-rack (~> 1.5.0) redis-store (~> 1.1.0) - redis-activesupport (4.1.1) - activesupport (~> 4) + redis-activesupport (4.1.5) + activesupport (>= 3, < 5) redis-store (~> 1.1.0) redis-namespace (1.5.2) redis (~> 3.0, >= 3.0.4) @@ -558,13 +642,13 @@ GEM redis-actionpack (~> 4) redis-activesupport (~> 4) redis-store (~> 1.1.0) - redis-store (1.1.6) + redis-store (1.1.7) redis (>= 2.2) - request_store (1.2.0) - rerun (0.10.0) - listen (~> 2.7, >= 2.7.3) - responders (1.1.2) - railties (>= 3.2, < 4.2) + request_store (1.2.1) + rerun (0.11.0) + listen (~> 3.0) + responders (2.1.1) + railties (>= 4.2.0, < 5.1) rest-client (1.8.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 3.0) @@ -597,35 +681,38 @@ GEM rspec-mocks (~> 3.3.0) rspec-support (~> 3.3.0) rspec-support (3.3.0) - rubocop (0.28.0) + rubocop (0.35.1) astrolabe (~> 1.3) - parser (>= 2.2.0.pre.7, < 3.0) - powerpack (~> 0.0.6) + parser (>= 2.2.3.0, < 3.0) + powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) - ruby-progressbar (~> 1.4) + ruby-progressbar (~> 1.7) + tins (<= 1.6.0) ruby-fogbugz (0.2.1) crack (~> 0.4) ruby-progressbar (1.7.5) - ruby-saml (1.0.0) + ruby-saml (1.1.1) nokogiri (>= 1.5.10) uuid (~> 2.3) - ruby2ruby (2.1.4) + ruby2ruby (2.2.0) ruby_parser (~> 3.1) sexp_processor (~> 4.0) - ruby_parser (3.5.0) + ruby_parser (3.7.2) sexp_processor (~> 4.1) rubyntlm (0.5.2) rubypants (0.2.0) - rugged (0.22.2) + rufus-scheduler (3.1.10) + rugged (0.24.0b13) safe_yaml (1.0.4) sanitize (2.1.0) nokogiri (>= 1.4.4) - sass (3.2.19) - sass-rails (4.0.5) + sass (3.4.20) + sass-rails (5.0.4) railties (>= 4.0.0, < 5.0) - sass (~> 3.2.2) - sprockets (~> 2.8, < 3.0) - sprockets-rails (~> 2.0) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) sawyer (0.6.0) addressable (~> 2.3.5) faraday (~> 0.8, < 0.10) @@ -637,23 +724,23 @@ GEM activesupport (>= 3.1, < 4.3) select2-rails (3.5.9.3) thor (~> 0.14) + sentry-raven (0.15.4) + faraday (>= 0.7.6) settingslogic (2.0.9) sexp_processor (4.6.0) sham_rack (1.3.6) rack - shellany (0.0.1) shoulda-matchers (2.8.0) activesupport (>= 3.0.0) - sidekiq (3.3.0) - celluloid (>= 0.16.0) - connection_pool (>= 2.0.0) - json - redis (>= 3.0.6) - redis-namespace (>= 1.3.1) - sidetiq (0.6.3) - celluloid (>= 0.14.1) - ice_cube (= 0.11.1) - sidekiq (>= 3.0.0) + sidekiq (4.0.1) + concurrent-ruby (~> 1.0) + connection_pool (~> 2.2, >= 2.2.0) + json (~> 1.0) + redis (~> 3.2, >= 3.2.1) + sidekiq-cron (0.4.0) + redis-namespace (>= 1.5.2) + rufus-scheduler (>= 2.0.24) + sidekiq (>= 4.0.0) simple_oauth (0.1.9) simplecov (0.10.0) docile (~> 1.1.0) @@ -665,9 +752,9 @@ GEM rack-protection (~> 1.4) tilt (>= 1.3, < 3) six (0.2.0) - slack-notifier (1.0.0) - slim (2.0.3) - temple (~> 0.6.6) + slack-notifier (1.2.1) + slim (3.0.6) + temple (~> 0.7.3) tilt (>= 1.3.3, < 2.1) slop (3.6.0) spinach (0.8.10) @@ -690,12 +777,17 @@ GEM multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) - sprockets-rails (2.3.2) + sprockets-rails (2.3.3) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) - stamp (0.5.0) - state_machine (1.2.0) + state_machines (0.4.0) + state_machines-activemodel (0.3.0) + activemodel (~> 4.1) + state_machines (>= 0.4.0) + state_machines-activerecord (0.3.0) + activerecord (~> 4.1) + state_machines-activemodel (>= 0.3.0) stringex (2.5.2) systemu (2.6.5) task_list (1.0.2) @@ -704,33 +796,30 @@ GEM railties (>= 3.2.5, < 5) teaspoon-jasmine (2.2.0) teaspoon (>= 1.0.0) - temple (0.6.10) + temple (0.7.6) term-ansicolor (1.3.2) tins (~> 1.0) terminal-table (1.5.2) - test_after_commit (0.2.7) + test_after_commit (0.4.2) activerecord (>= 3.2) - thin (1.6.3) + thin (1.6.4) daemons (~> 1.0, >= 1.0.9) - eventmachine (~> 1.0) + eventmachine (~> 1.0, >= 1.0.4) rack (~> 1.0) thor (0.19.1) thread_safe (0.3.5) tilt (1.4.1) - timers (4.0.4) - hitimes timfel-krb5-auth (0.8.3) - tinder (1.9.4) + tinder (1.10.1) eventmachine (~> 1.0) - faraday (~> 0.8.9) + faraday (~> 0.9.0) faraday_middleware (~> 0.9) - hashie (>= 1.0, < 3) + hashie (>= 1.0) json (~> 1.8.0) - mime-types (~> 1.19) + mime-types multi_json (~> 1.7) twitter-stream (~> 0.1) tins (1.6.0) - trollop (2.1.2) turbolinks (2.5.3) coffee-rails twitter-stream (0.1.16) @@ -739,10 +828,10 @@ GEM simple_oauth (~> 0.1.4) tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (2.3.3) + uglifier (2.7.2) execjs (>= 0.3.0) json (>= 1.8.0) - underscore-rails (1.4.4) + underscore-rails (1.8.3) unf (0.1.4) unf_ext unf_ext (0.0.7.1) @@ -750,9 +839,10 @@ GEM kgio (~> 2.6) rack raindrops (~> 0.7) - unicorn-worker-killer (0.4.3) + unicorn-worker-killer (0.4.4) get_process_mem (~> 0) - unicorn (~> 4) + unicorn (>= 4, < 6) + uniform_notifier (1.9.0) uuid (2.3.8) macaddr (~> 1.0) version_sorter (2.0.0) @@ -761,21 +851,24 @@ GEM coercible (~> 1.0) descendants_tracker (~> 0.0, >= 0.0.3) equalizer (~> 0.0, >= 0.0.9) - warden (1.2.3) + warden (1.2.4) rack (>= 1.0) + web-console (2.2.1) + activemodel (>= 4.0) + binding_of_caller (>= 0.7.2) + railties (>= 4.0) + sprockets-rails (>= 2.0, < 4.0) webmock (1.21.0) addressable (>= 2.3.6) crack (>= 0.3.2) - websocket-driver (0.6.2) + websocket-driver (0.6.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) - whenever (0.8.4) - activesupport (>= 2.3.4) - chronic (>= 0.6.3) wikicloth (0.8.1) builder expression_parser rinku + xml-simple (1.1.5) xpath (2.0.0) nokogiri (~> 1.3) @@ -786,154 +879,171 @@ DEPENDENCIES RedCloth (~> 4.2.9) ace-rails-ap (~> 2.0.1) activerecord-deprecated_finders (~> 1.0.3) + activerecord-nulldb-adapter activerecord-session_store (~> 0.1.0) acts-as-taggable-on (~> 3.4) addressable (~> 2.3.8) after_commit_queue + akismet (~> 2.0) + allocations (~> 1.0) annotate (~> 2.6.0) - asana (~> 0.0.6) + asana (~> 0.4.0) asciidoctor (~> 1.5.2) attr_encrypted (~> 1.3.4) awesome_print (~> 1.2.0) + babosa (~> 1.0.2) + benchmark-ips better_errors (~> 1.0.1) binding_of_caller (~> 0.7.2) - bootstrap-sass (~> 3.0) - brakeman (= 3.0.1) + bootstrap-sass (~> 3.3.0) + brakeman (~> 3.1.0) browser (~> 1.0.0) + bullet + bundler-audit byebug - cal-heatmap-rails (~> 0.0.1) + cal-heatmap-rails (~> 3.5.0) capybara (~> 2.4.0) capybara-screenshot (~> 1.0.0) carrierwave (~> 0.9.0) - charlock_holmes (~> 0.6.9.4) + charlock_holmes (~> 0.7.3) coffee-rails (~> 4.1.0) - colored (~> 1.2) - colorize (~> 0.5.8) + colorize (~> 0.7.0) + connection_pool (~> 2.0) coveralls (~> 0.8.2) - creole (~> 0.3.6) - d3_rails (~> 3.5.5) + creole (~> 0.5.0) + d3_rails (~> 3.5.0) database_cleaner (~> 1.4.0) default_value_for (~> 3.0.0) - devise (~> 3.5.2) + devise (~> 3.5.4) devise-async (~> 0.9.0) devise-two-factor (~> 2.0.0) diffy (~> 3.0.3) - doorkeeper (~> 2.1.3) + doorkeeper (~> 2.2.0) dropzonejs-rails (~> 0.7.1) email_reply_parser (~> 0.5.8) email_spec (~> 1.6.0) - enumerize (~> 0.7.0) factory_girl_rails (~> 4.3.0) ffaker (~> 2.0.0) - fog (~> 1.25.0) + flay + flog + fog (~> 1.36.0) font-awesome-rails (~> 4.2) foreman fuubar (~> 2.0.0) gemnasium-gitlab-service (~> 0.2) + github-linguist (~> 4.7.0) github-markup (~> 1.3.1) gitlab-flowdock-git-hook (~> 1.0.1) - gitlab-linguist (~> 3.0.1) - gitlab_emoji (~> 0.1) - gitlab_git (~> 7.2.15) + gitlab_emoji (~> 0.3.0) + gitlab_git (~> 8.2) gitlab_meta (= 7.0) gitlab_omniauth-ldap (~> 1.2.1) - gollum-lib (~> 4.0.2) - gon (~> 5.0.0) - grape (~> 0.6.1) + gollum-lib (~> 4.1.0) + gon (~> 6.0.1) + grape (~> 0.13.0) grape-entity (~> 0.4.2) - growl - guard-rspec (~> 4.2.0) - haml-rails (~> 0.5.3) + haml-rails (~> 0.9.0) hipchat (~> 1.5.0) html-pipeline (~> 1.11.0) httparty (~> 0.13.3) - jquery-atwho-rails (~> 1.0.0) - jquery-rails (~> 3.1.3) + influxdb (~> 0.2) + jquery-atwho-rails (~> 1.3.2) + jquery-rails (~> 4.0.0) jquery-scrollto-rails (~> 1.4.3) - jquery-turbolinks (~> 2.0.1) - jquery-ui-rails (~> 4.2.1) - kaminari (~> 0.15.1) + jquery-turbolinks (~> 2.1.0) + jquery-ui-rails (~> 5.0.0) + kaminari (~> 0.16.3) letter_opener (~> 1.1.2) - mail_room (~> 0.5.2) + loofah (~> 2.0.3) + mail_room (~> 0.6.1) + method_source (~> 0.8) minitest (~> 5.7.0) mousetrap-rails (~> 1.4.6) mysql2 (~> 0.3.16) nested_form (~> 0.3.2) - newrelic-grape - newrelic_rpm (~> 3.9.4.245) - nprogress-rails (~> 0.1.2.3) + net-ssh (~> 3.0.1) + nokogiri (~> 1.6.7, >= 1.6.7.2) + nprogress-rails (~> 0.1.6.7) oauth2 (~> 1.0.0) - octokit (~> 3.7.0) - omniauth (~> 1.2.2) + octokit (~> 3.8.0) + omniauth (~> 1.3.1) + omniauth-azure-oauth2 (~> 0.0.6) omniauth-bitbucket (~> 0.0.2) + omniauth-cas3 (~> 1.1.2) + omniauth-facebook (~> 3.0.0) omniauth-github (~> 1.1.1) omniauth-gitlab (~> 1.0.0) - omniauth-google-oauth2 (~> 0.2.5) - omniauth-kerberos (~> 0.2.0) - omniauth-saml (~> 1.4.0) - omniauth-shibboleth (~> 1.1.1) - omniauth-twitter (~> 1.0.1) - omniauth_crowd + omniauth-google-oauth2 (~> 0.2.0) + omniauth-kerberos (~> 0.3.0) + omniauth-saml (~> 1.4.2) + omniauth-shibboleth (~> 1.2.0) + omniauth-twitter (~> 1.2.0) + omniauth_crowd (~> 2.2.0) org-ruby (~> 0.9.12) paranoia (~> 2.0) pg (~> 0.18.2) - poltergeist (~> 1.6.0) + poltergeist (~> 1.8.1) pry-rails quiet_assets (~> 1.0.2) - rack-attack (~> 4.3.0) - rack-cors (~> 0.2.9) - rack-mini-profiler (~> 0.9.0) - rack-oauth2 (~> 1.0.5) - rails (= 4.1.12) + rack-attack (~> 4.3.1) + rack-cors (~> 0.4.0) + rack-oauth2 (~> 1.2.1) + rails (= 4.2.5.1) + rails-deprecated_sanitizer (~> 1.0.3) raphael-rails (~> 2.1.2) - rb-fsevent - rb-inotify + rblineprof rdoc (~> 3.6) - redcarpet (~> 3.3.2) + recaptcha + redcarpet (~> 3.3.3) + redis-namespace redis-rails (~> 4.0.0) request_store (~> 1.2.0) - rerun (~> 0.10.0) + rerun (~> 0.11.0) + responders (~> 2.0) + rouge (~> 1.10.1) rqrcode-rails3 (~> 0.1.7) rspec-rails (~> 3.3.0) - rubocop (~> 0.28.0) + rubocop (~> 0.35.0) ruby-fogbugz (~> 0.2.1) sanitize (~> 2.0) - sass-rails (~> 4.0.5) + sass-rails (~> 5.0.0) sdoc (~> 0.3.20) seed-fu (~> 2.3.5) select2-rails (~> 3.5.9) + sentry-raven settingslogic (~> 2.0.9) sham_rack shoulda-matchers (~> 2.8.0) - sidekiq (= 3.3.0) - sidetiq (~> 0.6.3) + sidekiq (~> 4.0) + sidekiq-cron (~> 0.4.0) simplecov (~> 0.10.0) sinatra (~> 1.4.4) six (~> 0.2.0) - slack-notifier (~> 1.0.0) - slim (~> 2.0.2) + slack-notifier (~> 1.2.0) spinach-rails (~> 0.2.1) spring (~> 1.3.6) spring-commands-rspec (~> 1.0.4) spring-commands-spinach (~> 1.0.0) spring-commands-teaspoon (~> 0.0.2) sprockets (~> 2.12.3) - stamp (~> 0.5.0) - state_machine (~> 1.2.0) + state_machines-activerecord (~> 0.3.0) task_list (~> 1.0.2) teaspoon (~> 1.0.0) teaspoon-jasmine (~> 2.2.0) - test_after_commit (~> 0.2.2) + test_after_commit (~> 0.4.2) thin (~> 1.6.1) - tinder (~> 1.9.2) + tinder (~> 1.10.0) turbolinks (~> 2.5.0) - uglifier (~> 2.3.2) - underscore-rails (~> 1.4.4) + uglifier (~> 2.7.2) + underscore-rails (~> 1.8.0) unf (~> 0.1.4) unicorn (~> 4.8.2) unicorn-worker-killer (~> 0.4.2) version_sorter (~> 2.0.0) virtus (~> 1.0.1) + web-console (~> 2.0) webmock (~> 1.21.0) - whenever (~> 0.8.4) wikicloth (= 0.8.1) + +BUNDLED WITH + 1.11.2 diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix index 8af64ce78e92c..4e86768e0dd20 100644 --- a/pkgs/applications/version-management/gitlab/default.nix +++ b/pkgs/applications/version-management/gitlab/default.nix @@ -1,7 +1,10 @@ -{ stdenv, lib, bundler, fetchgit, bundlerEnv, defaultGemConfig, libiconv, ruby +{ stdenv, lib, bundler, fetchFromGitHub, bundlerEnv, defaultGemConfig, libiconv, ruby , tzdata, git, nodejs, procps }: +/* When updating the Gemfile add `gem "activerecord-nulldb-adapter"` + to allow building the assets without a database */ + let env = bundlerEnv { name = "gitlab"; @@ -21,19 +24,23 @@ in stdenv.mkDerivation rec { name = "gitlab-${version}"; - version = "8.0.5"; + version = "8.5.0"; + buildInputs = [ ruby bundler tzdata git nodejs procps ]; - src = fetchgit { - url = "https://github.com/gitlabhq/gitlabhq.git"; - rev = "2866c501b5a5abb69d101cc07261a1d684b4bd4c"; - fetchSubmodules = false; - sha256 = "edc6bedd5e79940189355d8cb343d20b0781b69fcef56ccae5906fa5e81ed521"; + + src = fetchFromGitHub { + owner = "gitlabhq"; + repo = "gitlabhq"; + rev = "v${version}"; + sha256 = "1rhl906xnvpxkw3ngwfzi80cl3daihx5vizy04b9b39adyd3i5hl"; }; patches = [ ./remove-hardcoded-locations.patch ./disable-dump-schema-after-migration.patch + ./nulladapter.patch ]; + postPatch = '' # For reasons I don't understand "bundle exec" ignores the # RAILS_ENV causing tests to be executed that fail because we're @@ -41,7 +48,6 @@ stdenv.mkDerivation rec { # tests works though.: rm lib/tasks/test.rake - mv config/gitlab.yml.example config/gitlab.yml rm config/initializers/gitlab_shell_secret_token.rb substituteInPlace app/controllers/admin/background_jobs_controller.rb \ @@ -50,7 +56,7 @@ stdenv.mkDerivation rec { # required for some gems: cat > config/database.yml < database: gitlab host: <%= ENV["GITLAB_DATABASE_HOST"] || "127.0.0.1" %> password: <%= ENV["GITLAB_DATABASE_PASSWORD"] || "blerg" %> @@ -58,14 +64,22 @@ stdenv.mkDerivation rec { encoding: utf8 EOF ''; + buildPhase = '' export GEM_HOME=${env}/${ruby.gemPath} - bundle exec rake assets:precompile RAILS_ENV=production + mv config/gitlab.yml.example config/gitlab.yml + GITLAB_DATABASE_ADAPTER=nulldb bundle exec rake assets:precompile RAILS_ENV=production + mv config/gitlab.yml config/gitlab.yml.example + mv config config.dist ''; + installPhase = '' mkdir -p $out/share cp -r . $out/share/gitlab + ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads + ln -sf /run/gitlab/config $out/share/gitlab/config ''; + passthru = { inherit env; inherit ruby; diff --git a/pkgs/applications/version-management/gitlab/gemset.nix b/pkgs/applications/version-management/gitlab/gemset.nix index c5e10dd166adc..95905fb7dfc24 100644 --- a/pkgs/applications/version-management/gitlab/gemset.nix +++ b/pkgs/applications/version-management/gitlab/gemset.nix @@ -1,3150 +1,3009 @@ { - "CFPropertyList" = { - version = "2.3.1"; + xpath = { + dependencies = ["nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "04kcr127l34p7221z13blyl0dvh0bmxwx326j72idayri36a394w"; type = "gem"; - sha256 = "1wnk3gxnhfafbhgp0ic7qhzlx3lhv04v8nws2s31ii5s8135hs6k"; }; + version = "2.0.0"; }; - "RedCloth" = { - version = "4.2.9"; + xml-simple = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"; type = "gem"; - sha256 = "06pahxyrckhgb7alsxwhhlx1ib2xsx33793finj01jk8i054bkxl"; }; + version = "1.1.5"; }; - "ace-rails-ap" = { - version = "2.0.1"; + wikicloth = { + dependencies = ["builder" "expression_parser" "rinku"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s"; type = "gem"; - sha256 = "082n12rkd9j7d89030nhmi4fx1gqaf13knps6cknsyvwix7fryvv"; }; + version = "0.8.1"; }; - "actionmailer" = { - version = "4.1.12"; + websocket-extensions = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "07qnsafl6203a2zclxl20hy4jq11c471cgvd0bj5r9fx1qqw06br"; type = "gem"; - sha256 = "0p1hydjf5vb4na4fs29v7cdknfq3d6qvmld2vbafbh78kkclxi2m"; }; - dependencies = [ - "actionpack" - "actionview" - "mail" - ]; + version = "0.1.2"; }; - "actionpack" = { - version = "4.1.12"; + websocket-driver = { + dependencies = ["websocket-extensions"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v39w1ig6ps8g55xhz6x1w53apl17ii6kpy0jg9249akgpdvb0k9"; type = "gem"; - sha256 = "19bryymqlapsvn9df6q2ba4hvw9dwpp4fjc7i6lwffkadc4snkjy"; }; - dependencies = [ - "actionview" - "activesupport" - "rack" - "rack-test" - ]; + version = "0.6.3"; }; - "actionview" = { - version = "4.1.12"; + webmock = { + dependencies = ["addressable" "crack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p7hqdxk5359xwp59pcx841fhbnqx01ra98rnwhdyz61nrc6piv3"; type = "gem"; - sha256 = "1bv8qifaqa514z64zgfw3r4i120h2swwgpfk79xlrac21q6ps70n"; }; - dependencies = [ - "activesupport" - "builder" - "erubis" - ]; + version = "1.21.0"; }; - "activemodel" = { - version = "4.1.12"; + web-console = { + dependencies = ["activemodel" "binding_of_caller" "railties" "sprockets-rails"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "13rwps8m76j45iqhggm810j78i8bg4nqzgi8k7amxplik2zm5blf"; type = "gem"; - sha256 = "16429dg04s64g834svi7ghq486adr32gxr5p9kac2z6mjp8ggjr3"; }; - dependencies = [ - "activesupport" - "builder" - ]; + version = "2.2.1"; }; - "activerecord" = { - version = "4.1.12"; + warden = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iyxw1ms3930dh7vcrfyi4ifpdbkfsr8k7fzjryva0r7k3c71gb7"; type = "gem"; - sha256 = "1w3dbmbdk4whm5p1l6d2ky3xpl59lfcr9p3hwd41dz77ynpi5dr5"; }; - dependencies = [ - "activemodel" - "activesupport" - "arel" - ]; + version = "1.2.4"; }; - "activerecord-deprecated_finders" = { - version = "1.0.4"; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk"; type = "gem"; - sha256 = "03xplckz7v3nm6inqkwdd44h6gpbpql0v02jc1rz46a38rd6cj6m"; }; + version = "1.0.5"; }; - "activerecord-session_store" = { - version = "0.1.1"; + version_sorter = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lad9c43w2xfzmva57ia6glpmhyivyk1m79jli42canshvan5v6y"; type = "gem"; - sha256 = "15dgx7jjp8iqqzjq2q3a6fsmnhvjwspbsz1s1gd6zp744k6xbrjh"; }; - dependencies = [ - "actionpack" - "activerecord" - "railties" - ]; + version = "2.0.0"; }; - "activeresource" = { - version = "4.0.0"; + uuid = { + dependencies = ["macaddr"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gr2mxg27l380wpiy66mgv9wq02myj6m4gmp6c4g1vsbzkh0213v"; type = "gem"; - sha256 = "0fc5igjijyjzsl9q5kybkdzhc92zv8wsv0ifb0y90i632jx6d4jq"; }; - dependencies = [ - "activemodel" - "activesupport" - "rails-observers" - ]; + version = "2.3.8"; }; - "activesupport" = { - version = "4.1.12"; + uniform_notifier = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "009z60qx01am7klmrca8pcladrynljra3a9smifn9f81r4dc7q63"; type = "gem"; - sha256 = "166jvrmdwayacnrd4z3rs2d6y0av3xnc18k6120ah13c2ipw69hn"; }; - dependencies = [ - "i18n" - "json" - "minitest" - "thread_safe" - "tzinfo" - ]; + version = "1.9.0"; }; - "acts-as-taggable-on" = { - version = "3.5.0"; + unicorn-worker-killer = { + dependencies = ["get_process_mem" "unicorn"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva"; type = "gem"; - sha256 = "0bz0z8dlp3fjzah9y9b6rr9mkidsav9l4hdm51fnq1gd05yv3pr7"; }; - dependencies = [ - "activerecord" - ]; + version = "0.4.4"; }; - "addressable" = { - version = "2.3.8"; + unicorn = { + dependencies = ["kgio" "rack" "raindrops"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kpg2vikx2hxdyrl45bqcr89a0w59hfw7yn7xh87bmlczi34xds4"; type = "gem"; - sha256 = "1533axm85gpz267km9gnfarf9c78g2scrysd6b8yw33vmhkz2km6"; }; + version = "4.8.3"; }; - "after_commit_queue" = { - version = "1.1.0"; + unf_ext = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ly2ms6c3irmbr1575ldyh52bz2v0lzzr2gagf0p526k12ld2n5b"; type = "gem"; - sha256 = "0m7qwbzvxb2xqramf38pzg8ld91s4cy2v0fs26dnmnqr1jf11z4y"; }; - dependencies = [ - "rails" - ]; + version = "0.0.7.1"; }; - "annotate" = { - version = "2.6.10"; + unf = { + dependencies = ["unf_ext"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; type = "gem"; - sha256 = "1wdw9phsv2dndgid3pd8h0hl4zycwy11jc9iz6prwza0xax0i7hg"; }; - dependencies = [ - "activerecord" - "rake" - ]; + version = "0.1.4"; }; - "arel" = { - version = "5.0.1.20140414130214"; + underscore-rails = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iyspb7s49wpi9cc314gvlkyn45iyfivzxhdw0kql1zrgllhlzfk"; type = "gem"; - sha256 = "0dhnc20h1v8ml3nmkxq92rr7qxxpk6ixhwvwhgl2dbw9mmxz0hf9"; }; + version = "1.8.3"; }; - "asana" = { - version = "0.0.6"; + uglifier = { + dependencies = ["execjs" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz"; + type = "gem"; + }; + version = "2.7.2"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"; + type = "gem"; + }; + version = "1.2.2"; + }; + twitter-stream = { + dependencies = ["eventmachine" "http_parser.rb" "simple_oauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0is81g3xvnjk64sqiaqlh2ziwfryzwvk1yvaniryg0zhppgsyriq"; + type = "gem"; + }; + version = "0.1.16"; + }; + turbolinks = { + dependencies = ["coffee-rails"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ddrx25vvvqxlz4h59lrmjhc2bfwxf4bpicvyhgbpjd48ckj81jn"; + type = "gem"; + }; + version = "2.5.3"; + }; + tins = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02qarvy17nbwvslfgqam8y6y7479cwmb1a6di9z18hzka4cf90hz"; + type = "gem"; + }; + version = "1.6.0"; + }; + tinder = { + dependencies = ["eventmachine" "faraday" "faraday_middleware" "hashie" "json" "mime-types" "multi_json" "twitter-stream"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kwj0wd540wb2ws86d3jdva175dx00w2j8lyrvbb6qli3g27byd7"; + type = "gem"; + }; + version = "1.10.1"; + }; + timfel-krb5-auth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b"; + type = "gem"; + }; + version = "0.8.3"; + }; + tilt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00sr3yy7sbqaq7cb2d2kpycajxqf1b1wr1yy33z4bnzmqii0b0ir"; type = "gem"; - sha256 = "1x325pywh3d91qrg916gh8i5g13h4qzgi03zc93x6v4m4rj79dcp"; }; - dependencies = [ - "activeresource" - ]; + version = "1.4.1"; }; - "asciidoctor" = { + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"; + type = "gem"; + }; + version = "0.3.5"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"; + type = "gem"; + }; + version = "0.19.1"; + }; + thin = { + dependencies = ["daemons" "eventmachine" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pyc602sa8fqwjyssn9yvf3fqrr14jk7hj9hsjlan1mq4zvim1lf"; + type = "gem"; + }; + version = "1.6.4"; + }; + test_after_commit = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fzg8qan6f0n0ynr594bld2k0rwwxj99yzhiga2f3pkj9ina1abb"; + type = "gem"; + }; + version = "0.4.2"; + }; + terminal-table = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s6qyj9ir1agbbi32li9c0c34dcl0klyxqif6mxy0dbvq7kqfp8f"; + type = "gem"; + }; version = "1.5.2"; + }; + term-ansicolor = { + dependencies = ["tins"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ydbbyjmk5p7fsi55ffnkq79jnfqx65c3nj8d9rpgl6sw85ahyys"; type = "gem"; - sha256 = "0hs99bjvnf1nw49nwq62mi5x65x2jlvwqa0xllsi3zfikafsm1y9"; }; + version = "1.3.2"; }; - "ast" = { - version = "2.1.0"; + temple = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ysraljv7lkb04z5vdyrkijab7j1jzj1mgz4bj82744dp7d0rhb0"; type = "gem"; - sha256 = "102bywfxrv0w3n4s6lg25d7xxshd344sc7ijslqmganj5bany1pk"; }; + version = "0.7.6"; }; - "astrolabe" = { - version = "1.3.1"; + teaspoon-jasmine = { + dependencies = ["teaspoon"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wygrv1jm4aj15p1ab9d5fdrj6y83kv26xgp52mx4lp78h2ms9q"; type = "gem"; - sha256 = "0ybbmjxaf529vvhrj4y8d4jpf87f3hgczydzywyg1d04gggjx7l7"; }; - dependencies = [ - "parser" - ]; + version = "2.2.0"; }; - "attr_encrypted" = { - version = "1.3.4"; + teaspoon = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cprz18vgf0jgcggcxf4pwx8jcwbiyj1p0dnck5aavlvaxaic58s"; type = "gem"; - sha256 = "1hm2844qm37kflqq5v0x2irwasbhcblhp40qk10m3wlkj4m9wp8p"; }; - dependencies = [ - "encryptor" - ]; + version = "1.0.2"; }; - "attr_required" = { - version = "1.0.0"; + task_list = { + dependencies = ["html-pipeline"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iv1fizb04463c4mp4gxd8v0414fhvmiwvwvjby5b9qq79d8zwab"; type = "gem"; - sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc"; }; + version = "1.0.2"; }; - "autoprefixer-rails" = { - version = "5.2.1.2"; + systemu = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1"; type = "gem"; - sha256 = "129kr8hiyzcnj4x3n14nnp7f7scps9v3d690i7fjzpq8i4n9gz8g"; }; - dependencies = [ - "execjs" - "json" - ]; + version = "2.6.5"; }; - "awesome_print" = { - version = "1.2.0"; + stringex = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17"; type = "gem"; - sha256 = "1k85hckprq0s9pakgadf42k1d5s07q23m3y6cs977i6xmwdivyzr"; }; + version = "2.5.2"; }; - "axiom-types" = { - version = "0.1.1"; + state_machines-activerecord = { + dependencies = ["activerecord" "state_machines-activemodel"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "10dplkn4cm49xby8s0sn7wxww4hnxi4dgikfsmhp1rbsa24d76vx"; type = "gem"; - sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; }; - dependencies = [ - "descendants_tracker" - "ice_nine" - "thread_safe" - ]; + version = "0.3.0"; }; - "bcrypt" = { - version = "3.1.10"; + state_machines-activemodel = { + dependencies = ["activemodel" "state_machines"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bshcm53v2vfpapvhws1h0dq1h4f3p6bvpdkjpydb52a3m0w2z0y"; type = "gem"; - sha256 = "15cf7zzlj9b0xcx12jf8fmnpc8g1b0yhxal1yr5p7ny3mrz5pll6"; }; + version = "0.3.0"; }; - "better_errors" = { - version = "1.0.1"; + state_machines = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xg84kdglz0k1pshf2q604zybjpribzcz2b651sc1j27kd86w787"; type = "gem"; - sha256 = "0v0q8bdkqqlcsfqbk4wvc3qnz8an44mgz720v5f11a4nr413mjgf"; }; - dependencies = [ - "coderay" - "erubis" - ]; + version = "0.4.0"; }; - "binding_of_caller" = { - version = "0.7.2"; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vsl6ryxdjpp97nl4ghhk1v6p50zh3sx9qv81bhmlffc234r91wn"; type = "gem"; - sha256 = "15jg6dkaq2nzcd602d7ppqbdxw3aji961942w93crs6qw4n6h9yk"; }; - dependencies = [ - "debug_inspector" - ]; + version = "2.3.3"; }; - "bootstrap-sass" = { - version = "3.3.5"; + sprockets = { + dependencies = ["hike" "multi_json" "rack" "tilt"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "15818683yz27w4hgywccf27n91azy9a4nmb5qkklzb08k8jw9gp3"; type = "gem"; - sha256 = "0gnbl3jfi7x491kb5b2brhqr981wzg6r9sc907anhq9y727d96iv"; }; - dependencies = [ - "autoprefixer-rails" - "sass" - ]; + version = "2.12.4"; }; - "brakeman" = { - version = "3.0.1"; + spring-commands-teaspoon = { + dependencies = ["spring"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g7n4m2s9d0frh7y1xibzpphqajfnx4fvgfc66nh545dd91w2nqz"; type = "gem"; - sha256 = "0c3pwqhan5qpkmymmp4zpr6j1v3xrvvla9adsd0z9nx1dbc7llry"; }; - dependencies = [ - "erubis" - "fastercsv" - "haml" - "highline" - "multi_json" - "ruby2ruby" - "ruby_parser" - "sass" - "terminal-table" - ]; + version = "0.0.2"; }; - "browser" = { + spring-commands-spinach = { + dependencies = ["spring"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "138jardqyj96wz68njdgy55qjbpl2d0g8bxbkz97ndaz3c2bykv9"; + type = "gem"; + }; version = "1.0.0"; + }; + spring-commands-rspec = { + dependencies = ["spring"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; type = "gem"; - sha256 = "03pmj759wngl03lacn8mdhjn6mc5f8zn08mz6k5hq8czgwcwhjxi"; }; + version = "1.0.4"; }; - "builder" = { - version = "3.2.2"; + spring = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xvz2x6nvza5i53p7mddnf11j2wshqmbaphi6ngd6nar8v35y0k1"; type = "gem"; - sha256 = "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"; }; + version = "1.3.6"; }; - "byebug" = { - version = "6.0.2"; + spinach-rails = { + dependencies = ["capybara" "railties" "spinach"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nfacfylkncfgi59g2wga6m4nzdcjqb8s50cax4nbx362ap4bl70"; type = "gem"; - sha256 = "0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"; }; + version = "0.2.1"; }; - "cal-heatmap-rails" = { - version = "0.0.1"; + spinach = { + dependencies = ["colorize" "gherkin-ruby" "json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0phfjs4iw2iqxdaljzwk6qxmi2x86pl3hirmpgw2pgfx76wfx688"; type = "gem"; - sha256 = "07qp74hi1612xgmkfvk1dmc4n79lc7dfkcgqjprnlwb6nkqa940m"; }; + version = "0.8.10"; }; - "capybara" = { - version = "2.4.4"; + slop = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"; type = "gem"; - sha256 = "114k4xi4nfbp3jfbxgwa3fksbwsyibx74gbdqpcgg3dxpmzkaa4f"; }; - dependencies = [ - "mime-types" - "nokogiri" - "rack" - "rack-test" - "xpath" - ]; + version = "3.6.0"; }; - "capybara-screenshot" = { - version = "1.0.11"; + slim = { + dependencies = ["temple" "tilt"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1szs71hh0msm5gj6qbcxw44m3hqnwybx4yh02scwixnwg576058k"; type = "gem"; - sha256 = "17v1wihr3aqrxhrwswkdpdklj1xsfcaksblh1y8hixvm9bqfyz3y"; }; - dependencies = [ - "capybara" - "launchy" - ]; + version = "3.0.6"; }; - "carrierwave" = { - version = "0.9.0"; + slack-notifier = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "08z6fv186yw1nrpl6zwp3lwqksin145aa1jv6jf00bnv3sicliiz"; type = "gem"; - sha256 = "1b1av1ancby6brhmypl5k8xwrasd8bd3kqp9ri8kbq7z8nj6k445"; }; - dependencies = [ - "activemodel" - "activesupport" - "json" - ]; + version = "1.2.1"; }; - "celluloid" = { - version = "0.16.0"; + six = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bhapiyjh5r5qjpclfw8i65plvy6k2q4azr5xir63xqglr53viw3"; type = "gem"; - sha256 = "044xk0y7i1xjafzv7blzj5r56s7zr8nzb619arkrl390mf19jxv3"; }; - dependencies = [ - "timers" - ]; + version = "0.2.0"; }; - "charlock_holmes" = { - version = "0.6.9.4"; + sinatra = { + dependencies = ["rack" "rack-protection" "tilt"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hhmwqc81ram7lfwwziv0z70jh92sj1m7h7s9fr0cn2xq8mmn8l7"; type = "gem"; - sha256 = "1vyzsr3r2bwig9knyhay1m7i828w9x5zhma44iajyrbs1ypvfbg5"; }; + version = "1.4.6"; }; - "chronic" = { - version = "0.10.2"; + simplecov-html = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf"; type = "gem"; - sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"; }; + version = "0.10.0"; }; - "chunky_png" = { - version = "1.3.4"; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q2iq2vgrdvvla5y907gkmqx6ry2qvnvc7a90hlcbwgp1w0sv6z4"; type = "gem"; - sha256 = "0n5xhkj3vffihl3h9s8yjzazqaqcm4p1nyxa1w2dk3fkpzvb0wfw"; }; + version = "0.10.0"; }; - "cliver" = { - version = "0.3.2"; + simple_oauth = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb06p88xsdw4fxll1ikv5i5k58sl6y323ss0wp1hqjm3xw1jgvj"; type = "gem"; - sha256 = "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7"; }; + version = "0.1.9"; }; - "coderay" = { - version = "1.1.0"; + sidekiq-cron = { + dependencies = ["redis-namespace" "rufus-scheduler" "sidekiq"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xnbvh8kjv6954vsiwfcpp7bn8sgpwvnyapnq7b94w8h7kj3ykqy"; type = "gem"; - sha256 = "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"; }; + version = "0.4.0"; }; - "coercible" = { - version = "1.0.0"; + sidekiq = { + dependencies = ["concurrent-ruby" "connection_pool" "json" "redis"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x7jfc2va0x6fcfffdf0wdiyk4krjw8053jzwffa63wkqr5jvg3y"; type = "gem"; - sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; }; - dependencies = [ - "descendants_tracker" - ]; + version = "4.0.1"; }; - "coffee-rails" = { - version = "4.1.0"; + shoulda-matchers = { + dependencies = ["activesupport"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0d3ryqcsk1n9y35bx5wxnqbgw4m8b3c79isazdjnnbg8crdp72d0"; type = "gem"; - sha256 = "0p3zhs44gsy1p90nmghihzfyl7bsk8kv6j3q7rj3bn74wg8w7nqs"; }; - dependencies = [ - "coffee-script" - "railties" - ]; + version = "2.8.0"; }; - "coffee-script" = { - version = "2.4.1"; + sham_rack = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i"; type = "gem"; - sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; }; - dependencies = [ - "coffee-script-source" - "execjs" - ]; + version = "1.3.6"; }; - "coffee-script-source" = { - version = "1.9.1.1"; + sexp_processor = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gxlcpg81wfjf5gpggf8h6l2dbq3ikgavbrr2yfw3m2vqy88yjg2"; type = "gem"; - sha256 = "1arfrwyzw4sn7nnaq8jji5sv855rp4c5pvmzkabbdgca0w1cxfq5"; }; + version = "4.6.0"; }; - "colored" = { - version = "1.2"; + settingslogic = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar"; type = "gem"; - sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx"; }; + version = "2.0.9"; }; - "colorize" = { - version = "0.5.8"; + sentry-raven = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h0w2ip02zcd3krpddn54vssd7asnbj823r4mlzzqpp28q3r3mcm"; type = "gem"; - sha256 = "1rfzvscnk2js87zzwjgg2lk6h6mrv9448z5vx3b8vnm9yrb2qg8g"; }; + version = "0.15.4"; }; - "connection_pool" = { - version = "2.2.0"; + select2-rails = { + dependencies = ["thor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj"; type = "gem"; - sha256 = "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"; }; + version = "3.5.9.3"; }; - "coveralls" = { - version = "0.8.2"; + seed-fu = { + dependencies = ["activerecord" "activesupport"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "11xja82yxir1kwccrzng29h7w911i9j0xj2y7y949yqnw91v12vw"; type = "gem"; - sha256 = "0ds63q3g8zp23813hsvjjqpjglwr76ld4zqbbdhc9ads9l988axz"; }; - dependencies = [ - "json" - "rest-client" - "simplecov" - "term-ansicolor" - "thor" - ]; + version = "2.3.5"; }; - "crack" = { - version = "0.4.2"; + sdoc = { + dependencies = ["json" "rdoc"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "17l8qk0ld47z4h5avcnylvds8nc6dp25zc64w23z8li2hs341xf2"; type = "gem"; - sha256 = "1il94m92sz32nw5i6hdq14f1a2c3s9hza9zn6l95fvqhabq38k7a"; }; - dependencies = [ - "safe_yaml" - ]; + version = "0.3.20"; }; - "creole" = { - version = "0.3.8"; + sawyer = { + dependencies = ["addressable" "faraday"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fk43bzwn816qj1ksiicm2i1kmzv5675cmnvk57kmfmi4rfsyjpy"; type = "gem"; - sha256 = "1wwqk5ij4r5rhzbzhnpqwbn9ck56qgyjs02pjmi2wh46gs8dmkl8"; }; + version = "0.6.0"; }; - "d3_rails" = { - version = "3.5.6"; + sass-rails = { + dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f6357vw944w2ayayqmz8ai9myl6xbnry06sx5b5ms4r9lny8hj8"; type = "gem"; - sha256 = "0faz49chi08zxqwwdzzcb468gmcfmpv1s58y4c431kpa6kyh8qsm"; }; - dependencies = [ - "railties" - ]; + version = "5.0.4"; }; - "daemons" = { - version = "1.2.3"; + sass = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "04rpdcp258arh2wgdk9shbqnzd6cbbbpi3wpi9a0wby8awgpxmyf"; type = "gem"; - sha256 = "0b839hryy9sg7x3knsa1d6vfiyvn0mlsnhsb6an8zsalyrz1zgqg"; }; + version = "3.4.20"; }; - "database_cleaner" = { - version = "1.4.1"; + sanitize = { + dependencies = ["nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3"; type = "gem"; - sha256 = "0n5r7kvsmknk876v3scdphfnvllr9157fa5q7j5fczg8j5qm6kf0"; }; + version = "2.1.0"; }; - "debug_inspector" = { - version = "0.0.2"; + safe_yaml = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; type = "gem"; - sha256 = "109761g00dbrw5q0dfnbqg8blfm699z4jj70l4zrgf9mzn7ii50m"; }; + version = "1.0.4"; }; - "default_value_for" = { - version = "3.0.1"; + rugged = { + version = "0.24.0b13"; source = { type = "gem"; - sha256 = "1z4lrba4y1c3y0rxw8321qbwsb3nr6c2igrpksfvz93yhc9m6xm0"; + remotes = ["https://rubygems.org"]; + sha256 = "0v0cvdw8cgy1hf5h3cx796zpxhbad8d5cm50nykyhwjc00q80zrr"; }; - dependencies = [ - "activerecord" - ]; }; - "descendants_tracker" = { - version = "0.0.4"; + rufus-scheduler = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "04bmvvvri7ni7dvlq3gi1y553f6rp6bw2kmdfp9ny5bh3l7qayrh"; type = "gem"; - sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; }; - dependencies = [ - "thread_safe" - ]; + version = "3.1.10"; }; - "devise" = { - version = "3.5.2"; + rubypants = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph"; type = "gem"; - sha256 = "1wj88i2hyhcnifj606vzgf2q68yhcpyrsx7bc11h93cma51z59c3"; }; - dependencies = [ - "bcrypt" - "orm_adapter" - "railties" - "responders" - "thread_safe" - "warden" - ]; + version = "0.2.0"; }; - "devise-async" = { - version = "0.9.0"; + rubyntlm = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "04l8686hl0829x4acsnbz0licf8n6794p7shz8iyahin1jnqg3d7"; type = "gem"; - sha256 = "11llg7ggzpmg4lb9gh4sx55spvp98sal5r803gjzamps9crfq6mm"; }; - dependencies = [ - "devise" - ]; + version = "0.5.2"; }; - "devise-two-factor" = { - version = "2.0.0"; + ruby_parser = { + dependencies = ["sexp_processor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rip6075b4k5a7s8w2klwc3jaqx31h69k004ac5nhl8y0ja92qvz"; type = "gem"; - sha256 = "1xzaagz6fr9cbq7cj8g7sahx6sxxsc1jyja462caa0gjang9yrhr"; }; - dependencies = [ - "activesupport" - "attr_encrypted" - "devise" - "railties" - "rotp" - ]; + version = "3.7.2"; }; - "diff-lcs" = { - version = "1.2.5"; + ruby2ruby = { + dependencies = ["ruby_parser" "sexp_processor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kmc0503s9mqnjyypx51wsi6zz9zj550ch43rag23wpj4qd6i6pm"; type = "gem"; - sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"; }; + version = "2.2.0"; }; - "diffy" = { - version = "3.0.7"; + ruby-saml = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "151jbak16y87dbj3ma2nc03rh37z7lixcwgaqahncq80rgnv45a8"; type = "gem"; - sha256 = "0il0ri511g9rm88qbvncbzgwc6wk6265hmnf7grcczmrs1z49vl0"; }; + version = "1.1.1"; }; - "docile" = { - version = "1.1.5"; + ruby-progressbar = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hynaavnqzld17qdx9r7hfw00y16ybldwq730zrqfszjwgi59ivi"; type = "gem"; - sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; }; + version = "1.7.5"; }; - "domain_name" = { - version = "0.5.24"; + ruby-fogbugz = { + dependencies = ["crack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm"; type = "gem"; - sha256 = "1xjm5arwc35wryn0hbfldx2pfhwx5qilkv7yms4kz0jri3m6mgcc"; }; - dependencies = [ - "unf" - ]; + version = "0.2.1"; }; - "doorkeeper" = { - version = "2.1.4"; + rubocop = { + dependencies = ["astrolabe" "parser" "powerpack" "rainbow" "ruby-progressbar" "tins"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1grqda2fdknm43zyagh8gcmnhjkypyfw98q92hmvprprwghkq2sg"; type = "gem"; - sha256 = "00akgshmz85kxvf35qsag80qbxzjvmkmksjy96zx44ckianxwahl"; }; - dependencies = [ - "railties" - ]; + version = "0.35.1"; }; - "dropzonejs-rails" = { - version = "0.7.1"; + rspec-support = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cyagig8slxjas8mbg5f8bl240b8zgr8mnjsvrznag1fwpkh4h27"; type = "gem"; - sha256 = "0spfjkji6v98996bc320sx3ar3sflkpbjpzwg6cvbycwfn29fjfy"; }; - dependencies = [ - "rails" - ]; + version = "3.3.0"; }; - "email_reply_parser" = { - version = "0.5.8"; + rspec-rails = { + dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m66n9p3a7d3fmrzkbh8312prb6dhrgmp53g1amck308ranasv2a"; type = "gem"; - sha256 = "0k2p229mv7xn7q627zwmvhrcvba4b9m70pw2jfjm6iimg2vmf22r"; }; + version = "3.3.3"; }; - "email_spec" = { - version = "1.6.0"; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lfbzscmpyixlbapxmhy2s69596vs1z00lv590l51hgdw70z92vg"; type = "gem"; - sha256 = "00p1cc69ncrgg7m45va43pszip8anx5735w1lsb7p5ygkyw8nnpv"; }; - dependencies = [ - "launchy" - "mail" - ]; + version = "3.3.2"; }; - "encryptor" = { - version = "1.3.0"; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d0b5hpkxlr9f3xpsbhvl3irnk4smmycx2xnmc8qv3pqaa7mb7ah"; + type = "gem"; + }; + version = "3.3.1"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw5qi936j6nz9fixi2mwy03f406761cd72bzyvd61pr854d7hy1"; + type = "gem"; + }; + version = "3.3.2"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bn5zs71agc0zyns2r3c8myi5bxw3q7xnzp7f3v5b7hbil1qym4r"; + type = "gem"; + }; + version = "3.3.0"; + }; + rqrcode-rails3 = { + dependencies = ["rqrcode"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg"; type = "gem"; - sha256 = "04wqqda081h7hmhwjjx1yqxprxjk8s5jgv837xqv1bpxiv7f4v1y"; }; + version = "0.1.7"; }; - "enumerize" = { + rqrcode = { + dependencies = ["chunky_png"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb"; + type = "gem"; + }; version = "0.7.0"; + }; + rouge = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz"; type = "gem"; - sha256 = "0rg6bm3xv7p4i5gs4796v8gc49mzakphwv4kdbhn0wjm690h6226"; }; - dependencies = [ - "activesupport" - ]; + version = "1.10.1"; }; - "equalizer" = { - version = "0.0.11"; + rotp = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nzsc9hfxijnyzjbv728ln9dm80bc608chaihjdk63i2wi4m529g"; type = "gem"; - sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; }; + version = "2.1.1"; }; - "erubis" = { - version = "2.7.0"; + rinku = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jh6nys332brph55i6x6cil6swm086kxjw34wq131nl6mwryqp7b"; type = "gem"; - sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; }; + version = "1.7.3"; }; - "escape_utils" = { - version = "0.2.4"; + rest-client = { + dependencies = ["http-cookie" "mime-types" "netrc"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m8z0c4yf6w47iqz6j2p7x1ip4qnnzvhdph9d5fgx081cvjly3p7"; type = "gem"; - sha256 = "0mg5pgaa02w1bxh0166d367f2ll6fizyrs5dsirrcnw4g17ba54g"; }; + version = "1.8.0"; }; - "eventmachine" = { - version = "1.0.8"; + responders = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i00bxp8fa67rzl50wfiaw16w21j5d5gwjjkdiwr0sw9q6ixmpz1"; type = "gem"; - sha256 = "1frvpk3p73xc64qkn0ymll3flvn4xcycq5yx8a43zd3gyzc1ifjp"; }; + version = "2.1.1"; }; - "excon" = { - version = "0.45.4"; + rerun = { + dependencies = ["listen"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0av239bpmy55fdx4qaw9n71aapjy2myr51h5plzjxsyr0fdwn1xq"; type = "gem"; - sha256 = "1shb4g3dhsfkywgjv6123yrvp2c8bvi8hqmq47iqa5lp72sn4b4w"; }; + version = "0.11.0"; }; - "execjs" = { - version = "2.6.0"; + request_store = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "01rxi2hw84y133z0r91jns4aaywd8d83wjq0xgb42iaicf0a90p9"; type = "gem"; - sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw"; }; + version = "1.2.1"; }; - "expression_parser" = { - version = "0.9.0"; + redis-store = { + dependencies = ["redis"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gf462p0wx4hn7m1m8ghs701n6xx0ijzm5cff9xfagd2s6va145m"; type = "gem"; - sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib"; }; + version = "1.1.7"; }; - "factory_girl" = { - version = "4.3.0"; + redis-rails = { + dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0igww7hb58aq74mh50dli3zjg78b54y8nhd0h1h9vz4vgjd4q8m7"; type = "gem"; - sha256 = "13z20a4b7z1c8vbz0qz5ranssdprldwvwlgjmn38x311sfjmp9dz"; }; - dependencies = [ - "activesupport" - ]; + version = "4.0.0"; }; - "factory_girl_rails" = { - version = "4.3.0"; + redis-rack = { + dependencies = ["rack" "redis-store"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y1mxx8gn0krdrpwllv7fqsbvki1qjnb2dz8b4q9gwc326829gk8"; type = "gem"; - sha256 = "1jj0yl6mfildb4g79dwgc1q5pv2pa65k9b1ml43mi8mg62j8mrhz"; }; - dependencies = [ - "factory_girl" - "railties" - ]; + version = "1.5.0"; }; - "faraday" = { - version = "0.8.10"; + redis-namespace = { + dependencies = ["redis"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rp8gfkznfxqzxk9s976k71jnljkh0clkrhnp6vgx46s5yhj9g25"; type = "gem"; - sha256 = "093hrmrx3jn9969q6c9cjms2k73aqwhs03kij378kg1d5izr4r6f"; }; - dependencies = [ - "multipart-post" - ]; + version = "1.5.2"; }; - "faraday_middleware" = { - version = "0.10.0"; + redis-activesupport = { + dependencies = ["activesupport" "redis-store"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "10y3kybz21n2z11478sf0cp4xzclvxf0b428787brmgpc6i7p7zg"; type = "gem"; - sha256 = "0nxia26xzy8i56qfyz1bg8dg9yb26swpgci8n5jry8mh4bnx5r5h"; }; - dependencies = [ - "faraday" - ]; + version = "4.1.5"; }; - "fastercsv" = { - version = "1.5.5"; + redis-actionpack = { + dependencies = ["actionpack" "redis-rack" "redis-store"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jjl6dhhpdapdaywq5iqz7z36mwbw0cn0m30wcc5wcbv7xmiiygw"; type = "gem"; - sha256 = "1df3vfgw5wg0s405z0pj0rfcvnl9q6wak7ka8gn0xqg4cag1k66h"; }; + version = "4.0.1"; }; - "ffaker" = { - version = "2.0.0"; + redis = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0255w9izzs04hw9wivn05yqiwi34w28ylxs0xvpmwc1vrh18fwcl"; type = "gem"; - sha256 = "19fnbbsw87asyb1hvkr870l2yldah2jcjb8074pgyrma5lynwmn0"; }; + version = "3.2.2"; }; - "ffi" = { - version = "1.9.10"; + redcarpet = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "14i3wypp97bpk20679d1csy88q4hsgfqbnqw6mryl77m2g0d09pk"; type = "gem"; - sha256 = "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj"; }; + version = "3.3.3"; }; - "fission" = { - version = "0.5.0"; + recaptcha = { + dependencies = ["json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "190qqklirmi31s6ih7png4h9xmx1p5h2n5fi45z90y8hsp5w1sh1"; type = "gem"; - sha256 = "09pmp1j1rr8r3pcmbn2na2ls7s1j9ijbxj99xi3a8r6v5xhjdjzh"; }; - dependencies = [ - "CFPropertyList" - ]; + version = "1.0.2"; }; - "flowdock" = { - version = "0.7.0"; + rdoc = { + dependencies = ["json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v9k4sp5yzj2bshngckdvivj6bszciskk1nd2r3wri2ygs7vgqm8"; type = "gem"; - sha256 = "0wzqj35mn2x2gcy88y00h3jz57ldkkidkwy63jxvmqdlz759pds5"; }; - dependencies = [ - "httparty" - "multi_json" - ]; + version = "3.12.2"; }; - "fog" = { - version = "1.25.0"; + rblineprof = { + dependencies = ["debugger-ruby_core_source"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6"; type = "gem"; - sha256 = "0zncds3qj5n3i780y6y6sy5h1gg0kwiyiirxyisbd8p0ywwr8bc3"; }; - dependencies = [ - "fog-brightbox" - "fog-core" - "fog-json" - "fog-profitbricks" - "fog-radosgw" - "fog-sakuracloud" - "fog-softlayer" - "fog-terremark" - "fog-vmfusion" - "fog-voxel" - "fog-xml" - "ipaddress" - "nokogiri" - "opennebula" - ]; + version = "0.3.6"; }; - "fog-brightbox" = { - version = "0.9.0"; + rb-inotify = { + dependencies = ["ffi"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9"; type = "gem"; - sha256 = "01a6ydv7y02zbid8s9mqcxpc0k0hig39ap7mrwj9vp6z7mm9dydv"; }; - dependencies = [ - "fog-core" - "fog-json" - "inflecto" - ]; + version = "0.9.5"; }; - "fog-core" = { - version = "1.32.1"; + rb-fsevent = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hq57by28iv0ijz8pk9ynih0xdg7vnl1010xjcijfklrcv89a1j2"; type = "gem"; - sha256 = "0pnm3glgha2hxmhjvgp7f088vzdgv08q8c6w8y9c2cys3b4fx83m"; }; - dependencies = [ - "builder" - "excon" - "formatador" - "mime-types" - "net-scp" - "net-ssh" - ]; + version = "0.9.6"; }; - "fog-json" = { - version = "1.0.2"; + raphael-rails = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sjiaymvfn4al5dr1pza5i142byan0fxnj4rymziyql2bzvdm2bc"; type = "gem"; - sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r"; }; - dependencies = [ - "fog-core" - "multi_json" - ]; + version = "2.1.2"; }; - "fog-profitbricks" = { - version = "0.0.5"; + rake = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b"; type = "gem"; - sha256 = "154sqs2dcmvg21v4m3fj8f09z5i70sq8a485v6rdygsffs8xrycn"; }; - dependencies = [ - "fog-core" - "fog-xml" - "nokogiri" - ]; + version = "10.5.0"; }; - "fog-radosgw" = { - version = "0.0.4"; + raindrops = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hv0xhr762axywr937czi92fs0x3zk7k22vg6f4i7rr8d05sp560"; type = "gem"; - sha256 = "1pxbvmr4dsqx4x2klwnciyhki4r5ryr9y0hi6xmm3n6fdv4ii7k3"; }; - dependencies = [ - "fog-core" - "fog-json" - "fog-xml" - ]; + version = "0.15.0"; }; - "fog-sakuracloud" = { - version = "1.0.1"; + rainbow = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dsnzfjiih2w8npsjab3yx1ssmmvmgjkbxny0i9yzrdy7whfw7b4"; type = "gem"; - sha256 = "1s16b48kh7y03hjv74ccmlfwhqqq7j7m4k6cywrgbyip8n3258n8"; }; - dependencies = [ - "fog-core" - "fog-json" - ]; + version = "2.0.0"; }; - "fog-softlayer" = { - version = "0.4.7"; + railties = { + dependencies = ["actionpack" "activesupport" "rake" "thor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "07vmyrppa1x80whdjxhjij93qh9wvnmnxpsgn6fr9x2lqmzdyq5l"; type = "gem"; - sha256 = "0fgfbhqnyp8ywymvflflhvbns54d1432x57pgpnfy8k1cxvhv9b8"; }; - dependencies = [ - "fog-core" - "fog-json" - ]; + version = "4.2.5.1"; }; - "fog-terremark" = { - version = "0.1.0"; + rails-html-sanitizer = { + dependencies = ["loofah"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "138fd86kv073zqfx0xifm646w6bgw2lr8snk16lknrrfrss8xnm7"; type = "gem"; - sha256 = "01lfkh9jppj0iknlklmwyb7ym3bfhkq58m3absb6rf5a5mcwi3lf"; }; - dependencies = [ - "fog-core" - "fog-xml" - ]; + version = "1.0.3"; }; - "fog-vmfusion" = { - version = "0.1.0"; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v8jl6803mbqpxh4hn0szj081q1a3ap0nb8ni0qswi7z4la844v8"; type = "gem"; - sha256 = "0g0l0k9ylxk1h9pzqr6h2ba98fl47lpp3j19lqv4jxw0iw1rqxn4"; }; - dependencies = [ - "fission" - "fog-core" - ]; + version = "1.0.7"; }; - "fog-voxel" = { - version = "0.1.0"; + rails-deprecated_sanitizer = { + dependencies = ["activesupport"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; type = "gem"; - sha256 = "10skdnj59yf4jpvq769njjrvh2l0wzaa7liva8n78qq003mvmfgx"; }; - dependencies = [ - "fog-core" - "fog-xml" - ]; + version = "1.0.3"; }; - "fog-xml" = { - version = "0.1.2"; + rails = { + dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "03j6hfsqdl0bay59m4qjj2081s4vnhqagpl14qpm4wfrqrgpkcqb"; type = "gem"; - sha256 = "1576sbzza47z48p0k9h1wg3rhgcvcvdd1dfz3xx1cgahwr564fqa"; }; - dependencies = [ - "fog-core" - "nokogiri" - ]; + version = "4.2.5.1"; }; - "font-awesome-rails" = { - version = "4.4.0.0"; + rack-test = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; type = "gem"; - sha256 = "0igrwlkgpggpfdy3f4kzsz22m14rxx5xnvz3if16czqjlkq4kbbx"; }; - dependencies = [ - "railties" - ]; + version = "0.6.3"; }; - "foreman" = { - version = "0.78.0"; + rack-protection = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; type = "gem"; - sha256 = "1caz8mi7gq1hs4l1flcyyw1iw1bdvdbhppsvy12akr01k3s17xaq"; }; - dependencies = [ - "thor" - ]; + version = "1.5.3"; }; - "formatador" = { - version = "0.2.5"; + rack-oauth2 = { + dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1szfnb74p5s7k0glpmiv16rfl4wx9mnrr7riapgpbcx163zzkxad"; type = "gem"; - sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; }; + version = "1.2.1"; }; - "fuubar" = { - version = "2.0.0"; + rack-mount = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "09a1qfaxxsll1kbgz7z0q0nr48sfmfm7akzaviis5bjpa5r00ld2"; type = "gem"; - sha256 = "0xwqs24y8s73aayh39si17kccsmr0bjgmi6jrjyfp7gkjb6iyhpv"; }; - dependencies = [ - "rspec" - "ruby-progressbar" - ]; + version = "0.8.3"; }; - "gemnasium-gitlab-service" = { - version = "0.2.6"; + rack-cors = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sz9d9gjmv2vjl3hddzk269hb1k215k8sp37gicphx82h3chk1kw"; type = "gem"; - sha256 = "1qv7fkahmqkah3770ycrxd0x2ais4z41hb43a0r8q8wcdklns3m3"; }; - dependencies = [ - "rugged" - ]; + version = "0.4.0"; }; - "gemojione" = { - version = "2.0.1"; + rack-attack = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ihic8ar2ddfv15p5gia8nqzsl3y7iayg5v4rmg72jlvikgsabls"; type = "gem"; - sha256 = "0655l0vgs0hbz11s2nlpwwj7df66cxlvv94iz7mhf04qrr5mi26q"; }; - dependencies = [ - "json" - ]; + version = "4.3.1"; }; - "get_process_mem" = { - version = "0.2.0"; + rack-accept = { + dependencies = ["rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"; type = "gem"; - sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29"; }; + version = "0.4.5"; }; - "gherkin-ruby" = { - version = "0.3.2"; + rack = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"; type = "gem"; - sha256 = "18ay7yiibf4sl9n94k7mbi4k5zj2igl4j71qcmkswv69znyx0sn1"; }; + version = "1.6.4"; }; - "github-markup" = { - version = "1.3.3"; + quiet_assets = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4azw4j1xsgd7qwcig110mfdn1fm0y34y87zw9j9v187xr401b1"; type = "gem"; - sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq"; }; + version = "1.0.3"; }; - "gitlab-flowdock-git-hook" = { - version = "1.0.1"; + pyu-ruby-sasl = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; type = "gem"; - sha256 = "1s3a10cdbh4xy732b92zcsm5zyc1lhi5v29d76j8mwbqmj11a2p8"; }; - dependencies = [ - "flowdock" - "gitlab-grit" - "multi_json" - ]; + version = "0.0.3.3"; }; - "gitlab-grit" = { - version = "2.7.3"; + pry-rails = { + dependencies = ["pry"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a2iinvabis2xmv0z7z7jmh7bbkkngxj2qixfdg5m6qj9x8k1kx6"; type = "gem"; - sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b"; }; - dependencies = [ - "charlock_holmes" - "diff-lcs" - "mime-types" - "posix-spawn" - ]; + version = "0.3.4"; }; - "gitlab-linguist" = { - version = "3.0.1"; + pry = { + dependencies = ["coderay" "method_source" "slop"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x78rvp69ws37kwig18a8hr79qn36vh8g1fn75p485y3b3yiqszg"; type = "gem"; - sha256 = "14ydmxmdm7j56nwlcf4ai08mpc7d3mbfhida52p1zljshbvda5ib"; }; - dependencies = [ - "charlock_holmes" - "escape_utils" - "mime-types" - ]; + version = "0.10.3"; }; - "gitlab_emoji" = { + powerpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43"; + type = "gem"; + }; version = "0.1.1"; + }; + posix-spawn = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr"; type = "gem"; - sha256 = "13jj6ah88x8y6cr5c82j78a4mi5g88a7vpqf617zpcdiabmr0gl6"; }; - dependencies = [ - "gemojione" - ]; + version = "0.3.11"; }; - "gitlab_git" = { - version = "7.2.15"; + poltergeist = { + dependencies = ["capybara" "cliver" "multi_json" "websocket-driver"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ppm4isvbxm739508yjhvisq1iwp1q6h8dx4hkndj2krskavz4i9"; type = "gem"; - sha256 = "1afa645sj322sfy4h6hksi78m87qgvslmf8rgzlqsa4b6zf4w4x2"; }; - dependencies = [ - "activesupport" - "charlock_holmes" - "gitlab-linguist" - "rugged" - ]; + version = "1.8.1"; }; - "gitlab_meta" = { - version = "7.0"; + pg = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32"; type = "gem"; - sha256 = "14vahv7gblcypbvip845sg3lvawf3kij61mkxz5vyfcv23niqvp9"; }; + version = "0.18.4"; }; - "gitlab_omniauth-ldap" = { - version = "1.2.1"; + parser = { + dependencies = ["ast"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "14db0gam24j04iprqz4m3hxygkb8h0plnbm0yk4k3lzq6j5wzcac"; type = "gem"; - sha256 = "1vbdyi57vvlrigyfhmqrnkw801x57fwa3gxvj1rj2bn9ig5186ri"; }; - dependencies = [ - "net-ldap" - "omniauth" - "pyu-ruby-sasl" - "rubyntlm" - ]; + version = "2.2.3.0"; }; - "gollum-grit_adapter" = { - version = "1.0.0"; + paranoia = { + dependencies = ["activerecord"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z2smnnghjhcs4l5fkz9scs1kj0bvj2n8xmzcvw4rg9yprdnlxr0"; type = "gem"; - sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7"; }; - dependencies = [ - "gitlab-grit" - ]; + version = "2.1.4"; }; - "gollum-lib" = { - version = "4.0.3"; + orm_adapter = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; type = "gem"; - sha256 = "1f8jzxza1ckpyzyk137rqd212vfk2ac2mn1pp1wi880s4ynahyky"; }; - dependencies = [ - "github-markup" - "gollum-grit_adapter" - "nokogiri" - "rouge" - "sanitize" - "stringex" - ]; + version = "0.5.0"; }; - "gon" = { - version = "5.0.4"; + org-ruby = { + dependencies = ["rubypants"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk"; type = "gem"; - sha256 = "0gdl6zhj5k8ma3mwm00kjfa12w0l6br9kyyxvfj90cw9irfi049r"; }; - dependencies = [ - "actionpack" - "json" - ]; + version = "0.9.12"; }; - "grape" = { - version = "0.6.1"; + omniauth_crowd = { + dependencies = ["activesupport" "nokogiri" "omniauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7"; type = "gem"; - sha256 = "1sjlk0pmgqbb3piz8yb0xjcm7liimrr17y5xflm40amv36pg2gz8"; }; - dependencies = [ - "activesupport" - "builder" - "hashie" - "multi_json" - "multi_xml" - "rack" - "rack-accept" - "rack-mount" - "virtus" - ]; + version = "2.2.3"; }; - "grape-entity" = { - version = "0.4.8"; + omniauth-twitter = { + dependencies = ["json" "omniauth-oauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hqjpb1zx0pp3s12c83pkpk4kkx41f001jc5n8qz0h3wll0ld833"; type = "gem"; - sha256 = "0hxghs2p9ncvdwhp6dwr1a74g552c49dd0jzy0szp4pg2xjbgjk8"; }; - dependencies = [ - "activesupport" - "multi_json" - ]; + version = "1.2.1"; }; - "growl" = { - version = "1.0.3"; + omniauth-shibboleth = { + dependencies = ["omniauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pwy23aybxhn545357zdjy0hnpfgldwqk5snmz9kxingpq12jl"; type = "gem"; - sha256 = "0s0y7maljnalpbv2q1j5j5hvb4wcc31y9af0n7x1q2l0fzxgc9n9"; }; + version = "1.2.1"; }; - "guard" = { - version = "2.13.0"; + omniauth-saml = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c7pypskq9y6wbl7c8gnp48j256snph11br3csgwvy9whjfisx65"; type = "gem"; - sha256 = "0p3ndfmi6sdw55c7j19pyb2ymlby1vyxlp0k47366im1vi70b7gf"; }; - dependencies = [ - "formatador" - "listen" - "lumberjack" - "nenv" - "notiffany" - "pry" - "shellany" - "thor" - ]; + version = "1.4.2"; }; - "guard-rspec" = { - version = "4.2.10"; + omniauth-oauth2 = { + dependencies = ["oauth2" "omniauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mskwlw5ibx9mz7ywqji6mm56ikf7mglbnfc02qhg6ry527jsxdm"; type = "gem"; - sha256 = "1mm03i1knmhmdqs4ni03nda7jy3s34c2nxf5sjq1cmywk9c0bn0r"; }; - dependencies = [ - "guard" - "rspec" - ]; + version = "1.3.1"; }; - "haml" = { - version = "4.0.7"; + omniauth-oauth = { + dependencies = ["oauth" "omniauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037"; type = "gem"; - sha256 = "0mrzjgkygvfii66bbylj2j93na8i89998yi01fin3whwqbvx0m1p"; }; - dependencies = [ - "tilt" - ]; + version = "1.1.0"; }; - "haml-rails" = { - version = "0.5.3"; + omniauth-multipassword = { + dependencies = ["omniauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8"; type = "gem"; - sha256 = "0fg4dh1gb7f4h2571wm5qxli02mgg3r8ikp5vwkww12a431vk625"; }; - dependencies = [ - "actionpack" - "activesupport" - "haml" - "railties" - ]; + version = "0.4.2"; }; - "hashie" = { - version = "2.1.2"; + omniauth-kerberos = { + dependencies = ["omniauth-multipassword" "timfel-krb5-auth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7"; type = "gem"; - sha256 = "08w9ask37zh5w989b6igair3zf8gwllyzix97rlabxglif9f9qd9"; }; + version = "0.3.0"; + }; + omniauth-google-oauth2 = { + dependencies = ["addressable" "jwt" "multi_json" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lm4fk6ig9vwzv7398qd861325g678sfr1iv2mm60xswl69964fi"; + type = "gem"; + }; + version = "0.2.10"; + }; + omniauth-gitlab = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "083yyc8612kq8ygd8y7s8lxg2d51jcsakbs4pa19aww67gcm72iz"; + type = "gem"; + }; + version = "1.0.1"; }; - "highline" = { - version = "1.6.21"; + omniauth-github = { + dependencies = ["omniauth" "omniauth-oauth2"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mbx3c8m1llhdxrqdciq8jh428bxj1nvf4yhziv2xqmqpjcqz617"; type = "gem"; - sha256 = "06bml1fjsnrhd956wqq5k3w8cyd09rv1vixdpa3zzkl6xs72jdn1"; }; + version = "1.1.2"; }; - "hike" = { - version = "1.2.3"; + omniauth-facebook = { + dependencies = ["omniauth-oauth2"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0plj56sna4b6c71k03jsng6gq3r5yxhj7h26ndahc9caasgk869c"; type = "gem"; - sha256 = "0i6c9hrszzg3gn2j41v3ijnwcm8cc2931fnjiv6mnpl4jcjjykhm"; }; + version = "3.0.0"; }; - "hipchat" = { - version = "1.5.2"; + omniauth-cas3 = { + dependencies = ["addressable" "nokogiri" "omniauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "13swm2hi2z63nvb2bps6g41kki8kr9b5c7014rk8259bxlpflrk7"; type = "gem"; - sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k"; }; - dependencies = [ - "httparty" - "mimemagic" - ]; + version = "1.1.3"; }; - "hitimes" = { - version = "1.2.3"; + omniauth-bitbucket = { + dependencies = ["multi_json" "omniauth" "omniauth-oauth"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lals2z1yixffrc97zh7zn1jpz9l6vpb3alcp13im42dq9q0g845"; type = "gem"; - sha256 = "1fr9raz7652bnnx09dllyjdlnwdxsnl0ig5hq9s4s8vackvmckv4"; }; + version = "0.0.2"; }; - "html-pipeline" = { - version = "1.11.0"; + omniauth-azure-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qay454zvyas8xfnfkycqpjkafaq5pw4gaji176cdfw0blhviz0s"; type = "gem"; - sha256 = "1yckdlrn4v5d7bgl8mbffax16640pgg9ny693kqi4j7g17vx2q9l"; }; - dependencies = [ - "activesupport" - "nokogiri" - ]; + version = "0.0.6"; }; - "http-cookie" = { - version = "1.0.2"; + omniauth = { + version = "1.3.1"; source = { type = "gem"; - sha256 = "0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw"; + remotes = ["https://rubygems.org"]; + sha256 = "0vsqxgzkcfi10b7k6vpv3shmlphbs8grc29hznwl9s0i16n8962p"; }; - dependencies = [ - "domain_name" - ]; }; - "http_parser.rb" = { - version = "0.5.3"; + octokit = { + version = "3.8.0"; source = { type = "gem"; - sha256 = "0fwf5d573j1sw52kz057dw0nx2wlivczmx6ybf6mk065n5g54kyn"; + remotes = ["https://rubygems.org"]; + sha256 = "0vmknh0vz1g734q32kgpxv0qwz9ifmnw2jfpd2w5rrk6xwq1k7a8"; }; }; - "httparty" = { - version = "0.13.5"; + oauth2 = { + dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zaa7qnvizv363apmxx9vxa8f6c6xy70z0jm0ydx38xvhxr8898r"; type = "gem"; - sha256 = "1m93fbpwydzzwhc2zf2qkj6lrbcabpy7xhx7wb2mnbmgh0fs7ff9"; }; - dependencies = [ - "json" - "multi_xml" - ]; + version = "1.0.0"; }; - "httpclient" = { - version = "2.6.0.1"; + oauth = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k5j09p3al3clpjl6lax62qmhy43f3j3g7i6f9l4dbs6r5vpv95w"; type = "gem"; - sha256 = "0haz4s9xnzr73mkfpgabspj43bhfm9znmpmgdk74n6gih1xlrx1l"; }; + version = "0.4.7"; }; - "i18n" = { - version = "0.7.0"; + nprogress-rails = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ylq2208i95661ba0p1ng2i38z4978ddwiidvpb614amfdq5pqvn"; type = "gem"; - sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"; }; + version = "0.1.6.7"; }; - "ice_cube" = { - version = "0.11.1"; + nokogiri = { + dependencies = ["mini_portile2"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv"; type = "gem"; - sha256 = "12y23nczfrgslpfqam90076x603xhlpv3fyh8mv49gks4qn2wk20"; }; + version = "1.6.7.2"; }; - "ice_nine" = { - version = "0.11.1"; + netrc = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; type = "gem"; - sha256 = "0i674zq0hl6rd0wcd12ni38linfja4k0y3mk5barjb4a6f7rcmkd"; }; + version = "0.11.0"; }; - "inflecto" = { - version = "0.0.2"; + net-ssh = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dzqkgwi9xm6mbfk1rkk17rzmz8m5xakqi21w1b97ybng6kkw0hf"; type = "gem"; - sha256 = "085l5axmvqw59mw5jg454a3m3gr67ckq9405a075isdsn7bm3sp4"; }; + version = "3.0.1"; }; - "ipaddress" = { - version = "0.8.0"; + net-ldap = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z1j0zklbbx3vi91zcd2v0fnkfgkvq3plisa6hxaid8sqndyak46"; type = "gem"; - sha256 = "0cwy4pyd9nl2y2apazp3hvi12gccj5a3ify8mi8k3knvxi5wk2ir"; }; + version = "0.12.1"; }; - "jquery-atwho-rails" = { - version = "1.0.1"; + nested_form = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f053j4zfagxyym28msxj56hrpvmyv4lzxy2c5c270f7xbbnii5i"; type = "gem"; - sha256 = "0fdy4dxfvnzrjbfm45yrnwfczszvnd7psqhnkby0j3qjg8k9xhzw"; }; + version = "0.3.2"; }; - "jquery-rails" = { - version = "3.1.3"; + mysql2 = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n075x14n9kziv0qdxqlzhf3j1abi1w6smpakfpsg4jbr8hnn5ip"; type = "gem"; - sha256 = "1n07rj1x7l61wygbjdpknv5nxhbg2iybfgkpdgca2kj6c1nb1d87"; }; - dependencies = [ - "railties" - "thor" - ]; + version = "0.3.20"; }; - "jquery-scrollto-rails" = { - version = "1.4.3"; + multipart-post = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; type = "gem"; - sha256 = "12ic0zxw60ryglm1qjq5ralqd6k4jawmjj7kqnp1nkqds2nvinvp"; }; - dependencies = [ - "railties" - ]; + version = "2.0.0"; }; - "jquery-turbolinks" = { - version = "2.0.2"; + multi_xml = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i8r7dsz4z79z3j023l8swan7qpbgxbwwz11g38y2vjqjk16v4q8"; type = "gem"; - sha256 = "1plip56znrkq3na5bjys5q2zvlbyj8p8i29kaayzfpi2c4ixxaq3"; }; - dependencies = [ - "railties" - "turbolinks" - ]; + version = "0.5.5"; }; - "jquery-ui-rails" = { - version = "4.2.1"; + multi_json = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rf3l4j3i11lybqzgq2jhszq7fh7gpmafjzd14ymp9cjfxqg596r"; type = "gem"; - sha256 = "1garrnqwh35acj2pp4sp6fpm2g881h23y644lzbic2qmcrq9wd2v"; }; - dependencies = [ - "railties" - ]; + version = "1.11.2"; }; - "json" = { - version = "1.8.3"; + mousetrap-rails = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "00n13r5pwrk4vq018128vcfh021dw0fa2bk4pzsv0fslfm8ayp2m"; type = "gem"; - sha256 = "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"; }; + version = "1.4.6"; }; - "jwt" = { - version = "1.5.1"; + minitest = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"; type = "gem"; - sha256 = "13b5ccknrmxnb6dk7vlmnb05za1xxyqd8dzb6lpqq503wpfrmlyk"; }; + version = "5.7.0"; }; - "kaminari" = { - version = "0.15.1"; + mini_portile2 = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l"; type = "gem"; - sha256 = "1m67ghp55hr16k1njhd00f225qys67n60qa3jz69kzqvrp6qg33d"; }; - dependencies = [ - "actionpack" - "activesupport" - ]; + version = "2.0.0"; }; - "kgio" = { - version = "2.9.3"; + mimemagic = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "101lq4bnjs7ywdcicpw3vbz9amg5gbb4va1626fybd2hawgdx8d9"; type = "gem"; - sha256 = "07gl0drxwckj7kbq5nla2lf81lrrrvirvvdcrykjgivysfg6yp5v"; }; + version = "0.3.0"; }; - "launchy" = { - version = "2.4.3"; + mime-types = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8"; type = "gem"; - sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; }; - dependencies = [ - "addressable" - ]; + version = "1.25.1"; }; - "letter_opener" = { - version = "1.1.2"; + method_source = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"; type = "gem"; - sha256 = "1kzbmc686hfh4jznyckq6g40kn14nhb71znsjjm0rc13nb3n0c5l"; }; - dependencies = [ - "launchy" - ]; + version = "0.8.2"; }; - "listen" = { - version = "2.10.1"; + mail_room = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jpybhgw9yi50g422qvnwadn5jnj563vh70qaml5cxzdqxbd7fj1"; type = "gem"; - sha256 = "1ipainbx21ni7xakdbksxjim6nixvzfjkifb2d3v45a50dp3diqg"; }; - dependencies = [ - "celluloid" - "rb-fsevent" - "rb-inotify" - ]; + version = "0.6.1"; }; - "lumberjack" = { - version = "1.0.9"; + mail = { + dependencies = ["mime-types"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nbg60h3cpnys45h7zydxwrl200p7ksvmrbxnwwbpaaf9vnf3znp"; type = "gem"; - sha256 = "162frm2bwy58pj8ccsdqa4a6i0csrhb9h5l3inhkl1ivgfc8814l"; }; + version = "2.6.3"; }; - "macaddr" = { - version = "1.7.1"; + macaddr = { + dependencies = ["systemu"]; source = { - type = "gem"; + remotes = ["https://rubygems.org"]; sha256 = "1clii8mvhmh5lmnm95ljnjygyiyhdpja85c5vy487rhxn52scn0b"; + type = "gem"; }; - dependencies = [ - "systemu" - ]; + version = "1.7.1"; }; - "mail" = { - version = "2.6.3"; + loofah = { + dependencies = ["nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "109ps521p0sr3kgc460d58b4pr1z4mqggan2jbsf0aajy9s6xis8"; type = "gem"; - sha256 = "1nbg60h3cpnys45h7zydxwrl200p7ksvmrbxnwwbpaaf9vnf3znp"; }; - dependencies = [ - "mime-types" - ]; + version = "2.0.3"; }; - "mail_room" = { - version = "0.5.2"; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "182wd2pkf690ll19lx6zbk01a3rqkk5lwsyin6kwydl7lqxj5z3g"; type = "gem"; - sha256 = "1l8ncfwqiiv3nd7i0237xd5ymshgyfxfv4w2bj0lj67ys3l4qwh3"; }; + version = "3.0.5"; }; - "method_source" = { - version = "0.8.2"; + letter_opener = { + dependencies = ["launchy"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kzbmc686hfh4jznyckq6g40kn14nhb71znsjjm0rc13nb3n0c5l"; type = "gem"; - sha256 = "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"; }; + version = "1.1.2"; }; - "mime-types" = { - version = "1.25.1"; + launchy = { + dependencies = ["addressable"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; type = "gem"; - sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8"; }; + version = "2.4.3"; }; - "mimemagic" = { - version = "0.3.0"; + kgio = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118"; type = "gem"; - sha256 = "101lq4bnjs7ywdcicpw3vbz9amg5gbb4va1626fybd2hawgdx8d9"; }; + version = "2.10.0"; }; - "mini_portile" = { - version = "0.6.2"; + kaminari = { + dependencies = ["actionpack" "activesupport"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "14vx3kgssl4lv2kn6grr5v2whsynx5rbl1j9aqiq8nc3d7j74l67"; type = "gem"; - sha256 = "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"; }; + version = "0.16.3"; }; - "minitest" = { - version = "5.7.0"; + jwt = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0is8973si98rsry5igqdag2jb1knj6jhmfkr9r4mc5n0yvgr5n2q"; type = "gem"; - sha256 = "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"; }; + version = "1.5.2"; }; - "mousetrap-rails" = { - version = "1.4.6"; + json = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"; type = "gem"; - sha256 = "00n13r5pwrk4vq018128vcfh021dw0fa2bk4pzsv0fslfm8ayp2m"; }; + version = "1.8.3"; }; - "multi_json" = { - version = "1.11.2"; + jquery-ui-rails = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gfygrv4bjpjd2c377lw7xzk1b77rxjyy3w6wl4bq1gkqvyrkx77"; type = "gem"; - sha256 = "1rf3l4j3i11lybqzgq2jhszq7fh7gpmafjzd14ymp9cjfxqg596r"; }; + version = "5.0.5"; }; - "multi_xml" = { - version = "0.5.5"; + jquery-turbolinks = { + dependencies = ["railties" "turbolinks"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d23mnl3lgamk9ziw4yyv2ixck6d8s8xp4f9pmwimk0by0jq7xhc"; type = "gem"; - sha256 = "0i8r7dsz4z79z3j023l8swan7qpbgxbwwz11g38y2vjqjk16v4q8"; }; + version = "2.1.0"; }; - "multipart-post" = { - version = "1.2.0"; + jquery-scrollto-rails = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "12ic0zxw60ryglm1qjq5ralqd6k4jawmjj7kqnp1nkqds2nvinvp"; type = "gem"; - sha256 = "12p7lnmc52di1r4h73h6xrpppplzyyhani9p7wm8l4kgf1hnmwnc"; }; + version = "1.4.3"; }; - "mysql2" = { - version = "0.3.20"; + jquery-rails = { + dependencies = ["rails-dom-testing" "railties" "thor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "028dv2n0r2r8qj1bqcbzmih0hwzh5km6cvscn2808v5gd44z48r1"; type = "gem"; - sha256 = "0n075x14n9kziv0qdxqlzhf3j1abi1w6smpakfpsg4jbr8hnn5ip"; }; + version = "4.0.5"; }; - "nenv" = { - version = "0.2.0"; + jquery-atwho-rails = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9"; type = "gem"; - sha256 = "152wxwri0afwgnxdf93gi6wjl9rr5z7vwp8ln0gpa3rddbfc27s6"; }; + version = "1.3.2"; }; - "nested_form" = { - version = "0.3.2"; + ipaddress = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sl0ldvhd6j0qbwhz18w24qy65mdj448b2vhgh2cwn7xrkksmv9l"; type = "gem"; - sha256 = "0f053j4zfagxyym28msxj56hrpvmyv4lzxy2c5c270f7xbbnii5i"; }; + version = "0.8.2"; }; - "net-ldap" = { - version = "0.11"; + influxdb = { + dependencies = ["cause" "json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w"; type = "gem"; - sha256 = "1xfq94lmc5mcc5giipxn9bmrsm9ny1xc1rp0xpm2pgqwr2q8fm7w"; }; + version = "0.2.3"; }; - "net-scp" = { - version = "1.2.1"; + inflecto = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "085l5axmvqw59mw5jg454a3m3gr67ckq9405a075isdsn7bm3sp4"; type = "gem"; - sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j"; }; - dependencies = [ - "net-ssh" - ]; + version = "0.0.2"; }; - "net-ssh" = { - version = "2.9.2"; + ice_nine = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i674zq0hl6rd0wcd12ni38linfja4k0y3mk5barjb4a6f7rcmkd"; type = "gem"; - sha256 = "1p0bj41zrmw5lhnxlm1pqb55zfz9y4p9fkrr9a79nrdmzrk1ph8r"; }; + version = "0.11.1"; }; - "netrc" = { - version = "0.10.3"; + i18n = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"; type = "gem"; - sha256 = "1r6cmg1nvxspl24yrqn77vx7xjqigpypialblpcv5qj6xmc4b8lg"; }; + version = "0.7.0"; }; - "newrelic-grape" = { - version = "2.0.0"; + httpclient = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k6bqsaqq6c824vrbfb5pkz8bpk565zikd10w85rzj2dy809ik6c"; type = "gem"; - sha256 = "1j8cdlc8lvbh2c2drdq0kfrjbw9bkgqx3qiiizzaxv6yj70vq58a"; }; - dependencies = [ - "grape" - "newrelic_rpm" - ]; + version = "2.7.0.1"; }; - "newrelic_rpm" = { - version = "3.9.4.245"; + httparty = { + dependencies = ["json" "multi_xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2"; type = "gem"; - sha256 = "0r1x16wwmiqsf1gj2a1lgc0fq1v0x4yv40k5wgb00gs439vgzyin"; }; + version = "0.13.7"; }; - "nokogiri" = { - version = "1.6.6.2"; + "http_parser.rb" = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fwf5d573j1sw52kz057dw0nx2wlivczmx6ybf6mk065n5g54kyn"; type = "gem"; - sha256 = "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"; }; - dependencies = [ - "mini_portile" - ]; + version = "0.5.3"; }; - "notiffany" = { - version = "0.0.7"; + http-cookie = { + dependencies = ["domain_name"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw"; type = "gem"; - sha256 = "1v5x1w59qq85r6dpv3y9ga34dfd7hka1qxyiykaw7gm0i6kggbhi"; }; - dependencies = [ - "nenv" - "shellany" - ]; + version = "1.0.2"; }; - "nprogress-rails" = { - version = "0.1.2.3"; + html2haml = { + dependencies = ["erubis" "haml" "nokogiri" "ruby_parser"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "069zcy8lr010hn4qmbi8g5srdf69brk8nbgx4zcqcgbgsl4m8d4i"; type = "gem"; - sha256 = "16gqajynqzfvzcyc8b9bjn8xf6j7y80li00ajicxwvb6my2ag304"; }; + version = "2.0.0"; }; - "oauth" = { - version = "0.4.7"; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yckdlrn4v5d7bgl8mbffax16640pgg9ny693kqi4j7g17vx2q9l"; type = "gem"; - sha256 = "1k5j09p3al3clpjl6lax62qmhy43f3j3g7i6f9l4dbs6r5vpv95w"; }; + version = "1.11.0"; }; - "oauth2" = { - version = "1.0.0"; + hipchat = { + dependencies = ["httparty" "mimemagic"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k"; type = "gem"; - sha256 = "0zaa7qnvizv363apmxx9vxa8f6c6xy70z0jm0ydx38xvhxr8898r"; }; - dependencies = [ - "faraday" - "jwt" - "multi_json" - "multi_xml" - "rack" - ]; + version = "1.5.2"; }; - "octokit" = { - version = "3.7.1"; + hike = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i6c9hrszzg3gn2j41v3ijnwcm8cc2931fnjiv6mnpl4jcjjykhm"; type = "gem"; - sha256 = "1sd6cammv5m96640vdb8yp3kfpzn52s8y7d77dgsfb25bc1jg4xl"; }; - dependencies = [ - "sawyer" - ]; + version = "1.2.3"; }; - "omniauth" = { - version = "1.2.2"; + highline = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr"; type = "gem"; - sha256 = "1f0hd9ngfb6f8wz8h2r5n8lr99jqjaghn0h2mljdc6fw031ap7lk"; }; - dependencies = [ - "hashie" - "rack" - ]; + version = "1.7.8"; }; - "omniauth-bitbucket" = { - version = "0.0.2"; + hashie = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iv5hd0zcryprx9lbcm615r3afc0d6rhc27clywmhhgpx68k8899"; type = "gem"; - sha256 = "1lals2z1yixffrc97zh7zn1jpz9l6vpb3alcp13im42dq9q0g845"; }; - dependencies = [ - "multi_json" - "omniauth" - "omniauth-oauth" - ]; + version = "3.4.3"; }; - "omniauth-github" = { - version = "1.1.2"; + haml-rails = { + dependencies = ["actionpack" "activesupport" "haml" "html2haml" "railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hbfznkxab663hxp1v6gpsa7sv6w1fnw9r8b3flixwylnwh3c5dz"; type = "gem"; - sha256 = "1mbx3c8m1llhdxrqdciq8jh428bxj1nvf4yhziv2xqmqpjcqz617"; }; - dependencies = [ - "omniauth" - "omniauth-oauth2" - ]; + version = "0.9.0"; }; - "omniauth-gitlab" = { - version = "1.0.0"; + haml = { + dependencies = ["tilt"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mrzjgkygvfii66bbylj2j93na8i89998yi01fin3whwqbvx0m1p"; type = "gem"; - sha256 = "1amg3y0ivfakamfwiljgla1vff59b116nd0i6khmaj4jsa4s81hw"; }; - dependencies = [ - "omniauth" - "omniauth-oauth2" - ]; + version = "4.0.7"; }; - "omniauth-google-oauth2" = { - version = "0.2.6"; + grape-entity = { + dependencies = ["activesupport" "multi_json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hxghs2p9ncvdwhp6dwr1a74g552c49dd0jzy0szp4pg2xjbgjk8"; type = "gem"; - sha256 = "1nba1iy6w2wj79pvnp9r5bw7jhks0287lw748vkxl9xmwccldnhj"; }; - dependencies = [ - "omniauth" - "omniauth-oauth2" - ]; + version = "0.4.8"; }; - "omniauth-kerberos" = { - version = "0.2.0"; + grape = { + dependencies = ["activesupport" "builder" "hashie" "multi_json" "multi_xml" "rack" "rack-accept" "rack-mount" "virtus"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dxfal5jspxq612jjkqbd7xgp5dswdyllbbfq6fj2m7s21pismmh"; type = "gem"; - sha256 = "1s626nxzq8i6gy67pkh04h8hlmmx4vwpc36sbdsgm1xwyj3hrn1b"; }; - dependencies = [ - "omniauth-multipassword" - "timfel-krb5-auth" - ]; + version = "0.13.0"; }; - "omniauth-multipassword" = { - version = "0.4.2"; + gon = { + dependencies = ["actionpack" "json" "multi_json" "request_store"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f359cd9zsa4nrng35bij5skvjrj5ywn2dhmlg41b97vmza26bxr"; type = "gem"; - sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8"; }; - dependencies = [ - "omniauth" - ]; + version = "6.0.1"; }; - "omniauth-oauth" = { - version = "1.1.0"; + gollum-lib = { + dependencies = ["github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "01s8pgzhc3cgcmsy6hh79wrcbn5vbadniq2a7d4qw87kpq7mzfdm"; type = "gem"; - sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037"; }; - dependencies = [ - "oauth" - "omniauth" - ]; + version = "4.1.0"; }; - "omniauth-oauth2" = { - version = "1.3.1"; + gollum-grit_adapter = { + dependencies = ["gitlab-grit"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7"; type = "gem"; - sha256 = "0mskwlw5ibx9mz7ywqji6mm56ikf7mglbnfc02qhg6ry527jsxdm"; }; - dependencies = [ - "oauth2" - "omniauth" - ]; + version = "1.0.0"; }; - "omniauth-saml" = { - version = "1.4.1"; + globalid = { + dependencies = ["activesupport"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "145xrpsfx1qqjy33r6qa588wb16dvdhxzj2aysh755vhg6hgm291"; type = "gem"; - sha256 = "12jkjdrkc3k2k1y53vfxyicdq2j0djhln6apwzmc10h9jhq23nrq"; }; - dependencies = [ - "omniauth" - "ruby-saml" - ]; + version = "0.3.6"; }; - "omniauth-shibboleth" = { - version = "1.1.2"; + gitlab_omniauth-ldap = { + dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vbdyi57vvlrigyfhmqrnkw801x57fwa3gxvj1rj2bn9ig5186ri"; type = "gem"; - sha256 = "0wy24hwsipjx8iswdbrncgv15qxv7ibg07rv2n6byi037mrnhnhw"; }; - dependencies = [ - "omniauth" - ]; + version = "1.2.1"; }; - "omniauth-twitter" = { - version = "1.0.1"; + gitlab_meta = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "14vahv7gblcypbvip845sg3lvawf3kij61mkxz5vyfcv23niqvp9"; type = "gem"; - sha256 = "060gnfc9im786llgi7vlrfhar1b7jlk19bjjc5d50lwrah0hh4fd"; }; - dependencies = [ - "multi_json" - "omniauth-oauth" - ]; + version = "7.0"; }; - "omniauth_crowd" = { - version = "2.2.3"; + gitlab_git = { + version = "8.2.0"; source = { type = "gem"; - sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7"; + remotes = ["https://rubygems.org"]; + sha256 = "0311dl4vh6h7k8xarmpr61fndrhbmfskzjzkkj1rr8321gn8znfv"; }; - dependencies = [ - "activesupport" - "nokogiri" - "omniauth" - ]; }; - "opennebula" = { - version = "4.12.1"; + gitlab_emoji = { + version = "0.3.1"; source = { type = "gem"; - sha256 = "1y2k706mcxf69cviy415icnhdz7ll5nld9iksqdg4asp60gybq3k"; + remotes = ["https://rubygems.org"]; + sha256 = "1dy746icdmyc548mb5xkavvkn37pk7vv3gznx0p6hff325pan8dj"; }; - dependencies = [ - "json" - "nokogiri" - "rbvmomi" - ]; }; - "org-ruby" = { - version = "0.9.12"; + gitlab-grit = { + dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b"; type = "gem"; - sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk"; }; - dependencies = [ - "rubypants" - ]; + version = "2.7.3"; }; - "orm_adapter" = { - version = "0.5.0"; + gitlab-flowdock-git-hook = { + dependencies = ["flowdock" "gitlab-grit" "multi_json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s3a10cdbh4xy732b92zcsm5zyc1lhi5v29d76j8mwbqmj11a2p8"; type = "gem"; - sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; }; + version = "1.0.1"; }; - "paranoia" = { - version = "2.1.3"; + github-markup = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq"; type = "gem"; - sha256 = "1v6izkdf8npwcblzn9zl9ysagih75584d8hpjzhiv0ijz6cw3l92"; }; - dependencies = [ - "activerecord" - ]; + version = "1.3.3"; }; - "parser" = { - version = "2.2.2.6"; + github-linguist = { + version = "4.7.5"; source = { type = "gem"; - sha256 = "0rmh4yr5qh87wqgwzbs6vy8wyf248k09m2vfjf9br6jdb5zgj5hh"; + remotes = ["https://rubygems.org"]; + sha256 = "1xxm2lbabkc1xmx2myv56a4fkw3wwg9n8w2bzwrl4s33kf6x62ag"; }; - dependencies = [ - "ast" - ]; }; - "pg" = { - version = "0.18.2"; + gherkin-ruby = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "18ay7yiibf4sl9n94k7mbi4k5zj2igl4j71qcmkswv69znyx0sn1"; type = "gem"; - sha256 = "1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf"; }; + version = "0.3.2"; }; - "poltergeist" = { - version = "1.6.0"; + get_process_mem = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29"; type = "gem"; - sha256 = "0mpy2yhn0bhm2s78h8wy22j6378vvsdkj5pcvhr2zfhdjf46g41d"; }; - dependencies = [ - "capybara" - "cliver" - "multi_json" - "websocket-driver" - ]; + version = "0.2.0"; }; - "posix-spawn" = { - version = "0.3.11"; + gemojione = { + version = "2.2.1"; source = { type = "gem"; - sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr"; + remotes = ["https://rubygems.org"]; + sha256 = "0av60lajn64z1csmkzfaf5wvpd3x48lcshiknkqr8m0zx3sg7w3h"; }; }; - "powerpack" = { - version = "0.0.9"; + gemnasium-gitlab-service = { + dependencies = ["rugged"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qv7fkahmqkah3770ycrxd0x2ais4z41hb43a0r8q8wcdklns3m3"; type = "gem"; - sha256 = "0gflp6d2dc4jz3kgg8v4pdzm3qr2bbdygr83dbsi69pxm2gy5536"; }; + version = "0.2.6"; }; - "pry" = { - version = "0.10.1"; + fuubar = { + dependencies = ["rspec" "ruby-progressbar"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xwqs24y8s73aayh39si17kccsmr0bjgmi6jrjyfp7gkjb6iyhpv"; type = "gem"; - sha256 = "1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z"; }; - dependencies = [ - "coderay" - "method_source" - "slop" - ]; + version = "2.0.0"; }; - "pry-rails" = { - version = "0.3.4"; + formatador = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; type = "gem"; - sha256 = "0a2iinvabis2xmv0z7z7jmh7bbkkngxj2qixfdg5m6qj9x8k1kx6"; }; - dependencies = [ - "pry" - ]; + version = "0.2.5"; }; - "pyu-ruby-sasl" = { - version = "0.0.3.3"; + foreman = { + dependencies = ["thor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1caz8mi7gq1hs4l1flcyyw1iw1bdvdbhppsvy12akr01k3s17xaq"; type = "gem"; - sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; }; + version = "0.78.0"; }; - "quiet_assets" = { - version = "1.0.3"; + font-awesome-rails = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "09x1bg98sp2v1lsg9h2bal915q811xq84h9d74p1f3378ga63c1x"; type = "gem"; - sha256 = "1q4azw4j1xsgd7qwcig110mfdn1fm0y34y87zw9j9v187xr401b1"; }; - dependencies = [ - "railties" - ]; + version = "4.5.0.0"; }; - "rack" = { - version = "1.5.5"; + fog-xml = { + dependencies = ["fog-core" "nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1576sbzza47z48p0k9h1wg3rhgcvcvdd1dfz3xx1cgahwr564fqa"; type = "gem"; - sha256 = "1ds3gh8m5gy0d2k4g12k67qid7magg1ia186872yq22ham7sgr2a"; }; + version = "0.1.2"; }; - "rack-accept" = { - version = "0.4.5"; + fog-xenserver = { + dependencies = ["fog-core" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ngw8hh8ljk7wi0cp8n4b4jcy2acx0yqzjk7851m3mp0kji5dlgl"; type = "gem"; - sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"; }; - dependencies = [ - "rack" - ]; + version = "0.2.2"; }; - "rack-attack" = { - version = "4.3.0"; + fog-voxel = { + dependencies = ["fog-core" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "10skdnj59yf4jpvq769njjrvh2l0wzaa7liva8n78qq003mvmfgx"; type = "gem"; - sha256 = "06v5xvp33aysf8hkl9lwl1yjkc82jdlvcm2361y7ckjgykf8ixfr"; }; - dependencies = [ - "rack" - ]; + version = "0.1.0"; }; - "rack-cors" = { - version = "0.2.9"; + fog-vmfusion = { + dependencies = ["fission" "fog-core"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g0l0k9ylxk1h9pzqr6h2ba98fl47lpp3j19lqv4jxw0iw1rqxn4"; type = "gem"; - sha256 = "0z88pbbasr86z6h0965cny0gvrnj7zwv31s506xbpivk4vd6n9as"; }; + version = "0.1.0"; }; - "rack-mini-profiler" = { - version = "0.9.7"; + fog-terremark = { + dependencies = ["fog-core" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "01lfkh9jppj0iknlklmwyb7ym3bfhkq58m3absb6rf5a5mcwi3lf"; type = "gem"; - sha256 = "03lz6x1s8rbrccfsxl2rq677zqkmkvzv7whbmwzdp71zzyvvm14j"; }; - dependencies = [ - "rack" - ]; + version = "0.1.0"; }; - "rack-mount" = { - version = "0.8.3"; + fog-storm_on_demand = { + dependencies = ["fog-core" "fog-json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fif1x8ci095b2yyilf65n7x6iyvn448azrsnmwsdkriy8vxxv3y"; type = "gem"; - sha256 = "09a1qfaxxsll1kbgz7z0q0nr48sfmfm7akzaviis5bjpa5r00ld2"; }; - dependencies = [ - "rack" - ]; + version = "0.1.1"; }; - "rack-oauth2" = { - version = "1.0.10"; + fog-softlayer = { + dependencies = ["fog-core" "fog-json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zax2wws0q8pm787jnlxd2xlj23f2acz0s6jl5nzczyxjgll571r"; type = "gem"; - sha256 = "1srg4hdnyn6bwx225snyq7flb0cn96ppdvicwls6qvp6i4n91k36"; }; - dependencies = [ - "activesupport" - "attr_required" - "httpclient" - "multi_json" - "rack" - ]; + version = "1.0.3"; }; - "rack-protection" = { - version = "1.5.3"; + fog-serverlove = { + dependencies = ["fog-core" "fog-json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hxgmwzygrw25rbsy05i6nzsyr0xl7xj5j2sjpkb9n9wli5sagci"; type = "gem"; - sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; }; - dependencies = [ - "rack" - ]; + version = "0.1.2"; }; - "rack-test" = { - version = "0.6.3"; + fog-sakuracloud = { + dependencies = ["fog-core" "fog-json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "08krsn9sk5sx0aza812g31r169bd0zanb8pq5am3a64j6azarimd"; type = "gem"; - sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; }; - dependencies = [ - "rack" - ]; + version = "1.7.5"; }; - "rails" = { - version = "4.1.12"; + fog-riakcs = { + dependencies = ["fog-core" "fog-json" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nbxc4dky3agfwrmgm1aqmi59p6vnvfnfbhhg7xpg4c2cf41whxm"; type = "gem"; - sha256 = "0k2n6y92gmysk8y6j1hy6av53f07hhzkhw41qfqwr2hgqc6q8idv"; }; - dependencies = [ - "actionmailer" - "actionpack" - "actionview" - "activemodel" - "activerecord" - "activesupport" - "railties" - "sprockets-rails" - ]; + version = "0.1.0"; }; - "rails-observers" = { - version = "0.1.2"; + fog-radosgw = { + dependencies = ["fog-core" "fog-json" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nslgv8yp5qkiryj3zsm91gs7s6i626igj61kwxjjwk2yv6swyr6"; type = "gem"; - sha256 = "1lsw19jzmvipvrfy2z04hi7r29dvkfc43h43vs67x6lsj9rxwwcy"; }; - dependencies = [ - "activemodel" - ]; + version = "0.0.5"; }; - "railties" = { - version = "4.1.12"; + fog-profitbricks = { + dependencies = ["fog-core" "fog-xml" "nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "154sqs2dcmvg21v4m3fj8f09z5i70sq8a485v6rdygsffs8xrycn"; type = "gem"; - sha256 = "0v16grd6ip3ijiz1v36myiirqx9fx004lfvnsmh28b2ddjxcci4q"; }; - dependencies = [ - "actionpack" - "activesupport" - "rake" - "thor" - ]; + version = "0.0.5"; }; - "rainbow" = { - version = "2.0.0"; + fog-powerdns = { + dependencies = ["fog-core" "fog-json" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "08zavzwfkk344gz83phz4sy9nsjznsdjsmn1ifp6ja17bvydlhh7"; type = "gem"; - sha256 = "0dsnzfjiih2w8npsjab3yx1ssmmvmgjkbxny0i9yzrdy7whfw7b4"; }; + version = "0.1.1"; }; - "raindrops" = { - version = "0.15.0"; + fog-local = { + dependencies = ["fog-core"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i5hxwzmc2ag3z9nlligsaf679kp2pz39cd8n2s9cmxaamnlh2s3"; type = "gem"; - sha256 = "1hv0xhr762axywr937czi92fs0x3zk7k22vg6f4i7rr8d05sp560"; }; + version = "0.2.1"; }; - "rake" = { - version = "10.4.2"; + fog-json = { + dependencies = ["fog-core" "multi_json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r"; type = "gem"; - sha256 = "1rn03rqlf1iv6n87a78hkda2yqparhhaivfjpizblmxvlw2hk5r8"; }; + version = "1.0.2"; }; - "raphael-rails" = { - version = "2.1.2"; + fog-google = { + dependencies = ["fog-core" "fog-json" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z4vmswpqwph04c0wqzrscns1d1wdm8kbxx457bv156mawzrhfj3"; type = "gem"; - sha256 = "0sjiaymvfn4al5dr1pza5i142byan0fxnj4rymziyql2bzvdm2bc"; }; + version = "0.1.0"; }; - "rb-fsevent" = { - version = "0.9.5"; + fog-ecloud = { + dependencies = ["fog-core" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "18rb4qjad9xwwqvvpj8r2h0hi9svy71pm4d3fc28cdcnfarmdi06"; type = "gem"; - sha256 = "1p4rz4qqarl7xg2aldpra54h81yal93cbxdy02lmb9kf6f7y2fz4"; }; + version = "0.3.0"; }; - "rb-inotify" = { - version = "0.9.5"; + fog-dynect = { + dependencies = ["fog-core" "fog-json" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "18lqmdkm22254z86jh3aa9v9vqk8bgbd3d1m0w7az3ij47ak7kch"; type = "gem"; - sha256 = "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9"; }; - dependencies = [ - "ffi" - ]; + version = "0.0.2"; }; - "rbvmomi" = { - version = "1.8.2"; + fog-core = { + dependencies = ["builder" "excon" "formatador"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "02z91r3f5a64hlalm6h39v0778yl2kk3qvva0zvplpp9hpwbwzhl"; type = "gem"; - sha256 = "0gjbfazl2q42m1m51nvv14q7y5lbya272flmvhpqvg5z10nbxanj"; }; - dependencies = [ - "builder" - "nokogiri" - "trollop" - ]; + version = "1.35.0"; }; - "rdoc" = { - version = "3.12.2"; + fog-brightbox = { + dependencies = ["fog-core" "fog-json" "inflecto"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p7rbx587hb1d1am90dcr3zdp6y50c2zddh97yfgl62vji0pbkkd"; type = "gem"; - sha256 = "1v9k4sp5yzj2bshngckdvivj6bszciskk1nd2r3wri2ygs7vgqm8"; }; - dependencies = [ - "json" - ]; + version = "0.10.1"; }; - "redcarpet" = { - version = "3.3.2"; + fog-aws = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pzfahq8h3alfflb5dr8lm02q27x81vm96qn5zyfdlx86yy7bq96"; type = "gem"; - sha256 = "1xf95nrc8jgv9hjzjnbf3ljwmp29rqxdamyj9crza2czl4k63rnm"; }; + version = "0.8.1"; }; - "redis" = { - version = "3.2.1"; + fog-atmos = { + dependencies = ["fog-core" "fog-xml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1aaxgnw9zy96gsh4h73kszypc32sx497s6bslvhfqh32q9d1y8c9"; type = "gem"; - sha256 = "16jzlqp80qiqg5cdc9l144n6k3c5qj9if4pgij87sscn8ahi993k"; }; + version = "0.1.0"; }; - "redis-actionpack" = { - version = "4.0.0"; + fog-aliyun = { + dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i76g8sdskyfc0gcnd6n9i757s7dmwg3wf6spcr2xh8wzyxkm1pj"; type = "gem"; - sha256 = "0mad0v3qanw3xi9zs03f4w8sn1qb3x501k3235ck8m5i8vgjk474"; }; - dependencies = [ - "actionpack" - "redis-rack" - "redis-store" - ]; + version = "0.1.0"; }; - "redis-activesupport" = { - version = "4.1.1"; + fog = { + dependencies = ["fog-aliyun" "fog-atmos" "fog-aws" "fog-brightbox" "fog-core" "fog-dynect" "fog-ecloud" "fog-google" "fog-json" "fog-local" "fog-powerdns" "fog-profitbricks" "fog-radosgw" "fog-riakcs" "fog-sakuracloud" "fog-serverlove" "fog-softlayer" "fog-storm_on_demand" "fog-terremark" "fog-vmfusion" "fog-voxel" "fog-xenserver" "fog-xml" "ipaddress" "nokogiri"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ml31jdycqdm8w7w3l9pbyrgbnmrrnhmkppa2x4bwi9as1n1jmwq"; type = "gem"; - sha256 = "1xciffiqbhksy534sysdd8pgn2hlvyrs1qb4x1kbcx9f3f83y551"; }; - dependencies = [ - "activesupport" - "redis-store" - ]; + version = "1.36.0"; }; - "redis-namespace" = { - version = "1.5.2"; + flowdock = { + dependencies = ["httparty" "multi_json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg"; type = "gem"; - sha256 = "0rp8gfkznfxqzxk9s976k71jnljkh0clkrhnp6vgx46s5yhj9g25"; }; - dependencies = [ - "redis" - ]; + version = "0.7.1"; }; - "redis-rack" = { - version = "1.5.0"; + flog = { + dependencies = ["ruby_parser" "sexp_processor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1asrcdj6gh5mxcimqak94jjyyi5cxnqn904lc8pmrljg1nv1bxpm"; type = "gem"; - sha256 = "1y1mxx8gn0krdrpwllv7fqsbvki1qjnb2dz8b4q9gwc326829gk8"; }; - dependencies = [ - "rack" - "redis-store" - ]; + version = "4.3.2"; }; - "redis-rails" = { - version = "4.0.0"; + flay = { + dependencies = ["ruby_parser" "sexp_processor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zcp9nmnfqixdcqa2dzwwjy5np4n2n16bj25gw7bbzbjp9hqzhn6"; type = "gem"; - sha256 = "0igww7hb58aq74mh50dli3zjg78b54y8nhd0h1h9vz4vgjd4q8m7"; }; - dependencies = [ - "redis-actionpack" - "redis-activesupport" - "redis-store" - ]; + version = "2.6.1"; }; - "redis-store" = { - version = "1.1.6"; + fission = { + dependencies = ["CFPropertyList"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "09pmp1j1rr8r3pcmbn2na2ls7s1j9ijbxj99xi3a8r6v5xhjdjzh"; type = "gem"; - sha256 = "1x8pfpd6c3xxb3l9nyggi9qpgxcp9k9rkdwwl80m95lhynwaxcds"; }; - dependencies = [ - "redis" - ]; + version = "0.5.0"; }; - "request_store" = { - version = "1.2.0"; + ffi = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj"; type = "gem"; - sha256 = "1s7lk5klbg2qfh8hgqymjrlwgpmjmfx03x1hniq16shd1cjwch45"; }; + version = "1.9.10"; }; - "rerun" = { - version = "0.10.0"; + ffaker = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "19fnbbsw87asyb1hvkr870l2yldah2jcjb8074pgyrma5lynwmn0"; type = "gem"; - sha256 = "0hsw0q0wriz4h55hkm9yd313hqixgsgnp4wrl8v4k4zwz41j76xk"; }; - dependencies = [ - "listen" - ]; + version = "2.0.0"; }; - "responders" = { - version = "1.1.2"; + fastercsv = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1df3vfgw5wg0s405z0pj0rfcvnl9q6wak7ka8gn0xqg4cag1k66h"; type = "gem"; - sha256 = "178279kf1kaah917r6zwzw5kk9swj28yxmg6aqffna7789kjhy3f"; }; - dependencies = [ - "railties" - ]; + version = "1.5.5"; }; - "rest-client" = { - version = "1.8.0"; + faraday_middleware-multi_json = { + dependencies = ["faraday_middleware" "multi_json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q"; type = "gem"; - sha256 = "1m8z0c4yf6w47iqz6j2p7x1ip4qnnzvhdph9d5fgx081cvjly3p7"; }; - dependencies = [ - "http-cookie" - "mime-types" - "netrc" - ]; + version = "0.0.6"; }; - "rinku" = { - version = "1.7.3"; + faraday_middleware = { + dependencies = ["faraday"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nxia26xzy8i56qfyz1bg8dg9yb26swpgci8n5jry8mh4bnx5r5h"; type = "gem"; - sha256 = "1jh6nys332brph55i6x6cil6swm086kxjw34wq131nl6mwryqp7b"; }; + version = "0.10.0"; }; - "rotp" = { - version = "2.1.1"; + faraday = { + dependencies = ["multipart-post"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kplqkpn2s2yl3lxdf6h7sfldqvkbkpxwwxhyk7mdhjplb5faqh6"; type = "gem"; - sha256 = "1nzsc9hfxijnyzjbv728ln9dm80bc608chaihjdk63i2wi4m529g"; }; + version = "0.9.2"; }; - "rouge" = { - version = "1.10.1"; + factory_girl_rails = { + dependencies = ["factory_girl" "railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jj0yl6mfildb4g79dwgc1q5pv2pa65k9b1ml43mi8mg62j8mrhz"; type = "gem"; - sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz"; }; + version = "4.3.0"; }; - "rqrcode" = { - version = "0.7.0"; + factory_girl = { + dependencies = ["activesupport"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "13z20a4b7z1c8vbz0qz5ranssdprldwvwlgjmn38x311sfjmp9dz"; type = "gem"; - sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb"; }; - dependencies = [ - "chunky_png" - ]; + version = "4.3.0"; }; - "rqrcode-rails3" = { - version = "0.1.7"; + expression_parser = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib"; type = "gem"; - sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg"; }; - dependencies = [ - "rqrcode" - ]; + version = "0.9.0"; }; - "rspec" = { - version = "3.3.0"; + execjs = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw"; type = "gem"; - sha256 = "1bn5zs71agc0zyns2r3c8myi5bxw3q7xnzp7f3v5b7hbil1qym4r"; }; - dependencies = [ - "rspec-core" - "rspec-expectations" - "rspec-mocks" - ]; + version = "2.6.0"; }; - "rspec-core" = { - version = "3.3.2"; + excon = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1shb4g3dhsfkywgjv6123yrvp2c8bvi8hqmq47iqa5lp72sn4b4w"; type = "gem"; - sha256 = "0xw5qi936j6nz9fixi2mwy03f406761cd72bzyvd61pr854d7hy1"; }; - dependencies = [ - "rspec-support" - ]; + version = "0.45.4"; }; - "rspec-expectations" = { - version = "3.3.1"; + eventmachine = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1frvpk3p73xc64qkn0ymll3flvn4xcycq5yx8a43zd3gyzc1ifjp"; type = "gem"; - sha256 = "1d0b5hpkxlr9f3xpsbhvl3irnk4smmycx2xnmc8qv3pqaa7mb7ah"; }; - dependencies = [ - "diff-lcs" - "rspec-support" - ]; + version = "1.0.8"; }; - "rspec-mocks" = { - version = "3.3.2"; + escape_utils = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hb8nmrgmd9n5dhih86fp91sf26mmw14sdn5vswg5g20svrqxc7x"; type = "gem"; - sha256 = "1lfbzscmpyixlbapxmhy2s69596vs1z00lv590l51hgdw70z92vg"; }; - dependencies = [ - "diff-lcs" - "rspec-support" - ]; + version = "1.1.0"; }; - "rspec-rails" = { - version = "3.3.3"; + erubis = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; type = "gem"; - sha256 = "0m66n9p3a7d3fmrzkbh8312prb6dhrgmp53g1amck308ranasv2a"; }; - dependencies = [ - "actionpack" - "activesupport" - "railties" - "rspec-core" - "rspec-expectations" - "rspec-mocks" - "rspec-support" - ]; - }; - "rspec-support" = { - version = "3.3.0"; + version = "2.7.0"; + }; + equalizer = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; type = "gem"; - sha256 = "1cyagig8slxjas8mbg5f8bl240b8zgr8mnjsvrznag1fwpkh4h27"; }; + version = "0.0.11"; }; - "rubocop" = { - version = "0.28.0"; + encryptor = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "04wqqda081h7hmhwjjx1yqxprxjk8s5jgv837xqv1bpxiv7f4v1y"; type = "gem"; - sha256 = "07n4gha1dp1n15np5v8p58980lsiys3wa9h39lrvnzxgq18m3c4d"; }; - dependencies = [ - "astrolabe" - "parser" - "powerpack" - "rainbow" - "ruby-progressbar" - ]; + version = "1.3.0"; }; - "ruby-fogbugz" = { - version = "0.2.1"; + email_spec = { + dependencies = ["launchy" "mail"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "00p1cc69ncrgg7m45va43pszip8anx5735w1lsb7p5ygkyw8nnpv"; type = "gem"; - sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm"; }; - dependencies = [ - "crack" - ]; + version = "1.6.0"; }; - "ruby-progressbar" = { - version = "1.7.5"; + email_reply_parser = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k2p229mv7xn7q627zwmvhrcvba4b9m70pw2jfjm6iimg2vmf22r"; type = "gem"; - sha256 = "0hynaavnqzld17qdx9r7hfw00y16ybldwq730zrqfszjwgi59ivi"; }; + version = "0.5.8"; }; - "ruby-saml" = { - version = "1.0.0"; + dropzonejs-rails = { + dependencies = ["rails"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vqqxzv6qdqy47m2q28adnmccfvc17p2bmkkaqjvrczrhvkkha64"; type = "gem"; - sha256 = "0hqn49ca2ln5ybc77vpm1vs0szk3pyrz3hnbkbqrkp864mniisi4"; }; - dependencies = [ - "nokogiri" - "uuid" - ]; + version = "0.7.2"; }; - "ruby2ruby" = { - version = "2.1.4"; + doorkeeper = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wim84wkvx758cfb8q92w3hhvnfbwr990x1mmfv1ss1ivjz8fmm0"; type = "gem"; - sha256 = "1h0bwjivcsazfd9j9phs640xxqwgvggj9kmafin88ahf7j77spim"; }; - dependencies = [ - "ruby_parser" - "sexp_processor" - ]; + version = "2.2.2"; }; - "ruby_parser" = { - version = "3.5.0"; + domain_name = { + dependencies = ["unf"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "16qvfrmcwlzz073aas55mpw2nhyhjcn96s524w0g1wlml242hjav"; type = "gem"; - sha256 = "1l1lzbn5ywfsg8m8cvxwb415p1816ikvjqnsh5as9h4g1vcknw3y"; }; - dependencies = [ - "sexp_processor" - ]; + version = "0.5.25"; }; - "rubyntlm" = { - version = "0.5.2"; + docile = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; type = "gem"; - sha256 = "04l8686hl0829x4acsnbz0licf8n6794p7shz8iyahin1jnqg3d7"; }; + version = "1.1.5"; }; - "rubypants" = { - version = "0.2.0"; + diffy = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0il0ri511g9rm88qbvncbzgwc6wk6265hmnf7grcczmrs1z49vl0"; type = "gem"; - sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph"; }; + version = "3.0.7"; }; - "rugged" = { - version = "0.22.2"; + diff-lcs = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"; type = "gem"; - sha256 = "179pnnvlsrwd96csmhwhy45y4f5p7qh3xcbg6v3hdv5m9qqcirpp"; }; + version = "1.2.5"; }; - "safe_yaml" = { - version = "1.0.4"; + devise-two-factor = { + dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v2wva971ds48af47rj4ywavlmz7qzbmf1jpf1l3xn3mscz52hln"; type = "gem"; - sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; }; + version = "2.0.1"; }; - "sanitize" = { - version = "2.1.0"; + devise-async = { + dependencies = ["devise"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "11llg7ggzpmg4lb9gh4sx55spvp98sal5r803gjzamps9crfq6mm"; type = "gem"; - sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3"; }; - dependencies = [ - "nokogiri" - ]; + version = "0.9.0"; }; - "sass" = { - version = "3.2.19"; + devise = { + dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "thread_safe" "warden"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "00h0xdl4a8pjpb0gbgy4w6q9j2mpczkmj23195zmjrg2b1gl8f2q"; type = "gem"; - sha256 = "1b5z55pmban9ry7k572ghmpcz9h04nbrdhdfpcz8zaldv5v7vkfx"; }; + version = "3.5.4"; }; - "sass-rails" = { - version = "4.0.5"; + descendants_tracker = { + dependencies = ["thread_safe"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; type = "gem"; - sha256 = "1nw78ijbxpaf0pdr6c0jx63nna1l9m8s1mmb4m3g2clx0i0xm4wb"; }; - dependencies = [ - "railties" - "sass" - "sprockets" - "sprockets-rails" - ]; + version = "0.0.4"; }; - "sawyer" = { - version = "0.6.0"; + default_value_for = { + dependencies = ["activerecord"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1z4lrba4y1c3y0rxw8321qbwsb3nr6c2igrpksfvz93yhc9m6xm0"; type = "gem"; - sha256 = "0fk43bzwn816qj1ksiicm2i1kmzv5675cmnvk57kmfmi4rfsyjpy"; }; - dependencies = [ - "addressable" - "faraday" - ]; + version = "3.0.1"; }; - "sdoc" = { - version = "0.3.20"; + debugger-ruby_core_source = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd"; type = "gem"; - sha256 = "17l8qk0ld47z4h5avcnylvds8nc6dp25zc64w23z8li2hs341xf2"; }; - dependencies = [ - "json" - "rdoc" - ]; + version = "1.3.8"; }; - "seed-fu" = { - version = "2.3.5"; + debug_inspector = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "109761g00dbrw5q0dfnbqg8blfm699z4jj70l4zrgf9mzn7ii50m"; type = "gem"; - sha256 = "11xja82yxir1kwccrzng29h7w911i9j0xj2y7y949yqnw91v12vw"; }; - dependencies = [ - "activerecord" - "activesupport" - ]; + version = "0.0.2"; }; - "select2-rails" = { - version = "3.5.9.3"; + database_cleaner = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n5r7kvsmknk876v3scdphfnvllr9157fa5q7j5fczg8j5qm6kf0"; type = "gem"; - sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj"; }; - dependencies = [ - "thor" - ]; + version = "1.4.1"; }; - "settingslogic" = { - version = "2.0.9"; + daemons = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b839hryy9sg7x3knsa1d6vfiyvn0mlsnhsb6an8zsalyrz1zgqg"; type = "gem"; - sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar"; }; + version = "1.2.3"; }; - "sexp_processor" = { - version = "4.6.0"; + d3_rails = { + dependencies = ["railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "12vxiiflnnkcxak2wmbajyf5wzmcv9wkl4drsp0am72azl8a6g9x"; type = "gem"; - sha256 = "0gxlcpg81wfjf5gpggf8h6l2dbq3ikgavbrr2yfw3m2vqy88yjg2"; }; + version = "3.5.11"; }; - "sham_rack" = { - version = "1.3.6"; + creole = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"; type = "gem"; - sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i"; }; - dependencies = [ - "rack" - ]; + version = "0.5.0"; }; - "shellany" = { - version = "0.0.1"; + crack = { + dependencies = ["safe_yaml"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"; type = "gem"; - sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"; }; + version = "0.4.3"; }; - "shoulda-matchers" = { - version = "2.8.0"; + coveralls = { + dependencies = ["json" "rest-client" "simplecov" "term-ansicolor" "thor" "tins"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "03vnvcw1fdmkp3405blcxpsjf89jxd2061474a32fchsmv2das9y"; type = "gem"; - sha256 = "0d3ryqcsk1n9y35bx5wxnqbgw4m8b3c79isazdjnnbg8crdp72d0"; }; - dependencies = [ - "activesupport" - ]; + version = "0.8.9"; }; - "sidekiq" = { - version = "3.3.0"; + connection_pool = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"; type = "gem"; - sha256 = "0xwy2n4jaja82gw11q1qsqc2jp7hp2asxhfr0gkfb58wj7k5y32l"; }; - dependencies = [ - "celluloid" - "connection_pool" - "json" - "redis" - "redis-namespace" - ]; + version = "2.2.0"; }; - "sidetiq" = { - version = "0.6.3"; + concurrent-ruby = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qqdgcfkzv90nznrpsvg3cgg5xiqz4c8hnv7va5gm4fp4lf4k85v"; type = "gem"; - sha256 = "1sylv1nyrn7w3782fh0f5svjqricr53vacf4kkvx3l2azzymc2am"; }; - dependencies = [ - "celluloid" - "ice_cube" - "sidekiq" - ]; + version = "1.0.0"; }; - "simple_oauth" = { - version = "0.1.9"; + colorize = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "16bsjcqb6pg3k94dh1l5g3hhx5g2g4g8rlr76dnc78yyzjjrbayn"; type = "gem"; - sha256 = "0bb06p88xsdw4fxll1ikv5i5k58sl6y323ss0wp1hqjm3xw1jgvj"; }; + version = "0.7.7"; }; - "simplecov" = { - version = "0.10.0"; + coffee-script-source = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k4fg39rrkl3bpgchfj94fbl9s4ysaz16w8dkqncf2vyf79l3qz0"; type = "gem"; - sha256 = "1q2iq2vgrdvvla5y907gkmqx6ry2qvnvc7a90hlcbwgp1w0sv6z4"; }; - dependencies = [ - "docile" - "json" - "simplecov-html" - ]; + version = "1.10.0"; }; - "simplecov-html" = { - version = "0.10.0"; + coffee-script = { + dependencies = ["coffee-script-source" "execjs"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; type = "gem"; - sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf"; }; + version = "2.4.1"; }; - "sinatra" = { - version = "1.4.6"; + coffee-rails = { + dependencies = ["coffee-script" "railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p3zhs44gsy1p90nmghihzfyl7bsk8kv6j3q7rj3bn74wg8w7nqs"; type = "gem"; - sha256 = "1hhmwqc81ram7lfwwziv0z70jh92sj1m7h7s9fr0cn2xq8mmn8l7"; }; - dependencies = [ - "rack" - "rack-protection" - "tilt" - ]; + version = "4.1.0"; }; - "six" = { - version = "0.2.0"; + coercible = { + dependencies = ["descendants_tracker"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; type = "gem"; - sha256 = "1bhapiyjh5r5qjpclfw8i65plvy6k2q4azr5xir63xqglr53viw3"; }; - }; - "slack-notifier" = { version = "1.0.0"; + }; + coderay = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"; type = "gem"; - sha256 = "0v4kd0l83shmk17qb35lighxjq9j7g3slnkrsyiy36kaqcfrjm97"; }; + version = "1.1.0"; }; - "slim" = { - version = "2.0.3"; + cliver = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7"; type = "gem"; - sha256 = "1z279vis4z2xsjzf568pxcl2gd1az760ij13d6qzx400mgn7nqxs"; }; - dependencies = [ - "temple" - "tilt" - ]; + version = "0.3.2"; }; - "slop" = { - version = "3.6.0"; + chunky_png = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn"; type = "gem"; - sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"; }; + version = "1.3.5"; }; - "spinach" = { - version = "0.8.10"; + charlock_holmes = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7"; type = "gem"; - sha256 = "0phfjs4iw2iqxdaljzwk6qxmi2x86pl3hirmpgw2pgfx76wfx688"; }; - dependencies = [ - "colorize" - "gherkin-ruby" - "json" - ]; + version = "0.7.3"; }; - "spinach-rails" = { - version = "0.2.1"; + cause = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00"; type = "gem"; - sha256 = "1nfacfylkncfgi59g2wga6m4nzdcjqb8s50cax4nbx362ap4bl70"; }; - dependencies = [ - "capybara" - "railties" - "spinach" - ]; + version = "0.1"; }; - "spring" = { - version = "1.3.6"; + carrierwave = { + dependencies = ["activemodel" "activesupport" "json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b1av1ancby6brhmypl5k8xwrasd8bd3kqp9ri8kbq7z8nj6k445"; type = "gem"; - sha256 = "0xvz2x6nvza5i53p7mddnf11j2wshqmbaphi6ngd6nar8v35y0k1"; }; + version = "0.9.0"; }; - "spring-commands-rspec" = { - version = "1.0.4"; + capybara-screenshot = { + dependencies = ["capybara" "launchy"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "17v1wihr3aqrxhrwswkdpdklj1xsfcaksblh1y8hixvm9bqfyz3y"; type = "gem"; - sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; }; - dependencies = [ - "spring" - ]; + version = "1.0.11"; }; - "spring-commands-spinach" = { - version = "1.0.0"; + capybara = { + dependencies = ["mime-types" "nokogiri" "rack" "rack-test" "xpath"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "114k4xi4nfbp3jfbxgwa3fksbwsyibx74gbdqpcgg3dxpmzkaa4f"; type = "gem"; - sha256 = "138jardqyj96wz68njdgy55qjbpl2d0g8bxbkz97ndaz3c2bykv9"; }; - dependencies = [ - "spring" - ]; + version = "2.4.4"; }; - "spring-commands-teaspoon" = { - version = "0.0.2"; + cal-heatmap-rails = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lrmcyj3iixkprqi9fb9vcn97wpp779sl5hxxgx57r3rb7l4d20w"; type = "gem"; - sha256 = "1g7n4m2s9d0frh7y1xibzpphqajfnx4fvgfc66nh545dd91w2nqz"; }; - dependencies = [ - "spring" - ]; + version = "3.5.1"; }; - "sprockets" = { - version = "2.12.4"; + byebug = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yx89b7vh5mbvxyi8n7zl25ia1bqdj71995m4daj6d41rnkmrpnc"; type = "gem"; - sha256 = "15818683yz27w4hgywccf27n91azy9a4nmb5qkklzb08k8jw9gp3"; }; - dependencies = [ - "hike" - "multi_json" - "rack" - "tilt" - ]; + version = "8.2.1"; }; - "sprockets-rails" = { - version = "2.3.2"; + bundler-audit = { + dependencies = ["thor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0msv3k2277y7al5lbnw7q9lmb5fnrscpkmsb36wpn189pdq0akfv"; type = "gem"; - sha256 = "1pk2a69cxirg2dkkpl5cr3fvrj1qgifw1fmpz1ggkcziwxajyg6d"; }; - dependencies = [ - "actionpack" - "activesupport" - "sprockets" - ]; + version = "0.4.0"; }; - "stamp" = { - version = "0.5.0"; + bullet = { + dependencies = ["activesupport" "uniform_notifier"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h3iaflcz5a1xr32bdb8sk4nx06yhh5d8y7w294w49xigfv4hzj3"; type = "gem"; - sha256 = "1w54kxm4sd4za9rhrkl5lqjbsalhziq95sr3nnwr1lqc00nn5mhs"; }; + version = "4.14.10"; }; - "state_machine" = { - version = "1.2.0"; + builder = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"; type = "gem"; - sha256 = "1vf25h443b1s98d2lhd1w3rgam86pjsjhz632f3yrfkn374xvz40"; }; + version = "3.2.2"; }; - "stringex" = { - version = "2.5.2"; + browser = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "01bkb64w2ld2q5r3chc4f6spbjrmginyg8wlzg130zmx2z4jia2h"; type = "gem"; - sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17"; }; + version = "1.0.1"; }; - "systemu" = { - version = "2.6.5"; + brakeman = { + dependencies = ["erubis" "fastercsv" "haml" "highline" "multi_json" "ruby2ruby" "ruby_parser" "safe_yaml" "sass" "slim" "terminal-table"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "15v13yizpvp1rm86raqggmsmm51v6p8fqw3pfgi6xpvx1ba06cfm"; type = "gem"; - sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1"; }; + version = "3.1.4"; }; - "task_list" = { - version = "1.0.2"; + bootstrap-sass = { + dependencies = ["autoprefixer-rails" "sass"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "12hhw42hk9clwfj6yz5v0c5p35wrn5yjnji7bnzsfs99vi2q00ld"; type = "gem"; - sha256 = "1iv1fizb04463c4mp4gxd8v0414fhvmiwvwvjby5b9qq79d8zwab"; }; - dependencies = [ - "html-pipeline" - ]; + version = "3.3.6"; }; - "teaspoon" = { - version = "1.0.2"; + binding_of_caller = { + dependencies = ["debug_inspector"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "15jg6dkaq2nzcd602d7ppqbdxw3aji961942w93crs6qw4n6h9yk"; type = "gem"; - sha256 = "0cprz18vgf0jgcggcxf4pwx8jcwbiyj1p0dnck5aavlvaxaic58s"; }; - dependencies = [ - "railties" - ]; + version = "0.7.2"; }; - "teaspoon-jasmine" = { - version = "2.2.0"; + better_errors = { + dependencies = ["coderay" "erubis"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v0q8bdkqqlcsfqbk4wvc3qnz8an44mgz720v5f11a4nr413mjgf"; type = "gem"; - sha256 = "00wygrv1jm4aj15p1ab9d5fdrj6y83kv26xgp52mx4lp78h2ms9q"; }; - dependencies = [ - "teaspoon" - ]; + version = "1.0.1"; }; - "temple" = { - version = "0.6.10"; + benchmark-ips = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j"; type = "gem"; - sha256 = "1lzz4bisg97725m1q62jhmcxklfhky7g326d0b7p2q0kjx262q81"; }; + version = "2.3.0"; }; - "term-ansicolor" = { - version = "1.3.2"; + bcrypt = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "15cf7zzlj9b0xcx12jf8fmnpc8g1b0yhxal1yr5p7ny3mrz5pll6"; type = "gem"; - sha256 = "0ydbbyjmk5p7fsi55ffnkq79jnfqx65c3nj8d9rpgl6sw85ahyys"; }; - dependencies = [ - "tins" - ]; + version = "3.1.10"; }; - "terminal-table" = { - version = "1.5.2"; + babosa = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f"; type = "gem"; - sha256 = "1s6qyj9ir1agbbi32li9c0c34dcl0klyxqif6mxy0dbvq7kqfp8f"; }; + version = "1.0.2"; }; - "test_after_commit" = { - version = "0.2.7"; + axiom-types = { + dependencies = ["descendants_tracker" "ice_nine" "thread_safe"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; type = "gem"; - sha256 = "179dgdpsmn9lcxxkyrxxvmyj4x3xi9sdq80l3zfqcgprnbxavbp7"; }; - dependencies = [ - "activerecord" - ]; + version = "0.1.1"; }; - "thin" = { - version = "1.6.3"; + awesome_print = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k85hckprq0s9pakgadf42k1d5s07q23m3y6cs977i6xmwdivyzr"; type = "gem"; - sha256 = "1m56aygh5rh8ncp3s2gnn8ghn5ibkk0bg6s3clmh1vzaasw2lj4i"; }; - dependencies = [ - "daemons" - "eventmachine" - "rack" - ]; + version = "1.2.0"; }; - "thor" = { - version = "0.19.1"; + autoprefixer-rails = { + dependencies = ["execjs" "json"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m1w42ncz0p48r5hbyglayxkzrnplw18r99dc1ia2cb3nizkwllx"; type = "gem"; - sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"; }; + version = "6.2.3"; }; - "thread_safe" = { - version = "0.3.5"; + attr_required = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc"; type = "gem"; - sha256 = "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"; }; + version = "1.0.0"; }; - "tilt" = { - version = "1.4.1"; + attr_encrypted = { + dependencies = ["encryptor"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hm2844qm37kflqq5v0x2irwasbhcblhp40qk10m3wlkj4m9wp8p"; type = "gem"; - sha256 = "00sr3yy7sbqaq7cb2d2kpycajxqf1b1wr1yy33z4bnzmqii0b0ir"; }; + version = "1.3.4"; }; - "timers" = { - version = "4.0.4"; + astrolabe = { + dependencies = ["parser"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ybbmjxaf529vvhrj4y8d4jpf87f3hgczydzywyg1d04gggjx7l7"; type = "gem"; - sha256 = "1jx4wb0x182gmbcs90vz0wzfyp8afi1mpl9w5ippfncyk4kffvrz"; }; - dependencies = [ - "hitimes" - ]; + version = "1.3.1"; }; - "timfel-krb5-auth" = { - version = "0.8.3"; + ast = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "102bywfxrv0w3n4s6lg25d7xxshd344sc7ijslqmganj5bany1pk"; type = "gem"; - sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b"; }; + version = "2.1.0"; }; - "tinder" = { - version = "1.9.4"; + asciidoctor = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q9yhan2mkk1lh15zcfd9g2fn6faix9yrf5skg23dp1y77jv7vm0"; type = "gem"; - sha256 = "0gl5kln3dgybgarksk2ly4y0wy2lljsh59idfllwzynap8hx9jar"; }; - dependencies = [ - "eventmachine" - "faraday" - "faraday_middleware" - "hashie" - "json" - "mime-types" - "multi_json" - "twitter-stream" - ]; + version = "1.5.3"; }; - "tins" = { - version = "1.6.0"; + asana = { + dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1560p13g57pl4xqkmhwn1vpqhm7mw9fwmmswk38k3i2r7g0b5y9z"; type = "gem"; - sha256 = "02qarvy17nbwvslfgqam8y6y7479cwmb1a6di9z18hzka4cf90hz"; }; + version = "0.4.0"; }; - "trollop" = { - version = "2.1.2"; + arel = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"; type = "gem"; - sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8"; }; + version = "6.0.3"; }; - "turbolinks" = { - version = "2.5.3"; + annotate = { + dependencies = ["activerecord" "rake"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wdw9phsv2dndgid3pd8h0hl4zycwy11jc9iz6prwza0xax0i7hg"; type = "gem"; - sha256 = "1ddrx25vvvqxlz4h59lrmjhc2bfwxf4bpicvyhgbpjd48ckj81jn"; }; - dependencies = [ - "coffee-rails" - ]; + version = "2.6.10"; }; - "twitter-stream" = { - version = "0.1.16"; + allocations = { + version = "1.0.4"; source = { type = "gem"; - sha256 = "0is81g3xvnjk64sqiaqlh2ziwfryzwvk1yvaniryg0zhppgsyriq"; + remotes = ["https://rubygems.org"]; + sha256 = "0iynf7gkbnbr5mgl2wgbgvxmjdiawh7ywwbnyjm94bj3pkybzgkc"; }; - dependencies = [ - "eventmachine" - "http_parser.rb" - "simple_oauth" - ]; }; - "tzinfo" = { - version = "1.2.2"; + akismet = { + version = "2.0.0"; source = { type = "gem"; - sha256 = "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"; + remotes = ["https://rubygems.org"]; + sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w"; }; - dependencies = [ - "thread_safe" - ]; }; - "uglifier" = { - version = "2.3.3"; + after_commit_queue = { + dependencies = ["activerecord"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jrhvj4335dsrj0xndbf7a7m2inbwbx1knc0bwgvmkk1w47l43s0"; type = "gem"; - sha256 = "0v45v2hccmadxpqrlk8gj9sgyak4d6838014wizdvzkh8sy23nvr"; }; - dependencies = [ - "execjs" - "json" - ]; + version = "1.3.0"; }; - "underscore-rails" = { - version = "1.4.4"; + addressable = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1533axm85gpz267km9gnfarf9c78g2scrysd6b8yw33vmhkz2km6"; type = "gem"; - sha256 = "1xg3dfym38gj5zsjxpf1v5cz4j6gysirv9bgc5ls37krixkajag2"; }; + version = "2.3.8"; }; - "unf" = { - version = "0.1.4"; + acts-as-taggable-on = { + dependencies = ["activerecord"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bz0z8dlp3fjzah9y9b6rr9mkidsav9l4hdm51fnq1gd05yv3pr7"; type = "gem"; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; }; - dependencies = [ - "unf_ext" - ]; + version = "3.5.0"; }; - "unf_ext" = { - version = "0.0.7.1"; + activesupport = { + dependencies = ["i18n" "json" "minitest" "thread_safe" "tzinfo"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "16zgsvzwwf4hx3ywi2lz0dcm6d1ljsy6zr5k2q41amd7g62d886d"; type = "gem"; - sha256 = "0ly2ms6c3irmbr1575ldyh52bz2v0lzzr2gagf0p526k12ld2n5b"; }; + version = "4.2.5.1"; }; - "unicorn" = { - version = "4.8.3"; + activerecord-session_store = { + dependencies = ["actionpack" "activerecord" "railties"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rp5q0q5i5syfgw7qpiq3a42x13p7myyv1c5hmnczpdlh57axs3p"; type = "gem"; - sha256 = "1kpg2vikx2hxdyrl45bqcr89a0w59hfw7yn7xh87bmlczi34xds4"; }; - dependencies = [ - "kgio" - "rack" - "raindrops" - ]; + version = "0.1.2"; }; - "unicorn-worker-killer" = { - version = "0.4.3"; + activerecord-nulldb-adapter = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ym3paxp5lqr2kr4hkqj6xxqvgl57fv8jqhvgjfxb9lk7k5jlfmp"; type = "gem"; - sha256 = "0hhss1bwammh7nhplcj90455h79yq10c30npz4lpcsgw7vcpls00"; }; - dependencies = [ - "get_process_mem" - "unicorn" - ]; + version = "0.3.2"; }; - "uuid" = { - version = "2.3.8"; + activerecord-deprecated_finders = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "03xplckz7v3nm6inqkwdd44h6gpbpql0v02jc1rz46a38rd6cj6m"; type = "gem"; - sha256 = "0gr2mxg27l380wpiy66mgv9wq02myj6m4gmp6c4g1vsbzkh0213v"; }; - dependencies = [ - "macaddr" - ]; + version = "1.0.4"; }; - "version_sorter" = { - version = "2.0.0"; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qj5ii36yn9kb0ljnl05xgpgvs7j9l20yg2phsssy0j31g1ymmc5"; type = "gem"; - sha256 = "1lad9c43w2xfzmva57ia6glpmhyivyk1m79jli42canshvan5v6y"; }; + version = "4.2.5.1"; }; - "virtus" = { - version = "1.0.5"; + activemodel = { + dependencies = ["activesupport" "builder"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zr83avw82infmzdzpilk6xpv5r9fr8pxgf5ql16b3vysp6va57p"; type = "gem"; - sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk"; }; - dependencies = [ - "axiom-types" - "coercible" - "descendants_tracker" - "equalizer" - ]; + version = "4.2.5.1"; }; - "warden" = { - version = "1.2.3"; + activejob = { + dependencies = ["activesupport" "globalid"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xfj7lwp1v3k9zscavzq87wbbn6y825angz4zpx4xsvlwf3dn7jc"; type = "gem"; - sha256 = "0ykzsgwml0pdqn6vdjjaix12gpcgn8b126z9fx7yq3r3bmdrwxlp"; }; - dependencies = [ - "rack" - ]; + version = "4.2.5.1"; }; - "webmock" = { - version = "1.21.0"; + actionview = { + dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dp1gqh0yxpyydza1ada0jjbpww97qhnkj9c9pm9rg5jbmpzg12m"; type = "gem"; - sha256 = "1p7hqdxk5359xwp59pcx841fhbnqx01ra98rnwhdyz61nrc6piv3"; }; - dependencies = [ - "addressable" - "crack" - ]; + version = "4.2.5.1"; }; - "websocket-driver" = { - version = "0.6.2"; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "13shdiwjfyqvfb11k0wqhcd7p7ix168fxd5l8m2pnn0bzskpswxv"; type = "gem"; - sha256 = "0y4kc2q2g69i4xdcn85bn7v7g6ia3znr687aivakmlzcanyiz7in"; }; - dependencies = [ - "websocket-extensions" - ]; + version = "4.2.5.1"; }; - "websocket-extensions" = { - version = "0.1.2"; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fxn8f53nnpgan5xl9i5lszl1m8yk4q6ayc33d9xfzsnvhavpl4n"; type = "gem"; - sha256 = "07qnsafl6203a2zclxl20hy4jq11c471cgvd0bj5r9fx1qqw06br"; }; + version = "4.2.5.1"; }; - "whenever" = { - version = "0.8.4"; + ace-rails-ap = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "082n12rkd9j7d89030nhmi4fx1gqaf13knps6cknsyvwix7fryvv"; type = "gem"; - sha256 = "1bs602cf5rmmj03chn8vwidx0z1psyfyabq6gs3mqna524pnj9h2"; }; - dependencies = [ - "activesupport" - "chronic" - ]; + version = "2.0.1"; }; - "wikicloth" = { - version = "0.8.1"; + RedCloth = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "06pahxyrckhgb7alsxwhhlx1ib2xsx33793finj01jk8i054bkxl"; type = "gem"; - sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s"; }; - dependencies = [ - "builder" - "expression_parser" - "rinku" - ]; + version = "4.2.9"; }; - "xpath" = { - version = "2.0.0"; + CFPropertyList = { source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mjb46368z4hiax3fcsgxk14fxrhwnvcmakc2f5sx8nz0wvvkwg2"; type = "gem"; - sha256 = "04kcr127l34p7221z13blyl0dvh0bmxwx326j72idayri36a394w"; }; - dependencies = [ - "nokogiri" - ]; + version = "2.3.2"; }; } \ No newline at end of file diff --git a/pkgs/applications/version-management/gitlab/nulladapter.patch b/pkgs/applications/version-management/gitlab/nulladapter.patch new file mode 100644 index 0000000000000..0d5c1749e83fd --- /dev/null +++ b/pkgs/applications/version-management/gitlab/nulladapter.patch @@ -0,0 +1,29 @@ +index acd1874..f493451 100644 +--- a/Gemfile ++++ b/Gemfile +@@ -318,3 +318,5 @@ gem 'oauth2', '~> 1.0.0' + + # Soft deletion + gem "paranoia", "~> 2.0" ++ ++gem "activerecord-nulldb-adapter" +index 14d2c76..7a010f0 100644 +--- a/Gemfile.lock ++++ b/Gemfile.lock +@@ -34,6 +34,8 @@ GEM + activesupport (= 4.2.5.1) + arel (~> 6.0) + activerecord-deprecated_finders (1.0.4) ++ activerecord-nulldb-adapter (0.3.2) ++ activerecord (>= 2.0.0) + activerecord-session_store (0.1.2) + actionpack (>= 4.0.0, < 5) + activerecord (>= 4.0.0, < 5) +@@ -880,6 +882,7 @@ DEPENDENCIES + RedCloth (~> 4.2.9) + ace-rails-ap (~> 2.0.1) + activerecord-deprecated_finders (~> 1.0.3) ++ activerecord-nulldb-adapter + activerecord-session_store (~> 0.1.0) + acts-as-taggable-on (~> 3.4) + addressable (~> 2.3.8) diff --git a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch index 1df5226c82fd7..d188070296cac 100644 --- a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch +++ b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch @@ -1,8 +1,8 @@ diff --git a/config/environments/production.rb b/config/environments/production.rb -index 3316ece..c34dec0 100644 +index 9095266..694a4c5 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb -@@ -67,10 +67,10 @@ Gitlab::Application.configure do +@@ -67,10 +67,10 @@ Rails.application.configure do config.action_mailer.delivery_method = :sendmail # Defaults to: @@ -18,74 +18,10 @@ index 3316ece..c34dec0 100644 config.action_mailer.raise_delivery_errors = true diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example -index 15930fc..bdb423c 100644 +index 05f127d..1daef74 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example -@@ -29,8 +29,8 @@ production: &base - ## GitLab settings - gitlab: - ## Web server settings (note: host is the FQDN, do not include http://) -- host: localhost -- port: 80 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details -+ host: <%= ENV['GITLAB_HOST'] || 'localhost' %> -+ port: <%= ENV['GITLAB_PORT'] || 80 %> - https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details - - # Uncommment this line below if your ssh host is different from HTTP/HTTPS one -@@ -43,7 +43,7 @@ production: &base - # relative_url_root: /gitlab - - # Uncomment and customize if you can't use the default user to run GitLab (default: 'git') -- # user: git -+ user: gitlab - - ## Date & Time settings - # Uncomment and customize if you want to change the default time zone of GitLab application. -@@ -54,7 +54,7 @@ production: &base - # Uncomment and set to false if you need to disable email sending from GitLab (default: true) - # email_enabled: true - # Email address used in the "From" field in mails sent by GitLab -- email_from: example@example.com -+ email_from: <%= ENV['GITLAB_EMAIL_FROM'] %> - email_display_name: GitLab - email_reply_to: noreply@example.com - -@@ -298,12 +298,12 @@ production: &base - # GitLab Satellites - satellites: - # Relative paths are relative to Rails.root (default: tmp/repo_satellites/) -- path: /home/git/gitlab-satellites/ -+ path: <%= ENV['GITLAB_SATELLITES_PATH'] %> - timeout: 30 - - ## Backup settings - backup: -- path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) -+ path: <%= ENV['GITLAB_BACKUP_PATH'] %> - # archive_permissions: 0640 # Permissions for the resulting backup.tar file (default: 0600) - # keep_time: 604800 # default: 0 (forever) (in seconds) - # pg_schema: public # default: nil, it means that all schemas will be backed up -@@ -322,15 +322,15 @@ production: &base - - ## GitLab Shell settings - gitlab_shell: -- path: /home/git/gitlab-shell/ -+ path: <%= ENV['GITLAB_SHELL_PATH'] %> - - # REPOS_PATH MUST NOT BE A SYMLINK!!! -- repos_path: /home/git/repositories/ -- hooks_path: /home/git/gitlab-shell/hooks/ -+ repos_path: <%= ENV['GITLAB_REPOSITORIES_PATH'] %> -+ hooks_path: <%= ENV['GITLAB_SHELL_HOOKS_PATH'] %> - - # File that contains the secret key for verifying access for gitlab-shell. - # Default is '.gitlab_shell_secret' relative to Rails.root (i.e. root of the GitLab app). -- # secret_file: /home/git/gitlab/.gitlab_shell_secret -+ secret_file: <%= ENV['GITLAB_SHELL_SECRET_PATH'] %> - - # Git over HTTP - upload_pack: true -@@ -343,7 +343,7 @@ production: &base +@@ -423,7 +422,7 @@ production: &base # CAUTION! # Use the default values unless you really know what you are doing git: @@ -94,25 +30,82 @@ index 15930fc..bdb423c 100644 # The next value is the maximum memory size grit can use # Given in number of bytes per git object (e.g. a commit) # This value can be increased if you have very large commits -@@ -388,7 +388,7 @@ test: - gravatar: - enabled: true - gitlab: -- host: localhost -+ host: <%= ENV['GITLAB_HOST'] %> - port: 80 + +diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb +index 59b2114..4f4a39a 100644 +--- a/lib/gitlab/logger.rb ++++ b/lib/gitlab/logger.rb +@@ -13,20 +13,20 @@ module Gitlab + end - # When you run tests we clone and setup gitlab-shell -diff --git a/lib/gitlab/app_logger.rb b/lib/gitlab/app_logger.rb -index dddcb25..d61f10a 100644 ---- a/lib/gitlab/app_logger.rb -+++ b/lib/gitlab/app_logger.rb -@@ -1,7 +1,7 @@ - module Gitlab - class AppLogger < Gitlab::Logger - def self.file_name_noext -- 'application' -+ ENV["GITLAB_APPLICATION_LOG_PATH"] + def self.read_latest +- path = Rails.root.join("log", file_name) ++ path = File.join(ENV["GITLAB_LOG_PATH"], file_name) + self.build unless File.exist?(path) + tail_output, _ = Gitlab::Popen.popen(%W(tail -n 2000 #{path})) + tail_output.split("\n") end - def format_message(severity, timestamp, progname, msg) + def self.read_latest_for(filename) +- path = Rails.root.join("log", filename) ++ path = File.join(ENV["GITLAB_LOG_PATH"], filename) + tail_output, _ = Gitlab::Popen.popen(%W(tail -n 2000 #{path})) + tail_output.split("\n") + end + + def self.build +- new(Rails.root.join("log", file_name)) ++ new(File.join(ENV["GITLAB_LOG_PATH"], file_name)) + end + end + end +diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb +index be8fcc7..7642d74 100644 +--- a/lib/gitlab/uploads_transfer.rb ++++ b/lib/gitlab/uploads_transfer.rb +@@ -29,7 +29,7 @@ module Gitlab + end + + def root_dir +- File.join(Rails.root, "public", "uploads") ++ ENV['GITLAB_UPLOADS_PATH'] || File.join(Rails.root, "public", "uploads") + end + end + end +diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake +index 81099cb..a40b1ad 100644 +--- a/lib/tasks/gitlab/check.rake ++++ b/lib/tasks/gitlab/check.rake +@@ -223,7 +223,7 @@ namespace :gitlab do + def check_log_writable + print "Log directory writable? ... " + +- log_path = Rails.root.join("log") ++ log_path = ENV["GITLAB_LOG_PATH"] + + if File.writable?(log_path) + puts "yes".green +@@ -263,10 +263,12 @@ namespace :gitlab do + def check_uploads + print "Uploads directory setup correctly? ... " + +- unless File.directory?(Rails.root.join('public/uploads')) ++ uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') ++ ++ unless File.directory?(uploads_dir) + puts "no".red + try_fixing_it( +- "sudo -u #{gitlab_user} mkdir -m 750 #{Rails.root}/public/uploads" ++ "sudo -u #{gitlab_user} mkdir -m 750 #{uploads_dir}" + ) + for_more_information( + see_installation_guide_section "GitLab" +@@ -275,7 +277,7 @@ namespace :gitlab do + return + end + +- upload_path = File.realpath(Rails.root.join('public/uploads')) ++ upload_path = File.realpath(Rails.root.join(uploads_dir)) + upload_path_tmp = File.join(upload_path, 'tmp') + + if File.stat(upload_path).mode == 040750 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f9d921d645b3a..af321c93a54d8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1719,14 +1719,14 @@ let gitinspector = callPackage ../applications/version-management/gitinspector { }; gitlab = callPackage ../applications/version-management/gitlab { - ruby = ruby_2_2_2; + ruby = ruby_2_2; }; gitlab-shell = callPackage ../applications/version-management/gitlab-shell { - ruby = ruby_2_2_2; + ruby = ruby_2_2; }; - gitlab-git-http-server = callPackage ../applications/version-management/gitlab-git-http-server { }; + gitlab-workhorse = callPackage ../applications/version-management/gitlab-workhorse { }; git-latexdiff = callPackage ../tools/typesetting/git-latexdiff { };