Skip to content

Owner Search

Dany Marcoux edited this page Aug 24, 2022 · 38 revisions

Owners are users/groups with the maintainer or bugowner roles in the given project/package.

There are 5 OwnerSearch classes with OwnerSearch::Base being the parent of the 4 other children classes. They have different behaviors depending on the hash key-value pairs passed to their initializer. The key-value pairs with possible effects are attribute, devel, filter, limit and project. Other key-value pairs are ignored.

TODO - Attribute OBS:OwnerRootProject

Each OwnerSearch class returns instances of Owner, a ActiveModel model. It holds the information about the owners of a given project/package, their roles and what is the root project.

Owner has six attributes:

  • rootproject (the name of the project with the attribute OBS:OwnerRootProject or whatever was passed instead)
  • project (the name of the project owned by the users/groups)
  • package (the name of the package owned by the users/groups)
  • filter (the roles of the owners, example: bugowner or maintainer)
  • users (the users which are the owners of the project/package)
  • groups (the groups which are the owners of the project/package)

See below how each OwnerSearch class works.

OwnerSearch::Assignee

Search for owners by looking at the binaries of packages in projects. attribute, devel and project will considerably change how this is done.

attribute

By default when no attribute is provided, only consider projects with the attribute 'OBS:OwnerRootProject' and all their children. Using a different attribute is possible by providing it to this key-value pair.

devel

A value of '0' or 'false' will not consider devel packages when searching for owners.

filter

By default, owners are either maintainers or bugowners, unless 'BugownerOnly' is defined on the attribute (see attribute above). Specify in a comma-separated list which roles you are instead looking for (like bugowner,reviewer).

limit

A value of -1 will return only the owner of the deepest package in terms of project levels (like home:Admin/ctris vs home:Admin/subproject1/ctris).

A value of 0 will return all owners.

A value of 1 or higher will return at most this amount of owners. There might not be even that many owners.

project

Only consider this project (like home:Admin), thus ignoring the attribute key-pair.

OwnerSearch::Container

When passing a package to #for, look for owners in the package's project and all its parent projects. When passing a project, look for owners in the project and all its parent projects.

filter

By default, owners are either maintainers or bugowners, unless 'BugownerOnly' is defined on the attribute (see attribute above). Specify in a comma-separated list which roles you are instead looking for (like bugowner,reviewer).

attribute, devel, limit and project

They don't have any effect.

OwnerSearch::Missing

Search for projects without owners, while going recursively going through all their linked projects. attribute and project will considerably change how this is done.

attribute

By default when no attribute is provided, search for projects with the attribute 'OBS:OwnerRootProject' and recursively go through all their linked projects. Matching projects with a different attribute is possible by providing it to this key-value pair.

filter

By default, owners are either maintainers or bugowners, unless 'BugownerOnly' is defined on the attribute (see attribute above). Specify in a comma-separated list which roles you are instead looking for (like bugowner,reviewer).

project

Only consider the given project (like home:Admin) and recursively go through all its linked projects.

devel, limit

They don't have any effect.

OwnerSearch::Owned

Search for packages/projects which are owned by a given user/group. In this context, owned means having a specific role in a package/project. attribute and filter will considerably affect what is returned. As for project, it will affect what is searched.

attribute

By default when no attribute is provided, search for projects with the attribute 'OBS:OwnerRootProject'. Search for projects with a different attribute by providing this key-value pair.

filter

By default, owners are either maintainers or bugowners, unless 'BugownerOnly' is defined on the attribute (see attribute above). Specify in a comma-separated list which roles you are instead looking for (like bugowner,reviewer).

project

Only consider the given project (like home:Admin)

devel, limit

They don't have any effect.

Clone this wiki locally