Skip to content

Draft: Include invited groups as CODEOWNER

What does this MR do and why?

Related to: #498117 (comment 2173860345)+

Currently, as per the CODEOWNERS documentation for the CODEOWNERS file to reference a group it is not under you must first add that group to the project.

This MR aims to make sure that groups invited to other groups are inherited by their subprojects as CODEOWNERS.

Database execution plans

shared_with_group_links_of_ancestors

 Index Scan using index_group_group_links_on_shared_group_and_shared_with_group on public.group_group_links  (cost=0.42..4.68 rows=2 width=54) (actual time=2.153..2.154 rows=0 loops=1)
   Index Cond: (group_group_links.shared_group_id = 101)
   Buffers: shared hit=3 read=3
   I/O Timings: read=2.120 write=0.000
Settings: effective_cache_size = '472585MB', jit = 'off', random_page_cost = '1.5', seq_page_cost = '4', work_mem = '100MB'

shared_with_group_links_of_ancestors_self

 Index Scan using index_group_group_links_on_shared_group_and_shared_with_group on public.group_group_links  (cost=0.42..9.10 rows=4 width=54) (actual time=0.020..0.020 rows=0 loops=1)
   Index Cond: (group_group_links.shared_group_id = ANY ('{101,103}'::bigint[]))
   Buffers: shared hit=9
   I/O Timings: read=0.000 write=0.000
Settings: effective_cache_size = '472585MB', jit = 'off', random_page_cost = '1.5', seq_page_cost = '4', work_mem = '100MB'

shared_with_groups_of_ancestors

 Nested Loop  (cost=0.98..10.62 rows=1 width=376) (actual time=0.033..0.034 rows=0 loops=1)
   Buffers: shared hit=6
   I/O Timings: read=0.000 write=0.000
   ->  Index Only Scan using index_group_group_links_on_shared_group_and_shared_with_group on public.group_group_links  (cost=0.42..3.45 rows=2 width=8) (actual time=0.032..0.033 rows=0 loops=1)
         Index Cond: (group_group_links.shared_group_id = 101)
         Heap Fetches: 0
         Buffers: shared hit=6
         I/O Timings: read=0.000 write=0.000
   ->  Index Scan using namespaces_pkey on public.namespaces  (cost=0.56..3.58 rows=1 width=376) (actual time=0.000..0.000 rows=0 loops=0)
         Index Cond: (namespaces.id = group_group_links.shared_with_group_id)
         Filter: ((namespaces.type)::text = 'Group'::text)
         Rows Removed by Filter: 0
         I/O Timings: read=0.000 write=0.000
Settings: effective_cache_size = '472585MB', jit = 'off', random_page_cost = '1.5', seq_page_cost = '4', work_mem = '100MB'

shared_with_groups_of_ancestors_and_self

 Nested Loop  (cost=0.98..19.75 rows=1 width=376) (actual time=0.031..0.031 rows=0 loops=1)
   Buffers: shared hit=9
   I/O Timings: read=0.000 write=0.000
   ->  Index Only Scan using index_group_group_links_on_shared_group_and_shared_with_group on public.group_group_links  (cost=0.42..5.40 rows=4 width=8) (actual time=0.030..0.030 rows=0 loops=1)
         Index Cond: (group_group_links.shared_group_id = ANY ('{101,103}'::bigint[]))
         Heap Fetches: 0
         Buffers: shared hit=9
         I/O Timings: read=0.000 write=0.000
   ->  Index Scan using namespaces_pkey on public.namespaces  (cost=0.56..3.58 rows=1 width=376) (actual time=0.000..0.000 rows=0 loops=0)
         Index Cond: (namespaces.id = group_group_links.shared_with_group_id)
         Filter: ((namespaces.type)::text = 'Group'::text)
         Rows Removed by Filter: 0
         I/O Timings: read=0.000 write=0.000
Settings: random_page_cost = '1.5', seq_page_cost = '4', work_mem = '100MB', effective_cache_size = '472585MB', jit = 'off'

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Joe Woodward

Merge request reports

Loading