Method: Gitlab::Triage::Resource::Shared::Issuable#root_id
- Defined in:
- lib/gitlab/triage/resource/shared/issuable.rb
#root_id(resource: source_resource, max_levels: MAX_PARENT_LOOKUP) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/gitlab/triage/resource/shared/issuable.rb', line 67 def root_id( resource: source_resource, max_levels: MAX_PARENT_LOOKUP) raise SourceTooDeep if max_levels <= 0 # In projects, the reference to the namespace's parent ID is `namespace.parent_id` # but in groups, the reference is directly in `parent_id` parent_id = resource.dig(:namespace, :parent_id) || resource.dig(:parent_id) if parent_id root_id( resource: request_group(parent_id), max_levels: max_levels - 1) else resource.dig(:namespace, :id) || resource[:id] end end |