def do_contrib(self, subcmd, opts, *args):
     """${cmd_name}: Handling a requests for Contrib
 
-    A specialized version of submitreq command for
-    openSUSE:Factory:Contrib repository
+osc subcommand for maintenance of openSUSE Contrib repository. This command
+tries to make the maintenance process more easier, than common osc
+commands. These commands are derived from existing ones, but have a
+different arguments.
 
-    The documentation will follows ;-)
-    
-    list - list all new requests to openSUSE:Factory:Contrib
-    new - a new (package) request for Contrib
-    accept - accept a package request
-    decline - decline a package request
+osc contrib show [PACKAGE]
+Show all new requests towards Contrib. The optional argument package will
+filter only a requests to it.
+
+Options:
+    -s, --state     filter the state (type 'any' for all)
+
+osc contrib checkout PACKAGE
+Checkout the requested package to the dir.
+
+Options:
+    -i, --id        id of request (if multiple exists)
+
+
+osc contrib [accept|decline] PACKAGE
+Change the state of package to <state>
+
+Options:
+    -i, --id        id of request (if multiple exists)
+    -m, --message   the submit message (optional for accept)
 
-    ${cmd_usage}
-    ${cmd_option_list}
+${cmd_usage}
+${cmd_option_list}
     """
 
-    cmds = ['list', 'new', 'accept', 'decline', 'co', 'checkout']
+    cmds = ['show', 'accept', 'decline', 'co', 'checkout']
     if not args or args[0] not in cmds:
         raise oscerr.WrongArgs("Unknown contrib action. Choose one of %s." \
                                 % ', '.join(cmds))
@@ -54,7 +70,7 @@ def _sr_from_package(self, package, reqid=None, req_state=''): 
 
     return requests[0]
 
-def _do_contrib_list(self, opts, args):
+def _do_contrib_show(self, opts, args):
 
     package = ''
     if len(args) > 0:
@@ -187,11 +203,14 @@ def _do_contrib_sr_change(self, opts, args, action, message): 
     response = change_submit_request_state(self.apiurl, id, action, message)
     
     if opts.keep:
+        import pdb
+        pdb.set_trace()
         # fix the maintainer and a bugowner
         meta = self._get_meta_xml(package)
-        if not self._has_user_role(meta, 'maintainer', sr.who):
-            addMaintainer(self.apiurl, self.project, package, sr.who)
-        if not self._has_user_role(meta, 'bugowner', sr.who):
-            self._addBugowner(self.apiurl, self.project, package, sr.who)
+        who = sr.state.who
+        if not self._has_user_role(meta, 'maintainer', who):
+            addMaintainer(self.apiurl, self.project, package, who)
+        if not self._has_user_role(meta, 'bugowner', who):
+            self._addBugowner(self.apiurl, self.project, package, who)
 
     print(response)