dpt-salsa(1)
πΈ NAME πΈ
dpt-salsa β bestie, this is your tool for managing repositories and members of the perl-team on salsa.debian.org π
β¨ SYNOPSIS β¨
dpt salsa [--help|--man|--json|--verbose|--all|--attic] subcommand [parameters]
π¦ DESCRIPTION π¦
So dpt-salsa is basically a wrapper around GitLab::API::v4, kinda like gitlab-api-v4(1), except it already has a whole bunch of variables about salsa.debian.org and the modules subgroup of the perl-team group pre-set for you, and it encapsulates the typical method calls so you don't have to. Iconic behavior, honestly. π
It gives you subcommands to manage repositories and members of the modules subgroup, and the whole point is hopefully less typing than calling the API manually every single time. We love an efficiency queen.
π«Ά Real talk though: if this is your first time using dpt-salsa, please go read the "CONFIGURATION" section below. Do not skip it. I'm serious. Not me watching you skip it π
π SUBCOMMANDS π
ποΈ for managing repositories
pushrepo
Creates a new repository in the modules subgroup (with createrepo() and configurerepo()) and pushes the local repository. The whole glow-up in one step, slay.
createrepo repositoryname
Creates a new empty repository in the modules subgroup and calls configurerepo().
Parameters:
repositorynameβ Name of the repository to be added; usually the package name. Required.
configurerepo repositoryid|repositoryname [--verbose]
Sets up the default webhooks and services for one repository.
Parameters:
repositoryid|repositorynameβ The repository to be configured. Either its id (\d+) or name (\w+). Required.
Silent on success unless --verbose is given. (Shy queen. Respect.)
configurerepo --all [--attic] [--verbose] [--parallel N] [-j N]
Sets up the default webhooks and services for all active (or, with --attic, archived) repositories.
Silent on success unless --verbose is given.
With --parallel, Parallel::ForkManager is employed for parallelism. πββοΈπ¨
changerepo repositoryid|repositoryname "name"|"description" "parameter"
Changes the name (and the path) or the description of a repository. A lil rebrand, we love to see it.
Parameters:
repositoryid|repositorynameβ The repository to be configured. Either its id (\d+) or name (\w+). Required."name"|"description"β What should be changed? The"name"or the"description"of the repository. Required.parameterβ The new name or description. Required.
deleterepo repositoryid|repositoryname
Delete a repository (a.k.a project). π Gone. Reduced to atoms.
Parameters:
repositoryid|repositorynameβ The repository to be deleted. Either its id (\d+) or name (\w+). Required.
listrepos [--json] [--attic]
Show all active (or, with --attic, archived) repositories in the modules subgroup.
If used with --all, returns repository ids and does not output anything; for internal use. (iykyk β that's the machine-readable mode, bestie.)
kgb repositoryid|repositoryname|--all [--attic] --on|--off
Install (--on) or remove (--off) the KGB IRC notification webhook for the given, all active (--all), or all archived (--attic) repositories.
--on removes any legacy hooks (plain http, explicit port number) and replaces them with the canonical one. If the repository already uses the right hook, --on does nothing.
Parameters:
repositoryid|repositorynameβ The repository to be configured. Either its id (\d+) or name (\w+). Required unless--allis used.
toattic|fromattic repositoryid|repositoryname
Moves a repository to/from the attic sub-group of the modules sub-group. Super useful when a package is removed from the archive or added back. Spring cleaning energy π§Ήβ¨
Probably needs appropriate permissions. (Ask nicely, or better: have the right perms.)
π― for managing users
adduser username|userid [access_level]
Adds a user to the modules subgroup of the perl-team group. Welcome to the group chat π«Ά
Parameters:
username|useridβ The user to be added. Either their id (\d+) or their username (\w+). Required.access_levelβ One of GitLab's access levels:no_access,guest,reporter,developer,maintainer,owner. Optional, defaults tomaintainer.
removeuser username|userid
Removes a user from the modules subgroup of the perl-team group.
Parameters:
username|useridβ The user to be removed. Either their id (\d+) or their username (\w+). Required.
changeuser access_level username|userid|--all
Change the access level of one or all user(s) in the modules subgroup of the perl-team group.
Parameters:
access_levelβ One of GitLab's access levels:guest,reporter,developer,maintainer,owner. Required.username|useridβ The user whose access level is to be changed. Either their id (\d+) or their username (\w+). Required, unless--allis used.
listmembers [--json]
Show all members of the modules subgroup of the perl-team group.
If used with --all, returns user ids and does not output anything; for internal use.
π others
mrconfig [--parallel N] [-j N]
Helper for creating:
- a
.mrconfig.packagesfile in the local clone ofmeta.gitfor all active packages of the modules subgroup of the perl-team group. Also writes to stdout which can be included from.mrconfig. .lastactivity/PKGNAMEfiles in the local clone ofmeta.gitfor all active packages of the modules subgroup of the perl-team group which are then used bycompare-lastactivityin.mrconfig.
With --parallel, Parallel::ForkManager is employed for parallelism.
Additionally, the option will also output a list of repositories that potentially have not been configured with dpt-salsa. (A little vibe check on your repos, honestly. π)
current_user [--json]
Outputs information about the user whose GitLab token is used. That's you. Main character energy, confirmed. π
help
Same as option --help.
version [--json]
Returns the version of the GitLab instance running on salsa.debian.org.
This subcommand is pretty useless, the only excuse for its existence is the ability to test if everything is working fine. (Look, it knows what it is. It said it itself. We respect the self-awareness. π)
π OPTIONS π
--helpβ Show short help.--manβ Show complete manpage. (You are here, bestie β¨)--allβ Act on all users or repositories, not a single named one. Only for specific subcommands, as noted in their description.--atticβ Act on archived repositories instead of active ones. Only for specific subcommands, as noted in their description.--jsonβ Format output as JSON instead of human-targeted text. Only for specific subcommands, as noted in their description.--verboseβ Print output for otherwise silent and potentially long-running commands. Only for specific subcommands, as noted in their description.
π§ CONFIGURATION π§
dpt-salsa uses the following environment variables, set either directly or via ~/.dpt.conf / ~/.config/dpt.conf:
DPT_SALSA_PRIVATE_TOKENβ required, no default, obviously.- These tokens are created at
https://salsa.debian.org/-/user_settings/personal_access_tokens. Note that the token needsapiandread_userscope permissions. π
- These tokens are created at
DPT_SALSA_API_URLβ optional, default:https://salsa.debian.org/api/v4DPT_SALSA_PERL_TEAM_PATHβ optional, default:perl-teamDPT_SALSA_PERL_TEAM_IDβ optional, default:2663DPT_SALSA_PERL_TEAM_INTERPRETER_PATHβ optional, default:perl-team/interpreterDPT_SALSA_PERL_TEAM_INTERPRETER_IDβ optional, default:2664DPT_SALSA_PERL_TEAM_MODULES_PATHβ optional, default:perl-team/modulesDPT_SALSA_PERL_TEAM_MODULES_IDβ optional, default:2665DPT_SALSA_PERL_TEAM_MODULES_PACKAGES_PATHβ optional, default:perl-team/modules/packagesDPT_SALSA_PERL_TEAM_MODULES_PACKAGES_IDβ optional, default:2666DPT_SALSA_PERL_TEAM_MODULES_ATTIC_PATHβ optional, default:perl-team/modules/atticDPT_SALSA_PERL_TEAM_MODULES_ATTIC_IDβ optional, default:2667DPT_SALSA_PERL_TEAM_MODULES_META_PATHβ optional, default:perl-team/modules/metaDPT_SALSA_PERL_TEAM_MODULES_META_IDβ optional, default:13881DPT_SALSA_PERL_TEAM_PAGES_PATHβ optional, default:perl-team/perl-team.pages.debian.netDPT_SALSA_PERL_TEAM_PAGES_IDβ optional, default:11266DPT_SALSA_PERL_TEAM_SCRIPTS_PATHβ optional, default:perl-team/scriptsDPT_SALSA_PERL_TEAM_SCRIPTS_IDβ optional, default:13429DPT_PACKAGESβ only used by themrconfigsubcommand, no default; most probably already set for use with otherdptcommands.
Cf. dpt-config(5).
By default, the output of some subcommands uses colors, unless STDOUT is not a tty or the environment variables CLICOLOR or NO_COLOR are set to false or true, respectively. π
π SEE ALSO π
https://salsa.debian.org/perl-teamGitLab::API::v4https://docs.gitlab.com/ce/api/
π COPYRIGHT AND LICENSE π
Copyright 2018-2025, gregor herrmann <gregoa@debian.org>
Released under the same terms as Perl itself, i.e. Artistic or GPL-1+.
okay that's the whole page bestie, go forth and configure your repos π this was pkg-perl-tools version 0.88, dated 2026-04-01, and you're reading dpt-salsa(1). bye ily π«Άβ¨
π¦ where this page comes from
- ubuntu stonking: pkg-perl-tools 0.88 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms