Setup guide
Perforce Helix Core changelists, shown on the Jira issues they belong to.
A developer submits a changelist with a Jira issue key in the description. Moments later that issue's development panel shows the changelist — author, description, file count. No one has to link anything by hand.
Setup
- Install Latchpoint for Perforce from the Atlassian Marketplace.
- In Jira, go to Apps → Manage your apps and open Latchpoint for Perforce. Copy your endpoint URL and secret.
- Put the trigger script on your Perforce server (below).
- Set the environment variables for the account running
p4d. - Register the trigger with
p4 triggers.
Environment variables
LATCHPOINT_URL=<endpoint URL from the Jira admin page> LATCHPOINT_SECRET=<secret from the Jira admin page> LATCHPOINT_DEPOT=depot # optional, label shown in Jira LATCHPOINT_SWARM_URL=https://swarm.example.com # optional, see below
With LATCHPOINT_SWARM_URL set, each changelist shown in Jira links straight to its
Swarm page. Without it, changelists link to this documentation instead — everything else works
the same.
Linux and macOS servers
Save as /p4/latchpoint-trigger.sh, then chmod +x. Run
p4 triggers and add:
latchpoint change-commit //... "/p4/latchpoint-trigger.sh %change% %user%"
Windows servers
Save as C:\p4\latchpoint-trigger.ps1. Run p4 triggers and add:
latchpoint change-commit //... "powershell -NoProfile -ExecutionPolicy Bypass -File C:\p4\latchpoint-trigger.ps1 %change% %user%"
RemoteSigned execution policy, which refuses to run any script downloaded from the
internet. Without -ExecutionPolicy Bypass, PowerShell exits before the script starts
and Perforce treats that as a failed trigger. If you would rather not pass Bypass,
review the script and run Unblock-File C:\p4\latchpoint-trigger.ps1 once instead.
How issues are matched
Any Jira issue key in the changelist description is matched, for example
GAME-412 fix collision on ramp geometry. Multiple keys in one description all
receive the changelist. Changelists without a key are ignored — the script exits before making
any network call.
Safety
| Concern | Behaviour |
|---|---|
| Latchpoint unreachable | The trigger logs a line and exits 0. Submits are never blocked. |
| Depot credentials | Never transmitted. The script reads changelist metadata locally via p4 -ztag describe -s. |
| File contents and paths | Never transmitted. Only changelist number, description, author, timestamp and file count. |
| Secret compromised | Rotate it on the Jira admin page and update the server variable. |
| Outbound access | HTTPS to *.atlassian.app on 443. No inbound access to your network. |
Troubleshooting
Nothing appears in Jira. Check the description contains an issue key that
exists in that Jira site. Test the trigger by hand —
/p4/latchpoint-trigger.sh 12345 alice — it prints what it did.
"Invalid or missing X-Latchpoint-Secret". LATCHPOINT_SECRET
doesn't match the admin page. Note that the p4d service account has its own
environment.
"Not configured". Open the admin page in Jira once to generate the secret.
Windows: "cannot be loaded because running scripts is disabled" or "is not digitally
signed". The p4 triggers line is missing
-ExecutionPolicy Bypass. See the Windows section above.