Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-01-27 18:05:00 +00:00
committed by GitHub
234 changed files with 1756 additions and 1253 deletions
+6 -11
View File
@@ -1843,6 +1843,12 @@
githubId = 53097078;
name = "AJ Reifsnyder";
};
arexon = {
email = "arexonreal@gmail.com";
github = "arexon";
githubId = 65680034;
name = "arexon";
};
arezvov = {
email = "alex@rezvov.ru";
github = "arezvov";
@@ -24563,17 +24569,6 @@
github = "waynr";
githubId = 1441126;
};
wbondanza_devoteam = {
name = "Wilson Bondanza";
email = "wilson.bondanza@devoteam.com";
github = "wbondanza-devoteam";
githubId = 195292349;
keys = [
{
fingerprint = "61F3 9F46 606D 655F 4E8D 6C82 B623 05E6 1563 8A9E";
}
];
};
wchresta = {
email = "wchresta.nix@chrummibei.ch";
github = "wchresta";
@@ -36,6 +36,8 @@
- `nixos-option` has been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending into `attrsOf` and `listOf` submodule options, and `--show-trace`.
- The Mattermost module ({option}`services.mattermost`) and packages (`mattermost` and `mmctl`) have been substantially updated:
- {option}`services.mattermost.preferNixConfig` now defaults to true if you advance {option}`system.stateVersion` to 25.05. This means that if you have {option}`services.mattermost.mutableConfig` set, NixOS will override your settings to those that you define in the module. It is recommended to leave this at the default, even if you used a mutable config before, because it will ensure that your Mattermost data directories are correct. If you moved your data directories, you may want to review the module changes before upgrading.
- Mattermost telemetry reporting is now disabled by default, though security update notifications are enabled. Look at {option}`services.mattermost.telemetry` for options to control this behavior.
- `pkgs.mattermostLatest` is now an option to track the latest (non-prerelease) Mattermost release. We test upgrade migrations from ESR releases (`pkgs.mattermost`) to `pkgs.mattermostLatest`.
- The Mattermost frontend is now built from source and can be overridden.
- Note that the Mattermost derivation containing both the webapp and server is now wrapped to allow them to be built independently, so overrides to both webapp and server look like `mattermost.overrideAttrs (prev: { webapp = prev.webapp.override { ... }; server = prev.server.override { ... }; })` now.
@@ -121,6 +123,8 @@
- [Fider](https://fider.io/), an open platform to collect and prioritize feedback. Available as [services.fider](#opt-services.fider.enable).
- [PDS](https://github.com/bluesky-social/pds), Personal Data Server for [bsky](https://bsky.social/). Available as [services.pds](option.html#opt-services.pds).
- [mqtt-exporter](https://github.com/kpetremann/mqtt-exporter/), a Prometheus exporter for exposing messages from MQTT. Available as [services.prometheus.exporters.mqtt](#opt-services.prometheus.exporters.mqtt.enable).
- [nvidia-gpu](https://github.com/utkuozdemir/nvidia_gpu_exporter), a Prometheus exporter that scrapes `nvidia-smi` for GPU metrics. Available as [services.prometheus.exporters.nvidia-gpu](#opt-services.prometheus.exporters.nvidia-gpu.enable).
+2 -2
View File
@@ -135,7 +135,7 @@ in
type = types.lines;
description = ''
Extra configuration options that will be added verbatim at
the end of the nslcd configuration file (`nslcd.conf(5)`).
the end of the nslcd configuration file ({manpage}`nslcd.conf(5)`).
'';
};
@@ -219,7 +219,7 @@ in
type = types.lines;
description = ''
Extra configuration options that will be added verbatim at
the end of the ldap configuration file (`ldap.conf(5)`).
the end of the ldap configuration file ({manpage}`ldap.conf(5)`).
If {option}`users.ldap.daemon` is enabled, this
configuration will not be used. In that case, use
{option}`users.ldap.daemon.extraConfig` instead.
+1 -1
View File
@@ -111,7 +111,7 @@ in
- `0` (or `"plain"`):
No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
- `1` (or `"Y"`):
Use crypt(3) function.
Use {manpage}`crypt(3)` function.
- `2` (or `"mysql"`):
Use the MySQL PASSWORD() function. It is possible that the encryption function used
by `pam_mysql` is different from that of the MySQL server, as
+3 -3
View File
@@ -46,7 +46,7 @@ let
If not specified, the amount of data to read from `source` will be
determined by cryptsetup.
See `cryptsetup-open(8)` for details.
See `{manpage}`cryptsetup-open(8)`` for details.
'';
};
@@ -60,7 +60,7 @@ let
If not specified, the default sector size is determined from the
underlying block device.
See `cryptsetup-open(8)` for details.
See `{manpage}`cryptsetup-open(8)`` for details.
'';
};
@@ -158,7 +158,7 @@ let
whole swap space is discarded at swapon invocation. If "pages",
asynchronous discard on freed pages is performed, before returning to
the available pages pool. With "both", both policies are activated.
See swapon(8) for more information.
See {manpage}`swapon(8)` for more information.
'';
};
+1 -1
View File
@@ -204,7 +204,7 @@ let
homeMode = mkOption {
type = types.strMatching "[0-7]{1,5}";
default = "700";
description = "The user's home directory mode in numeric format. See chmod(1). The mode is only applied if {option}`users.users.<name>.createHome` is true.";
description = "The user's home directory mode in numeric format. See {manpage}`chmod(1)`. The mode is only applied if {option}`users.users.<name>.createHome` is true.";
};
cryptHomeLuks = mkOption {
+1 -1
View File
@@ -28,7 +28,7 @@ in
description = ''
Configuration for `xdg-desktop-portal-wlr`.
See `xdg-desktop-portal-wlr(5)` for supported
See {manpage}`xdg-desktop-portal-wlr(5)` for supported
values.
'';
+1
View File
@@ -1547,6 +1547,7 @@
./services/web-apps/mobilizon.nix
./services/web-apps/openwebrx.nix
./services/web-apps/outline.nix
./services/web-apps/pds.nix
./services/web-apps/peering-manager.nix
./services/web-apps/peertube.nix
./services/web-apps/pgpkeyserver-lite.nix
+1 -1
View File
@@ -26,7 +26,7 @@ in
default = { };
description = ''
System-wide configuration for GameMode (/etc/gamemode.ini).
See gamemoded(8) man page for available settings.
See {manpage}`gamemoded(8)` man page for available settings.
'';
example = lib.literalExpression ''
{
+1 -1
View File
@@ -47,7 +47,7 @@ in
`config` to `[ { foo.x = 42; } { bar.y = 42; }]` will put the `foo`
section before the `bar` section unlike the default alphabetical
order, which can be helpful for sections such as `include` and
`includeIf`. See the CONFIGURATION FILE section of git-config(1) for
`includeIf`. See the CONFIGURATION FILE section of {manpage}`git-config(1)` for
more information.
'';
};
+3 -3
View File
@@ -34,7 +34,7 @@ in
};
description = ''
Default values applied to all accounts.
See msmtp(1) for the available options.
See {manpage}`msmtp(1)` for the available options.
'';
};
@@ -52,7 +52,7 @@ in
description = ''
Named accounts and their respective configurations.
The special name "default" allows a default account to be defined.
See msmtp(1) for the available options.
See {manpage}`msmtp(1)` for the available options.
Use `programs.msmtp.extraConfig` instead of this attribute set-based
option if ordered account inheritance is needed.
@@ -68,7 +68,7 @@ in
default = "";
description = ''
Extra lines to add to the msmtp configuration verbatim.
See msmtp(1) for the syntax and available options.
See {manpage}`msmtp(1)` for the syntax and available options.
'';
};
};
+1 -1
View File
@@ -31,7 +31,7 @@ in
description = ''
Config options for the /etc/login.defs file, that defines
the site-specific configuration for the shadow password suite.
See login.defs(5) man page for available options.
See {manpage}`login.defs(5)` man page for available options.
'';
type = lib.types.submodule {
freeformType = (pkgs.formats.keyValue { }).type;
+1 -1
View File
@@ -1483,7 +1483,7 @@ in
the YubiCloud.
Use "challenge-response" for offline validation using YubiKeys with HMAC-SHA-1
Challenge-Response configurations. See the man-page ykpamcfg(1) for further
Challenge-Response configurations. See the man-page {manpage}`ykpamcfg(1)` for further
details on how to configure offline Challenge-Response validation.
More information can be found [here](https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html).
+1 -1
View File
@@ -214,7 +214,7 @@ in
example = "10G";
type = lib.types.str;
description = ''
Size limit for the /run/wrappers tmpfs. Look at mount(8), tmpfs size option,
Size limit for the /run/wrappers tmpfs. Look at {manpage}`mount(8)`, tmpfs size option,
for the accepted syntax. WARNING: don't set to less than 64MB.
'';
};
+2 -2
View File
@@ -163,7 +163,7 @@ in
default = 10;
};
ioSchedulingClass = mkOption {
description = "IO scheduling class for btrbk (see ionice(1) for a quick description). Applies to local instances, and remote ones connecting by ssh if set to idle.";
description = "IO scheduling class for btrbk (see {manpage}`ionice(1)` for a quick description). Applies to local instances, and remote ones connecting by ssh if set to idle.";
type = types.enum [
"idle"
"best-effort"
@@ -181,7 +181,7 @@ in
type = types.nullOr types.str;
default = "daily";
description = ''
How often this btrbk instance is started. See systemd.time(7) for more information about the format.
How often this btrbk instance is started. See {manpage}`systemd.time(7)` for more information about the format.
Setting it to null disables the timer, thus this instance can only be started manually.
'';
};
+1 -1
View File
@@ -23,7 +23,7 @@ in
default = null;
description = ''
file containing the credentials to access the repository, in the
format of an EnvironmentFile as described by systemd.exec(5)
format of an EnvironmentFile as described by {manpage}`systemd.exec(5)`
'';
};
+4 -4
View File
@@ -60,8 +60,8 @@ in
`"/root/tarsnap.key"`.
It's recommended for backups that you generate a key for every archive
using `tarsnap-keygen(1)`, and then generate a
write-only tarsnap key using `tarsnap-keymgmt(1)`,
using {manpage}`tarsnap-keygen(1)`, and then generate a
write-only tarsnap key using {manpage}`tarsnap-keymgmt(1)`,
and keep your master key(s) for a particular machine off-site.
The keyfile name should be given as a string and not a path, to
@@ -86,11 +86,11 @@ in
Use this option if you want to run multiple backups
concurrently - each archive must have a unique key. You can
generate a write-only key derived from your master key (which
is recommended) using `tarsnap-keymgmt(1)`.
is recommended) using {manpage}`tarsnap-keymgmt(1)`.
Note: every archive must have an individual master key. You
must generate multiple keys with
`tarsnap-keygen(1)`, and then generate write
{manpage}`tarsnap-keygen(1)`, and then generate write
only keys from those.
The keyfile name should be given as a string and not a path, to
@@ -227,7 +227,7 @@ in
environmentFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
description = ''
File path containing environment variables for configuring the k3s service in the format of an EnvironmentFile. See systemd.exec(5).
File path containing environment variables for configuring the k3s service in the format of an EnvironmentFile. See {manpage}`systemd.exec(5)`.
'';
default = null;
};
+1 -1
View File
@@ -136,7 +136,7 @@ let
default = null;
example = "1 6 3 4 5 0 7";
description = ''
Sets the logical button mapping for this device, see XSetPointerMapping(3). The string must
Sets the logical button mapping for this device, see {manpage}`XSetPointerMapping(3)`. The string must
be a space-separated list of button mappings in the order of the logical buttons on the
device, starting with button 1. The default mapping is "1 2 3 ... 32". A mapping of 0 deac
tivates the button. Multiple buttons can have the same mapping. Invalid mapping strings are
+2 -2
View File
@@ -249,7 +249,7 @@ in
];
description = ''
A list of extra command line arguments to pass to thinkfan.
Check the thinkfan(1) manpage for available arguments.
Check the {manpage}`thinkfan(1)` manpage for available arguments.
'';
};
@@ -259,7 +259,7 @@ in
description = ''
Thinkfan settings. Use this option to configure thinkfan
settings not exposed in a NixOS option or to bypass one.
Before changing this, read the `thinkfan.conf(5)`
Before changing this, read the `{manpage}`thinkfan.conf(5)``
manpage and take a look at the example config file at
<https://github.com/vmatare/thinkfan/blob/master/examples/thinkfan.yaml>
'';
+1 -1
View File
@@ -65,7 +65,7 @@ in
on or off. We can't do much to fix these problems, but this is a way
for users to make the laptop panel vanish, a state that might be used
by a couple of user-space daemons. On Linux systems, see also
logind.conf(5).
{manpage}`logind.conf(5)`.
'';
};
@@ -67,7 +67,7 @@ in
];
description = ''
A list of device nodes to which {command}`esphome` has access to.
Refer to DeviceAllow in systemd.resource-control(5) for more information.
Refer to DeviceAllow in {manpage}`systemd.resource-control(5)` for more information.
Beware that if a device is referred to by an absolute path instead of a device category,
it will only allow devices that already are plugged in when the service is started.
'';
@@ -135,7 +135,7 @@ in
this patternBlock's {option}`filters` are applied.
If `value` starts and ends with a slash, it is interpreted as
an extended python regular expression, if not, it's an exact match.
The journal fields are explained in systemd.journal-fields(7).
The journal fields are explained in {manpage}`systemd.journal-fields(7)`.
'';
};
@@ -210,7 +210,7 @@ in
description = ''
How often to run journalwatch.
The format is described in systemd.time(7).
The format is described in {manpage}`systemd.time(7)`.
'';
};
accuracy = lib.mkOption {
@@ -219,7 +219,7 @@ in
description = ''
The time window around the interval in which the journalwatch run will be scheduled.
The format is described in systemd.time(7).
The format is described in {manpage}`systemd.time(7)`.
'';
};
};
+1 -1
View File
@@ -70,7 +70,7 @@ in
type = lib.types.bool;
default = false;
description = ''
Accept logging through UDP. Option -r of syslogd(8).
Accept logging through UDP. Option -r of {manpage}`syslogd(8)`.
'';
};
+3 -3
View File
@@ -43,7 +43,7 @@ in
default = "";
example = "X-Virus-Scanned: ClamAV using ClamSMTP";
description = ''
A header to add to scanned messages. See clamsmtpd.conf(5) for
A header to add to scanned messages. See {manpage}`clamsmtpd.conf(5)` for
more details. Empty means no header.
'';
};
@@ -65,7 +65,7 @@ in
example = "127.0.0.1:10025";
description = ''
Address to wait for incoming SMTP connections on. See
clamsmtpd.conf(5) for more details.
{manpage}`clamsmtpd.conf(5)` for more details.
'';
};
@@ -118,7 +118,7 @@ in
default = null;
description = ''
Command to run when a virus is found. Please see VIRUS ACTION in
clamsmtpd(8) for a discussion of this option and its safe use.
{manpage}`clamsmtpd(8)` for a discussion of this option and its safe use.
'';
};
+3 -3
View File
@@ -80,7 +80,7 @@ in
type = int;
default = 32;
description = ''
Socket listen queue backlog size. See listen(2) for more information about a backlog.
Socket listen queue backlog size. See {manpage}`listen(2)` for more information about a backlog.
Default is 32, which may be increased if you have a very high connection rate.
'';
};
@@ -194,7 +194,7 @@ in
DAEMON = mkOption {
default = { };
description = ''
This section lists long running daemons to start before any SERVICES are spawned. master(8) will ensure that these processes are running, restarting any process which dies or forks. All listed processes will be shutdown when master(8) is exiting.
This section lists long running daemons to start before any SERVICES are spawned. {manpage}`master(8)` will ensure that these processes are running, restarting any process which dies or forks. All listed processes will be shutdown when {manpage}`master(8)` is exiting.
'';
};
};
@@ -221,7 +221,7 @@ in
type = path;
default = "/run/cyrus/lmtp";
description = ''
Unix socket that lmtpd listens on, used by deliver(8). This should match the path specified in cyrus.conf(5).
Unix socket that lmtpd listens on, used by {manpage}`deliver(8)`. This should match the path specified in {manpage}`cyrus.conf(5)`.
'';
};
idlesocket = mkOption {
+2 -2
View File
@@ -37,13 +37,13 @@ in
onCalendar = lib.mkOption {
type = lib.types.str;
default = "*:0/3"; # every 3 minutes
description = "How often is offlineimap started. Default is '*:0/3' meaning every 3 minutes. See systemd.time(7) for more information about the format.";
description = "How often is offlineimap started. Default is '*:0/3' meaning every 3 minutes. See {manpage}`systemd.time(7)` for more information about the format.";
};
timeoutStartSec = lib.mkOption {
type = lib.types.str;
default = "120sec"; # Kill if still alive after 2 minutes
description = "How long waiting for offlineimap before killing it. Default is '120sec' meaning every 2 minutes. See systemd.time(7) for more information about the format.";
description = "How long waiting for offlineimap before killing it. Default is '120sec' meaning every 2 minutes. See {manpage}`systemd.time(7)` for more information about the format.";
};
};
config = lib.mkIf (cfg.enable || cfg.install) {
+1 -1
View File
@@ -65,7 +65,7 @@ in
defaultText = lib.literalExpression ''"csl:''${config.networking.hostName}"'';
example = "csl:example.com,mydomain.net";
description = ''
Local domains set (see `opendkim(8)` for more information on datasets).
Local domains set (see {manpage}`opendkim(8)` for more information on datasets).
Messages from them are signed, not verified.
'';
};
+4 -4
View File
@@ -546,7 +546,7 @@ in
type = lib.types.lines;
default = "";
description = ''
Additional entries to put verbatim into aliases file, cf. man-page aliases(8).
Additional entries to put verbatim into aliases file, cf. man-page {manpage}`aliases(8)`.
'';
};
@@ -631,7 +631,7 @@ in
type = lib.types.lines;
default = "";
description = ''
Entries for the virtual alias map, cf. man-page virtual(5).
Entries for the virtual alias map, cf. man-page {manpage}`virtual(5)`.
'';
};
@@ -654,7 +654,7 @@ in
List of accepted local users. Specify a bare username, an
`"@domain.tld"` wild-card, or a complete
`"user@domain.tld"` address. If set, these names end
up in the local recipient map -- see the local(8) man-page -- and
up in the local recipient map -- see the {manpage}`local(8)` man-page -- and
effectively replace the system user database lookup that's otherwise
used by default.
'';
@@ -664,7 +664,7 @@ in
default = "";
type = lib.types.lines;
description = ''
Entries for the transport map, cf. man-page transport(8).
Entries for the transport map, cf. man-page {manpage}`transport(8)`.
'';
};
+3 -3
View File
@@ -119,7 +119,7 @@ in
greylistAction = mkOption {
type = str;
default = "DEFER_IF_PERMIT";
description = "Response status for greylisted messages (see access(5))";
description = "Response status for greylisted messages (see {manpage}`access(5)`)";
};
greylistHeader = mkOption {
type = str;
@@ -170,12 +170,12 @@ in
whitelistClients = mkOption {
type = listOf path;
default = [ ];
description = "Client address whitelist files (see postgrey(8))";
description = "Client address whitelist files (see {manpage}`postgrey(8)`)";
};
whitelistRecipients = mkOption {
type = listOf path;
default = [ ];
description = "Recipient address whitelist files (see postgrey(8))";
description = "Recipient address whitelist files (see {manpage}`postgrey(8)`)";
};
};
};
+1 -1
View File
@@ -49,7 +49,7 @@ in
'''
'';
description = ''
Contents of `/etc/auto.master` file. See {command}`auto.master(5)` and {command}`autofs(5)`.
Contents of `/etc/auto.master` file. See {manpage}`auto.master(5)` and {manpage}`autofs(5)`.
'';
};
+1 -1
View File
@@ -105,7 +105,7 @@ in
];
description = ''
A list of extra command line arguments to pass to gpsd.
Check gpsd(8) mangpage for possible arguments.
Check {manpage}`gpsd(8)` mangpage for possible arguments.
'';
};
@@ -54,7 +54,7 @@ in
default = null;
description = ''
File containing the credentials to access the repository, in the
format of an EnvironmentFile as described by systemd.exec(5)
format of an EnvironmentFile as described by {manpage}`systemd.exec(5)`
'';
};
@@ -35,7 +35,7 @@ in
type = lib.types.lines;
default = "";
example = "brun 10%";
description = "Additional configuration file entries. See cachefilesd.conf(5) for more information.";
description = "Additional configuration file entries. See {manpage}`cachefilesd.conf(5)` for more information.";
};
};
@@ -73,7 +73,7 @@ in
});
description = ''
This cell's database server records, added to the global
CellServDB. See CellServDB(5) man page for syntax. Ignored when
CellServDB. See {manpage}`CellServDB(5)` man page for syntax. Ignored when
`afsdb` is set to `true`.
'';
example = [
@@ -117,7 +117,7 @@ in
advertisedAddresses = mkOption {
type = types.listOf types.str;
default = [ ];
description = "List of IP addresses this server is advertised under. See NetInfo(5)";
description = "List of IP addresses this server is advertised under. See {manpage}`NetInfo(5)`";
};
cellName = mkOption {
+2 -2
View File
@@ -146,7 +146,7 @@ in
};
repos = lib.mkOption {
description = "cgit repository settings, see cgitrc(5)";
description = "cgit repository settings, see {manpage}`cgitrc(5)`";
type = with lib.types; attrsOf (attrsOf settingType);
default = { };
example = {
@@ -165,7 +165,7 @@ in
};
settings = lib.mkOption {
description = "cgit configuration, see cgitrc(5)";
description = "cgit configuration, see {manpage}`cgitrc(5)`";
type = lib.types.attrsOf repeatedSettingType;
default = { };
example = lib.literalExpression ''
@@ -194,7 +194,7 @@ in
will be symlinked to the location given here.
This file must exist and be
readable only by the `uucp` user.
See hosts.hfaxd(5) for details.
See {manpage}`hosts.hfaxd(5)` for details.
This configuration permits access for all users:
```
environment.etc."hosts.hfaxd" = {
@@ -299,7 +299,7 @@ in
description = ''
purging old files from the spooling area with
{file}`faxcron` with the given frequency
(see systemd.time(7))
(see {manpage}`systemd.time(7)`)
'';
};
faxcron.infoDays = mkOption {
@@ -339,7 +339,7 @@ in
description = ''
Purge old files from the spooling area with
{file}`faxcron` with the given frequency
(see systemd.time(7)).
(see {manpage}`systemd.time(7)`).
'';
};
faxqclean.archiving = mkOption {
@@ -356,7 +356,7 @@ in
`as-flagged` archives jobs that
have been flagged for archiving by sendfax,
`always` forces archiving of all jobs.
See also sendfax(1) and faxqclean(8).
See also {manpage}`sendfax(1)` and {manpage}`faxqclean(8)`.
'';
};
faxqclean.doneqMinutes = mkOption {
@@ -12,7 +12,7 @@ in {
options.services.minidlna.settings = lib.mkOption {
default = {};
description = "Configuration for `minidlna.conf(5)`.";
description = "Configuration for {manpage}`minidlna.conf(5)`.";
type = lib.types.submodule {
freeformType = format.type;
+1 -1
View File
@@ -29,7 +29,7 @@ in
enable = mkEnableOption "the ngircd IRC server";
config = mkOption {
description = "The ngircd configuration (see ngircd.conf(5)).";
description = "The ngircd configuration (see {manpage}`ngircd.conf(5)`).";
type = types.lines;
};
+1 -1
View File
@@ -58,7 +58,7 @@ in
interfaces and displays its findings at http://localhost:''${toString
config.${opt.http-port}}. Default username and password is admin/admin.
See the ntopng(8) manual page and http://www.ntop.org/products/ntop/
See the {manpage}`ntopng(8)` manual page and http://www.ntop.org/products/ntop/
for more info.
Note that enabling ntopng will also enable redis (key-value
+1 -1
View File
@@ -53,7 +53,7 @@ in
config = mkOption {
type = types.lines;
default = "";
description = "pppd configuration for this peer, see the pppd(8) man page.";
description = "pppd configuration for this peer, see the {manpage}`pppd(8)` man page.";
};
};
}
@@ -114,7 +114,7 @@ in
the disk usage, since Privoxy itself never deletes the certificates.
::: {.note}
The format is that of the `tmpfiles.d(5)`
The format is that of the {manpage}`tmpfiles.d(5)`
Age parameter.
:::
'';
@@ -45,7 +45,7 @@ in
type = types.str;
description = ''
File containing the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
in the format of an EnvironmentFile as described by systemd.exec(5)
in the format of an EnvironmentFile as described by {manpage}`systemd.exec(5)`
'';
};
@@ -13,7 +13,7 @@ in
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
description = ''Extra flags passed to the {command}`robustirc-bridge` command. See [RobustIRC Documentation](https://robustirc.net/docs/adminguide.html#_bridge) or robustirc-bridge(1) for details.'';
description = ''Extra flags passed to the {command}`robustirc-bridge` command. See [RobustIRC Documentation](https://robustirc.net/docs/adminguide.html#_bridge) or {manpage}`robustirc-bridge(1)` for details.'';
example = [
"-network robustirc.net"
];
@@ -16,7 +16,7 @@ with lib;
description = ''
Whether to enable `rpcbind`, an ONC RPC directory service
notably used by NFS and NIS, and which can be queried
using the rpcinfo(1) command. `rpcbind` is a replacement for
using the {manpage}`rpcinfo(1)` command. `rpcbind` is a replacement for
`portmap`.
'';
};
+1 -1
View File
@@ -56,7 +56,7 @@ in
type = types.nullOr types.path;
default = null;
description = ''
Environment file (see `systemd.exec(5)`
Environment file (see {manpage}`systemd.exec(5)`
"EnvironmentFile=" section for the syntax) to define variables for
Searx. This option can be used to safely include secret keys into the
Searx configuration.
@@ -53,7 +53,7 @@ in {
description = ''
Address to listen on. Must be in the
`ListenStream=` syntax of
[systemd.socket(5)](https://www.freedesktop.org/software/systemd/man/systemd.socket.html).
{manpage}`systemd.socket(5)`.
'';
};
@@ -357,7 +357,7 @@ in
type = lib.types.nullOr (lib.types.enum [ "QUIET" "FATAL" "ERROR" "INFO" "VERBOSE" "DEBUG" "DEBUG1" "DEBUG2" "DEBUG3" ]);
default = "INFO"; # upstream default
description = ''
Gives the verbosity level that is used when logging messages from sshd(8). Logging with a DEBUG level
Gives the verbosity level that is used when logging messages from {manpage}`sshd(8)`. Logging with a DEBUG level
violates the privacy of users and is not recommended.
'';
};
@@ -369,7 +369,7 @@ in
# apply if cfg.useDns then "yes" else "no"
default = false;
description = ''
Specifies whether sshd(8) should look up the remote host name, and to check that the resolved host name for
Specifies whether {manpage}`sshd(8)` should look up the remote host name, and to check that the resolved host name for
the remote IP address maps back to the very same IP address.
If this option is set to no (the default) then only addresses and not host names may be used in
~/.ssh/authorized_keys from and sshd_config Match Host directives.
@@ -16,7 +16,7 @@ with lib;
data = mkOption {
type = types.lines;
default = "";
description = "The DNS data to serve, in the format described by tinydns-data(8)";
description = "The DNS data to serve, in the format described by {manpage}`tinydns-data(8)`";
};
ip = mkOption {
+3 -3
View File
@@ -53,7 +53,7 @@ in
type = lib.types.str;
default = "hourly";
description = ''
How often freshclam is invoked. See systemd.time(7) for more
How often freshclam is invoked. See {manpage}`systemd.time(7)` for more
information about the format.
'';
};
@@ -74,7 +74,7 @@ in
type = lib.types.str;
default = "hourly";
description = ''
How often freshclam is invoked. See systemd.time(7) for more
How often freshclam is invoked. See {manpage}`systemd.time(7)` for more
information about the format.
'';
};
@@ -105,7 +105,7 @@ in
type = lib.types.str;
default = "*-*-* 04:00:00";
description = ''
How often clamdscan is invoked. See systemd.time(7) for more
How often clamdscan is invoked. See {manpage}`systemd.time(7)` for more
information about the format.
By default this runs using 10 cores at most, be sure to run it at a time of low traffic.
'';
@@ -181,7 +181,7 @@ in
defaultText = literalExpression "if cfg.package == pkgs.transmission_3 then 18 else \"022\"";
description = ''
Sets transmission's file mode creation mask.
See the umask(2) manpage for more information.
See the {manpage}`umask(2)` manpage for more information.
Users who want their saved torrents to be world-writable
may want to set this value to 0/`"000"`.
+8 -8
View File
@@ -173,7 +173,7 @@ in
type = str;
default = "daily";
description = ''
Specification (in the format described by systemd.time(7)) of the
Specification (in the format described by {manpage}`systemd.time(7)`) of the
time at which the LoTW upload will occur.
'';
};
@@ -191,7 +191,7 @@ in
type = str;
default = "daily";
description = ''
Specification (in the format described by systemd.time(7)) of the time
Specification (in the format described by {manpage}`systemd.time(7)`) of the time
at which the Clublog upload will occur.
'';
};
@@ -210,7 +210,7 @@ in
type = str;
default = "weekly";
description = ''
Specification (in the format described by systemd.time(7)) of the
Specification (in the format described by {manpage}`systemd.time(7)`) of the
time at which the LoTW user update will occur.
'';
};
@@ -228,7 +228,7 @@ in
type = str;
default = "monthly";
description = ''
Specification (in the format described by systemd.time(7)) of the
Specification (in the format described by {manpage}`systemd.time(7)`) of the
time at which the DOK update will occur.
'';
};
@@ -247,7 +247,7 @@ in
type = str;
default = "monthly";
description = ''
Specification (in the format described by systemd.time(7)) of the time
Specification (in the format described by {manpage}`systemd.time(7)`) of the time
at which the Clublog SCP update will occur.
'';
};
@@ -266,7 +266,7 @@ in
type = str;
default = "monthly";
description = ''
Specification (in the format described by systemd.time(7)) of the time
Specification (in the format described by {manpage}`systemd.time(7)`) of the time
at which the WWFF update will occur.
'';
};
@@ -284,7 +284,7 @@ in
type = str;
default = "daily";
description = ''
Specification (in the format described by systemd.time(7)) of the
Specification (in the format described by {manpage}`systemd.time(7)`) of the
time at which the QRZ upload will occur.
'';
};
@@ -302,7 +302,7 @@ in
type = str;
default = "monthly";
description = ''
Specification (in the format described by systemd.time(7)) of the time
Specification (in the format described by {manpage}`systemd.time(7)`) of the time
at which the SOTA update will occur.
'';
};
+1 -1
View File
@@ -51,7 +51,7 @@ in
type = types.nullOr types.path;
default = null;
description = ''
Environment file (see `systemd.exec(5)`
Environment file (see {manpage}`systemd.exec(5)`
"EnvironmentFile=" section for the syntax) to define variables for dex.
This option can be used to safely include secret keys into the dex configuration.
'';
@@ -80,7 +80,7 @@ in
type = lib.types.nullOr lib.types.path;
description = ''
File path containing environment variables for configuring the GoToSocial service
in the format of an EnvironmentFile as described by systemd.exec(5).
in the format of an EnvironmentFile as described by {manpage}`systemd.exec(5)`.
This option could be used to pass sensitive configuration to the GoToSocial daemon.
+32 -2
View File
@@ -202,6 +202,7 @@ let
ListenAddress = "${cfg.host}:${toString cfg.port}";
LocalModeSocketLocation = cfg.socket.path;
EnableLocalMode = cfg.socket.enable;
EnableSecurityFixAlert = cfg.telemetry.enableSecurityAlerts;
};
TeamSettings.SiteName = cfg.siteName;
SqlSettings.DriverName = cfg.database.driver;
@@ -233,7 +234,13 @@ let
FileSettings.Directory = cfg.dataDir;
PluginSettings.Directory = "${pluginDir}/server";
PluginSettings.ClientDirectory = "${pluginDir}/client";
LogSettings.FileLocation = cfg.logDir;
LogSettings = {
FileLocation = cfg.logDir;
# Reaches out to Mattermost's servers for telemetry; disable it by default.
# https://docs.mattermost.com/configure/environment-configuration-settings.html#enable-diagnostics-and-error-reporting
EnableDiagnostics = cfg.telemetry.enableDiagnostics;
};
} cfg.settings;
mattermostConf = recursiveUpdate mattermostConfWithoutPlugins (
@@ -455,7 +462,10 @@ in
preferNixConfig = mkOption {
type = types.bool;
default = false;
default = versionAtLeast config.system.stateVersion "25.05";
defaultText = ''
versionAtLeast config.system.stateVersion "25.05";
'';
description = ''
If both mutableConfig and this option are set, the Nix configuration
will take precedence over any settings configured in the server
@@ -474,6 +484,26 @@ in
'';
};
telemetry = {
enableSecurityAlerts = mkOption {
type = types.bool;
default = true;
description = ''
True if we should enable security update checking. This reaches out to Mattermost's servers:
https://docs.mattermost.com/manage/telemetry.html#security-update-check-feature
'';
};
enableDiagnostics = mkOption {
type = types.bool;
default = false;
description = ''
True if we should enable sending diagnostic data. This reaches out to Mattermost's servers:
https://docs.mattermost.com/manage/telemetry.html#error-and-diagnostics-reporting-feature
'';
};
};
environment = mkOption {
type = with types; attrsOf (either int str);
default = { };
+1 -1
View File
@@ -72,7 +72,7 @@ in
description = ''
File containing the ADMIN_USERNAME and
ADMIN_PASSWORD (length >= 6) in the format of
an EnvironmentFile=, as described by systemd.exec(5).
an EnvironmentFile=, as described by {manpage}`systemd.exec(5)`.
'';
example = "/etc/nixos/miniflux-admin-credentials";
};
+233
View File
@@ -0,0 +1,233 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.services.pds;
inherit (lib)
getExe
mkEnableOption
mkIf
mkOption
mkPackageOption
escapeShellArgs
concatMapStringsSep
types
literalExpression
;
pdsadminWrapper =
let
cfgSystemd = config.systemd.services.pds.serviceConfig;
in
pkgs.writeShellScriptBin "pdsadmin" ''
DUMMY_PDS_ENV_FILE="$(mktemp)"
trap 'rm -f "$DUMMY_PDS_ENV_FILE"' EXIT
env "PDS_ENV_FILE=$DUMMY_PDS_ENV_FILE" \
${escapeShellArgs cfgSystemd.Environment} \
${concatMapStringsSep " " (envFile: "$(cat ${envFile})") cfgSystemd.EnvironmentFile} \
${getExe pkgs.pdsadmin} "$@"
'';
in
# All defaults are from https://github.com/bluesky-social/pds/blob/8b9fc24cec5f30066b0d0b86d2b0ba3d66c2b532/installer.sh
{
options.services.pds = {
enable = mkEnableOption "pds";
package = mkPackageOption pkgs "pds" { };
settings = mkOption {
type = types.submodule {
freeformType = types.attrsOf (
types.oneOf [
(types.nullOr types.str)
types.port
]
);
options = {
PDS_PORT = mkOption {
type = types.port;
default = 3000;
description = "Port to listen on";
};
PDS_HOSTNAME = mkOption {
type = types.str;
example = "pds.example.com";
description = "Instance hostname (base domain name)";
};
PDS_BLOB_UPLOAD_LIMIT = mkOption {
type = types.str;
default = "52428800";
description = "Size limit of uploaded blobs in bytes";
};
PDS_DID_PLC_URL = mkOption {
type = types.str;
default = "https://plc.directory";
description = "URL of DID PLC directory";
};
PDS_BSKY_APP_VIEW_URL = mkOption {
type = types.str;
default = "https://api.bsky.app";
description = "URL of bsky frontend";
};
PDS_BSKY_APP_VIEW_DID = mkOption {
type = types.str;
default = "did:web:api.bsky.app";
description = "DID of bsky frontend";
};
PDS_REPORT_SERVICE_URL = mkOption {
type = types.str;
default = "https://mod.bsky.app";
description = "URL of mod service";
};
PDS_REPORT_SERVICE_DID = mkOption {
type = types.str;
default = "did:plc:ar7c4by46qjdydhdevvrndac";
description = "DID of mod service";
};
PDS_CRAWLERS = mkOption {
type = types.str;
default = "https://bsky.network";
description = "URL of crawlers";
};
PDS_DATA_DIRECTORY = mkOption {
type = types.str;
default = "/var/lib/pds";
description = "Directory to store state";
};
PDS_BLOBSTORE_DISK_LOCATION = mkOption {
type = types.nullOr types.str;
default = "/var/lib/pds/blocks";
description = "Store blobs at this location, set to null to use e.g. S3";
};
LOG_ENABLED = mkOption {
type = types.nullOr types.str;
default = "true";
description = "Enable logging";
};
};
};
description = ''
Environment variables to set for the service. Secrets should be
specified using {option}`environmentFile`.
Refer to <https://github.com/bluesky-social/atproto/blob/main/packages/pds/src/config/env.ts> for available environment variables.
'';
};
environmentFiles = mkOption {
type = types.listOf types.path;
default = [ ];
description = ''
File to load environment variables from. Loaded variables override
values set in {option}`environment`.
Use it to set values of `PDS_JWT_SECRET`, `PDS_ADMIN_PASSWORD`,
and `PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX` secrets.
`PDS_JWT_SECRET` and `PDS_ADMIN_PASSWORD` can be generated with
```
openssl rand --hex 16
```
`PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX` can be generated with
```
openssl ecparam --name secp256k1 --genkey --noout --outform DER | tail --bytes=+8 | head --bytes=32 | xxd --plain --cols 32
```
'';
};
pdsadmin = {
enable = mkOption {
type = types.bool;
default = cfg.enable;
defaultText = literalExpression "config.services.pds.enable";
description = "Add pdsadmin script to PATH";
};
};
};
config = mkIf cfg.enable {
environment = mkIf cfg.pdsadmin.enable {
systemPackages = [ pdsadminWrapper ];
};
systemd.services.pds = {
description = "pds";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = getExe cfg.package;
Environment = lib.mapAttrsToList (k: v: "${k}=${if builtins.isInt v then toString v else v}") (
lib.filterAttrs (_: v: v != null) cfg.settings
);
EnvironmentFile = cfg.environmentFiles;
User = "pds";
Group = "pds";
StateDirectory = "pds";
StateDirectoryMode = "0755";
Restart = "always";
# Hardening
RemoveIPC = true;
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
NoNewPrivileges = true;
PrivateDevices = true;
ProtectClock = true;
ProtectKernelLogs = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
PrivateMounts = true;
SystemCallArchitectures = [ "native" ];
MemoryDenyWriteExecute = false; # required by V8 JIT
RestrictNamespaces = true;
RestrictSUIDSGID = true;
ProtectHostname = true;
LockPersonality = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [
"AF_UNIX"
"AF_INET"
"AF_INET6"
];
RestrictRealtime = true;
DeviceAllow = [ "" ];
ProtectSystem = "strict";
ProtectProc = "invisible";
ProcSubset = "pid";
ProtectHome = true;
PrivateUsers = true;
PrivateTmp = true;
UMask = "0077";
};
};
users = {
users.pds = {
group = "pds";
isSystemUser = true;
};
groups.pds = { };
};
};
meta.maintainers = with lib.maintainers; [ t4ccer ];
}
@@ -30,7 +30,7 @@ in
inherit (format) type;
default = { };
description = ''
Merecat configuration. Refer to merecat(8) for details on supported values.
Merecat configuration. Refer to {manpage}`merecat(8)` for details on supported values.
'';
example = {
hostname = "localhost";
+1 -1
View File
@@ -72,7 +72,7 @@ in
description = ''
File containing the MINIO_ROOT_USER, default is "minioadmin", and
MINIO_ROOT_PASSWORD (length >= 8), default is "minioadmin"; in the format of
an EnvironmentFile=, as described by systemd.exec(5).
an EnvironmentFile=, as described by {manpage}`systemd.exec(5)`.
'';
example = "/etc/nixos/minio-root-credentials";
};
@@ -50,7 +50,7 @@ in
default = null;
description = ''
Path to file containing secrets for Pomerium, in systemd
EnvironmentFile format. See the systemd.exec(5) man page.
EnvironmentFile format. See the {manpage}`systemd.exec(5)` man page.
'';
};
};
+1 -1
View File
@@ -200,7 +200,7 @@ in
'';
description = ''
Grant capabilities to the uWSGI instance. See the
`capabilities(7)` for available values.
{manpage}`capabilities(7)` for available values.
::: {.note}
uWSGI runs as an unprivileged user (even as Emperor) with the minimal
@@ -27,7 +27,7 @@ in
which allows users to start X manually via the "startx" command
from a vt shell. The X server runs under the user's id, not as root.
The user must provide a ~/.xinitrc file containing session startup
commands, see startx(1). This is not automatically generated
commands, see {manpage}`startx(1)`. This is not automatically generated
from the desktopManager and windowManager settings.
'';
};
@@ -18,7 +18,7 @@ in
to start manually via the "sx" command from a vt shell. The X server
runs under the user's id, not as root. The user must provide a
~/.config/sx/sxrc file containing session startup commands, see
sx(1). This is not automatically generated from the desktopManager
{manpage}`sx(1)`. This is not automatically generated from the desktopManager
and windowManager settings. sx doesn't have a way to directly set
X server flags, but it can be done by overriding its xorgserver
dependency.
+3 -3
View File
@@ -126,7 +126,7 @@ in
];
description = ''
List of conditions of windows that should not be faded.
See `picom(1)` man page for more examples.
See {manpage}`picom(1)` man page for more examples.
'';
};
@@ -172,7 +172,7 @@ in
];
description = ''
List of conditions of windows that should have no shadow.
See `picom(1)` man page for more examples.
See {manpage}`picom(1)` man page for more examples.
'';
};
@@ -326,7 +326,7 @@ in
description = ''
Picom settings. Use this option to configure Picom settings not exposed
in a NixOS option or to bypass one. For the available options see the
CONFIGURATION FILES section at `picom(1)`.
CONFIGURATION FILES section at {manpage}`picom(1)`.
'';
};
};
@@ -203,7 +203,7 @@ in
type = types.nullOr types.path;
visible = false;
description = ''
The env(1) executable that is linked system-wide to
The {manpage}`env(1)` executable that is linked system-wide to
`/usr/bin/env`.
'';
};
@@ -29,7 +29,7 @@ in
type = types.lines;
example = "Storage=journal";
description = ''
Extra config options for systemd-coredump. See coredump.conf(5) man page
Extra config options for systemd-coredump. See {manpage}`coredump.conf(5)` man page
for available options.
'';
};
+1 -1
View File
@@ -163,7 +163,7 @@ in
type = types.lines;
example = "DefaultLimitCORE=infinity";
description = ''
Extra config options for systemd. See systemd-system.conf(5) man page
Extra config options for systemd. See {manpage}`systemd-system.conf(5)` man page
for available options.
'';
};
+1 -1
View File
@@ -29,7 +29,7 @@ in
example = "IdleAction=lock";
description = ''
Extra config options for systemd-logind.
See [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html)
See {manpage}`logind.conf(5)`
for available options.
'';
};
+2 -2
View File
@@ -28,7 +28,7 @@ in
`timesyncd.conf` file as opposed to setting this option to null which
will remove `NTP=` entirely.
See man:timesyncd.conf(5) for details.
See {manpage}`timesyncd.conf(5)` for details.
'';
};
fallbackServers = mkOption {
@@ -42,7 +42,7 @@ in
`timesyncd.conf` file as opposed to setting this option to null which
will remove `FallbackNTP=` entirely.
See man:timesyncd.conf(5) for details.
See {manpage}`timesyncd.conf(5)` for details.
'';
};
extraConfig = mkOption {
+1 -1
View File
@@ -99,7 +99,7 @@ in
default = { };
description = ''
General configuration for NFS daemons and tools.
See nfs.conf(5) and related man pages for details.
See {manpage}`nfs.conf(5)` and related man pages for details.
'';
example = lib.literalExpression ''
{
+2 -2
View File
@@ -97,7 +97,7 @@ let
default = null;
description = ''
Type of the route. See the `Route types` section
in the `ip-route(8)` manual page for the details.
in the {manpage}`ip-route(8)` manual page for the details.
Note that `prohibit`, `blackhole`,
`unreachable`, and `throw` cannot
@@ -118,7 +118,7 @@ let
example = { mtu = "1492"; window = "524288"; };
description = ''
Other route options. See the symbol `OPTIONS`
in the `ip-route(8)` manual page for the details.
in the {manpage}`ip-route(8)` manual page for the details.
You may also specify `metric`,
`src`, `protocol`,
`scope`, `from`
+1 -1
View File
@@ -34,7 +34,7 @@ in
default = ["/run/docker.sock"];
description = ''
A list of unix and tcp docker should listen to. The format follows
ListenStream as described in systemd.socket(5).
ListenStream as described in {manpage}`systemd.socket(5)`.
'';
};
@@ -349,7 +349,7 @@ let
Device node access modifier. Takes a combination
`r` (read), `w` (write), and
`m` (mknod). See the
`systemd.resource-control(5)` man page for more
{manpage}`systemd.resource-control(5)` man page for more
information.'';
};
};
@@ -563,7 +563,7 @@ in
example = [ "CAP_NET_ADMIN" "CAP_MKNOD" ];
description = ''
Grant additional capabilities to the container. See the
capabilities(7) and systemd-nspawn(1) man pages for more
{manpage}`capabilities(7)` and {manpage}`systemd-nspawn(1)` man pages for more
information.
'';
};
@@ -644,7 +644,7 @@ in
shall run in. The specified path should refer to a (possibly bind-mounted) network
namespace file, as exposed by the kernel below /proc/<PID>/ns/net. This makes the
container enter the given network namespace. One of the typical use cases is to give
a network namespace under /run/netns created by ip-netns(8).
a network namespace under /run/netns created by {manpage}`ip-netns(8)`.
Note that this option cannot be used together with other network-related options,
such as --private-network or --network-interface=.
'';
@@ -737,7 +737,7 @@ in
Mounts a set of tmpfs file systems into the container.
Multiple paths can be specified.
Valid items must conform to the --tmpfs argument
of systemd-nspawn. See systemd-nspawn(1) for details.
of systemd-nspawn. See {manpage}`systemd-nspawn(1)` for details.
'';
};
@@ -747,7 +747,7 @@ in
example = [ "--drop-capability=CAP_SYS_CHROOT" ];
description = ''
Extra flags passed to the systemd-nspawn command.
See systemd-nspawn(1) for details.
See {manpage}`systemd-nspawn(1)` for details.
'';
};
@@ -155,7 +155,7 @@ let
[Docker engine documentation](https://docs.docker.com/engine/logging/configure/)
For Podman:
Refer to the docker-run(1) man page.
Refer to the {manpage}`docker-run(1)` man page.
'';
};
+1 -1
View File
@@ -151,7 +151,7 @@ let
];
description = ''
This option specifies disk mount options to be passed to the `mount -o` command.
For more information, see the `mount(8)` manual page.
For more information, see the {manpage}`mount(8)` manual page.
'';
};
+1
View File
@@ -810,6 +810,7 @@ in {
parsedmarc = handleTest ./parsedmarc {};
password-option-override-ordering = handleTest ./password-option-override-ordering.nix {};
pdns-recursor = handleTest ./pdns-recursor.nix {};
pds = handleTest ./pds.nix {};
peerflix = handleTest ./peerflix.nix {};
peering-manager = handleTest ./web-apps/peering-manager.nix {};
peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
+5 -4
View File
@@ -42,10 +42,11 @@ import ./make-test-python.nix (
machine.wait_for_file("/run/user/${toString user.uid}/wayland-1")
with subtest("Check if MATE session components actually start"):
for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]:
machine.wait_until_succeeds(f"pgrep -f {i}")
# It is expected that this applet doesn't work in Wayland
machine.wait_for_text('WorkspaceSwitcherApplet')
for i in ["wayfire", "mate-panel", "mate-wayland.sh"]:
machine.wait_until_succeeds(f"pgrep {i}")
machine.wait_until_succeeds("pgrep -f mate-wayland-components.sh")
# It is expected that WorkspaceSwitcherApplet doesn't work in Wayland
machine.wait_for_text('(panel|Factory|Workspace|Switcher|Applet|configuration)')
with subtest("Check if various environment variables are set"):
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
+2 -1
View File
@@ -48,6 +48,7 @@ import ../make-test-python.nix (
database = {
peerAuth = lib.mkDefault true;
};
telemetry.enableSecurityAlerts = false;
settings = {
SupportSettings.AboutLink = "https://nixos.org";
PluginSettings.AutomaticPrepackagedPlugins = false;
@@ -93,6 +94,7 @@ import ../make-test-python.nix (
makeMattermost
{
mutableConfig = true;
preferNixConfig = false;
settings.SupportSettings.HelpLink = "https://search.nixos.org";
}
{
@@ -104,7 +106,6 @@ import ../make-test-python.nix (
};
postgresMostlyMutable = makeMattermost {
mutableConfig = true;
preferNixConfig = true;
plugins = with pkgs; [
# Build the demo plugin.
(mattermost.buildPlugin {
+29
View File
@@ -0,0 +1,29 @@
import ./make-test-python.nix (
{ lib, ... }:
{
name = "PDS";
nodes.machine = {
services.pds = {
enable = true;
settings = {
PDS_PORT = 3000;
PDS_HOSTNAME = "example.com";
# Snake oil testing credentials
PDS_JWT_SECRET = "7b93fee53be046bf59c27a32a0fb2069";
PDS_ADMIN_PASSWORD = "3a4077bc0d5f04eca945ef0509f7e809";
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX = "ae4f5028d04c833ba630f29debd5ff80b7700e43e9f4bf70f729a88cd6a6ce35";
};
};
};
testScript = ''
machine.wait_for_unit("pds.service")
machine.wait_for_open_port(3000)
machine.succeed("curl --fail http://localhost:3000")
'';
meta.maintainers = with lib.maintainers; [ t4ccer ];
}
)
@@ -126,6 +126,7 @@ let
version = buildNumber;
inherit src;
sourceRoot = "${src.name}/native/restarter";
useFetchCargoVendor = true;
cargoHash = restarterHash;
# Allow static linking
@@ -6,7 +6,7 @@
"ideaHash": "sha256-QKFUg6C+ZVgPrgd6jwWSkBVMHAF30ja0Uqezy9syo5k=",
"androidHash": "sha256-2ZLTh3mwrIWOqn1UHqAVibG5JvfvxinqDna/EGxd0Ds=",
"jpsHash": "sha256-p3AEHULhVECIicyhCYNkxeQoMAorrbvoIj7jcqxYD2s=",
"restarterHash": "sha256-rkx8DOaIxG0H2jz4sFsPzhcNyzN51HTI3hPEsp8yUY4=",
"restarterHash": "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag=",
"mvnDeps": "idea_maven_artefacts.json"
},
"pycharm-community": {
@@ -16,7 +16,7 @@
"ideaHash": "sha256-QKFUg6C+ZVgPrgd6jwWSkBVMHAF30ja0Uqezy9syo5k=",
"androidHash": "sha256-2ZLTh3mwrIWOqn1UHqAVibG5JvfvxinqDna/EGxd0Ds=",
"jpsHash": "sha256-p3AEHULhVECIicyhCYNkxeQoMAorrbvoIj7jcqxYD2s=",
"restarterHash": "sha256-B0eReRKfA9W7uwVHuY+3zZEAD5d+cOQpcbBLxn8AVYw=",
"restarterHash": "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag=",
"mvnDeps": "pycharm_maven_artefacts.json"
}
}
@@ -1302,6 +1302,18 @@ final: prev:
meta.homepage = "https://github.com/Saghen/blink.compat/";
};
blink-copilot = buildVimPlugin {
pname = "blink-copilot";
version = "2025-01-27";
src = fetchFromGitHub {
owner = "fang2hou";
repo = "blink-copilot";
rev = "7e63f20b8e96191e5c87bf96fc35da3547993be2";
sha256 = "10lm90xa7w3ww94acivshnzkp4q2bfrq9zff2z5amrp3cxlga0rf";
};
meta.homepage = "https://github.com/fang2hou/blink-copilot/";
};
blink-emoji-nvim = buildVimPlugin {
pname = "blink-emoji.nvim";
version = "2025-01-04";
@@ -105,6 +105,7 @@ https://github.com/max397574/better-escape.nvim/,,
https://github.com/LunarVim/bigfile.nvim/,,
https://github.com/APZelos/blamer.nvim/,HEAD,
https://github.com/giuxtaposition/blink-cmp-copilot/,HEAD,
https://github.com/fang2hou/blink-copilot/,HEAD,
https://github.com/moyiz/blink-emoji.nvim/,HEAD,
https://github.com/mikavilpas/blink-ripgrep.nvim/,HEAD,
https://github.com/Saghen/blink.compat/,HEAD,
+2 -1
View File
@@ -3,6 +3,7 @@
stdenv,
fetchurl,
kernel,
kernelModuleMakeFlags,
}:
stdenv.mkDerivation rec {
@@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
hash = "sha256-zjTLriw2zvjX0Jxfa9QtaHG5tTC7cLTKEA+WSCP+Dpg=";
};
makeFlags = kernel.moduleMakeFlags ++ [
makeFlags = kernelModuleMakeFlags ++ [
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"INSTALL_MOD_PATH=$(out)"
];
@@ -11,13 +11,13 @@
buildDotnetModule rec {
pname = "ArchiSteamFarm";
# nixpkgs-update: no auto update
version = "6.1.0.3";
version = "6.1.1.3";
src = fetchFromGitHub {
owner = "JustArchiNET";
repo = "ArchiSteamFarm";
rev = version;
hash = "sha256-3NOeKdXb1tz4qx+tCs6QKfze2KLfyodKwt/aNx6tLvI=";
hash = "sha256-e0LzM0N5N7BHyQDRQIPziQrAilJN1aUttKyLod/T8rU=";
};
dotnet-runtime = dotnetCorePackages.aspnetcore_9_0;
+44 -54
View File
@@ -281,8 +281,8 @@
},
{
"pname": "Markdig.Signed",
"version": "0.38.0",
"hash": "sha256-yhO/GFoKdE/Z9SZPyGFe7DlnSd8dcAohqJNFqSqKLnk="
"version": "0.39.1",
"hash": "sha256-jofkP6JUp4xuUjJ6B6+HDfBJ3+V2vgECt2CWmFq62k4="
},
{
"pname": "Microsoft.ApplicationInsights",
@@ -296,13 +296,13 @@
},
{
"pname": "Microsoft.CodeAnalysis.ResxSourceGenerator",
"version": "3.11.0-beta1.24508.2",
"hash": "sha256-TpqR8oedeRXdPxwhesXwWU+FimbVcj1+WThE3iQe+zo="
"version": "3.11.0-beta1.24527.2",
"hash": "sha256-NVqJ5cRa9G+ilWKazOTA8Xfm6ExOPpst8HMIFBC1/BU="
},
{
"pname": "Microsoft.CodeCoverage",
"version": "17.11.1",
"hash": "sha256-1dLlK3NGh88PuFYZiYpT+izA96etxhU3BSgixDgdtGA="
"version": "17.12.0",
"hash": "sha256-lGjifppD0OBMBp28pjUfPipaeXg739n8cPhtHWoo5RE="
},
{
"pname": "Microsoft.Extensions.ApiDescription.Server",
@@ -446,8 +446,8 @@
},
{
"pname": "Microsoft.NET.Test.Sdk",
"version": "17.11.1",
"hash": "sha256-0JUEucQ2lzaPgkrjm/NFLBTbqU1dfhvhN3Tl3moE6mI="
"version": "17.12.0",
"hash": "sha256-DKFEbhh2wPzahNeHdEoFig8tZh/LEVrFc5+zpT43Btg="
},
{
"pname": "Microsoft.NETCore.Platforms",
@@ -461,38 +461,38 @@
},
{
"pname": "Microsoft.Testing.Extensions.Telemetry",
"version": "1.4.3",
"hash": "sha256-oZ+AsyGdjWDoYx+nkveuniU4yB1DZ3bjgOgnucEtbnc="
"version": "1.5.0",
"hash": "sha256-aKKGFpsp88Yy29GLbWRWnEil2M2WEHjRXZ62Q8x5QRQ="
},
{
"pname": "Microsoft.Testing.Extensions.TrxReport.Abstractions",
"version": "1.4.3",
"hash": "sha256-Q3E2sfTL6VvuK1X2JQsNqUTS9AtpnH9mf2aXMj09bz8="
"version": "1.5.0",
"hash": "sha256-oiePvWpZMkT2AnEpfzWgvaXJai6crgHdoUSMZct3JB0="
},
{
"pname": "Microsoft.Testing.Extensions.VSTestBridge",
"version": "1.4.3",
"hash": "sha256-Sjx7GBgLYtX0nmjmViZHWVHwIZnL8aj+ivDK58GbA8k="
"version": "1.5.0",
"hash": "sha256-XauIF+r05RDgORsnxEp6Cq0WZjLycJ1hPH79QUi/SgM="
},
{
"pname": "Microsoft.Testing.Platform",
"version": "1.4.3",
"hash": "sha256-KqB3+uBGl0edpaGl6Qykubb3OrVTs6IcPWc59UQ/Iww="
"version": "1.5.0",
"hash": "sha256-67ZNhvMifCIM7SFnwDN25EanRNKsjAFQWugrrYWAkrM="
},
{
"pname": "Microsoft.Testing.Platform.MSBuild",
"version": "1.4.3",
"hash": "sha256-289hhblU55kDvzbiSQAFSxOyht1MlXT4e+bEQyQqils="
"version": "1.5.0",
"hash": "sha256-nJ5fv8MwFw2PeJIZA9qKLfGPWYKmHww1CtVFICz6S00="
},
{
"pname": "Microsoft.TestPlatform.ObjectModel",
"version": "17.11.1",
"hash": "sha256-5vX+vCzFY3S7xfMVIv8OlMMFtdedW9UIJzc0WEc+vm4="
"version": "17.12.0",
"hash": "sha256-3XBHBSuCxggAIlHXmKNQNlPqMqwFlM952Av6RrLw1/w="
},
{
"pname": "Microsoft.TestPlatform.TestHost",
"version": "17.11.1",
"hash": "sha256-wSkY0H1fQAq0H3LcKT4u7Y5RzhAAPa6yueVN84g8HxU="
"version": "17.12.0",
"hash": "sha256-rf8Sh0fQq44Sneuvs64unkkIHg8kOjDGWE35j9iLx5I="
},
{
"pname": "Microsoft.Win32.Registry",
@@ -501,23 +501,23 @@
},
{
"pname": "MSTest",
"version": "3.6.4",
"hash": "sha256-G7I371Rq+AQ+QmHbZ9/wOduj0Yfoa6rFxmvygf7Kol4="
"version": "3.7.0",
"hash": "sha256-z302okYPT36ebQhReEihire5fyig5pLkrx09nLyVuME="
},
{
"pname": "MSTest.Analyzers",
"version": "3.6.4",
"hash": "sha256-jlr8GVhTw32ErLq6YEMA4+EpWL5UO/q9I/BT9TDixK4="
"version": "3.7.0",
"hash": "sha256-TVMFle7oE2ZU6U+VkJ0G9iNjJxnRU4rDIJCtZFwDhz0="
},
{
"pname": "MSTest.TestAdapter",
"version": "3.6.4",
"hash": "sha256-ymaeH9pYE8O1ChlfJ4hvpV9KP9eVJCEm4xhGHngapQY="
"version": "3.7.0",
"hash": "sha256-b6JCu2yyZmTZwZVd4MHaIwa01eQGWpFd8mNzHUBS6Tg="
},
{
"pname": "MSTest.TestFramework",
"version": "3.6.4",
"hash": "sha256-paCBVA5XtiAB8OwkbJSbw7v+HvTFLN9qHRgvQaeJKC0="
"version": "3.7.0",
"hash": "sha256-fIHwuc/zimd8oxvTiA3gmUzmJAj7JsQYh9IOb8NRJ/Y="
},
{
"pname": "Newtonsoft.Json",
@@ -574,11 +574,6 @@
"version": "1.10.0",
"hash": "sha256-ZSpQFnNgkk3dO8Q7yokJ/VSl4wp5PuIv9nduxgC6UxU="
},
{
"pname": "OpenTelemetry.Api",
"version": "1.9.0",
"hash": "sha256-raXpHi2DZ3mSLn9dnJYF64XaP23epdfu8zgagSpm8+4="
},
{
"pname": "OpenTelemetry.Api.ProviderBuilderExtensions",
"version": "1.10.0",
@@ -601,8 +596,8 @@
},
{
"pname": "OpenTelemetry.Instrumentation.AspNetCore",
"version": "1.9.0",
"hash": "sha256-XYqa7kV4rhHPCgHsjQtMvyKCemW1OvQd/23QhjquYR4="
"version": "1.10.1",
"hash": "sha256-HqMFDpFsMaPlgyFt1MU3Un+BysEoj5qPc8HVxTlt0mE="
},
{
"pname": "OpenTelemetry.Instrumentation.Http",
@@ -611,8 +606,8 @@
},
{
"pname": "OpenTelemetry.Instrumentation.Runtime",
"version": "1.9.0",
"hash": "sha256-Xov89h4Py7MCz6SAOjV0tjtZvvjHbx7NyPXZsY1PZhk="
"version": "1.10.0",
"hash": "sha256-cCTYKxHh1Qzu8X51B8gGsrxwKhVSqJfiql/+o4TWrwg="
},
{
"pname": "protobuf-net",
@@ -631,28 +626,28 @@
},
{
"pname": "Swashbuckle.AspNetCore",
"version": "7.1.0",
"hash": "sha256-4puaFKTRLJtqy/bjcxr5JJuZ/Ko7MDw7MrxISHl002A="
"version": "7.2.0",
"hash": "sha256-u1eg4GmYjaJAZdstRVvaTfGKnFRFLaxONhbOyiBKn5Y="
},
{
"pname": "Swashbuckle.AspNetCore.Annotations",
"version": "7.1.0",
"hash": "sha256-4hD7FqfXeVySSRzLhZ2RSGEUdLjJRc4fqZIgAl5xjIA="
"version": "7.2.0",
"hash": "sha256-zsg29If2aWbFK8tIpu60YBbD1i8vvGPupiAjcXCq0l0="
},
{
"pname": "Swashbuckle.AspNetCore.Swagger",
"version": "7.1.0",
"hash": "sha256-xxekkBO9brFYO0oId6OQVXdv5nXGjpwR3ZEcGe6rr0Q="
"version": "7.2.0",
"hash": "sha256-v0wp8/2prWFZhHm+T7onPh2sZNY+YjnLik1b1MLaaos="
},
{
"pname": "Swashbuckle.AspNetCore.SwaggerGen",
"version": "7.1.0",
"hash": "sha256-4Gm9yxjueSeGFaedV8ncy+jtDwjFBVChpqCCK8E+qfY="
"version": "7.2.0",
"hash": "sha256-zxxaHyHFPj3T8756QyaH9h+BkuUoV0xxKnbZUxnI8WU="
},
{
"pname": "Swashbuckle.AspNetCore.SwaggerUI",
"version": "7.1.0",
"hash": "sha256-br975EeG6O2fwyk8cFcjU/JkYrI35ZkqHm94j3qM5Cg="
"version": "7.2.0",
"hash": "sha256-EwJsqa4JBJhMzq+zgND3STyoZi1+6GaVQqXz3ZVP7p8="
},
{
"pname": "System.Collections.Immutable",
@@ -699,11 +694,6 @@
"version": "5.0.0",
"hash": "sha256-6mW3N6FvcdNH/pB58pl+pFSCGWgyaP4hfVtC/SMWDV4="
},
{
"pname": "System.Diagnostics.DiagnosticSource",
"version": "8.0.0",
"hash": "sha256-+aODaDEQMqla5RYZeq0Lh66j+xkPYxykrVvSCmJQ+Vs="
},
{
"pname": "System.Diagnostics.DiagnosticSource",
"version": "9.0.0",
@@ -7,7 +7,7 @@
buildNpmPackage rec {
pname = "asf-ui";
version = "c316254ddaf7837e7d43145268b53f91f23027dc";
version = "6be24065cd4904389d94140f4ed1f6738b1f7fbb";
src = fetchFromGitHub {
owner = "JustArchiNET";
@@ -15,10 +15,10 @@ buildNpmPackage rec {
# updated by the update script
# this is always the commit that should be used with asf-ui from the latest asf version
rev = version;
hash = "sha256-teM8x1/O5QFO7bMGc474Dp9ssOLfdmYkDt7PIuvJ4Ss=";
hash = "sha256-DFl+DCNj4JFKZG1awX5rlsHzj+67OFyBj9d16zDiKRA=";
};
npmDepsHash = "sha256-8KqIUSWaeu5Tk8lw8F1O6KkXUfNqvjgxRNCePEMeLDo=";
npmDepsHash = "sha256-jZSiWZDckfGfgrBMHTX/sm7Pcl5ap3lfmwGi8SHXqu8=";
installPhase = ''
runHook preInstall
@@ -14,13 +14,13 @@
buildDotnetModule rec {
pname = "git-credential-manager";
version = "2.6.0";
version = "2.6.1";
src = fetchFromGitHub {
owner = "git-ecosystem";
repo = "git-credential-manager";
rev = "v${version}";
hash = "sha256-8hjMtfPY/7cNH8WdHyG4kT2W+wGWteHbin1HgTBGiNQ=";
hash = "sha256-fzcGAcKOAEnBiAEYYyxKJ71xnixb5cz7FzR28/cKIFg=";
};
projectFile = "src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj";
@@ -1,15 +1,15 @@
{
"version": "17.7.1",
"repo_hash": "0c800lczpfbc62scxmf0ll0y619qrdszwxdzsmyl4w14appp96mm",
"yarn_hash": "10iz5148yr1xaij78fx7j4dras35rsm4zgxw8m8fx5adg6xc86sg",
"version": "17.8.0",
"repo_hash": "0a6a05hip2f505yvfi4v7849cmpb1kzghsf6ivy6lrhc06ksxs19",
"yarn_hash": "0d1nzgji3y90gcx92pl0bnqlj5h9ra3r7k1z673fvsj6lzppnx8v",
"owner": "gitlab-org",
"repo": "gitlab",
"rev": "v17.7.1-ee",
"rev": "v17.8.0-ee",
"passthru": {
"GITALY_SERVER_VERSION": "17.7.1",
"GITLAB_PAGES_VERSION": "17.7.1",
"GITALY_SERVER_VERSION": "17.8.0",
"GITLAB_PAGES_VERSION": "17.8.0",
"GITLAB_SHELL_VERSION": "14.39.0",
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.4.0",
"GITLAB_WORKHORSE_VERSION": "17.7.1"
"GITLAB_WORKHORSE_VERSION": "17.8.0"
}
}
@@ -5,7 +5,7 @@ in
buildGoModule rec {
pname = "gitlab-workhorse";
version = "17.7.1";
version = "17.8.0";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
@@ -17,7 +17,7 @@ buildGoModule rec {
sourceRoot = "${src.name}/workhorse";
vendorHash = "sha256-ir2Npjl39K2DzjT8fnbOOcMmfHiwFnVmvG04oh2GoOA=";
vendorHash = "sha256-bPabhQD19A3WrCC9D1r0TZOKM+CkoqBgOUj0pqLs3Bo=";
buildInputs = [ git ];
ldflags = [ "-X main.Version=${version}" ];
doCheck = false;
@@ -21,7 +21,7 @@ end
extend ignore_feature_category
gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', require: false, feature_category: :shared
# NOTE: When incrementing the major or minor version here, also increment activerecord_version
# in vendor/gems/attr_encrypted/attr_encrypted.gemspec until we resolve
@@ -30,27 +30,27 @@ gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', requir
# See https://docs.gitlab.com/ee/development/gemfile.html#upgrade-rails for guidelines when upgrading Rails
if next?
gem 'rails', '~> 7.1.4', feature_category: :shared
gem 'rails', '~> 7.1.5', feature_category: :shared
else
gem 'rails', '~> 7.0.8.6', feature_category: :shared
gem 'rails', '~> 7.0.8.7', feature_category: :shared
end
gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab', feature_category: :shared
gem 'bootsnap', '~> 1.18.3', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bootsnap', '~> 1.18.3', require: false, feature_category: :shared
# Avoid the precompiled native gems because Omnibus needs to build this to ensure
# LD_LIBRARY_PATH is correct: https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7730
gem 'ffi', '~> 1.17', force_ruby_platform: true, feature_category: :shared
gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'openssl', '~> 3.0', feature_category: :shared
gem 'ipaddr', '~> 1.2.5', feature_category: :shared
gem 'gitlab-safe_request_store', path: 'gems/gitlab-safe_request_store' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-safe_request_store', path: 'gems/gitlab-safe_request_store', feature_category: :shared
# GitLab Monorepo Gems
group :monorepo do
gem 'gitlab-utils', path: 'gems/gitlab-utils' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-utils', path: 'gems/gitlab-utils', feature_category: :shared
end
gem 'gitlab-backup-cli', path: 'gems/gitlab-backup-cli', require: 'gitlab/backup/cli', feature_category: :backup_restore
@@ -58,76 +58,80 @@ gem 'gitlab-backup-cli', path: 'gems/gitlab-backup-cli', require: 'gitlab/backup
gem 'gitlab-secret_detection', path: 'gems/gitlab-secret_detection', feature_category: :secret_detection
# Responders respond_to and respond_with
gem 'responders', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'responders', '~> 3.0', feature_category: :shared
gem 'sprockets', '~> 3.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sprockets-rails', '~> 3.5.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sprockets', '~> 3.7.0', feature_category: :shared
gem 'sprockets-rails', '~> 3.5.1', feature_category: :shared
gem 'view_component', '~> 3.20.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'view_component', '~> 3.21.0', feature_category: :shared
# Supported DBs
gem 'pg', '~> 1.5.6', feature_category: :database
gem 'neighbor', '~> 0.3.2', feature_category: :duo_chat
gem 'rugged', '~> 1.6' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rugged', '~> 1.6', feature_category: :gitaly
gem 'faraday', '~> 2', feature_category: :shared
gem 'faraday-retry', '~> 2', feature_category: :shared
# Logger is a dependency of Faraday, but Logger 1.6.0 does not work with Chef.
gem 'logger', '~> 1.5.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'logger', '~> 1.5.3', feature_category: :shared
gem 'marginalia', '~> 1.11.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'marginalia', '~> 1.11.1', feature_category: :database
# Authorization
gem 'declarative_policy', '~> 1.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'declarative_policy', '~> 1.1.0', feature_category: :shared
# For source code paths mapping
gem 'coverband', '6.1.4', require: false, feature_category: :shared
# Authentication libraries
gem 'devise', '~> 4.9.3', feature_category: :system_access
gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'vendor/gems/devise-pbkdf2-encryptable' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bcrypt', '~> 3.1', '>= 3.1.14' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'vendor/gems/devise-pbkdf2-encryptable',
feature_category: :system_access
gem 'bcrypt', '~> 3.1', '>= 3.1.14', feature_category: :system_access
gem 'doorkeeper', '~> 5.8', '>= 5.8.1', feature_category: :system_access
gem 'doorkeeper-openid_connect', '~> 1.8.10', feature_category: :system_access
gem 'doorkeeper-device_authorization_grant', '~> 1.0.0', feature_category: :system_access
gem 'rexml', '~> 3.3.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rexml', '~> 3.3.2', feature_category: :shared
gem 'ruby-saml', '~> 1.17.0', feature_category: :system_access
gem 'omniauth', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-auth0', '~> 3.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-azure-activedirectory-v2', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-alicloud', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-github', '2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-gitlab', '~> 4.0.0', path: 'vendor/gems/omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-google-oauth2', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-oauth2-generic', '~> 0.2.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth', '~> 2.1.0', feature_category: :system_access
gem 'omniauth-auth0', '~> 3.1', feature_category: :system_access
gem 'omniauth-azure-activedirectory-v2', '~> 2.0', feature_category: :system_access
gem 'omniauth-alicloud', '~> 3.0.0', feature_category: :system_access
gem 'omniauth-github', '2.0.1', feature_category: :system_access
# See vendor/gems/omniauth-gitlab/README.md
gem 'omniauth-gitlab', '~> 4.0.0', path: 'vendor/gems/omniauth-gitlab', feature_category: :system_access
gem 'omniauth-google-oauth2', '~> 1.1', feature_category: :system_access
gem 'omniauth-oauth2-generic', '~> 0.2.2', feature_category: :system_access
gem 'omniauth-saml', '~> 2.2.1', feature_category: :system_access
gem 'omniauth-shibboleth-redux', '~> 2.0', require: 'omniauth-shibboleth' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth_crowd', '~> 2.4.0', path: 'vendor/gems/omniauth_crowd' # See vendor/gems/omniauth_crowd/README.md # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth_openid_connect', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-shibboleth-redux', '~> 2.0', require: 'omniauth-shibboleth', feature_category: :system_access
# See vendor/gems/omniauth_crowd/README.md
gem 'omniauth_crowd', '~> 2.4.0', path: 'vendor/gems/omniauth_crowd', feature_category: :system_access
gem 'omniauth_openid_connect', '~> 0.8.0', feature_category: :system_access
# Locked until Ruby 3.0 upgrade since upgrading will pull in an updated net-smtp gem.
# See https://docs.gitlab.com/ee/development/emails.html#rationale.
gem 'openid_connect', '~> 2.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-salesforce', '~> 1.0.5', path: 'vendor/gems/omniauth-salesforce' # See gem README.md # rubocop:todo Gemfile/MissingFeatureCategory
gem 'omniauth-atlassian-oauth2', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-oauth2', '~> 2.2.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'jwt', '~> 2.9.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'openid_connect', '~> 2.3.0', feature_category: :system_access
# See gem README.md
gem 'omniauth-salesforce', '~> 1.0.5', path: 'vendor/gems/omniauth-salesforce', feature_category: :system_access
gem 'omniauth-atlassian-oauth2', '~> 0.2.0', feature_category: :system_access
gem 'rack-oauth2', '~> 2.2.1', feature_category: :system_access
gem 'jwt', '~> 2.9.3', feature_category: :system_access
# Kerberos authentication. EE-only
gem 'gssapi', '~> 1.3.1', group: :kerberos # rubocop:todo Gemfile/MissingFeatureCategory
gem 'timfel-krb5-auth', '~> 0.8', group: :kerberos # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gssapi', '~> 1.3.1', group: :kerberos, feature_category: :system_access
gem 'timfel-krb5-auth', '~> 0.8', group: :kerberos, feature_category: :system_access
# Spam and anti-bot protection
gem 'recaptcha', '~> 5.12', require: 'recaptcha/rails' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'akismet', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'invisible_captcha', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'recaptcha', '~> 5.12', require: 'recaptcha/rails', feature_category: :insider_threat
gem 'akismet', '~> 3.0', feature_category: :insider_threat
gem 'invisible_captcha', '~> 2.1.0', feature_category: :insider_threat
# Two-factor authentication
gem 'devise-two-factor', '~> 4.1.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'devise-two-factor', '~> 4.1.1', feature_category: :system_access
gem 'rqrcode', '~> 2.2', feature_category: :system_access
gem 'attr_encrypted', '~> 3.2.4', path: 'vendor/gems/attr_encrypted' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'attr_encrypted', '~> 3.2.4', path: 'vendor/gems/attr_encrypted', feature_category: :shared
# GitLab Pages
gem 'validates_hostname', '~> 1.0.13', feature_category: :pages
@@ -136,10 +140,10 @@ gem 'rubyzip', '~> 2.3.2', require: 'zip', feature_category: :pages
gem 'acme-client', '~> 2.0.19', feature_category: :pages
# Browser detection
gem 'browser', '~> 5.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'browser', '~> 5.3.1', feature_category: :shared
# OS detection for usage ping
gem 'ohai', '~> 18.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ohai', '~> 18.1', feature_category: :product_analytics
# GPG
gem 'gpgme', '~> 2.0.24', feature_category: :source_code_management
@@ -147,8 +151,8 @@ gem 'gpgme', '~> 2.0.24', feature_category: :source_code_management
# LDAP Auth
# GitLab fork with several improvements to original library. For full list of changes
# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap', feature_category: :system_access
gem 'net-ldap', '~> 0.17.1', feature_category: :system_access
# API
gem 'grape', '~> 2.0.0', feature_category: :api
@@ -156,7 +160,7 @@ gem 'grape-entity', '~> 1.0.1', feature_category: :api
gem 'grape-swagger', '~> 2.1.0', group: [:development, :test], feature_category: :api
gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api
gem 'grape-path-helpers', '~> 2.0.1', feature_category: :api
gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', feature_category: :shared
# GraphQL API
gem 'graphql', '~> 2.4.1', feature_category: :api
@@ -175,73 +179,76 @@ gem 'gitlab-duo-workflow-service-client', '~> 0.1',
feature_category: :duo_workflow
# Generate Fake data
gem 'ffaker', '~> 2.23' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ffaker', '~> 2.23', feature_category: :shared
gem 'hashie', '~> 5.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'hashie', '~> 5.0.0', feature_category: :shared
# Pagination
gem 'kaminari', '~> 1.2.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'kaminari', '~> 1.2.2', feature_category: :shared
# HAML
gem 'hamlit', '~> 2.15.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'hamlit', '~> 2.15.0', feature_category: :shared
# Files attachments
gem 'carrierwave', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'mini_magick', '~> 4.12' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'carrierwave', '~> 1.3', feature_category: :shared
gem 'mini_magick', '~> 4.12', feature_category: :shared
# for backups
gem 'fog-aws', '~> 3.26', feature_category: :shared
# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
# Also see config/initializers/fog_core_patch.rb.
gem 'fog-core', '= 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'fog-google', '~> 1.24.1', require: 'fog/google' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'fog-local', '~> 0.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'fog-core', '= 2.1.0', feature_category: :shared
gem 'fog-google', '~> 1.24.1', require: 'fog/google', feature_category: :shared
gem 'fog-local', '~> 0.8', feature_category: :shared
# NOTE:
# the fog-aliyun gem since v0.4 pulls in aliyun-sdk transitively, which monkey-patches
# the rest-client gem to drop the Content-Length header field for chunked transfers,
# which may have knock-on effects on other features using `RestClient`.
# We may want to update this dependency if this is ever addressed upstream, e.g. via
# https://github.com/aliyun/aliyun-oss-ruby-sdk/pull/93
gem 'fog-aliyun', '~> 0.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'fog-aliyun', '~> 0.4', feature_category: :shared
gem 'gitlab-fog-azure-rm', '~> 2.2.0', require: 'fog/azurerm', feature_category: :shared
# for Google storage
# Need this specific version of google-apis-storage_v1 so that fog-google will utilize the updated list_objects with
# match_glob support in google-apis-core 0.11.1. Because of this we also have to bump google-cloud-storage to 1.45.0.
gem 'google-apis-storage_v1', '~> 0.29' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-cloud-storage', '~> 1.45.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-storage_v1', '~> 0.29', feature_category: :shared
gem 'google-cloud-storage', '~> 1.45.0', feature_category: :shared
# We need >= 0.11.1 because that's when match_glob support is added to list_objects
gem 'google-apis-core', '~> 0.11.0', '>= 0.11.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-compute_v1', '~> 0.57.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-container_v1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-container_v1beta1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-cloudbilling_v1', '~> 0.21.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-cloudresourcemanager_v1', '~> 0.31.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-iam_v1', '~> 0.36.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-serviceusage_v1', '~> 0.28.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-apis-core', '~> 0.11.0', '>= 0.11.1', feature_category: :shared
gem 'google-apis-compute_v1', '~> 0.57.0', feature_category: :shared
gem 'google-apis-container_v1', '~> 0.43.0', feature_category: :shared
gem 'google-apis-container_v1beta1', '~> 0.43.0', feature_category: :shared
gem 'google-apis-cloudbilling_v1', '~> 0.21.0', feature_category: :shared
gem 'google-apis-cloudresourcemanager_v1', '~> 0.31.0', feature_category: :shared
gem 'google-apis-iam_v1', '~> 0.36.0', feature_category: :shared
gem 'google-apis-serviceusage_v1', '~> 0.28.0', feature_category: :shared
gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0', feature_category: :shared
gem 'google-apis-androidpublisher_v3', '~> 0.34.0', feature_category: :shared
gem 'googleauth', '~> 1.8.1', feature_category: :shared
gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared
gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared
# Seed data
gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'seed-fu', '~> 2.3.7', feature_category: :shared
# Search
gem 'elasticsearch-model', '~> 7.2', feature_category: :global_search
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation', feature_category: :global_search
gem 'elasticsearch-api', '7.17.11', feature_category: :global_search
gem 'aws-sdk-core', '~> 3.213.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-s3', '~> 1.172.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-core', '~> 3.214.0', feature_category: :global_search
gem 'aws-sdk-cloudformation', '~> 1', feature_category: :global_search
gem 'aws-sdk-s3', '~> 1.176.0', feature_category: :global_search
gem 'faraday-typhoeus', '~> 1.1', feature_category: :global_search
gem 'faraday_middleware-aws-sigv4', '~> 1.0.1', feature_category: :global_search
# Used with Elasticsearch to support http keep-alive connections
gem 'typhoeus', '~> 1.4.0', feature_category: :global_search
gem 'gitlab-active-context', path: 'gems/gitlab-active-context', require: 'active_context',
feature_category: :global_search
# Markdown and HTML processing
gem 'html-pipeline', '~> 2.14.3', feature_category: :markdown
gem 'deckar01-task_list', '2.3.4', feature_category: :markdown
@@ -264,24 +271,24 @@ gem 'tanuki_emoji', '~> 0.13', feature_category: :markdown
gem 'unicode-emoji', '~> 4.0', feature_category: :markdown
# Calendar rendering
gem 'icalendar', '~> 2.10.1', feature_category: :system_access
gem 'icalendar', '~> 2.10.1', feature_category: :team_planning
# Diffs
gem 'diffy', '~> 3.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'diffy', '~> 3.4', feature_category: :shared
gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems/diff_match_patch', feature_category: :team_planning
# Application server
gem 'rack', '~> 2.2.9' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack', '~> 2.2.9', feature_category: :shared
# https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually
gem 'rack-timeout', '~> 0.7.0', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-timeout', '~> 0.7.0', require: 'rack/timeout/base', feature_category: :shared
group :puma do
gem 'puma', '= 6.5.0', require: false, feature_category: :shared
gem 'sd_notify', '~> 0.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sd_notify', '~> 0.1.0', require: false, feature_category: :shared
end
# State machine
gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'state_machines-activerecord', '~> 0.8.0', feature_category: :shared
# Background jobs
gem 'sidekiq', path: 'vendor/gems/sidekiq-7.2.4', require: 'sidekiq', feature_category: :scalability
@@ -295,34 +302,34 @@ gem 'gitlab-sidekiq-fetcher',
gem 'fugit', '~> 1.11.1', feature_category: :continuous_integration
# HTTP requests
gem 'httparty', '~> 0.21.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'httparty', '~> 0.21.0', feature_category: :shared
# Colored output to console
gem 'rainbow', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rainbow', '~> 3.0', feature_category: :shared
# Progress bar
gem 'ruby-progressbar', '~> 1.10' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ruby-progressbar', '~> 1.10', feature_category: :shared
# Linear-time regex library for untrusted regular expressions
gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 're2', '2.7.0', feature_category: :shared
# Misc
gem 'semver_dialects', '~> 3.0', feature_category: :software_composition_analysis
gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'version_sorter', '~> 2.3', feature_category: :shared
gem 'csv_builder', path: 'gems/csv_builder', feature_category: :shared
# Export Ruby Regex to Javascript
gem 'js_regex', '~> 3.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'js_regex', '~> 3.8', feature_category: :shared
# User agent parsing
gem 'device_detector' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'device_detector', feature_category: :shared
# Redis
gem 'redis-namespace', '~> 1.11.0', feature_category: :redis
gem 'redis', '~> 5.3.0', feature_category: :redis
gem 'redis-clustering', '~> 5.3.0', feature_category: :redis
gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'connection_pool', '~> 2.4', feature_category: :shared
# Redis session store
gem 'redis-actionpack', '~> 5.5.0', feature_category: :redis
@@ -341,65 +348,65 @@ gem 'slack-messenger', '~> 2.3.5', feature_category: :integrations
gem 'ruby-fogbugz', '~> 0.3.0', feature_category: :importers
# Kubernetes integration
gem 'kubeclient', '~> 4.11.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'kubeclient', '~> 4.11.0', feature_category: :shared
# AI
gem 'ruby-openai', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'circuitbox', '2.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ruby-openai', '~> 3.7', feature_category: :ai_abstraction_layer
gem 'circuitbox', '2.0.0', feature_category: :ai_abstraction_layer
# Sanitize user input
gem 'sanitize', '~> 6.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'babosa', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sanitize', '~> 6.0.2', feature_category: :shared
gem 'babosa', '~> 2.0', feature_category: :shared
# Sanitizes SVG input
gem 'loofah', '~> 2.22.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'loofah', '~> 2.22.0', feature_category: :shared
# Used to provide license templates
gem 'licensee', '~> 9.16' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'licensee', '~> 9.16', feature_category: :shared
# Detect and convert string character encoding
gem 'charlock_holmes', '~> 0.7.9', feature_category: :shared
# Detect mime content type from content
gem 'ruby-magic', '~> 0.6' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ruby-magic', '~> 0.6', feature_category: :shared
# Faster blank
gem 'fast_blank', '~> 1.0.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'fast_blank', '~> 1.0.1', feature_category: :shared
# Parse time & duration
gem 'gitlab-chronic', '~> 0.10.5' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab_chronic_duration', '~> 0.12' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-chronic', '~> 0.10.5', feature_category: :shared
gem 'gitlab_chronic_duration', '~> 0.12', feature_category: :shared
gem 'rack-proxy', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-proxy', '~> 0.7.7', feature_category: :shared
gem 'cssbundling-rails', '1.4.1', feature_category: :shared
gem 'terser', '1.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'terser', '1.0.2', feature_category: :shared
gem 'click_house-client', path: 'gems/click_house-client', require: 'click_house/client' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'addressable', '~> 2.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gon', '~> 6.4.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'request_store', '~> 1.5.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'base32', '~> 0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'click_house-client', path: 'gems/click_house-client', require: 'click_house/client', feature_category: :database
gem 'addressable', '~> 2.8', feature_category: :shared
gem 'gon', '~> 6.4.0', feature_category: :shared
gem 'request_store', '~> 1.5.1', feature_category: :shared
gem 'base32', '~> 0.3.0', feature_category: :shared
gem 'gitlab-license', '~> 2.6', feature_category: :shared
# Protect against bruteforcing
gem 'rack-attack', '~> 6.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-attack', '~> 6.7.0', feature_category: :shared
# Sentry integration
gem 'sentry-ruby', '~> 5.21.0', feature_category: :observability
gem 'sentry-rails', '~> 5.21.0', feature_category: :observability
gem 'sentry-sidekiq', '~> 5.21.0', feature_category: :observability
gem 'sentry-ruby', '~> 5.22.0', feature_category: :observability
gem 'sentry-rails', '~> 5.22.0', feature_category: :observability
gem 'sentry-sidekiq', '~> 5.22.0', feature_category: :observability
# PostgreSQL query parsing
#
gem 'pg_query', '~> 6.0.0', feature_category: :database
gem 'gitlab-schema-validation', path: 'gems/gitlab-schema-validation' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-http', path: 'gems/gitlab-http' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-schema-validation', path: 'gems/gitlab-schema-validation', feature_category: :shared
gem 'gitlab-http', path: 'gems/gitlab-http', feature_category: :shared
gem 'premailer-rails', '~> 1.12.0', feature_category: :notifications
gem 'gitlab-labkit', '~> 0.37.0', feature_category: :shared
gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'thrift', '>= 0.16.0', feature_category: :shared
# I18n
gem 'rails-i18n', '~> 7.0', '>= 7.0.9', feature_category: :internationalization
@@ -409,26 +416,27 @@ gem 'gettext', '~> 3.4', '>= 3.4.9',
group: [:development, :test],
feature_category: :internationalization
gem 'batch-loader', '~> 2.0.5' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'batch-loader', '~> 2.0.5', feature_category: :shared
gem 'tty-prompt', '~> 0.23', require: false, feature_category: :shared
# Perf bar
gem 'peek', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'peek', '~> 1.1', feature_category: :shared
# Google Cloud Profiler support
gem 'cloud_profiler_agent', '~> 0.0.0', path: 'vendor/gems/cloud_profiler_agent', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'cloud_profiler_agent', '~> 0.0.0', path: 'vendor/gems/cloud_profiler_agent', require: false,
feature_category: :shared
# Snowplow events tracking
gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Snowplow events trackin
gem 'snowplow-tracker', '~> 0.8.0', feature_category: :product_analytics
# Metrics
gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'prometheus-client-mmap', '1.1.2', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'webrick', '~> 1.8.1', require: false, feature_category: :shared
gem 'prometheus-client-mmap', '1.1.2', require: 'prometheus/client', feature_category: :shared
# Event-driven reactor for Ruby
# Required manually in config/initializers/require_async_gem
gem 'async', '~> 2.12.1', require: false # rubocop:disable Gemfile/MissingFeatureCategory -- This is general utility gem
gem 'async', '~> 2.12.1', require: false, feature_category: :shared
# Security report schemas used to validate CI job artifacts of security jobs
gem 'gitlab-security_report_schemas', '0.1.2.min15.0.0.max15.2.1', feature_category: :vulnerability_management
@@ -463,60 +471,65 @@ group :opentelemetry do
gem 'opentelemetry-instrumentation-sidekiq', feature_category: :observability
end
gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'warning', '~> 1.3.0', feature_category: :shared
group :development do
gem 'lefthook', '~> 1.7.0', require: false, feature_category: :tooling
gem 'rubocop', feature_category: :tooling
gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'solargraph', '~> 0.47.2', require: false, feature_category: :shared
gem 'letter_opener_web', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'lookbook', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'letter_opener_web', '~> 3.0.0', feature_category: :shared
gem 'lookbook', '~> 2.3', feature_category: :shared
# Better errors handler
gem 'better_errors', '~> 2.10.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'better_errors', '~> 2.10.1', feature_category: :shared
gem 'sprite-factory', '~> 1.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sprite-factory', '~> 1.7', feature_category: :shared
gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'listen', '~> 3.7', feature_category: :shared
gem 'ruby-lsp', "~> 0.21.0", require: false, feature_category: :tooling
gem 'ruby-lsp', "~> 0.22.0", require: false, feature_category: :tooling
gem 'ruby-lsp-rails', "~> 0.3.6", feature_category: :tooling
gem 'ruby-lsp-rspec', "~> 0.1.10", require: false, feature_category: :tooling
gem 'gdk-toogle', '~> 0.9', '>= 0.9.5', require: 'toogle', feature_category: :tooling
# Used by
# * `lib/tasks/gitlab/security/update_banned_ssh_keys.rake`
# * `lib/tasks/gitlab/db/migration_squash.rake`
gem 'git', '~> 1.8', feature_category: :shared
end
group :development, :test do
gem 'deprecation_toolkit', '~> 1.5.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bullet', '~> 7.1.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'deprecation_toolkit', '~> 1.5.1', require: false, feature_category: :shared
gem 'bullet', '~> 7.1.2', feature_category: :shared
gem 'parser', '= 3.3.6.0', feature_category: :shared
gem 'pry-byebug' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pry-rails', '~> 0.3.9' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pry-shell', '~> 0.6.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pry-byebug', feature_category: :shared
gem 'pry-rails', '~> 0.3.9', feature_category: :shared
gem 'pry-shell', '~> 0.6.4', feature_category: :shared
gem 'awesome_print', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'awesome_print', require: false, feature_category: :shared
gem 'database_cleaner-active_record', '~> 2.2.0', feature_category: :database
gem 'rspec-rails', '~> 7.0.0', feature_category: :shared
gem 'factory_bot_rails', '~> 6.4.3', feature_category: :tooling
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
gem 'minitest', '~> 5.11.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'minitest', '~> 5.11.0', feature_category: :shared
gem 'spring', '~> 4.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'spring-commands-rspec', '~> 1.0.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'spring', '~> 4.1.0', feature_category: :shared
gem 'spring-commands-rspec', '~> 1.0.4', feature_category: :shared
gem 'gitlab-styles', '~> 13.0.2', feature_category: :tooling
gem 'haml_lint', '~> 0.58', feature_category: :tooling
gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'bundler-audit', '~> 0.9.1', require: false, feature_category: :shared
# Benchmarking & profiling
gem 'benchmark-ips', '~> 2.11.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'benchmark-memory', '~> 0.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'benchmark-ips', '~> 2.11.0', require: false, feature_category: :shared
gem 'benchmark-memory', '~> 0.1', require: false, feature_category: :shared
# Profiling data from CI/CD pipelines
gem 'influxdb-client', '~> 3.1', require: false, feature_category: :tooling
@@ -525,15 +538,15 @@ group :development, :test do
gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling
gem 'test_file_finder', '~> 0.3.1', feature_category: :tooling
gem 'simple_po_parser', '~> 1.1.6', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'simple_po_parser', '~> 1.1.6', require: false, feature_category: :shared
gem 'png_quantizator', '~> 0.2.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'png_quantizator', '~> 0.2.1', require: false, feature_category: :shared
gem 'parallel', '~> 1.19', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'parallel', '~> 1.19', require: false, feature_category: :shared
gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup', feature_category: :shared
gem 'pact', '~> 1.64' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'pact', '~> 1.64', feature_category: :shared
# For now we only use vite in development / test, and not for production builds
# See: https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/106
@@ -556,17 +569,17 @@ end
# Gems required in omnibus-gitlab pipeline
group :development, :test, :omnibus do
gem 'license_finder', '~> 7.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'license_finder', '~> 7.0', require: false, feature_category: :shared
end
# Gems required in various pipelines
group :development, :test, :monorepo do
gem 'gitlab-rspec', path: 'gems/gitlab-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-rspec', path: 'gems/gitlab-rspec', feature_category: :shared
gem 'gitlab-rspec_flaky', path: 'gems/gitlab-rspec_flaky', feature_category: :tooling
end
group :test do
gem 'fuubar', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'fuubar', '~> 2.2.0', feature_category: :tooling
gem 'rspec-retry', '~> 0.6.2', feature_category: :tooling
gem 'rspec_profiling', '~> 0.0.9', feature_category: :tooling
gem 'rspec-benchmark', '~> 0.6.0', feature_category: :tooling
@@ -577,20 +590,20 @@ group :test do
gem 'capybara-screenshot', '~> 1.0.26', feature_category: :test_platform
gem 'selenium-webdriver', '~> 4.21', '>= 4.21.1', feature_category: :test_platform
gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'graphlyte', '~> 1.0.0', feature_category: :shared
gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'shoulda-matchers', '~> 5.1.0', require: false, feature_category: :shared
gem 'email_spec', '~> 2.2.0', feature_category: :shared
gem 'webmock', '~> 3.24.0', feature_category: :shared
gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rails-controller-testing', feature_category: :shared
gem 'concurrent-ruby', '~> 1.1', feature_category: :shared
gem 'test-prof', '~> 1.4.0', feature_category: :tooling
gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rspec_junit_formatter', feature_category: :shared
gem 'guard-rspec', feature_category: :shared
gem 'axe-core-rspec', '~> 4.9.0', feature_category: :tooling
# Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'derailed_benchmarks', require: false, feature_category: :shared
gem 'gitlab_quality-test_tooling', '~> 2.4.0', require: false, feature_category: :tooling
end
@@ -601,38 +614,38 @@ gem 'faraday-multipart', '~> 1.0', feature_category: :importers
gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared
gem 'email_reply_trimmer', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'html2text' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'email_reply_trimmer', '~> 0.1', feature_category: :shared
gem 'html2text', feature_category: :shared
gem 'stackprof', '~> 0.2.26', require: false, feature_category: :shared
gem 'rbtrace', '~> 0.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'memory_profiler', '~> 1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'activerecord-explain-analyze', '~> 0.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rbtrace', '~> 0.4', require: false, feature_category: :shared
gem 'memory_profiler', '~> 1.0', require: false, feature_category: :shared
gem 'activerecord-explain-analyze', '~> 0.1', require: false, feature_category: :shared
# OAuth
gem 'oauth2', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'oauth2', '~> 2.0', feature_category: :system_access
# Health check
gem 'health_check', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'health_check', '~> 3.0', feature_category: :shared
# System information
gem 'vmstat', '~> 2.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sys-filesystem', '~> 1.4.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'vmstat', '~> 2.3.0', feature_category: :shared
gem 'sys-filesystem', '~> 1.4.3', feature_category: :shared
# NTP client
gem 'net-ntp' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'net-ntp', feature_category: :shared
# SSH keys support
gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ssh_data', '~> 1.3', feature_category: :shared
# Spamcheck GRPC protocol definitions
gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'spamcheck', '~> 1.3.0', feature_category: :insider_threat
# Gitaly GRPC protocol definitions
gem 'gitaly', '~> 17.5.0.pre.rc1', feature_category: :gitaly
gem 'gitaly', '~> 17.7.0', feature_category: :gitaly
# KAS GRPC protocol definitions
gem 'gitlab-kas-grpc', '~> 17.6.1', feature_category: :deployment_management
gem 'gitlab-kas-grpc', '~> 17.7.0', feature_category: :deployment_management
# Lock the version before issues below are resolved:
# https://gitlab.com/gitlab-org/gitlab/-/issues/473169#note_2028352939
@@ -640,31 +653,31 @@ gem 'gitlab-kas-grpc', '~> 17.6.1', feature_category: :deployment_management
# that it doesn't have the same issues.
gem 'grpc', '= 1.63.0', feature_category: :shared
gem 'google-protobuf', '~> 3.25', '>= 3.25.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'google-protobuf', '~> 3.25', '>= 3.25.3', feature_category: :shared
gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'toml-rb', '~> 2.2.0', feature_category: :shared
# Feature toggles
gem 'flipper', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'flipper-active_record', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'flipper-active_support_cache_store', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'unleash', '~> 3.2.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'flipper', '~> 0.26.2', feature_category: :shared
gem 'flipper-active_record', '~> 0.26.2', feature_category: :shared
gem 'flipper-active_support_cache_store', '~> 0.26.2', feature_category: :shared
gem 'unleash', '~> 3.2.2', feature_category: :shared
gem 'gitlab-experiment', '~> 0.9.1', feature_category: :shared
# Structured logging
gem 'lograge', '~> 0.5' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'lograge', '~> 0.5', feature_category: :shared
gem 'grape_logging', '~> 1.8', '>= 1.8.4', feature_category: :api
# DNS Lookup
gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'gitlab-net-dns', '~> 0.9.2', feature_category: :shared
# Countries list
gem 'countries', '~> 4.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'countries', '~> 4.0.0', feature_category: :shared
gem 'retriable', '~> 3.1.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'retriable', '~> 3.1.2', feature_category: :shared
# LRU cache
gem 'lru_redux' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'lru_redux', feature_category: :shared
# Locked as long as quoted-printable encoding issues are not resolved
# Monkey-patched in `config/initializers/mail_encoding_patch.rb`
@@ -673,72 +686,77 @@ gem 'lru_redux' # rubocop:todo Gemfile/MissingFeatureCategory
# `config/initializers/mail_starttls_patch.rb` has also been patched to
# fix STARTTLS handling until https://github.com/mikel/mail/pull/1536 is
# released.
gem 'mail', '= 2.8.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'mail-smtp_pool', '~> 0.1.0', path: 'vendor/gems/mail-smtp_pool', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'mail', '= 2.8.1', feature_category: :shared
gem 'mail-smtp_pool', '~> 0.1.0', path: 'vendor/gems/mail-smtp_pool', require: false, feature_category: :shared
gem 'microsoft_graph_mailer', '~> 0.1.0', path: 'vendor/gems/microsoft_graph_mailer' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'microsoft_graph_mailer', '~> 0.1.0', path: 'vendor/gems/microsoft_graph_mailer', feature_category: :shared
# File encryption
gem 'lockbox', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'lockbox', '~> 1.3.0', feature_category: :shared
# Email validation
gem 'valid_email', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'valid_email', '~> 0.1', feature_category: :shared
# JSON
gem 'jsonb_accessor', '~> 1.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'jsonb_accessor', '~> 1.4', feature_category: :shared
gem 'json', '~> 2.7.2', feature_category: :shared
gem 'json_schemer', '~> 2.3.0', feature_category: :shared
gem 'oj', '~> 3.13.21' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'oj-introspect', '~> 0.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'multi_json', '~> 1.14.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'yajl-ruby', '~> 1.4.3', require: 'yajl' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'oj', '~> 3.13.21', feature_category: :shared
gem 'oj-introspect', '~> 0.7', feature_category: :shared
gem 'multi_json', '~> 1.14.1', feature_category: :shared
gem 'yajl-ruby', '~> 1.4.3', require: 'yajl', feature_category: :shared
gem 'webauthn', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'webauthn', '~> 3.0', feature_category: :shared
# IPAddress utilities
gem 'ipaddress', '~> 0.8.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ipaddress', '~> 0.8.3', feature_category: :shared
gem 'parslet', '~> 1.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'parslet', '~> 1.8', feature_category: :shared
gem 'ipynbdiff', path: 'gems/ipynbdiff', require: 'ipynb_diff' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ipynbdiff', path: 'gems/ipynbdiff', require: 'ipynb_diff', feature_category: :shared
gem 'ed25519', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'ed25519', '~> 1.3.0', feature_category: :shared
# Error Tracking OpenAPI client
# See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature
gem 'error_tracking_open_api', path: 'gems/error_tracking_open_api' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'error_tracking_open_api', path: 'gems/error_tracking_open_api', feature_category: :shared
# Vulnerability advisories
gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite', feature_category: :software_composition_analysis
# Work with RPM packages
gem 'arr-pm', '~> 0.0.12' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'arr-pm', '~> 0.0.12', feature_category: :package_registry
# Remote Development
gem 'devfile', '~> 0.1.1', feature_category: :workspaces
# Apple plist parsing
gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'app_store_connect' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'CFPropertyList', '~> 3.0.0', feature_category: :mobile_devops
gem 'app_store_connect', feature_category: :mobile_devops
# For phone verification
gem 'telesignenterprise', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'telesignenterprise', '~> 2.2', feature_category: :insider_threat
# BufferedIO patch
# Updating this version will require updating scripts/allowed_warnings.txt
gem 'net-protocol', '~> 0.1.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'net-protocol', '~> 0.1.3', feature_category: :shared
# This is locked to 0.4.1 because we patch Net::HTTP#connect in
# This is locked to 0.6.0 because we patch Net::HTTP#connect in
# gems/gitlab-http/lib/net_http/connect_patch.rb.
gem 'net-http', '= 0.4.1', feature_category: :shared
# It can be upgraded but care must be taken to preserve the patch.
gem 'net-http', '= 0.6.0', feature_category: :shared
# This is locked to 0.13.0 because the default parser changes from RFC2396 to RFC3986,
# which can be removed after Rails 7.2 upgrade
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173142#note_2277952450
gem 'uri', '= 0.13.0', feature_category: :shared
gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'duo_api', '~> 1.3', feature_category: :system_access
gem 'gitlab-sdk', '~> 0.3.0', feature_category: :application_instrumentation
gem 'openbao_client', path: 'gems/openbao_client' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'openbao_client', path: 'gems/openbao_client', feature_category: :artifact_security
gem 'paper_trail', '~> 15.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'paper_trail', '~> 15.0', feature_category: :shared
gem "i18n_data", "~> 0.13.1", feature_category: :system_access
@@ -23,10 +23,21 @@ PATH
error_tracking_open_api (1.0.0)
typhoeus (~> 1.0, >= 1.0.1)
PATH
remote: gems/gitlab-active-context
specs:
gitlab-active-context (0.0.1)
activesupport
connection_pool
elasticsearch
pg
zeitwerk
PATH
remote: gems/gitlab-backup-cli
specs:
gitlab-backup-cli (0.0.1)
activerecord (>= 7)
activesupport (>= 7)
addressable (~> 2.8)
concurrent-ruby (~> 1.1)
@@ -40,6 +51,7 @@ PATH
logger (~> 1.5.3)
minitest (~> 5.11.0)
parallel (~> 1.19)
pg (~> 1.5.6)
rack (~> 2.2.9)
rainbow (~> 3.0)
rexml (~> 3.3.2)
@@ -62,7 +74,7 @@ PATH
concurrent-ruby (~> 1.2)
httparty (~> 0.21.0)
ipaddress (~> 0.8.3)
net-http (= 0.4.1)
net-http (= 0.6.0)
railties (~> 7)
PATH
@@ -233,70 +245,70 @@ GEM
base64 (~> 0.2.0)
faraday (>= 1.0, < 3.0.0)
faraday-retry (>= 1.0, < 3.0.0)
actioncable (7.0.8.6)
actionpack (= 7.0.8.6)
activesupport (= 7.0.8.6)
actioncable (7.0.8.7)
actionpack (= 7.0.8.7)
activesupport (= 7.0.8.7)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.8.6)
actionpack (= 7.0.8.6)
activejob (= 7.0.8.6)
activerecord (= 7.0.8.6)
activestorage (= 7.0.8.6)
activesupport (= 7.0.8.6)
actionmailbox (7.0.8.7)
actionpack (= 7.0.8.7)
activejob (= 7.0.8.7)
activerecord (= 7.0.8.7)
activestorage (= 7.0.8.7)
activesupport (= 7.0.8.7)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.0.8.6)
actionpack (= 7.0.8.6)
actionview (= 7.0.8.6)
activejob (= 7.0.8.6)
activesupport (= 7.0.8.6)
actionmailer (7.0.8.7)
actionpack (= 7.0.8.7)
actionview (= 7.0.8.7)
activejob (= 7.0.8.7)
activesupport (= 7.0.8.7)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.8.6)
actionview (= 7.0.8.6)
activesupport (= 7.0.8.6)
actionpack (7.0.8.7)
actionview (= 7.0.8.7)
activesupport (= 7.0.8.7)
rack (~> 2.0, >= 2.2.4)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (7.0.8.6)
actionpack (= 7.0.8.6)
activerecord (= 7.0.8.6)
activestorage (= 7.0.8.6)
activesupport (= 7.0.8.6)
actiontext (7.0.8.7)
actionpack (= 7.0.8.7)
activerecord (= 7.0.8.7)
activestorage (= 7.0.8.7)
activesupport (= 7.0.8.7)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.8.6)
activesupport (= 7.0.8.6)
actionview (7.0.8.7)
activesupport (= 7.0.8.7)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (7.0.8.6)
activesupport (= 7.0.8.6)
activejob (7.0.8.7)
activesupport (= 7.0.8.7)
globalid (>= 0.3.6)
activemodel (7.0.8.6)
activesupport (= 7.0.8.6)
activerecord (7.0.8.6)
activemodel (= 7.0.8.6)
activesupport (= 7.0.8.6)
activemodel (7.0.8.7)
activesupport (= 7.0.8.7)
activerecord (7.0.8.7)
activemodel (= 7.0.8.7)
activesupport (= 7.0.8.7)
activerecord-explain-analyze (0.1.0)
activerecord (>= 4)
pg
activestorage (7.0.8.6)
actionpack (= 7.0.8.6)
activejob (= 7.0.8.6)
activerecord (= 7.0.8.6)
activesupport (= 7.0.8.6)
activestorage (7.0.8.7)
actionpack (= 7.0.8.7)
activejob (= 7.0.8.7)
activerecord (= 7.0.8.7)
activesupport (= 7.0.8.7)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (7.0.8.6)
activesupport (7.0.8.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -342,7 +354,7 @@ GEM
aws-sdk-cloudformation (1.41.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-core (3.213.0)
aws-sdk-core (3.214.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
@@ -350,7 +362,7 @@ GEM
aws-sdk-kms (1.76.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.172.0)
aws-sdk-s3 (1.176.1)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
@@ -611,8 +623,8 @@ GEM
faraday (>= 1, < 3)
faraday-http-cache (2.5.0)
faraday (>= 0.8)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-multipart (1.1.0)
multipart-post (~> 2.0)
faraday-net_http (3.1.0)
net-http
faraday-net_http_persistent (2.1.0)
@@ -629,7 +641,7 @@ GEM
fast_blank (1.0.1)
fast_gettext (2.3.0)
ffaker (2.23.0)
ffi (1.17.0)
ffi (1.17.1)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
@@ -720,7 +732,7 @@ GEM
git (1.18.0)
addressable (~> 2.8)
rchardet (~> 1.8)
gitaly (17.5.0.pre.rc42)
gitaly (17.7.0)
grpc (~> 1.0)
gitlab (4.19.0)
httparty (~> 0.20)
@@ -748,7 +760,7 @@ GEM
nokogiri (~> 1, >= 1.10.8)
gitlab-glfm-markdown (0.0.23)
rb_sys (= 0.9.94)
gitlab-kas-grpc (17.6.2)
gitlab-kas-grpc (17.7.0)
grpc (~> 1.0)
gitlab-labkit (0.37.0)
actionpack (>= 5.0.0, < 8.1.0)
@@ -1020,7 +1032,7 @@ GEM
invisible_captcha (2.1.0)
rails (>= 5.2)
io-event (1.6.5)
ipaddr (1.2.5)
ipaddr (1.2.7)
ipaddress (0.8.3)
jaeger-client (1.1.0)
opentracing (~> 0.3)
@@ -1176,7 +1188,7 @@ GEM
neighbor (0.3.2)
activerecord (>= 6.1)
nenv (0.3.0)
net-http (0.4.1)
net-http (0.6.0)
uri
net-http-persistent (4.0.1)
connection_pool (~> 2.2)
@@ -1193,7 +1205,7 @@ GEM
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.3.3)
net-protocol
net-ssh (7.2.0)
net-ssh (7.3.0)
netrc (0.11.0)
nio4r (2.7.0)
no_proxy_fix (0.1.2)
@@ -1215,7 +1227,7 @@ GEM
octokit (9.2.0)
faraday (>= 1, < 3)
sawyer (~> 0.9)
ohai (18.1.3)
ohai (18.1.18)
chef-config (>= 14.12, < 19)
chef-utils (>= 16.0, < 19)
ffi (~> 1.9)
@@ -1489,20 +1501,20 @@ GEM
rack-test (2.1.0)
rack (>= 1.3)
rack-timeout (0.7.0)
rails (7.0.8.6)
actioncable (= 7.0.8.6)
actionmailbox (= 7.0.8.6)
actionmailer (= 7.0.8.6)
actionpack (= 7.0.8.6)
actiontext (= 7.0.8.6)
actionview (= 7.0.8.6)
activejob (= 7.0.8.6)
activemodel (= 7.0.8.6)
activerecord (= 7.0.8.6)
activestorage (= 7.0.8.6)
activesupport (= 7.0.8.6)
rails (7.0.8.7)
actioncable (= 7.0.8.7)
actionmailbox (= 7.0.8.7)
actionmailer (= 7.0.8.7)
actionpack (= 7.0.8.7)
actiontext (= 7.0.8.7)
actionview (= 7.0.8.7)
activejob (= 7.0.8.7)
activemodel (= 7.0.8.7)
activerecord (= 7.0.8.7)
activestorage (= 7.0.8.7)
activesupport (= 7.0.8.7)
bundler (>= 1.15.0)
railties (= 7.0.8.6)
railties (= 7.0.8.7)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@@ -1516,9 +1528,9 @@ GEM
rails-i18n (7.0.10)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.0.8.6)
actionpack (= 7.0.8.6)
activesupport (= 7.0.8.6)
railties (7.0.8.7)
actionpack (= 7.0.8.7)
activesupport (= 7.0.8.7)
method_source
rake (>= 12.2)
thor (~> 1.0)
@@ -1668,15 +1680,15 @@ GEM
ruby-fogbugz (0.3.0)
crack (~> 0.4)
multipart-post (~> 2.0)
ruby-lsp (0.21.3)
ruby-lsp (0.22.1)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 4)
sorbet-runtime (>= 0.5.10782)
ruby-lsp-rails (0.3.26)
ruby-lsp (>= 0.21.2, < 0.22.0)
ruby-lsp-rspec (0.1.18)
ruby-lsp (~> 0.21.0)
ruby-lsp-rails (0.3.27)
ruby-lsp (>= 0.22.0, < 0.23.0)
ruby-lsp-rspec (0.1.19)
ruby-lsp (~> 0.22.0)
ruby-magic (0.6.0)
mini_portile2 (~> 2.8)
ruby-openai (3.7.0)
@@ -1713,19 +1725,19 @@ GEM
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semver_dialects (3.4.4)
semver_dialects (3.4.5)
deb_version (~> 1.0.1)
pastel (~> 0.8.0)
thor (~> 1.3)
tty-command (~> 0.10.1)
sentry-rails (5.21.0)
sentry-rails (5.22.1)
railties (>= 5.0)
sentry-ruby (~> 5.21.0)
sentry-ruby (5.21.0)
sentry-ruby (~> 5.22.1)
sentry-ruby (5.22.1)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
sentry-sidekiq (5.21.0)
sentry-ruby (~> 5.21.0)
sentry-sidekiq (5.22.1)
sentry-ruby (~> 5.22.1)
sidekiq (>= 3.0)
shellany (0.0.1)
shoulda-matchers (5.1.0)
@@ -1827,7 +1839,7 @@ GEM
unicode-display_width (>= 1.1.1, < 3)
terser (1.0.2)
execjs (>= 0.3.0, < 3)
test-prof (1.4.2)
test-prof (1.4.4)
test_file_finder (0.3.1)
faraday (>= 1.0, < 3.0, != 2.0.0)
text (1.3.1)
@@ -1910,7 +1922,7 @@ GEM
activesupport (>= 3.0)
version_gem (1.1.0)
version_sorter (2.3.0)
view_component (3.20.0)
view_component (3.21.0)
activesupport (>= 5.2.0, < 8.1)
concurrent-ruby (~> 1.0)
method_source (~> 1.0)
@@ -1963,7 +1975,7 @@ GEM
xpath (3.2.0)
nokogiri (~> 1.8)
yajl-ruby (1.4.3)
yard (0.9.26)
yard (0.9.37)
zeitwerk (2.6.7)
PLATFORMS
@@ -1989,8 +2001,8 @@ DEPENDENCIES
attr_encrypted (~> 3.2.4)!
awesome_print
aws-sdk-cloudformation (~> 1)
aws-sdk-core (~> 3.213.0)
aws-sdk-s3 (~> 1.172.0)
aws-sdk-core (~> 3.214.0)
aws-sdk-s3 (~> 1.176.0)
axe-core-rspec (~> 4.9.0)
babosa (~> 2.0)
base32 (~> 0.3.0)
@@ -2067,7 +2079,9 @@ DEPENDENCIES
gdk-toogle (~> 0.9, >= 0.9.5)
gettext (~> 3.4, >= 3.4.9)
gettext_i18n_rails (~> 1.13.0)
gitaly (~> 17.5.0.pre.rc1)
git (~> 1.8)
gitaly (~> 17.7.0)
gitlab-active-context!
gitlab-backup-cli!
gitlab-chronic (~> 0.10.5)
gitlab-cloud-connector (~> 0.2.5)
@@ -2078,7 +2092,7 @@ DEPENDENCIES
gitlab-glfm-markdown (~> 0.0.21)
gitlab-housekeeper!
gitlab-http!
gitlab-kas-grpc (~> 17.6.1)
gitlab-kas-grpc (~> 17.7.0)
gitlab-labkit (~> 0.37.0)
gitlab-license (~> 2.6)
gitlab-mail_room (~> 0.0.24)
@@ -2173,7 +2187,7 @@ DEPENDENCIES
minitest (~> 5.11.0)
multi_json (~> 1.14.1)
neighbor (~> 0.3.2)
net-http (= 0.4.1)
net-http (= 0.6.0)
net-ldap (~> 0.17.1)
net-ntp
net-protocol (~> 0.1.3)
@@ -2246,7 +2260,7 @@ DEPENDENCIES
rack-oauth2 (~> 2.2.1)
rack-proxy (~> 0.7.7)
rack-timeout (~> 0.7.0)
rails (~> 7.0.8.6)
rails (~> 7.0.8.7)
rails-controller-testing
rails-i18n (~> 7.0, >= 7.0.9)
rainbow (~> 3.0)
@@ -2271,7 +2285,7 @@ DEPENDENCIES
rspec_profiling (~> 0.0.9)
rubocop
ruby-fogbugz (~> 0.3.0)
ruby-lsp (~> 0.21.0)
ruby-lsp (~> 0.22.0)
ruby-lsp-rails (~> 0.3.6)
ruby-lsp-rspec (~> 0.1.10)
ruby-magic (~> 0.6)
@@ -2285,9 +2299,9 @@ DEPENDENCIES
seed-fu (~> 2.3.7)
selenium-webdriver (~> 4.21, >= 4.21.1)
semver_dialects (~> 3.0)
sentry-rails (~> 5.21.0)
sentry-ruby (~> 5.21.0)
sentry-sidekiq (~> 5.21.0)
sentry-rails (~> 5.22.0)
sentry-ruby (~> 5.22.0)
sentry-sidekiq (~> 5.22.0)
shoulda-matchers (~> 5.1.0)
sidekiq!
sidekiq-cron (~> 1.12.0)
@@ -2323,10 +2337,11 @@ DEPENDENCIES
undercover (~> 0.5.0)
unicode-emoji (~> 4.0)
unleash (~> 3.2.2)
uri (= 0.13.0)
valid_email (~> 0.1)
validates_hostname (~> 1.0.13)
version_sorter (~> 2.3)
view_component (~> 3.20.0)
view_component (~> 3.21.0)
vite_rails (~> 3.0.17)
vite_ruby (~> 3.8.0)
vmstat (~> 2.3.0)
@@ -17,10 +17,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ms0196bp8gzlghfj32q2qdzszb7hsgg96v3isrv5ysd87w0z2zl";
sha256 = "0qpiw9n8sswisvji91ra290wiihgl30kg3zkpffx0byz84w52d20";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
actionmailbox = {
dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -28,10 +28,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mw8casnlqgj3vwqv7qk3d4q3bjszlpmbs9ldpc9gz1qdvafx7cg";
sha256 = "1hn1d8fshkfijsmwflnvn2ys9i8k3rbkk7h6qsgwspg8v2iyl3ll";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
actionmailer = {
dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -39,10 +39,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07gpm15k5c0y84q99zipnhcdgq93bwralyjpj252prvqwfjmiw73";
sha256 = "054dv081ysp86im4hxcwwlmkl2zidnmy34mw4acghjkpz2igks4b";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
actionpack = {
dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -50,10 +50,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19ywl4jp77b51c01hsyzwia093fnj73pw1ipgyj4pk3h2b9faj5n";
sha256 = "0b2y7wy6gx59zb88v1fqiyxdkafrsfma67sx5394yjlhhzbb3rj0";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
actiontext = {
dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -61,10 +61,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1j8b29764nbiqz6d7ra42j2i6wf070lbms1fhpq3cl9azbgijb16";
sha256 = "1818spc73y96n94jssh77z2w4dnz84sn83ywrk5cicnmjzdx4xfb";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
actionview = {
dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -72,10 +72,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0girx71db1aq5b70ln3qq03z9d7xjdyp297v1a8rdal7k89y859c";
sha256 = "1vbziywvidi7gy69hqxsrcxh6n8i4x2w75qam1fzw0qrqv4mp5xy";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
activejob = {
dependencies = ["activesupport" "globalid"];
@@ -83,10 +83,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gbc0wx9xal5bj0pbz8ygkr75wj4cm5i69hpwknf023psgixaybw";
sha256 = "081a32z17976kgf7a51blh7fsxsm3p8qj02p8wx8cd7fx8xdpx7g";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
activemodel = {
dependencies = ["activesupport"];
@@ -94,10 +94,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1f6szahjsb4pr2xvlvk4kghk9291xh9c14s8cqwy6wwpm1vcglim";
sha256 = "10qaykhcs15wgyy9fd886mwdkf3iwsib0h6fcnwqa7jw0nxh8fzi";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
activerecord = {
dependencies = ["activemodel" "activesupport"];
@@ -105,10 +105,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14qs1jc9hwnsm4dzvnai8b36bcq1d7rcqgjxy0dc6wza670lqapf";
sha256 = "0nm4y9fy19l65c18v3k8s3x2npp7kcn8ds2y5i38x8aq1r8whkzr";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
activerecord-explain-analyze = {
dependencies = ["activerecord" "pg"];
@@ -137,10 +137,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nnvqnmc7mdhw2w55j4vnx4zmmdmmwmaf6ax2mbj9j5a48fw19vf";
sha256 = "1xcy76cwskwfm39lr4cg7bmknc8j0vymp55h8hzrhl1sfdriwhfa";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -148,10 +148,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gj20cysajda05z3r7pl1g9y84nzsqak5dvk9nrz13jpy6297dj1";
sha256 = "1zq4f834my1z6yh05rfr1dzl3i8padh33j092zlal979blvh4iyz";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
addressable = {
dependencies = ["public_suffix"];
@@ -400,10 +400,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06fvh863v0g7h14642yxy0plfnp4jg1g7pdazmv1gmkj3nz8b9kc";
sha256 = "12s8v199kb3vixl2896axfj4ifkglr0q7zyn73pdkdf3kpra1wi4";
type = "gem";
};
version = "3.213.0";
version = "3.214.0";
};
aws-sdk-kms = {
dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -422,10 +422,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hwj46w4ilynw5rilpydbykk7hp2hfg2rmwlnr0b4wy5f3aq7b52";
sha256 = "1smmyhzfkxcin52arlsxi4rcysirvjmshb4zqlb7bgbxainig034";
type = "gem";
};
version = "1.172.0";
version = "1.176.1";
};
aws-sigv4 = {
dependencies = ["aws-eventstream"];
@@ -1755,14 +1755,14 @@ src:
};
faraday-multipart = {
dependencies = ["multipart-post"];
groups = ["danger" "default" "development" "test"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09871c4hd7s5ws1wl4gs7js1k2wlby6v947m2bbzg43pnld044lh";
sha256 = "0l87r9jg06nsh24gwwd1jdnxb1zq89ffybnxab0dd90nfcf0ysw5";
type = "gem";
};
version = "1.0.4";
version = "1.1.0";
};
faraday-net_http = {
dependencies = ["net-http"];
@@ -1854,10 +1854,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07139870npj59jnl8vmk39ja3gdk3fb5z9vc0lf32y2h891hwqsi";
sha256 = "0fgwn1grxf4zxmyqmb9i4z2hr111585n9jnk17y6y7hhs7dv1xi6";
type = "gem";
};
version = "1.17.0";
version = "1.17.1";
};
ffi-compiler = {
dependencies = ["ffi" "rake"];
@@ -2166,10 +2166,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05z84knb5f520azqcq0mzwrp3s4c13hpl1bfkkq86paw4hq94ihm";
sha256 = "0fpypp7l4bzwhbq8my1gscyh4hzamvjvaxlrlvzs88pbhllhdc3i";
type = "gem";
};
version = "17.5.0.pre.rc42";
version = "17.7.0";
};
gitlab = {
dependencies = ["httparty" "terminal-table"];
@@ -2182,8 +2182,18 @@ src:
};
version = "4.19.0";
};
gitlab-active-context = {
dependencies = ["activesupport" "connection_pool" "elasticsearch" "pg" "zeitwerk"];
groups = ["default"];
platforms = [];
source = {
path = "${src}/gems/gitlab-active-context";
type = "path";
};
version = "0.0.1";
};
gitlab-backup-cli = {
dependencies = ["activesupport" "addressable" "concurrent-ruby" "faraday" "google-cloud-storage_transfer" "google-protobuf" "googleauth" "grpc" "json" "jwt" "logger" "minitest" "parallel" "rack" "rainbow" "rexml" "thor"];
dependencies = ["activerecord" "activesupport" "addressable" "concurrent-ruby" "faraday" "google-cloud-storage_transfer" "google-protobuf" "googleauth" "grpc" "json" "jwt" "logger" "minitest" "parallel" "pg" "rack" "rainbow" "rexml" "thor"];
groups = ["default"];
platforms = [];
source = {
@@ -2294,10 +2304,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11v8jy5dv5vknrgzpasbdncy6jxpxsnrbbz9kpaxpky2k9n7s1fg";
sha256 = "000681ri2di4y452gk125siv0nfdb8jl0cakmppyf8iccwafaq1r";
type = "gem";
};
version = "17.6.2";
version = "17.7.0";
};
gitlab-labkit = {
dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
@@ -3343,10 +3353,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ypic2hrmvvcgw7al72raphqv5cs1zvq4w284pwrkvfqsrqrqrsf";
sha256 = "0wmgwqv6c1kq8cxbxddllnrlh5jjmjw73i1sqbnvq55zzn3l0zyb";
type = "gem";
};
version = "1.2.5";
version = "1.2.7";
};
ipaddress = {
groups = ["default"];
@@ -4077,14 +4087,14 @@ src:
};
net-http = {
dependencies = ["uri"];
groups = ["default"];
groups = ["danger" "default" "development" "test"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn";
type = "gem";
};
version = "0.4.1";
version = "0.6.0";
};
net-http-persistent = {
dependencies = ["connection_pool"];
@@ -4177,10 +4187,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jyj6j7w9zpj2zhp4dyhdjiwsn9rqwksj7s7fzpnn7rx2xvz2a1a";
sha256 = "1w1ypxa3n6mskkwb00b489314km19l61p5h3bar6zr8cng27c80p";
type = "gem";
};
version = "7.2.0";
version = "7.3.0";
};
netrc = {
groups = ["default"];
@@ -4282,10 +4292,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15fz0ws8q9635rl5y4jyiwxbibr9ilba4askazhrgy4pcmmgs34q";
sha256 = "1w0zrk1n6n7jl493k4vv5xaiszbmxsmaffy9xvykbfawjjb83vj2";
type = "gem";
};
version = "18.1.3";
version = "18.1.18";
};
oj = {
groups = ["default"];
@@ -5314,10 +5324,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1s42lyl19h74xlqkb6ffl67h688q0slp1lhnd05g09a46z7wapri";
sha256 = "1vfd2l3m1802vq7gdqpvd3mkcfhxacpsxixqpx4n6x0mv56ysrsy";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
rails-controller-testing = {
dependencies = ["actionpack" "actionview" "activesupport"];
@@ -5369,10 +5379,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fcn0ix814074gqicc0k1178f7ahmysiv3pfq8g00phdwj0p3w0g";
sha256 = "0pshckc6b9h2ikl3svk47iv0nq6v908h3q9ndlblpg021cl8bf8s";
type = "gem";
};
version = "7.0.8.6";
version = "7.0.8.7";
};
rainbow = {
groups = ["coverage" "default" "development" "test"];
@@ -6001,10 +6011,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hayvpcmgjylxpgxs05jdzyahar4cxpgwhg2b6gg1qhcfhky7i2i";
sha256 = "1sp2arrj0fz708k6y9airjs1paddm8d1b03hbr3lip0n63d9vsnj";
type = "gem";
};
version = "0.21.3";
version = "0.22.1";
};
ruby-lsp-rails = {
dependencies = ["ruby-lsp"];
@@ -6012,10 +6022,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lb39frvjwm25iw0q7bzbv6hyh2p2p634fsnplkxz9vqgb0r53pm";
sha256 = "1iq49y9vml6mzzfgn7z7rdkwzm4w8km7r78mhlpxblrdvk50b1vq";
type = "gem";
};
version = "0.3.26";
version = "0.3.27";
};
ruby-lsp-rspec = {
dependencies = ["ruby-lsp"];
@@ -6023,10 +6033,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qf43lkvf6v0c5z173sqbxw9vk1vwjfwaq9ynj658kzba8pqjvjf";
sha256 = "09wafk3nz0b3a3iqz0swi5q5rrwzrys5cydf0mn3iznm9z6wvygy";
type = "gem";
};
version = "0.1.18";
version = "0.1.19";
};
ruby-magic = {
dependencies = ["mini_portile2"];
@@ -6223,10 +6233,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1i2wxx2vdpdiwcr4npqxzdzmd7hwzlllsrpxpic13na654r3wxri";
sha256 = "0gp63g8m9gpsbqmcs9dnfcgs9pnzhyns2is4ha66lyf43lswm0kk";
type = "gem";
};
version = "3.4.4";
version = "3.4.5";
};
sentry-rails = {
dependencies = ["railties" "sentry-ruby"];
@@ -6234,10 +6244,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "00nn1agy19s3zp7y06zxal6ds8h6w2rlxb6vjk5x7w5gk78l7adm";
sha256 = "1drz5lm7s2m55pmxdbpbcxlpvgaj3rchm14nrzl2s80fvh47c8i3";
type = "gem";
};
version = "5.21.0";
version = "5.22.1";
};
sentry-ruby = {
dependencies = ["bigdecimal" "concurrent-ruby"];
@@ -6245,10 +6255,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ac6yy9nfwak6pi8xp2qx31pap1l4h4qhkiala5y1rzwkbahski9";
sha256 = "129jbd6zvfn59djs455hflk2nhf0sccnvp23vsiwd957dpbvsxzd";
type = "gem";
};
version = "5.21.0";
version = "5.22.1";
};
sentry-sidekiq = {
dependencies = ["sentry-ruby" "sidekiq"];
@@ -6256,10 +6266,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1qlh1r1h6lj57bbgzv9r78pp194jl79bqivn9ffrvxiqjb3lxxbd";
sha256 = "129ahag27akxqha2dldvvzkbxi3zcrca9naifak3xqaqbs8kyymx";
type = "gem";
};
version = "5.21.0";
version = "5.22.1";
};
shellany = {
groups = ["default" "test"];
@@ -6749,10 +6759,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mydvmcm4m5501322wyl3pwmc6i5ijvwh4kb242l085j88hiqp4n";
sha256 = "1vsk2ca9kfrxhyd2xiiyr28hmxkh9vd8j2vwl5f1yfnkv4z52n8s";
type = "gem";
};
version = "1.4.2";
version = "1.4.4";
};
test_file_finder = {
dependencies = ["faraday"];
@@ -7179,10 +7189,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "12r27rq6xlzngc1qv9zhbis0zx2216b8brb0bqg54di91jw94cdc";
sha256 = "0p6z21kqz05966l77rfj7hdmhb6drld7qaxdbx4qawwylay7fnkz";
type = "gem";
};
version = "3.20.0";
version = "3.21.0";
};
virtus = {
dependencies = ["axiom-types" "coercible" "descendants_tracker"];
@@ -7400,10 +7410,10 @@ src:
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h";
sha256 = "14k9lb9a60r9z2zcqg08by9iljrrgjxdkbd91gw17rkqkqwi1sd6";
type = "gem";
};
version = "0.9.26";
version = "0.9.37";
};
zeitwerk = {
groups = ["default" "development" "test"];
+2
View File
@@ -11,6 +11,8 @@ curl=(
--location
--max-redirs 20
--retry 3
--retry-all-errors
--continue-at -
--disable-epsv
--cookie-jar cookies
--user-agent "curl/$curlVersion Nixpkgs/$nixpkgsVersion"
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre }:
stdenvNoCC.mkDerivation rec {
version = "10.21.1";
version = "10.21.2";
pname = "checkstyle";
src = fetchurl {
url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
sha256 = "sha256-u8248qMMHRBxWk7VpFripdLQSbcAL3ApLtCQa6TyMJ4=";
sha256 = "sha256-r8uiXoaQFkQpcuxFE6jAbIEu32j1EciO9JfeAMM4ORc=";
};
nativeBuildInputs = [ makeBinaryWrapper ];
+3 -3
View File
@@ -7,17 +7,17 @@
rustPlatform.buildRustPackage rec {
pname = "cntr";
version = "1.6.0";
version = "1.6.1";
src = fetchFromGitHub {
owner = "Mic92";
repo = "cntr";
rev = version;
sha256 = "sha256-A622DfygwZ8HVgSxmPINkuCsYFKQBAUdsnXQmB/LS8w=";
sha256 = "sha256-2tqPxbi8sKoEPq0/zQFsOrStEmQGlU8s81ohTfKeOmE=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-WP8ecsNHLjIUeoEDXO3WbIKuXZu24A1WBKzAq0x1tek=";
cargoHash = "sha256-gWQ8seCuUSHuZUoNH9pnBTlzF9S0tHVLStnAiymLLbs=";
passthru.tests = nixosTests.cntr;
+3 -3
View File
@@ -35,7 +35,7 @@ let
davinci = (
stdenv.mkDerivation rec {
pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
version = "19.1.2";
version = "19.1.3";
nativeBuildInputs = [
(appimage-run.override { buildFHSEnv = buildFHSEnvChroot; })
@@ -57,9 +57,9 @@ let
outputHashAlgo = "sha256";
outputHash =
if studioVariant then
"sha256-yLlvl/zm/epNs1e4sSDrfHNApcpPQV2fMF3Y09ml7is="
"sha256-aAKE+AY/a2XjVzdU0VXT3ekFrTp3rO6zUd7pRTTDc9E="
else
"sha256-ssX1ffB7ZSJObETQa2r5R4oHddAccC4GB14jaLs8bGg=";
"sha256-CCr4/h0W1fhzUT4o6WyX2hBodzy9iqVLZwzdplzq9SI=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+3 -3
View File
@@ -8,7 +8,7 @@
}:
buildNpmPackage rec {
pname = "db-rest";
version = "6.0.5";
version = "6.0.6";
nodejs = nodejs_18;
@@ -16,10 +16,10 @@ buildNpmPackage rec {
owner = "derhuerst";
repo = pname;
rev = version;
hash = "sha256-jMHqJ1whGPz2ti7gn8SPz6o7Fm4oMF6hYjB4wsjKAEU=";
hash = "sha256-Rwy36hi5p/EDLBbfi1M0DEKD+2/eiJsqo0r2Et/3Oa4=";
};
npmDepsHash = "sha256-rXBIpar5L6fGpDlphr1PqRNxARSccV7Gi+uTNlCqh7I=";
npmDepsHash = "sha256-Drwmnu23PvrT/cw42hl+mu/S/Dn5nzybWGCDCUF7+R8=";
preConfigure = ''
patchShebangs ./build/index.js
+2 -2
View File
@@ -10,13 +10,13 @@
}:
buildNpmPackage rec {
pname = "factoriolab";
version = "3.9.2";
version = "3.10.0";
src = fetchFromGitHub {
owner = "factoriolab";
repo = "factoriolab";
tag = "v${version}";
hash = "sha256-ogmez21QwFdRYVsMxeFmNnEerXbH4rQXmOwKuKbpuGs=";
hash = "sha256-MSiwtFd9u8IFrHDy++jO//P7Yn4Arip1DwBufR8KIRU=";
};
buildInputs = [ vips ];
nativeBuildInputs = [

Some files were not shown because too many files have changed in this diff Show More