Skip to content

Add research about Jotnar/Ymir triggering rearchitecture#230

Open
lbarcziova wants to merge 4 commits intopackit:mainfrom
lbarcziova:ymir-rearchitecture-design
Open

Add research about Jotnar/Ymir triggering rearchitecture#230
lbarcziova wants to merge 4 commits intopackit:mainfrom
lbarcziova:ymir-rearchitecture-design

Conversation

@lbarcziova
Copy link
Copy Markdown
Member

@lbarcziova lbarcziova commented Mar 26, 2026

Fixes PACKIT-4842
Assisted-By: Claude Opus 4.6 noreply@anthropic.com

@nforro
Copy link
Copy Markdown
Member

nforro commented Mar 26, 2026

There is another potential option for a trigger, the automation button in the new Jira:
jira
We could add our own action(s). I believe it's possible to provide parameters, but that would have to be verified.
It would be the same as Option C: Jira Automation Rules, just not triggered by a comment.

@lbarcziova
Copy link
Copy Markdown
Member Author

lbarcziova commented Mar 26, 2026

@nforro good catch! The triggering mechanism seems to be indeed via the Automation Rules, if I click from there for Packit issues, I get to https://redhat.atlassian.net/jira/software/c/projects/PACKIT/settings/automate. And it would be just different kind of trigger, Manual trigger from work item, and it's possible to provide input fields. I will add the details to the doc.

Fixes PACKIT-4842
Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>
Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>
@lbarcziova lbarcziova force-pushed the ymir-rearchitecture-design branch from dbd9c64 to b03682d Compare March 26, 2026 16:13
Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>
- Author validation — check Jira group membership before processing
- Queue routing — push to appropriate Redis queue based on action and branch
- Acknowledgment — post a Jira comment confirming the command was received
- Deduplication — track processed commands to avoid re-processing on retries
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this scenario, we could also re-use Celery. It could simplify the retrying mechanism (otherwise we should implement it), also I think it could solve the deduplication.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Celery seems like the most straightforward option.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point @majamassarini, Celery would definitely be useful for autorefries etc. For launching the service for early adopters and with the expected load being low since workflows are opt-in, I would start with what we have. But we should keep this on the radar for the following months, especially if the load/workflow grow.

Comment on lines +111 to +113
- Result set grows over time, needs time-based filtering (e.g., `AND updated >= -1d`)
— but `updated` catches any issue update, not just new @Ymir mentions, producing
false positives that still require comment-by-comment inspection
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would help if we had estimates on how many issues are changed in jira per day. That way we would have some idea of an upper bound.

Our worst case scenario, is an eternal, continuously updated task, where Ymir was mentioned once. Provided we can avoid invoking LLM to determine response, we should be able to handle even cases like this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sure that thousands of RHEL jiras are changed every day.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thousands should be manageable, provided that we filter out cases when Ymir is not actually required. For example, if the change is not a new comment invoking Ymir, we ignore the change and don't check it again for some period of time.

Assisted-By: Claude Opus 4.6 <noreply@anthropic.com>
but triage can't paste a one-click follow-up action. With CLI, triage pastes a pre-filled
command that the user copy-pastes to trigger backport/rebase. Both can coexist.

**To decide**: Which to start with — `/ymir` CLI or manual trigger forms (or both).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me the /ymir CLI sounds best, and i think packagers would appreciate it for specific actions, if it does not bring any big implementation complexities (e.g. not sure how hard it is to listen to certain comments in Jira). Perhaps @ymir rebase --version... format would be most appropriate. It would allow us to listen for ymir commands effectively and have CLI style interface.


---

### Option C: Jira Automation Rules
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sounds best to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

8 participants