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 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")