-`make gl-new-repo` - Create a new GitLab repository (also wires on the **legacy** Slack webhook)
-`make gl-new-deploy-key` - Generate SSH keypair in Vault and register as deploy key
-`make gl-add-deploy-key` - Add `GITLAB_DEPLOY_KEY_FILE` to ssh-agent (`chmod 400` first)
> **Slack: legacy webhook vs. the GitLab for Slack app.** `gl-set-slack` (and `gl-setup` / `gl-new-repo`, which call it) configure only the **legacy "Slack notifications" webhook** service. They do **not** manage the modern **GitLab for Slack app** (slug `gitlab-slack-application`) — on a repo where that app is the active integration these are a no-op for live notifications (the command warns when it detects this). Configure the app via its Slack slash command (`/gitlab <project> settings`), the project UI, or `PUT /projects/:id/integrations/gitlab-slack-application`; it routes **per-event channels** (`issue_channel`, `note_channel`, …), so enabling an event without setting its channel silently drops it.
### gitlab-admin.mk
Instance-scoped GitLab admin: runner inventory and cleanup. No `GITLAB_REPO` or Vault required — operates against the server as a whole.