Warning
Client version 2 is obsolete, please use Client version 3 instead.
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 |
string |
no |
|
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 |
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")