Size: 11164
Comment:
|
Size: 11160
Comment: typos
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
Accounts that had never been used and never had a passwort set are deactivated. | Accounts that had never been used and never had a password set are deactivated. |
Line 19: | Line 19: |
After being reactivativated a new password can be set via the [[https://salsa.debian.org/users/password/new|password reset]]. | After being reactivated a new password can be set via the [[https://salsa.debian.org/users/password/new|password reset]]. |
Contents
Salsa Documentation
Salsa is a collaborative development platform within Debian.
Support
Translations: English - Italiano - Português (Brasil)
In case you encounter any problems with Salsa, to get support you may want to join us:
first, check the Frequently Asked Questions
then you can ask for help at #salsa on OFTC (webchat)
or create an issue in our support tracker
or send a mail to salsa-admin@debian.org.
... they may help you.
Users
Register an account at https://salsa.debian.org/users/sign_in#register-pane
Unused accounts for DD before May 2020
Before May 2020 all Debian Developers had accounts created for them using their Debian user name. Accounts that had never been used and never had a password set are deactivated. Those accounts can only be used after being activated properly. Please use any of the support channels. After being reactivated a new password can be set via the password reset.
Groups
Users and Group share the same namespace. To prevent clashes with usernames we enforce groups to a '-team' suffix, with the exception being the 'Debian' group, of which all Debian Developers are members.
To create a group, log in and go to the team registration page. There is also a link to it from the registration page: if you're not logged in yet, you will be asked to do so and be redirected afterwards.
Collaborative Maintenance: "Debian" group
The debian group is for CollaborativeMaintenance (the old collab-maint on Alioth). The group is accessible to all Debian developers by default, who are automatically added with Maintainer access levels. Direct commits to repositories in the Debian group by any Debian developer are implicitly welcome. No pre-commit coordination (e.g. merge-request or mail) is expected.
External users (non-Debian Developers) need to request write access to repositories inside debian group from a Debian developer they know, or their sponsor. Access should be granted to single projects and not the whole Debian group.
Projects under debian group cannot be transferred or deleted by anyone except Salsa administrators. In case you need to delete a project or have it transferred out into other namespaces, please contact Salsa administrators via support channel. See #Support section for contact information.
Canonical URLS
The canonical URLs for use in debian/control are:
Vcs-Browser: https://salsa.debian.org/<user-or-team>/<package> Vcs-Git: https://salsa.debian.org/<user-or-team>/<package>.git
where <user-or-team> is
alice for DD Alice Developer <alice@debian.org>
bob-guest for non-DD Bob Coder <bobc@example.com>
debian for the Debian/ namespace (the equivalent to collab-maint on alioth)
foobar-team for the Foobar Packaging Team
You can instruct git to rewrite URLs into pushable ssh URLs:
git config --global url."git@salsa.debian.org:".pushInsteadOf "https://salsa.debian.org/"
This will work for all salsa repositories checked out via https:// URLs in the present, past or future.
You can also use a shortcut for all Salsa repositories:
git config --global url."git@salsa.debian.org:".insteadOf salsa:
This way you can use a shorter commandline like this:
git clone salsa:debian/htop
Projects and Repositories
In GitLab, a project is one Git repository, and each Git repository needs a project. You can create several projects in the same namespace (user or group).
Email notifications
Every project owner can enable "email on push". To do so, go the project settings → integrations → project services → emails on push and configure the list of recipients you want to send emails to.
In particular, to forward emails to tracker.debian.org, you should add dispatch@tracker.debian.org to the recipients (or, if for some not good reason the project name is not the name of the source package, dispatch+${package}_vcs@tracker.debian.org (where ${package} is the source package name)).
Take into account that the current implementation sends a single mail per push with all commits lumped together, which makes it rather useless for any post-review workflow. This is tracked upstream at https://gitlab.com/gitlab-org/gitlab-ce/issues/19901.
Information on manipulating bugs by email
GitLab has quite a lot of text commands aka "quick actions" which can be used when interacting with GitLab via email. Most things can be done via email by replying to the email notifications. There are special email addresses for creating new merge requests and issues via email.
IRC notifications
Irker
Alexander Wirt is sponsoring an Irker instance. It can be enabled with the irker integration available under Settings/Integrations/Irker. Please use the following settings:
- Server host: ruprecht.snow-crash.org
- Server port: 6659
Default IRC URI: ircs://irc.oftc.net:6697/
Under recipients add a newline separated list of recipients/channels. If your channel is protected by a key, use the syntax channel-name?key=whatever omitting the leading # sign (failing to omit the # sign will result in Irker joining a channel literally named #channel-name?key=whatever and doing so making your channel key public as it is visible in the bot's /whois.
Currently only Push events are supported.
KGB
KGB supports gitlab webhooks. To use the kgb instances provided by dam, tincho, and gregoa from salsa, set a webhook in your project:
http://kgb.debian.net:9418/webhook/?channel=<irc-channel-name-without-#>
For details, additional parameters, and helper scripts see the KGB documentation at https://salsa.debian.org/kgb-team/kgb/wikis/usage
Dealing with Debian BTS from commit messages
We run a webhook receiver that can modify the Debian BTS based on commit messages. If you want to use it, go to your project, "Settings → Webhooks" and add a URL (see below), then click save. No secret token is needed, and currently it only deals with push events.
Possible URLs:
https://webhook.salsa.debian.org/close/SOURCENAME https://webhook.salsa.debian.org/tagpending/SOURCENAME
Replace SOURCENAME with the name of your source package and chose either close or tag pending, depending on the action you want to get.
You can ignore a branch or pattern, say wip/*, by providing the ignored-namespaces parameter. See the README in code for more details.
Code: https://salsa.debian.org/salsa/salsa-webhook.
Deployment keys
For automating task FIXME
Runners
Salsa provides shared runners for all projects to use. All jobs without more specific tags run within a privileged Docker container on one-time-use VM. Outbound connections from the shared runner VMs are limited to http & https.
You may also add group runners for your group or specific runners and configure them for your project.
Web page hosting
Gitlab offer the "Gitlab Pages" feature, and it is enabled on Salsa as https://<namespace>.pages.debian.net/<project>
This feature makes use of Gitlab-CI to generate static pages in a public directory, on every push.
See the official documentation for details. Note that hosting pages on arbitrary domains — whilst supported by upstream — is not supported on Salsa due to lack of bandwidth within DSA to support that feature (see RT #7045).
ChrisLamb has created a number of https://lamby.pages.debian.net/salsa-ribbons/ that you can add to your site.
https://<namespace>.pages.debian.net should work, thanks to Let's Encrypt new wildcard certificate support.
Quick start
On your project Home, use Set up CI/CD button. (If your project is empty, select New file instead.)
Choose a Gitlab CI Yaml template (Pages templates are at the end)
- Edit the template to suit your needs and save it
- Push something to the repository. You will see there is a CI Job pending
Wait a few minutes for the job to run. When it's Passed you can see your pages at https://<namespace>.pages.debian.net/<project>/)
Even though we plan to support simple page generators like Jekyll or Hugo in the future, in most cases, you should content yourself with the HTML template, and generate the pages locally to push them afterward, in order to save the resources on the runner. Some templates might require commands not available on the server anyway.
We mean that. Really. Be nice to the server.
important: (at least for static pages deployment) your artifacts must be stored in a directory named public/; if they are currently in a different location, use the script section in .gitlab-ci.yml to create that dir and copy the content there.
Getting Help
See the Salsa maintenance description.
Hints for previous users of Alioth
API Usage Best practises
- if you want to know if a project exists, access the project by name, authenticated, if you get a 404 then it doesn't exists.
do not search for getting an id. If you need the id, access the project by name and use path-encoding https://docs.gitlab.com/ee/api/#namespaced-path-encoding
do not request all projects in a group unless you really have. If you really have to get the list, for i.e. looping, use simple=true (https://docs.gitlab.com/ee/api/groups.html#list-a-group-s-projects).
- Implement proper pagination, please do not just requests a few hundreds elements per page
set an User-Agent header with information about the project; don't make requests with generic user agent headers
- if you use a lib, ensure the lib does implement the api properly
- do not run extensive jobs too often
- please consider to use vcswatch or other data gathering projects
- do not regularly poll things
- if in doubt, talk to us before you code and talk to us before you put your code into production
SSH Host Keys
When connecting to Salsa to fetch or push a Git repo for the first time, it is essential to verify host's ssh keys. The keys for Salsa have been published as SSHFP DNS records as well as in the Debian known_hosts file. This is a one time operation. From now on ssh will trust the keys in the local known_hosts file.