1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-15 08:36:13 +01:00
Commit Graph

4081 Commits

Author SHA1 Message Date
c0c05319d0 Move removing control characters to output.sanitize_text() 2024-03-07 12:00:03 +01:00
474cbd21ce Migrate 'whois/user' command to obs_api.Person 2024-03-05 16:45:52 +01:00
88f7dc517b Extend output.print_msg() to accept 'error' and 'warning' values of 'to_print' argument 2024-03-05 16:45:52 +01:00
866d178345 Move print_msg() to the 'osc.output' module 2024-03-05 16:45:52 +01:00
27bf13a774 Update '-U/--user' option in 'maintainer' command to accept also an email address 2024-03-05 16:45:52 +01:00
9004d5a5ba Replace invalid 'if' with 'elif' in BaseModel.dict() 2024-03-05 16:45:52 +01:00
149c7f799f Add obs_api.Person class 2024-03-05 16:45:52 +01:00
36dd0401ee Remove a debug print 2024-03-05 15:50:44 +01:00
28326a185d Add XPathQuery class for translating keyword arguments to an xpath query 2024-03-05 10:06:21 +01:00
2129908dd6
Merge pull request #1502 from dmach/xmlmodel-request
Add Request and PackageSources XML models
2024-03-04 15:34:58 +01:00
d768eff371 Migrate core.create_submit_request() to obs_api.Request 2024-03-04 15:00:12 +01:00
9078bc257c Add obs_api.Request class for handling requests 2024-03-04 15:00:12 +01:00
e5370b9c0b Add obs_api.PackageSources class for handling OBS SCM sources 2024-03-04 15:00:12 +01:00
772509c023 Store apiurl in Project and Package instances 2024-03-04 15:00:12 +01:00
cd95478ac8 Implement total ordering on BaseModel 2024-03-04 15:00:12 +01:00
747eb0ec52 Allow storing apiurl in the XmlModel instances 2024-03-04 14:58:40 +01:00
9cce6dbb8e Allow retrieving default field value from top-level model 2024-03-04 14:58:40 +01:00
557d6ef868
Merge pull request #1500 from dmach/fix-buildinfo
Fix 'buildinfo' command
2024-03-04 09:24:35 +01:00
94d207fc91 Fix 'buildinfo' command to include obs:cli_debug_packages by default
Add '--no-debug-packages' option that disables the new behavior.
This makes the command consistent with the 'build' command.
2024-03-04 08:30:17 +01:00
4e928a4505 Fix processed node check in XmlModel 2024-02-29 09:26:28 +01:00
cc9c27f5b5 Clarify that 'rev' argument in Package is metadata revision 2024-02-29 09:22:42 +01:00
8b5bdb2a01 Fix 'buildinfo' command to send complete local build environment as the 'build' command does 2024-02-28 09:31:39 +01:00
88f2faf181
Merge pull request #1495 from dmach/xmlmodel-migrate-from-show_project_meta-show_package_meta
Migrate more code from show_project_meta() and show_package_meta() to xml models
2024-02-26 09:39:15 +01:00
f164258fb6
Merge pull request #1494 from adrianschroeter/fix_linkpac_on_scmsync
Support package linking of packages from scmsync projects
2024-02-26 09:30:07 +01:00
Atri Bhattacharya
78b07e6e1f Allow osc rpmlint to infer prj/pkg from CWD.
Makes `osc rpmlint` infer the project and package when working from a
locally checked out package dir, if two or fewer arguments are passed.
All four arguments are still required when called from a location that
is not an osc package working copy.

This makes the behaviour of `osc rpmlint` similar to `osc buildlogtail`.
2024-02-24 01:39:50 +05:30
6d692ac52b Migrate repo {list,add,remove} commands to obs_api.Project 2024-02-23 13:14:04 +01:00
7768684461 Fix BaseModel to convert dictionaries to objects on retrieving a model list 2024-02-23 13:14:04 +01:00
acc54919fc Fix BaseModel to always deepcopy mutable defaults on first use 2024-02-23 13:14:04 +01:00
aa6ccac69a Merge _private.project.ProjectMeta into obs_api.Project 2024-02-23 13:14:04 +01:00
2264eb9ce9 Add obs_api.Project.to_api() 2024-02-23 13:14:04 +01:00
f62b11ea86 Migrate core.show_package_disabled_repos() to obs_api.Package 2024-02-23 13:14:04 +01:00
f5b782edc8 Migrate core.Package.update_package_meta() to obs_api.Package 2024-02-23 10:30:15 +01:00
4a6f069a4c Remove core.setDevelProject() in favor of core.set_devel_project() 2024-02-23 10:30:15 +01:00
537dca3c7f Migrate core.get_repos_of_project() to obs_api.Project 2024-02-23 10:30:15 +01:00
0b1f98acb3 Migrate core.get_repositories_of_project() to obs_api.Project 2024-02-23 10:30:15 +01:00
d017a490a0 Migrate core.show_scmsync() to obs_api.{Package,Project} 2024-02-23 10:18:26 +01:00
af24f3c75a
Merge pull request #1349 from dmach/xmlmodel
Object wrappers for OBS XML
2024-02-23 10:15:05 +01:00
2616ca454e release 1.6.1 2024-02-23 09:45:57 +01:00
d4e698f874 Support package linking of packages from scmsync projects
It needs to remove the scmsync tag in package meta in that
case (when creating a new package meta based on source).

I didn't that global in replace_pkg_meta() on purpose since
this should be a case by case decision when it makes sense.
We could add this there via an option though.

There is another problem in the api that it delivers
package meta without title/description elements, but
it is not accepting it. This is submitted there
via a seperate pull request.
2024-02-22 17:17:15 +01:00
64760193ca
Merge pull request #1485 from dmach/xdg
Honor XDG_CONFIG_HOME and XDG_CACHE_HOME env vars
2024-02-22 11:01:24 +01:00
eab83d3612 Fix resolving config symlink to the actual config file 2024-02-22 10:20:28 +01:00
8fc1ad5220 Warn about ignoring XDG_CONFIG_HOME and ~/.config/osc/oscrc if ~/.oscrc exists 2024-02-22 10:20:28 +01:00
b03f5d3b86 Migrate core.set_devel_project() to obs_api.Package 2024-02-21 09:46:53 +01:00
ab36108871 Implement do_snapshot() and has_changed() methods to determine changes in BaseModel 2024-02-21 09:46:53 +01:00
00d2192bcd Migrate core.show_devel_project() to obs_api.Package 2024-02-21 09:46:53 +01:00
0dd1f526d8 Add XML models for Project and Package 2024-02-21 09:46:53 +01:00
e5774a5730 Add XmlModel class that encapsulates manipulation with XML 2024-02-21 09:46:53 +01:00
e8c19bd1b3
Merge pull request #1491 from dmach/fix-500-meta-attribute
Fix error 500 in running 'meta attribute <prj>'
2024-02-19 20:03:55 +01:00
dcef7fab23 Fix error 500 in running 'meta attribute <prj>' 2024-02-19 16:09:12 +01:00
dec4143e6c Fix core.slash_split() to strip both leading and trailing slashes 2024-02-14 14:31:39 +01:00
8e7f8fd415 Honor XDG_CONFIG_HOME and XDG_CACHE_HOME env vars 2024-02-14 14:24:04 +01:00
cff6a0ca3a Remove remaining string queries from makeurl() calls 2024-02-12 14:25:49 +01:00
556c97d7ee Move xml_indent, xml_quote and xml_unquote to osc.util.xml module 2024-02-12 09:27:30 +01:00
ff31a5cd4b
Merge pull request #1479 from dmach/branch-scmsync
Error out when branching a scmsync package
2024-02-09 14:30:31 +01:00
dbecb16404
Merge pull request #1476 from dmach/makeurl
Refactor makeurl(), deprecate query taking string or list arguments, drop osc_urlencode()
2024-02-09 14:28:06 +01:00
0f8a8430fc Remove all path quoting, rely on makeurl() 2024-02-09 13:26:37 +01:00
dcd147f52d Always use dict query in makeurl() 2024-02-09 13:26:37 +01:00
3f14cef53a Refactor makeurl(), deprecate query taking string or list arguments, drop osc_urlencode() 2024-02-09 13:26:37 +01:00
6688ffd5d9 Change 'osc wipe' command to use the new get_user_input() function.
Example:
>>> Really wipe '/var/tmp/build-root/openSUSE_Tumbleweed-x86_64'? [y/N]:
changed to:
>>> Really wipe '/var/tmp/build-root/openSUSE_Tumbleweed-x86_64'?
>>> y)yes / n)no (default=n):
2024-02-08 14:33:28 +01:00
52d014d24d New get_user_input() function for consistent handling of user input.
The available answers are provided in a dictionary and the prompt is
generated from them.
Also, answers are higlighted if the terminal supports it.
2024-02-08 14:33:28 +01:00
bce5be4661 Error out when branching a scmsync package 2024-02-07 13:52:58 +01:00
5662198d22 1.6.0 2024-01-25 09:49:14 +01:00
76a5432a7d Don't show meter in terminals that are not interactive 2024-01-24 15:47:37 +01:00
7d6eebeabb Refactor 'meter' module, use config settings to pick the right class 2024-01-24 15:47:37 +01:00
c7af0e458f Use Field.get_callback to handle quiet/verbose and http_debug/http_full_debug options 2024-01-24 15:47:37 +01:00
8a38a9da82 Implement get_callback that allows modifying returned value to the Field class 2024-01-24 15:47:37 +01:00
a8c7661627 Implement 'quiet' conf option 2024-01-24 15:47:37 +01:00
01036341d4
Merge pull request #1473 from dmach/nested-models
Support nested models + related fixes
2024-01-23 21:09:35 +01:00
0413179709 Fix Password.encode() on python < 3.8 2024-01-23 20:07:13 +01:00
7903ade2b4 Add support for List[BaseModel] type to Field class 2024-01-23 20:05:38 +01:00
ea0bf1bb60 Report class name when reporting an error during instantiating BaseModel object 2024-01-23 20:05:33 +01:00
b4a1b29f57 Fix exporting an empty model field in BaseModel.dict() 2024-01-23 20:05:28 +01:00
3baeb4b64e Fix initializing a sub-model instance from a dictionary 2024-01-23 20:05:24 +01:00
35433fc341 Implement 'Enum' support in models 2024-01-23 20:05:17 +01:00
86e06a341f Fix Field.origin_type for Optional types 2024-01-23 20:05:11 +01:00
472a56f3cf Fix 'linkdiff' command error 400: prj/pac/md5 not in repository 2024-01-16 09:57:37 +01:00
933040425c The 'token --trigger' command no longer sets '--operation=runservice' by default.
The operation is bound to the token on the server.
We no longer have to specify it during trigger.
If we still specify it, the only benefit is double-checking the
operation that is set on the client and verified on the server.
2024-01-15 10:06:43 +01:00
d0d25ff5de Change 'token --create' command to require '--operation' 2024-01-15 10:06:43 +01:00
ed48b9fca7
Merge pull request #1465 from dmach/boo1218170-git-working-copy
Fix traceback when running osc from an arbitrary git repo that fails to map branch to a project (boo#1218170)
2024-01-09 16:04:38 +01:00
116be57b53 Password can be an empty string (commonly used with ssh auth) 2024-01-09 11:11:52 +01:00
3f17dd0dd8 Fix traceback when running osc from an arbitrary git repo that fails to map branch to a project (boo#1218170) 2024-01-09 11:08:28 +01:00
82216c72b4 Implement reading credentials from environmental variables
Options for apiurls can be set via OSC_HOST_<ALIAS>_<OPTION>=...
This requires a configured alias in the config file.

Setting the default apiurl via OSC_APIURL=... was working already.
Also OSC_CONFIG= / --config= was already implemented to skip loading configuration entirely.

Options for the default apiurl can be now set via:
  OSC_USERNAME=...
  OSC_CREDENTIALS_MGR_CLASS=...
  OSC_PASSWORD=...

This, for example, makes running osc in containers with
credentials stored in environmental variables possible:
OSC_CONFIG= OSC_APIURL=<url> OSC_USERNAME=<user> OSC_PASSWORD=<password> osc ...
2024-01-08 15:21:45 +01:00
7d27b6d140 Fix credentials managers to consistently return Password 2024-01-08 15:21:45 +01:00
b41afde2c9 Allow starting with an empty config if --configfile is either empty or points to /dev/null 2024-01-08 15:21:45 +01:00
Dirk Müller
a0a7865ca1
Convert to using f-strings 2024-01-06 10:00:38 +01:00
b8d6c949c9 Drop unused 'exclude_unset' argument from BaseModel.dict() method 2024-01-04 10:20:58 +01:00
16cdc067a5 Store cached model defaults in self._defaults, avoid sharing references to mutable defaults 2024-01-03 21:22:30 +01:00
587c094f61 Limit model attributes to predefined fields by forbidding creating new attributes on fly 2024-01-03 21:21:38 +01:00
3c733387af Store model values in self._values dict instead of private attributes 2024-01-03 21:21:29 +01:00
31059f0f92
Merge pull request #1452 from adrianschroeter/productcompose
productcompose: Support building with updateinfo.xml data
2024-01-02 08:05:25 +01:00
c86093bc68
Allow -X HEAD on osc api requests as well
In some cases the exit code is all you want
2023-12-07 17:29:17 +01:00
498a392117 release 1.5.1 2023-12-04 15:05:14 +01:00
608fc76cd2 docs: Update models to avoid including lazy defaults in the rendered man pages
Lazy defaults may return different results under different circumstances
and we always want man pages rendered consistently.
2023-12-01 16:22:13 +01:00
7434a31a89 productcompose: Support building with updateinfo.xml data 2023-11-24 15:47:12 +01:00
Marco Strigl
138d5303e6 remove public route from osc 2023-11-22 14:33:06 +01:00
c662d70822 release 1.5.0 2023-11-22 08:55:15 +01:00
04f782a694
Merge pull request #1422 from dmach/rdiff-_project
Change 'rdiff' command to display diff for _project if no package is specified
2023-11-22 08:41:42 +01:00
c3bcc276a5 obsproduct got renamed to productcompose 2023-11-20 15:45:47 +01:00
a7731e5ec9 fix noinstall filtering of obsproduct builds 2023-11-17 16:59:40 +01:00
c79a3a57ff initial support for obsproduct build type 2023-11-16 11:10:27 +01:00
7fff395e7d
Merge pull request #1430 from dmach/virtualenv
Support installing osc into virtualenv
2023-11-15 13:02:53 +01:00
69a68b06b3 Fix conf.write_initial_config() to use read_file() instead of deprecated readfp() 2023-11-15 09:18:22 +01:00
d53b2981c8 Support installing osc into virtualenv 2023-11-03 10:21:42 +01:00
3d20497ce9 Disable preinstall images in rootless builds 2023-11-02 16:06:55 +01:00
7781367b1e release 1.4.4 2023-11-02 15:50:33 +01:00
15db3a092f Fix crash when there's no [general]/apiurl option in the config file 2023-11-02 13:44:46 +01:00
c790134aa4 Fix apiurl_aliases handling in OscOptions.__getitem__ 2023-10-24 00:33:21 +02:00
ea7bebf1f2 release 1.4.3 2023-10-19 15:02:47 +02:00
a2e7383eca Allow undefined fields in Options and HostOptions
Plugins seem to be using oscrc and osc.conf.config to store their config options.
All fields that are not known to osc are now stored in the 'extra_fields' dictionary
and handled in __getitem__() and __setitem__() as they were regular fields.
Such values are not checked for their types and the dictionary simply holds
strings obtained from oscrc or anything the plugins set through the python API.
2023-10-19 14:23:33 +02:00
ee5a1c476c release 1.4.2 2023-10-16 13:54:06 +02:00
bf0bbf3398
Merge pull request #1432 from dmach/fix-vc_export_env
Fix retrieving config values in core.vc_export_env()
2023-10-13 21:56:22 +02:00
dfbf8d8136
Merge pull request #1434 from dmach/restore-passx
Restore 'passx' host option that contains an obfuscated password
2023-10-13 21:55:40 +02:00
bacac66fd3 Restore 'passx' host option that contains an obfuscated password 2023-10-13 21:06:25 +02:00
0d239cc265 Change NoPBTextMeter to display no output at all 2023-10-13 20:36:55 +02:00
268424797a Fix retrieving config values in core.vc_export_env() 2023-10-13 20:34:09 +02:00
9067a803cc Fix retrieving the configured user in 'user' command
Testing if 'user' config value is present is not necessary,
because the 'username' field is mandatory in HostOptions
and there is also a check that prompts user to enter new credentials if
user is not set.
2023-10-13 20:23:26 +02:00
53968bf91c Fix retrieving a password in case a function returns another callable 2023-10-13 19:14:34 +02:00
225fea0e06 release 1.4.1 2023-10-10 20:06:27 +02:00
d678095d89 Fix core.change_request_state_template() to always return a string 2023-10-10 16:32:50 +02:00
c0e2f8c1a3 Always display apiurl when asking for credentials 2023-10-10 16:32:50 +02:00
61b5f7bebc Ask for new credentials when user is missing from an apiurl section in the config file 2023-10-10 16:32:50 +02:00
386c4e8b40 Fix testing revision for being empty
Revision 0 is a valid value, but conditions evaluate it as False along with None and "".
This change treats 0 as a proper revision.
2023-10-06 08:32:06 +02:00
90b821e777 Change 'rdiff' command to display diff for _project if no package is specified 2023-10-05 10:34:54 +02:00
62e4817ff5 release 1.4.0 2023-10-04 11:49:04 +02:00
a16654663b
Merge pull request #1415 from dmach/rootless-kvm-and-podman
Rootless kvm and podman
2023-10-04 09:12:18 +02:00
bd14f7e000
Merge pull request #1416 from adrianschroeter/keep_packages_locked
add support for keep_packages_locked on request revoke
2023-10-04 08:49:11 +02:00
ce72ffb225 Fix loading password from keyring 2023-10-03 09:12:28 +02:00
a6946587e1 Fix reading configuration from ENV 2023-09-29 09:54:50 +02:00
a33d4c2d41 Print a hint to clean the build root after a failed build 2023-09-29 09:53:59 +02:00
f6cb228242 Document that 'request revoke' command may need '--keep-packages-locked' option to avoid unlocking source packages 2023-09-29 08:33:55 +02:00
0848aba7b9 add support for keep_packages_locked on request revoke
jsc#OBS-134
2023-09-28 14:50:20 +02:00
41ce932673 Fix 'build' command to pass '--vm-type' option to the underlying build tool 2023-09-27 23:24:31 +02:00
47f32e6ef1 Update list of supported vm_type values in conf.Options.vm_type 2023-09-27 23:24:31 +02:00
28efb4396a Rename conf.Options.build_type to vm_type to be consistent with obs build and osc --vm-type option 2023-09-27 23:24:31 +02:00
88c2bf4fea Avoid adding a newline to prompt in 'wipe' command 2023-09-27 23:24:31 +02:00
8eb360234e Add rootless build support to 'build' command for 'kvm' and 'podman' vm types
To avoid filesystem permission collisions with the builds using su_wrapper,
use an alternative buildroot path that appends username to '/var/tmp/build-root' for the rootless builds.
2023-09-27 23:24:31 +02:00
2f1cb0edb1 Remove any duplicated code loading configuration from ENV
The current conf.get_config() function already handles loading from ENV.
Also, always use osc.build.calculate_build_root() instead of making a custom variable substitution.
2023-09-27 23:24:31 +02:00
ee725ff51b Fix a crash in 'Fix handling empty vm_type in Store.last_buildroot' when last_buildroot is empty 2023-09-25 14:41:17 +02:00
93cfb76a46 Fix handling empty vm_type in Store.last_buildroot 2023-09-25 10:16:00 +02:00
4b5534b070 Load empty optional configuration values as 'None' 2023-09-25 10:15:52 +02:00
f788db0d97 service: do not reject documented 'r' abbreviation for 'run' 2023-09-19 16:57:36 +02:00
d0c80e71a9
Merge pull request #1409 from dmach/rq-show-supersede
Fix 'request show' command to print superseded_by information
2023-09-14 14:59:15 +02:00
9361d78012 Fix 'request show' command to print superseded_by information 2023-09-14 14:40:49 +02:00
1d47dfc89d Unify how the 'commit' and 'build' commands work with '--noservice' option
Both commands now take the following options: '--skip-local-service-run', '--noservice', '--no-service'
Both commands now honor the 'local_service_run' config option if none of the options above is specified
2023-09-14 09:49:19 +02:00
0894724219
Merge pull request #1407 from dmach/wrap-password-into-Password-object
Fix validating configuration by wrapping password into Password object
2023-09-14 08:41:38 +02:00
1a42b7a2c9 Fix validating configuration by wrapping password into Password object 2023-09-13 14:25:47 +02:00
2e8fa9ef12 fix crash when settings like realname are not set.
Otherwise:
  File "/usr/lib/python3.11/site-packages/osc/core.py", line 451, in execute
    result = self._execute(dir, old_dir, callmode, singleservice, verbose)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/osc/core.py", line 493, in _execute
    vc_export_env(self.apiurl)
  File "/usr/lib/python3.11/site-packages/osc/core.py", line 8917, in vc_export_env
    os.environ[env] = val
    ~~~~~~~~~~^^^^^
  File "<frozen os>", line 684, in __setitem__
  File "<frozen os>", line 758, in encode
TypeError: str expected, not NoneType
2023-09-13 08:36:30 +02:00
848f5fe48f Switch 'osc.conf.config' from dict to Options class with type checking 2023-09-11 21:14:45 +02:00
930b7a8a4e Add 'osc.util.models' module implementing an alternative pydantic-like data validation 2023-09-11 21:11:05 +02:00
54d1884e1d Add 'osc.util.xdg' module for handling XDG paths 2023-09-11 21:11:05 +02:00