# 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 salsa pipelines js-team/nodejs
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
salsa join js-team salsa join --group js-team salsa join --group-id 1234
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.
salsa --group js-team del_user foouser salsa --group-id=1234 del_user foouser
salsa --group js-team group salsa --group-id 1234 group
salsa search_group perl-team salsa search_group perl-team/modules salsa search_group 2666
salsa search_user yadd
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.
salsa whoami
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
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 active repos salsa co --all-archived # All your repos including archived
salsa --user yadd create_repo test salsa --group js-team --kgb --irc-channel=devscripts create_repo test
$ 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
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.
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'' :
salsa --group js-team list_repos salsa --user yadd list_repos foo*
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
Les options <--no-fail> et --all sont utilisables ici.
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.
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.
# 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
salsa --group js-team protected_branches node-mongodb
push_repo executes the following steps:
Exemples :
salsa --user yadd push_repo ./test salsa --group js-team --kgb --irc-channel=devscripts push_repo .
salsa search devscripts salsa search debian/devscripts salsa search 18475
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.
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
salsa -C ~/debian co debian/libapache2-mod-fcgid
Valeur ".devscripts" : SALSA_CACHE_FILE
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.
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
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"
Valeur ".devscripts" : SALSA_INFO (yes/no)
Valeur ".devscripts" : SALSA_REPO_PATH
Valeur ".devscripts" : SALSA_USER_ID
Valeur ".devscripts" : SALSA_YES (yes/no)
Valeur ".devscripts" : SALSA_ARCHIVED (yes/no)
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
Défaut: 3600 (60 minutes)
salsa update_safe myrepo --build-timeout 3600
Valeur ".devscripts" : SALSA_BUILD_TIMEOUT
Valeur ".devscripts" : SALSA_AVATAR_PATH
salsa update_safe --ci-config-path recipes/debian.yml@salsa-ci-team/pipeline debian/devscripts
Valeur ".devscripts" : SALSA_CI_CONFIG_PATH
Valeur ".devscripts" : SALSA_DESC (yes/no)
Valeur ".devscripts" : SALSA_DESC_PATTERN
Valeur ".devscripts" : SALSA_EMAIL (yes/ignore/no, défaut : ignore)
$ 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)
Valeurs ".devscripts" : SALSA_ENABLE_ISSUES (yes/ignore/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_REPO (yes/ignore/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_MR (yes/ignore/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_FORKS (yes/private/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_LFS (yes/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_PACKAGING (yes/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_JOBS (yes/private/no, défaut: yes)
Valeurs ".devscripts" : SALSA_ENABLE_CONTAINER (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_ANALYTICS (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_REQUIREMENTS (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_WIKI (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_WIKI (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_PAGES (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_RELEASES (yes/private/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_AUTO_DEVOPS (yes/no, défaut : yes)
Valeurs ".devscripts" : SALSA_ENABLE_REQUEST_ACC (yes/no, défaut : yes)
Valeur ".devscripts" : SALSA_REMOVE_SOURCE_BRANCH (yes/no, défaut : yes)
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.
Valeur ".devscripts" : SALSA_IRKER (yes/ignore/no, défaut : ignore)
Valeur ".devscripts" : SALSA_IRKER_HOST
Valeur ".devscripts" : SALSA_IRKER_Port
Valeur ".devscripts" : SALSA_KGB (yes/ignore/no, défaut : ignore)
$ 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
Valeur ".devscripts" : SALSA_NO_FAIL (yes/no)
Valeur ".devscripts" : SALSA_REQUEST_ACCESS (yes/no)
Valeur ".devscripts" : SALSA_RENAME_HEAD (yes/no)
Valeur ".devscripts" : SALSA_TAGPENDING (yes/ignore/no, défaut : ignore)
Si --mr-dst-project est mis à same, salsa utilisera le projet source comme destination.
Valeur ".devscripts" : SALSA_MR_ALLOW_SQUASH (yes/no)
Valeur ".devscripts" : SALSA_MR_REMOVE_SOURCE_BRANCH (yes/no)
Valeur ".devscripts" : SALSA_API_URL
Valeur ".devscripts" : SALSA_GIT_SERVER_URL
Valeur ".devscripts" : SALSA_IRKER_SERVER_URL
Valeur ".devscripts" : SALSA_KGB_SERVER_URL
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'
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/>.
Thomas Huriaux <thomas.huriaux@gmail.com>, 2006
David Prévot <david@tilapin.org>, 2010-2013
Xavier Guimard <yadd@debian.org>, 2018-2021