Factory workflow plugins
========================

image:https://travis-ci.org/openSUSE/osc-plugin-factory.png?branch=master["Build Status", link="https://travis-ci.org/openSUSE/osc-plugin-factory"] image:https://coveralls.io/repos/openSUSE/osc-plugin-factory/badge.png?branch=master["Coverage Status", link="https://coveralls.io/r/openSUSE/osc-plugin-factory"]

This repository contains different OSC plugins that help and support
the maintenance of Factory.  These plugins use the OBS API to check,
evaluate and manage the different submit request of packages that go
from a devel project to Factory.

Plugins
-------

* *link:docs/staging.asciidoc[Staging].* Plugin used to manage the
   different staging projects and to assign different group of
   packages (requests) to different staging projects.

* *link:docs/checkrepo.asciidoc[CheckRepo].* This OSC plugin check
   continuously for usual mistakes or problems in requests like, for
   example, new dependency cycles or errors in the binary RPM.

* *link:docs/checksource.asciidoc[CheckSource].* Check the source
   version of the RPM package.

* *link:docs/totest.asciidoc[ToTest].* A plugin that help the
   publishing process of Factory.

* *link:docs/checkdups.asciidoc[CheckDups].* Plugin to detect
   superseded or duplicated requests.


Installation
------------

Clone this repository:

-------------------------------------------------------------------------------
git clone https://github.com/openSUSE/osc-plugin-factory.git
-------------------------------------------------------------------------------

Create links for the different plugins that you want to install in
+~/.osc-plugins+ or +/var/lib/osc-plugins+.  For example, to install
the staging plugin:

-------------------------------------------------------------------------------
cd osc-plugin-factory
ln -sr ./osc-staging.py ./osclib ~/.osc-plugins
-------------------------------------------------------------------------------

Now you are done and all that is left is start using plugin, see help
in regards of what you can do:

-------------------------------------------------------------------------------
osc help staging
-------------------------------------------------------------------------------

or

-------------------------------------------------------------------------------
osc staging --help
-------------------------------------------------------------------------------


Testing
-------

Covering all functionality with test suite is currently work in
progress. In general new functionality should be covered by tests in
order to make sure we don't break it in future. Before refactoring,
functions has to be covered by tests as well to ensure we don't break
them.

How to work with test suite is better described in
link:docs/testing.asciidoc[testing] file in link:docs[docs] directory.
