Release status without chat noise
A deploy alert should be fast, private, and actionable. Nerve sends it to a dedicated pipe instead of mixing it into a general chat channel.
Include the right context
Good deploy alerts include service name, status, commit SHA, environment, and a link to logs or a runbook.
Action remains separate
A sender DSN cannot run rollback commands. If you later add rollback actions, do it through an agent token and signed commands.
Failure alert with logs pointer
Do not paste the entire deploy log into a phone notification. Send the service, environment, commit, and a link to the place where the full log already exists.
export NERVE_DSN="nerve://TOKEN:[email protected]"
if ./deploy.sh production; then
echo "deploy ok service=api env=prod sha=$GIT_SHA" | nerve send
else
echo "deploy failed service=api env=prod sha=$GIT_SHA run=$CI_JOB_URL" \
| nerve send --severity critical
fi
When to notify success
Success notifications are useful for manual production deploys and release milestones. For every commit on every branch, they become noise. A good rule: failures always notify, success only when a human is waiting for confirmation.
Rollback safety
If rollback becomes a mobile action later, keep it signed, bounded, and separate from the sender DSN. The secret used by CI to send “deploy failed” should never be able to execute rollback by itself.
Quick start
export NERVE_DSN="nerve://TOKEN:[email protected]"
if ./deploy.sh; then
echo "deploy success sha=$GIT_SHA" | nerve send
else
echo "deploy failed sha=$GIT_SHA" | nerve send --severity alert
fi
FAQ
Can I send deploy alerts from GitHub Actions?
Yes. Store NERVE_DSN as a GitHub secret and call nerve send in a workflow step.
Can a leaked deploy DSN execute rollback?
No. Sender DSNs cannot execute commands.
Should deploy alerts include secrets?
No. Send status and links, not secrets or credentials.