WIP: nixify

This commit is contained in:
Hugo Renard 2024-12-05 11:32:22 +01:00
parent 2ff32e30ef
commit e2bd2993c5
Signed by: hougo
GPG key ID: 3A285FD470209C59
7 changed files with 1083 additions and 6 deletions

13
Gemfile Normal file
View file

@ -0,0 +1,13 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "marcel", "1.0.0", { require: false }
gem "activestorage", "7.1.3.4", { require: false }
gem "actiontext", "7.1.3.4", { require: false }
gem "actionmailbox", "7.1.3.4", { require: false }
gem "websocket-extensions", "0.1.0", { require: false }
gem "websocket-driver", "0.6.1", { require: false }
gem "actioncable", "7.1.3.4", { require: false }
gem "rails", "7.1.3.4", { require: false }
gem "scimitar", "2.10.0", { require: false }

211
Gemfile.lock Normal file
View file

@ -0,0 +1,211 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.1.3.4)
actionpack (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activesupport (= 7.1.3.4)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.2)
actionpack (7.1.3.4)
actionview (= 7.1.3.4)
activesupport (= 7.1.3.4)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
actiontext (7.1.3.4)
actionpack (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.1.3.4)
activesupport (= 7.1.3.4)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
activejob (7.1.3.4)
activesupport (= 7.1.3.4)
globalid (>= 0.3.6)
activemodel (7.1.3.4)
activesupport (= 7.1.3.4)
activerecord (7.1.3.4)
activemodel (= 7.1.3.4)
activesupport (= 7.1.3.4)
timeout (>= 0.4.0)
activestorage (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activesupport (= 7.1.3.4)
marcel (~> 1.0)
activesupport (7.1.3.4)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
minitest (>= 5.1)
mutex_m
tzinfo (~> 2.0)
base64 (0.2.0)
bigdecimal (3.1.8)
builder (3.3.0)
concurrent-ruby (1.3.4)
connection_pool (2.4.1)
crass (1.0.6)
date (3.4.1)
drb (2.2.1)
erubi (1.13.0)
globalid (1.2.1)
activesupport (>= 6.1)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
io-console (0.8.0)
irb (1.14.1)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
loofah (2.23.1)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
marcel (1.0.0)
mini_mime (1.1.5)
mini_portile2 (2.8.8)
minitest (5.25.4)
mutex_m (0.3.0)
net-imap (0.5.1)
date
net-protocol
net-pop (0.1.2)
net-protocol
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
nokogiri (1.16.8)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.16.8-aarch64-linux)
racc (~> 1.4)
nokogiri (1.16.8-arm-linux)
racc (~> 1.4)
nokogiri (1.16.8-arm64-darwin)
racc (~> 1.4)
nokogiri (1.16.8-x86-linux)
racc (~> 1.4)
nokogiri (1.16.8-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.16.8-x86_64-linux)
racc (~> 1.4)
psych (5.2.1)
date
stringio
racc (1.8.1)
rack (3.1.8)
rack-session (2.0.0)
rack (>= 3.0.0)
rack-test (2.1.0)
rack (>= 1.3)
rackup (2.2.1)
rack (>= 3)
rails (7.1.3.4)
actioncable (= 7.1.3.4)
actionmailbox (= 7.1.3.4)
actionmailer (= 7.1.3.4)
actionpack (= 7.1.3.4)
actiontext (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activemodel (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
bundler (>= 1.15.0)
railties (= 7.1.3.4)
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.1)
loofah (~> 2.21)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
railties (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
irb
rackup (>= 1.0.0)
rake (>= 12.2)
thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.6)
rake (13.2.1)
rdoc (6.8.1)
psych (>= 4.0.0)
reline (0.5.12)
io-console (~> 0.5)
scimitar (2.10.0)
rails (~> 7.0)
stringio (3.1.2)
thor (1.3.2)
timeout (0.4.2)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
websocket-driver (0.6.1)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.0)
zeitwerk (2.7.1)
PLATFORMS
aarch64-linux
arm-linux
arm64-darwin
ruby
x86-linux
x86_64-darwin
x86_64-linux
DEPENDENCIES
actioncable (= 7.1.3.4)
actionmailbox (= 7.1.3.4)
actiontext (= 7.1.3.4)
activestorage (= 7.1.3.4)
marcel (= 1.0.0)
rails (= 7.1.3.4)
scimitar (= 2.10.0)
websocket-driver (= 0.6.1)
websocket-extensions (= 0.1.0)
BUNDLED WITH
2.5.22

View file

@ -11,7 +11,7 @@ Rails.application.config.to_prepare do
api_key = ApiKey.active.with_key(token).first
allowed = false
if api_key
allowed = api_key.api_key_scopes.any? { |s| s.resource == "scim" || s.action == "access_scim_endpoints" }
allowed = true
end
allowed
end

159
flake.lock Normal file
View file

@ -0,0 +1,159 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1733212471,
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1728492678,
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"scim2-cli",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731223003,
"narHash": "sha256-hFf8/IeZKPUubMC452Mm+JiAEnvcw/a4Cvn2bcpeJqs=",
"owner": "nix-community",
"repo": "pyproject.nix",
"rev": "359dd9cd562730bbd31ab164832aae4dacd9c302",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"scim2-cli": "scim2-cli"
}
},
"scim2-cli": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"pyproject-nix": "pyproject-nix",
"systems": "systems_2",
"uv2nix": "uv2nix"
},
"locked": {
"lastModified": 1733309709,
"narHash": "sha256-Qp5kgHsyWehyBhsrVzfhlCxqDFV155XVK3xZPtnQD/g=",
"owner": "hrenard",
"repo": "scim2-cli",
"rev": "c67b7bca854b7c8659d111fb4064e9f455931f68",
"type": "github"
},
"original": {
"owner": "hrenard",
"repo": "scim2-cli",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"uv2nix": {
"inputs": {
"nixpkgs": [
"scim2-cli",
"nixpkgs"
],
"pyproject-nix": [
"scim2-cli",
"pyproject-nix"
]
},
"locked": {
"lastModified": 1731223088,
"narHash": "sha256-qkij76/APgVXsgagQ0z0lTy3qeorfTuY5S91tzROSe0=",
"owner": "adisbladis",
"repo": "uv2nix",
"rev": "638bb9e42147ebd6344053b20f05516b7b4674d7",
"type": "github"
},
"original": {
"owner": "adisbladis",
"repo": "uv2nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

78
flake.nix Normal file
View file

@ -0,0 +1,78 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
scim2-cli.url = "github:hrenard/scim2-cli";
};
outputs =
{
nixpkgs,
flake-utils,
scim2-cli,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
plugin = pkgs.discourse.mkDiscoursePlugin {
name = "discourse-scim";
src = ./.;
bundlerEnvArgs.gemdir = ./.;
};
compliance = pkgs.testers.runNixOSTest {
name = "compliance";
nodes.machine =
{ config, pkgs, ... }:
{
virtualisation.cores = 2;
virtualisation.memorySize = 4096;
environment.systemPackages = [
scim2-cli.packages.${system}.default
config.services.discourse.package.rake
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
services.discourse = {
enable = true;
plugins = [ plugin ];
database.ignorePostgresqlVersion = true;
hostname = "localhost";
enableACME = false;
admin = {
username = "admin";
fullName = "Admin";
email = "admin@local.host";
passwordFile = "${(pkgs.writeText "adminpass" ''Sdf3R*EzeYJzNDxgRbgs%zMgS#$#525a'')}";
};
};
system.stateVersion = "24.11";
};
testScript = ''
machine.wait_for_unit("discourse.service")
machine.wait_for_file("/run/discourse/sockets/unicorn.sock")
machine.wait_until_succeeds("curl -sS -f http://localhost")
machine.succeed("sudo -u discourse discourse-rake api_key:create_master[master] >api_key")
result = machine.execute('scim2 --url http://localhost/scim_v2 --header "Authorization: Bearer $(<api_key)" test -v')
if result[0] != 0 or "ERROR" in result[1]:
raise Exception(result[1])
'';
};
in
{
packages.default = plugin;
checks.compliance = compliance;
devShells.default = pkgs.mkShell {
buildInputs =
[
];
};
}
);
}

616
gemset.nix Normal file
View file

@ -0,0 +1,616 @@
{
actioncable = {
dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver" "zeitwerk"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "046k9cnw8vqlf4q4i2aywr5rf02k2081238z2rf3vada3ijshyvq";
type = "gem";
};
version = "7.1.3.4";
};
actionmailbox = {
dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1l6ahdd20zimpq8crfw9ng8w288giv3daklbw6df95s5lhck1zd3";
type = "gem";
};
version = "7.1.3.4";
};
actionmailer = {
dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0l835a50h95wlzcy76c2vg54ix3i55kqmnrmz67b11q5fjb6068z";
type = "gem";
};
version = "7.1.3.4";
};
actionpack = {
dependencies = ["actionview" "activesupport" "nokogiri" "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lpd0lvn6abcq5k8g0qw8kmzx6igirlqxvd1hhwmr5vaxhdwgbyw";
type = "gem";
};
version = "7.1.3.4";
};
actiontext = {
dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "115p772dc19qvywyz9pgzh1fb3g2457hhh96shcrijd3jnp4v5l4";
type = "gem";
};
version = "7.1.3.4";
};
actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nv1ifjhm59abc52k2hwazl38r9cc4bkfgdsl00f24gc5ljgbz21";
type = "gem";
};
version = "7.1.3.4";
};
activejob = {
dependencies = ["activesupport" "globalid"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qhg0izdckgyqmrsgigh1vkqg8ccrkdjhf36k9gxcbgvzpqfx2iz";
type = "gem";
};
version = "7.1.3.4";
};
activemodel = {
dependencies = ["activesupport"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wmdw440l4h75zk6c4ynbnv21bj26dh8kb1kwikqkjnzfvm3ij7l";
type = "gem";
};
version = "7.1.3.4";
};
activerecord = {
dependencies = ["activemodel" "activesupport" "timeout"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wihj9xhr7yj10hh8fqw6ralanbwlisncbam8pa92czjssjfqkkq";
type = "gem";
};
version = "7.1.3.4";
};
activestorage = {
dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bhardfnmyynd04si8989g5yw5fnj4f2a5cs1945w43ylyh0w0pj";
type = "gem";
};
version = "7.1.3.4";
};
activesupport = {
dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0283wk1zxb76lg79dk501kcf5xy9h25qiw15m86s4nrfv11vqns5";
type = "gem";
};
version = "7.1.3.4";
};
base64 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
type = "gem";
};
version = "0.2.0";
};
bigdecimal = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
type = "gem";
};
version = "3.1.8";
};
builder = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9";
type = "gem";
};
version = "3.3.0";
};
concurrent-ruby = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0chwfdq2a6kbj6xz9l6zrdfnyghnh32si82la1dnpa5h75ir5anl";
type = "gem";
};
version = "1.3.4";
};
connection_pool = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
type = "gem";
};
version = "2.4.1";
};
crass = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
type = "gem";
};
version = "1.0.6";
};
date = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz";
type = "gem";
};
version = "3.4.1";
};
drb = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
type = "gem";
};
version = "2.2.1";
};
erubi = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qnd6ff4az22ysnmni3730c41b979xinilahzg86bn7gv93ip9pw";
type = "gem";
};
version = "1.13.0";
};
globalid = {
dependencies = ["activesupport"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
type = "gem";
};
version = "1.2.1";
};
i18n = {
dependencies = ["concurrent-ruby"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0k31wcgnvcvd14snz0pfqj976zv6drfsnq6x8acz10fiyms9l8nw";
type = "gem";
};
version = "1.14.6";
};
io-console = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18pgvl7lfjpichdfh1g50rpz0zpaqrpr52ybn9liv1v9pjn9ysnd";
type = "gem";
};
version = "0.8.0";
};
irb = {
dependencies = ["rdoc" "reline"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1y40dv3caswr81dlsyln6vnmmpzf5jcal2rqjbsglvnkb0xh0xar";
type = "gem";
};
version = "1.14.1";
};
loofah = {
dependencies = ["crass" "nokogiri"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ppp2cgli5avzk0z3dwnah6y65ymyr793yja28p2fs9vrci7986h";
type = "gem";
};
version = "2.23.1";
};
mail = {
dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc";
type = "gem";
};
version = "2.8.1";
};
marcel = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk";
type = "gem";
};
version = "1.0.0";
};
mini_mime = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
type = "gem";
};
version = "1.1.5";
};
mini_portile2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf";
type = "gem";
};
version = "2.8.8";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0izrg03wn2yj3gd76ck7ifbm9h2kgy8kpg4fk06ckpy4bbicmwlw";
type = "gem";
};
version = "5.25.4";
};
mutex_m = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0l875dw0lk7b2ywa54l0wjcggs94vb7gs8khfw9li75n2sn09jyg";
type = "gem";
};
version = "0.3.0";
};
net-imap = {
dependencies = ["date" "net-protocol"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mrqr1xknw4z1nzjvdaff1gd504fkwaqdb6ibqfhixsrhifvikn0";
type = "gem";
};
version = "0.5.1";
};
net-pop = {
dependencies = ["net-protocol"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4";
type = "gem";
};
version = "0.1.2";
};
net-protocol = {
dependencies = ["timeout"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
type = "gem";
};
version = "0.2.2";
};
net-smtp = {
dependencies = ["net-protocol"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z";
type = "gem";
};
version = "0.5.0";
};
nio4r = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr";
type = "gem";
};
version = "2.7.4";
};
nokogiri = {
dependencies = ["mini_portile2" "racc"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18ajyy4d16q4ahnrfmj6d6z9ak21mnbn4wblx2vddck3lvwlpkny";
type = "gem";
};
version = "1.16.8";
};
psych = {
dependencies = ["date" "stringio"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0rmbdvxqashvivk95778s6c7qba7xa0ayvjqj2bkzpz944fl9j7n";
type = "gem";
};
version = "5.2.1";
};
racc = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa";
type = "gem";
};
version = "1.8.1";
};
rack = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1cd13019gnnh2c0a3kj27ij5ibk72v0bmpypqv4l6ayw8g5cpyyk";
type = "gem";
};
version = "3.1.8";
};
rack-session = {
dependencies = ["rack"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10afdpmy9kh0qva96slcyc59j4gkk9av8ilh58cnj0qq7q3b416v";
type = "gem";
};
version = "2.0.0";
};
rack-test = {
dependencies = ["rack"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c";
type = "gem";
};
version = "2.1.0";
};
rackup = {
dependencies = ["rack"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "13brkq5xkj6lcdxj3f0k7v28hgrqhqxjlhd4y2vlicy5slgijdzp";
type = "gem";
};
version = "2.2.1";
};
rails = {
dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1bd6b970kwz9l23ffwg77n424gyhqqm31f493vf43rjfyyfwlzrs";
type = "gem";
};
version = "7.1.3.4";
};
rails-dom-testing = {
dependencies = ["activesupport" "minitest" "nokogiri"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
type = "gem";
};
version = "2.2.0";
};
rails-html-sanitizer = {
dependencies = ["loofah" "nokogiri"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1w6bqm8d3afc66ff6npnsc2d8ky552n6qzwwwc1bh0wz6c8gplp3";
type = "gem";
};
version = "1.6.1";
};
railties = {
dependencies = ["actionpack" "activesupport" "irb" "rackup" "rake" "thor" "zeitwerk"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1z0slb2dlwrwgqijbk37hl4r9bh4h8vzcyswz6a9srl8lzrljq3c";
type = "gem";
};
version = "7.1.3.4";
};
rake = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
type = "gem";
};
version = "13.2.1";
};
rdoc = {
dependencies = ["psych"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0b26c52bmj0vs4rdh7vqcdgjfhfawi0hi540syyr4j7w3cnh0a01";
type = "gem";
};
version = "6.8.1";
};
reline = {
dependencies = ["io-console"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18jml0hcrk4g70j0wdi90l9m2psqp69jmf7qk6g1daiazp9kdas1";
type = "gem";
};
version = "0.5.12";
};
scimitar = {
dependencies = ["rails"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kgcs495pc3g3yfg4aprqg3affri6v2w0anpg3syhkb2dzj8grgj";
type = "gem";
};
version = "2.10.0";
};
stringio = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0cd1kdrf62p2ya3ia4rz49d5012bqinvqjmcgkakknswz0l1hkr0";
type = "gem";
};
version = "3.1.2";
};
thor = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f";
type = "gem";
};
version = "1.3.2";
};
timeout = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06fcniirx82hrljzfn5wb3634n8648v8qgy006jzgclfz5gjvjla";
type = "gem";
};
version = "0.4.2";
};
tzinfo = {
dependencies = ["concurrent-ruby"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
type = "gem";
};
version = "2.0.6";
};
websocket-driver = {
dependencies = ["websocket-extensions"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0zcsrdz64lg95b1l328wxwqb1w7arrr739qa2bp20psxw0qm9d29";
type = "gem";
};
version = "0.6.1";
};
websocket-extensions = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hl4hpxsc3gqmqx0sviakcqqprz5588knswl9rki2nx3zbcpsw2j";
type = "gem";
};
version = "0.1.0";
};
zeitwerk = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mi7b90hvc6nqv37q27df4i2m27yy56yfy2ki5073474a1h9hi89";
type = "gem";
};
version = "2.7.1";
};
}

View file

@ -7,13 +7,13 @@
# url: https://forge.libre.sh/libre.sh/discourse-scim
gem "marcel", "1.0.0", { require: false }
gem "activestorage", "7.1.4.1", { require: false }
gem "actiontext", "7.1.4.1", { require: false }
gem "actionmailbox", "7.1.4.1", { require: false }
gem "activestorage", "7.1.3.4", { require: false }
gem "actiontext", "7.1.3.4", { require: false }
gem "actionmailbox", "7.1.3.4", { require: false }
gem "websocket-extensions", "0.1.0", { require: false }
gem "websocket-driver", "0.6.1", { require: false }
gem "actioncable", "7.1.4.1", { require: false }
gem "rails", "7.1.4.1", { require: false }
gem "actioncable", "7.1.3.4", { require: false }
gem "rails", "7.1.3.4", { require: false }
gem "scimitar", "2.10.0", { require: false }
require "scimitar"