logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

dpt-salsa - manage repositories and members of the perl-team on salsa.debian.org

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/-/profile/personal_access_tokens>.  Note that
           the token needs api and read_user scope permissions.

       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.

Description

dpt-salsa is basically a wrapper around GitLab::API::v4, similar to gitlab-api-v4(1), with various
       variables regarding salsa.debian.org and the modules subgroup of the perl-team group already preset and
       typical method calls encapsulated.

       It offers subcommands to manage repositories and members of the modules subgroup with hopefully less
       typing then calling the API manually each time.

       Make sure to check the "CONFIGURATION" section below if you use dpt-salsa for the first time.

Name

       dpt-salsa - manage repositories and members of the perl-team on salsa.debian.org

Options

       --help
           Show short help.

       --man
           Show complete manpage.

       --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.

See Also

       <https://salsa.debian.org/perl-team>

       GitLab::API::v4

       <https://docs.gitlab.com/ce/api/>

Subcommands

formanagingrepositoriespushrepo

       Creates a new repository in the modules subgroup (with createrepo() and configurerepo()) and pushes the
       local repository.

       createreporepositoryname

       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.

       configurereporepositoryid|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.

       configurerepo--all[--attic][--verbose][--parallelN][-jN]

       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.

       changereporepositoryid|repositoryname"name"|"description""parameter"

       Changes the name (and the path) or the description of a repository.

       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.

       deletereporepositoryid|repositoryname

       Delete a repository (a.k.a project).

       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.

       kgbrepositoryid|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|fromatticrepositoryid|repositoryname

       Moves  a  repository  to/from  the  attic  sub-group  of the modules sub-group.  Useful when a package is
       removed from the archive or added back.

       Probably needs appropriate permissions.

   formanagingusersadduserusername|userid[access_level]

       Adds a user to the modules subgroup of the perl-team group.

       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".

       removeuserusername|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.

       changeuseraccess_levelusername|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.

   othersmrconfig[--parallelN][-jN]

       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.

       current_user[--json]

       Outputs information about the user whose GitLab token is used.

       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.

Synopsis

dptsalsa [--help|--man|--json|--verbose|--all|--attic] subcommand [parameters]

See Also