Il trucco: GitLab può inviare notifiche formattate per Slack direttamente a un Incoming Webhook di Rocket.Chat. Non serve un account Slack né un servizio intermedio.
Questo percorso è stato verificato in pratica su un'installazione GitLab Self-Managed: il test eseguito dalla UI GitLab è arrivato nel canale Rocket.Chat.
Attenzione alla compatibilità: l'integrazione Slack notifications di GitLab è deprecata dalla 15.9 e, dalla 19.5, può non apparire per progetti che non l'avevano già utilizzata. Per una nuova integrazione duratura, consulta l'alternativa nativa.
- Rocket.Chat → Manage → Workspace → Users: crea
gitlab-boto scegli un utente tecnico esistente. Deve essere attivo e membro del canale di destinazione. - Manage → Workspace → Permissions: verifica il permesso
message-impersonateper il ruolo dell'utente; evita di dargli privilegi amministrativi. - Manage → Workspace → Integrations → New → Incoming: attiva l'integrazione, imposta
Post to Channela#dev-notifications,Post asagitlab-bot,AliasaGitLab,Script Enabledsu OFF. Salva. - Testa prima Rocket.Chat:
bash scripts/test-webhook.sh. Quando richiesto, incolla privatamente l'URL dell'integrazione. Controlla il codice HTTP e l'effettiva comparsa del messaggio. - Se GitLab blocca la LAN: un amministratore deve entrare in
Admin → Settings → Network → Outbound requestse aggiungere alla allowlist solo il dominio necessario, con porta:443(per esempiochat.example.internal:443). Non disabilitare globalmente le protezioni SSRF e DNS-rebinding. - GitLab → Project → Settings → Integrations → Slack notifications: attiva l'integrazione, seleziona merge request/issue/pipeline/deploy, incolla l'URL del webhook Rocket.Chat in
Webhook, lascia vuoti i canali per usare quello predefinito di Rocket.Chat, salva. - Premi Test settings in GitLab e verifica la notifica sul canale. A quel punto il percorso completo è operativo.
| Errore | Cosa fare |
|---|---|
Invalid user [error-invalid-user] |
L'utente di Post as deve esistere |
The user must exist and have the message-impersonate permission |
Controllare permesso e appartenenza al canale |
Webhook is blocked: Requests to the local network are not allowed |
GitLab blocca IP privati: usare allowlist stretta del dominio + porta |
curl restituisce 200 ma GitLab non invia |
Il test diretto bypassa le regole outbound di GitLab: eseguire Test settings |
Mancanza di Slack notifications |
Valutare Webhooks nativi e script Rocket.Chat |
Per le diagnosi più dettagliate, consulta Troubleshooting.
Il webhook contiene un token segreto nell'URL. Non va mai pubblicato in repository, ticket, screenshot o chat condivise. Se è stato esposto, rigeneralo da Rocket.Chat e aggiorna l'integrazione GitLab.
Questo progetto dimostra una compatibilità: non è un'integrazione ufficiale né una garanzia per versioni future.