-
Notifications
You must be signed in to change notification settings - Fork 440
Owner Search
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.
Except for OwnerSearch::Container
, all OwnerSearch
classes look for projects with, by default, the attribute OBS:OwnerRootProject
. This attribute has two values: BugownerOnly
and DisableDevel
. When the BugownerOnly
value is set, the owner search will, by default, only find owners with the bugowner
role. Setting the DisableDevel
value will not consider devel packages when searching for owners.
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 attributeOBS: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
children class works.
By default, owners are either maintainers or bugowners, unless the BugownerOnly
value is defined on the OBS:OwnerRootProject
attribute. Specify in a comma-separated list which roles you are instead looking for (like bugowner,reviewer
).
Search for owners by looking at the binaries of packages in projects, including all their children. attribute, devel and project will considerably change how this is done.
By default when no attribute is provided, only consider projects with the attribute 'OBS:OwnerRootProject'
, including all their children. Using a different attribute is possible by providing it to this key-value pair.
A value of '0'
or 'false'
will not consider devel packages when searching for owners.
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.
Only consider this project (like home:Admin
), thus ignoring the attribute key-pair.
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.
They don't have any effect.
Search for projects without owners, while going recursively going through all their linked projects. attribute and project will considerably change how this is done.
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.
Only consider the given project (like home:Admin
) and recursively go through all its linked projects.
They don't have any effect.
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.
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.
Only consider the given project (like home:Admin
)
They don't have any effect.
- Searching by user or group returns the projects/packages for which the user/group is the owner.
- Doing the same search through WebUI and API doesn't return the same results. The difference is related to OwnerSearch::Owned which is not called from WebUI whereas OwnerSearch::Assignee is called from both.
- The owner search will get results only if one of the ancestors or related projects of the searched package/project was set as the root of the search (it contains the OBS:OwnerRootProject attribute or equivalent). Or if the user specifies a project in the search.
- In production, there is only one project with the attribute OBS:OwnerRootProject:
- openSUSE in OBS
- Development Environment Overview
- Development Environment Tips & Tricks
- Spec-Tips
- Code Style
- Rubocop
- Testing with VCR
- Authentication
- Authorization
- Autocomplete
- BS Requests
- Events
- ProjectLog
- Notifications
- Feature Toggles
- Build Results
- Attrib classes
- Flags
- The BackendPackage Cache
- Maintenance classes
- Cloud uploader
- Delayed Jobs
- Staging Workflow
- StatusHistory
- OBS API
- Owner Search
- Search
- Links
- Distributions
- Repository
- Data Migrations
- next_rails
- Ruby Update
- Rails Profiling
- Installing a local LDAP-server
- Remote Pairing Setup Guide
- Factory Dashboard
- osc
- Setup an OBS Development Environment on macOS
- Run OpenQA smoketest locally
- Responsive Guidelines
- Importing database dumps
- Problem Statement & Solution
- Kickoff New Stuff
- New Swagger API doc
- Documentation and Communication
- GitHub Actions
- How to Introduce Software Design Patterns
- Query Objects
- Services
- View Components
- RFC: Core Components
- RFC: Decorator Pattern
- RFC: Backend models