List of participants ported / implemented for BOSS SkyNET :
Some partiticipants will require the osc tool to interact with OBS. This will be installed as a dependency to relevant participants. The version included in Debian is too old and the required repository must be added:
cat <<EOF > /etc/apt/sources.list.d/MINT-tools.list deb http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_6.0/ / EOF
Configuration : The file at /etc/oscrc needs to be edited so that these participants can communicate with the OBS instance.
Compares the checksum of the packages being submitted to packages of the same name possibly in the Testing project. If the checksum matches it sets STATUS = FAILED
This is for over-eager developers - or if two people in a team submit close together.
Compares the checksum of the packages being submitted to packages of the same name possibly in the Target project. If the checksum matches it sets STATUS = FAILED
Developers sometimes submit without doing a proper update - this catches that situation.
Checks if the request tries to submit packages to multiple projects at the same time and sets STATUS = FAILED if so
Checks if each of the packages being submitted contains at least the following files :
* Source tarball : *.tar.gz *.tar.bz2 or *.tgz * Changes file : *.changes * Spec file : *.spec
and sets STATUS = FAILED if not
Nb the presence of the .changes file is important for the changelog participants to operate correctly
Prerequisite : check_has_valid_repo
Checks if the packages being submitted are built successfully against the designated target repository for the architectures of interest and sets STATUS = FAILED if not
Checks if the spec file of each of the packages being submitted is valid. Currently the only validity check applied is that it shouldn't contain the %changelog tag and sets STATUS = FAILED if it does
OBS is responsible for inserting the .changes file contents into the spec file.
Gets the request submitter email from OBS and makes sure it is not an empty string sets STATUS = FAILED otherwise.
Checks the request submitter is actually a maintainer in the source project from which the request is origination, sets STATUS = FAILED otherwise.
Finds a repository in the source project that builds ONLY against a certain target project / repo , sets STATUS = FAILED if it does not find one.
Prerequisite : get_relevant_changelog
Checks that each package in the request actions has a non empty relevant change entries field.
Use this if you want to enforce that new entries be added to the .changes file before allowing a request to be accepted.
Checks that each package in the request originates from a project the matches the regexp provided as a parameter.
Package : boss-participant-resolverequest
Used to accept or decline a submit request.
Gets the .changes file from the project/package and puts it into the 'changelog' field. Note that for SRCSRV_REQUEST_*, project is the _target_ and may not return the expected log. Thus get_relevant_changelog may be more relevant for that case.
Gets the .changes file for the source project/package/revision and does a diff against the target project/package putting the 'added' lines into a 'relevant_changelog' field for each package in the request's actions array.
This is particularly useful for acting on external links such as bug# or feature# mentioned in the new changelog lines.
The complexity of a diff provides for situations where multiple changelog entries are made in one area of a project before the package is finally accepted.
Interacts with bugzilla to:
Takes the following parameters (can be different depending on the target bugzilla):
For the comment :
NOTE: skynet branch for now
Email notification based on templates.
Several participants interact with the OBS using the buildservice library.
They use the skynet configuration system to look for an 'oscrc' value
in the [obs] section.
oscrc = /etc/skynet/default.oscrc
This is a normal oscrc file (mode 600) and should contain [apiurl] sections with
an aliases section that includes the namespace value set by the OBS in
the obsEvent (see BSConfig.pm)