fix(epics): use actual group_id for save/delete operations on nested epics#3279
fix(epics): use actual group_id for save/delete operations on nested epics#3279JohnVillalovos wants to merge 1 commit intomainfrom
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR fixes an issue where save() and delete() operations on epics retrieved through a parent group's epic listing would fail because they used the wrong group path. The fix ensures that operations use the epic's actual group_id attribute to construct the correct API path.
- Overrides save() and delete() methods in GroupEpic to use the epic's group_id for API path construction
- Adds helper method
_epic_path()to compute the correct API path using the epic's real group - Adds comprehensive test coverage for both unit and functional scenarios
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
0f7065d to
3e75d60
Compare
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
3e75d60 to
3993fe7
Compare
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
3e855f3 to
27bd80c
Compare
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
27bd80c to
dcc9847
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3279 +/- ##
==========================================
+ Coverage 92.16% 95.77% +3.61%
==========================================
Files 100 100
Lines 6125 6153 +28
==========================================
+ Hits 5645 5893 +248
+ Misses 480 260 -220
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
dcc9847 to
f420862
Compare
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
f420862 to
a9638ee
Compare
a9638ee to
fb4f902
Compare
fb4f902 to
8397bd0
Compare
8397bd0 to
45a8599
Compare
45a8599 to
0dd6ab1
Compare
nejch
left a comment
There was a problem hiding this comment.
Thanks @JohnVillalovos, looks good and that's a tricky one. Not sure about lazily fetched epics - just have a few questions there.
0dd6ab1 to
ce876ef
Compare
ce876ef to
0f029e9
Compare
83feda8 to
cfe29a4
Compare
f187c43 to
4702278
Compare
…epics When an epic belonging to a subgroup is retrieved through a parent group's epic listing, save() and delete() operations would fail because they used the parent group's path instead of the epic's actual group_id. Add an internal custom path hook for object save and delete operations, and let UpdateMixin and DeleteMixin accept an explicit `_custom_path` keyword. GroupEpic uses this hook to build mutation paths from the epic's server-provided group_id, so save() and delete() target the epic's owning group. Avoid using parent manager attrs as a fallback for the epic group path. Lazy epics do not have a server-provided group_id, so raise a clear error instead of silently using the parent group path. Add unit coverage for custom update/delete paths, GroupEpic save/delete path selection, and lazy epic path failures. Add a functional test for saving a subgroup epic discovered through the parent group listing. Assisted-by: OpenAI Codex (GPT-5) Closes: #3261
4702278 to
e3d27cc
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

When an epic belonging to a subgroup is retrieved through a parent
group's epic listing, save() and delete() operations would fail because
they used the parent group's path instead of the epic's actual group_id.
Add an internal custom path hook for object save and delete operations, and let
UpdateMixin and DeleteMixin accept an explicit
_custom_pathkeyword. GroupEpicuses this hook to build mutation paths from the epic's server-provided group_id,
so save() and delete() target the epic's owning group.
Avoid using parent manager attrs as a fallback for the epic group path. Lazy
epics do not have a server-provided group_id, so raise a clear error instead of
silently using the parent group path.
Add unit coverage for custom update/delete paths, GroupEpic save/delete path
selection, and lazy epic path failures. Add a functional test for saving a
subgroup epic discovered through the parent group listing.
Assisted-by: OpenAI Codex (GPT-5)
Closes: #3261