- Fixes
from_config
call that messed up the headers attribute.
No significant changes.
- Added experimental support for Python 3.13
- Added experimental support for Python 3.13
- Added memoization to CLI auth provider. This helps to reuse a retrieved oauth token for the lifetime of the process.
- Changed the way OAuth2 Client Credentials are provided to give the user some choice over the authentication to use.
The new parameters
--client-id
and--client-secret
were added and--username
,--password
are now restricted to HTTP Basic.
- Removed the prompt for a username.
Starting with this release the user needs to provide the username in the settings, or via
--username
to allow http basic auth. If no authentication is needed or another authentication mechanism should be used, it can be omitted.
- Added
from_config
constructor toPulpContext
class. #1060
- Fixed sending no scope instead an empty scope when using the
OAuth2ClientCredentialsAuth
authentication class. #1050 - Fixed the "list" commands to show the notification about not displaying all items when it shouldn't and the other way around. #1068
- Addressed some edge-case failures in the oauth2-client workflow.
- Fixed regressions in the auth selection algorithm of
AuthProviderBase
. In particular, proposals requiring multiple mechanisms are ignored for now instead of considering each constituent individually, "HTTP Bearer" and other IANA schemes are no longer interpreted as "HTTP Basic" and the empty proposal rightfully reflects no needed authentication. - Use BasicAuth for token retrieval to comply with RFC6749.
No significant changes.
- Fixed the "list" commands to show the notification about not displaying all items when it shouldn't and the other way around. #1068
No significant changes.
No significant changes.
No significant changes.
- Fixed regressions in the auth selection algorithm of
AuthProviderBase
. In particular, proposals requiring multiple mechanisms are ignored for now instead of considering each constituent individually, "HTTP Bearer" and other IANA schemes are no longer interpreted as "HTTP Basic" and the empty proposal rightfully reflects no needed authentication.
No significant changes.
- Addressed some edge-case failures in the oauth2-client workflow.
- Added the following filters to
pulp rpm content list
:--arch-contains
--arch-startswith
--name-contains
--name-startswith
--release-contains
--release-startswith
#687
- Added support to OAuth2 ClientCredentials grant flow as authentication method. This is tech preview and may change without previous warning. #926
- Added commands for composite and header content guards. #969
- Fix fake mode for uploading content.
- Added contexts for composite and header content guards. #969
- Added a batched
list_iterator
added to entity context. - Added a repository scope to
PulpContentContext
to allow to operate on "content in a repository" in a natural way. - Allow to pass limit=0 to EntityContext.list to fetch all entities.
- Fixed an error where safemode wrongly complained to be in
fake_mode
. #1037 - Added missing
defaults
argument toconverge
. - Fixed a bug where
create
always returned the first entry of created resources. Where possible, it now compares the results withHREF_PATTERN
to select the resource to return. - Fixed the api spec of the RPM copy command so it does not collide with other copy implementations.
No significant changes.
No significant changes.
No significant changes.
- Fixed an error where safemode wrongly complained to be in
fake_mode
. #1037
- Fix fake mode for uploading content.
- Fixed a bug where
create
always returned the first entry of created resources. Where possible, it now compares the results withHREF_PATTERN
to select the resource to return. - Fixed the api spec of the RPM copy command so it does not collide with other copy implementations.
- Expanded on options available to
rpm content -t package upload
. #994 The user can now:- Upload an entire directory of RPMs.
- Choose to have them added to their desired destination as a single new repository-version.
- Choose to have a new Publication created at the end of the uploads.
- Fixed the interactive config generation in the face of options allowing multiple values. #1008
- Fixed some docs pages and improved the table of contents.
- Added
converge
to thePulpEntityContext
to allow converging on a desired entity state. - Implemented a
fake_mode
flag on thePulpContext
that indicates to users of the context that modifying operations should not be carried out, but faked. This will imply thesafe_calls_only
flag in theapi_kwargs
that will serve as a safeguard for any POST, PUT, PATCH or DELETE that still made it through. ANotImplementedFake
exception will be issued in that case.
- Added the "pulp rpm prune-packages" command to support new RPM feature. See pulp_rpm#2909 for details. #979
- Added "pulp rpm copy --config --dependency-solve" support. #990
- Don't allow requests-2.32 due to https instability issues with that release. #985
- A provided "Authorization" header will no longer be overruled by other authentication mechanisms.
- Fixed "Cannot use both 'auth' and 'cert'" error when trying to use pulp-cli with cert auth.
- Deprecated
settings.toml
in favor ofcli.toml
in$XDG_CONFIG_HOME
for settings.
- Added
pass_view_set_context
decorator to lookupPulpViewSetContext
objects. - Added an automatic PR labeler for "no-issue", "no-changelog", "multi-commit", "wip" and "cherry-pick". It is no longer necessary to put the [noissue] tag in to commits without a link to an issue. Instead, the reviewer should take note of the "noissue"-label and decide whether to ask for one.
- Fixed the logic to use requests defaults for tls verification.
- Removed unused (and undocumented)
isatty
attribute fromPulpContext
.
- Added a
PulpViewSetContext
to represent a view set not attached to a specific type of entity. Accordingly,PulpEntityContext
should only be used when that API is defined by aNamedModelViewset
.
No significant changes.
No significant changes.
No significant changes.
No significant changes.
- Don't allow requests-2.32 due to https instability issues with that release. #985
No significant changes.
No significant changes.
No significant changes.
- Fixed "Cannot use both 'auth' and 'cert'" error when trying to use pulp-cli with cert auth.
No significant changes.
No significant changes.
- Fixed the logic to use requests defaults for tls verification.
No significant changes.
No significant changes.
- Added CLI plugin information to
pulp --version
command. - Added
pulp debug has-cli-plugin
command. - Added
pulp debug ipython
command to drop into a python shell.
- Added validation to see if
base_url
in the config looks useful. #588 - Fixed an issue where passing
usename=None
inapi_kwargs
was handled different than not providing it at all.
- Added the structure for
https://staging-docs.pulpproject.org
and populated it with existing content. #903
- Removed
--min
and--max
parameters frompulp debug has-plugin
. Use--specifier
instead. - Removed deprecated
--fields
and--exclude-fields
options frompulp ansible content list
command. Use the--field
and--exclude-field
options instead. - Removed deprecated file and python content modification commands.
Use the
pulp {file,python} content ...
commands.
- CLI Plugins need to provide a
mount
function. This used to be an optional requirement. pulpcore.cli.common.context
andpulpcore.cli.core.context
are no longer available as a convenience export.repository_option
has been removed. Please userepository_lookup_option
instead.
- Added
add_user
andremove_user
toPulpGroupContext
.
- Added the structure for
https://staging-docs.pulpproject.org
and populated it with existing content. #903 - Improve the docs split for the pulp-glue architecture documentation.
- Removed
preprocess_body
fromPulpEntityContext
in favor ofpreprocess_entity
. - Removed deprecated
registered_repository_contexts
. Polymorpohic entity classes register themselves to theTYPE_REGISTRY
when providing thePLUGIN
andRESOURCE_TYPE
class attributes. - Removed optional
href
parameter from many verbs onPulpEntityContext
. The methods rely on theentity
orhref
properties to be preloaded. e.g.entity_ctx.update(href, body=body)
should be changed toentity_ctx.href = href; entity_ctx.update(body=body)
. - Removed unused
format
parameter fromPulpContext
.
No significant changes.
- Fixed the logic to use requests defaults for tls verification.
No significant changes.
No significant changes.
- Fixed an issue where passing
usename=None
inapi_kwargs
was handled different than not providing it at all.
No significant changes.
- Add
plugins
configuration option to select which plugins to load. #291 - Added import export support of python content. #609
- Added support for the dbus secret service to make use of password managers. #821
- Added
--header
parameter to allow passing an arbitrary number of custom headers along with every request. #889
- User-entered order of parameters no longer matters for repository version commands. #650
- Fixed a regression introduced in
get_translations
. #874 - Fixed the distribution of extra files with the package. This should fix both type annotations as well as translations.
- Better separate the concepts of cli and glue in the architecture docs.
- Dropped support for python 3.6 and 3.7.
- Added
auth
toapikwargs
so you can plug in anyrequests.auth.AuthBase
. #821 - Added
auth_provider
toapi_kwargs
to allow flexible authentication schemes driven by the openapi3 specs.
- Added a missing check for uniqueness on entity lookup. #894
- Fixed the distribution of extra files with the package. This should fix both type annotations as well as translations.
- Fixed the style to display the type of objects in the code reference docs.
- Dropped support for python 3.6 and 3.7.
- Fixed a regression introduced in
get_translations
. #874
No significant changes.
- Fixed the distribution of extra files with the package. This should fix both type annotations as well as translations.
- Fixed the distribution of extra files with the package. This should fix both type annotations as well as translations.
- Switched the buildsystem from using
setup.py
to usingpyproject.toml
. - Ansible Collection upload now uses the Pulp V3 API and uploading directly to a repository with
--repository
. #844 - Added support for
--checksum-type
option (combination of--package-checksum-type
and--metadata-checksum-type
) when creating rpm publications and configuring rpm repository publish settings. #850
- Fixed a bug where the filenames on uploads were not being sent. #842
- Remove dependency on
pkg_resources
that failed some installations but is deprecated anyway. #865
- Improved
Developer Material/Architecture
section by adding clarification aboutpulp-glue
, version guards andpulp_option
factory. #836 - Clarified how to handle version specifiers when testing the CLI for unreleased plugin versions (.dev). #852
- Added information how to use pipx for installation.
- Marked option
--sqlite-metadata
onpulp rpm repository update/create
unavailable forpulp_rpm>=3.25.0
, as it was removed there. #831
- Added version restriction to prevent the use of
sqlite_metadata
attribute on Repository and Publication contexts forpulp_rpm>=3.25.0
. #831 - Adjusted to
pulp_rpm>=3.25
no longer allowing publishing repositories with md5, sha1, or sha224 checksums. #851
- Added the ability to reclaim disk space (cmd: 'pulp repository reclaim'). #620
- Added
--repo-config
option to the rpm repository and publication.
- Arguments --gpgcheck and --repo-gpgcheck in creating a rpm repository no longer fail to convert to integer. #677
- Fixed a crash in
pulp domain
when a default value for--domain
was provided in the config file. #769 - Fixed a bug where not all commands of a command group were listed in the help and available to the auto-completion. #781
- Added a version select widget to docs.
- Added reference docs for
pulpcore.cli.common.generic
.
- Added 'PulpGenericRepositoryContext' class to handle repository commands not available with subtypes. #620
- Added
repo_config
option PluginRequirement checks to thePulpRpmRepositoryContext
andPulpRpmPublicationContext
. - Added parameter
pulp_href
toPulpRepositoryVersionContext
andnumber
toPulpRepositoryContext.get_version_context
. - Use the labels api starting with
pulpcore
3.34.
- Add API reference docs for pulp-glue. #808
- Added translation files machinery for pulp-glue. #634
- Added a version select widget to docs.
No significant changes.
No significant changes.
No significant changes.
- Fixed a crash in
pulp domain
when a default value for--domain
was provided in the config file. #769
No significant changes.
No significant changes.
No significant changes.
- Narrow down click version given a breaking change on 8.1.4. #715
- Pinnend PyYAML version to fix installation issues. #724
- Made api-quirks idempotent to prevent them from failing once the original api is fixed. #752
- Added role capability to rpm contexts. #630
- Added decorator
api_quirk
to declare version dependent fixes to the api spec. #658 - Added
PulpUpstreamPulpContext
. #699
- Fixed a crash in
pulp domain
when a default value for--domain
was provided in the config file. #769
No significant changes.
- Added a version select widget to docs.
No significant changes.
- Made api-quirks idempotent to prevent them from failing once the original api is fixed. #752
- Pinnend PyYAML version to fix installation issues. #724
- Narrow down click version given a breaking change on 8.1.4. #715
- Add '--metadata-signing-service' option to rpm. #605
- Added
PEP-440
version specifiers toPluginRequirement
andpulp debug has-plugin
. #681 - Added
--content-guard
option to distributions. #697
- Renamed
domains
command group todomain
to follow the cli convention. #685 - Fixed some tests that made assumptions that worked, but were nonetheless incorrect. #692
- Deprecate the use of
min
andmax
inPluginRequirement
. #681
- Made api-quirks idempotent to prevent them from failing once the original api is fixed. #752
- Pinnend PyYAML version to fix installation issues. #724
- Narrow down click version given a breaking change on 8.1.4. #715
- Fixed some tests that made assumptions that worked, but were nonetheless incorrect. #692
No significant changes.
- Added a
pulp repository version list
command. This allows to find repository versions containing content. #631 - Added
HREF_PATTERN
toPulpSigningServiceContext
class. #653 - Added more digests lookups to artifacts #662
- Added support for x509 and rshm cert guards. #673
- Fixed the generic-publications command. #665
- Fixed the installation from source instructions to include the glue layer. #654
- Added
pulp-cli-maven
to the list of known plugins. #656
- Removed deprecated commands
pulp orphans
andpulp debug task-summary
. #670
- Pinnend PyYAML version to fix installation issues. #724
- Made api-quirks idempotent to prevent them from failing once the original api is fixed. #752
- Narrow down click version given a breaking change on 8.1.4. #715
- Added support for 3.23 multi-tenancy feature Domains. #642
- Added known plugin requirements to the glue library layer. #645
- Reimport some missing symbols into their old location for compatibility. #635
- Fixed problem where rpm-repository-sync ignored --no-optimize. #648
- Reimport some missing symbols into their old location for compatibility. #635
- Updated the
--requirements
option for ansible remotes to handle both files and strings. #230 - Made all commands referencing entities accept both the HREF and name of the resource via the same command option.
For example, users can additionally use the
--repository
option inrepository show
commands. #475 - Added remove-image command to pulp_container. #566
- Made the context layer independent of click to allow it being used like a library. #597
- Exposed
treeinfo
as an option forsync --skip-type
for RPM repositories. #614 - Added the
pulp task summary
command as a replacement forpulp debug task-summary
. #625 - Added new client library
pulp-glue
as a spin off of thepulp-cli
. #628
- Deprecated
--fields
and--exclude-fields
onpulp ansible content list
in favor of--[exclude-]field
. #602
- Removed
pass_*_context
helpers from context layer. They moved to generic layer in 0.15.0. #597 - Deprecated
pulp debug task-summary
in favor ofpulp task summary
. #625
- Added
--max-retries
option to remotes. #227 - Added the ability to set labels directly on create and update. #274
- Added the
--repository
parameter to some upload commands. #385 - Introduced the option
--wait
for thepulp task-group show
command. By using this option, details of the task group will be shown only after waiting for all related tasks to finish. #459 - Added
--optimize
and--sync-options
to therpm repository sync
subcommand. #462 - Added
pulp debug openapi schema
andpulp debug openapi schema-names
to investigate reusable schemas in the api. Renamed the originalpulp debug openapi schema
command topulp debug openapi spec
. #534 - Added support for adjusting list output:
--ordering
,--field
,--exclude-field
. #542 - Added task filtering options. #543
- Added
--cid
option and started reusing a recieved correlation id in all requests made by the same command. #568
- Allowed remote timeout and rate limiting parameters to be nulled by passing
""
. #227 - The
openapi
layer now handles all instances ofrequests.RequestException
. This will help to give a better error message for e.g. missing schema in the--base-url
parameter. #466 - Fixed an error raised when specifying no HREF value for some of the commands. #545
- Fixed an assertion error when canceling tasks by state. #561
- Fixed
KeyError: 'missing_field'
error when required fields are not supplied. #572 - Correctly identified base_path as required when creating a Distribution. (affected rpm, file, and python distribution create) #574
- Added
pulp_container
repository list/add/remove content commands. #422 - Added role management commands to file commands. #454
- Added role management to container subcommands. #468
- Added support for ULN remotes. #470
- Added ansible signature command. #481
- Added ansible signature list/read/upload commands. #484
- The
--type
option on the repository content subgroup has moved back one spot. To list all the content types in a repository use the--all-types
flag on the list command. #492 - Added container repository copy-tag and copy-manifest commands. #497
- Extended "rpm content" to cover all of the RPM content-types. #505
- Added commands for the redirecting content guard. #512
- Started using uploads directly to create file content of a bigger size with pulpcore >= 3.20. #514
- Added global publication list command. Also, added new --repository filter for publication list available for pulpcore>=3.20. #515
- Added global distribution list command. #517
- Added global remote list command. #518
- Added
--repository
option to ansible collection signature upload and--gpgkey
to ansible repository. #532
- Fixed bug, where the failure to load config file due to the lack of file permissions lead to a crash. Now those files are simply ignored. #509
- Fixed the heuristics for the
PARTIAL_UPDATE_ID
workaround. #529 - Fixed uploading content for files smaller than the chunk size. #535
- Marked
group permission
command unusable with pulpcore 3.20. #501
- Fixed the heuristics for the
PARTIAL_UPDATE_ID
workaround. #529
- Added content list/show commands for container blob/manifest/tag content types. #421
- Added tag/untag commands to add and remove tags from images in container repositories. #423
- Added a
--task-group
filter parameter totask list
. #451 - Added the
api_root
setting to allow communicating with a pulp installation on a nonstandard path. #453 - Allow to fetch the config profile from the environment variable
PULP_CLI_PROFILE
. #463
- Fixed missing help text on path option for ACS create commands. #446
- Fixed a bug in reporting the failure of a task if the reason was not an exception in the task code. #464
- Fix rpm distribution update command failing when trying to enable/disable auto-distribute. #472
- Add default help text for options taking a generic resource argument. #387
- Introduced
ID_PREFIX
onPulpEntityContext
to generate most operation ids. #444 - Added
needs_capability
toEntityContext
so context member function can require capabilities. #465
- Allow path to certificate bundle to be specified via
PULP_CA_BUNDLE
,REQUESTS_CA_BUNDLE
orCURL_CA_BUNDLE
environment variables. Use proxy settings from environment. #95 - Users can now specify --client-cert, --ca-cert, and --client-key using @filepath. #220
- Added facilities to create, load and distribute translations. #328
- Added upload and show commands for Ansible Roles and Collection-Version content #362
- Added content management commands for Ansible repositories #363
- Added commands to manage roles and their association with users and groups. Added commands to add and remove users. #382
- Added
--content-hrefs
and--protection-time
options to orphan cleanup command. #398 - Added support for the comps.xml upload to the rpm plugin. #406
- Added remote option for Python distributions. #417
- Added a customized user agent to api calls. #426
- Added support for "tasks purge". #430
- Added
reset
command to access policies. Changed--permissions-assignment
to--creation-hooks
to follow pulpcore 3.17 naming. #438 - Add a generic command group for object permission management. Added object permission management to tasks, groups and RBAC content guards. #439
- Fixed a bug where in the version lookup, where "--version 0" lead to latest. #415
- Updated docs home page to reflect current plugin support of the CLI. #394
- Added Supported Worklows page to detail the workflows and features of the CLI. #395
- Added some German translations. #328
======================
- Chunked artifact and content uploads now allow unit specifier in
--chunk-size
option #260 - Added rpm package content commands support. #284
- Added the ability to pass an href to a resource option. #315
- Added pulp file acs command. #324
- Added
--all
,--waiting
and--running
flags to allow bulk task cancel. #330 - Added commands for CRUD RBAC Content Guards. #352
- Added the ability to delete tasks. #376
- Added refresh command for pulp_file Alternate Content Sources. #377
- Added pulp_rpm Alternate Content Source commands. #378
- Added the openapi command group to debug to ease reading the schema. #384
- Fixed the referenced version with the
--version
parameter. #351 - Fixed nullable fields for rpm remote. #373
- Add installation instructions for plugins and a list of known plugins. #331
- Moved CHANGES.md to publish them along with the documentation. #336
- Reformatted CHANGES with Markdown syntax. #337
- Add a tabular view to the global options. #357
- Bumped required pulpcore version to >=3.11 and removed legacy workarounds. #380
- Added support to specify skip-types on rpm sync. #225
- Added lookup for a global config file
/etc/pulp/cli.toml
. #290 - Changed default config location to
<app-dir>/cli.toml
. The old file will still be read. #293 - Enable exports for ansible repositories. #302
- Added --sles-auth-token to rpm remote commands. #305
- Added ansible content list command. #327
- Added validation to some json input parameters. #255
- Fixed a bug in the docs publishing workflow. #286
- Unconditionally add the fake not namespaced
pulp_cli
to the distribution on pypi to make it able to be consumed bysetuptools<40
. #287 - Deprecate orphans delete command in favor of orphan cleanup and use new rest interface on
pulpcore>=3.14
. #297 - Changed the name of retained-versions to retain-repo-versions. #298
- Improved a confusing error message around pulp components. #299
- Added minimum of 1 to
--limit
option. #311
- Fixed a bug in the docs publishing workflow. #286
- Unconditionally add the fake not namespaced
pulp_cli
to the distribution on pypi to make it able to be consumed bysetuptools<40
. #287
- Change resource options to accept plugin and type along with the name. #158
- Added missing search options to publication list commands. #207
- Add a timeout parameter to specify the duration how long to wait for background tasks. #232
- Python remote fields
--includes/--excludes
can now be specified withrequirements.txt
files #240 - Updated RPM commands to be compatible with new 3.13 auto-publish changes #251
- Added generic content list command. #254
- Update the click dependency to 8.0.1. #256
- Added feature to bypass chunk uploading if the chunk size exceeds the file size. This speeds up the upload by about 30-40%. #262
- Added
--cid
option totask list
command to allow fitering by correlation id. #269 - Added allow-uploads/block-uploads option to python distribution commands #271
- Properly report timed out tasks. #232
- Use
find_packages
instead offind_namespace_packages
in setup to be compatible withsetuptools<39.2.0
. #248
- Disabled following of redirects and added better handling of response codes. #221
- Added
--force
as the inverse of--dry-run
and started to allowdry_run
in the settings. #236 - Added config validation to
config create
andconfig edit
. #239
- Fixed extra request when using the repository version option. #223
- Fix requirements file option for ansible collection remote commands. #226
- Properly truncate file before saving settings in
config edit
. #239
- Added support for autopublish and autodistribute in
pulp_file
andpulp_rpm
. #155 - Added a confirmation whether to continue with invalid config. #156
- Repository content commands are now nested under a new content subgroup. #171
- Added an interactive-shell mode to pulp-cli. #181
- Added
label
command to ansible distribution group. #185 - Added
signing-service
list
andshow
commands. #189 - Added new pulp python 3.2 remote options. #208
- Added
retained_versions
option to repository commands. #210 - Added the
task-group
subcommand. #211 - Added
mirror
flag support for pulp rpm repository sync. #212 - Added support for file paths for plan argument for migration plan create command. #213
- Improved the error message, when a required server component is missing. #184
- Repository add/remove/modify commands have now been deprecated. Please use the new content subgroup commands. #215
- Added the python command group. [#73](https:// github.com//issues/73)
- Distributions can now be listed with options
--base-path
and--base-path-contains
. #134 - Taught rpm/repository about the retain-package-versions attribute. #172
- Added the container namespace command group. #176
- In pulpcore 3.11, the component names changed to fix a bug. This ported
pulp-cli
to use the new names and provides dictionary namednew_component_names_to_pre_3_11_names
in thepulpcore.cli.common.context
module which provides new to old name mappings for a fallback support.pulp-cli
plugins can add to this list by importing and modifying that dictionary also. #153
- Made task state a choice option for pulp task list. #115
- Added support for pulp-2to3-migration. #133
- Added worker command. #144
- Added the ability to include multiple server profiles into the pulp cli config. #145
- Added config commands to manage pulp-cli's config. #111
- Added support for client certificate auth. #122
- Added
--href
options to address rpm resources. #124
- Improve handling of background option and ctrl-c with tasks. #85
- Added read capability to rpm remote. #125
- Moved the location of
--repository
option after the last command for version commands. #123
- Added label commands. #100
- Fixed missing
READ_ID
error for pulp file remote show. #107
- Basic CRUD support for Ansible repositories
- Basic CRUD for Ansible role remotes, use
-t role
after remote to select type - Basic CRUD for Ansible collection remotes, use
-t collection
after remote to select type - Sync roles/collections with
pulp ansible repository sync --name {repo_name} --remote {remote_name}
- Postponed all server calls to the point, where a command is ready to be performed. This allows to access all help screens even if there is no server available.
- Added subcommand to modify file repository with many content units in one command.
- Added update command for file distribution.
Initial release of pulp-cli.