fix(ecosystem): Breaks issue sync cycles
The problem:
When a Jira issue's assignee field is quickly modified multiple times in a row, we end up assigning and resyncing the assignees to Jira, which causes a loop. This is because all inbound integration webhooks that modify an issue assignment generate an outbound update for all issue sync integrations as well.
Solution:
This PR adds a new AssignmentSource dataclass, which acts as a context carrier when an external webhook triggers an issue assignment change. This is then checked on the outbound sync logic, preventing the change from being propagated to the same integration that initially triggered the change.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:white_check_mark: All tests successful. No failed tests found.
Additional details and impacted files
@@ Coverage Diff @@
## master #77754 +/- ##
==========================================
+ Coverage 78.11% 78.15% +0.03%
==========================================
Files 7082 7092 +10
Lines 312250 312829 +579
Branches 51010 51105 +95
==========================================
+ Hits 243910 244478 +568
+ Misses 61984 61964 -20
- Partials 6356 6387 +31