Project

Project resource represents copr projects and operations with them.

Access to the projects is done through projects(). property of initialized CoprClient. That property is an instance of ProjectHandle. Projects are represented by Project class.

Project entity attributes

Field Type Can edit? Description
id number no unique identifier
owner string no username of the project owner
group string no
name of the group which owns the project, value is null for non-group projects
  • MAY be specified during a project creation to create a group managed project
name string no
name of the project
  • MUST be specified during a project creation
description string yes project description
instructions string yes installation instructions
homepage string(URL) yes project homepage URL
contact string(URL or email) yes contact with the project maintainer
disable_createrepo bool yes disables automatic repository metadata generation
build_enable_net bool yes set default value for new builds option enable_net
repos list of string yes list of additional repositories to be enabled during the build

Note

all following examples assume that we use cl as an instance of client_v2.client.CoprClient

Get projects list

>>> plist_1 = cl.project.get_list(limit=10)
# filter by name
>>> plist_2 = cl.project.get_list(name="copr")
# search by string
>>> plist_2 = cl.project.get_list(search_query="copr")

Get one project

>>> p = cl.projects.get_one(1835)

Modify project parameters

>>> p.description = "Nothing"
>>> p.update()

Delete project

>>> p.delete()

Create new project

Note

Here you could also provide list of chroots, which should be activated. Use key chroots.

>>> res = cl.projects.create(name="my_cool_project",
                             owner="vgologuz",
                             instructions="don't touch me!",
                             chroots=["fedora-22-x86_64"])
>>>  print(res)
<Project #5384: vgologuz/my_cool_project>

Access project chroots

Note

see also Project chroot

# get all lists
>>> chroots = p.get_project_chroot_list()
>>> print("\n".join(map(str, chroots)))
<Project chroot: fedora-21-x86_64, additional packages: [], comps size if any: 0>
<Project chroot: fedora-21-i386, additional packages: [], comps size if any: 0>
# get one chroot
>>> chroot_1 = p.get_project_chroot("fedora-22-i386")
# enable chroot for project
>>> p.enable_project_chroot("fedora-22-x86_64)

Access project builds

Note

see also Build

>>> p.get_builds(limit=5)
>>> pbuilds = p.get_builds(limit=5)
>>> print(pbuilds[3])
<Build #138414 state: failed>

# submit new builds
>>> p.create_build_from_url(srpm_url="http://example.com/my.src.rpm")
>>> p.create_build_from_file(file_path="/tmp/my.src.rpm")