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 --all is 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 to maintainer.

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 --all is 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.packages file in the local clone of meta.git for all active packages of the modules subgroup of the perl-team group. Also writes to stdout which can be included from .mrconfig.
  • .lastactivity/PKGNAME files in the local clone of meta.git for all active packages of the modules subgroup of the perl-team group which are then used by compare-lastactivity in .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.
  • DPT_SALSA_API_URL β€” optional, default: https://salsa.debian.org/api/v4
  • DPT_SALSA_PERL_TEAM_PATH β€” optional, default: perl-team
  • DPT_SALSA_PERL_TEAM_ID β€” optional, default: 2663
  • DPT_SALSA_PERL_TEAM_INTERPRETER_PATH β€” optional, default: perl-team/interpreter
  • DPT_SALSA_PERL_TEAM_INTERPRETER_ID β€” optional, default: 2664
  • DPT_SALSA_PERL_TEAM_MODULES_PATH β€” optional, default: perl-team/modules
  • DPT_SALSA_PERL_TEAM_MODULES_ID β€” optional, default: 2665
  • DPT_SALSA_PERL_TEAM_MODULES_PACKAGES_PATH β€” optional, default: perl-team/modules/packages
  • DPT_SALSA_PERL_TEAM_MODULES_PACKAGES_ID β€” optional, default: 2666
  • DPT_SALSA_PERL_TEAM_MODULES_ATTIC_PATH β€” optional, default: perl-team/modules/attic
  • DPT_SALSA_PERL_TEAM_MODULES_ATTIC_ID β€” optional, default: 2667
  • DPT_SALSA_PERL_TEAM_MODULES_META_PATH β€” optional, default: perl-team/modules/meta
  • DPT_SALSA_PERL_TEAM_MODULES_META_ID β€” optional, default: 13881
  • DPT_SALSA_PERL_TEAM_PAGES_PATH β€” optional, default: perl-team/perl-team.pages.debian.net
  • DPT_SALSA_PERL_TEAM_PAGES_ID β€” optional, default: 11266
  • DPT_SALSA_PERL_TEAM_SCRIPTS_PATH β€” optional, default: perl-team/scripts
  • DPT_SALSA_PERL_TEAM_SCRIPTS_ID β€” optional, default: 13429
  • DPT_PACKAGES β€” only used by the mrconfig subcommand, no default; most probably already set for use with other dpt commands.

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 πŸ‘€


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