Working With Projects

There are a number of features related to projects that alter how builds are handled later on. For one, each project has an admin group and a dev group. Any user in the admin group have full access to control the project same as the owner/user of the project has. The dev group identifies users that are developers for the project, and grants added permission to work with the project (i.e. submit builds, etc).

Projects also have a ‘vcs_handler’ and a ‘bug_handler’. Handlers tell MonkeyFarm how to handle certain operations, and are configured system wide by the MonkeyFarm administrator. An example of a vcs_handler would be the monkeyfarm.git plugin which provides the ability to checkout sources from a Git repo. When a project specifies their vcs_handler it becomes a hard codes path for each package to have a repo at that location (determined by the vcs_provider). This will make more sense when we look at ‘packages’.

Creating a Project

$ mf vcs-handler listall
git
bzr
svn

$ mf bug-handler listall
launchpad
bugzilla
github

$ mf project create -l my-project \
                    --display-name "My Project Title" \
                    --vcs-handler=git \
                    --bug-handler=bugzilla

Updating a Project

$ mf project update my-project --url=http://example.com

$ mf project update my-project --admin-group my-group --dev-group mf-everyone

Deleting a Project

$ mf project delete my-project

Listing Projects

List all projects that I own, or whose admin/dev group I belong to:

$ mf project listall
test2
my-project

$ mf project listall -f test
test2

List only projects that I own:

$ mf project listall --mine
my-project

List all available projects:

$ mf project listall --all
my-project
test
test2

$ mf project listall --all -f test
test
test2

Showing Data For a Project

$ mf project show my-project

          Label | my-project
   Display Name | My Project Title
          Owner | john.doe
    Admin Group | my-group
      Dev Group | mf-everyone
     Created On | 2010-11-30 19:09:28
    Last Update | 2010-11-30 19:09:28
            URL | http://example.com
    VCS Handler | git
    Bug Handler | bugzilla

Setting the Current Project

Most users generally work on one project at a time... so to make working with multiple projects easier there is the ‘workon’ command to ‘mf’. This caches the project you want to work on, so that you don’t need to pass ‘–project’ with every other command.

$ mf build listall
MFArgumentError > A project label is required

$ mf workon my-project

$ mf status
           User | john.doe
     Connection | default
        Project | my-project

$ mf build listall
php52-5.2.14-1.el5
mysql50-5.0.91-1.el5

Project Versions

Table Of Contents

Previous topic

Working With Groups

Next topic

Working With Packages

This Page