| COPR-CLI(1) | COPR | COPR-CLI(1) |
نام (NAME)
copr-cli - واسط خط فرمان برای سرویس Copr
خلاصه دستور (SYNOPSIS)
copr-cli [-h] [--version] [--config CONFIG] {list,create,build} ...
توضیحات (DESCRIPTION)
این دستور به شما امکان میدهد از طریق خط فرمان با سرویس Copr تعامل داشته باشید.
ابتدا باید احراز هویت را پیکربندی کنید (بخش احراز هویت را در زیر ببینید).
گزینهها (OPTIONS)
-h, --help
--version
--config
فهرست اقدامات (ACTION LIST)
list [username|@groupname]
create
delete
build
status
cancel
download-build
modify
regenerate-repos
add-package-*
edit-package-*
list-packages
list-package-names
get-package
delete-package
reset-package
build-package
mock-config
edit-permissions
list-permissions
request-permissions
اقدامات پروژه (PROJECT ACTIONS)
copr-cli create [options]
usage: copr-cli create [-h] --chroot CHROOTS [--repo REPOS] [--initial-pkgs PKGS] [--description DESCRIPTION] [--instructions INSTRUCTIONS] [--disable_createrepo DISABLE_CREATEREPO] [--enable-net {on,off}] [--unlisted-on-hp {on,off}] [--persistent] [--auto-prune {on,off}] [--isolation {default, nspawn, simple}] name
--chroot
--repo
--initial-pkgs
--description
--instructions
--disable_createrepo
--enable-net
--unlisted-on-hp
--persistent
--auto-prune
--isolation ISOLATION
name
copr-cli modify [options]
usage: copr-cli modify [-h] [--repo REPOS] [--chroot CHROOTS] [--description DESCRIPTION] [--instructions INSTRUCTIONS] [--disable_createrepo DISABLE_CREATEREPO] [--enable-net {on,off}] [--unlisted-on-hp {on,off}] [--auto-prune {on,off}] [--isolation {default, nspawn, simple}] name
تنها ویژگیهای مشخصشده پروژه را تغییر میدهد.
--repo
--chroot
--description
--instructions
--disable_createrepo
--enable-net
--unlisted-on-hp
--auto-prune
--isolation ISOLATION
name
copr-cli regenerate-repos [options]
usage: copr-cli regenerate-repos [-h] copr
copr
اقدامات ساخت (BUILD ACTIONS)
copr-cli build [options]
usage: copr-cli build [-h] [-r, --chroot CHROOTS] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] [--isolation {default, nspawn, simple}] [--enable-net {on,off}] copr_repo PKG [PKG ...]
-r, --chroot
--exclude-chroot
--memory
--timeout
--nowait
--background
--isolation ISOLATION
--enable-net
copr_repo
PKG
copr-cli uploadrpm [options]
usage: copr-cli uploadrpm [-h] [-r, --chroot CHROOTS] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] copr_repo RPM
انتشار یک فایل RPM محلی که از قبل ساخته شده است مستقیماً در یک پروژه، بدون نیاز به اجرای مرحله ساخت SRPM.
برای مشاهده آرگومانها، دستور copr-cli build در بالا را ببینید.
RPM
copr-cli buildpypi [options]
usage: copr buildpypi [-h] [-r, --chroot CHROOTS] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [--background] [--with-deps] [--pythonversions [VERSION [VERSION ...]]] [--packageversion PYPIVERSION] --packagename PYPINAME project
--pythonversions [VERSION [VERSION ...]]
--packageversion PYPIVERSION
--packagename PYPINAME
--with-deps
برای سایر آرگومانها، دستور copr-cli build در بالا را ببینید.
copr-cli buildscm [options]
usage: copr buildscm [-h] --clone-url CLONE_URL [--commit COMMITTISH] [--subdir SUBDIRECTORY] [--spec SPEC] [--type {git,svn}] [--method {rpkg,tito,tito_test,make_srpm}] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [-r CHROOTS] [--background] copr_repo
ساخت بسته از یک مخزن Git/DistGit/SVN.
--clone-url CLONE_URL
--commit COMMITISH
--subdir SUBDIRECTORY
--spec SPEC
--type TYPE
--method METHOD
برای سایر آرگومانها، دستور copr-cli build در بالا را بررسی کنید.
copr-cli download-build [options]
usage: copr-cli download-build [-h] [-d, --dest DESTINATION] [-r, --chroot CHROOT] build_id
build_id
-d, --dest
-r, --chroot
copr-cli delete-build [options]
usage: copr delete-build [-h] build_id [build_id ...]
build_id
مثالها (EXAMPLES)
copr-cli build myproject some.src.rpm copr-cli build someone_else/project some.src.rpm copr-cli build -r fedora-24-x86_64 -r fedora-24-i386 "@somegroup/project" some.src.rpm
اقدامات CHROOT (CHROOT ACTIONS)
copr-cli edit-chroot [options] coprchroot
usage: copr edit-chroot [-h] [--upload-comps FILEPATH | --delete-comps] [--packages PACKAGES] [--repos REPOS] [--isolation {default, nspawn, simple}] coprchroot
ویرایش coprchroot مشخصشده.
coprchroot
--upload-comps FILEPATH
--delete-comps
--packages PACKAGES
--repos REPOS
--isolation ISOLATION
copr-cli get-chroot coprchroot
usage: copr get-chroot [-h] coprchroot [--output-format {json, text, text-row}]
چاپ اطلاعات chroot مشخصشده.
coprchroot
--output-format FORMAT
اقدامات مجوز (PERMISSION ACTIONS)
copr-cli edit-permissions [options]
usage: copr-cli edit-permissions [-h] [--admin USERNAME[=VALUE]] [--builder USERNAME[=VALUE]] PROJECT
ویرایش نقشها/مجوزها در یک پروژه copr.
PROJECT
--admin USERNAME[=VALUE]
--builder USERNAME[=VALUE]
copr-cli list-permissions [options]
usage: copr-cli list-permissions [-h] PROJECT
چاپ نقشها/مجوزهای پروژه copr.
PROJECT
copr-cli request-permissions [options]
usage: copr-cli request-permissions [-h] [--admin [VALUE]] [--builder [VALUE]] PROJECT
درخواست (یا رد) نقش خود در پروژه copr.
PROJECT
--admin [VALUE]
--builder [VALUE]
اقدامات بسته (PACKAGE ACTIONS)
copr-cli add-package-pypi [options]
usage: copr add-package-pypi [-h] [--pythonversions [VERSION [VERSION ...]]] [--packageversion PYPIVERSION] --packagename PYPINAME --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] project
افزودن بسته از نوع منبع PyPI.
--pythonversions [VERSION [VERSION ...]]
--packageversion PYPIVERSION
--packagename PYPINAME
--name PKGNAME
--webhook-rebuild {on,off}
--chroot-denylist CHROOT_DENYLIST
copr-cli edit-package-pypi [options]
usage: copr edit-package-pypi [-h] [--pythonversions [VERSION [VERSION ...]]] [--packageversion PYPIVERSION] --packagename PYPINAME --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] project
ویرایش تعریف و نوع منبع یک بسته موجود. گزینهها با add-package-pypi مشترک هستند.
copr-cli add-package-scm [options]
usage: copr add-package-scm [-h] --clone-url CLONE_URL [--commit COMMITTISH]
[--subdir SUBDIRECTORY] [--spec SPEC]
[--type {git,svn}]
[--method {rpkg,tito,tito_test,make_srpm}] --name
PKGNAME [--webhook-rebuild {on,off}]
[--chroot-denylist CHROOT_DENYLIST]
copr
Add package of SCM source type.
--clone-url CLONE_URL::
clone url to a project versioned by Git or SVN, required
--commit COMMITISH::
branch name, tag name, or git hash to be built
--subdir SUBDIRECTORY::
relative path from the repo root to the package content
--spec SPEC::
relative path from the subdirectory to the .spec file
--type TYPE::
Specify versioning tool. Default is 'git'.
--method METHOD::
Srpm build method. Default is 'rpkg'.
--name PKGNAME::
Name of the package to be edited or created
--webhook-rebuild {on,off}::
Enable auto-rebuilding
--chroot-denylist CHROOT_DENYLIST::
Comma-separated list of wildcard patterns of chroots to exclude from
builds, e.g. 'fedora-*,epel-*-i386'
`copr-cli edit-package-scm [options]`
usage: copr edit-package-scm [-h] --clone-url CLONE_URL [--commit COMMITTISH] [--subdir SUBDIRECTORY] [--spec SPEC] [--type {git,svn}] [--method {rpkg,tito,tito_test,make_srpm}] --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] copr
ویرایش بسته از نوع منبع SCM.
copr-cli add-package-rubygems [options]
usage: copr add-package-rubygems [-h] [--gem GEM] --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] project
افزودن بسته از نوع منبع RubyGems.
--gem GEM
--name PKGNAME
--webhook-rebuild {on,off}
--chroot-denylist CHROOT_DENYLIST
copr-cli edit-package-rubygems [options]
usage: copr edit-package-rubygems [-h] [--gem GEM] --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] project
ویرایش تعریف و نوع منبع یک بسته موجود. گزینهها با add-package-rubygems مشترک هستند.
copr-cli add-package-custom [options]
usage: copr add-package-custom [-h] --script SCRIPT [--script-chroot SCRIPT_CHROOT] [--script-builddeps SCRIPT_BUILDDEPS] [--script-resultdir SCRIPT_RESULTDIR] [--script-repos SCRIPT_REPOS] --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] [--max-builds MAX_BUILDS] [--timeout TIMEOUT] project
افزودن بسته از نوع منبع Custom.
--script SCRIPT
--script-chroot SCRIPT_CHROOT
--script-builddeps SCRIPT_BUILDDEPS
--script-resultdir SCRIPT_RESULTDIR
--script-repos SCRIPT_REPOS
--name PKGNAME
--webhook-rebuild {on,off}
--chroot-denylist CHROOT_DENYLIST
--max-builds MAX_BUILDS
--timeout TIMEOUT
copr-cli edit-package-custom [options]
usage: copr edit-package-custom [-h] --script SCRIPT [--script-chroot SCRIPT_CHROOT] [--script-builddeps SCRIPT_BUILDDEPS] [--script-resultdir SCRIPT_RESULTDIR] [--script-repos SCRIPT_REPOS] --name PKGNAME [--webhook-rebuild {on,off}] [--chroot-denylist CHROOT_DENYLIST] [--max-builds MAX_BUILDS] [--timeout TIMEOUT] project
ویرایش تعریف و نوع منبع یک بسته موجود. گزینهها با add-package-custom مشترک هستند.
copr-cli list-packages [options]
usage: copr list-packages [-h] [--with-latest-build] [--with-latest-succeeded-build] [--with-all-builds] [--output-format {json, text, text-row}] project
فهرست کردن تمام بستههای موجود در پروژه دادهشده در قالب json.
--with-latest-build
--with-latest-succeeded-build
--with-all-builds
--output-format FORMAT
copr-cli list-package-names [options]
usage: copr list-package-names [-h] project
فقط فهرست کردن نام بستهها در پروژه دادهشده خط به خط.
copr-cli get-package [options]
usage: copr get-package [-h] --name PKGNAME [--with-latest-build] [--with-latest-succeeded-build] [--with-all-builds] [--output-format {json, text, text-row}] project
مشابه list-packages است اما فقط یک بسته را مستقیماً بهصورت ساختار json برمیگرداند (بدون قرار گرفتن درون لیست).
--output-format FORMAT
copr-cli delete-package [options]
usage: copr delete-package [-h] --name PKGNAME project
حذف بسته و تمام ساختهای آن از پروژه دادهشده.
copr-cli reset-package [options]
usage: copr reset-package [-h] --name PKGNAME project
پاک کردن منبع پیشفرض یک بسته و نوع منبع آن (تمام تنظیمات بسته پس از فراخوانی این دستور از بین میروند!).
copr-cli build-package [options]
usage: copr build-package [-h] [--memory MEMORY] [--timeout TIMEOUT] [--nowait] [-r CHROOTS] --name PKGNAME project
ایجاد یک ساخت جدید برای بسته دادهشده بر اساس تعریف منبع آن.
--name PKGNAME
برای سایر آرگومانها، دستور copr-cli build در بالا را ببینید.
copr-cli mock-config [options]
usage: copr mock-config [-h] project chroot
دریافت نمایه mock (مشابه با koji mock-config) و چاپ آن در خروجی استاندارد. پیکربندی ممکن است کمی با پیکربندی واقعی mock مورد استفاده سازندگان Copr متفاوت باشد، اما برای اشکالزدایی اولیه (مثلاً با mock --shell) به اندازه کافی مشابه است.
مثالها (EXAMPLES)
copr-cli add-package-tito myproject --name pkgname --git-url http://github.com/clime/example.git --test on
copr-cli get-package myproject --name pkgname
copr-cli build-package myproject --name pkgname --nowait --timeout 10000 -r fedora-23-x86_64
copr-cli delete-package myproject --name pkgname
copr-cli mock-config myproject fedora-rawhide-x86_64
وضعیت خروج (EXIT STATUS)
در حالت عادی، کد خروج در صورت موفقیت همه چیز 0 است. اما در صورت بروز خطا، مقادیر زیر ممکن است بازگردانده شوند:
1 - درخواست نامعتبر مانند نام اشتباه پروژه، دسترسیهای ناکافی و غیره. همچنین ممکن است زمانی رخ دهد که کاربر عملیات را متوقف کند در حالی که نباید متوقف میکرد.
2 - آرگومانهای دادهشده نادرست هستند.
3 - پیکربندی نامعتبر است یا وجود ندارد.
4 - فرآیند ساخت شکست خورد یا لغو شد.
5 - خطای ارتباطی میان Cli و سرور. این مشکل احتمالاً نشاندهنده اشکال در برنامه است و باید گزارش شود.
6 - خطای پیکربندی.
7 - احراز هویت با سرور Copr با شکست مواجه شد.
احراز هویت (AUTHENTICATION)
کلاینت Copr از احراز هویت مبتنی بر توکن و GSSAPI پشتیبانی میکند.
برای دریافت توکن API از صفحه https://copr.fedorainfracloud.org/api بازدید کنید. این توکن باید در پرونده پیکربندی ~/.config/copr با قالب زیر ذخیره شود:
[copr-cli] username = msuchy login = Y57wcg==##fkfaxbkjhuoiebfafadl token = vbfseelqdebzedukgombekmuvbkqwo copr_url = https://copr.fedorainfracloud.org # expiration date: 2023-01-01
توجه داشته باشید که توکنهای API دارای تاریخ انقضا هستند!
برای فعالسازی GSSAPI نیاز به دریافت یک بلیت کربروس (Kerberos ticket) دارید. اگر میخواهید با Fedora Copr کار کنید، میتوانید دستور زیر را اجرا کنید:
$ fkinit Enter your password and OTP concatenated. (Ignore that the prompt is for only the token) Enter OTP Token Value: <your password + OTP token>
برای کار با یک نمونه متفاوت (غیر از Fedora Copr)، بلیت را به روش متفاوتی دریافت خواهید کرد و همچنان باید یک پرونده پیکربندی داشته باشید که به copr_url مناسب اشاره کند:
$ kinit username@EXAMPLE.COM $ cat ~/.config/copr [copr-cli] copr_url = https://copr.example.com
کلاینت Copr بهطور داخلی از پایتون API استفاده میکند، برای اطلاعات بیشتر نگاهی به صفحه https://python-copr.readthedocs.io/en/latest/ClientV3.html#example-usage بیندازید.
استفاده از نمونه دیگر COPR (USING DIFFERENT COPR INSTANCE)
اگر قصد دارید کلاینت copr را در برابر نمونهای غیر از نمونه پیشفرض Copr اجرا کنید، توکن API در صفحه http://YOUR.COPR.URL/api در دسترس است. میتوانید پرونده پیشفرض ~/.config/copr خود را جایگزین کنید، یا از پرونده جایگزین همراه با یک نام مستعار پوسته استفاده نمایید:
alias your_copr='copr --config ~/.config/your-copr'
که درون پروفایل شما درج شده باشد.
نویسندگان (AUTHORS)
Miroslav Suchý <msuchy@redhat.com>, clime <clime@redhat.com>
| 08/12/2026 | copr |