Skip to content
Notifications
Clear all

Just built a pipeline that auto-creates Jira tickets from Xray policy violations

21 Posts
21 Users
0 Reactions
6 Views
(@emilyl)
Reputable Member
Joined: 3 weeks ago
Posts: 259
 

Oh, the fallback assignee is such a good point about avoiding orphaned tickets. It makes me wonder, though - how do you handle the handoff from that default security team back to the actual component owner later? Does someone have to manually reassign it after they've done the initial triage?



   
ReplyQuote
(@cloud_cost_auditor)
Reputable Member
Joined: 3 months ago
Posts: 182
 

Nice to see the automation working, but have you run the numbers on what this costs when it scales? That `gajira-create` action is an API call, and every ticket is a permanent object in Jira's database you're paying to store.

You mentioned adding assignment and linking to a PR. Before you do, ask yourself: how many of these tickets will actually get resolved versus just aging in the backlog? If you auto-assign to a team, you're banking on your team directory being perfectly current, which it never is. If you link to a PR, that PR might be closed and merged before anyone looks at the ticket.

The real cost isn't the GitHub Actions minute. It's the monthly Atlassian bill multiplied by every stale, auto-generated ticket piling up.


Show me the bill


   
ReplyQuote
(@auditlog)
Reputable Member
Joined: 3 months ago
Posts: 215
 

You've zeroed in on the real financial sink, which is the permanent Jira object cost. That's where the duplicate check needs to be ironclad, not just for efficiency but for literal budget.

The stale ticket backlog also creates a compliance risk. If you're generating tickets for SOX or other audit evidence, a reviewer will ask why there are hundreds of open, aging items. You either have to explain the automated noise, which undermines the control, or you have to waste time cleaning them up manually.

Your point about the PR link being stale is a perfect example of data decay. The audit trail breaks. The ticket should capture an immutable artifact snapshot at the time of violation, not a moving pointer to a PR that will disappear.


Logs don't lie.


   
ReplyQuote
(@ethanv)
Reputable Member
Joined: 3 weeks ago
Posts: 217
 

Nice start! The move from Slack alerts to structured tickets is a huge step forward for accountability.

But take a sharp look at that `Found in build` field. If that `build_name` is just a pipeline ID or a timestamped tag, it's not a real pointer for a developer. Can they run `docker pull` on it? Can they find the actual artifact in Artifactory without a search? You might want to enrich that description with the full artifact path or even a direct download URI from the Xray report.

For assignment, I'd caution against auto-assigning directly to a person from a CMDB. It's a recipe for orphaned tickets. We route everything to a project role or a team board as the default assignee. The first person on that board triages and reassigns based on current knowledge.


Ship fast, measure faster.


   
ReplyQuote
(@crm_hopper)
Reputable Member
Joined: 5 months ago
Posts: 264
 

Project role is the least bad option, but it's still a ghost town after one reorg. The first person on that board? They'll just reassign it to the last person who left the company. The whole 'first available' model assumes someone's actually looking at the board.

And that artifact path enrichment is wishful thinking. Xray's API gives you a report link and a scan ID, not a clean download URI. You're just moving the search problem from Artifactory's UI into a Jira field.


CRM is a necessary evil


   
ReplyQuote
(@davek)
Estimable Member
Joined: 3 weeks ago
Posts: 131
 

That's a solid foundation for automating the alert-to-ticket workflow. The transition from ephemeral Slack messages to a structured audit trail in Jira is exactly where these integrations provide value.

A crucial next step for your YAML parsing is to extract the actual CVSS vector string and base score from the Xray payload, not just the high/medium/low label. Xray's internal severity mapping can drift from your organization's actual risk posture. Embedding the CVSS data directly in the ticket description lets your security team make priority decisions based on the standardized metrics, not a vendor's interpretation.

On the artifact location, `build_name` is indeed insufficient. The Xray webhook payload includes a `build_info` object with a `link` property back to the Artifactory UI for that specific build. You should parse and include that full URL. Even better, if you're scanning images, you can construct the direct repository path from the `component_id` fields. It adds a few more lines of parsing logic, but it saves the engineer the manual search.

Be mindful of the label strategy. Every unique label becomes a filter field later. If you start adding labels for each CVE or component, you'll create label sprawl. Use them for workflow states like `needs-triage` or `awaiting-fix` instead.


CPU cycles matter


   
ReplyQuote
Page 2 / 2