head 1.8; access; symbols pkgsrc-2026Q1:1.8.0.2 pkgsrc-2026Q1-base:1.8 pkgsrc-2025Q4:1.7.0.6 pkgsrc-2025Q4-base:1.7 pkgsrc-2025Q3:1.7.0.4 pkgsrc-2025Q3-base:1.7 pkgsrc-2025Q2:1.7.0.2 pkgsrc-2025Q2-base:1.7 pkgsrc-2025Q1:1.6.0.4 pkgsrc-2025Q1-base:1.6 pkgsrc-2024Q4:1.6.0.2 pkgsrc-2024Q4-base:1.6 pkgsrc-2024Q3:1.3.0.2 pkgsrc-2024Q3-base:1.3; locks; strict; comment @# @; 1.8 date 2026.01.15.09.02.53; author adam; state Exp; branches; next 1.7; commitid nP46J3mdm8mq5tqG; 1.7 date 2025.04.20.22.19.11; author wiz; state Exp; branches; next 1.6; commitid GSkfj6bNQs5Z9QRF; 1.6 date 2024.11.24.10.44.23; author wiz; state Exp; branches; next 1.5; commitid Vtdv1ZL4m6Cp3TyF; 1.5 date 2024.11.17.09.44.37; author wiz; state Exp; branches; next 1.4; commitid I6RtG9j1htpRWYxF; 1.4 date 2024.10.22.18.37.56; author wiz; state Exp; branches; next 1.3; commitid PBlxCnagsDtzJGuF; 1.3 date 2024.08.19.21.41.08; author wiz; state Exp; branches; next 1.2; commitid eZNbr9KoN142OtmF; 1.2 date 2024.07.29.07.21.35; author wiz; state Exp; branches; next 1.1; commitid nShECIeQp2y0JHjF; 1.1 date 2024.07.14.12.50.40; author wiz; state Exp; branches; next ; commitid F96oXnVW035O1OhF; desc @@ 1.8 log @py-posting: updated to 2.9.2 2.9.2 [14th October 2025] Fixed - Fixed path parameters interference across requests. 2.9.1 [24th September 2025] Fixed - Fixed unexpectedly high CPU usage via updating textual-autocomplete to 4.0.6. 2.9.0 [17th September 2025] Added - Path parameter support (`:param` syntax) - New built-in themes: `hypernova`, `synthwave`. - Added `export: copy as YAML` command to the command palette @ text @@@comment $NetBSD: PLIST,v 1.7 2025/04/20 22:19:11 wiz Exp $ bin/posting-${PYVERSSUFFIX} ${PYSITELIB}/${WHEEL_INFODIR}/METADATA ${PYSITELIB}/${WHEEL_INFODIR}/RECORD ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL ${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt ${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE ${PYSITELIB}/${WHEEL_INFODIR}/licenses/NOTICE ${PYSITELIB}/posting/__init__.py ${PYSITELIB}/posting/__init__.pyc ${PYSITELIB}/posting/__init__.pyo ${PYSITELIB}/posting/__main__.py ${PYSITELIB}/posting/__main__.pyc ${PYSITELIB}/posting/__main__.pyo ${PYSITELIB}/posting/_start_time.py ${PYSITELIB}/posting/_start_time.pyc ${PYSITELIB}/posting/_start_time.pyo ${PYSITELIB}/posting/app.py ${PYSITELIB}/posting/app.pyc ${PYSITELIB}/posting/app.pyo ${PYSITELIB}/posting/auth.py ${PYSITELIB}/posting/auth.pyc ${PYSITELIB}/posting/auth.pyo ${PYSITELIB}/posting/collection.py ${PYSITELIB}/posting/collection.pyc ${PYSITELIB}/posting/collection.pyo ${PYSITELIB}/posting/commands.py ${PYSITELIB}/posting/commands.pyc ${PYSITELIB}/posting/commands.pyo ${PYSITELIB}/posting/config.py ${PYSITELIB}/posting/config.pyc ${PYSITELIB}/posting/config.pyo ${PYSITELIB}/posting/exit_codes.py ${PYSITELIB}/posting/exit_codes.pyc ${PYSITELIB}/posting/exit_codes.pyo ${PYSITELIB}/posting/files.py ${PYSITELIB}/posting/files.pyc ${PYSITELIB}/posting/files.pyo ${PYSITELIB}/posting/help_data.py ${PYSITELIB}/posting/help_data.pyc ${PYSITELIB}/posting/help_data.pyo ${PYSITELIB}/posting/help_screen.py ${PYSITELIB}/posting/help_screen.pyc ${PYSITELIB}/posting/help_screen.pyo ${PYSITELIB}/posting/highlight_url.py ${PYSITELIB}/posting/highlight_url.pyc ${PYSITELIB}/posting/highlight_url.pyo ${PYSITELIB}/posting/highlighters.py ${PYSITELIB}/posting/highlighters.pyc ${PYSITELIB}/posting/highlighters.pyo ${PYSITELIB}/posting/importing/curl.py ${PYSITELIB}/posting/importing/curl.pyc ${PYSITELIB}/posting/importing/curl.pyo ${PYSITELIB}/posting/importing/open_api.py ${PYSITELIB}/posting/importing/open_api.pyc ${PYSITELIB}/posting/importing/open_api.pyo ${PYSITELIB}/posting/importing/postman.py ${PYSITELIB}/posting/importing/postman.pyc ${PYSITELIB}/posting/importing/postman.pyo ${PYSITELIB}/posting/jump_overlay.py ${PYSITELIB}/posting/jump_overlay.pyc ${PYSITELIB}/posting/jump_overlay.pyo ${PYSITELIB}/posting/jumper.py ${PYSITELIB}/posting/jumper.pyc ${PYSITELIB}/posting/jumper.pyo ${PYSITELIB}/posting/locations.py ${PYSITELIB}/posting/locations.pyc ${PYSITELIB}/posting/locations.pyo ${PYSITELIB}/posting/messages.py ${PYSITELIB}/posting/messages.pyc ${PYSITELIB}/posting/messages.pyo ${PYSITELIB}/posting/posting.scss ${PYSITELIB}/posting/request_headers.py ${PYSITELIB}/posting/request_headers.pyc ${PYSITELIB}/posting/request_headers.pyo ${PYSITELIB}/posting/save_request.py ${PYSITELIB}/posting/save_request.pyc ${PYSITELIB}/posting/save_request.pyo ${PYSITELIB}/posting/scripts.py ${PYSITELIB}/posting/scripts.pyc ${PYSITELIB}/posting/scripts.pyo ${PYSITELIB}/posting/suggesters.py ${PYSITELIB}/posting/suggesters.pyc ${PYSITELIB}/posting/suggesters.pyo ${PYSITELIB}/posting/themes.py ${PYSITELIB}/posting/themes.pyc ${PYSITELIB}/posting/themes.pyo ${PYSITELIB}/posting/tuple_to_multidict.py ${PYSITELIB}/posting/tuple_to_multidict.pyc ${PYSITELIB}/posting/tuple_to_multidict.pyo ${PYSITELIB}/posting/types.py ${PYSITELIB}/posting/types.pyc ${PYSITELIB}/posting/types.pyo ${PYSITELIB}/posting/urls.py ${PYSITELIB}/posting/urls.pyc ${PYSITELIB}/posting/urls.pyo ${PYSITELIB}/posting/user_host.py ${PYSITELIB}/posting/user_host.pyc ${PYSITELIB}/posting/user_host.pyo ${PYSITELIB}/posting/variables.py ${PYSITELIB}/posting/variables.pyc ${PYSITELIB}/posting/variables.pyo ${PYSITELIB}/posting/version.py ${PYSITELIB}/posting/version.pyc ${PYSITELIB}/posting/version.pyo ${PYSITELIB}/posting/widgets/__init__.py ${PYSITELIB}/posting/widgets/__init__.pyc ${PYSITELIB}/posting/widgets/__init__.pyo ${PYSITELIB}/posting/widgets/center_middle.py ${PYSITELIB}/posting/widgets/center_middle.pyc ${PYSITELIB}/posting/widgets/center_middle.pyo ${PYSITELIB}/posting/widgets/collection/browser.py ${PYSITELIB}/posting/widgets/collection/browser.pyc ${PYSITELIB}/posting/widgets/collection/browser.pyo ${PYSITELIB}/posting/widgets/collection/new_request_modal.py ${PYSITELIB}/posting/widgets/collection/new_request_modal.pyc ${PYSITELIB}/posting/widgets/collection/new_request_modal.pyo ${PYSITELIB}/posting/widgets/confirmation.py ${PYSITELIB}/posting/widgets/confirmation.pyc ${PYSITELIB}/posting/widgets/confirmation.pyo ${PYSITELIB}/posting/widgets/datatable.py ${PYSITELIB}/posting/widgets/datatable.pyc ${PYSITELIB}/posting/widgets/datatable.pyo ${PYSITELIB}/posting/widgets/input.py ${PYSITELIB}/posting/widgets/input.pyc ${PYSITELIB}/posting/widgets/input.pyo ${PYSITELIB}/posting/widgets/key_value.py ${PYSITELIB}/posting/widgets/key_value.pyc ${PYSITELIB}/posting/widgets/key_value.pyo ${PYSITELIB}/posting/widgets/request/__init__.py ${PYSITELIB}/posting/widgets/request/__init__.pyc ${PYSITELIB}/posting/widgets/request/__init__.pyo ${PYSITELIB}/posting/widgets/request/form_editor.py ${PYSITELIB}/posting/widgets/request/form_editor.pyc ${PYSITELIB}/posting/widgets/request/form_editor.pyo ${PYSITELIB}/posting/widgets/request/header_editor.py ${PYSITELIB}/posting/widgets/request/header_editor.pyc ${PYSITELIB}/posting/widgets/request/header_editor.pyo ${PYSITELIB}/posting/widgets/request/method_selection.py ${PYSITELIB}/posting/widgets/request/method_selection.pyc ${PYSITELIB}/posting/widgets/request/method_selection.pyo ${PYSITELIB}/posting/widgets/request/path_editor.py ${PYSITELIB}/posting/widgets/request/path_editor.pyc ${PYSITELIB}/posting/widgets/request/path_editor.pyo ${PYSITELIB}/posting/widgets/request/query_editor.py ${PYSITELIB}/posting/widgets/request/query_editor.pyc ${PYSITELIB}/posting/widgets/request/query_editor.pyo ${PYSITELIB}/posting/widgets/request/request_auth.py ${PYSITELIB}/posting/widgets/request/request_auth.pyc ${PYSITELIB}/posting/widgets/request/request_auth.pyo ${PYSITELIB}/posting/widgets/request/request_body.py ${PYSITELIB}/posting/widgets/request/request_body.pyc ${PYSITELIB}/posting/widgets/request/request_body.pyo ${PYSITELIB}/posting/widgets/request/request_editor.py ${PYSITELIB}/posting/widgets/request/request_editor.pyc ${PYSITELIB}/posting/widgets/request/request_editor.pyo ${PYSITELIB}/posting/widgets/request/request_metadata.py ${PYSITELIB}/posting/widgets/request/request_metadata.pyc ${PYSITELIB}/posting/widgets/request/request_metadata.pyo ${PYSITELIB}/posting/widgets/request/request_options.py ${PYSITELIB}/posting/widgets/request/request_options.pyc ${PYSITELIB}/posting/widgets/request/request_options.pyo ${PYSITELIB}/posting/widgets/request/request_scripts.py ${PYSITELIB}/posting/widgets/request/request_scripts.pyc ${PYSITELIB}/posting/widgets/request/request_scripts.pyo ${PYSITELIB}/posting/widgets/request/url_bar.py ${PYSITELIB}/posting/widgets/request/url_bar.pyc ${PYSITELIB}/posting/widgets/request/url_bar.pyo ${PYSITELIB}/posting/widgets/response/cookies_table.py ${PYSITELIB}/posting/widgets/response/cookies_table.pyc ${PYSITELIB}/posting/widgets/response/cookies_table.pyo ${PYSITELIB}/posting/widgets/response/response_area.py ${PYSITELIB}/posting/widgets/response/response_area.pyc ${PYSITELIB}/posting/widgets/response/response_area.pyo ${PYSITELIB}/posting/widgets/response/response_body.py ${PYSITELIB}/posting/widgets/response/response_body.pyc ${PYSITELIB}/posting/widgets/response/response_body.pyo ${PYSITELIB}/posting/widgets/response/response_headers.py ${PYSITELIB}/posting/widgets/response/response_headers.pyc ${PYSITELIB}/posting/widgets/response/response_headers.pyo ${PYSITELIB}/posting/widgets/response/response_trace.py ${PYSITELIB}/posting/widgets/response/response_trace.pyc ${PYSITELIB}/posting/widgets/response/response_trace.pyo ${PYSITELIB}/posting/widgets/response/script_output.py ${PYSITELIB}/posting/widgets/response/script_output.pyc ${PYSITELIB}/posting/widgets/response/script_output.pyo ${PYSITELIB}/posting/widgets/rich_log.py ${PYSITELIB}/posting/widgets/rich_log.pyc ${PYSITELIB}/posting/widgets/rich_log.pyo ${PYSITELIB}/posting/widgets/select.py ${PYSITELIB}/posting/widgets/select.pyc ${PYSITELIB}/posting/widgets/select.pyo ${PYSITELIB}/posting/widgets/tabbed_content.py ${PYSITELIB}/posting/widgets/tabbed_content.pyc ${PYSITELIB}/posting/widgets/tabbed_content.pyo ${PYSITELIB}/posting/widgets/text_area.py ${PYSITELIB}/posting/widgets/text_area.pyc ${PYSITELIB}/posting/widgets/text_area.pyo ${PYSITELIB}/posting/widgets/tree.py ${PYSITELIB}/posting/widgets/tree.pyc ${PYSITELIB}/posting/widgets/tree.pyo ${PYSITELIB}/posting/widgets/variable_autocomplete.py ${PYSITELIB}/posting/widgets/variable_autocomplete.pyc ${PYSITELIB}/posting/widgets/variable_autocomplete.pyo ${PYSITELIB}/posting/widgets/variable_input.py ${PYSITELIB}/posting/widgets/variable_input.pyc ${PYSITELIB}/posting/widgets/variable_input.pyo ${PYSITELIB}/posting/xresources.py ${PYSITELIB}/posting/xresources.pyc ${PYSITELIB}/posting/xresources.pyo ${PYSITELIB}/posting/yaml.py ${PYSITELIB}/posting/yaml.pyc ${PYSITELIB}/posting/yaml.pyo @ 1.7 log @py-posting: update to 2.7.0. 2.7.0 The main feature of this release is the ability to import collections from Postman. 2.6.0 This is a pretty huge release. It introduces a bunch of features the community requested, and a bunch they didn't! 2.5.4 Fixes an issue where user configured User-Agent headers were being overwritten by Posting's own User-Agent. Posting now only adds the header if a user has not supplied it themselves. 2.5.3 This release reduces the startup time of Posting by around 40%. 2.5.2 A little bit of polish. 2.5.1 Small fix and tweak. 2.5.0 This release adds support for Bearer token auth, thanks to @@edgarrmondragon! 2.4.1 Bugfix release. 2.4.0 Request search, curl export, toggle table rows, and more! @ text @d1 1 a1 1 @@comment $NetBSD$ d142 3 @ 1.6 log @py-posting: update to 2.3.0. 2.3.0 If Posting is using a theme, and you edit that theme on disk, the UI will now instantly update to reflect that change. 2.2.0 This release upgrades the theme system, introduces 15 new themes, makes syntax highlighting automatically adapt to the theme, and lots more! @ text @d15 3 d21 3 d39 3 d57 3 d94 3 d208 3 @ 1.5 log @py-posting: update to 2.1.1. 2.1.1 Fixed Fix collection browser message not being visible when it's empty. Changed Improved message in empty collection browser, indicating keybind for how to toggle the collection browser. Full Changelog: 2.1.0...2.1.1 2.1.0 With Posting 2.1, you can now import curl commands by pasting them into the URL bar. @ text @d27 3 @ 1.4 log @py-posting: update to 2.0.0. ## 2.0.0 [18th October 2024] ### Added - **Scripting**: Run Python scripts before and after sending requests. Scripts can be used to perform setup, set variables, modify requests, and more. - Define "setup", "pre-request" and "post-request" Python functions and attach them to requests. - Posting will automatically reload these functions when they change, meaning you can edit them in an external editor while Posting is running. - Scripts can be used to directly manipulate the request, set variables which are used in the request (e.g. set a `$token` variable which is used in the request URL). - Output from scripts is captured and displayed in the "Scripts" tab. - **Keymaps**: Change the default keybindings for any of Posting's "global" actions (e.g. sending request, opening jump mode, etc.) by editing `keymap` section of your `config.yaml` file. - Added `heading.hostname` config to allow customisation of the hostname in the header. This field supports Rich markup. You may wish to use this to apply highlighting when `posting` is running on a production system vs a development environment, for example. - Added `focus.on_request_open` config to automatically shift focus when a request is opened via the collection browser. For example, you might prefer to have focus jump to the "Body" tab when a request is opened. - More detail and screenshots added to several sections of the guide. - Much more detail added to the "Getting Started" section. - Collections guide updated to explain more about the collection browser. - Guide for Keymaps added. - Guide for Scripting added. - Guide for External Tools added (integrating with vim, less, fx, etc.) - `alt`+`enter` can now be used to send a request (in addition to the existing `ctrl+j` binding). - Tooltips added to more actions in the app footer. These appear on mouse hover. ### Changed - Automatically apply `content-type` header based on the body type selected in the UI. - Updated to Textual 0.83.0 - Various refinements to autocompletion, upgrading to textual-autocomplete 3.0.0a12. - Dependency specifications loosened on several dependencies. - Recommended installation method changed from rye to uv. ### Fixed - Fixed double rendering in "jump mode" overlay. - Fixed sidebar not working on mobile on https://posting.sh - Fixed autocompletion appearing when on 1 item in the list and the "search string" is equal to that item. @ text @d39 3 @ 1.3 log @py-posting: update to 1.12.0. Methods in the collection browser (sidebar) are now coloured. Add (work-in-progress) Guide: https://posting.sh/guide/ @ text @d61 3 d139 3 d160 6 @ 1.2 log @py-posting: update to 1.9.3. 1.9.3 Upgrade and pin Textual at 0.74.0. Simplify text area theme naming conventions. fix: Ensure response status code border text is styled using the theme. fix: Ensure text area theme automatically updates when command palette is used to change theme. 1.9.2 Fix check for missing colors in xresources by @@SqrtMinusOne in #64 1.9.1 Fix crash in auth form. 1.9.0 User defined themes New configuration options Fixes Testing @ text @d27 3 d94 3 @ 1.1 log @www/py-posting: import py-posting-1.1.0 Posting is an HTTP client, not unlike Postman and Insomnia. As a TUI application, it can be used over SSH and enables efficient keyboard-centric workflows. Your requests are stored locally in simple YAML files, meaning they're easy to read and version control. Some notable features include: "jump mode" navigation, environments/variables system with autocompletion, syntax highlighting powered by tree-sitter, Vim keys, various builtin themes, a configuration system, "open in $EDITOR", and a command palette for quickly accessing functionality. @ text @d27 3 d61 3 d94 3 d166 3 @