diff --git a/nixos/flake.lock b/nixos/flake.lock index daa0004..1dae658 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -10,11 +10,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1653210933, - "narHash": "sha256-n6Hk/zPHcjloi0E/miKGnXrWROha90uan2CFQV7oaqI=", + "lastModified": 1654325492, + "narHash": "sha256-+eegOXTfWyVygrqWCid1pg5IdCjmh0G8o5uA93IQFdA=", "owner": "zhaofengli", "repo": "colmena", - "rev": "429a0f5aa1d1bac06234e2f0c02d5b63a850d940", + "rev": "b5629dca833fc0bd545898c2dd2d9d5ae1fd5066", "type": "github" }, "original": { @@ -77,16 +77,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1653229824, - "narHash": "sha256-klSCYMpR4TqWYoTD/xZ2qM9UIPRFC6pK+S/kJuVLbFw=", + "lastModified": 1654360807, + "narHash": "sha256-wYG86PUkPZ1P/oHsCpepTkb/U26poaEPPp1XFjRsgdA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "06db2e2197401b74fcf82d4e84be15b0b5851c7b", + "rev": "d9794b04bffb468b886c553557489977ae5f4c65", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-21.11", + "ref": "nixos-22.05", "repo": "nixpkgs", "type": "github" } @@ -100,11 +100,11 @@ }, "stable": { "locked": { - "lastModified": 1653087707, - "narHash": "sha256-zfno3snrzZTWQ2B7K53QHrGZwrjnJLTRPalymrSsziU=", + "lastModified": 1653996475, + "narHash": "sha256-r/UA7h3Dfgf4dlOCkakpqejf1Tagfb+6T+9OdT0qBgU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cbd40c72b2603ab54e7208f99f9b35fc158bc009", + "rev": "ec6eaba9dfcfdd11547d75a193e91e26701bf7e3", "type": "github" }, "original": { @@ -116,11 +116,11 @@ }, "utils": { "locked": { - "lastModified": 1649676176, - "narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { diff --git a/nixos/flake.nix b/nixos/flake.nix index 3b5e2b9..558b510 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -2,7 +2,7 @@ description = "A very basic flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-21.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05"; colmena = { url = "github:zhaofengli/colmena"; inputs.nixpkgs.follows = "nixpkgs"; @@ -14,7 +14,16 @@ }; outputs = { self, nixpkgs, colmena, nixos-generators, ... }: - let pkgs = nixpkgs.legacyPackages.x86_64-linux; + let + pkgs = nixpkgs.legacyPackages.x86_64-linux; + machine = name: machineTagged name [ ]; + machineTagged = name: tags: { + imports = [ "${./.}/machines/${name}" ]; + deployment = { + targetHost = "${name}.lxd"; + tags = tags; + }; + }; in { packages.x86_64-linux.hello = pkgs.hello; @@ -124,13 +133,22 @@ }; }; - mastodon = { - imports = [ ./machines/mastodon ]; + misskey = { + imports = [ ./machines/misskey ]; deployment = { - targetHost = "mastodon.lxd"; - tags = [ "mastodon" ]; + targetHost = "misskey.lxd"; + tags = [ ]; }; }; + grafana = { + imports = [ ./machines/grafana ]; + deployment = { + targetHost = "grafana.lxd"; + tags = [ ]; + }; + }; + prometheus = machine "prometheus"; + }; devShells.x86_64-linux.default = pkgs.mkShell { diff --git a/nixos/machines/grafana/default.nix b/nixos/machines/grafana/default.nix new file mode 100644 index 0000000..43711a1 --- /dev/null +++ b/nixos/machines/grafana/default.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: { + imports = [ ../../common ../../common/lxc.nix ]; + networking.hostName = "grafana"; + system.stateVersion = "21.11"; + + networking.firewall.enable = true; + networking.firewall.allowedTCPPorts = [ 2345 ]; + + services.grafana = { + enable = true; + domain = "stats.asraphiel.dev"; + rootUrl = "https://stats.asraphiel.dev/"; + port = 2345; + addr = "0.0.0.0"; + auth.anonymous.enable = true; + auth.anonymous.org_role = "Viewer"; + auth.anonymous.org_name = "Asraphiel"; + }; +} diff --git a/nixos/machines/nginx/default.nix b/nixos/machines/nginx/default.nix index db84155..20783f0 100644 --- a/nixos/machines/nginx/default.nix +++ b/nixos/machines/nginx/default.nix @@ -33,14 +33,22 @@ in { networking.hostName = "nginx"; system.stateVersion = "21.11"; networking.firewall.enable = true; - networking.firewall.allowedTCPPorts = [ 80 443 ]; + networking.firewall.allowedTCPPorts = [ 80 443 9113 9117 ]; services.nginx = { enable = true; + commonHttpConfig = '' + log_format custom '$remote_addr - $remote_user [$time_local] ' + '"$host" "$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log custom; + ''; recommendedOptimisation = true; recommendedProxySettings = true; recommendedTlsSettings = true; recommendedGzipSettings = true; package = pkgs.nginxMainline; + statusPage = true; virtualHosts."asraphiel.dev" = { forceSSL = true; @@ -67,6 +75,8 @@ in { virtualHosts."ikaros.asraphiel.dev" = k8sProxy; virtualHosts."whoami.asraphiel.dev" = k8sProxy; + virtualHosts."stats.asraphiel.dev" = proxy "http://grafana.lxd:2345/"; + virtualHosts."groenehartansichtkaarten.nl" = k8sProxy; virtualHosts."ansichtkaarten.asraphiel.dev" = k8sProxy; @@ -82,7 +92,34 @@ in { }; }; - security.acme.email = "acme@voidcorp.nl"; + services.prometheus.exporters.nginx.enable = true; + services.prometheus.exporters.nginxlog.enable = true; + services.prometheus.exporters.nginxlog.user = config.services.nginx.user; + services.prometheus.exporters.nginxlog.settings = { + consul = { enable = false; }; + + namespaces = [{ + name = "asraphiel"; + format = '' + $remote_addr - $remote_user [$time_local] "$host" "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"''; + source = { + + files = [ "/var/log/nginx/access.log" ]; + }; + relabel_configs = [ + { + target_label = "remote_addr"; + from = "remote_addr"; + } + { + target_label = "host"; + from = "host"; + } + ]; + }]; + }; + + security.acme.defaults.email = "acme@voidcorp.nl"; security.acme.acceptTerms = true; environment.etc."main/index.html" = { enable = true; diff --git a/nixos/machines/prometheus/default.nix b/nixos/machines/prometheus/default.nix new file mode 100644 index 0000000..413b016 --- /dev/null +++ b/nixos/machines/prometheus/default.nix @@ -0,0 +1,25 @@ +{ config, pkgs, ... }: +let + logSouce = name: target: { + job_name = name; + static_configs = [{ targets = [ target ]; }]; + }; +in { + imports = [ ../../common ../../common/lxc.nix ]; + networking.hostName = "prometheus"; + system.stateVersion = "21.11"; + + networking.firewall.enable = true; + networking.firewall.allowedTCPPorts = [ 9001 ]; + + services.prometheus = { + enable = true; + port = 9001; + scrapeConfigs = [ + (logSouce "asraphiel" "asraphiel.dev:9100") + (logSouce "nginx_status_page" "nginx.lxd:9113") + (logSouce "nginx_logs" "nginx.lxd:9117") + ]; + }; + +} diff --git a/nixos/pkgs/default.nix b/nixos/pkgs/default.nix index 650d97e..3dd93c3 100644 --- a/nixos/pkgs/default.nix +++ b/nixos/pkgs/default.nix @@ -1 +1,4 @@ -self: super: { julius = { glitch-soc = super.callPackage ./glitch-soc { }; }; } +self: super: +{ + # maybe i'll add overlays here sometime +} diff --git a/nixos/pkgs/glitch-soc/README.md b/nixos/pkgs/glitch-soc/README.md deleted file mode 100644 index 91b8347..0000000 --- a/nixos/pkgs/glitch-soc/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# How to update - -1. Run `./update.sh --ver v3.5.2 --url https://github.com/glitch-soc/mastodon.git --rev latest-commit-on-main` -2. Set `yarnOfflineCache.sha256` in `default.nix` to `""`, wait for it to error, and replace the hash. -3. ??? -4. Profit \ No newline at end of file diff --git a/nixos/pkgs/glitch-soc/default.nix b/nixos/pkgs/glitch-soc/default.nix deleted file mode 100644 index ca99630..0000000 --- a/nixos/pkgs/glitch-soc/default.nix +++ /dev/null @@ -1,123 +0,0 @@ -{ lib, stdenv, nodejs-slim, mkYarnPackage, fetchFromGitHub, bundlerEnv, nixosTests -, yarn, callPackage, imagemagick, ffmpeg, file, ruby_3_0, writeShellScript -, fetchYarnDeps, fixup_yarn_lock - - # Allow building a fork or custom version of Mastodon: -, pname ? "mastodon" -, version ? import ./version.nix -, srcOverride ? null -, dependenciesDir ? ./. # Should contain gemset.nix, yarn.nix and package.json. -}: - -stdenv.mkDerivation rec { - inherit pname version; - - # Using overrideAttrs on src does not build the gems and modules with the overridden src. - # Putting the callPackage up in the arguments list also does not work. - src = if srcOverride != null then srcOverride else callPackage ./source.nix {}; - - yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; - sha256 = "sha256-zx93a2oIXW65h617cj8JmvfVPddHi/Rw2ulKOrwqUVw="; - }; - - mastodon-gems = bundlerEnv { - name = "${pname}-gems-${version}"; - inherit version; - ruby = ruby_3_0; - gemdir = src; - gemset = dependenciesDir + "/gemset.nix"; - # This fix (copied from https://github.com/NixOS/nixpkgs/pull/76765) replaces the gem - # symlinks with directories, resolving this error when running rake: - # /nix/store/451rhxkggw53h7253izpbq55nrhs7iv0-mastodon-gems-3.0.1/lib/ruby/gems/2.6.0/gems/bundler-1.17.3/lib/bundler/settings.rb:6:in `': uninitialized constant Bundler::Settings (NameError) - postBuild = '' - for gem in "$out"/lib/ruby/gems/*/gems/*; do - cp -a "$gem/" "$gem.new" - rm "$gem" - # needed on macOS, otherwise the mv yields permission denied - chmod +w "$gem.new" - mv "$gem.new" "$gem" - done - ''; - }; - - mastodon-modules = stdenv.mkDerivation { - pname = "${pname}-modules"; - inherit src version; - - nativeBuildInputs = [ fixup_yarn_lock nodejs-slim yarn mastodon-gems mastodon-gems.wrappedRuby ]; - - RAILS_ENV = "production"; - NODE_ENV = "production"; - - buildPhase = '' - export HOME=$PWD - fixup_yarn_lock ~/yarn.lock - yarn config --offline set yarn-offline-mirror ${yarnOfflineCache} - yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress - - patchShebangs ~/bin - patchShebangs ~/node_modules - - # skip running yarn install - rm -rf ~/bin/yarn - - OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder \ - rails assets:precompile - yarn cache clean --offline - rm -rf ~/node_modules/.cache - ''; - - installPhase = '' - mkdir -p $out/public - cp -r node_modules $out/node_modules - cp -r public/assets $out/public - cp -r public/packs $out/public - ''; - }; - - propagatedBuildInputs = [ imagemagick ffmpeg file mastodon-gems.wrappedRuby ]; - buildInputs = [ mastodon-gems nodejs-slim ]; - - buildPhase = '' - ln -s ${mastodon-modules}/node_modules node_modules - ln -s ${mastodon-modules}/public/assets public/assets - ln -s ${mastodon-modules}/public/packs public/packs - - patchShebangs bin/ - for b in $(ls ${mastodon-gems}/bin/) - do - if [ ! -f bin/$b ]; then - ln -s ${mastodon-gems}/bin/$b bin/$b - fi - done - - rm -rf log - ln -s /var/log/mastodon log - ln -s /tmp tmp - ''; - - installPhase = let - run-streaming = writeShellScript "run-streaming.sh" '' - # NixOS helper script to consistently use the same NodeJS version the package was built with. - ${nodejs-slim}/bin/node ./streaming - ''; - in '' - mkdir -p $out - cp -r * $out/ - ln -s ${run-streaming} $out/run-streaming.sh - ''; - - passthru = { - tests.mastodon = nixosTests.mastodon; - updateScript = callPackage ./update.nix {}; - }; - - meta = with lib; { - description = "Self-hosted, globally interconnected microblogging software based on ActivityPub"; - homepage = "https://joinmastodon.org"; - license = licenses.agpl3Plus; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ petabyteboy happy-river erictapen izorkin ]; - }; -} diff --git a/nixos/pkgs/glitch-soc/gemset.nix b/nixos/pkgs/glitch-soc/gemset.nix deleted file mode 100644 index 1c5a3ed..0000000 --- a/nixos/pkgs/glitch-soc/gemset.nix +++ /dev/null @@ -1,3121 +0,0 @@ -{ - actioncable = { - dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0p8zkh5ww16y8n1jp12y1gjrmll7m7305c91p419f10qrw4x8cgc"; - type = "gem"; - }; - version = "6.1.6"; - }; - actionmailbox = { - dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0z52r7k3ig09zjvfcb8xnrl9vl0ssii22c2h7gx26nq8wb7yjkwq"; - type = "gem"; - }; - version = "6.1.6"; - }; - actionmailer = { - dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "186bkhrp8j81nrw5xznbi0nyhk49gdv6ynd80pcyk5lxhfkiw1wc"; - type = "gem"; - }; - version = "6.1.6"; - }; - actionpack = { - dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1walbq04v4qvgnz39cbfhz9bzhsf14q1h7gd0kgjy3frld6ysrhb"; - type = "gem"; - }; - version = "6.1.6"; - }; - actiontext = { - dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0s6v0vnnm8zrxc3pr058r8bvgs6fxgjhadbc5r1sv1mrbyvvm1h0"; - type = "gem"; - }; - version = "6.1.6"; - }; - actionview = { - dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05r0h7pvc0szqmgnra0j3j8ap7dmiyw9s6qksx41v5cxknmfi0h3"; - type = "gem"; - }; - version = "6.1.6"; - }; - active_model_serializers = { - dependencies = ["actionpack" "activemodel" "case_transform" "jsonapi-renderer"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xdp7cpj3yj3wl4vj0nqq44kzjavlxi1wq3cf9zp0whkir0ym0gy"; - type = "gem"; - }; - version = "0.10.13"; - }; - active_record_query_trace = { - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19888wjdpqvr2kaci6v6jyjw9pjf682zb1iyx2lz12mpdmy3500n"; - type = "gem"; - }; - version = "1.8"; - }; - activejob = { - dependencies = ["activesupport" "globalid"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gjvxrzdbg0dsyqx7wsmxqfvlpl37zvzq3d1cylhb5qslsw6ml05"; - type = "gem"; - }; - version = "6.1.6"; - }; - activemodel = { - dependencies = ["activesupport"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1f0ai51icvvx5q0jd1l89k0dlwzpsrkqlj6x43f8qc4bd1ya9glx"; - type = "gem"; - }; - version = "6.1.6"; - }; - activerecord = { - dependencies = ["activemodel" "activesupport"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0khjnkvmiyap1g3rvw9hp16mzai4smqcg5hxhq28pll25ljzxdbp"; - type = "gem"; - }; - version = "6.1.6"; - }; - activestorage = { - dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "03w600j4jzgfycy2xm6cxry3q5rpvx1jvr7msy1jx65sa2shgjha"; - type = "gem"; - }; - version = "6.1.6"; - }; - activesupport = { - dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08wzpwgdm03vzb8gqr8bvfdarb89g5ah0skvwqk6qv87p55xqkyw"; - type = "gem"; - }; - version = "6.1.6"; - }; - addressable = { - dependencies = ["public_suffix"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp"; - type = "gem"; - }; - version = "2.8.0"; - }; - aes_key_wrap = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19bn0y70qm6mfj4y1m0j3s8ggh6dvxwrwrj5vfamhdrpddsz8ddr"; - type = "gem"; - }; - version = "1.1.0"; - }; - airbrussh = { - dependencies = ["sshkit"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "16lmd6173gvhcpzj1blracx6hhlqjmmmmi4rh5y4lz6c87vg51lp"; - type = "gem"; - }; - version = "1.4.0"; - }; - android_key_attestation = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "02spc1sh7zsljl02v9d5rdb717b628vw2k7jkkplifyjk4db0zj6"; - type = "gem"; - }; - version = "0.3.0"; - }; - annotate = { - dependencies = ["activerecord" "rake"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1lw0fxb5mirsdp3bp20gjyvs7clvi19jbxnrm2ihm20kzfhvlqcs"; - type = "gem"; - }; - version = "3.2.0"; - }; - ast = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; - type = "gem"; - }; - version = "2.4.2"; - }; - attr_encrypted = { - dependencies = ["encryptor"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg"; - type = "gem"; - }; - version = "3.1.0"; - }; - attr_required = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2"; - type = "gem"; - }; - version = "1.0.1"; - }; - awrence = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15zwdli370jfsj6jypv7vrqf4vv4ac4784faw7ar5v88fk4q9rcv"; - type = "gem"; - }; - version = "1.1.1"; - }; - aws-eventstream = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz"; - type = "gem"; - }; - version = "1.2.0"; - }; - aws-partitions = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0vqb2bfq5db7x66f4n4z30c953y5q8pwwl2067nxhz6j0c486pzm"; - type = "gem"; - }; - version = "1.587.0"; - }; - aws-sdk-core = { - dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0hajbavfngn99hcz6n20162jygvwdflldvnlrza7z32hizawaaan"; - type = "gem"; - }; - version = "3.130.2"; - }; - aws-sdk-kms = { - dependencies = ["aws-sdk-core" "aws-sigv4"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14dcfqqdx1dy7qwrdyqdvqjs53kswm4njvg34f61jpl9xi3h2yf3"; - type = "gem"; - }; - version = "1.56.0"; - }; - aws-sdk-s3 = { - dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1r6dxz3llgxbbm66jq5mkzk0i6qsxwv0d9s0ipwb23vv3bgp23yf"; - type = "gem"; - }; - version = "1.114.0"; - }; - aws-sigv4 = { - dependencies = ["aws-eventstream"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xp7diwq7nv4vvxrl9x3lis2l4x6bissrfzbfyy6rv5bmj5w109z"; - type = "gem"; - }; - version = "1.5.0"; - }; - bcrypt = { - groups = ["default" "pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1rakdhrnlclrpy7sihi9ipwdh7fjkkvzga171464lq6rzp07cf65"; - type = "gem"; - }; - version = "3.1.17"; - }; - better_errors = { - dependencies = ["coderay" "erubi" "rack"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11220lfzhsyf5fcril3qd689kgg46qlpiiaj00hc9mh4mcbc3vrr"; - type = "gem"; - }; - version = "2.9.1"; - }; - better_html = { - dependencies = ["actionview" "activesupport" "ast" "erubi" "html_tokenizer" "parser" "smart_properties"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1sssv94gg7bnxiqn5pbbpf8rdnmw3iyj2qwn2pbgxxs8xmmq158b"; - type = "gem"; - }; - version = "1.0.16"; - }; - bindata = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06lqi4svq5qls9f7nnvd2zmjdqmi2sf82sq78ci5d78fq0z5x2vr"; - type = "gem"; - }; - version = "2.4.10"; - }; - binding_of_caller = { - dependencies = ["debug_inspector"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s"; - type = "gem"; - }; - version = "1.0.0"; - }; - blurhash = { - dependencies = ["ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1rs61mwdiyriq8mb8na2sfrqzz8igls04md63ajyhk4yj8d2j0sz"; - type = "gem"; - }; - version = "0.1.6"; - }; - bootsnap = { - dependencies = ["msgpack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bjhh8pngmvnrsri2h6a753pgv0xdkbbgi1bmv6c7q137sp37jbg"; - type = "gem"; - }; - version = "1.11.1"; - }; - brakeman = { - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1m188ypcl2lb1hin21fmyk9d4fbjw4w7cr2k6l37jasw3rmgnvjv"; - type = "gem"; - }; - version = "5.2.3"; - }; - browser = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0q1yzvbqp0mykswipq3w00ljw9fgkhjfrij3hkwi7cx85r14n6gw"; - type = "gem"; - }; - version = "4.2.0"; - }; - brpoplpush-redis_script = { - dependencies = ["concurrent-ruby" "redis"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rjm184dhlw35ymi8ifpl5155vwl6wfzdc5qjvzv634gc365yz9j"; - type = "gem"; - }; - version = "0.1.2"; - }; - builder = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; - type = "gem"; - }; - version = "3.2.4"; - }; - bullet = { - dependencies = ["activesupport" "uniform_notifier"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0q90zk8di7a12by3d81nl78yy90rdml77vi3waxmgzqhvs6na4vj"; - type = "gem"; - }; - version = "7.0.1"; - }; - bundler-audit = { - dependencies = ["thor"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05k19l5388248rd74cn2lm2ksci7fzmga74n835v7k31m4kbzw8v"; - type = "gem"; - }; - version = "0.9.0.1"; - }; - byebug = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194"; - type = "gem"; - }; - version = "11.1.3"; - }; - capistrano = { - dependencies = ["airbrussh" "i18n" "rake" "sshkit"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bbkmi746zddgrfhq0z19y053bax5l4jh8ji9mfam5aacchnz2cm"; - type = "gem"; - }; - version = "3.17.0"; - }; - capistrano-bundler = { - dependencies = ["capistrano"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "168kyi0gv2s84jm533m8rg0dii50flr06n6s2ci6kzsib3n9n8dr"; - type = "gem"; - }; - version = "2.0.1"; - }; - capistrano-rails = { - dependencies = ["capistrano" "capistrano-bundler"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1iyhs77bff09g18dlz0li5f44khjwpqc09gk5hzcnf5v9yvijpg9"; - type = "gem"; - }; - version = "1.6.2"; - }; - capistrano-rbenv = { - dependencies = ["capistrano" "sshkit"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x9m1i5zd0wx122zw3m40zprlmxk9d47bd6w61k81wr4qsvkk3rw"; - type = "gem"; - }; - version = "2.2.0"; - }; - capistrano-yarn = { - dependencies = ["capistrano"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zdg2s061vl5b8114n909mrjb2hc1qx0i4wqx9nacsrcjgyp07l9"; - type = "gem"; - }; - version = "2.0.2"; - }; - capybara = { - dependencies = ["addressable" "matrix" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05df76mfhfab6d7ir0qy5xf1ad6kqdh2p6vfqv7nhlx45k1y4ysg"; - type = "gem"; - }; - version = "3.37.1"; - }; - case_transform = { - dependencies = ["activesupport"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fzyws6spn5arqf6q604dh9mrj84a36k5hsc8z7jgcpfvhc49bg2"; - type = "gem"; - }; - version = "0.2"; - }; - cbor = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3"; - type = "gem"; - }; - version = "0.5.9.6"; - }; - charlock_holmes = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p"; - type = "gem"; - }; - version = "0.7.7"; - }; - chewy = { - dependencies = ["activesupport" "elasticsearch" "elasticsearch-dsl"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jfdz0z27p839m09xmw5anrw5jp3jd5hd5gnx4vlk6kk520cy6sf"; - type = "gem"; - }; - version = "7.2.4"; - }; - chunky_png = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9"; - type = "gem"; - }; - version = "1.4.0"; - }; - climate_control = { - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0q11v0iabvr6rif0d025xh078ili5frrihlj0m04zfg7lgvagxji"; - type = "gem"; - }; - version = "0.2.0"; - }; - coderay = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; - type = "gem"; - }; - version = "1.1.3"; - }; - color_diff = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "01dpvqlzybpb3pkcwd9ik5sbjw283618ywvdphxslhiy8ps3kp4r"; - type = "gem"; - }; - version = "0.1"; - }; - concurrent-ruby = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14"; - type = "gem"; - }; - version = "1.1.10"; - }; - connection_pool = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ffdxhgirgc86qb42yvmfj6v1v0x4lvi0pxn9zhghkff44wzra0k"; - type = "gem"; - }; - version = "2.2.5"; - }; - cose = { - dependencies = ["cbor" "openssl-signature_algorithm"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1h1vcirk1vpr992xmnwf5z77fpizjwn4xzq2vrrjhvdmjynvl3jj"; - type = "gem"; - }; - version = "1.0.0"; - }; - crack = { - dependencies = ["rexml"]; - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r"; - type = "gem"; - }; - version = "0.4.5"; - }; - crass = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; - type = "gem"; - }; - version = "1.0.6"; - }; - css_parser = { - dependencies = ["addressable"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw"; - type = "gem"; - }; - version = "1.7.1"; - }; - debug_inspector = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1lswmjwxf1clzaimikhiwd9s1n07qkyz7a9xwng64j4fxsajykqp"; - type = "gem"; - }; - version = "1.0.0"; - }; - devise = { - dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; - groups = ["default" "pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gl0b4jqf7ysv3rg99sgxa5y9va2k13p0si3a88pr7m8g6z8pm7x"; - type = "gem"; - }; - version = "4.8.1"; - }; - devise-two-factor = { - dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04f5rb8fg4cvzm32v413z3h53wc0fgxg927q8rqd546hdrlx4j35"; - type = "gem"; - }; - version = "4.0.2"; - }; - devise_pam_authenticatable2 = { - dependencies = ["devise" "rpam2"]; - groups = ["pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13ipl52pkhc6vxp8ca31viwv01237bi2bfk3b1fixq1x46nf87p2"; - type = "gem"; - }; - version = "9.2.0"; - }; - diff-lcs = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9"; - type = "gem"; - }; - version = "1.5.0"; - }; - discard = { - dependencies = ["activerecord"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1xavjhccyyzn9z6fz3034vgvzprc983mbrq6n9sc0drfw7m3vrip"; - type = "gem"; - }; - version = "1.2.1"; - }; - docile = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wi81lynfdvbwhrc4ws746g3j8761vian4m9gxamdj9rjwj9jhls"; - type = "gem"; - }; - version = "1.3.4"; - }; - domain_name = { - dependencies = ["unf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; - type = "gem"; - }; - version = "0.5.20190701"; - }; - doorkeeper = { - dependencies = ["railties"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "188ybg2cgghcp5r1jpfnbx3anf0z8fzlla72jra0vgwkdylk7qkz"; - type = "gem"; - }; - version = "5.5.4"; - }; - dotenv = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94"; - type = "gem"; - }; - version = "2.7.6"; - }; - dotenv-rails = { - dependencies = ["dotenv" "railties"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1my2jdmgmpf32rfxffkb9cyxh7ayis4q5ygpwjqj4vpp25y3a70c"; - type = "gem"; - }; - version = "2.7.6"; - }; - ed25519 = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji"; - type = "gem"; - }; - version = "1.3.0"; - }; - elasticsearch = { - dependencies = ["elasticsearch-api" "elasticsearch-transport"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0havyxmvl157a653prspnbhgdchlx44xqxl170v1im5ggxwavcaq"; - type = "gem"; - }; - version = "7.13.3"; - }; - elasticsearch-api = { - dependencies = ["multi_json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bmssarkk7lqkjdn8c9j7jvxcnn4hg1zcmhsky8bfvc99k33b3w8"; - type = "gem"; - }; - version = "7.13.3"; - }; - elasticsearch-dsl = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "174m3fwm3mawbkjg2xbmqvljq7ava4s95m8vpg5khcvfj506wxfk"; - type = "gem"; - }; - version = "0.1.10"; - }; - elasticsearch-transport = { - dependencies = ["faraday" "multi_json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0blfii8qvj0m6bg9sbfynxc40in7zfmw2wpi4clv7d9gclk053db"; - type = "gem"; - }; - version = "7.13.3"; - }; - encryptor = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; - type = "gem"; - }; - version = "3.0.0"; - }; - erubi = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l"; - type = "gem"; - }; - version = "1.10.0"; - }; - et-orbi = { - dependencies = ["tzinfo"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1d2z4ky2v15dpcz672i2p7lb2nc793dasq3yq3660h2az53kss9v"; - type = "gem"; - }; - version = "1.2.7"; - }; - excon = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05is0kb650j8wrdi4rgkdls662chnhdg2p64pgq3zkd3d7l2a9zw"; - type = "gem"; - }; - version = "0.76.0"; - }; - fabrication = { - groups = ["development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rgbmk044akxa84z9vdl8lkmd9z4xy3na1w0vh12pz02drxd93j9"; - type = "gem"; - }; - version = "2.28.0"; - }; - faker = { - dependencies = ["i18n"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "025lapimxw0db74gf2yd6zypqq1yvfblhk7wkd6h3r1szk7k8r8p"; - type = "gem"; - }; - version = "2.21.0"; - }; - faraday = { - dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6"; - type = "gem"; - }; - version = "1.9.3"; - }; - faraday-em_http = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-em_synchrony = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-excon = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"; - type = "gem"; - }; - version = "1.1.0"; - }; - faraday-httpclient = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc"; - type = "gem"; - }; - version = "1.0.1"; - }; - faraday-multipart = { - dependencies = ["multipart-post"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "03qfi9020ynf7hkdiaq01sd2mllvw7fg4qiin3pk028b4wv23j3j"; - type = "gem"; - }; - version = "1.0.3"; - }; - faraday-net_http = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; - type = "gem"; - }; - version = "1.0.1"; - }; - faraday-net_http_persistent = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b"; - type = "gem"; - }; - version = "1.2.0"; - }; - faraday-patron = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-rack = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-retry = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd"; - type = "gem"; - }; - version = "1.0.3"; - }; - fast_blank = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1shpmamyzyhyxmv95r96ja5rylzaw60r19647d0fdm7y2h2c77r6"; - type = "gem"; - }; - version = "1.0.1"; - }; - fastimage = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nnggg20za5vamdpkgrxxa32z33d8hf0g2bciswkhqnc6amb3yjr"; - type = "gem"; - }; - version = "2.2.6"; - }; - ffi = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg"; - type = "gem"; - }; - version = "1.15.5"; - }; - ffi-compiler = { - dependencies = ["ffi" "rake"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"; - type = "gem"; - }; - version = "1.0.1"; - }; - fog-core = { - dependencies = ["builder" "excon" "formatador" "mime-types"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak"; - type = "gem"; - }; - version = "2.1.0"; - }; - fog-json = { - dependencies = ["fog-core" "multi_json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx"; - type = "gem"; - }; - version = "1.2.0"; - }; - fog-openstack = { - dependencies = ["fog-core" "fog-json" "ipaddress"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11j18h61d3p0pcp9k5346lbj1lahab1dqybkrx9338932lmjn7ap"; - type = "gem"; - }; - version = "0.3.10"; - }; - formatador = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; - type = "gem"; - }; - version = "0.2.5"; - }; - fugit = { - dependencies = ["et-orbi" "raabro"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "16xki30md6bygc62yi2s1y002vq6dm3bhjcjb9pl5dpr3al3fa1j"; - type = "gem"; - }; - version = "1.5.3"; - }; - fuubar = { - dependencies = ["rspec-core" "ruby-progressbar"]; - groups = ["development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1028vn7j3kc5qqwswrf3has3qm4j9xva70xmzb3n29i89f0afwmj"; - type = "gem"; - }; - version = "2.5.1"; - }; - gitlab-omniauth-openid-connect = { - dependencies = ["addressable" "omniauth" "openid_connect"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1nxak6q0m0nd3m5a7vp9xqww9w5fqx97viv5g6pg3q62q9binm0j"; - type = "gem"; - }; - version = "0.9.1"; - }; - globalid = { - dependencies = ["activesupport"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1n5yc058i8xhi1fwcp1w7mfi6xaxfmrifdb4r4hjfff33ldn8lqj"; - type = "gem"; - }; - version = "1.0.0"; - }; - hamlit = { - dependencies = ["temple" "thor" "tilt"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06imnwpzvpagwn0b9a8kwv7hncii32flmafz20z95hd77hhr6ab7"; - type = "gem"; - }; - version = "2.13.0"; - }; - hamlit-rails = { - dependencies = ["actionpack" "activesupport" "hamlit" "railties"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0v75yd6x0nwky83smd9hw5ym9h0pi32jrzbnvq55pzj0rc95gg2p"; - type = "gem"; - }; - version = "0.2.3"; - }; - hashdiff = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; - type = "gem"; - }; - version = "1.0.1"; - }; - hashie = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x"; - type = "gem"; - }; - version = "5.0.0"; - }; - hcaptcha = { - dependencies = ["json"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fh6391zlv2ikvzqj2gymb70k1avk1j9da8bzgw0scsz2wqq98m2"; - type = "gem"; - }; - version = "7.1.0"; - }; - highline = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d"; - type = "gem"; - }; - version = "2.0.3"; - }; - hiredis = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04jj8k7lxqxw24sp0jiravigdkgsyrpprxpxm71ba93x1wr2w1bz"; - type = "gem"; - }; - version = "0.6.3"; - }; - hkdf = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "04fixg0a51n4vy0j6c1hvisa2yl33m3jrrpxpb5sq6j511vjriil"; - type = "gem"; - }; - version = "0.3.0"; - }; - html_tokenizer = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0dq6685sdzdn53mkzags6mvx3l0afcx6xma664zij6y3dxj2a7p8"; - type = "gem"; - }; - version = "0.0.7"; - }; - htmlentities = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; - type = "gem"; - }; - version = "4.3.4"; - }; - http = { - dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1akaq4wnnlbavb8rjg0vbxsg6nzbqwgkgklbmb07hix3pkp7xpxf"; - type = "gem"; - }; - version = "5.0.4"; - }; - http-cookie = { - dependencies = ["domain_name"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19370bc97gsy2j4hanij246hv1ddc85hw0xjb6sj7n1ykqdlx9l9"; - type = "gem"; - }; - version = "1.0.4"; - }; - http-form_data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc"; - type = "gem"; - }; - version = "2.3.0"; - }; - http_accept_language = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0"; - type = "gem"; - }; - version = "2.1.1"; - }; - httpclient = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; - type = "gem"; - }; - version = "2.8.3"; - }; - httplog = { - dependencies = ["rack" "rainbow"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1dr7cj8km01kjsiwrx7n3qxr264ga13ll15s4h9dbbyj5m8kxqd2"; - type = "gem"; - }; - version = "1.5.0"; - }; - i18n = { - dependencies = ["concurrent-ruby"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg"; - type = "gem"; - }; - version = "1.10.0"; - }; - i18n-tasks = { - dependencies = ["activesupport" "ast" "better_html" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"]; - groups = ["development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "03frq52fad0qs2gy7769nywv7bnspxccbsv10akzgx7icfjsjldv"; - type = "gem"; - }; - version = "1.0.10"; - }; - idn-ruby = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1xjr8nxpq6vsa4kd7pvd14xxiba9y4dais1yyz4dj567hsqdrhcm"; - type = "gem"; - }; - version = "0.1.4"; - }; - ipaddress = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; - type = "gem"; - }; - version = "0.8.3"; - }; - jmespath = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0"; - type = "gem"; - }; - version = "1.6.1"; - }; - json = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; - type = "gem"; - }; - version = "2.5.1"; - }; - json-canonicalization = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "179h6jfdsp9dmzyma7s7ykv1ia43r6z8x96j335q99p6mc5sk5qv"; - type = "gem"; - }; - version = "0.3.0"; - }; - json-jwt = { - dependencies = ["activesupport" "aes_key_wrap" "bindata"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0nzbk1mrbf9mnvjpn3bxy8a85rjf94qmfdnvk78mjzk8pa0fvgdr"; - type = "gem"; - }; - version = "1.13.0"; - }; - json-ld = { - dependencies = ["htmlentities" "json-canonicalization" "link_header" "multi_json" "rack" "rdf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08nll07gxgz2ys6i821nfbnsrx922d2yiqd5nd03785jjz1difbp"; - type = "gem"; - }; - version = "3.2.0"; - }; - json-ld-preloaded = { - dependencies = ["json-ld" "rdf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0h0pfxyrsbifzhwfxj1ppaxbk7v2z8mw53a0mi49i986wyspxlgv"; - type = "gem"; - }; - version = "3.2.0"; - }; - jsonapi-renderer = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ys4drd0k9rw5ixf8n8fx8v0pjh792w4myh0cpdspd317l1lpi5m"; - type = "gem"; - }; - version = "0.2.2"; - }; - jwt = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n"; - type = "gem"; - }; - version = "2.2.2"; - }; - kaminari = { - dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gia8irryvfhcr6bsr64kpisbgdbqjsqfgrk12a11incmpwny1y4"; - type = "gem"; - }; - version = "1.2.2"; - }; - kaminari-actionview = { - dependencies = ["actionview" "kaminari-core"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "02f9ghl3a9b5q7l079d3yzmqjwkr4jigi7sldbps992rigygcc0k"; - type = "gem"; - }; - version = "1.2.2"; - }; - kaminari-activerecord = { - dependencies = ["activerecord" "kaminari-core"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0c148z97s1cqivzbwrak149z7kl1rdmj7dxk6rpkasimmdxsdlqd"; - type = "gem"; - }; - version = "1.2.2"; - }; - kaminari-core = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zw3pg6kj39y7jxakbx7if59pl28lhk98fx71ks5lr3hfgn6zliv"; - type = "gem"; - }; - version = "1.2.2"; - }; - kt-paperclip = { - dependencies = ["activemodel" "activesupport" "marcel" "mime-types" "terrapin"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08ngapld22knlkyn0dhhddkfm4vfj0lgmwj4y6x4mhi2hzfwxcxr"; - type = "gem"; - }; - version = "7.1.1"; - }; - launchy = { - dependencies = ["addressable"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1xdyvr5j0gjj7b10kgvh8ylxnwk3wx19my42wqn9h82r4p246hlm"; - type = "gem"; - }; - version = "2.5.0"; - }; - letter_opener = { - dependencies = ["launchy"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1y5d4ip4l12v58bgazadl45iv3a5j7jp2gwg96b6jy378zn42a1d"; - type = "gem"; - }; - version = "1.8.1"; - }; - letter_opener_web = { - dependencies = ["actionmailer" "letter_opener" "railties" "rexml"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0vvvaz2ngaxv0s6sj25gdvp73vd8pfl8q3jharadg18p3va0m1ik"; - type = "gem"; - }; - version = "2.0.0"; - }; - link_header = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1yamrdq4rywmnpdhbygnkkl9fdy249fg5r851nrkkxr97gj5rihm"; - type = "gem"; - }; - version = "0.0.8"; - }; - llhttp-ffi = { - dependencies = ["ffi-compiler" "rake"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5"; - type = "gem"; - }; - version = "0.4.0"; - }; - lograge = { - dependencies = ["actionpack" "activesupport" "railties" "request_store"]; - groups = ["production"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15pjm9pa5m3mbv9xvfgfr16q4jyaznsg8y63jz9x4jqr8npw0vx3"; - type = "gem"; - }; - version = "0.12.0"; - }; - loofah = { - dependencies = ["crass" "nokogiri"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "18ymp6l3bv7abz07k6qbbi9c9vsiahq30d2smh4qzsvag8j5m5v1"; - type = "gem"; - }; - version = "2.18.0"; - }; - mail = { - dependencies = ["mini_mime"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; - type = "gem"; - }; - version = "2.7.1"; - }; - makara = { - dependencies = ["activerecord"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0a6x6w1ij484s1z0wp667d6v0zb8bylhhr3av10yz60a2nz4r1l7"; - type = "gem"; - }; - version = "0.5.1"; - }; - marcel = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"; - type = "gem"; - }; - version = "1.0.2"; - }; - mario-redis-lock = { - dependencies = ["redis"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1v9wdjcjqzpns2migxp4a5b4w82mipi0fwihbqz3q2qj2qm7wc17"; - type = "gem"; - }; - version = "1.2.1"; - }; - matrix = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1h2cgkpzkh3dd0flnnwfq6f3nl2b1zff9lvqz8xs853ssv5kq23i"; - type = "gem"; - }; - version = "0.4.2"; - }; - memory_profiler = { - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0s8qaf19yr4lhvdxk3cy3ifc47cgxdz2jybg6hzxsy9gh88c1f7v"; - type = "gem"; - }; - version = "1.0.0"; - }; - method_source = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; - type = "gem"; - }; - version = "1.0.0"; - }; - microformats = { - dependencies = ["json" "nokogiri"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "115bs94zqkgb248c7xafflpkv2vckpd0ykyfcfggj72kjpqyshyz"; - type = "gem"; - }; - version = "4.3.1"; - }; - mime-types = { - dependencies = ["mime-types-data"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb"; - type = "gem"; - }; - version = "3.4.1"; - }; - mime-types-data = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "003gd7mcay800k2q4pb2zn8lwwgci4bhi42v2jvlidm8ksx03i6q"; - type = "gem"; - }; - version = "3.2022.0105"; - }; - mini_mime = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5"; - type = "gem"; - }; - version = "1.1.2"; - }; - mini_portile2 = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy"; - type = "gem"; - }; - version = "2.8.0"; - }; - minitest = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd"; - type = "gem"; - }; - version = "5.15.0"; - }; - msgpack = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1i0gbypr1yxwfkaxzrk0i1wz4n6v3mw7z24k65jy3q1h5lda5xbw"; - type = "gem"; - }; - version = "1.5.1"; - }; - multi_json = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z"; - type = "gem"; - }; - version = "1.15.0"; - }; - multipart-post = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; - type = "gem"; - }; - version = "2.1.1"; - }; - net-ldap = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1j19yxrz7h3hj7kiiln13c7bz7hvpdqr31bwi88dj64zifr7896n"; - type = "gem"; - }; - version = "0.17.0"; - }; - net-scp = { - dependencies = ["net-ssh"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0b4h3ip8d1gkrc0znnw54hbxillk73mdnaf5pz330lmrcl1wiilg"; - type = "gem"; - }; - version = "3.0.0"; - }; - net-ssh = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jp3jgcn8cij407xx9ldb5h9c6jv13jc4cf6kk2idclz43ww21c9"; - type = "gem"; - }; - version = "6.1.0"; - }; - nio4r = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xk64wghkscs6bv2n22853k2nh39d131c6rfpnlw12mbjnnv9v1v"; - type = "gem"; - }; - version = "2.5.8"; - }; - nokogiri = { - dependencies = ["mini_portile2" "racc"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11w59ga9324yx6339dgsflz3dsqq2mky1qqdwcg6wi5s1bf2yldi"; - type = "gem"; - }; - version = "1.13.6"; - }; - nsa = { - dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jzs1n71pi6najhs9h8jx156gzgk3h9bwjr60vazizwdz3mm69ia"; - type = "gem"; - }; - version = "0.2.8"; - }; - oj = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bm8sdh7vz7ss3y21v961rd8nww23w5g4yhgvnd7jk331kdjyyzl"; - type = "gem"; - }; - version = "3.13.11"; - }; - omniauth = { - dependencies = ["hashie" "rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz"; - type = "gem"; - }; - version = "1.9.1"; - }; - omniauth-cas = { - dependencies = ["addressable" "nokogiri" "omniauth"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0kzlh1nac4yz70917cdcsk0r23gy5h7i0x5kbmkvkpbgk6gvrb0z"; - type = "gem"; - }; - version = "2.0.0"; - }; - omniauth-rails_csrf_protection = { - dependencies = ["actionpack" "omniauth"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xgkxwg17w39q3yjqcj0fm6hdkw37qm1l82dvm9zxn6q2pbzm2zv"; - type = "gem"; - }; - version = "0.1.2"; - }; - omniauth-saml = { - dependencies = ["omniauth" "ruby-saml"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gxl14lbksnjkl8dfn23lsjkk63md77icm5racrh6fsp5n4ni9d4"; - type = "gem"; - }; - version = "1.10.3"; - }; - openid_connect = { - dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0w474bz3s1hqhilvrddr33l2nkyikypaczp3808w0345jr88b5m7"; - type = "gem"; - }; - version = "1.3.0"; - }; - openssl = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "03wbynzkhay7l1x76srjkg91q48mxl575vrxb3blfxlpqwsvvp0w"; - type = "gem"; - }; - version = "2.2.0"; - }; - openssl-signature_algorithm = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14d95jr5z6dgvpwf52p7ckjf3w3cihin2k6g9599711pfxdj4fp5"; - type = "gem"; - }; - version = "0.4.0"; - }; - orm_adapter = { - groups = ["default" "pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; - type = "gem"; - }; - version = "0.5.0"; - }; - ox = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "054xq22rwj26jag43s5fb4vb4x2252dz6rvgjn42id8ycs51my2w"; - type = "gem"; - }; - version = "2.14.11"; - }; - parallel = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb"; - type = "gem"; - }; - version = "1.22.1"; - }; - parser = { - dependencies = ["ast"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xhfghgidj8cbdnqp01f7kvnrv1f60izpkd9dhxsvpdzkfsdg97d"; - type = "gem"; - }; - version = "3.1.2.0"; - }; - parslet = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "01pnw6ymz6nynklqvqxs4bcai25kcvnd5x4id9z3vd1rbmlk0lfl"; - type = "gem"; - }; - version = "2.0.0"; - }; - pastel = { - dependencies = ["tty-color"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8"; - type = "gem"; - }; - version = "0.8.0"; - }; - pg = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "10ryzmc3r5ja6g90a9ycsxcxsy5872xa1vf01jam0bm74zq3zmi6"; - type = "gem"; - }; - version = "1.3.5"; - }; - pghero = { - dependencies = ["activerecord"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1v0cszy9lgjqn3ax8pbj5fg01pg83wyl41wzid3g35h4xdxz1d4a"; - type = "gem"; - }; - version = "2.8.3"; - }; - pkg-config = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1rkxhps7fxzjhld68bpdaq8sss2k6fp14jz5kcqgrxp8x3yd15mk"; - type = "gem"; - }; - version = "1.4.7"; - }; - posix-spawn = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cmb0svalqcxfzlzc5fvrci12b79x7bakasr8gkl3q5rz6di1q52"; - type = "gem"; - }; - version = "0.3.15"; - }; - premailer = { - dependencies = ["addressable" "css_parser" "htmlentities"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1f0zz3vwv1kyr43chvrpvhb8wm9qgcaz8ckc1lj2jxfp6xsss971"; - type = "gem"; - }; - version = "1.14.2"; - }; - premailer-rails = { - dependencies = ["actionmailer" "premailer"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0q23clzqgzxcg1jld7hn5jy2yqxvana3iw66vmjgzz7y4ylf97b6"; - type = "gem"; - }; - version = "1.11.1"; - }; - private_address_check = { - groups = ["production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05phz0vscfh9chv90yc9091pifw3cpwkh76flnhrmvja1q3na4cy"; - type = "gem"; - }; - version = "0.5.0"; - }; - pry = { - dependencies = ["coderay" "method_source"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk"; - type = "gem"; - }; - version = "0.13.1"; - }; - pry-byebug = { - dependencies = ["byebug" "pry"]; - groups = ["development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv"; - type = "gem"; - }; - version = "3.9.0"; - }; - pry-rails = { - dependencies = ["pry"]; - groups = ["development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6"; - type = "gem"; - }; - version = "0.3.9"; - }; - public_suffix = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb"; - type = "gem"; - }; - version = "4.0.7"; - }; - puma = { - dependencies = ["nio4r"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0dgr2rybayih2naz3658mbzqwfrg9fxl80zsvhscf6b972kp3jdw"; - type = "gem"; - }; - version = "5.6.4"; - }; - pundit = { - dependencies = ["activesupport"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "17z2f7w3syh3c04c8m1v9pvb9pfpymk8b5plszr5l24hx374xvsd"; - type = "gem"; - }; - version = "2.2.0"; - }; - raabro = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "10m8bln9d00dwzjil1k42i5r7l82x25ysbi45fwyv4932zsrzynl"; - type = "gem"; - }; - version = "1.4.0"; - }; - racc = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d"; - type = "gem"; - }; - version = "1.6.0"; - }; - rack = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16"; - type = "gem"; - }; - version = "2.2.3"; - }; - rack-attack = { - dependencies = ["rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "049s3y3dpl6dn478g912y6f9nzclnnkl30psrbc2w5kaihj5szhq"; - type = "gem"; - }; - version = "6.6.1"; - }; - rack-cors = { - dependencies = ["rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jvs0mq8jrsz86jva91mgql16daprpa3qaipzzfvngnnqr5680j7"; - type = "gem"; - }; - version = "1.1.1"; - }; - rack-oauth2 = { - dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gxxr209r8h3nxhc9h731khv6yswiv9hc6q2pg672v530xmknznw"; - type = "gem"; - }; - version = "1.19.0"; - }; - rack-proxy = { - dependencies = ["rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jdr2r5phr3q7d6k9cnxjwlkaps0my0n43wq9mzw3xdqhg9wa3d6"; - type = "gem"; - }; - version = "0.7.0"; - }; - rack-test = { - dependencies = ["rack"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; - type = "gem"; - }; - version = "1.1.0"; - }; - rails = { - dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06wzq30c2f9jhsbkxwg9n18xwyh66fnpbndkrvq1c4mrl2rx478z"; - type = "gem"; - }; - version = "6.1.6"; - }; - rails-controller-testing = { - dependencies = ["actionpack" "actionview" "activesupport"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "151f303jcvs8s149mhx2g5mn67487x0blrf9dzl76q1nb7dlh53l"; - type = "gem"; - }; - version = "1.0.5"; - }; - rails-dom-testing = { - dependencies = ["activesupport" "nokogiri"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; - type = "gem"; - }; - version = "2.0.3"; - }; - rails-html-sanitizer = { - dependencies = ["loofah"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09qrfi3pgllxb08r024lln9k0qzxs57v0slsj8616xf9c0cwnwbk"; - type = "gem"; - }; - version = "1.4.2"; - }; - rails-i18n = { - dependencies = ["i18n" "railties"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05mcgv748vppnm3fnml37wjy3dw61wj8vfw14ldaj1yx1bmkhb07"; - type = "gem"; - }; - version = "6.0.0"; - }; - rails-settings-cached = { - dependencies = ["rails"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wyhyls0aqb1iw7mnaldg39w3mnbi3anmpbvb52rjwkpj2mchhnc"; - type = "gem"; - }; - version = "0.6.6"; - }; - railties = { - dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "16dyjmy42v51acmx1ba2xxncvx368ss5rww6bsf1lwgyk4vqn41h"; - type = "gem"; - }; - version = "6.1.6"; - }; - rainbow = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503"; - type = "gem"; - }; - version = "3.1.1"; - }; - rake = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w"; - type = "gem"; - }; - version = "13.0.6"; - }; - rdf = { - dependencies = ["link_header"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15bb075k614pjiw4np29y1z2xl8qx9qgdi9rpaqa1hxcmbqaxkk5"; - type = "gem"; - }; - version = "3.2.3"; - }; - rdf-normalize = { - dependencies = ["rdf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ysa8v2xw0ln4kdwhkg6mh71v5wbancsz5cf945kbk47m1ybn271"; - type = "gem"; - }; - version = "0.5.0"; - }; - redcarpet = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bvk8yyns5s1ls437z719y5sdv9fr8kfs8dmr6g8s761dv5n8zvi"; - type = "gem"; - }; - version = "3.5.1"; - }; - redis = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "03r9739q3vq38g456snf3rk9hadf955bs5im6qs6m69h19mrz2yw"; - type = "gem"; - }; - version = "4.5.1"; - }; - redis-namespace = { - dependencies = ["redis"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ndj4lcm8rw01078zr0249grsk93zbda8qsibdvlx69b5ijg1rzf"; - type = "gem"; - }; - version = "1.8.2"; - }; - regexp_parser = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "01rmdc7ryjyajk3a4mdn68y4bvp3ly9xv610wia3291hsiqncrb6"; - type = "gem"; - }; - version = "2.4.0"; - }; - request_store = { - dependencies = ["rack"]; - groups = ["default" "production"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7"; - type = "gem"; - }; - version = "1.5.1"; - }; - responders = { - dependencies = ["actionpack" "railties"]; - groups = ["default" "pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14kjykc6rpdh24sshg9savqdajya2dislc1jmbzg91w9967f4gv1"; - type = "gem"; - }; - version = "3.0.1"; - }; - rexml = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; - type = "gem"; - }; - version = "3.2.5"; - }; - rotp = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3"; - type = "gem"; - }; - version = "6.2.0"; - }; - rpam2 = { - groups = ["default" "pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zvli3s4z1hf2l7gyfickm5i3afjrnycc3ihbiax6ji6arpbyf33"; - type = "gem"; - }; - version = "4.0.2"; - }; - rqrcode = { - dependencies = ["chunky_png" "rqrcode_core"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "10sq4aknch9rzpy8af77rqxk8rr59d33slg1kwg9h7fw9f1spmjn"; - type = "gem"; - }; - version = "2.1.1"; - }; - rqrcode_core = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg"; - type = "gem"; - }; - version = "1.2.0"; - }; - rspec-core = { - dependencies = ["rspec-support"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "118hkfw9b11hvvalr7qlylwal5h8dihagm9xg7k4gskg7587hca6"; - type = "gem"; - }; - version = "3.11.0"; - }; - rspec-expectations = { - dependencies = ["diff-lcs" "rspec-support"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "001ihayil7jpfxdlxlhakvz02kx0nk5m1w0bz6z8izdx0nc8bh53"; - type = "gem"; - }; - version = "3.11.0"; - }; - rspec-mocks = { - dependencies = ["diff-lcs" "rspec-support"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "07vagjxdm5a6s103y8zkcnja6avpl8r196hrpiffmg7sk83dqdsm"; - type = "gem"; - }; - version = "3.11.1"; - }; - rspec-rails = { - dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; - groups = ["development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cqw7bhj4a4rhh1x9i5gjm9r91ckhjyngw0zcr7jw2jnfis10d7l"; - type = "gem"; - }; - version = "5.1.2"; - }; - rspec-sidekiq = { - dependencies = ["rspec-core" "sidekiq"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1spzw3sc2p0n9qfb89y1v8igd60y7c5z9w2hjqqbbgbyjvy0agp8"; - type = "gem"; - }; - version = "3.1.0"; - }; - rspec-support = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xfk4pla77251n39zf4n792m1rhg5sn1kp63yvpvvysany34la03"; - type = "gem"; - }; - version = "3.11.0"; - }; - rspec_junit_formatter = { - dependencies = ["rspec-core"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jqh5v1kjisncfzf9z0hghkaiqab086rcgy21cy3djg828sm1bxk"; - type = "gem"; - }; - version = "0.5.1"; - }; - rubocop = { - dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0k2wp9sxqpdyc12kp8qafls0yn44vq90zxd830s7y7rxp9xq3018"; - type = "gem"; - }; - version = "1.29.1"; - }; - rubocop-ast = { - dependencies = ["parser"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1b3p4wy68jkyq8vhm5y568wlhsihy3ilnp2c6ig18xcw1slnkypl"; - type = "gem"; - }; - version = "1.18.0"; - }; - rubocop-rails = { - dependencies = ["activesupport" "rack" "rubocop"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14xagb3jbms5mlcf932kx1djn2q4k952d4xia75ll36vh7xf2fpp"; - type = "gem"; - }; - version = "2.14.2"; - }; - ruby-progressbar = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc"; - type = "gem"; - }; - version = "1.11.0"; - }; - ruby-saml = { - dependencies = ["nokogiri" "rexml"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1706dyk5jdma75bnl9rhmx8vgzjw12ixnj3y32inmpcgzgsvs76k"; - type = "gem"; - }; - version = "1.13.0"; - }; - ruby2_keywords = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz"; - type = "gem"; - }; - version = "0.0.5"; - }; - rufus-scheduler = { - dependencies = ["fugit"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jvxcvsqhalndc1wh7zfdqfg78j5sx57vrgsh54pjsm1d73q79hc"; - type = "gem"; - }; - version = "3.8.1"; - }; - safety_net_attestation = { - dependencies = ["jwt"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1khq0y5w7lf2b9a220298hphf3pakd216jc9a4x4a9pdwxs2vgln"; - type = "gem"; - }; - version = "0.4.0"; - }; - sanitize = { - dependencies = ["crass" "nokogiri"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zq8pxmsd1abw18zz6mazsm2jfpwmbgdxbpawb7bmwvkb2c5yyc1"; - type = "gem"; - }; - version = "6.0.0"; - }; - scenic = { - dependencies = ["activerecord" "railties"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cl14f5lfidbvcx52q49xnxc4dccyrzyv38qjkda8dh07zsksw85"; - type = "gem"; - }; - version = "1.6.0"; - }; - securecompare = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0ay65wba4i7bvfqyvf5i4r48q6g70s5m724diz9gdvdavscna36b"; - type = "gem"; - }; - version = "1.0.0"; - }; - semantic_range = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1dlp97vg95plrsaaqj7x8l7z9vsjbhnqk4rw1l30gy26lmxpfrih"; - type = "gem"; - }; - version = "3.0.0"; - }; - sidekiq = { - dependencies = ["connection_pool" "rack" "redis"]; - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0b06kw7frd8hrb7373pvfd39qap00ykkvipgymgwxfjzrgz0ag0d"; - type = "gem"; - }; - version = "6.4.2"; - }; - sidekiq-bulk = { - dependencies = ["sidekiq"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "08nyxzmgf742irafy3l4fj09d4s5pyvsh0dzlh8y4hl51rgkh4xv"; - type = "gem"; - }; - version = "0.2.0"; - }; - sidekiq-scheduler = { - dependencies = ["redis" "rufus-scheduler" "sidekiq" "tilt"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0kn0zzpl778345a9pc3dfc7lkgr8h1gwajs6miylmyd9krkh0yfm"; - type = "gem"; - }; - version = "4.0.0"; - }; - sidekiq-unique-jobs = { - dependencies = ["brpoplpush-redis_script" "concurrent-ruby" "sidekiq" "thor"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "170i40s7rsw66cplq2akia409vxnb8i34ypy99qpx0pxs8rp4c4d"; - type = "gem"; - }; - version = "7.1.22"; - }; - simple-navigation = { - dependencies = ["activesupport"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0izbisjc4ng77v79x6jv1z3a8fkpdb5isgjcrx60d8vl743x7hab"; - type = "gem"; - }; - version = "4.3.0"; - }; - simple_form = { - dependencies = ["actionpack" "activemodel"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09raw1gw0db9hfddgvzjwpk4hj1ng4dfq3igak80jkvhg4jdg7jp"; - type = "gem"; - }; - version = "5.1.0"; - }; - simplecov = { - dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr"; - type = "gem"; - }; - version = "0.21.2"; - }; - simplecov-html = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; - type = "gem"; - }; - version = "0.12.3"; - }; - simplecov_json_formatter = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cl3j7p3b5q7sxsx1va63c8imc5x6g99xablz08qrmqhpi0d6g6j"; - type = "gem"; - }; - version = "0.1.2"; - }; - smart_properties = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jrqssk9qhwrpq41arm712226vpcr458xv6xaqbk8cp94a0kycpr"; - type = "gem"; - }; - version = "1.17.0"; - }; - sprockets = { - dependencies = ["concurrent-ruby" "rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; - type = "gem"; - }; - version = "3.7.2"; - }; - sprockets-rails = { - dependencies = ["actionpack" "activesupport" "sprockets"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min"; - type = "gem"; - }; - version = "3.4.2"; - }; - sshkit = { - dependencies = ["net-scp" "net-ssh"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1szshiw7bzizi380z1hkdbwhjdaixb5bgbx7c3wf7970mjdashkd"; - type = "gem"; - }; - version = "1.21.2"; - }; - stackprof = { - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19rnk17rz0lhf7l9awy0s7xxyw91ydcqxlx0576xvwyi79jh6a2m"; - type = "gem"; - }; - version = "0.2.19"; - }; - statsd-ruby = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "028136c463nbravckxb1qi5c5nnv9r6vh2cyhiry423lac4xz79n"; - type = "gem"; - }; - version = "1.5.0"; - }; - stoplight = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1628qf2ynldqz20h5lkaivk166qknk15gxg130n9pvz568k1sdp8"; - type = "gem"; - }; - version = "3.0.0"; - }; - strong_migrations = { - dependencies = ["activerecord"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0yk45ri2rnp00x4mdsvwdzdd9yziqxj5v9sjk74nzw0y927y3m1w"; - type = "gem"; - }; - version = "0.7.9"; - }; - swd = { - dependencies = ["activesupport" "attr_required" "httpclient"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "12b3q2sw42nnilfb51nlqdv07f31vdv2j595kd99asnkw4cjlf5w"; - type = "gem"; - }; - version = "1.3.0"; - }; - temple = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "060zzj7c2kicdfk6cpnn40n9yjnhfrr13d0rsbdhdij68chp2861"; - type = "gem"; - }; - version = "0.8.2"; - }; - terminal-table = { - dependencies = ["unicode-display_width"]; - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14dfmfjppmng5hwj7c5ka6qdapawm3h6k9lhn8zj001ybypvclgr"; - type = "gem"; - }; - version = "3.0.2"; - }; - terrapin = { - dependencies = ["climate_control"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0p18f05r0c5s70571gqig3z2ym74wx79s6rd45sprp207bqskzn9"; - type = "gem"; - }; - version = "0.6.0"; - }; - thor = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi"; - type = "gem"; - }; - version = "1.2.1"; - }; - tilt = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv"; - type = "gem"; - }; - version = "2.0.10"; - }; - tpm-key_attestation = { - dependencies = ["bindata" "openssl-signature_algorithm"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1kdqyanz211wmxjzfiz2wg17gj6p4431qvjr0i6sp3d6268sssg4"; - type = "gem"; - }; - version = "0.9.0"; - }; - tty-color = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g"; - type = "gem"; - }; - version = "0.6.0"; - }; - tty-cursor = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr"; - type = "gem"; - }; - version = "0.7.1"; - }; - tty-prompt = { - dependencies = ["pastel" "tty-reader"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1j4y8ik82azjxshgd4i1v4wwhsv3g9cngpygxqkkz69qaa8cxnzw"; - type = "gem"; - }; - version = "0.23.1"; - }; - tty-reader = { - dependencies = ["tty-cursor" "tty-screen" "wisper"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6"; - type = "gem"; - }; - version = "0.9.0"; - }; - tty-screen = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235"; - type = "gem"; - }; - version = "0.8.1"; - }; - twitter-text = { - dependencies = ["idn-ruby" "unf"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1dnmp0bj3l01nbb52zby2c7hrazcdwfg846knkrjdfl0yfmv793z"; - type = "gem"; - }; - version = "3.1.0"; - }; - tzinfo = { - dependencies = ["concurrent-ruby"]; - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z"; - type = "gem"; - }; - version = "2.0.4"; - }; - tzinfo-data = { - dependencies = ["tzinfo"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0yvfyxz70r45j65763fzy0p5j8cxlhnpn1n5lcxj4is7hp8v5i23"; - type = "gem"; - }; - version = "1.2022.1"; - }; - unf = { - dependencies = ["unf_ext"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; - type = "gem"; - }; - version = "0.1.4"; - }; - unf_ext = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd"; - type = "gem"; - }; - version = "0.0.8"; - }; - unicode-display_width = { - groups = ["default" "development" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0csjm9shhfik0ci9mgimb7hf3xgh7nx45rkd9rzgdz6vkwr8rzxn"; - type = "gem"; - }; - version = "2.1.0"; - }; - uniform_notifier = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1614dqnky0f9f1znj0lih8i184vfps86md93dw0kxrg3af9gnqb4"; - type = "gem"; - }; - version = "1.14.2"; - }; - validate_email = { - dependencies = ["activemodel" "mail"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx"; - type = "gem"; - }; - version = "0.1.6"; - }; - validate_url = { - dependencies = ["activemodel" "public_suffix"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1bwj34rz7961rrl545f006m2jdz1nrc0m72gfqmnb41xwsvpagbk"; - type = "gem"; - }; - version = "1.0.13"; - }; - warden = { - dependencies = ["rack"]; - groups = ["default" "pam_authentication"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1l7gl7vms023w4clg02pm4ky9j12la2vzsixi2xrv9imbn44ys26"; - type = "gem"; - }; - version = "1.2.9"; - }; - webauthn = { - dependencies = ["android_key_attestation" "awrence" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "securecompare" "tpm-key_attestation"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1jpr8b2lzhvfxv47yjvw0h8sqa9aah5bnharh686xqzyjz9a823q"; - type = "gem"; - }; - version = "3.0.0.alpha1"; - }; - webfinger = { - dependencies = ["activesupport" "httpclient"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "18jj50b44a471ig7hw1ax90wxaaz40acmrf6cm7m2iyshlffy53q"; - type = "gem"; - }; - version = "1.2.0"; - }; - webmock = { - dependencies = ["addressable" "crack" "hashdiff"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1l8vh8p0g92cqcvv0ra3mblsa4nczh0rz8nbwbkc3g3yzbva85xk"; - type = "gem"; - }; - version = "3.14.0"; - }; - webpacker = { - dependencies = ["activesupport" "rack-proxy" "railties" "semantic_range"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1cq6m5qwm3bmi7hkjfmbg2cs4qjq4wswlrwcfk8l1svfqbi135v3"; - type = "gem"; - }; - version = "5.4.3"; - }; - webpush = { - dependencies = ["hkdf" "jwt"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gi7aircw2bizk08pihr9srncjy9x9iy0ymp1qgchni639k1k05s"; - type = "gem"; - }; - version = "0.3.8"; - }; - websocket-driver = { - dependencies = ["websocket-extensions"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0a3bwxd9v3ghrxzjc4vxmf4xa18c6m4xqy5wb0yk5c6b9psc7052"; - type = "gem"; - }; - version = "0.7.5"; - }; - websocket-extensions = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw"; - type = "gem"; - }; - version = "0.1.5"; - }; - wisper = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1rpsi0ziy78cj82sbyyywby4d0aw0a5q84v65qd28vqn79fbq5yf"; - type = "gem"; - }; - version = "2.0.1"; - }; - xorcist = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1q7hr3qyn1hczv9fglqc2cbaax0fb37gjjr0y24x19mmp817csdn"; - type = "gem"; - }; - version = "1.1.2"; - }; - xpath = { - dependencies = ["nokogiri"]; - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; - type = "gem"; - }; - version = "3.2.0"; - }; - zeitwerk = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m"; - type = "gem"; - }; - version = "2.5.4"; - }; -} - diff --git a/nixos/pkgs/glitch-soc/source.nix b/nixos/pkgs/glitch-soc/source.nix deleted file mode 100644 index 3879aaa..0000000 --- a/nixos/pkgs/glitch-soc/source.nix +++ /dev/null @@ -1,11 +0,0 @@ -# This file was generated by pkgs.mastodon.updateScript. -{ fetchgit, applyPatches }: let - src = fetchgit { - url = "https://github.com/glitch-soc/mastodon.git"; - rev = "444b65009411a08ddab95ec60b86b3cf63086c2e"; - sha256 = "1hb7ljzlsvfa8375lwdw7bfzn292miv03xgsgmfax1z9arjy55qn"; - }; -in applyPatches { - inherit src; - patches = []; -} diff --git a/nixos/pkgs/glitch-soc/update.nix b/nixos/pkgs/glitch-soc/update.nix deleted file mode 100644 index 1bd557a..0000000 --- a/nixos/pkgs/glitch-soc/update.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ pkgs -, runCommand -, lib -, makeWrapper -, yarn2nix -, bundix -, coreutils -, diffutils -, nix-prefetch-git -, gnused -, jq -}: -let - binPath = lib.makeBinPath [ yarn2nix bundix coreutils diffutils nix-prefetch-git gnused jq ]; -in -runCommand "mastodon-update-script" -{ - nativeBuildInputs = [ makeWrapper ]; - - meta = { - maintainers = with lib.maintainers; [ happy-river ]; - description = "Utility to generate Nix expressions for Mastodon's dependencies"; - platforms = lib.platforms.unix; - }; -} '' - mkdir -p $out/bin - cp ${./update.sh} $out/bin/update.sh - patchShebangs $out/bin/update.sh - wrapProgram $out/bin/update.sh --prefix PATH : ${binPath} -'' diff --git a/nixos/pkgs/glitch-soc/update.sh b/nixos/pkgs/glitch-soc/update.sh deleted file mode 100755 index 3a0686a..0000000 --- a/nixos/pkgs/glitch-soc/update.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env bash -set -e - -URL=https://github.com/mastodon/mastodon.git - -POSITIONAL=() -while [[ $# -gt 0 ]]; do - key="$1" - - case $key in - --url) - URL="$2" - shift # past argument - shift # past value - ;; - --ver) - VERSION="$2" - shift # past argument - shift # past value - ;; - --rev) - REVISION="$2" - shift # past argument - shift # past value - ;; - --patches) - PATCHES="$2" - shift # past argument - shift # past value - ;; - *) # unknown option - POSITIONAL+=("$1") - shift # past argument - ;; - esac -done - -if [[ -z "$VERSION" || -n "$POSITIONAL" ]]; then - echo "Usage: update.sh [--url URL] --ver VERSION [--rev REVISION] [--patches PATCHES]" - echo "URL may be any path acceptable to 'git clone' and VERSION the" - echo "semantic version number. If VERSION is not a revision acceptable to" - echo "'git checkout', you must provide one in REVISION. If URL is not" - echo "provided, it defaults to https://github.com/mastodon/mastodon.git." - echo "PATCHES, if provided, should be one or more Nix expressions" - echo "separated by spaces." - exit 1 -fi - -if [[ -z "$REVISION" ]]; then - REVISION="$VERSION" -fi - -rm -f gemset.nix version.nix source.nix -TARGET_DIR="$PWD" - - -WORK_DIR=$(mktemp -d) - -# Check that working directory was created. -if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then - echo "Could not create temporary directory" - exit 1 -fi - -# Delete the working directory on exit. -function cleanup { - # Report errors, if any, from nix-prefetch-git - grep "fatal" $WORK_DIR/nix-prefetch-git.out >/dev/stderr || true - rm -rf "$WORK_DIR" -} -trap cleanup EXIT - -echo "Fetching source code $REVISION from $URL" -JSON=$(nix-prefetch-git --url "$URL" --rev "$REVISION" 2> $WORK_DIR/nix-prefetch-git.out) -SHA=$(echo $JSON | jq -r .sha256) -FETCHED_SOURCE_DIR=$(grep '^path is' $WORK_DIR/nix-prefetch-git.out | sed 's/^path is //') - -echo "Creating version.nix" -echo \"$VERSION\" | sed 's/^"v/"/' > version.nix - -cat > source.nix << EOF -# This file was generated by pkgs.mastodon.updateScript. -{ fetchgit, applyPatches }: let - src = fetchgit { - url = "$URL"; - rev = "$REVISION"; - sha256 = "$SHA"; - }; -in applyPatches { - inherit src; - patches = [$PATCHES]; -} -EOF -SOURCE_DIR="$(nix-build --no-out-link -E '(import {}).callPackage ./source.nix {}')" - -echo "Creating gemset.nix" -bundix --lockfile="$SOURCE_DIR/Gemfile.lock" --gemfile="$SOURCE_DIR/Gemfile" -echo "" >> $TARGET_DIR/gemset.nix # Create trailing newline to please EditorConfig checks diff --git a/nixos/pkgs/glitch-soc/version.nix b/nixos/pkgs/glitch-soc/version.nix deleted file mode 100644 index 843ef58..0000000 --- a/nixos/pkgs/glitch-soc/version.nix +++ /dev/null @@ -1 +0,0 @@ -"3.5.2"