7e67269b74
Replace 'if not <cond> in ...' with 'if <cond> not in ...'
2022-09-12 14:15:34 +02:00
fe59986e1c
Run autopep8 to fix whitespace issues
2022-09-12 13:45:19 +02:00
b511be20ff
Always import at the toplevel
2022-09-12 13:45:19 +02:00
6d891d7488
Remove superfluous parens
2022-09-12 13:45:19 +02:00
3296fd8d89
User super() instead of referencing parent classes explicitly
2022-09-12 13:45:19 +02:00
1442a55c96
Remove trailing whitespaces
2022-09-12 13:45:19 +02:00
f12c72a69f
Fix dangerous (mutable) default values
2022-09-12 13:45:19 +02:00
f54ff7f9c3
Remove unused dict argument from OscConfigParser.SectionLine's init
2022-09-09 09:33:51 +02:00
4b487d4f99
Fix isinstance usage in core.makeurl()
2022-09-09 09:33:51 +02:00
ee39653dc7
Fix indentation
2022-09-09 09:33:51 +02:00
beaf312eee
Use implicit booleaness instead of len() to test if iterables are empty
2022-09-09 09:33:51 +02:00
ff63226c2f
Properly test for None
2022-09-09 09:33:51 +02:00
a4ac558fa6
Fix error: Instance of 'Project' has no 'prjname' member
2022-09-09 09:33:51 +02:00
b55384a914
Fix undefined variable in conf.apply_option_types()
2022-09-09 09:33:51 +02:00
a5b8729f2f
Fix usage of super()
2022-09-09 09:33:51 +02:00
1b9ed6bdbb
release 1.0.0b2
2022-09-09 09:29:05 +02:00
804db37dd4
Add missing 'apiurl' argument when creating CookieJarAuthHandler instance in build.py
2022-09-08 14:02:50 +02:00
f8a8c9c91c
Print user and apiurl when prompting for a password
...
It's not a good idea to send a password to a different server
than it belongs. Now the server identity is obvious.
2022-09-08 10:51:04 +02:00
7de13ea597
Pass apiurl to all auth handlers
...
Fixes TransientCredentialsManager check when working with multiple apiurls
2022-09-08 10:51:01 +02:00
157d4b79f8
Inject no-op print() into http.client when http debugging is off
...
This solves a crash that occasionaly occurs - osc tries to use a function that is not there
2022-09-08 10:32:34 +02:00
2496b3e987
Properly handle missing ssh-keygen and ssh-add
2022-09-07 10:09:20 +02:00
bbb2746657
Support ssh-agent forwarding
2022-09-07 10:07:01 +02:00
3d8efe2d15
ssh auth: Avoid password prompt when using TransientCredentialsManager
2022-09-06 12:49:47 +02:00
ca6a352acb
Fix race condition in using .old directory in Serviceinfo.execute()
2022-09-05 15:33:42 +02:00
6a1e8053ac
Merge pull request #1128 from dmach/http-accept
...
Send HTTP header Accept: application/xml
2022-09-05 13:59:48 +02:00
c2d0b05ede
Send HTTP header Accept: application/xml
...
Rails sends a html response if the header is not set
https://github.com/openSUSE/open-build-service/pull/13019
2022-09-05 13:32:57 +02:00
79b8c34aa6
Print URLs and xpaths in debug rather than verbose mode
2022-08-31 14:17:04 +02:00
615935de27
Create ~/.config/osc/trusted-certs if not exists
2022-08-31 14:16:59 +02:00
5a9909370d
Fix connection to work on python 3.6
...
Use ssl.CertificateError instead of ssl.SSLCertVerificationError.
2022-08-30 11:41:09 +02:00
a362edee5e
Handle conflicting options manually because the mutually exclusive group is buggy
2022-08-26 17:10:24 +02:00
3763bff901
Remove the '-A' option from the 'maintainer' command
...
It conflicts with the global '-A/--apiurl' option.
Use the long '--all' version from now on.
2022-08-26 17:04:56 +02:00
98b76d14b6
Replace the '-q/--hide-legend' option in 'prjresults' command with global '-q/--quiet' option
2022-08-26 17:04:41 +02:00
b5491911ea
Add global options to subcommands so they can be specified in any place
2022-08-26 16:23:48 +02:00
99937100df
Allow intermixing positional and optional args
2022-08-26 16:11:16 +02:00
2588060628
Merge pull request #1120 from dmach/cookiejar-locking-for-better-signature-auth
...
Lock cookiejar to prevent unnecessary signature auth
2022-08-26 16:10:46 +02:00
a4a984ee14
Lock cookiejar to prevent unnecessary signature auth
...
This usually happens when a user runs multiple osc instances
from the command-line in parallel.
2022-08-25 15:39:26 +02:00
ed5def96ba
Remove deprecated 'plaintext_passwd' config option
2022-08-25 13:20:25 +02:00
41ceb4b5f8
Remove deprecated 'GnomeKeyringCredentialsManager' and related code
2022-08-25 13:20:25 +02:00
ed49664d3e
Remove deprecated '--skip-validation' option from the 'commit' command
2022-08-25 13:06:58 +02:00
364a945440
Remove deprecated '--oldpkg', '--oldprj' options from the 'rdiff' command
2022-08-25 13:06:48 +02:00
dc22af0183
Remove deprecated subcommands 'create', 'list', 'log', 'show', 'decline', 'accept', 'delete', 'revoke' from the 'submitrequest' command
2022-08-25 10:01:36 +02:00
28c898a2cb
Remove deprecated '--seperate-requests' option from the 'submitrequest' command
2022-08-25 09:57:42 +02:00
47d4aa1eda
Remove deprecated '--raw' option from the 'develproject' command
2022-08-25 09:56:36 +02:00
cd66d2ab19
Remove deprecated '--maintained' option from the 'search' command
2022-08-25 09:50:42 +02:00
ee93af6d5f
Remove deprecated 'rlog' command
2022-08-25 09:48:31 +02:00
c7df2a154b
Remove deprecated 'rprjresults' command
2022-08-25 09:48:13 +02:00
7c282e80e9
Remove deprecated 'rresults' command
2022-08-25 09:47:49 +02:00
81d8c821d1
Remove deprecated 'results_meta' command
2022-08-25 09:47:26 +02:00
bfcdba8b4d
Remove deprecated 'deleteprj' command
2022-08-25 09:46:54 +02:00
9ca0a5122e
Remove deprecated 'deletepac' command
2022-08-25 09:46:35 +02:00
59e697e61e
Remove deprecated 'editmeta' command
2022-08-25 09:46:08 +02:00
20998385f3
Remove deprecated Request.get_creator()
2022-08-25 09:44:45 +02:00
8ca816755a
Merge pull request #1117 from dmach/setup.py-to-setup.cfg
...
Move python package metadata from setup.py to setup.cfg
2022-08-24 14:28:32 +02:00
4848b0f42a
Move __version__ from osc.core to osc
...
Fixes issues with circular module deps during tests
that caused that osc.core wasn't available
2022-08-24 09:53:26 +02:00
9cc4a5594f
Fix resource warnings (unclosed files)
2022-08-24 08:43:09 +02:00
a24c905f53
Fix 'osc up' on project level for scm packages
2022-08-24 08:24:12 +02:00
31b804eeec
Merge pull request #1114 from dmach/replace-imp-with-importlib
...
Replace imp with importlib
2022-08-23 08:29:34 +02:00
78374d2ca6
Merge pull request #1111 from dmach/do-not-list-declined-requests-by-default
...
Do not list declined requests by default
2022-08-23 08:28:42 +02:00
564c54b90d
Merge pull request #1110 from dmach/fix/git_version
...
git_version: Return version from the source code if there's no matching tag
2022-08-23 08:27:56 +02:00
ddec088efc
Replace imp with importlib
2022-08-22 15:45:25 +02:00
565797d5a7
Merge pull request #1113 from dmach/fix/cmdln-empty-docstring
...
Do not crash when do_* handler has no docstring
2022-08-22 15:21:41 +02:00
b306bf0b91
Convert defaults to their expected types
...
Fixes problems in reading conf values before the configuration
is fully initialized.
2022-08-22 15:08:49 +02:00
d2015d808b
Do not crash when do_* handler has no docstring
2022-08-22 13:41:08 +02:00
2892f1bb11
Do not list declined requests by default
2022-08-22 11:34:56 +02:00
8acad28cc0
git_version: Return version from the source code if there's no matching tag
2022-08-22 11:08:34 +02:00
d7ee98833c
Merge pull request #1105 from lethliel/add_version_command
...
add version command to print the used version
2022-08-22 09:16:47 +02:00
Frank Schreiner
6c7ad021c8
reset "file current position" on errors
...
If an error occurs while sending a file to the API (e.g. 401), the io handle
is reused and the current postion is at the end of the file. This results in an
empty value.
This patch takes care that the current file postion gets resetted
if a retransmission is required.
2022-08-18 12:06:06 +00:00
lethliel
4b2bfb0b80
add version command to print the used version
2022-08-17 22:21:02 +02:00
6cb7412749
Remove duplicated --debug and --verbose options
...
Additional changes:
* rename getbinaries --debug to --debuginfo to avoid conflicts
* switch conf['verbose'] from int to bool
The changes were needed because the new argparser behaves differently
and commands such as `osc ls` ran in verbose mode by default.
2022-08-12 10:06:00 +02:00
84c97ab625
Fix crash caused by concatenating bytes with string
2022-08-12 10:06:00 +02:00
be8a5268a8
Replace unmaintained cmdln.py with a custom code
...
Cmdln.py is unmaintained for years and uses deprecated optparse.
Let's replace it with a simpler custom code. Also remove code
that generates man page, we'll replace it with a 3rd party tool.
2022-08-12 10:05:59 +02:00
e469c2c184
Merge pull request #1041 from AdamMajer/master
...
Add support for project separator
2022-08-12 10:03:23 +02:00
47b58ac350
Merge pull request #1095 from abitrolly/build-decsc
...
Reworded `build` help and added debug prints
2022-08-12 09:40:06 +02:00
4423a5d4a9
release 1.0.0b1
2022-08-04 16:19:59 +02:00
Anatoli Babenia
0036aa931e
Print debug messages to stderr
2022-08-04 17:12:57 +03:00
Anatoli Babenia
988f19f9ce
Document build
repo selection logic
2022-08-03 13:36:31 +03:00
Anatoli Babenia
0660c14a62
Add debug print for REPO (and desc just in case)
2022-08-03 10:40:29 +03:00
Anatoli Babenia
0b6039025f
Shortened build
help and add debug prints
...
Debug prints are needed for troubleshooting ARCH selection problem in
https://github.com/openSUSE/osc/pull/241#issuecomment-1203463612
2022-08-03 08:36:51 +03:00
Anatoli Babenia
d9bc6d1c12
Remove unused code for discontinued distributions
2022-08-02 14:47:56 +03:00
Anatoli Babenia
5751222bd0
Remove extra line from the end of osc dists
output
2022-08-02 14:45:23 +03:00
Anatoli Babenia
3ae3c88a95
Dedent main code for get_distributions
2022-08-02 14:45:23 +03:00
Anatoli Babenia
4d6a6aaf96
Move output formatting from core
into commandline
...
This makes `get_distributions()` return list of dicts.
2022-08-02 14:45:23 +03:00
Anatoli Babenia
0bc142df91
Move format_table
to util.helper
2022-08-02 14:45:23 +03:00
Anatoli Babenia
fed3de9c11
Add a function for table formatting
2022-08-02 14:45:23 +03:00
Anatoli Babenia
10a156d4ca
Fix spelling mistake in get_distributions
method name
2022-08-02 14:45:23 +03:00
abfc30e59d
Merge pull request #1090 from abitrolly/nopy2
...
Remove Python 2 code
2022-08-01 08:44:54 +02:00
Anatoli Babenia
560e556d36
Do not ask for login for -h,--help
2022-07-29 18:59:25 +03:00
Anatoli Babenia
ce91a9ff5a
Remove Python 2 code
2022-07-29 17:26:39 +03:00
eb83b42f32
Fix several undefined-variable issues reported by pylint
2022-07-28 21:01:16 +02:00
feb53212dd
Modernize code with pyupgrade
...
pyupgrade --keep-percent-format --py36-plus `find -name '*.py'`
2022-07-28 19:14:12 +02:00
e7af9cebb3
Merge pull request #1088 from dmach/python3-import-cleanup
...
Clean imports up, drop python 2 fallbacks
2022-07-28 17:41:10 +02:00
229913a77f
Clean imports up, drop python 2 fallbacks
2022-07-28 13:17:43 +02:00
ad8d2bd67e
Remove duplicate taking care of sys.stderr in babysitter:main.
2022-07-28 11:21:35 +02:00
e16e196fa1
Merge pull request #1040 from dmach/fix/multibuild-commandline
...
Fix -M/--multibuild user experience, allow globs where possible
2022-07-28 11:03:34 +02:00
84fa637556
Add XDG compatible location for osc plugins.
...
I believe it is generally a good idea to move stuff from $HOME to
XDG-compatible directories.
2022-07-28 10:26:13 +02:00
6397a6070d
Replace osc-wrapper.py with entry_points.
2022-07-28 09:46:34 +02:00
85dbd9f626
Merge pull request #1000 from dmach/urllib3
...
Switch http_request() to urllib3
2022-07-27 11:27:18 +02:00
0d701556f2
Warn when using HTTP connection. Make HTTPS the default.
...
It is possible to omit protocol in -A/--apiurl now,
because https:// is the default.
2022-07-27 11:15:21 +02:00
93bc0e4731
Switch http_request() to urllib3
...
Use connection pools for better performance.
Replace M2Crypto with cryptography and urllib3's ssl context.
2022-07-27 11:15:21 +02:00
69f75a0278
Open osc 1.0 development
...
Upcoming changes:
- drop python2 support
- replace M2Crypto with cryptography
- replace cmdln.py/optparse with argparse
- various cleanups
2022-07-27 10:46:55 +02:00
d8d4b0831c
release 0.181.0
2022-07-26 21:34:07 +02:00
133a6e340c
Fix crash when 'pass' is not set in the config file
2022-07-26 15:07:40 +02:00
97b0961fe0
Add missing attributes to Package when scm_url is set
2022-07-26 13:13:37 +02:00
ff1ae5e25e
Fix multibuild packages in osc wipebinaries
2022-07-26 09:51:16 +02:00
f70b480cab
Fix multibuild packages in osc jobhistory
2022-07-26 09:51:16 +02:00
a51524e5af
Fix multibuild packages in osc buildhistory
2022-07-26 09:51:16 +02:00
1a4942da83
Fix multibuild packages in osc build
2022-07-26 09:51:16 +02:00
5198b6334b
Fix multibuild packages in osc buildinfo
2022-07-26 09:51:16 +02:00
0fd93f7443
Fix multibuild packages in osc triggerreason
2022-07-26 09:51:16 +02:00
182e8e20a4
Fix multibuild packages in osc remotebuildlog
2022-07-26 09:51:15 +02:00
26ad5aa35c
Fix multibuild packages in osc buildlog
2022-07-26 09:51:15 +02:00
502bff50ff
Fix multibuild packages in osc restartbuild
2022-07-26 09:51:15 +02:00
30a3106375
Fix multibuild packages in osc sendsysrq
2022-07-26 09:51:15 +02:00
55ad41d33b
Fix multibuild packages in osc results
2022-07-26 09:51:15 +02:00
6ccdb9cfe3
Fix multibuild packages in osc rebuild
2022-07-26 09:51:15 +02:00
082986daf9
core: Add functions for glob matching of multibuild flavors
2022-07-26 09:51:15 +02:00
cc393758df
Fix errorneous double quotes in core.py
2022-07-26 09:51:15 +02:00
4deaf2b9c3
Merge pull request #1077 from abitrolly/relconf
...
Fix failure to create config in current dir
2022-07-26 09:37:29 +02:00
Anatoli Babenia
6a9398a97b
Fix failure to create config in current dir
...
This uses exception based protection from parallel execution
https://github.com/openSUSE/osc/pull/1077#discussion_r928976845
2022-07-26 09:04:15 +03:00
637cfe8471
Merge pull request #1023 from dmach/fix/622-additional-changes
...
parseRevisionOption(): Raise an exception on invalid revisons
2022-07-25 18:26:06 +02:00
9786aafa51
Update list of considered file names for ssh key autodetection
...
The file names come from ssh(1) man page.
2022-07-25 17:54:43 +02:00
f83e9a23d5
Merge pull request #1074 from dmach/pr1049-v2
...
RFC: ssh: recognize gpg keys (yubikey usage)
2022-07-25 13:52:31 +02:00
a7e5e12c5a
Allow users to prefer ssh key over password auth
...
If `sshkey` config option is set, then osc prefers it over password auth.
If `sshkey` config option is not set and the server supports both basic
and signature auth, basic auth is used and ssh key is NOT auto-detected.
Users who want to use ssh auth with ssh key auto-detection can now leave
the `pass` config option empty to trigger ssh key auto-detection.
The ssh-key autodetection picks the first key that matches:
- key loaded to ssh-agent (`ssh-add -l`) that has a public key in ~/.ssh
- ~/.ssh/{id_ed25519,id_rsa}
It is also recommended to use Obfuscated or Plaintext credentials manager.
Please be aware that storing passwords using these credentials managers
is unsafe, because they're stored in plain text on disk.
Example:
[<apiurl>]
user=<username>
pass=
# ssh key is auto-detected because `pass` is empty
sshkey=
credentials_mgr_class=osc.credentials.ObfuscatedConfigFileCredentialsManager
2022-07-22 08:20:44 +02:00
Martin Wilck
870d861b61
ssh: recognize gpg keys (yubikey usage)
...
When using ssh keys from gpg, there are no private key files on
disk. The public keys are available from "ssh-add -L". Conveniently,
users store the public keys in some ".pub" file under ~/.ssh
(see e.g. https://serverfault.com/questions/906871/force-the-use-of-a-gpg-key-as-an-ssh-key-for-a-given-server ;
this is also necessary to use IdentityFile= in ssh itself).
Thus public key files can't be ignored any more in list_ssh_dir_keys().
"ssh-keygen -Y sign" works nicely with a public key file if the agent
has access to the private key.
2022-07-11 13:08:34 +02:00
Adrian Schröter
932d4c5fa1
fix operating on _project meta
...
The removed code is plain wrong, ../_project/_meta?meta=1 exists
2022-07-11 11:16:15 +02:00
8d843b5968
Revert "interpretation of string literals in messages"
...
Emojis were broken due to this commit.
The revert causes a change in behavior:
"\n" no longer gets resolved to a newline.
It is suggested to do the following instead:
$ osc <command> ... -m "first line
second line"
This reverts commit 16fda3115c
.
2022-07-07 15:42:22 +02:00
dba4041af0
Merge pull request #1066 from dmach/fix-git-version-github
...
Fix detecting version from git in archives from GitHub
2022-07-07 13:40:08 +02:00
194f829297
fix product build rpm caching
...
* src/noarch rpm packaages needs to be stored in scheduler architecture to avoid
conflicts of the multiple versions
* avoid removal of every downloaded file
2022-07-07 12:30:55 +02:00
Adam Majer
f10247014d
Process input with configurable project separators
...
This allows for usage of configurable project name separator in
the command line inputs
Fixes : #1024
2022-07-04 15:05:05 +02:00
Adam Majer
c4c2d2a933
Add project_separator to config file
...
This allows for arbitrary string to be used as a project
separator instead of restricting oneself to : or directory
structure.
Fixes : #1024
2022-07-04 15:05:05 +02:00
2aaefb7c79
Fix detecting version from git in archives from GitHub
...
There seem to be a bug in how GitHub generates archives.
"Format:" and "$" characters get removed from the version string,
setting it to:
version = "%(describe:tags=true)"
2022-07-04 14:43:21 +02:00
515db3dea0
release 0.180.0
2022-06-24 15:23:26 +02:00
fec667c70d
Fix crash in determining git version when git command is not available
2022-06-24 12:24:53 +02:00
e6061da1d6
Merge pull request #1056 from dmach/fix-invalid-credentials-manager-traceback
...
Don't traceback on invalid credentials manager
2022-06-24 08:54:11 +02:00
9a5c775d47
Merge pull request #1062 from adrianschroeter/gitupdate
...
fix crash on "osc up" for git based package/projects
2022-06-24 08:53:42 +02:00
45268e5cb5
Merge pull request #1037 from dmach/fix/git-version-compatible-with-pip
...
Make osc git version compatible with pip to mute the PEP 440 warning
2022-06-24 08:52:17 +02:00
253d760a76
fix crash on "osc up" for git based package/projects
2022-06-24 08:46:49 +02:00
5e8413ecb6
Don't traceback on invalid credentials manager
2022-06-21 08:33:38 +02:00
lethliel
d9e2d958c1
declare OscHTTPSignatureAuthHandler as a new-style class
...
remove illegal character in comment
2022-06-14 14:27:48 +02:00
295ea7f356
Warn when trying to commit a prj/pac managed in scm
2022-06-08 14:18:33 +02:00
40067dce0a
Auto-generate git versions compatible with PEP 440
...
`git archive` is configured to set osc version according to the git tag
via .gitattributes/export-subst
2022-06-08 08:48:50 +02:00
0b4158590c
release 0.179
2022-06-02 14:29:11 +02:00
0a1d47d920
Merge pull request #1034 from andreas-schwab/master
...
Fix check for empty details
2022-06-02 13:31:00 +02:00
dec6f7135d
Merge pull request #1043 from dirkmueller/download_url_quoting
...
Fix quoting of download urls
2022-06-02 13:28:59 +02:00
eac5434700
Merge pull request #928 from jengelh/master
...
osc co/up: highlight pending requests' header
2022-06-02 10:23:58 +02:00
fad89f8e09
Merge pull request #1027 from adrianschroeter/github
...
add another exception for github URLs for "osc add"
2022-06-02 10:21:02 +02:00
1715163166
Merge pull request #994 from dmach/update-sphinx-configuration
...
Update Sphinx configuration
2022-06-02 10:09:38 +02:00
a223dd085a
Merge pull request #1009 from dmach/aggregatepac-flavor
...
Support flavors in aggregatepac
2022-06-02 10:06:21 +02:00
cf5da11b26
Enable md5 revisions in osc log
2022-06-02 10:02:32 +02:00
ca9dc30643
parseRevisionOption(): Raise an exception on invalid revisions
2022-06-02 10:01:57 +02:00
1f8fc339de
ssh key authentification fixes
...
- do not crash when having binary files in ~/.ssh
- support also RSA key setups
2022-06-01 16:23:02 +02:00
Mihai Moldovan
f2474fa7f0
commandline: handle calls without arguments gracefully
...
Fixes the following error:
```
% osc
Traceback (most recent call last):
File "/usr/bin/osc", line 45, in <module>
r = babysitter.run(osccli)
File "/usr/lib/python3.10/site-packages/osc/babysitter.py", line 67, in run
return prg.main(argv)
File "/usr/lib/python3.10/site-packages/osc/cmdln.py", line 341, in main
self.postoptparse()
File "/usr/lib/python3.10/site-packages/osc/commandline.py", line 137, in postoptparse
if self._get_canonical_cmd_name(self.args[0]) == "help":
IndexError: list index out of range
```
2022-05-30 20:43:37 +02:00
ac6b615575
release 0.178
2022-05-24 14:19:37 +02:00
Marco Strigl
c3d535c3b2
Merge pull request #1012 from adrianschroeter/obs_git
...
initial obs-git support
2022-05-24 11:39:45 +02:00
02b3d70e9c
Merge pull request #1032 from mlschroe/master
...
Implement the Signature authentication scheme
2022-05-23 13:14:08 +02:00
Michael Schroeder
badcfc283c
Remove no longer used modules
2022-05-23 11:23:13 +02:00
Michael Schroeder
b8f76f7990
OscHTTPSignatureAuthHandler: try to guess ssh key from the keys added to ssh-agent
...
Based on a patch by Daniel Mach
2022-05-23 11:23:05 +02:00
Dirk Müller
b7ed6534eb
trailing whitespace cleanup
2022-05-20 12:00:44 +02:00
Dirk Müller
7b759dc8bc
Prefer list comprehensions
2022-05-20 11:57:06 +02:00
Dirk Müller
8ba078a872
use percent-quoted url for download url generation
...
We need to percent-quote base urls because they will
be used in named-percent-substitution afterwards.
2022-05-20 11:57:06 +02:00
Marco Strigl
ed78dcbfd2
Merge pull request #1033 from dmach/linkdiff-missing-added-file
...
linkdiff: Raise an exception when an added file is missing
2022-05-12 10:51:15 +02:00
Marco Strigl
560bd953e0
Merge pull request #1035 from dmach/fix/do-not-require-login-in-help
...
Never require login in the help command
2022-05-12 10:48:10 +02:00
deccf5252b
Merge pull request #1038 from Firstyear/20220506-highlight-md5-faults
...
Show the md5s that are failing to validate
2022-05-09 09:12:51 +02:00
mls
0b826613d9
Integrate signature authentication in the OscHTTPAuthHandler
2022-05-06 16:30:15 +02:00
mls
99ba3719c7
Add support for the Signature authentication scheme
...
See https://tools.ietf.org/id/draft-cavage-http-signatures-12.html
2022-05-06 16:29:58 +02:00
William Brown
1ba375d81f
Show the md5s that are failing to validate
2022-05-06 12:27:43 +10:00
0d40ff8ce6
osc co/up: highlight pending requests' header
...
Found myself to mentally miss the request list of 1 pending rq and so
I am pitching the idea of subtle boldening for experimentation.
2022-05-05 11:24:33 +02:00
cc0b8f1606
Never require login in the help command
2022-05-05 11:07:28 +02:00
Dirk Müller
56ad831a39
Add osc helm type build support
2022-05-04 23:17:20 +02:00
c875ca2886
initial obs-git support
...
* init command is working inside of a git repository
* downloadassets command fetches references assets from build description
* checkout is cloning from git
2022-04-29 09:59:13 +02:00
Andreas Schwab
e0168046a1
Fix check for empty details
2022-04-28 15:34:14 +02:00
Dirk Müller
3ed913c007
Whitespace fixes as expected by pycodestyle/pep8
2022-04-27 14:13:18 +02:00
Dirk Müller
69c83d41aa
add support for building preinstall images
...
This is yet another build type supported by the obs-build
script intended to build images that speed up the build setup
phase.
2022-04-27 14:00:00 +02:00
3393033887
linkdiff: Raise an exception when an added file is missing
2022-04-27 13:40:35 +02:00
mls
e47a265388
Allow to configure a ssh key in the config
...
We support a global key and a key specific to an apiurl.
2022-04-27 11:36:20 +02:00
mls
119ffd6027
Rename OscHTTPBasicAuthHandler to OscHTTPAuthHandler
...
We'll support more than one auth scheme in the future.
2022-04-27 11:36:20 +02:00
mls
38e3c4952f
Simplify bad auth retry workaround needed for old python versions
...
This changes the code back to retrying up to 5 times for old
python version 2.6.6-2.7.9. The complete backport of the basic auth
changes clutters up the code way to much for such a little gain.
(This basically reverts commit 326abe0c8b
)
2022-04-27 11:36:08 +02:00
f70b41ce32
Merge pull request #1031 from dirkmueller/restore_getbinaries_metadata
...
Stylistic cleanups
2022-04-26 14:29:29 +02:00
lethliel
e08db06d5d
open 0.178 development
2022-04-26 13:11:57 +02:00
lethliel
70c1f2b782
release 0.177.0
2022-04-26 09:48:53 +02:00
Dirk Müller
32f37e307a
Stylistic cleanups
2022-04-26 09:37:18 +02:00
Marco Strigl
d5e04f806f
Merge pull request #1015 from dmach/fix/1014-getbinaries-download-into-subdirs
...
Fix getbinaries command by downloading files in subdirs named by the packages
2022-04-25 11:29:35 +02:00
Marcus Huewe
3262c05e35
Handle a callable in credentials._LazyPassword.__str__
...
It is possible that the self._pwfunc() call returns a callable. For
instance, if the keyutils.osc.OscKernelKeyringBackend is configured
in the oscrc. Hence, check in credentials._LazyPassword.__str__
if the returned password is a callable and, if so, call it. Moreover,
a deprecation warning is printed. Eventually, this compat code will
be removed again.
This is a follow-up commit for commit
784d330f20
("Only prompt for a password
if the server asks for it") (actually, it is a regression that was
not caught during the review...).
2022-04-14 01:47:10 +02:00
ff45f107bb
Revert "Merge pull request #856 from bmwiedemann/verifymd5"
...
This reverts commit 29fb9a2dce
, reversing
changes made to 34563aa7b2
.
2022-04-12 11:00:00 +02:00
Marcus Huewe
90ccc84f95
Merge commit 'refs/pull/1022/head' of github.com:openSUSE/osc
...
Only ask for a password if it is really needed for authentication.
The new lazy password approach is much smarter than the old callable
hack. That's why we deprecate returning a callable from
AbstractCredentialsManager.get_password. The current compatibility code
for a callable will be removed in the near future.
Minor nitpick: actually it would have been "cleaner" to introduce a new
subclass like an AbstractLazyPasswordCredentialsManager that encapsulates
the lazy password behavior. Currently, if, for instance, a credentials
manager is always non-lazy it would just override get_password but still
inherits the abstract (and unused) _get_password method.
2022-04-11 15:27:14 +02:00
Michael Schroeder
784d330f20
Only prompt for a password if the server asks for it
...
In many cases the session cookie is already available, so there
is no need to ask for a password. To make this work with the
python authentication implementation, we add a small proxy object
for the password and only ask the credential manager if the
stringify method is called.
This approach also makes it possible to offer a non-password based
authorization type if the server allows multiple authentication
methods.
2022-04-11 11:46:08 +02:00
e88459e02b
add another exception for github URLs for "osc add"
...
osc#905
2022-04-11 08:48:30 +02:00
Marco Strigl
c1bec6901a
Merge pull request #950 from Firstyear/allow-download-source
...
Add support to manually override download url locations.
2022-04-07 11:06:13 +02:00
Marco Strigl
48cbeced5f
Merge pull request #863 from abitrolly/distformat
...
Pretty print `osc dists` output
2022-04-07 10:56:09 +02:00
Daniel Mach
29fb9a2dce
Merge pull request #856 from bmwiedemann/verifymd5
...
Use verifymd5 to determine freshness
2022-04-07 10:48:58 +02:00
Daniel Mach
34563aa7b2
Merge pull request #850 from lethliel/fix_issue_849
...
use sr_ids[0] for superseding
2022-04-07 10:43:43 +02:00
Daniel Mach
5d6cfe80d5
Merge pull request #622 from jberry-suse/parseRevisionOption-clean
...
osc/core: parseRevisionOption(): cleanup and make logic consistent.
2022-04-04 10:52:37 +02:00
Marco Strigl
4a26801c08
Revert "Quote unicode characters in URL path"
2022-04-01 09:32:15 +02:00
Marco Strigl
a9138e54d5
Merge pull request #872 from marcus-h/prjresults_name_filter_regex
...
RFC: Support a regex based name filtering in core.get_prj_results
2022-03-31 11:04:29 +02:00
Marco Strigl
64631f1d91
Merge pull request #754 from adrianschroeter/hot_fix
...
dealing with new exception errors
2022-03-31 10:59:50 +02:00
c9f8fedf01
Fix getbinaries by downloading logs and metadata into subdirs named by packages
...
This applies when downloading multiple packages, typically the whole repo.
When downloading a single package, everything works as usual
and the subdir is not created.
2022-03-30 11:14:19 +02:00
Marco Strigl
ee0773d523
Merge pull request #1020 from dmach/fix/1018-url-unicode
...
Quote unicode characters in URL path
2022-03-30 10:23:41 +02:00
f6bb136940
Quote unicode characters in URL path
...
Also throw URLError if illegal characters are found in URL path.
2022-03-29 13:43:41 +02:00
90a1cb838b
Report a config error when trying to load credentials_mgr_class that does't exist
2022-03-28 09:49:55 +02:00
8a85789573
Set the first (highest prio) credentials manager as the default
2022-03-28 09:49:55 +02:00
853a3848e8
Order credentials managers by priority
2022-03-28 09:49:55 +02:00
d3f4b7a930
Reword names and decriptions of credentials managers
2022-03-28 09:49:55 +02:00
8e0e0a9ca8
Cherry-pick supported python-keyring backends
...
Also provide pretty names and descriptions.
2022-03-28 09:49:55 +02:00
88a8a0cdd8
Print credentials managers as a table
2022-03-24 11:02:01 +01:00
2912c1f34f
Trying to improve maintenance warning
...
Based on a suggesstion of
Co-Author: Jan Zerebecki <jzerebecki@suse.com>
2022-03-23 09:34:29 +01:00
a342eacf2e
Revert "Skip fetching metadata and logs in the getbinaries command"
...
This reverts commit 08a70952c0
.
2022-03-21 17:10:07 +01:00
fe2931ea22
core.get_binary_file(): create target directory if it doesn't exist
2022-03-21 17:06:55 +01:00
William Brown
299965fd69
Add support to manually override download url locations.
2022-03-17 09:48:57 +10:00
abfa72d7eb
show repository state and details. It can be broken and the user must be able to see the reason.
...
That was always a problem, but with the new option for disabled publishing
due to package failures it becomes more critical
2022-03-17 09:46:31 +10:00
Daniel Mach
b83aee10f5
Merge pull request #848 from adrianschroeter/repository_details
...
show repository state and details. It can be broken and the user must…
2022-03-16 16:46:55 +01:00
1385297978
Fix several issues in HTML doc rendering, improve output
2022-03-16 15:19:24 +01:00
389a37fbd0
show repository state and details. It can be broken and the user must be able to see the reason.
...
That was always a problem, but with the new option for disabled publishing
due to package failures it becomes more critical
2022-03-16 14:33:32 +01:00
Daniel Mach
cb4b2389a6
Merge pull request #747 from adrianschroeter/request_diffing
...
support request diffing relative to a former request
2022-03-16 14:20:20 +01:00
7370b23822
osc can crash due to various exceptions when loading
...
key management.
Not sure if this is the best way, but make osc usable at all again...
2022-03-16 14:19:01 +01:00
c568cf7b41
support request diffing relative to a former request
2022-03-16 13:57:01 +01:00
Daniel Mach
546991a201
Merge pull request #1010 from Firstyear/format-in-sccache-file-uri
...
Allow formatting of the sccache uri
2022-03-15 13:23:55 +01:00
Daniel Mach
ade215c071
Merge pull request #460 from JanZerebecki/rm-dead-doc-ref
...
Remove reference to non existing documentation
2022-03-15 09:56:41 +01:00
Daniel Mach
473b0d4048
Merge pull request #329 from andrewshadura/master
...
Allow whitespace before ${cmd_name}.
2022-03-15 09:45:24 +01:00
12e2e81703
Check if repos provided to aggregatepac command exist
2022-03-11 09:59:08 +01:00
William Brown
e25682b802
Allow formatting of the sccache uri
...
This allows a format to be specified in the sccache uri, specifically
the file uri so that a per-package cache can be created. This way
an osc build locally doesn't ruin your cache moving between different
packages.
2022-03-04 14:10:44 +10:00
5c5597432c
Support flavors in aggregatepac
2022-03-02 14:38:21 +01:00
f4626dd91f
open 0.177.0 development
2022-02-28 21:14:29 +01:00
5f56c71e7f
release 0.176.0
2022-02-28 16:44:11 +01:00
Daniel Mach
ced706080b
Merge pull request #1006 from dmach/getbinaries-multibuild
...
Fix getbinaries command to fetch also multibuild packages
2022-02-28 16:35:26 +01:00
Daniel Mach
a0388fc6e7
Merge pull request #1004 from dmach/osc-localbuild-hdrmd5
...
Fix "Error: hdrmd5 mismatch" during local build
2022-02-28 16:34:54 +01:00
e37e144099
Fix getbinaries -M/--multibuild-package option usage
2022-02-28 13:31:51 +01:00
08a70952c0
Skip fetching metadata and logs in the getbinaries command
...
They have identical names for all downloaded packages
and get overwritten by the last downloaded file.
Unless we dowload them into subdirs or prefix them with package name,
it makes no sense to download them.
2022-02-28 13:09:37 +01:00
fd6634e320
Re-download file from API when hdrmd5 doesn't match
2022-02-28 09:28:32 +01:00
John Paul Adrian Glaubitz
483e07042a
Add -F option to osc submitreq
...
Fixes #1001
2022-02-25 12:01:10 +01:00
d222a38d03
Fix getbinaries command to fetch also multibuild packages
2022-02-23 14:56:02 +01:00
d76ec31ef4
Honor --download-api-only option
...
Used Marcus Huewe's patch from:
https://github.com/openSUSE/open-build-service/issues/12034#issuecomment-1003051674
2022-02-18 12:00:53 +01:00
171b546379
Remove Windows from the supported operating systems
...
The ':' character is used as a separator in Open Build Service
and constantly appears in directory names after running osc commands.
Windows do not support ':' as a valid character on file system.
This breaks not only osc but also basic commands such
as 'git clone' on a project that contains colons in paths.
That's why we decided to make osc unsupported on Windows.
2022-02-17 13:34:03 +01:00
dc253ed212
add build --verbose option for build script
...
shows kernel messages (only) atm
2022-01-13 11:57:54 +01:00
8d082fae6b
No need to ignore SIGWINCH anymore
...
In normal mode, SIGWINCH is handled by ProgressBar.
In quiet mode, there's no SIGWINCH handler at all.
2022-01-07 13:51:48 +01:00
74671532a7
Fix crash on terminal resize during download
2022-01-03 11:47:33 +01:00
Marcus Huewe
cf8aadc886
Do not fail with a traceback in case of a config error
...
Do not fail with a traceback if the config file parsing fails.
Hence, catch the configparser.Error exception and print its
"message" attribute to the user.
Fixes : #985 ("Type error on any osc call")
2021-12-19 17:38:22 +01:00
Marcus Huewe
c1134d2f4d
Merge commit 'refs/pull/981/head' of github.com:openSUSE/osc
...
Do not download a bdep with a hdrmd5 from the api by default.
2021-12-15 00:04:41 +01:00
Marco Strigl
6c89e4eb5c
Merge pull request #980 from marcus-h/escape_binary_download_urls
...
Escape % character in binary download URLs
2021-12-08 11:42:03 +01:00
Marcus Huewe
7da451c87d
Do not download a bdep with a hdrmd5 from the api by default
...
Since a recent backend change, a bdep has a hdrmd5 by default. That
is, osc always downloads these bdeps from the API (unless they are
cached) instead of a mirror. This is not intended.
Using a mirror is no problem because the hdrmd5s are verified in
the build module.
Note: If this causes a problem, one could also use "osc build
--download-api-only" to mimic the old behavior.
2021-12-08 10:41:04 +01:00
Marcus Huewe
c45373faaa
Merge branch 'oscrc-symlink' of https://github.com/dmach/osc
...
If the oscrc is a symlink, follow the symlink when writing the
configuration file. The old code replaced the symlink with a
regular file (see #390 ("symlinked $HOME/.oscrc gets replaced
with a ordinary file")).
Implementation note: if the directory, which contains the resolved
config file, has a <config file>.new file, the file is overwritten.
2021-12-08 10:24:01 +01:00
5ba6bbe0c2
conf: Preserve oscrc symlink
...
When a user creates a symlink pointing from ~/.config/osc/oscrc
to a different location, don't overwrite the symlink but follow
it when writing configuration on disk.
2021-12-08 08:48:59 +01:00
Marcus Huewe
d549f27ec5
Escape % character in binary download URLs
...
Without escaping the % character, the download URL could be subject
to string formatting (depending on the subsequent characters). For
instance, if the url attribute's value of a buildinfo's path element
contains the substring "c_c%2B%2B", the "%2B" is interpreted as a
format string (see issue #965 ), which is wrong ("B" is not a valid
format character at all). In order to avoid this, escape all
% characters in the download urls.
Note: escaping the % characters in the download url itself is OK
because we only intend to "format" the path.
Note: we do not escape the % characters for urls from the config
file (implicit assumption: the user already correctly escaped the
urls (whether this assumption is sensible or not is debatable, of
course)).
Fixes : #965 ("unsupported format character 'B' (0x42) at index 66")
2021-12-07 20:44:48 +01:00
f3a9ef6446
build: Fix printing paths to built debian packages
2021-12-07 09:17:55 +01:00
lethliel
2e80671523
open 0.176.0 development
2021-12-02 08:51:26 +01:00
lethliel
52e89604b3
release 0.175.0
2021-12-02 08:48:19 +01:00
Marcus Huewe
b8482bfab3
Osc.postoptparse only returns if the get_config call succeeds
...
The old code passes try_again=False to the recursive postoptparse
call when calling it from one of the exception handlers. This is
wrong because it can result in an incomplete conf.config dict (for
instance, if two apiurl sections have no user and no password and
no credentials_mgr_class option - see #761 ("Traceback config with
two backends and no username")).
Hence, Osc.postoptparse should only return if the conf.get_config
call succeeds. For this, unconditionally call Osc.postoptparse from
within the exception handlers. Note: this could potentially (although
quite unlikely) result in an endless recursion but in each recursive
call "user" interaction is required (that is, the user could simply
press CTRL+c) - so this should not be a problem.
Implementation note: this change breaks the API. Rationale: the
semantics of Osc.postoptparse changed. Hence, "pretending" to
honor the try_again parameter could result in unexpected behavior
(from the API consumer's POV). Hence, a traceback might be more
sensible.
Fixes : #761 ("Traceback config with two backends and no username")
2021-11-23 15:34:48 +01:00
Marcus Huewe
d3e9ff739a
Merge branch 'zstddeb' of https://github.com/adrianschroeter/osc
...
Support a zst compressed control.tar in debquery.DebQuery. A zst compressed
control tar is used, for instance, in Ubuntu 21.10.
Note: this requires the 3rd-party python-zstandard module.
2021-10-26 21:10:29 +02:00
fe311c7ae5
support zst compressed control files in deb archives
...
eg. some packages Ubuntu 21.10
2021-10-26 07:29:43 +02:00
William Brown
d56a46b669
Improve logic for conffile mode handling
2021-10-25 09:34:16 +10:00
4d7dd3d46c
fix hdmrd5 check of local cached files
...
Current OBS is delivering hdrmd5 in buildinfo. It turns out
that osc has already code for validating cached files, but it
invalidates all local files atm with python 3.x
2021-10-19 16:01:24 +02:00