Latchpoint
Latchpoint for Perforce

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.

Your depot credentials never leave your network. Latchpoint does not connect to your Perforce server. Your server posts outbound to Jira over HTTPS, authenticated with a secret only you hold. Works with on-premises, cloud and hybrid deployments.

Setup

  1. Install Latchpoint for Perforce from the Atlassian Marketplace.
  2. In Jira, go to Apps → Manage your apps and open Latchpoint for Perforce. Copy your endpoint URL and secret.
  3. Put the trigger script on your Perforce server (below).
  4. Set the environment variables for the account running p4d.
  5. 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%"
Use that line exactly as written. Windows Server defaults to the 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

ConcernBehaviour
Latchpoint unreachableThe trigger logs a line and exits 0. Submits are never blocked.
Depot credentialsNever transmitted. The script reads changelist metadata locally via p4 -ztag describe -s.
File contents and pathsNever transmitted. Only changelist number, description, author, timestamp and file count.
Secret compromisedRotate it on the Jira admin page and update the server variable.
Outbound accessHTTPS 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.