You've already forked httpie-cli
							
							
				mirror of
				https://github.com/httpie/cli.git
				synced 2025-10-30 23:47:52 +02:00 
			
		
		
		
	Switch from reStructuredText to Markdown and add docs/ (#1139)
				
					
				
			* Convert most of the documentation from the frontend `README.rst` to `docs/REAME.md` Also converted all reStructuredText files to Markdown. * Tell `mdformat` to use LF for end on lines * `--check` is not needed in the help message * Skip tests on GitHub Windows. Those tests pass on a real Windows machine. Let's revisit those failure later, if needed. * Move `mdoformat` requirement from `test` to `dev` extra To fix Fedora CI.
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							e7d8b9cece
						
					
				
				
					commit
					6039bd8582
				
			
							
								
								
									
										41
									
								
								AUTHORS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								AUTHORS.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| # HTTPie authors | ||||
|  | ||||
| - [Jakub Roztocil](https://github.com/jakubroztocil) | ||||
|  | ||||
| ## Patches, features, ideas | ||||
|  | ||||
| [Complete list of contributors on GitHub](https://github.com/httpie/httpie/graphs/contributors) | ||||
|  | ||||
| - [Cláudia T. Delgado](https://github.com/claudiatd) | ||||
| - [Hank Gay](https://github.com/gthank) | ||||
| - [Jake Basile](https://github.com/jakebasile) | ||||
| - [Vladimir Berkutov](https://github.com/dair-targ) | ||||
| - [Jakob Kramer](https://github.com/gandaro) | ||||
| - [Chris Faulkner](https://github.com/faulkner) | ||||
| - [Alen Mujezinovic](https://github.com/flashingpumpkin) | ||||
| - [Praful Mathur](https://github.com/tictactix) | ||||
| - [Marc Abramowitz](https://github.com/msabramo) | ||||
| - [Ismail Badawi](https://github.com/isbadawi) | ||||
| - [Laurent Bachelier](https://github.com/laurentb) | ||||
| - [Isman Firmansyah](https://github.com/iromli) | ||||
| - [Simon Olofsson](https://github.com/simono) | ||||
| - [Churkin Oleg](https://github.com/Bahus) | ||||
| - [Jökull Sólberg Auðunsson](https://github.com/jokull) | ||||
| - [Matthew M. Boedicker](https://github.com/mmb) | ||||
| - [marblar](https://github.com/marblar) | ||||
| - [Tomek Wójcik](https://github.com/tomekwojcik) | ||||
| - [Davey Shafik](https://github.com/dshafik) | ||||
| - [cido](https://github.com/cido) | ||||
| - [Justin Bonnar](https://github.com/jargonjustin) | ||||
| - [Nathan LaFreniere](https://github.com/nlf) | ||||
| - [Matthias Lehmann](https://github.com/matleh) | ||||
| - [Dennis Brakhane](https://github.com/brakhane) | ||||
| - [Matt Layman](https://github.com/mblayman) | ||||
| - [Edward Yang](https://github.com/honorabrutroll) | ||||
| - [Aleksandr Vinokurov](https://github.com/aleksandr-vin) | ||||
| - [Jeff Byrnes](https://github.com/jeffbyrnes) | ||||
| - [Denis Belavin](https://github.com/LuckyDenis) | ||||
| - [Mickaël Schoentgen](https://github.com/BoboTiG) | ||||
| - [Elena Lape](https://github.com/elenalape) | ||||
| - [Rohit Sehgal](https://github.com/r0hi7) | ||||
| - [Bartłomiej Jacak](https://github.com/bartekjacak) | ||||
							
								
								
									
										43
									
								
								AUTHORS.rst
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								AUTHORS.rst
									
									
									
									
									
								
							| @@ -1,43 +0,0 @@ | ||||
| ============== | ||||
| HTTPie authors | ||||
| ============== | ||||
|  | ||||
| * `Jakub Roztocil <https://github.com/jakubroztocil>`_ | ||||
|  | ||||
|  | ||||
| Patches and ideas | ||||
| ----------------- | ||||
|  | ||||
| `Complete list of contributors on GitHub <https://github.com/httpie/httpie/graphs/contributors>`_ | ||||
|  | ||||
| * `Cláudia T. Delgado <https://github.com/claudiatd>`_ (logo) | ||||
| * `Hank Gay <https://github.com/gthank>`_ | ||||
| * `Jake Basile <https://github.com/jakebasile>`_ | ||||
| * `Vladimir Berkutov <https://github.com/dair-targ>`_ | ||||
| * `Jakob Kramer <https://github.com/gandaro>`_ | ||||
| * `Chris Faulkner <https://github.com/faulkner>`_ | ||||
| * `Alen Mujezinovic <https://github.com/flashingpumpkin>`_ | ||||
| * `Praful Mathur <https://github.com/tictactix>`_ | ||||
| * `Marc Abramowitz <https://github.com/msabramo>`_ | ||||
| * `Ismail Badawi <https://github.com/isbadawi>`_ | ||||
| * `Laurent Bachelier <https://github.com/laurentb>`_ | ||||
| * `Isman Firmansyah <https://github.com/iromli>`_ | ||||
| * `Simon Olofsson <https://github.com/simono>`_ | ||||
| * `Churkin Oleg <https://github.com/Bahus>`_ | ||||
| * `Jökull Sólberg Auðunsson <https://github.com/jokull>`_ | ||||
| * `Matthew M. Boedicker <https://github.com/mmb>`_ | ||||
| * `marblar <https://github.com/marblar>`_ | ||||
| * `Tomek Wójcik <https://github.com/tomekwojcik>`_ | ||||
| * `Davey Shafik <https://github.com/dshafik>`_ | ||||
| * `cido <https://github.com/cido>`_ | ||||
| * `Justin Bonnar <https://github.com/jargonjustin>`_ | ||||
| * `Nathan LaFreniere <https://github.com/nlf>`_ | ||||
| * `Matthias Lehmann <https://github.com/matleh>`_ | ||||
| * `Dennis Brakhane <https://github.com/brakhane>`_ | ||||
| * `Matt Layman <https://github.com/mblayman>`_ | ||||
| * `Edward Yang <https://github.com/honorabrutroll>`_ | ||||
| * `Aleksandr Vinokurov <https://github.com/aleksandr-vin>`_ | ||||
| * `Jeff Byrnes <https://github.com/jeffbyrnes>`_ | ||||
| * `Denis Belavin <https://github.com/LuckyDenis>`_ | ||||
| * `Mickaël Schoentgen <https://github.com/BoboTiG>`_ | ||||
| * `Rohit Sehgal <https://github.com/r0hi7>`_ | ||||
							
								
								
									
										367
									
								
								CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										367
									
								
								CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,367 @@ | ||||
| # Change Log | ||||
|  | ||||
| This document records all notable changes to [HTTPie](https://httpie.io). | ||||
| This project adheres to [Semantic Versioning](https://semver.org/). | ||||
|  | ||||
| ## [2.5.0-dev](https://github.com/httpie/httpie/compare/2.4.0...master) (unreleased) | ||||
|  | ||||
| - Added `--raw` to allow specifying the raw request body without extra processing as | ||||
|   an alternative to `stdin`. ([#534](https://github.com/httpie/httpie/issues/534)) | ||||
| - Added support for XML formatting. ([#1129](https://github.com/httpie/httpie/issues/1129)) | ||||
| - Added internal support for file-like object responses to improve adapter plugin support. ([#1094](https://github.com/httpie/httpie/issues/1094)) | ||||
| - Fixed `--continue --download` with a single byte to be downloaded left. ([#1032](https://github.com/httpie/httpie/issues/1032)) | ||||
| - Fixed `--verbose` HTTP 307 redirects with streamed request body. ([#1088](https://github.com/httpie/httpie/issues/1088)) | ||||
| - Fixed handling of session files with `Cookie:` followed by other headers. ([#1126](https://github.com/httpie/httpie/issues/1126)) | ||||
|  | ||||
| ## [2.4.0](https://github.com/httpie/httpie/compare/2.3.0...2.4.0) (2021-02-06) | ||||
|  | ||||
| - Added support for `--session` cookie expiration based on `Set-Cookie: max-age=<n>`. ([#1029](https://github.com/httpie/httpie/issues/1029)) | ||||
| - Show a `--check-status` warning with `--quiet` as well, not only when the output is redirected. ([#1026](https://github.com/httpie/httpie/issues/1026)) | ||||
| - Fixed upload with `--session` ([#1020](https://github.com/httpie/httpie/issues/1020)). | ||||
| - Fixed a missing blank line between request and response ([#1006](https://github.com/httpie/httpie/issues/1006)). | ||||
|  | ||||
| ## [2.3.0](https://github.com/httpie/httpie/compare/2.2.0...2.3.0) (2020-10-25) | ||||
|  | ||||
| - Added support for streamed uploads ([#201](https://github.com/httpie/httpie/issues/201)). | ||||
| - Added support for multipart upload streaming ([#684](https://github.com/httpie/httpie/issues/684)). | ||||
| - Added support for body-from-file upload streaming (`http pie.dev/post @file`). | ||||
| - Added `--chunked` to enable chunked transfer encoding ([#753](https://github.com/httpie/httpie/issues/753)). | ||||
| - Added `--multipart` to allow `multipart/form-data` encoding for non-file `--form` requests as well. | ||||
| - Added support for preserving field order in multipart requests ([#903](https://github.com/httpie/httpie/issues/903)). | ||||
| - Added `--boundary` to allow a custom boundary string for `multipart/form-data` requests. | ||||
| - Added support for combining cookies specified on the CLI and in a session file ([#932](https://github.com/httpie/httpie/issues/932)). | ||||
| - Added out of the box SOCKS support with no extra installation ([#904](https://github.com/httpie/httpie/issues/904)). | ||||
| - Added `--quiet, -q` flag to enforce silent behaviour. | ||||
| - Fixed the handling of invalid `expires` dates in `Set-Cookie` headers ([#963](https://github.com/httpie/httpie/issues/963)). | ||||
| - Removed Tox testing entirely ([#943](https://github.com/httpie/httpie/issues/943)). | ||||
|  | ||||
| ## [2.2.0](https://github.com/httpie/httpie/compare/2.1.0...2.2.0) (2020-06-18) | ||||
|  | ||||
| - Added support for custom content types for uploaded files ([#668](https://github.com/httpie/httpie/issues/668)). | ||||
| - Added support for `$XDG_CONFIG_HOME` ([#920](https://github.com/httpie/httpie/issues/920)). | ||||
| - Added support for `Set-Cookie`-triggered cookie expiration ([#853](https://github.com/httpie/httpie/issues/853)). | ||||
| - Added `--format-options` to allow disabling sorting, etc. ([#128](https://github.com/httpie/httpie/issues/128)) | ||||
| - Added `--sorted` and `--unsorted` shortcuts for (un)setting all sorting-related `--format-options`. ([#128](https://github.com/httpie/httpie/issues/128)) | ||||
| - Added `--ciphers` to allow configuring OpenSSL ciphers ([#870](https://github.com/httpie/httpie/issues/870)). | ||||
| - Added `netrc` support for auth plugins. Enabled for `--auth-type=basic` | ||||
|   and `digest`, 3rd parties may opt in ([#718](https://github.com/httpie/httpie/issues/718), [#719](https://github.com/httpie/httpie/issues/719), [#852](https://github.com/httpie/httpie/issues/852), [#934](https://github.com/httpie/httpie/issues/934)). | ||||
| - Fixed built-in plugins-related circular imports ([#925](https://github.com/httpie/httpie/issues/925)). | ||||
|  | ||||
| ## [2.1.0](https://github.com/httpie/httpie/compare/2.0.0...2.1.0) (2020-04-18) | ||||
|  | ||||
| - Added `--path-as-is` to bypass dot segment (`/../` or `/./`) | ||||
|   URL squashing ([#895](https://github.com/httpie/httpie/issues/895)). | ||||
| - Changed the default `Accept` header value for JSON requests from | ||||
|   `application/json, */*` to `application/json, */*;q=0.5` | ||||
|   to clearly indicate preference ([#488](https://github.com/httpie/httpie/issues/488)). | ||||
| - Fixed `--form` file upload mixed with redirected `stdin` error handling | ||||
|   ([#840](https://github.com/httpie/httpie/issues/840)). | ||||
|  | ||||
| ## [2.0.0](https://github.com/httpie/httpie/compare/1.0.3...2.0.0) (2020-01-12) | ||||
|  | ||||
| - Removed Python 2.7 support ([EOL Jan 2020](https://www.python.org/doc/sunset-python-2/). | ||||
| - Added `--offline` to allow building an HTTP request and printing it but not | ||||
|   actually sending it over the network. | ||||
| - Replaced the old collect-all-then-process handling of HTTP communication | ||||
|   with one-by-one processing of each HTTP request or response as they become | ||||
|   available. This means that you can see headers immediately, | ||||
|   see what is being sent even if the request fails, etc. | ||||
| - Removed automatic config file creation to avoid concurrency issues. | ||||
| - Removed the default 30-second connection `--timeout` limit. | ||||
| - Removed Python’s default limit of 100 response headers. | ||||
| - Added `--max-headers` to allow setting the max header limit. | ||||
| - Added `--compress` to allow request body compression. | ||||
| - Added `--ignore-netrc` to allow bypassing credentials from `.netrc`. | ||||
| - Added `https` alias command with `https://` as the default scheme. | ||||
| - Added `$ALL_PROXY` documentation. | ||||
| - Added type annotations throughout the codebase. | ||||
| - Added `tests/` to the PyPi package for the convenience of | ||||
|   downstream package maintainers. | ||||
| - Fixed an error when `stdin` was a closed fd. | ||||
| - Improved `--debug` output formatting. | ||||
|  | ||||
| ## [1.0.3](https://github.com/httpie/httpie/compare/1.0.2...1.0.3) (2019-08-26) | ||||
|  | ||||
| - Fixed CVE-2019-10751 — the way the output filename is generated for | ||||
|   `--download` requests without `--output` resulting in a redirect has | ||||
|   been changed to only consider the initial URL as the base for the generated | ||||
|   filename, and not the final one. This fixes a potential security issue under | ||||
|   the following scenario: | ||||
|  | ||||
|   1. A `--download` request with no explicit `--output` is made (e.g., | ||||
|      `$ http -d example.org/file.txt`), instructing httpie to | ||||
|      [generate the output filename](https://httpie.org/doc#downloaded-filename) | ||||
|      from the `Content-Disposition` response header, or from the URL if the header | ||||
|      is not provided. | ||||
|   2. The server handling the request has been modified by an attacker and | ||||
|      instead of the expected response the URL returns a redirect to another | ||||
|      URL, e.g., `attacker.example.org/.bash_profile`, whose response does | ||||
|      not provide  a `Content-Disposition` header (i.e., the base for the | ||||
|      generated filename becomes `.bash_profile` instead of `file.txt`). | ||||
|   3. Your current directory doesn’t already contain `.bash_profile` | ||||
|      (i.e., no unique suffix is added to the generated filename). | ||||
|   4. You don’t notice the potentially unexpected output filename | ||||
|      as reported by httpie in the console output | ||||
|      (e.g., `Downloading 100.00 B to ".bash_profile"`). | ||||
|  | ||||
|   Reported by Raul Onitza and Giulio Comi. | ||||
|  | ||||
| ## [1.0.2](https://github.com/httpie/httpie/compare/1.0.1...1.0.2) (2018-11-14) | ||||
|  | ||||
| - Fixed tests for installation with pyOpenSSL. | ||||
|  | ||||
| ## [1.0.1](https://github.com/httpie/httpie/compare/1.0.0...1.0.1) (2018-11-14) | ||||
|  | ||||
| - Removed external URL calls from tests. | ||||
|  | ||||
| ## [1.0.0](https://github.com/httpie/httpie/compare/0.9.9...1.0.0) (2018-11-02) | ||||
|  | ||||
| - Added `--style=auto` which follows the terminal ANSI color styles. | ||||
| - Added support for selecting TLS 1.3 via `--ssl=tls1.3` | ||||
|   (available once implemented in upstream libraries). | ||||
| - Added `true`/`false` as valid values for `--verify` | ||||
|   (in addition to `yes`/`no`) and the boolean value is case-insensitive. | ||||
| - Changed the default `--style` from `solarized` to `auto` (on Windows it stays `fruity`). | ||||
| - Fixed default headers being incorrectly case-sensitive. | ||||
| - Removed Python 2.6 support. | ||||
|  | ||||
| ## [0.9.9](https://github.com/httpie/httpie/compare/0.9.8...0.9.9) (2016-12-08) | ||||
|  | ||||
| - Fixed README. | ||||
|  | ||||
| ## [0.9.8](https://github.com/httpie/httpie/compare/0.9.6...0.9.8) (2016-12-08) | ||||
|  | ||||
| - Extended auth plugin API. | ||||
| - Added exit status code `7` for plugin errors. | ||||
| - Added support for `curses`-less Python installations. | ||||
| - Fixed `REQUEST_ITEM` arg incorrectly being reported as required. | ||||
| - Improved `CTRL-C` interrupt handling. | ||||
| - Added the standard exit status code `130` for keyboard interrupts. | ||||
|  | ||||
| ## [0.9.6](https://github.com/httpie/httpie/compare/0.9.4...0.9.6) (2016-08-13) | ||||
|  | ||||
| - Added Python 3 as a dependency for Homebrew installations | ||||
|   to ensure some of the newer HTTP features work out of the box | ||||
|   for macOS users (starting with HTTPie 0.9.4.). | ||||
| - Added the ability to unset a request header with `Header:`, and send an | ||||
|   empty value with `Header;`. | ||||
| - Added `--default-scheme <URL_SCHEME>` to enable things like | ||||
|   `$ alias https='http --default-scheme=https`. | ||||
| - Added `-I` as a shortcut for `--ignore-stdin`. | ||||
| - Added fish shell completion (located in `extras/httpie-completion.fish` | ||||
|   in the GitHub repo). | ||||
| - Updated `requests` to 2.10.0 so that SOCKS support can be added via | ||||
|   `pip install requests[socks]`. | ||||
| - Changed the default JSON `Accept` header from `application/json` | ||||
|   to `application/json, */*`. | ||||
| - Changed the pre-processing of request HTTP headers so that any leading | ||||
|   and trailing whitespace is removed. | ||||
|  | ||||
| ## [0.9.4](https://github.com/httpie/httpie/compare/0.9.3...0.9.4) (2016-07-01) | ||||
|  | ||||
| - Added `Content-Type` of files uploaded in `multipart/form-data` requests | ||||
| - Added `--ssl=<PROTOCOL>` to specify the desired SSL/TLS protocol version | ||||
|   to use for HTTPS requests. | ||||
| - Added JSON detection with `--json, -j` to work around incorrect | ||||
|   `Content-Type` | ||||
| - Added `--all` to show intermediate responses such as redirects (with `--follow`) | ||||
| - Added `--history-print, -P WHAT` to specify formatting of intermediate responses | ||||
| - Added `--max-redirects=N` (default 30) | ||||
| - Added `-A` as short name for `--auth-type` | ||||
| - Added `-F` as short name for `--follow` | ||||
| - Removed the `implicit_content_type` config option | ||||
|   (use `"default_options": ["--form"]` instead) | ||||
| - Redirected `stdout` doesn't trigger an error anymore when `--output FILE` | ||||
|   is set | ||||
| - Changed the default `--style` back to `solarized` for better support | ||||
|   of light and dark terminals | ||||
| - Improved `--debug` output | ||||
| - Fixed `--session` when used with `--download` | ||||
| - Fixed `--download` to trim too long filenames before saving the file | ||||
| - Fixed the handling of `Content-Type` with multiple `+subtype` parts | ||||
| - Removed the XML formatter as the implementation suffered from multiple issues | ||||
|  | ||||
| ## [0.9.3](https://github.com/httpie/httpie/compare/0.9.2...0.9.3) (2016-01-01) | ||||
|  | ||||
| - Changed the default color `--style` from `solarized` to `monokai` | ||||
| - Added basic Bash autocomplete support (need to be installed manually) | ||||
| - Added request details to connection error messages | ||||
| - Fixed `'requests.packages.urllib3' has no attribute 'disable_warnings'` | ||||
|   errors that occurred in some installations | ||||
| - Fixed colors and formatting on Windows | ||||
| - Fixed `--auth` prompt on Windows | ||||
|  | ||||
| ## [0.9.2](https://github.com/httpie/httpie/compare/0.9.1...0.9.2) (2015-02-24) | ||||
|  | ||||
| - Fixed compatibility with Requests 2.5.1 | ||||
| - Changed the default JSON `Content-Type` to `application/json` as UTF-8 | ||||
|   is the default JSON encoding | ||||
|  | ||||
| ## [0.9.1](https://github.com/httpie/httpie/compare/0.9.0...0.9.1) (2015-02-07) | ||||
|  | ||||
| - Added support for Requests transport adapter plugins | ||||
|   (see [httpie-unixsocket](https://github.com/httpie/httpie-unixsocket) | ||||
|   and [httpie-http2](https://github.com/httpie/httpie-http2)) | ||||
|  | ||||
| ## [0.9.0](https://github.com/httpie/httpie/compare/0.8.0...0.9.0) (2015-01-31) | ||||
|  | ||||
| - Added `--cert` and `--cert-key` parameters to specify a client side | ||||
|   certificate and private key for SSL | ||||
| - Improved unicode support | ||||
| - Improved terminal color depth detection via `curses` | ||||
| - To make it easier to deal with Windows paths in request items, `\` | ||||
|   now only escapes special characters (the ones that are used as key-value | ||||
|   separators by HTTPie) | ||||
| - Switched from `unittest` to `pytest` | ||||
| - Added Python `wheel` support | ||||
| - Various test suite improvements | ||||
| - Added `CONTRIBUTING` | ||||
| - Fixed `User-Agent` overwriting when used within a session | ||||
| - Fixed handling of empty passwords in URL credentials | ||||
| - Fixed multiple file uploads with the same form field name | ||||
| - Fixed `--output=/dev/null` on Linux | ||||
| - Miscellaneous bugfixes | ||||
|  | ||||
| ## [0.8.0](https://github.com/httpie/httpie/compare/0.7.1...0.8.0) (2014-01-25) | ||||
|  | ||||
| - Added `field=@file.txt` and `field:=@file.json` for embedding | ||||
|   the contents of text and JSON files into request data | ||||
| - Added curl-style shorthand for localhost | ||||
| - Fixed request `Host` header value output so that it doesn't contain | ||||
|   credentials, if included in the URL | ||||
|  | ||||
| ## [0.7.1](https://github.com/httpie/httpie/compare/0.6.0...0.7.1) (2013-09-24) | ||||
|  | ||||
| - Added `--ignore-stdin` | ||||
| - Added support for auth plugins | ||||
| - Improved `--help` output | ||||
| - Improved `Content-Disposition` parsing for `--download` mode | ||||
| - Update to Requests 2.0.0 | ||||
|  | ||||
| ## [0.6.0](https://github.com/httpie/httpie/compare/0.5.1...0.6.0) (2013-06-03) | ||||
|  | ||||
| - XML data is now formatted | ||||
| - `--session` and `--session-read-only` now also accept paths to | ||||
|   session files (eg. `http --session=/tmp/session.json example.org`) | ||||
|  | ||||
| ## [0.5.1](https://github.com/httpie/httpie/compare/0.5.0...0.5.1) (2013-05-13) | ||||
|  | ||||
| - `Content-*` and `If-*` request headers are not stored in sessions | ||||
|   anymore as they are request-specific | ||||
|  | ||||
| ## [0.5.0](https://github.com/httpie/httpie/compare/0.4.1...0.5.0) (2013-04-27) | ||||
|  | ||||
| - Added a download mode via `--download` | ||||
| - Fixes miscellaneous bugs | ||||
|  | ||||
| ## [0.4.1](https://github.com/httpie/httpie/compare/0.4.0...0.4.1) (2013-02-26) | ||||
|  | ||||
| - Fixed `setup.py` | ||||
|  | ||||
| ## [0.4.0](https://github.com/httpie/httpie/compare/0.3.0...0.4.0) (2013-02-22) | ||||
|  | ||||
| - Added Python 3.3 compatibility | ||||
| - Added Requests >= v1.0.4 compatibility | ||||
| - Added support for credentials in URL | ||||
| - Added `--no-option` for every `--option` to be config-friendly | ||||
| - Mutually exclusive arguments can be specified multiple times. The | ||||
|   last value is used | ||||
|  | ||||
| ## [0.3.0](https://github.com/httpie/httpie/compare/0.2.7...0.3.0) (2012-09-21) | ||||
|  | ||||
| - Allow output redirection on Windows | ||||
| - Added configuration file | ||||
| - Added persistent session support | ||||
| - Renamed `--allow-redirects` to `--follow` | ||||
| - Improved the usability of `http --help` | ||||
| - Fixed installation on Windows with Python 3 | ||||
| - Fixed colorized output on Windows with Python 3 | ||||
| - CRLF HTTP header field separation in the output | ||||
| - Added exit status code `2` for timed-out requests | ||||
| - Added the option to separate colorizing and formatting | ||||
|   (`--pretty=all`, `--pretty=colors` and `--pretty=format`) | ||||
|   `--ugly` has bee removed in favor of `--pretty=none` | ||||
|  | ||||
| ## [0.2.7](https://github.com/httpie/httpie/compare/0.2.5...0.2.7) (2012-08-07) | ||||
|  | ||||
| - Added compatibility with Requests 0.13.6 | ||||
| - Added streamed terminal output. `--stream, -S` can be used to enable | ||||
|   streaming also with `--pretty` and to ensure a more frequent output | ||||
|   flushing | ||||
| - Added support for efficient large file downloads | ||||
| - Sort headers by name (unless `--pretty=none`) | ||||
| - Response body is fetched only when needed (e.g., not with `--headers`) | ||||
| - Improved content type matching | ||||
| - Updated Solarized color scheme | ||||
| - Windows: Added `--output FILE` to store output into a file | ||||
|   (piping results in corrupted data on Windows) | ||||
| - Proper handling of binary requests and responses | ||||
| - Fixed printing of `multipart/form-data` requests | ||||
| - Renamed `--traceback` to `--debug` | ||||
|  | ||||
| ## [0.2.6](https://github.com/httpie/httpie/compare/0.2.5...0.2.6) (2012-07-26) | ||||
|  | ||||
| - The short option for `--headers` is now `-h` (`-t` has been | ||||
|   removed, for usage use `--help`) | ||||
| - Form data and URL parameters can have multiple fields with the same name | ||||
|   (e.g.,`http -f url a=1 a=2`) | ||||
| - Added `--check-status` to exit with an error on HTTP 3xx, 4xx and | ||||
|   5xx (3, 4, and 5, respectively) | ||||
| - If the output is piped to another program or redirected to a file, | ||||
|   the default behaviour is to only print the response body | ||||
|   (It can still be overwritten via the `--print` flag.) | ||||
| - Improved highlighting of HTTP headers | ||||
| - Added query string parameters (`param==value`) | ||||
| - Added support for terminal colors under Windows | ||||
|  | ||||
| ## [0.2.5](https://github.com/httpie/httpie/compare/0.2.2...0.2.5) (2012-07-17) | ||||
|  | ||||
| - Unicode characters in prettified JSON now don't get escaped for | ||||
|   improved readability | ||||
| - --auth now prompts for a password if only a username provided | ||||
| - Added support for request payloads from a file path with automatic | ||||
|   `Content-Type` (`http URL @/path`) | ||||
| - Fixed missing query string when displaying the request headers via | ||||
|   `--verbose` | ||||
| - Fixed Content-Type for requests with no data | ||||
|  | ||||
| ## [0.2.2](https://github.com/httpie/httpie/compare/0.2.1...0.2.2) (2012-06-24) | ||||
|  | ||||
| - The `METHOD` positional argument can now be omitted (defaults to | ||||
|   `GET`, or to `POST` with data) | ||||
| - Fixed --verbose --form | ||||
| - Added support for Tox | ||||
|  | ||||
| ## [0.2.1](https://github.com/httpie/httpie/compare/0.2.0...0.2.1) (2012-06-13) | ||||
|  | ||||
| - Added compatibility with `requests-0.12.1` | ||||
| - Dropped custom JSON and HTTP lexers in favor of the ones newly included | ||||
|   in `pygments-1.5` | ||||
|  | ||||
| ## [0.2.0](https://github.com/httpie/httpie/compare/0.1.6...0.2.0) (2012-04-25) | ||||
|  | ||||
| - Added Python 3 support | ||||
| - Added the ability to print the HTTP request as well as the response | ||||
|   (see `--print` and `--verbose`) | ||||
| - Added support for Digest authentication | ||||
| - Added file upload support | ||||
|   (`http -f POST file_field_name@/path/to/file`) | ||||
| - Improved syntax highlighting for JSON | ||||
| - Added support for field name escaping | ||||
| - Many bug fixes | ||||
|  | ||||
| ## [0.1.6](https://github.com/httpie/httpie/compare/0.1.5...0.1.6) (2012-03-04) | ||||
|  | ||||
| - Fixed `setup.py` | ||||
|  | ||||
| ## [0.1.5](https://github.com/httpie/httpie/compare/0.1.4...0.1.5) (2012-03-04) | ||||
|  | ||||
| - Many improvements and bug fixes | ||||
|  | ||||
| ## [0.1.4](https://github.com/httpie/httpie/compare/b966efa...0.1.4) (2012-02-28) | ||||
|  | ||||
| - Many improvements and bug fixes | ||||
|  | ||||
| ## [0.1.0](https://github.com/httpie/httpie/commit/b966efa) (2012-02-25) | ||||
|  | ||||
| - Initial public release | ||||
							
								
								
									
										511
									
								
								CHANGELOG.rst
									
									
									
									
									
								
							
							
						
						
									
										511
									
								
								CHANGELOG.rst
									
									
									
									
									
								
							| @@ -1,511 +0,0 @@ | ||||
| ========== | ||||
| Change Log | ||||
| ========== | ||||
|  | ||||
| This document records all notable changes to `HTTPie <https://httpie.org>`_. | ||||
| This project adheres to `Semantic Versioning <https://semver.org/>`_. | ||||
|  | ||||
|  | ||||
|  | ||||
| `2.5.0-dev`_ (unreleased) | ||||
| ------------------------- | ||||
| * Added ``--raw`` to allow specifying the raw request body without extra processing as | ||||
|   an alternative to ``stdin``. (`#534`_) | ||||
| * Added support for XML formatting. (`#1129`_) | ||||
| * Added internal support for file-like object responses to improve adapter plugin support. (`#1094`_) | ||||
| * Fixed ``--continue --download`` with a single byte to be downloaded left. (`#1032`_) | ||||
| * Fixed ``--verbose`` HTTP 307 redirects with streamed request body. (`#1088`_) | ||||
| * Fixed handling of session files with ``Cookie:`` followed by other headers. (`#1126`_) | ||||
|  | ||||
|  | ||||
| `2.4.0`_ (2021-02-06) | ||||
| --------------------- | ||||
| * Added support for ``--session`` cookie expiration based on ``Set-Cookie: max-age=<n>``. (`#1029`_) | ||||
| * Show a ``--check-status`` warning with ``--quiet`` as well, not only when the output is redirected. (`#1026`_) | ||||
| * Fixed upload with ``--session`` (`#1020`_). | ||||
| * Fixed a missing blank line between request and response (`#1006`_). | ||||
|  | ||||
|  | ||||
| `2.3.0`_ (2020-10-25) | ||||
| ------------------------- | ||||
|  | ||||
| * Added support for streamed uploads (`#201`_). | ||||
| * Added support for multipart upload streaming (`#684`_). | ||||
| * Added support for body-from-file upload streaming (``http pie.dev/post @file``). | ||||
| * Added ``--chunked`` to enable chunked transfer encoding (`#753`_). | ||||
| * Added ``--multipart`` to allow ``multipart/form-data`` encoding for non-file ``--form`` requests as well. | ||||
| * Added support for preserving field order in multipart requests (`#903`_). | ||||
| * Added ``--boundary`` to allow a custom boundary string for ``multipart/form-data`` requests. | ||||
| * Added support for combining cookies specified on the CLI and in a session file (`#932`_). | ||||
| * Added out of the box SOCKS support with no extra installation (`#904`_). | ||||
| * Added ``--quiet, -q`` flag to enforce silent behaviour. | ||||
| * Fixed the handling of invalid ``expires`` dates in ``Set-Cookie`` headers (`#963`_). | ||||
| * Removed Tox testing entirely (`#943`_). | ||||
|  | ||||
|  | ||||
| `2.2.0`_ (2020-06-18) | ||||
| ------------------------- | ||||
|  | ||||
| * Added support for custom content types for uploaded files (`#668`_). | ||||
| * Added support for ``$XDG_CONFIG_HOME`` (`#920`_). | ||||
| * Added support for ``Set-Cookie``-triggered cookie expiration (`#853`_). | ||||
| * Added ``--format-options`` to allow disabling sorting, etc. (`#128`_) | ||||
| * Added ``--sorted`` and ``--unsorted`` shortcuts for (un)setting all sorting-related ``--format-options``. (`#128`_) | ||||
| * Added ``--ciphers`` to allow configuring OpenSSL ciphers (`#870`_). | ||||
| * Added ``netrc`` support for auth plugins. Enabled for ``--auth-type=basic`` | ||||
|   and ``digest``, 3rd parties may opt in (`#718`_, `#719`_, `#852`_, `#934`_). | ||||
| * Fixed built-in plugins-related circular imports (`#925`_). | ||||
|  | ||||
|  | ||||
| `2.1.0`_ (2020-04-18) | ||||
| --------------------- | ||||
|  | ||||
| * Added ``--path-as-is`` to bypass dot segment (``/../`` or ``/./``) | ||||
|   URL squashing (`#895`_). | ||||
| * Changed the default ``Accept`` header value for JSON requests from | ||||
|   ``application/json, */*`` to ``application/json, */*;q=0.5`` | ||||
|   to clearly indicate preference (`#488`_). | ||||
| * Fixed ``--form`` file upload mixed with redirected ``stdin`` error handling | ||||
|   (`#840`_). | ||||
|  | ||||
|  | ||||
| `2.0.0`_ (2020-01-12) | ||||
| ------------------------- | ||||
| * Removed Python 2.7 support (`EOL Jan 2020 <https://www.python.org/doc/sunset-python-2/>`_). | ||||
| * Added ``--offline`` to allow building an HTTP request and printing it but not | ||||
|   actually sending it over the network. | ||||
| * Replaced the old collect-all-then-process handling of HTTP communication | ||||
|   with one-by-one processing of each HTTP request or response as they become | ||||
|   available. This means that you can see headers immediately, | ||||
|   see what is being sent even if the request fails, etc. | ||||
| * Removed automatic config file creation to avoid concurrency issues. | ||||
| * Removed the default 30-second connection ``--timeout`` limit. | ||||
| * Removed Python’s default limit of 100 response headers. | ||||
| * Added ``--max-headers`` to allow setting the max header limit. | ||||
| * Added ``--compress`` to allow request body compression. | ||||
| * Added ``--ignore-netrc`` to allow bypassing credentials from ``.netrc``. | ||||
| * Added ``https`` alias command with ``https://`` as the default scheme. | ||||
| * Added ``$ALL_PROXY`` documentation. | ||||
| * Added type annotations throughout the codebase. | ||||
| * Added ``tests/`` to the PyPi package for the convenience of | ||||
|   downstream package maintainers. | ||||
| * Fixed an error when ``stdin`` was a closed fd. | ||||
| * Improved ``--debug`` output formatting. | ||||
|  | ||||
|  | ||||
| `1.0.3`_ (2019-08-26) | ||||
| --------------------- | ||||
|  | ||||
| * Fixed CVE-2019-10751 — the way the output filename is generated for | ||||
|   ``--download`` requests without ``--output`` resulting in a redirect has | ||||
|   been changed to only consider the initial URL as the base for the generated | ||||
|   filename, and not the final one. This fixes a potential security issue under | ||||
|   the following scenario: | ||||
|  | ||||
|   1. A ``--download`` request with no explicit ``--output`` is made (e.g., | ||||
|      ``$ http -d example.org/file.txt``), instructing httpie to | ||||
|      `generate the output filename <https://httpie.org/doc#downloaded-filename>`_ | ||||
|      from the ``Content-Disposition`` response header, or from the URL if the header | ||||
|      is not provided. | ||||
|   2. The server handling the request has been modified by an attacker and | ||||
|      instead of the expected response the URL returns a redirect to another | ||||
|      URL, e.g., ``attacker.example.org/.bash_profile``, whose response does | ||||
|      not provide a ``Content-Disposition`` header (i.e., the base for the | ||||
|      generated filename becomes ``.bash_profile`` instead of ``file.txt``). | ||||
|   3. Your current directory doesn’t already contain ``.bash_profile`` | ||||
|      (i.e., no unique suffix is added to the generated filename). | ||||
|   4. You don’t notice the potentially unexpected output filename | ||||
|      as reported by httpie in the console output | ||||
|      (e.g., ``Downloading 100.00 B to ".bash_profile"``). | ||||
|  | ||||
|   Reported by Raul Onitza and Giulio Comi. | ||||
|  | ||||
|  | ||||
| `1.0.2`_ (2018-11-14) | ||||
| ------------------------- | ||||
|  | ||||
| * Fixed tests for installation with pyOpenSSL. | ||||
|  | ||||
|  | ||||
| `1.0.1`_ (2018-11-14) | ||||
| ------------------------- | ||||
|  | ||||
| * Removed external URL calls from tests. | ||||
|  | ||||
|  | ||||
| `1.0.0`_ (2018-11-02) | ||||
| ------------------------- | ||||
|  | ||||
| * Added ``--style=auto`` which follows the terminal ANSI color styles. | ||||
| * Added support for selecting TLS 1.3 via ``--ssl=tls1.3`` | ||||
|   (available once implemented in upstream libraries). | ||||
| * Added ``true``/``false`` as valid values for ``--verify`` | ||||
|   (in addition to ``yes``/``no``) and the boolean value is case-insensitive. | ||||
| * Changed the default ``--style`` from ``solarized`` to ``auto`` (on Windows it stays ``fruity``). | ||||
| * Fixed default headers being incorrectly case-sensitive. | ||||
| * Removed Python 2.6 support. | ||||
|  | ||||
|  | ||||
|  | ||||
| `0.9.9`_ (2016-12-08) | ||||
| --------------------- | ||||
|  | ||||
| * Fixed README. | ||||
|  | ||||
|  | ||||
| `0.9.8`_ (2016-12-08) | ||||
| --------------------- | ||||
|  | ||||
| * Extended auth plugin API. | ||||
| * Added exit status code ``7`` for plugin errors. | ||||
| * Added support for ``curses``-less Python installations. | ||||
| * Fixed ``REQUEST_ITEM`` arg incorrectly being reported as required. | ||||
| * Improved ``CTRL-C`` interrupt handling. | ||||
| * Added the standard exit status code ``130`` for keyboard interrupts. | ||||
|  | ||||
|  | ||||
| `0.9.6`_ (2016-08-13) | ||||
| --------------------- | ||||
|  | ||||
| * Added Python 3 as a dependency for Homebrew installations | ||||
|   to ensure some of the newer HTTP features work out of the box | ||||
|   for macOS users (starting with HTTPie 0.9.4.). | ||||
| * Added the ability to unset a request header with ``Header:``, and send an | ||||
|   empty value with ``Header;``. | ||||
| * Added ``--default-scheme <URL_SCHEME>`` to enable things like | ||||
|   ``$ alias https='http --default-scheme=https``. | ||||
| * Added ``-I`` as a shortcut for ``--ignore-stdin``. | ||||
| * Added fish shell completion (located in ``extras/httpie-completion.fish`` | ||||
|   in the GitHub repo). | ||||
| * Updated ``requests`` to 2.10.0 so that SOCKS support can be added via | ||||
|   ``python -m pip install requests[socks]``. | ||||
| * Changed the default JSON ``Accept`` header from ``application/json`` | ||||
|   to ``application/json, */*``. | ||||
| * Changed the pre-processing of request HTTP headers so that any leading | ||||
|   and trailing whitespace is removed. | ||||
|  | ||||
|  | ||||
| `0.9.4`_ (2016-07-01) | ||||
| --------------------- | ||||
|  | ||||
| * Added ``Content-Type`` of files uploaded in ``multipart/form-data`` requests | ||||
| * Added ``--ssl=<PROTOCOL>`` to specify the desired SSL/TLS protocol version | ||||
|   to use for HTTPS requests. | ||||
| * Added JSON detection with ``--json, -j`` to work around incorrect | ||||
|   ``Content-Type`` | ||||
| * Added ``--all`` to show intermediate responses such as redirects (with ``--follow``) | ||||
| * Added ``--history-print, -P WHAT`` to specify formatting of intermediate responses | ||||
| * Added ``--max-redirects=N`` (default 30) | ||||
| * Added ``-A`` as short name for ``--auth-type`` | ||||
| * Added ``-F`` as short name for ``--follow`` | ||||
| * Removed the ``implicit_content_type`` config option | ||||
|   (use ``"default_options": ["--form"]`` instead) | ||||
| * Redirected ``stdout`` doesn't trigger an error anymore when ``--output FILE`` | ||||
|   is set | ||||
| * Changed the default ``--style`` back to ``solarized`` for better support | ||||
|   of light and dark terminals | ||||
| * Improved ``--debug`` output | ||||
| * Fixed ``--session`` when used with ``--download`` | ||||
| * Fixed ``--download`` to trim too long filenames before saving the file | ||||
| * Fixed the handling of ``Content-Type`` with multiple ``+subtype`` parts | ||||
| * Removed the XML formatter as the implementation suffered from multiple issues | ||||
|  | ||||
|  | ||||
|  | ||||
| `0.9.3`_ (2016-01-01) | ||||
| --------------------- | ||||
|  | ||||
| * Changed the default color ``--style`` from ``solarized`` to ``monokai`` | ||||
| * Added basic Bash autocomplete support (need to be installed manually) | ||||
| * Added request details to connection error messages | ||||
| * Fixed ``'requests.packages.urllib3' has no attribute 'disable_warnings'`` | ||||
|   errors that occurred in some installations | ||||
| * Fixed colors and formatting on Windows | ||||
| * Fixed ``--auth`` prompt on Windows | ||||
|  | ||||
|  | ||||
| `0.9.2`_ (2015-02-24) | ||||
| --------------------- | ||||
|  | ||||
| * Fixed compatibility with Requests 2.5.1 | ||||
| * Changed the default JSON ``Content-Type`` to ``application/json`` as UTF-8 | ||||
|   is the default JSON encoding | ||||
|  | ||||
|  | ||||
| `0.9.1`_ (2015-02-07) | ||||
| --------------------- | ||||
|  | ||||
| * Added support for Requests transport adapter plugins | ||||
|   (see `httpie-unixsocket <https://github.com/httpie/httpie-unixsocket>`_ | ||||
|   and `httpie-http2 <https://github.com/httpie/httpie-http2>`_) | ||||
|  | ||||
|  | ||||
| `0.9.0`_ (2015-01-31) | ||||
| --------------------- | ||||
|  | ||||
| * Added ``--cert`` and ``--cert-key`` parameters to specify a client side | ||||
|   certificate and private key for SSL | ||||
| * Improved unicode support | ||||
| * Improved terminal color depth detection via ``curses`` | ||||
| * To make it easier to deal with Windows paths in request items, ``\`` | ||||
|   now only escapes special characters (the ones that are used as key-value | ||||
|   separators by HTTPie) | ||||
| * Switched from ``unittest`` to ``pytest`` | ||||
| * Added Python `wheel` support | ||||
| * Various test suite improvements | ||||
| * Added ``CONTRIBUTING`` | ||||
| * Fixed ``User-Agent`` overwriting when used within a session | ||||
| * Fixed handling of empty passwords in URL credentials | ||||
| * Fixed multiple file uploads with the same form field name | ||||
| * Fixed ``--output=/dev/null`` on Linux | ||||
| * Miscellaneous bugfixes | ||||
|  | ||||
|  | ||||
| `0.8.0`_ (2014-01-25) | ||||
| --------------------- | ||||
|  | ||||
| * Added ``field=@file.txt`` and ``field:=@file.json`` for embedding | ||||
|   the contents of text and JSON files into request data | ||||
| * Added curl-style shorthand for localhost | ||||
| * Fixed request ``Host`` header value output so that it doesn't contain | ||||
|   credentials, if included in the URL | ||||
|  | ||||
|  | ||||
| `0.7.1`_ (2013-09-24) | ||||
| --------------------- | ||||
|  | ||||
| * Added ``--ignore-stdin`` | ||||
| * Added support for auth plugins | ||||
| * Improved ``--help`` output | ||||
| * Improved ``Content-Disposition`` parsing for ``--download`` mode | ||||
| * Update to Requests 2.0.0 | ||||
|  | ||||
|  | ||||
| `0.6.0`_ (2013-06-03) | ||||
| --------------------- | ||||
|  | ||||
| * XML data is now formatted | ||||
| * ``--session`` and ``--session-read-only`` now also accept paths to | ||||
|   session files (e.g. ``http --session=/tmp/session.json example.org``) | ||||
|  | ||||
|  | ||||
| `0.5.1`_ (2013-05-13) | ||||
| --------------------- | ||||
|  | ||||
| * ``Content-*`` and ``If-*`` request headers are not stored in sessions | ||||
|   anymore as they are request-specific | ||||
|  | ||||
|  | ||||
| `0.5.0`_ (2013-04-27) | ||||
| --------------------- | ||||
|  | ||||
| * Added a download mode via ``--download`` | ||||
| * Fixes miscellaneous bugs | ||||
|  | ||||
|  | ||||
| `0.4.1`_ (2013-02-26) | ||||
| --------------------- | ||||
|  | ||||
| * Fixed ``setup.py`` | ||||
|  | ||||
|  | ||||
| `0.4.0`_ (2013-02-22) | ||||
| --------------------- | ||||
|  | ||||
| * Added Python 3.3 compatibility | ||||
| * Added Requests >= v1.0.4 compatibility | ||||
| * Added support for credentials in URL | ||||
| * Added ``--no-option`` for every ``--option`` to be config-friendly | ||||
| * Mutually exclusive arguments can be specified multiple times. The | ||||
|   last value is used | ||||
|  | ||||
|  | ||||
| `0.3.0`_ (2012-09-21) | ||||
| --------------------- | ||||
|  | ||||
| * Allow output redirection on Windows | ||||
| * Added configuration file | ||||
| * Added persistent session support | ||||
| * Renamed ``--allow-redirects`` to ``--follow`` | ||||
| * Improved the usability of ``http --help`` | ||||
| * Fixed installation on Windows with Python 3 | ||||
| * Fixed colorized output on Windows with Python 3 | ||||
| * CRLF HTTP header field separation in the output | ||||
| * Added exit status code ``2`` for timed-out requests | ||||
| * Added the option to separate colorizing and formatting | ||||
|   (``--pretty=all``, ``--pretty=colors`` and ``--pretty=format``) | ||||
|   ``--ugly`` has bee removed in favor of ``--pretty=none`` | ||||
|  | ||||
|  | ||||
| `0.2.7`_ (2012-08-07) | ||||
| --------------------- | ||||
|  | ||||
| * Added compatibility with Requests 0.13.6 | ||||
| * Added streamed terminal output. ``--stream, -S`` can be used to enable | ||||
|   streaming also with ``--pretty`` and to ensure a more frequent output | ||||
|   flushing | ||||
| * Added support for efficient large file downloads | ||||
| * Sort headers by name (unless ``--pretty=none``) | ||||
| * Response body is fetched only when needed (e.g., not with ``--headers``) | ||||
| * Improved content type matching | ||||
| * Updated Solarized color scheme | ||||
| * Windows: Added ``--output FILE`` to store output into a file | ||||
|   (piping results in corrupted data on Windows) | ||||
| * Proper handling of binary requests and responses | ||||
| * Fixed printing of ``multipart/form-data`` requests | ||||
| * Renamed ``--traceback`` to ``--debug`` | ||||
|  | ||||
|  | ||||
| `0.2.6`_ (2012-07-26) | ||||
| --------------------- | ||||
|  | ||||
| * The short option for ``--headers`` is now ``-h`` (``-t`` has been | ||||
|   removed, for usage use ``--help``) | ||||
| * Form data and URL parameters can have multiple fields with the same name | ||||
|   (e.g.,``http -f url a=1 a=2``) | ||||
| * Added ``--check-status`` to exit with an error on HTTP 3xx, 4xx and | ||||
|   5xx (3, 4, and 5, respectively) | ||||
| * If the output is piped to another program or redirected to a file, | ||||
|   the default behaviour is to only print the response body | ||||
|   (It can still be overwritten via the ``--print`` flag.) | ||||
| * Improved highlighting of HTTP headers | ||||
| * Added query string parameters (``param==value``) | ||||
| * Added support for terminal colors under Windows | ||||
|  | ||||
|  | ||||
| `0.2.5`_ (2012-07-17) | ||||
| --------------------- | ||||
|  | ||||
| * Unicode characters in prettified JSON now don't get escaped for | ||||
|   improved readability | ||||
| * --auth now prompts for a password if only a username provided | ||||
| * Added support for request payloads from a file path with automatic | ||||
|   ``Content-Type`` (``http URL @/path``) | ||||
| * Fixed missing query string when displaying the request headers via | ||||
|   ``--verbose`` | ||||
| * Fixed Content-Type for requests with no data | ||||
|  | ||||
|  | ||||
| `0.2.2`_ (2012-06-24) | ||||
| --------------------- | ||||
|  | ||||
| * The ``METHOD`` positional argument can now be omitted (defaults to | ||||
|   ``GET``, or to ``POST`` with data) | ||||
| * Fixed --verbose --form | ||||
| * Added support for Tox | ||||
|  | ||||
|  | ||||
| `0.2.1`_ (2012-06-13) | ||||
| --------------------- | ||||
|  | ||||
| * Added compatibility with ``requests-0.12.1`` | ||||
| * Dropped custom JSON and HTTP lexers in favor of the ones newly included | ||||
|   in ``pygments-1.5`` | ||||
|  | ||||
|  | ||||
| `0.2.0`_ (2012-04-25) | ||||
| --------------------- | ||||
|  | ||||
| * Added Python 3 support | ||||
| * Added the ability to print the HTTP request as well as the response | ||||
|   (see ``--print`` and ``--verbose``) | ||||
| * Added support for Digest authentication | ||||
| * Added file upload support | ||||
|   (``http -f POST file_field_name@/path/to/file``) | ||||
| * Improved syntax highlighting for JSON | ||||
| * Added support for field name escaping | ||||
| * Many bug fixes | ||||
|  | ||||
|  | ||||
| `0.1.6`_ (2012-03-04) | ||||
| --------------------- | ||||
|  | ||||
| * Fixed ``setup.py`` | ||||
|  | ||||
|  | ||||
| `0.1.5`_ (2012-03-04) | ||||
| --------------------- | ||||
|  | ||||
| * Many improvements and bug fixes | ||||
|  | ||||
|  | ||||
| `0.1.4`_ (2012-02-28) | ||||
| --------------------- | ||||
|  | ||||
| * Many improvements and bug fixes | ||||
|  | ||||
|  | ||||
| `0.1.0`_ (2012-02-25) | ||||
| --------------------- | ||||
|  | ||||
| * Initial public release | ||||
|  | ||||
|  | ||||
| .. _`0.1.0`: https://github.com/httpie/httpie/commit/b966efa | ||||
| .. _0.1.4: https://github.com/httpie/httpie/compare/b966efa...0.1.4 | ||||
| .. _0.1.5: https://github.com/httpie/httpie/compare/0.1.4...0.1.5 | ||||
| .. _0.1.6: https://github.com/httpie/httpie/compare/0.1.5...0.1.6 | ||||
| .. _0.2.0: https://github.com/httpie/httpie/compare/0.1.6...0.2.0 | ||||
| .. _0.2.1: https://github.com/httpie/httpie/compare/0.2.0...0.2.1 | ||||
| .. _0.2.2: https://github.com/httpie/httpie/compare/0.2.1...0.2.2 | ||||
| .. _0.2.5: https://github.com/httpie/httpie/compare/0.2.2...0.2.5 | ||||
| .. _0.2.6: https://github.com/httpie/httpie/compare/0.2.5...0.2.6 | ||||
| .. _0.2.7: https://github.com/httpie/httpie/compare/0.2.5...0.2.7 | ||||
| .. _0.3.0: https://github.com/httpie/httpie/compare/0.2.7...0.3.0 | ||||
| .. _0.4.0: https://github.com/httpie/httpie/compare/0.3.0...0.4.0 | ||||
| .. _0.4.1: https://github.com/httpie/httpie/compare/0.4.0...0.4.1 | ||||
| .. _0.5.0: https://github.com/httpie/httpie/compare/0.4.1...0.5.0 | ||||
| .. _0.5.1: https://github.com/httpie/httpie/compare/0.5.0...0.5.1 | ||||
| .. _0.6.0: https://github.com/httpie/httpie/compare/0.5.1...0.6.0 | ||||
| .. _0.7.1: https://github.com/httpie/httpie/compare/0.6.0...0.7.1 | ||||
| .. _0.8.0: https://github.com/httpie/httpie/compare/0.7.1...0.8.0 | ||||
| .. _0.9.0: https://github.com/httpie/httpie/compare/0.8.0...0.9.0 | ||||
| .. _0.9.1: https://github.com/httpie/httpie/compare/0.9.0...0.9.1 | ||||
| .. _0.9.2: https://github.com/httpie/httpie/compare/0.9.1...0.9.2 | ||||
| .. _0.9.3: https://github.com/httpie/httpie/compare/0.9.2...0.9.3 | ||||
| .. _0.9.4: https://github.com/httpie/httpie/compare/0.9.3...0.9.4 | ||||
| .. _0.9.6: https://github.com/httpie/httpie/compare/0.9.4...0.9.6 | ||||
| .. _0.9.8: https://github.com/httpie/httpie/compare/0.9.6...0.9.8 | ||||
| .. _0.9.9: https://github.com/httpie/httpie/compare/0.9.8...0.9.9 | ||||
| .. _1.0.0: https://github.com/httpie/httpie/compare/0.9.9...1.0.0 | ||||
| .. _1.0.1: https://github.com/httpie/httpie/compare/1.0.0...1.0.1 | ||||
| .. _1.0.2: https://github.com/httpie/httpie/compare/1.0.1...1.0.2 | ||||
| .. _1.0.3: https://github.com/httpie/httpie/compare/1.0.2...1.0.3 | ||||
| .. _2.0.0: https://github.com/httpie/httpie/compare/1.0.3...2.0.0 | ||||
| .. _2.1.0: https://github.com/httpie/httpie/compare/2.0.0...2.1.0 | ||||
| .. _2.2.0: https://github.com/httpie/httpie/compare/2.1.0...2.2.0 | ||||
| .. _2.3.0: https://github.com/httpie/httpie/compare/2.2.0...2.3.0 | ||||
| .. _2.4.0: https://github.com/httpie/httpie/compare/2.3.0...2.4.0 | ||||
| .. _2.5.0-dev: https://github.com/httpie/httpie/compare/2.4.0...master | ||||
|  | ||||
| .. _#128: https://github.com/httpie/httpie/issues/128 | ||||
| .. _#201: https://github.com/httpie/httpie/issues/201 | ||||
| .. _#488: https://github.com/httpie/httpie/issues/488 | ||||
| .. _#534: https://github.com/httpie/httpie/issues/534 | ||||
| .. _#668: https://github.com/httpie/httpie/issues/668 | ||||
| .. _#684: https://github.com/httpie/httpie/issues/684 | ||||
| .. _#718: https://github.com/httpie/httpie/issues/718 | ||||
| .. _#719: https://github.com/httpie/httpie/issues/719 | ||||
| .. _#753: https://github.com/httpie/httpie/issues/753 | ||||
| .. _#840: https://github.com/httpie/httpie/issues/840 | ||||
| .. _#853: https://github.com/httpie/httpie/issues/853 | ||||
| .. _#852: https://github.com/httpie/httpie/issues/852 | ||||
| .. _#870: https://github.com/httpie/httpie/issues/870 | ||||
| .. _#895: https://github.com/httpie/httpie/issues/895 | ||||
| .. _#903: https://github.com/httpie/httpie/issues/903 | ||||
| .. _#920: https://github.com/httpie/httpie/issues/920 | ||||
| .. _#904: https://github.com/httpie/httpie/issues/904 | ||||
| .. _#925: https://github.com/httpie/httpie/issues/925 | ||||
| .. _#932: https://github.com/httpie/httpie/issues/932 | ||||
| .. _#934: https://github.com/httpie/httpie/issues/934 | ||||
| .. _#943: https://github.com/httpie/httpie/issues/943 | ||||
| .. _#963: https://github.com/httpie/httpie/issues/963 | ||||
| .. _#1006: https://github.com/httpie/httpie/issues/1006 | ||||
| .. _#1020: https://github.com/httpie/httpie/issues/1020 | ||||
| .. _#1026: https://github.com/httpie/httpie/issues/1026 | ||||
| .. _#1029: https://github.com/httpie/httpie/issues/1029 | ||||
| .. _#1032: https://github.com/httpie/httpie/issues/1032 | ||||
| .. _#1088: https://github.com/httpie/httpie/issues/1088 | ||||
| .. _#1094: https://github.com/httpie/httpie/issues/1094 | ||||
| .. _#1126: https://github.com/httpie/httpie/issues/1126 | ||||
| .. _#1129: https://github.com/httpie/httpie/issues/1129 | ||||
| @@ -14,21 +14,21 @@ appearance, race, religion, or sexual identity and orientation. | ||||
| Examples of behavior that contributes to creating a positive environment | ||||
| include: | ||||
|  | ||||
| * Using welcoming and inclusive language | ||||
| * Being respectful of differing viewpoints and experiences | ||||
| * Gracefully accepting constructive criticism | ||||
| * Focusing on what is best for the community | ||||
| * Showing empathy towards other community members | ||||
| - Using welcoming and inclusive language | ||||
| - Being respectful of differing viewpoints and experiences | ||||
| - Gracefully accepting constructive criticism | ||||
| - Focusing on what is best for the community | ||||
| - Showing empathy towards other community members | ||||
|  | ||||
| Examples of unacceptable behavior by participants include: | ||||
|  | ||||
| * The use of sexualized language or imagery and unwelcome sexual attention or | ||||
| - The use of sexualized language or imagery and unwelcome sexual attention or | ||||
|   advances | ||||
| * Trolling, insulting/derogatory comments, and personal or political attacks | ||||
| * Public or private harassment | ||||
| * Publishing others' private information, such as a physical or electronic | ||||
| - Trolling, insulting/derogatory comments, and personal or political attacks | ||||
| - Public or private harassment | ||||
| - Publishing others' private information, such as a physical or electronic | ||||
|   address, without explicit permission | ||||
| * Other conduct which could reasonably be considered inappropriate in a | ||||
| - Other conduct which could reasonably be considered inappropriate in a | ||||
|   professional setting | ||||
|  | ||||
| ## Our Responsibilities | ||||
| @@ -67,10 +67,8 @@ members of the project's leadership. | ||||
|  | ||||
| ## Attribution | ||||
|  | ||||
| This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, | ||||
| available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html | ||||
|  | ||||
| [homepage]: https://www.contributor-covenant.org | ||||
| This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), | ||||
| version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html | ||||
|  | ||||
| For answers to common questions about this code of conduct, see | ||||
| https://www.contributor-covenant.org/faq | ||||
|   | ||||
							
								
								
									
										196
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,196 @@ | ||||
| # Contributing to HTTPie | ||||
|  | ||||
| Bug reports and code and documentation patches are welcome. You can | ||||
| help this project also by using the development version of HTTPie | ||||
| and by reporting any bugs you might encounter. | ||||
|  | ||||
| ## 1. Reporting bugs | ||||
|  | ||||
| **It's important that you provide the full command argument list | ||||
| as well as the output of the failing command.** | ||||
|  | ||||
| Use the `--debug` flag and copy&paste both the command and its output | ||||
| to your bug report, e.g.: | ||||
|  | ||||
| ```bash | ||||
| $ http --debug <COMPLETE ARGUMENT LIST THAT TRIGGERS THE ERROR> | ||||
| <COMPLETE OUTPUT> | ||||
| ``` | ||||
|  | ||||
| ## 2. Contributing Code and Docs | ||||
|  | ||||
| Before working on a new feature or a bug, please browse [existing issues](https://github.com/httpie/httpie/issues) | ||||
| to see whether it has previously been discussed. | ||||
|  | ||||
| If your change alters HTTPie’s behaviour or interface, it's a good idea to | ||||
| discuss it before you start working on it. | ||||
|  | ||||
| If you are fixing an issue, the first step should be to create a test case that | ||||
| reproduces the incorrect behaviour. That will also help you to build an | ||||
| understanding of the issue at hand. | ||||
|  | ||||
| **Pull requests introducing code changes without tests | ||||
| will generally not get merged. The same goes for PRs changing HTTPie’s | ||||
| behaviour and not providing documentation.** | ||||
|  | ||||
| Conversely, PRs consisting of documentation improvements or tests | ||||
| for existing-yet-previously-untested behavior will very likely be merged. | ||||
| Therefore, docs and tests improvements are a great candidate for your first | ||||
| contribution. | ||||
|  | ||||
| Consider also adding a [CHANGELOG](https://github.com/httpie/httpie/blob/master/CHANGELOG.md) entry for your changes. | ||||
|  | ||||
| ### Development Environment | ||||
|  | ||||
| #### Getting the code | ||||
|  | ||||
| Go to https://github.com/httpie/httpie and fork the project repository. | ||||
|  | ||||
| ```bash | ||||
| # Clone your fork | ||||
| $ git clone git@github.com:<YOU>/httpie.git | ||||
|  | ||||
| # Enter the project directory | ||||
| $ cd httpie | ||||
|  | ||||
| # Create a branch for your changes | ||||
| $ git checkout -b my_topical_branch | ||||
| ``` | ||||
|  | ||||
| #### Setup | ||||
|  | ||||
| The [Makefile](https://github.com/httpie/httpie/blob/master/Makefile) contains a bunch of tasks to get you started. Just run | ||||
| the following command, which: | ||||
|  | ||||
| - Creates an isolated Python virtual environment inside `./venv` | ||||
|   (via the standard library [venv](https://docs.python.org/3/library/venv.html) tool); | ||||
| - installs all dependencies and also installs HTTPie | ||||
|   (in editable mode so that the `http` command will point to your | ||||
|   working copy). | ||||
| - and runs tests (It is the same as running `make install test`). | ||||
|  | ||||
| ```bash | ||||
| $ make | ||||
| ``` | ||||
|  | ||||
| #### Python virtual environment | ||||
|  | ||||
| Activate the Python virtual environment—created via the `make install` | ||||
| task during [setup](#setup) for your active shell session using the following command: | ||||
|  | ||||
| ```bash | ||||
| $ source venv/bin/activate | ||||
| ``` | ||||
|  | ||||
| (If you use `virtualenvwrapper`, you can also use `workon httpie` to | ||||
| activate the environment — we have created a symlink for you. It’s a bit of | ||||
| a hack but it works™.) | ||||
|  | ||||
| You should now see `(httpie)` next to your shell prompt, and | ||||
| the `http` command should point to your development copy: | ||||
|  | ||||
| ``` | ||||
| (httpie) ~/Code/httpie $ which http | ||||
| /Users/<user>/Code/httpie/venv/bin/http | ||||
| (httpie) ~/Code/httpie $ http --version | ||||
| 2.0.0-dev | ||||
| ``` | ||||
|  | ||||
| (Btw, you don’t need to activate the virtual environment if you just want | ||||
| run some of the `make` tasks. You can also invoke the development | ||||
| version of HTTPie directly with `./venv/bin/http` without having to activate | ||||
| the environment first. The same goes for `./venv/bin/pytest`, etc.). | ||||
|  | ||||
| ### Making Changes | ||||
|  | ||||
| Please make sure your changes conform to [Style Guide for Python Code](https://python.org/dev/peps/pep-0008/) (PEP8) | ||||
| and that `make pycodestyle` passes. | ||||
|  | ||||
| ### Testing & CI | ||||
|  | ||||
| Please add tests for any new features and bug fixes. | ||||
|  | ||||
| When you open a Pull Request, [GitHub Actions](https://github.com/httpie/httpie/actions) will automatically run HTTPie’s [test suite](https://github.com/httpie/httpie/tree/master/tests) against your code, so please make sure all checks pass. | ||||
|  | ||||
| #### Running tests locally | ||||
|  | ||||
| HTTPie uses the [pytest](https://pytest.org/) runner. | ||||
|  | ||||
| ```bash | ||||
| # Run tests on the current Python interpreter with coverage. | ||||
| $ make test | ||||
|  | ||||
| # Run tests with coverage | ||||
| $ make test-cover | ||||
|  | ||||
| # Test PEP8 compliance | ||||
| $ make codestyle | ||||
|  | ||||
| # Run extended tests — for code as well as .md files syntax, packaging, etc. | ||||
| $ make test-all | ||||
| ``` | ||||
|  | ||||
| #### Running specific tests | ||||
|  | ||||
| After you have activated your virtual environment (see [setup](#setup)), you | ||||
| can run specific tests from the terminal: | ||||
|  | ||||
| ```bash | ||||
| # Run specific tests on the current Python | ||||
| $ python -m pytest tests/test_uploads.py | ||||
| $ python -m pytest tests/test_uploads.py::TestMultipartFormDataFileUpload | ||||
| $ python -m pytest tests/test_uploads.py::TestMultipartFormDataFileUpload::test_upload_ok | ||||
| ``` | ||||
|  | ||||
| See [Makefile](https://github.com/httpie/httpie/blob/master/Makefile) for additional development utilities. | ||||
|  | ||||
| #### Windows | ||||
|  | ||||
| If you are on a Windows machine and not able to run `make`, | ||||
| follow the next steps for a basic setup. As a prerequisite, you need to have | ||||
| Python 3.6+ installed. | ||||
|  | ||||
| Create a virtual environment and activate it: | ||||
|  | ||||
| ```powershell | ||||
| C:\> python -m venv --prompt httpie venv | ||||
| C:\> venv\Scripts\activate | ||||
| ``` | ||||
|  | ||||
| Install HTTPie in editable mode with all the dependencies: | ||||
|  | ||||
| ```powershell | ||||
| C:\> python -m pip install --upgrade -e . -r requirements-dev.txt | ||||
| ``` | ||||
|  | ||||
| You should now see `(httpie)` next to your shell prompt, and | ||||
| the `http` command should point to your development copy: | ||||
|  | ||||
| ```powershell | ||||
| # In PowerShell: | ||||
| (httpie) PS C:\Users\ovezovs\httpie> Get-Command http | ||||
| CommandType     Name                                               Version    Source | ||||
| -----------     ----                                               -------    ------ | ||||
| Application     http.exe                                           0.0.0.0    C:\Users\ovezovs\httpie\venv\Scripts\http.exe | ||||
| ``` | ||||
|  | ||||
| ```bash | ||||
| # In CMD: | ||||
| (httpie) C:\Users\ovezovs\httpie> where http | ||||
| C:\Users\ovezovs\httpie\venv\Scripts\http.exe | ||||
| C:\Users\ovezovs\AppData\Local\Programs\Python\Python38-32\Scripts\http.exe | ||||
|  | ||||
| (httpie) C:\Users\ovezovs\httpie> http --version | ||||
| 2.3.0-dev | ||||
| ``` | ||||
|  | ||||
| Use `pytest` to run tests locally with an active virtual environment: | ||||
|  | ||||
| ```bash | ||||
| # Run all tests | ||||
| $ python -m pytest | ||||
| ``` | ||||
|  | ||||
| ______________________________________________________________________ | ||||
|  | ||||
| Finally, feel free to add yourself to [AUTHORS](https://github.com/httpie/httpie/blob/master/AUTHORS.md)! | ||||
							
								
								
									
										239
									
								
								CONTRIBUTING.rst
									
									
									
									
									
								
							
							
						
						
									
										239
									
								
								CONTRIBUTING.rst
									
									
									
									
									
								
							| @@ -1,239 +0,0 @@ | ||||
| ###################### | ||||
| Contributing to HTTPie | ||||
| ###################### | ||||
|  | ||||
| Bug reports and code and documentation patches are welcome. You can | ||||
| help this project also by using the development version of HTTPie | ||||
| and by reporting any bugs you might encounter. | ||||
|  | ||||
| 1. Reporting bugs | ||||
| ================= | ||||
|  | ||||
| **It's important that you provide the full command argument list | ||||
| as well as the output of the failing command.** | ||||
| Use the ``--debug`` flag and copy&paste both the command and its output | ||||
| to your bug report, e.g.: | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     $ http --debug <COMPLETE ARGUMENT LIST THAT TRIGGERS THE ERROR> | ||||
|  | ||||
|     <COMPLETE OUTPUT> | ||||
|  | ||||
|  | ||||
| 2. Contributing Code and Docs | ||||
| ============================= | ||||
|  | ||||
| Before working on a new feature or a bug, please browse `existing issues`_ | ||||
| to see whether it has previously been discussed. | ||||
|  | ||||
| If your change alters HTTPie’s behaviour or interface, it's a good idea to | ||||
| discuss it before you start working on it. | ||||
|  | ||||
| If you are fixing an issue, the first step should be to create a test case that | ||||
| reproduces the incorrect behaviour. That will also help you to build an | ||||
| understanding of the issue at hand. | ||||
|  | ||||
| **Pull requests introducing code changes without tests | ||||
| will generally not get merged. The same goes for PRs changing HTTPie’s | ||||
| behaviour and not providing documentation.** | ||||
|  | ||||
| Conversely, PRs consisting of documentation improvements or tests | ||||
| for existing-yet-previously-untested behavior will very likely be merged. | ||||
| Therefore, docs and tests improvements are a great candidate for your first | ||||
| contribution. | ||||
|  | ||||
| Consider also adding a ``CHANGELOG`` entry for your changes. | ||||
|  | ||||
|  | ||||
| Development Environment | ||||
| -------------------------------- | ||||
|  | ||||
|  | ||||
| Getting the code | ||||
| **************** | ||||
|  | ||||
| Go to https://github.com/httpie/httpie and fork the project repository. | ||||
|  | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     # Clone your fork | ||||
|     git clone git@github.com:<YOU>/httpie.git | ||||
|  | ||||
|     # Enter the project directory | ||||
|     cd httpie | ||||
|  | ||||
|     # Create a branch for your changes | ||||
|     git checkout -b my_topical_branch | ||||
|  | ||||
|  | ||||
| Setup | ||||
| ***** | ||||
|  | ||||
| The `Makefile`_ contains a bunch of tasks to get you started. Just run | ||||
| the following command, which: | ||||
|  | ||||
|  | ||||
| * Creates an isolated Python virtual environment inside ``./venv`` | ||||
|   (via the standard library `venv`_ tool); | ||||
| * installs all dependencies and also installs HTTPie | ||||
|   (in editable mode so that the ``http`` command will point to your | ||||
|   working copy). | ||||
| * and runs tests (It is the same as running ``make install test``). | ||||
|  | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     make | ||||
|  | ||||
|  | ||||
|  | ||||
| Python virtual environment | ||||
| ************************** | ||||
|  | ||||
| Activate the Python virtual environment—created via the ``make install`` | ||||
| task during `setup`_—for your active shell session using the following command: | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     source venv/bin/activate | ||||
|  | ||||
| (If you use ``virtualenvwrapper``, you can also use ``workon httpie`` to | ||||
| activate the environment — we have created a symlink for you. It’s a bit of | ||||
| a hack but it works™.) | ||||
|  | ||||
| You should now see ``(httpie)`` next to your shell prompt, and | ||||
| the ``http`` command should point to your development copy: | ||||
|  | ||||
| .. code-block:: | ||||
|  | ||||
|     (httpie) ~/Code/httpie $ which http | ||||
|     /Users/jakub/Code/httpie/venv/bin/http | ||||
|     (httpie) ~/Code/httpie $ http --version | ||||
|     2.0.0-dev | ||||
|  | ||||
| (Btw, you don’t need to activate the virtual environment if you just want | ||||
| run some of the ``make`` tasks. You can also invoke the development | ||||
| version of HTTPie directly with ``./venv/bin/http`` without having to activate | ||||
| the environment first. The same goes for ``./venv/bin/pytest``, etc.). | ||||
|  | ||||
|  | ||||
| Making Changes | ||||
| -------------- | ||||
|  | ||||
| Please make sure your changes conform to `Style Guide for Python Code`_ (PEP8) | ||||
| and that ``make codestyle`` passes. | ||||
|  | ||||
|  | ||||
| Testing & CI | ||||
| ------------ | ||||
|  | ||||
| Please add tests for any new features and bug fixes. | ||||
|  | ||||
| When you open a pull request, | ||||
| `GitHub Actions <https://github.com/httpie/httpie/actions>`_ | ||||
| will automatically run HTTPie’s `test suite`_ against your code | ||||
| so please make sure all checks pass. | ||||
|  | ||||
|  | ||||
| Running tests locally | ||||
| ********************* | ||||
|  | ||||
| HTTPie uses the `pytest`_ runner. | ||||
|  | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     # Run tests on the current Python interpreter with coverage. | ||||
|     make test | ||||
|  | ||||
|     # Run tests with coverage | ||||
|     make test-cover | ||||
|  | ||||
|     # Test PEP8 compliance | ||||
|     make codestyle | ||||
|  | ||||
|     # Run extended tests — for code as well as .rst files syntax, packaging, etc. | ||||
|     make test-all | ||||
|  | ||||
|  | ||||
| Running specific tests | ||||
| ********************** | ||||
|  | ||||
| After you have activated your virtual environment (see `setup`_), you | ||||
| can run specific tests from the terminal: | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     # Run specific tests on the current Python | ||||
|     python -m pytest tests/test_uploads.py | ||||
|     python -m pytest tests/test_uploads.py::TestMultipartFormDataFileUpload | ||||
|     python -m pytest tests/test_uploads.py::TestMultipartFormDataFileUpload::test_upload_ok | ||||
|  | ||||
| ----- | ||||
|  | ||||
| See `Makefile`_ for additional development utilities. | ||||
|  | ||||
| Windows | ||||
| ******* | ||||
|  | ||||
| If you are on a Windows machine and not able to run ``make``, | ||||
| follow the next steps for a basic setup. As a prerequisite, you need to have | ||||
| Python 3.6+ installed. | ||||
|  | ||||
| Create a virtual environment and activate it: | ||||
|  | ||||
| .. code-block:: powershell | ||||
|  | ||||
|     python -m venv --prompt httpie venv | ||||
|     venv\Scripts\activate | ||||
|  | ||||
| Install HTTPie in editable mode with all the dependencies: | ||||
|  | ||||
| .. code-block:: powershell | ||||
|  | ||||
|     python -m pip install --upgrade --editable '.[dev]' | ||||
|  | ||||
| You should now see ``(httpie)`` next to your shell prompt, and | ||||
| the ``http`` command should point to your development copy: | ||||
|  | ||||
| .. code-block:: powershell | ||||
|  | ||||
|     # In PowerShell: | ||||
|     (httpie) PS C:\Users\ovezovs\httpie> Get-Command http | ||||
|     CommandType     Name                                               Version    Source | ||||
|     -----------     ----                                               -------    ------ | ||||
|     Application     http.exe                                           0.0.0.0    C:\Users\ovezovs\httpie\venv\Scripts\http.exe | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     # In CMD: | ||||
|     (httpie) C:\Users\ovezovs\httpie> where http | ||||
|     C:\Users\ovezovs\httpie\venv\Scripts\http.exe | ||||
|     C:\Users\ovezovs\AppData\Local\Programs\Python\Python38-32\Scripts\http.exe | ||||
|  | ||||
|     (httpie) C:\Users\ovezovs\httpie> http --version | ||||
|     2.3.0-dev | ||||
|  | ||||
| Use ``pytest`` to run tests locally with an active virtual environment: | ||||
|  | ||||
| .. code-block:: bash | ||||
|  | ||||
|     # Run all tests | ||||
|     python -m pytest | ||||
|  | ||||
|  | ||||
| ----- | ||||
|  | ||||
|  | ||||
| Finally, feel free to add yourself to `AUTHORS`_! | ||||
|  | ||||
|  | ||||
| .. _existing issues: https://github.com/httpie/httpie/issues?state=open | ||||
| .. _AUTHORS: https://github.com/httpie/httpie/blob/master/AUTHORS.rst | ||||
| .. _Makefile: https://github.com/httpie/httpie/blob/master/Makefile | ||||
| .. _venv: https://docs.python.org/3/library/venv.html | ||||
| .. _pytest: https://pytest.org/ | ||||
| .. _Style Guide for Python Code: https://python.org/dev/peps/pep-0008/ | ||||
| .. _test suite: https://github.com/httpie/httpie/tree/master/tests | ||||
| @@ -1,7 +1,8 @@ | ||||
| include LICENSE | ||||
| include README.rst | ||||
| include CHANGELOG.rst | ||||
| include AUTHORS.rst | ||||
| include README.md | ||||
| include CHANGELOG.md | ||||
| include AUTHORS.md | ||||
| include docs/README.md | ||||
|  | ||||
| # <https://github.com/httpie/httpie/issues/182> | ||||
| recursive-include tests/ * | ||||
|   | ||||
							
								
								
									
										16
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| ############################################################################### | ||||
| # See ./CONTRIBUTING.rst | ||||
| # See ./CONTRIBUTING.md | ||||
| ############################################################################### | ||||
|  | ||||
| .PHONY: build | ||||
| @@ -174,20 +174,6 @@ uninstall-httpie: | ||||
| 	@echo | ||||
|  | ||||
|  | ||||
| ############################################################################### | ||||
| # Docs | ||||
| ############################################################################### | ||||
|  | ||||
| pdf: | ||||
| 	@echo "Converting README.rst to PDF…" | ||||
| 	rst2pdf \ | ||||
| 		--strip-elements-with-class=no-pdf \ | ||||
| 		README.rst \ | ||||
| 		-o README.pdf | ||||
| 	@echo "Done" | ||||
| 	@echo | ||||
|  | ||||
|  | ||||
| ############################################################################### | ||||
| # Homebrew | ||||
| ############################################################################### | ||||
|   | ||||
							
								
								
									
										105
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,105 @@ | ||||
| <br/> | ||||
| <a href="https://httpie.io" target="blank_"> | ||||
|     <img width="285" alt="Httpie-Logo-Lockup-Pink@2x" src="https://user-images.githubusercontent.com/22844059/112143133-5fff7380-8bcf-11eb-85d0-8efdf27f3991.png"> | ||||
| </a> | ||||
|  | ||||
| # HTTPie: the human-friendly HTTP CLI client for working with APIs | ||||
|  | ||||
| <img src="https://raw.githubusercontent.com/httpie/httpie/master/httpie.gif" width="600"/> | ||||
|  | ||||
| [](https://github.com/httpie/httpie/actions) | ||||
| [](https://pypi.python.org/pypi/httpie) | ||||
| [](https://codecov.io/gh/httpie/httpie) | ||||
| [](https://pepy.tech/project/httpie) | ||||
|  | ||||
| [](https://github.com/httpie/httpie/issues) | ||||
| [](https://httpie.org/docs) | ||||
| [](https://httpie.io/chat) | ||||
|  | ||||
| HTTPie (pronounced _aitch-tee-tee-pie_ 🥧) is a command-line HTTP client. | ||||
|  | ||||
| The `http` and `https` commands let you send arbitrary HTTP requests for testing, debugging, and generally interacting with APIs & HTTP servers. Commands use simple, natural syntax and provide a formatted and colorized output. | ||||
|  | ||||
| **Visit [httpie.io](https://httpie.io) to learn more** | ||||
|  | ||||
| ## Features | ||||
|  | ||||
| - Simple syntax | ||||
| - Formatted and colorized terminal output | ||||
| - Built-in JSON support | ||||
| - Forms and file uploads | ||||
| - HTTPS, proxies, and authentication | ||||
| - Persistent sessions | ||||
| - Wget-like downloads | ||||
| - Linux, macOS and Windows support | ||||
| - Plugins, such as JWTAuth and OAuth | ||||
|  | ||||
| See the [complete list of features](https://httpie.io/docs). | ||||
|  | ||||
| ## Documentation | ||||
|  | ||||
| Full documentation and installation guides live in [httpie.io/docs](https://httpie.io/docs). | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| HTTPie can be installed using Homebrew on macOS (`brew install httpie`), and `pip` on Linux, Windows and other Operating Systems (e.g. `python -m pip install --upgrade httpie`). | ||||
|  | ||||
| See the [docs](https://httpie.io/docs) for system requirements and full installation instructions. | ||||
|  | ||||
| ## Examples | ||||
|  | ||||
| Hello World: | ||||
|  | ||||
| ``` | ||||
| $ https httpie.io/hello | ||||
| ``` | ||||
|  | ||||
| Custom [HTTP method](https://httpie.io/docs#http-method), [HTTP headers](https://httpie.io/docs#http-headers) and [JSON](https://httpie.io/docs#json) data: | ||||
|  | ||||
| ``` | ||||
| $ http PUT pie.dev/put X-API-Token:123 name=John | ||||
| ``` | ||||
|  | ||||
| Build and print a request without sending it using [offline mode](https://httpie.io/docs#offline-mode): | ||||
|  | ||||
| ``` | ||||
| $ http --offline pie.dev/post hello=offline | ||||
| ``` | ||||
|  | ||||
| Use [GitHub API](https://developer.github.com/v3/issues/comments/#create-a-comment) to post a comment on an [Issue](https://github.com/httpie/httpie/issues/83) with [authentication](https://httpie.io/docs#authentication): | ||||
|  | ||||
| ``` | ||||
| $ http -a USERNAME POST https://api.github.com/repos/httpie/httpie/issues/83/comments body='HTTPie is awesome! :heart:' | ||||
| ``` | ||||
|  | ||||
| **See [the documentation](https://httpie.io/docs) for a complete list of examples and use cases.** | ||||
|  | ||||
| ## Contributing | ||||
|  | ||||
| We :sparkling_heart: our contributors! Please read the [contribution guide](https://github.com/httpie/httpie/blob/master/CONTRIBUTING.md) for how to contribute. | ||||
| Have a look through existing [Issues](https://github.com/httpie/httpie/issues) and [Pull Requests](https://github.com/httpie/httpie/pulls) that you could help with. | ||||
|  | ||||
| [](https://github.com/httpie/httpie/issues) | ||||
| [](https://github.com/httpie/httpie/pulls) | ||||
|  | ||||
| If you'd like to request a feature or report a bug, please [create a GitHub Issue](https://github.com/httpie/httpie/issues) using one of the templates provided. | ||||
|  | ||||
| ## Community & Support | ||||
|  | ||||
| - Visit the [HTTPie website](https://httpie.io) for full documentation and useful links. | ||||
|  | ||||
| - Join our [Discord server](https://httpie.io/chat) is to ask questions, discuss features, and for general API chat. | ||||
|  | ||||
| - Tweet at [@httpie](https://twitter.com/httpie) on Twitter. | ||||
|  | ||||
| - Use [StackOverflow](https://stackoverflow.com/questions/tagged/httpie) to ask questions and include a `httpie` tag. | ||||
|  | ||||
| - Create [GitHub Issues](https://github.com/httpie/httpie/issues) for bug reports and feature requests. | ||||
|  | ||||
| - Subscribe to the [HTTPie newsletter](https://httpie.io) for occasional updates. | ||||
|  | ||||
| ## License | ||||
|  | ||||
| [](https://github.com/httpie/httpie/blob/master/LICENSE) | ||||
|  | ||||
| HTTPie is licensed under the [BSD-3-Clause License](https://github.com/httpie/httpie/blob/master/LICENSE). | ||||
							
								
								
									
										2269
									
								
								README.rst
									
									
									
									
									
								
							
							
						
						
									
										2269
									
								
								README.rst
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1686
									
								
								docs/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1686
									
								
								docs/README.md
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								setup.py
									
									
									
									
									
								
							| @@ -8,7 +8,6 @@ import httpie | ||||
|  | ||||
| # Note: keep requirements here to ease distributions packaging | ||||
| tests_require = [ | ||||
|     'docutils', | ||||
|     'pytest', | ||||
|     'pytest-httpbin>=0.0.6', | ||||
|     'responses', | ||||
| @@ -20,6 +19,7 @@ dev_require = [ | ||||
|     'flake8-deprecated', | ||||
|     'flake8-mutable', | ||||
|     'flake8-tuple', | ||||
|     'mdformat', | ||||
|     'pytest-cov', | ||||
|     'twine', | ||||
|     'wheel', | ||||
| @@ -55,7 +55,7 @@ extras_require = { | ||||
|  | ||||
|  | ||||
| def long_description(): | ||||
|     with open('README.rst', encoding='utf-8') as f: | ||||
|     with open('README.md', encoding='utf-8') as f: | ||||
|         return f.read() | ||||
|  | ||||
|  | ||||
| @@ -64,7 +64,7 @@ setup( | ||||
|     version=httpie.__version__, | ||||
|     description=httpie.__doc__.strip(), | ||||
|     long_description=long_description(), | ||||
|     long_description_content_type='text/x-rst', | ||||
|     long_description_content_type='text/markdown', | ||||
|     url='https://httpie.org/', | ||||
|     download_url=f'https://github.com/httpie/httpie/archive/{httpie.__version__}.tar.gz', | ||||
|     author=httpie.__author__, | ||||
|   | ||||
							
								
								
									
										3
									
								
								tests/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								tests/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| # HTTPie Test Suite | ||||
|  | ||||
| Please see [CONTRIBUTING](https://github.com/httpie/httpie/blob/master/CONTRIBUTING.md) for contribution and testing guidelines. | ||||
| @@ -1,8 +0,0 @@ | ||||
| HTTPie Test Suite | ||||
| ================= | ||||
|  | ||||
|  | ||||
| Please see `CONTRIBUTING`_. | ||||
|  | ||||
|  | ||||
| .. _CONTRIBUTING: https://github.com/httpie/httpie/blob/master/CONTRIBUTING.rst | ||||
| @@ -1,69 +1,35 @@ | ||||
| import os | ||||
| import subprocess | ||||
| from glob import glob | ||||
| from pathlib import Path | ||||
|  | ||||
| import pytest | ||||
| from httpie.compat import is_windows | ||||
|  | ||||
| from .utils import TESTS_ROOT | ||||
|  | ||||
|  | ||||
| ROOT = TESTS_ROOT.parent | ||||
| SOURCE_DIRECTORIES = [ | ||||
|     'docs', | ||||
|     'extras', | ||||
|     'httpie', | ||||
|     'tests', | ||||
| ] | ||||
|  | ||||
|  | ||||
| def has_docutils(): | ||||
|     try: | ||||
|         # noinspection PyUnresolvedReferences,PyPackageRequirements | ||||
|         import docutils  # noqa | ||||
|         return True | ||||
|     except ImportError: | ||||
|         return False | ||||
|  | ||||
|  | ||||
| def rst_filenames(): | ||||
|     cwd = os.getcwd() | ||||
|     os.chdir(TESTS_ROOT.parent) | ||||
|     try: | ||||
|         yield from glob('*.rst') | ||||
| def md_filenames(): | ||||
|     yield from ROOT.glob('*.md') | ||||
|     for directory in SOURCE_DIRECTORIES: | ||||
|             yield from glob(f'{directory}/**/*.rst', recursive=True) | ||||
|     finally: | ||||
|         os.chdir(cwd) | ||||
|         yield from (ROOT / directory).glob('**/*.md') | ||||
|  | ||||
|  | ||||
| filenames = sorted(rst_filenames()) | ||||
| filenames = sorted(md_filenames()) | ||||
| assert filenames | ||||
|  | ||||
|  | ||||
| # HACK: hardcoded paths, venv should be irrelevant, etc. | ||||
| # TODO: simplify by using the Python API instead of a subprocess | ||||
| #       then we wont’t need the paths. | ||||
| VENV_BIN = Path(__file__).parent.parent / 'venv/bin' | ||||
| VENV_PYTHON = VENV_BIN / 'python' | ||||
| VENV_RST2PSEUDOXML = VENV_BIN / 'rst2pseudoxml.py' | ||||
|  | ||||
|  | ||||
| @pytest.mark.skipif( | ||||
|     not VENV_RST2PSEUDOXML.exists(), | ||||
|     reason='docutils not installed', | ||||
| ) | ||||
| @pytest.mark.skipif(is_windows and 'CI' in os.environ, | ||||
|                     reason='Does not pass on GitHub.') | ||||
| @pytest.mark.parametrize('filename', filenames) | ||||
| def test_rst_file_syntax(filename): | ||||
|     p = subprocess.Popen( | ||||
|         [ | ||||
|             VENV_PYTHON, | ||||
|             VENV_RST2PSEUDOXML, | ||||
|             '--report=1', | ||||
|             '--exit-status=1', | ||||
|             filename, | ||||
|         ], | ||||
|         stderr=subprocess.PIPE, | ||||
|         stdout=subprocess.PIPE, | ||||
|         shell=True, | ||||
|     ) | ||||
|     err = p.communicate()[1] | ||||
|     assert p.returncode == 0, err.decode() | ||||
| def test_md_file_syntax(filename): | ||||
|     mdformat = pytest.importorskip('mdformat._cli') | ||||
|     args = ['--end-of-line', 'lf', '--number'] | ||||
|     err = f'Running "python -m mdformat {" ".join(args)} {filename}; git diff" should help.' | ||||
|     assert mdformat.run(args + ['--check', str(filename)]) == 0, err | ||||
|   | ||||
		Reference in New Issue
	
	Block a user