Scroll to navigation

SALSA.FR(1) SALSA.FR(1)

NOM

salsa - outil pour gérer les dépôts salsa et les membres des groupes

SYNOPSIS

  # salsa <command> <args>
  salsa whoami
  salsa search_project devscripts
  salsa search_project qa/qa
  salsa search_group js-team
  salsa search_group perl-team/modules
  salsa search_user yadd
  salsa push_repo . --group js-team --kgb --irc devscripts --tagpending
  salsa update_repo node-mongodb --group js-team --disable-kgb --desc \
        --desc-pattern "Package %p"
  salsa update_repo js-team/node-mongodb --kgb --irc debian-js
  salsa update_safe --all --desc --desc-pattern "Debian package %p" \
        --group js-team
  salsa checkout node-mongodb --group js-team
  salsa checkout js-team/node-mongodb
  salsa add_user developer foobar --group-id 2665
  salsa update_user maintainer foobar --group js-team
  salsa del_user foobar --group js-team
  salsa last_ci_status js-team/nodejs

DESCRIPTION

salsa a été conçu pour créer et configurer les dépôts de <https://salsa.debian.org> et gérer les utilisateurs et groupes.

Un jeton Salsa est nécessaire, excepté pour les commandes "search*", et doit être inséré dans la ligne de commande (voir ci-dessus), ou dans le fichier de configuration (~/.devscripts) :

  SALSA_TOKEN=abcdefghi

ou

  SALSA_TOKEN=`cat ~/.token`

ou

  SALSA_TOKEN_FILE=~/.dpt.conf

Si on choisit de lier un autre fichier en utilisant SALSA_TOKEN_FILE, il doit contenir un ligne avec au choix (aucune différence) :

  <anything>SALSA_PRIVATE_TOKEN=xxxx
  <anything>SALSA_TOKEN=xxxx

Ceci permet par exemple d'utiliser le fichier de configuration de dpt(1) (~/.dpt.conf) qui contient :

  DPT_SALSA_PRIVATE_TOKEN=abcdefghi

COMMANDES

Gérer les utilisateurs et les groupes

Demander l'accès à un groupe.

  salsa join js-team
  salsa join --group js-team
  salsa join --group-id 1234
    
Ajouter un utilisateur à un groupe.

  salsa --group js-group add_user guest foouser
  salsa --group-id 1234 add_user guest foouser
  salsa --group-id 1234 add_user maintainer 1245
    

Le premier argument est le niveau d'accès GitLab : guest, reporter, developer, maintainer, owner.

Retire un utilisateur d'une équipe

  salsa --group js-team del_user foouser
  salsa --group-id=1234 del_user foouser
    
Liste les groupes subordonnés si un groupe est indiqué, les groupes de l'utilisateur courant sinon.
Montre les membres d'un groupe.

  salsa --group js-team group
  salsa --group-id 1234 group
    
Cherche un groupe en utilisant la chaîne indiquée. Montre l'id du groupe et d'autres informations.

  salsa search_group perl-team
  salsa search_group perl-team/modules
  salsa search_group 2666
    
Cherche un utilisateur en utilisant la chaîne indiquée. Montre l'id de l'utilisateur et d'autres informations.

  salsa search_user yadd
    
Met à jour le rôle dans un groupe.

  salsa --group-id 1234 update_user guest foouser
  salsa --group js-team update_user maintainer 1245
    

Le premier argument est le niveau d'accès GitLab : guest, reporter, developer, maintainer, owner.

Affiche les informations du propriétaire du jeton

  salsa whoami
    

Gérer les dépôts

Une seule option parmi "--group", "--group-id", "--user" et "--user-id" est nécessaire pour gérer les répertoires. Si les 2 sont indiquées, salsa avertit et utilise seulement "--user"/"--user-id". Si aucune n'est indiquée, salsa utilise l'id du propriétaire du jeton.

Vérifie que le(s) dépot(s) est/sont correctement configuré(s). Fonctionne exactement comme update_repo si ce n'est qu'il ne modifie rien mais liste simplement les projets mal configurés avec les erreurs trouvées.

  salsa --user yadd --tagpending --kgb --irc=devscripts check_repo test
  salsa --group js-team check_repo --all
  salsa --group js-team --rename-head check_repo test1 test2 test3
    
Duplique (clone) le dépôt dans le répertoire courant. Si le répertoire de destination existe, met à jour le dépôt local.

  salsa --user yadd co devscripts
  salsa --group js-team co node-mongodb
  salsa co js-team/node-mongodb
    

Il est possible de dupliquer plus d'un dépôt ou tous les dépôts d'un groupe ou d'un utilisateur :

  salsa --user yadd co devscripts autodep8
  salsa co yadd/devscripts js-team/npm
  salsa --group js-team co --all           # All js-team repos
  salsa co --all                           # All your repos
    
Crée un projet public vide. Si "--group"/"--group-id" est utilisé, le projet est créé dans le répertoire du groupe, sinon dans celui de l'utilisateur.

  salsa --user yadd create_repo test
  salsa --group js-team --kgb --irc-channel=devscripts create_repo test
    
Supprimer un dépôt.
Duplique (fork) un projet dans le répertoire du groupe/utilisateur et insère une cible git "upstream" pointant sur le projet d'origine. Exemple :

  $ salsa fork js-team/node-mongodb --verbose
  ...
  salsa.pl info: node-mongodb ready in node-mongodb/
  $ cd node-mongodb
  $ git remote --verbose show
  origin          git@salsa.debian.org:me/node-mongodb (fetch)
  origin          git@salsa.debian.org:me/node-mongodb (push)
  upstream        git@salsa.debian.org:js-team/node-mongodb (fetch)
  upstream        git@salsa.debian.org:js-team/node-mongodb (push)
    

Pour un groupe :

  salsa fork --group js-team user/node-foo
    
Liste les duplications (forks) du/des projet(s).

  salsa forks qa/qa debian/devscripts
    

Le projet peut être indiqué en utilisant le chemin complet ou --group/--group-id ou encore --user/--user-id ; sinon il est recherché dans l'espace de l'utilisateur.

Poussez les références pertinentes du paquet vers le dépôt Git "origin". À exécuter à partir du répertoire de travail d'empaquetage.

  salsa push
    

Il pousse les références suivantes vers le dépôt amont configuré pour la branche debian-branch ou, à défaut, vers le dépôt "origin" :

Montre les projets propriété de l'utilisateur ou du groupe. Si un second argument est donné, restreint la recherche aux projets correspondants

  salsa --group js-team list_repos
  salsa --user yadd list_repos foo*
    
Affiche le dernier résultat de l'intégration continue. Utiliser --verbose pour afficher l'URL du résultat lorsque le résultat est différent de success. À moins que l'option --no-fail ne soit choisie, salsa last_ci_status s'arrêtera au premier statut "failed" trouvé.

  salsa --group js-team last_ci_status --all --no-fail
  salsa --user yadd last_ci_status foo
  salsa last_ci_status js-team/nodejs
    

Cette commande retourne le nombre de statuts "failed" trouvés. Les entrées "success" sont affichées en utilisant la sortie standard STDOUT et les autres sont affichées (avec les détails) en utilisant STDERR? Ainsi on peut facilement ne voir que les échecs en utilisant :

  salsa --group js-team last_ci_status --all --no-fail >/dev/null
    
Crée une "merge request".

Supposons qu'un dépôt ait été créé avec salsa fork, qu'une modification en un seul commit ait été fait et que l'on souhaite la proposer au projet originel (branche "master"). Il suffit de lancer ceci dans le répertoire source :

  salsa mr
    

Autres exemples :

  salsa mr --mr-dst-project debian/foo --mr-dst-branch debian/master
    

ou simplement

  salsa mr debian/foo debian/master
    

Noter qu'à moins que le projet de destination ait été explicitement indiqué dans la ligne de commande, salsa merge_request le cherche dans l'ordre suivant :

Pour forcer salsa à utiliser le projet source comme destination, on peut utiliser "same" :

  salsa mr --mr-dst-project same
  # or
  salsa mr same

Une nouvelle "merge request" sera créée en utilisant le titre et la description du dernier commit.

See --mr-* options for more.

Liste les "merge requests" ouvertes pour ce(s) projet(s)

  salsa mrs qa/qa debian/devscripts
    

Le projet peut être indiqué en utilisant le chemin complet ou --group/--group-id ou encore --user/--user-id ; sinon il est recherché dans l'espace de l'utilisateur.

Protège/dé-protège une branche.
  #                                    project      branch merge push
  salsa --group js-team protect_branch node-mongodb master m     d
    

"merge" et "push" peuvent être au choix :

  salsa --group js-team protect_branch node-mongodb master no
    
Liste les branches protégées

  salsa --group js-team protected_branches node-mongodb
    
Créer un nouveau projet depuis un répertoire local de source Debian configuré avec git.

push_repo executes the following steps:

Exemples :

  salsa --user yadd push_repo ./test
  salsa --group js-team --kgb --irc-channel=devscripts push_repo .
Renomme la branche indiquée dans --source-branch avec le nom donné dans --dest-branch. On peut utiliser les options --no-fail et --all ici.
Cherche un projet en utilisant la chaîne donnée. Montre le nom, l'id du propriétaire et d'autres informations.

  salsa search devscripts
  salsa search debian/devscripts
  salsa search 18475
    
Configure le(s) dépôt(s) en utilisant les paramètres donnés dans la ligne de commande. Un nom de dépôt doit être donné à moins que --all ne soit utilisé. Préférer update_safe.

  salsa --user yadd --tagpending --kgb --irc=devscripts update_repo test
  salsa --group js-team update_repo --all
  salsa --group js-team --rename-head update_repo test1 test2 test3
  salsa update_repo js-team/node-mongodb --kgb --irc debian-js
    

Par défaut lorsque --all est utilisé, salsa échoue à la première erreur. Pour pouvoir continuer, indiquer --no-fail. Dans ce cas, salsa affichera un avertissement pour chaque projet en échec mais continuera avec le projet suivant. Pour voir alors les erreurs complètes, utiliser --verbose.

Lance check_repo et demande avant de lancer update_repo (sauf si --yes).

  salsa --user yadd --tagpending --kgb --irc=devscripts update_safe test
  salsa --group js-team update_safe --all
  salsa --group js-team --rename-head update_safe test1 test2 test3
  salsa update_safe js-team/node-mongodb --kgb --irc debian-js
    

Autre

Cache local vide.

OPTIONS

Options générales

Changer de répertoire avant de lancer la commande

  salsa -C ~/debian co debian/libapache2-mod-fcgid
    
Fichier où stocker les valeurs cachées. Défaut : ~/.cache/salsa.json. Une valeur vide désactive le cache.

Valeur ".devscripts" : SALSA_CACHE_FILE

Désactive le cache. Identique à --cache-file ''
Ajoute ou remplace les fichiers de configuration par défaut ("/etc/devscripts.conf" and "~/.devscripts"). L'option ne peut être utilisée qu'en première position de la ligne de commande.
  salsa --conf-file test.conf <command>...
  salsa --conf-file test.conf --conf-file test2.conf  <command>...
    
  salsa --conf-file +test.conf <command>...
  salsa --conf-file +test.conf --conf-file +test2.conf  <command>...
    

Si l'un des --conf-file ne contient pas de "+", les fichiers de configuration par défaut sont ignorés.

Ne lire aucun fichier de configuration. L'option ne peut être utilisée qu'en première position de la ligne de commande.
Active l'affichage verbeux
Équipe à utiliser. Utiliser "salsa search_group nom" pour le trouver.

Pour utiliser un sous-groupe, il faut en saisir le chemin complet :

  salsa --group perl-team/modules/packages check_repo lemonldap-ng
    

Valeur ".devscripts" : SALSA_GROUP

Attention en utilisant SALSA_GROUP dans votre fichier ".devscripts". Toutes les commandes salsa seront exécutées dans l'espace du groupe. Par exemple si vous voulez proposer un léger changement dans un projet en utilisant salsa fork + salsa mr, ce "fork" sera fait dans l'espace du groupe sauf si vous indiquez un --user/--user-id. Préférez utiliser un alias dans votre fichier ".bashrc". Exemple :

  alias jsteam_admin="salsa --group js-team"
    

ou

  alias jsteam_admin="salsa --conf-file ~/.js.conf
    

ou pour utiliser à la fois .devscripts et .js.conf :

  alias jsteam_admin="salsa --conf-file +~/.js.conf
    

on peut alors indiquer SALSA_GROUP dans "~/.js.conf"

Pour activer l'autocomplétion bash pour l'alias, ajouter ceci dans le fichier ".bashrc" :

  _completion_loader salsa
  complete -F _salsa_completion jsteam_admin
    
Groupe à utiliser. Utiliser "salsa search_group nom" pour le trouver.

Valeur ".devscripts" : SALSA_GROUP_ID

Attention en utilisant SALSA_GROUP dans votre fichier ".devscripts". Toutes les commandes salsa seront exécutées dans l'espace du groupe. Par exemple si vous voulez proposer un léger changement dans un projet en utilisant salsa fork + salsa mr, ce "fork" sera créé dans l'espace du groupe sauf si vous indiquez un --user/--user-id. Préférez utiliser un alias dans votre fichier ".bashrc". Exemple :

  alias jsteam_admin="salsa --group-id 2666"
    

ou

  alias jsteam_admin="salsa --conf-file ~/.js.conf
    

on peut alors indiquer SALSA_GROUP_ID dans "~/.js.conf"

Demander avant les changements sensibles.

Valeur ".devscripts" : SALSA_INFO (yes/no)

Chemin du dépôt. Par défaut, chemin du groupe ou de l'utilisateur.

Valeur ".devscripts" : SALSA_REPO_PATH

Valeur du jeton (voir ci-avant).
Fichier où trouver le jeton (voir ci-avant).
Id de l'utilisateur à utiliser. Si aucun --group, --group-id, --user or --user-id n'est indiqué, salsa utilise l'id du propriétaire du jeton.
Id de l'utilisateur à utiliser. Utiliser "salsa search_user nom" pour le trouver. Si aucun --group, --group-id, --user ou --user-id n'est indiqué, salsa utilise l'id du propriétaire du jeton.

Valeur ".devscripts" : SALSA_USER_ID

Affiche plus de logs.
Ne jamais demander de consentement.

Valeur ".devscripts" : SALSA_YES (yes/no)

Options de liste/recherche

Au lieu d'examiner dans les projets actifs, liste ou cherche dans les projets archivés. Noter qu'on ne peut avoir des projets archivés et non-archivés dans la même requête. Défaut: no (ie --no-archived).

Valeur ".devscripts" : SALSA_ARCHIVED (yes/no)

Options pour mettre à jour ou créer des dépôts

Lorsqu'indiqué, tous les projets du groupe/utilisateur sont affectés par la commande.
  salsa update_repo --tagpending --all --skip qa --skip devscripts
    

Valeur ".devscripts" : SALSA_SKIP. Pour indiquer plusieurs valeurs, utiliser des espaces. Example

  SALSA_SKIP=qa devscripts
    
  salsa update_repo --tagpending --all --skip-file ~/.skip
    

Valeur ".devscripts" : SALSA_SKIP_FILE

Configure le chemin du fichier de configuration de la CI GitLab. Défaut : vide. Exemple :

  salsa update_safe --ci-config-path recipes/debian.yml@salsa-ci-team/pipeline debian/devscripts
    

Valeur ".devscripts" : SALSA_CI_CONFIG_PATH

Configure la description du dépôt en utilisant l'expression donnée avec --desc-pattern

Valeur ".devscripts" : SALSA_DESC (yes/no)

Expression de description des dépôts. Défaut : "Debian package %p". "%p" est remplacé par le nom du dépôt, "%P" est remplacé par le nom du dépôt donné dans la commande (peut contenir le chemin complet).

Valeur ".devscripts" : SALSA_DESC_PATTERN

Active, ignore ou désactive email-on-push.

Valeur ".devscripts" : SALSA_EMAIL (yes/ignore/no, défaut : ignore)

Destinataire Email-on-push. Peut être multi-valué :

  $ salsa update_safe myrepo \
        --email-recipient foo@foobar.org \
        --email-recipient bar@foobar.org
    

Si la chaîne destinataire contient la macro "%p", elle sera remplacée par le nom du projet.

Valeur ".devscripts" : SALSA_EMAIL_RECIPIENTS (utiliser des espaces pour séparer les destinataires multiples)

Active, ignore ou désactive l'ouverture de bogues.

Valeurs ".devscripts" : SALSA_ENABLE_ISSUES (yes/ignore/no, défaut: ignore)

Active, ignore ou désactive les "merge requests".

Valeurs ".devscripts" : SALSA_ENABLE_MR (yes/ignore/no, défaut: ignore)

Canal IRC pour KGB et Irker. Peut être utilisé plusieurs fois uniquement avec --irker.

Important : le canal ne doit pas inclure le premier "#". Si salsa trouve une chaîne commençant par "#", il considerera que le canal démarre par 2 "#" !

Valeur ".devscripts" : SALSA_IRC_CHANNEL.

Les valeurs multiples doivent être séparées par des espaces.

Comme le fichier de configuration est lu en utilisant sh, être prudent lorsque "#" est utilisé : il faut alors encadré le canal par des guillemets, sinon sh le considerera comme commentaire et ignorera cette valeur.

Active, ignore ou désactive Irker

Valeur ".devscripts" : SALSA_IRKER (yes/ignore/no, défaut : ignore)

Hôte Irker. Défaut : ruprecht.snow-crash.org

Valeur ".devscripts" : SALSA_IRKER_HOST

Hôte Irker. Défaut : vide (valeur par défaut)

Valeur ".devscripts" : SALSA_IRKER_Port

Active, ignore ou désactive le webhook KGB.

Valeur ".devscripts" : SALSA_KGB (yes/ignore/no, défaut : ignore)

Liste des options KGB activées (séparées par des virgules). Défaut : issues_events, merge_requests_events, note_events, pipeline_events, push_events, tag_push_events, wiki_page_events, enable_ssl_verification

  $ salsa update_safe debian/devscripts --kgb --irc-channel devscripts \
    --kgb-options 'merge_requests_events,issues_events,enable_ssl_verification'
    

Liste des options disponibles : confidential_comments_events, confidential_issues_events, confidential_note_events, enable_ssl_verification, issues_events, job_events, merge_requests_events, note_events, pipeline_events, tag_push_events, wiki_page_events

Valeur ".devscripts" : SALSA_KGB_OPTIONS

Ne pas s'arrêter à la première erreur lorsque update_repo est utilisé avec --all.

Valeur ".devscripts" : SALSA_NO_FAIL (yes/no)

Renommer la branche HEAD indiquée par --source-branch en --dest-branch et changer la branche par défaut. Ne fonctionne qu'avec update_repo.

Valeur ".devscripts" : SALSA_RENAME_HEAD (yes/no)

Valeur ".devscripts" : SALSA_SOURCE_BRANCH
Valeur ".devscripts" : SALSA_DEST_BRANCH
Active, ignore ou désactive le webhook "tagpending".

Valeur ".devscripts" : SALSA_TAGPENDING (yes/ignore/no, défaut : ignore)

Options pour les "merge requests"

Titre à utiliser. Défaut : titre du dernier commit.
Description à utiliser. Défaut :
Branche de destination. Défaut : "master".
Projet de destination. Défaut : projet duquel ce projet a été cloné ; sinon, la valeur "upstream" retournée en utilisant git remote --verbose show ; à défaut le projet courant.

Si --mr-dst-project est mis à same, salsa utilisera le projet source comme destination.

Branche source. Défaut : branche courante.
Projet source. Défaut : projet courante trouvé en utilisant git remote --verbose show.
Autorise le projet amont à regrouper les commits (squash), c'est la valeur par défaut.

Valeur ".devscripts" : SALSA_MR_ALLOW_SQUASH (yes/no)

Effacer la branche source si la requête est acceptée. Défaut : no.

Valeur ".devscripts" : SALSA_MR_REMOVE_SOURCE_BRANCH (yes/no)

Options pour gérer d'autres instance GitLab

API GitLab. Défaut : <https://salsa.debian.org/api/v4>.

Valeur ".devscripts" : SALSA_API_URL

Défaut : "git@salsa.debian.org:"

Valeur ".devscripts" : SALSA_GIT_SERVER_URL

Défaut : "ircs://irc.oftc.net:6697/"

Valeur ".devscripts" : SALSA_IRKER_SERVER_URL

Défault : <http://kgb.debian.net:9418/webhook/?channel=>

Valeur ".devscripts" : SALSA_KGB_SERVER_URL

Défaut : <https://webhook.salsa.debian.org/tagpending/>

Valeur ".devscripts" : SALSA_TAGPENDING_SERVER_URL

Exemple de fichier de configuration

Exemple pour utiliser salsa avec <https://gitlab.ow2.org> (groupe "lemonldap-ng"):

  SALSA_TOKEN=`cat ~/.ow2-gitlab-token`
  SALSA_API_URL=https://gitlab.ow2.org/api/v4
  SALSA_GIT_SERVER_URL=git@gitlab.ow2.org:
  SALSA_GROUP_ID=34

Ensuite pour l'utiliser, ajouter quelque chose comme suit dans votre fichier ".bashrc" :

  alias llng_admin='salsa --conffile ~/.salsa-ow2.conf'

VOIR AUSSI

dpt-salsa

AUTEUR

Xavier Guimard <yadd@debian.org>

COPYRIGHT ET LICENCE

Droits d'auteur (C) 2018, Xavier Guimard <yadd@debian.org>

Il contient du code copié depuis dpt-salsa (pkg-perl-tools), droits d'auteur (C) 2018, gregor herrmann <gregoa@debian.org>.

Ce programme est un logiciel libre ; il est permis de le distribuer et/ou de le modifier selon les termes de la GNU General Public License, telle que publiée par la Free Software Foundation, version 2 ou ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE; sans même la garantie implicite de QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la licence publique générale GNU pour plus de détails.

Vous devriez avoir reçu une copie de la licence publique générale GNU avec ce programme. Sinon, voir <http://www.gnu.org/licenses/>.

TRADUCTION

Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>, 2006

Thomas Huriaux <thomas.huriaux@gmail.com>, 2006

David Prévot <david@tilapin.org>, 2010-2013

Xavier Guimard <yadd@debian.org>, 2018-2021

2022-06-18 Utilitaires Debian