diff --git a/docs/sysadm/deployment/howto-debian-packaging.rst b/docs/sysadm/deployment/howto-debian-packaging.rst
index c0b3ee194b7b3118a01b4374f7eb73c32ccda3bb..234f36a27aab69c2fd5ec111c2a5b8d42a5bc57e 100644
--- a/docs/sysadm/deployment/howto-debian-packaging.rst
+++ b/docs/sysadm/deployment/howto-debian-packaging.rst
@@ -270,6 +270,11 @@ tag for Jenkins to autobuild.
 Setting up the repository on Phabricator
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+.. admonition:: Deprecation notice
+   :class: warning
+
+   This is no longer necessary as we migrated to gitlab
+
 The repository on Phabricator needs the following settings:
 
 - Callsign: non-empty; prefix should be P according to `Phabricator callsign convention
@@ -320,7 +325,7 @@ The Jenkins `jobs are accessible through the ui
 
 
 They are declared in the `swh-jenkins-jobs repository
-<https://forge.softwareheritage.org/source/swh-jenkins-jobs>`_.
+<https://gitlab.softwareheritage.org/swh/infra/ci-cd/swh-jenkins-jobs>`_.
 
 Jobs for dependency packages are configured in ``jobs/dependency-packages.yaml``. You
 can add a section as follows:
@@ -350,8 +355,8 @@ For example:
 
 Other samples can be found in the dedicated repository.
 
-- usual swh package: `swh.core <https://forge.softwareheritage.org/source/swh-jenkins-jobs/browse/master/jobs/swh-packages.yaml$15-22>`_
-- peculiar swh package (with name divergences): `swh.icinga_plugins <https://forge.softwareheritage.org/source/swh-jenkins-jobs/browse/master/jobs/swh-packages.yaml$51-58>`_
+- usual swh package: `swh.core <https://gitlab.softwareheritage.org/swh/infra/ci-cd/swh-jenkins-jobs/-/blob/master/jobs/swh-packages.yaml#L15-22>`_
+- peculiar swh package (with name divergences): `swh.icinga_plugins <https://gitlab.softwareheritage.org/swh/infra/ci-cd/swh-jenkins-jobs/-/blob/master/jobs/swh-packages.yaml#L88-95>`_
 
 Use the regular review process to land your changes. Once your changes are pushed, a
 dedicated Jenkins job will generate the jobs from the configuration.
diff --git a/docs/sysadm/deployment/jenkins.rst b/docs/sysadm/deployment/jenkins.rst
index d5bbbebb8f238c3e531de731d1efa56be86c6875..84109a1f1972c355aeda2924e8be6beffc6d0e1e 100644
--- a/docs/sysadm/deployment/jenkins.rst
+++ b/docs/sysadm/deployment/jenkins.rst
@@ -36,7 +36,7 @@ Jobs definition
 Most of the jobs are created using `Jenkins Job Builder
 <https://docs.openstack.org/infra/jenkins-job-builder/>`_ (aka JJB). The jobs are
 declared in the `dedicated source repository
-<https://forge.softwareheritage.org/source/swh-jenkins-jobs/>`_.
+<https://gitlab.softwareheritage.org/swh/infra/ci-cd/swh-jenkins-jobs>`_.
 
 Each time a new revision is pushed on this repo, the `JJB job
 <https://jenkins.softwareheritage.org/job/jenkins-tools/job/swh-jenkins-job-builder/>`_
@@ -53,7 +53,7 @@ for `jenkins-tools <https://jenkins.softwareheritage.org/job/jenkins-tools/>`_ j
 in a docker jenkins slave.
 
 Docker images used by Jenkins are created and updated using the `Dockerfiles
-<https://forge.softwareheritage.org/source/swh-jenkins-dockerfiles/>`_.
+<https://gitlab.softwareheritage.org/swh/infra/ci-cd/swh-jenkins-dockerfiles>`_.
 
 For now, there are 2 different images:
 
@@ -75,10 +75,10 @@ in which all dedicated jobs to this package are defined.
 For building, there are 2 jenkins jobs dedicated for each swh package:
 
 - `Phab. Diff <https://jenkins.softwareheritage.org/job/DCORE/job/tests-on-diff/>`_
-  (e.g. `swh-core <https://forge.softwareheritage.org/source/swh-core/>`_): these jobs
-  are executed each time a Phabricator Diff is created or updated.
+  (e.g. `swh-core <https://gitlab.softwareheritage.org/swh/devel/swh-core>`_): these
+  jobs are executed each time a Phabricator Diff is created or updated.
 - `master branch <https://jenkins.softwareheritage.org/job/DCORE/job/tests/>`_ (e.g.
-  `swh-core <https://forge.softwareheritage.org/source/swh-core/>`_): these jobs are
+  `swh-core <https://gitlab.softwareheritage.org/swh/devel/swh-core>`_): these jobs are
   executed when git revisions are pushed to the master branch.
 
 Note: the *master branch* and *diff* builds trigger the unit tests and the documentation
diff --git a/docs/sysadm/deployment/storage-database-migration.rst b/docs/sysadm/deployment/storage-database-migration.rst
index 38203bf5a410a1a03d73a920cf08a57f13b4310f..6b517a887c80d25f9b6e0fd72daecbe0ae4b6388 100644
--- a/docs/sysadm/deployment/storage-database-migration.rst
+++ b/docs/sysadm/deployment/storage-database-migration.rst
@@ -26,7 +26,7 @@ Say, for example that the result is 159 here.
 
 Check the migration script folder in swh-storage:/sql/upgrades/ (and find the next one,
 for example `160.sql
-<https://forge.softwareheritage.org/source/swh-storage/browse/master/sql/upgrades/160.sql>`_).
+<https://gitlab.softwareheritage.org/swh/devel/swh-storage/-/blob/master/swh/storage/sql/upgrades/160.sql>`_).
 It's previous version number + 1 from the given db version retrieved (so 160 with the
 current example).
 
@@ -63,8 +63,8 @@ Hopefully, in production, the script runs as is without adaptation…
 
 Otherwise, if the data volume for a given table is large, you may want to adapt. See
 `160.sql
-<https://forge.softwareheritage.org/source/swh-storage/browse/master/sql/upgrades/160.sql>`_
-and `its adaptation <https://forge.softwareheritage.org/P747>`_
+<https://gitlab.softwareheritage.org/swh/devel/swh-storage/-/blob/master/swh/storage/sql/upgrades/160.sql>`_
+and `its adaptation <https://gitlab.softwareheritage.org/swh/meta/-/snippets/744>`_
 
 For such a case, consider working on ranges on the table id instead. So it uses index
 and keep the transaction short. Long-standing migration query (translates to long
diff --git a/docs/sysadm/getting-started/setup-repositories.rst b/docs/sysadm/getting-started/setup-repositories.rst
index 8d4479186723bf0cac896fa0d398835c22e69020..9a3a787af200e06e69fc498df411337d8cad8071 100644
--- a/docs/sysadm/getting-started/setup-repositories.rst
+++ b/docs/sysadm/getting-started/setup-repositories.rst
@@ -31,9 +31,9 @@ Clone each of those repositories. They each contain a .mrconfig file and a READM
 
 ::
 
-   $ git clone git@gitlab.softwareheritage.org:infra/sysadm-environment.git
-   $ git clone git@gitlab.softwareheritage.org:infra/puppet/puppet-environment.git
-   $ git clone ssh://git@forge.softwareheritage.org/source/ci-environment.git
+   $ git clone https://gitlab.softwareheritage.org/swh/infra/sysadm-environment.git
+   $ git clone https://gitlab.softwareheritage.org/swh/infra/puppet/puppet-environment.git
+   $ git clone https://gitlab.softwareheritage.org/swh/infra/ci-cd/ci-environment.git
 
 Then, use the `mr` (myrepos) command that uses the .mrconfig file to clone the
 repositories managed by myrepos:
@@ -53,4 +53,4 @@ repositories managed by myrepos:
 
 .. _puppet-environment: https://gitlab.softwareheritage.org/infra/puppet/puppet-environment
 .. _sysadm-environment: https://gitlab.softwareheritage.org/infra/sysadm-environment
-.. _ci-environment: https://forge.softwareheritage.org/source/ci-environment
+.. _ci-environment: https://gitlab.softwareheritage.org/swh/infra/ci-cd/ci-environment
diff --git a/docs/sysadm/mirror-operations/deploy.rst b/docs/sysadm/mirror-operations/deploy.rst
index e634f186c752b75e921f90d4d2f8c2a6ac520aed..004df5d97125e0f8b2218ce6e61b575be724d51c 100644
--- a/docs/sysadm/mirror-operations/deploy.rst
+++ b/docs/sysadm/mirror-operations/deploy.rst
@@ -37,7 +37,7 @@ help to start the configuration of a mirror, a `docker-swarm
 <https://docs.docker.com/engine/swarm/>`_ based deployment solution is provided
 as a working example of the mirror stack:
 
-  https://forge.softwareheritage.org/source/swh-mirror
+  https://gitlab.softwareheritage.org/swh/infra/swh-mirror
 
 It is strongly recommended to :ref:`start from there <mirror_docker>` in a test
 environment before planning a production-like deployment.
diff --git a/docs/sysadm/mirror-operations/docker.rst b/docs/sysadm/mirror-operations/docker.rst
index 42214f8de87dd6b99b4890515791c009276ba372..b27c561d45aee4c48c9eab5829544cdd762c2d1b 100644
--- a/docs/sysadm/mirror-operations/docker.rst
+++ b/docs/sysadm/mirror-operations/docker.rst
@@ -36,9 +36,9 @@ Several preparation steps will depend on this name.
 We also use `docker-compose <https://github.com/docker/compose>`_ to merge compose
 files, so make sure it is available on your system.
 
-You also need to clone the git  repository:
+You also need to clone the git repository:
 
-  https://forge.softwareheritage.org/source/swh-mirror
+  https://gitlab.softwareheritage.org/swh/infra/swh-mirror.git
 
 
 Set up volumes
@@ -116,7 +116,7 @@ If you haven't done it yet, clone this git repository:
 
 .. code-block:: bash
 
-   ~$ git clone https://forge.softwareheritage.org/source/swh-mirror.git
+   ~$ git clone https://gitlab.softwareheritage.org/swh/infra/swh-mirror.git
    ~$ cd swh-mirror
 
 This repository provides the docker compose/stack manifests to deploy all the relevant
diff --git a/docs/sysadm/network-architecture/dns.rst b/docs/sysadm/network-architecture/dns.rst
index 347e32cd31eb57f4a4888a2cfea0042aebab0bde..1b44c7a6b5191902d2ca7e68f8e9f1154b067ca6 100644
--- a/docs/sysadm/network-architecture/dns.rst
+++ b/docs/sysadm/network-architecture/dns.rst
@@ -172,8 +172,8 @@ If you rather not use a DNS, a (ad-hoc maintained) sample /etc/hosts is availabl
 SSH configuration
 ~~~~~~~~~~~~~~~~~
 
-The only host with public (internet) SSH access, ``forge.softwareheritage.org``, doesn't
-need any specific configuration.
+The only host with public (internet) SSH access, ``gitlab.softwareheritage.org``, does
+not need any specific configuration.
 
 All other hosts (``*.internal.softwareheritage.org``,
 ``*.internal.staging.swh.network``, ``*.internal.admin.swh.network``) are only (but
diff --git a/docs/sysadm/network-architecture/how-to-access-firewall-settings.rst b/docs/sysadm/network-architecture/how-to-access-firewall-settings.rst
index 6532f2464f806efe75a836558aba17e6b796aa0d..097161134a744a70f58ab5856949cafbd29aea09 100644
--- a/docs/sysadm/network-architecture/how-to-access-firewall-settings.rst
+++ b/docs/sysadm/network-architecture/how-to-access-firewall-settings.rst
@@ -47,8 +47,8 @@ Configuration backup
 --------------------
 
 The configuration is automatically committed on a `git repository
-<https://forge.softwareheritage.org/source/iFWCFG/branches/master/>`_. Each firewall
-regularly pushes its configuration on a dedicated branch of the repository.
+<https://gitlab.softwareheritage.org/infra-private/iFWCFG/-/tree/master/>`_. Each
+firewall regularly pushes its configuration on a dedicated branch of the repository.
 
 The configuration is visible on the `System / Configuration / Backups
 <https://pushkin.internal.softwareheritage.org/diag_backup.php>`_ page of each one.
diff --git a/docs/sysadm/puppet/howto-manage-third-party-modules.rst b/docs/sysadm/puppet/howto-manage-third-party-modules.rst
index 521c1bf659dc2c2bf7871c7cc095b71f744f5017..be68a3b41fabf4d278f197652a3892d31df54730 100644
--- a/docs/sysadm/puppet/howto-manage-third-party-modules.rst
+++ b/docs/sysadm/puppet/howto-manage-third-party-modules.rst
@@ -29,6 +29,11 @@ specifier.
 Adding a new external puppet module
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+.. admonition:: Deprecation notice
+   :class: important
+
+   This needs refactoring as the script mentioned in this section is not yet ported to
+   use our new gitlab instance
 
 In the *puppet-environment* repository, the ``bin/import-puppet-module`` takes care of
 the following tasks:
diff --git a/docs/sysadm/puppet/howto-test-changes-in-vagrant.rst b/docs/sysadm/puppet/howto-test-changes-in-vagrant.rst
index cc0e25812160d52b2f821a1c275848d425809263..8807e843dff6633ceccbbbe264f0260987a03548 100644
--- a/docs/sysadm/puppet/howto-test-changes-in-vagrant.rst
+++ b/docs/sysadm/puppet/howto-test-changes-in-vagrant.rst
@@ -4,4 +4,4 @@ How to test Puppet changes in Vagrant
 =====================================
 
 .. todo:: This page is a work in progress. Please refer to the `existing documentation
-   <https://forge.softwareheritage.org/source/puppet-environment/browse/master/README.md$187>`_.
+   <https://gitlab.softwareheritage.org/swh/infra/puppet/puppet-environment/-/blob/master/README.md#local-tests-with-vagrant>`_.
diff --git a/docs/sysadm/puppet/reference-architecture.rst b/docs/sysadm/puppet/reference-architecture.rst
index 35c0b50b04790c64fd0ef03e5757f2415667a79e..330b4e1cdc5ae4b8f1a2f9a6f7c66d6e14dcc75b 100644
--- a/docs/sysadm/puppet/reference-architecture.rst
+++ b/docs/sysadm/puppet/reference-architecture.rst
@@ -3,7 +3,6 @@
 Reference: Architecture of the Software Heritage Puppet deployment
 ==================================================================
 
-.. todo::
-   This page is a work in progress. Please refer to the `existing documentation
-   <https://forge.softwareheritage.org/source/puppet-environment/>`_ and `the
-   wiki page <https://wiki.softwareheritage.org/wiki/Puppet_setup>`_.
+.. todo:: This page is a work in progress. Please refer to the `existing documentation
+   <https://gitlab.softwareheritage.org/swh/infra/puppet/puppet-environment/-/blob/master/README.md>`_
+   and `the wiki page <https://wiki.softwareheritage.org/wiki/Puppet_setup>`_.
diff --git a/docs/sysadm/user-management/how-to-manage-creds-store.rst b/docs/sysadm/user-management/how-to-manage-creds-store.rst
index ee894bf3f6a267bf53c1e4e7899875759c93a83a..a208005a6e3c6acf9609643f2ed707047426c561 100644
--- a/docs/sysadm/user-management/how-to-manage-creds-store.rst
+++ b/docs/sysadm/user-management/how-to-manage-creds-store.rst
@@ -15,7 +15,7 @@ Repository
 ^^^^^^^^^^
 
 The repository location is `in the forge
-<https://forge.softwareheritage.org/source/credentials/>`_.
+<https://gitlab.softwareheritage.org/swh/infra/credentials>`_.
 
 Configuration
 ^^^^^^^^^^^^^
@@ -41,4 +41,4 @@ Information
 ^^^^^^^^^^^
 
 More information can be found at `the repository
-<https://forge.softwareheritage.org/source/credentials/browse/master/README>`_.
+<https://gitlab.softwareheritage.org/swh/infra/credentials/-/blob/master/README>`_.