Bash

Generate a Personal Access Token (PAT) for your build server to use from your Raygun User Settings page. The PAT will be required to have the deployments:write scope.


Add the following script to your deployment process:

#!/bin/bash  RAYGUN_PAT_TOKEN="" RAYGUN_API_KEY="" DEPLOYMENT_VERSION="" DEPLOYMENT_OWNER_NAME="" DEPLOYMENT_OWNER_EMAIL="" DEPLOYMENT_NOTES="" DEPLOYMENT_SCM_IDENTIFIER="" DEPLOYMENT_SCM_TYPE="" DEPLOYMENT_TIME=""  while getopts ":t:a:v:o:e:n:i:s:d:" opt; do  case $opt in  t) RAYGUN_PAT_TOKEN="$OPTARG" ;;  a) RAYGUN_API_KEY="$OPTARG" ;;  v) DEPLOYMENT_VERSION="$OPTARG" ;;  o) DEPLOYMENT_OWNER_NAME="$OPTARG" ;;  e) DEPLOYMENT_OWNER_EMAIL="$OPTARG" ;;  n) DEPLOYMENT_NOTES="$OPTARG" ;;  i) DEPLOYMENT_SCM_IDENTIFIER="$OPTARG" ;;  s) DEPLOYMENT_SCM_TYPE="$OPTARG" ;;  d) DEPLOYMENT_TIME="$OPTARG" ;;  \?) echo "Invalid option: -$OPTARG" >&2; exit 1 ;;  esac done  if [ -z "$RAYGUN_PAT_TOKEN" ] || [ -z "$RAYGUN_API_KEY" ] || [ -z "$DEPLOYMENT_VERSION" ]; then  echo @"Usage: $0 -t raygun_token -a apiKey -v version  [-o owner_name] [-e email] [-n notes] [-i scm_identifier]  [-s scm_type] [-d deployed_at]"  exit 1 fi  echo "Registering deployment with Raygun"  # Some older API keys may contain URL reserved characters.  # These API keys will need to be encoded before being included in the URL. # Here are a couple examples of how you could do URL encoding. # encodedApiKey=$(python -c "import urllib.parse; print(urllib.parse.quote('$RAYGUN_API_KEY'))") # or # encodedApiKey=$(echo "$RAYGUN_API_KEY" | jq -R @uri)  url="https://api.raygun.com/v3/applications/api-key/$RAYGUN_API_KEY/deployments"  json_properties=("\"version\": \"$DEPLOYMENT_VERSION\"")  if [ -n "$DEPLOYMENT_OWNER_NAME" ]; then  json_properties+=("\"ownerName\": \"$DEPLOYMENT_OWNER_NAME\"") fi  if [ -n "$DEPLOYMENT_OWNER_EMAIL" ]; then  json_properties+=("\"emailAddress\": \"$DEPLOYMENT_OWNER_EMAIL\"") fi  if [ -n "$DEPLOYMENT_NOTES" ]; then  json_properties+=("\"comment\": \"$DEPLOYMENT_NOTES\"") fi  if [ -n "$DEPLOYMENT_SCM_IDENTIFIER" ]; then  json_properties+=("\"scmIdentifier\": \"$DEPLOYMENT_SCM_IDENTIFIER\"") fi  if [ -n "$DEPLOYMENT_SCM_TYPE" ]; then  json_properties+=("\"scmType\": \"$DEPLOYMENT_SCM_TYPE\"") fi  if [ -n "$DEPLOYMENT_TIME" ]; then  json_properties+=("\"deployedAt\": \"$DEPLOYMENT_TIME\"") fi  arrayString=$(IFS=$',' ; echo "${json_properties[*]}")  json_string="{$arrayString}"  response=$(curl -s -w "%{http_code}" -X POST \  -H "Content-Type: application/json" \  -H "Authorization: Bearer $RAYGUN_PAT_TOKEN" \  -d "$json_string" \  "$url")  body=${response::-3} status_code=$(printf "%s" "$response" | tail -c 3)  if [ "$status_code" -eq "201" ]; then  echo "Deployment registered with Raygun" else  echo "Failed to register deployment with raygun" fi  echo "$body" 

Call the script after a successful release.

deployment.sh -t raygun_token -a apiKey -v version  [-o owner_name] [-e email] [-n notes] [-i scm_identifier]  [-s scm_type] [-d deployed_at]   t raygun_token: raygun personal access token with deployments:write scope  a apiKey: api key for your raygun application  v version: version for this deployment  o NAME: ame of the person who created the deployment  e EMAIL: email address of the person who created the deployment.  n notes: release notes for this deployment  i scm_identifier: git commit hash this deployment was built from  d deployed_at: time of the successful deployment (ISO-8601 formatted)