Releases: liquidz00/Patcher
Patcher 1.4.1
This release has been automatically generated by a GitHub Action.
Installation Instructions
For detailed installation instructions, please refer to the Docs or the README
Release notes
- 3d2baef - bump download artifact action to v4
- c93e146 - Bump to 1.4.2 beta 1
- 2a688ed - Add BaseAPIClient class, move to async curl calls as potential workaround for SSL issues.
- 9a5d4b5 - Inherit from BaseAPIClient
- 79c9719 - Move max concurrency handling to BaseAPIClient
- 731d0c3 - Refactor AnyStr -> str
- 12498ba - Support GET and POST requests
- 6177ce8 - Linting and formatting
- 1c7ad7c - Fix async handling during init
- a738ffb - Remove redundant code, refactor with existing methods from TokenManager class
- 9266fd3 - Utilize BaseAPIClient class methods
- faaf954 - Narrow scope of Setup class, refactor out of scope methods to proper classes
- 52a39f4 - Create separate methods for sort options
- 3606b29 - Update dependencies
- 8fcaadb - Initialize child logger with at class level
- 57ba65e - Add exceptions for Database errors and Installomator errors, move to str data types instead of AnyStr
- f1191d4 - Refactor AnyStr -> str
- 5ef054c - Pass correct arguments to classes after refactor
- f8e6a01 - Formatting/linting
- da32553 - Add SSLContextManager class
- ef9d093 - Refactor unit tests based upon class changes
- 4a1a365 - 🧺
- d81ecad - Make SOFA feed call asynchronous
- e60f8fc - Remove SSLContextManager and associated imports
- abe3442 - Utilize ui_config.plist_path in favor of redundancy, change verbiage around token errors
- 688df5b - Formatting, remove dead code
- f4af485 - Remove unused fixtures
- c956e89 - Move example_pdf.jpeg to static docs directory
- 8e8640b - Add comment for sanity check
- 9036476 - Add asyncio options for pytest
- d1a773e - Rename to accurately reflect test
- a59c05a - Update unit tests based on recent refactoring of ApiClient and BaseAPIClient classes
- 35f5c75 - Formatting and linting, as always
- 24548c2 - Fix issue where plist file was not properly being mocked
- fae6e31 - Bump action versions
- 46d8dc0 - Bump to beta 2
- e27b0ba - Add Exceptions for API responses and non-zero exit stats
- c1dc6bb - Raise appropriate exceptions instead of returning None
- 40e8261 - Move setup API calls to BaseAPIClient, add HTTP Status to end of each API call to evaluate success
- 36574e3 - Use BaseAPIClient for setup calls
- cac47a7 - Update test with recent Setup class refactors
- f46f48c - Remove await from synchronous function
- 1d48fda - Fix unit tests based on API client refactors
- c012946 - Formatting
- 44ed620 - Add SetupError exception to raise instead of returning None
- 191925a - Fix call for setting concurrency level
- 664c3a9 - Raise exceptions instead of returning None, improve error messages
- 84e01cb - Raise exceptions instead of returning None, improve error messages
- b924cd7 - Remove APIPrivilegeError
- 44812b9 - Fix unit tests to anticipate Exception
- 1eac658 - Reparse response as JSON
- 583c006 - Reparse response as JSON
- 3965b0a - Add BaseAPIClient, create unit tests
- 8a17b9d - Linting/formatting
- b7bb4f6 - Create unit test for async cURL calls
- 9d1f711 - Change argument verbiage
- 7ecf610 - Refactor role and client creation workflow to use fetch_json method for HTTP error handling
- 5636926 - Move image to docs directory
- 3232417 - Change verbiage of welcome message
- 200d2a1 - Format headers properly, add flexibility to fetch_json method to properly handle attaching data to POST requests when URL encoded content type is detected.
- 0f178a8 - Remove code blocks in DocStrings, update code formatting.
- 4d9af62 - Rename module
- f22e5ef - Refactor private methods to be asynchronous, fix an issue with PDF exports
- 11a3e02 - Create instances of TokenManager and ApiClient objects when needed instead of during init
- 73b9d6d - TokenManager object is needed in ApiClient for token verification checks
- cffe7d5 - Lazy load credentials when needed instead of during init to prevent premature validation errors. Fix issue with token fetching calls
- f14647f - Insta...
Patcher 1.4.0
This release has been automatically generated by a GitHub Action.
Installation Instructions
For detailed installation instructions, please refer to the Docs or the README
Release notes
- c96b770 - Formatting
- 96a96cf - Add pathlib.Path objects for cross-platform functionality
- 5865ec1 - Update project URLs
- ef98a94 - Add logo, copy button, announcement banner, and favicon
- 7925117 - Move introduction to index
- 5d266e4 - Add sphinx-copybutton to dev dependencies
- c2bdea0 - Hide toctree
- f014516 - Revert to console directive for proper syntax highlighting
- 4c3e6be - Configure pygments themes
- 9ae669d - Add custom.css
- 508c3f8 - Add myst-parser to dev-dependencies
- c5021fb - Add myst-parser options
- ab215be - Refactor to markdown, utilize myst syntax
- 8ada223 - Fix typo; combine virtual environment commands into one-liner
- f4f6269 - Move to markdown
- 42b8b93 - Move installation to separate page
- d32e202 - Fix button references
- f37afcb - Move prerequisites to separate page
- efe9ca2 - Remove nested directories for better ToC structure
- 0c544cd - Hide secondary sidebar
- 14ac03a - Place toctrees in cards
- 3a27403 - Add attrs_block myst extension
- 3ee88ce - Add MacAdmins tools page
- d8732f9 - Add togglebutton dependency
- cbfd967 - Configure external links
- 6cea469 - Add release to html title, hide secondary sidebar on reference docs
- 1281c52 - Use autoclass directive
- b2a6d7e - Remove
Delete
privileges from ApiRole model - 3b2a02f - Change title, fix formatting
- cf660d4 - Convert to markdown
- 1c137db - Manually hide secondary sidebar
- 4f28194 - Add installation instructions and certificate troubleshooting
- 9a500f6 - Move jamf deployment to Getting Started toctree
- 16e842f - Refactor to markdown with myst-parser
- cf88ffe - Change name for accuracy
- fee166d - Change myst header depths, include attrs_inline extension
- 758bbe2 - Fix formatting
- b6e9e87 - Add prereqs.md
- d9476f7 - Add archive icons to summary dropdowns
- e24665d - Change dropdown style
- 278bdd1 - Bump to 1.3.5 beta 1
- 61fe143 - Completion percent calculation handled by PatchTitle class
- 0e035a0 - Fix DocString
- a736d79 - Format/linting
- 621427b - Prompt for setup method
- 589182b - Formatting/linting
- ec973d6 - Change admonition type
- 357dae3 - Rearrange headings, add Update API Integrations privilege, include python version of token script
- 43cda98 - Fix html title formatting
- deffbdc - Fix grid columns
- debc12e - Fix grid columns
- 6980b5f - Merge remote-tracking branch 'origin' into develop
- 6b9669c - Remove unused import
- 4e046f8 - Handle errors gracefully; tracebacks written to log instead of stderr, remove redundant click.Abort() calls
- 70fbf71 - Raise exception that was caught
- 508950e - Implement SSL verification checks, ability to add path of certificate to be appended to default CA file path
- 74eca4b - Add custom CA file path functionality to UIConfigManager class
- 63a60a0 - Remove redundant confirmation prompt, tighten error handling
- c567870 - Remove unused import
- 2b178f2 - Typecast exception reason to str
- 826ed4a - Add refs for DocStrings
- c6c44d3 - Add refs for SSL verification
- f3f8b42 - Improve DocStrings and readability
- 8cfce87 - Add Custom CA path option information.
- 2df21d5 - Update install.md with custom CA information
- 4784bf3 - Fixes #19; intermediate certificate can be passed to address SSL verification issues; updated documentation
- a665112 - Update verbiage in runner
- dac510d - Bump to v1.4.0
Contributors
Patcher 1.3.4
This release has been automatically generated by a GitHub Action.
Installation Instructions
Important
Beginning with version 1.3.1, Patcher can now be installed via pip
:
python3 -m pip install patcherctl
For detailed installation instructions, please refer to the Wiki or the README
Release notes
- fa5671e - Fix formatting
- 06ea40f - Remove dev dependencies from requirements
- 5294be1 -
ruff
lint - 0692124 - Update black format, ruff lint options
- c841872 - Manually trigger in place of push
- 3389b95 - Fix dependency installation issues
- 0d08536 - Add ruff_cache
- 0cf98f0 - Remove .editorconfig in place of black/ruff formatting/linting
- 2e578a1 - Update dev dependencies
- 191af9d - Remove excludes parameter from setuptools section
- 701b13b - Replace requirements.txt with Makefile, refactor pytests accordingly
- d780f76 - Add
aioresponses
to dev dependencies - 06ec721 - Exit setup if not able to proceed
- a9e191a - Bump to 1.3.4 beta 1
- 2887c55 - Fix code formatting
- 2257f2c - Fix code formatting
- fb6fa8a - Add CLI unit tests
- 654dfb4 - Remove CLI unit tests
- 702413f - Remove git as prerequisite
- 479247e - Merge remote-tracking branch 'origin/main' into develop
- b4abb22 - Lower keyring dependency requirements
- 1167080 - Update formatting
- bf6f7a6 - Initialize BaseModel
- 1d60dc1 - Refactor models into separate files, fix references throughout codebase
- 03b7473 - Implement PatchTitle objects into functions, refactor unit tests appropriately
- e870b6d - Linting/formatting
- 53134d0 - Increase line length to 100 instead of default 88
- 4709b32 - Add
ui_config
fixture - 0aa966b - Refactor first run completion checks into
Setup
class - 78ede10 - Mock
.plist
file existence - 5a1a264 - Add
--reset
flag to trigger setup assistant manually - 69d056e - Move to
utils
directory - d181045 - Refactor utils references
- f0c9741 - Refactor utils references
- 2441318 - Fix formatting
- b2360ab - Add per-file-ignores
- ea2ce4e - Refactor animation functions into separate class
- 39caef1 - Refactor error handling context into Animation class
- 49f6b64 - Add support for
--reset
flag - 0d73dcd - Utilize refactored Animation class
- 0c6cf81 - Dynamically set default exceptions
- f049bb0 - iOS functions return PatchTitle class properly
- 893fc54 - Remove stop_event fixture from unit tests
- 164d793 - Fix assert statements by returning PatchTitle objects
- a465716 - Fix iOS export functionality with PatchTitle objects
- 6df9f9a - Fix logger reference
- 258db2a - Format greeting messages
- d646f66 - Recognize directory as package
- 95cc327 - Remove TokenManager from being passed to Setup objects
- c5bd16e - Add CredentialDeletionError
- 3f4eceb - Add credential deletion functionality and JamfClient creation
- 7c2d839 -
--reset
bypasses--path
requirement. CLI exits after reset or setup is completed - 69077dd - Update workflow file from dev
- 28a3abc - Merge branch 'main' of https://github.com/liquidz00/Patcher
- c0668a3 - Add reST DocStrings and type hints
- fc56972 - Refactor LogMe class to setup child logger automatically
- d6801ba - Tie loggers to specific class instances
- 810fa55 - Remove unused child loggers
- a184f34 - Fix typo
- d01d613 - Fix warning log message
- cdd0e1e - Create log instance before writing log messages
- bf91d6a - Fix log object creation, check for setup completion before
--reset
check - 3e0d223 - Refactor
self.config
toself.ui_config
(readability counts) - 9ad7fce - Download font method is synchronous to prevent factory method requirement
- 9f3c7e8 - Refactor getter and setter to prevent setup assistant looping
- b8697c8 - Fix assertion statements after Setup refactor
- e9f689b - Fix assertion statements after LogMe refactor
- de4cfc8 - UI setup method refactored into smaller methods
- 4612398 - Bump to beta 2
- [1cea9a8](http://github.com/l...
Patcher 1.3.3
This release has been automatically generated by a GitHub Action.
Installation Instructions
Important
Beginning with version 1.3.1, Patcher can now be installed via pip
:
python3 -m pip install patcherctl
For detailed installation instructions, please refer to the Wiki or the README
Release notes
- c78d14b - Bump certifi per CVE-2024-39689
- be2a163 - Badge updates
- 1418e5a - Publish to TestPyPI on push to develop
- 72e9f23 - Bump to beta version
- e5212b4 - Rename package to patcher, fix relative import statements for package
- 6a253be - Refactor unit tests to reflect package name change
- f31ff66 - Fix package name
- 28707dd - Bump to beta version 2
- e6866c0 - Bump to 1.3.3
- b68cedc - Add report customization reference
- 749eeb8 - Fix dynamic versioning
Contributors
Patcher 1.3.2
This release has been automatically generated by a GitHub Action.
Installation Instructions
Important
Beginning with version 1.3.1, Patcher can now be installed via pip
:
python3 -m pip install patcherctl
For detailed installation instructions, please refer to the Wiki or the README
Release notes
- b06b862 - Add unit tests for debug log functionality
- c42daa5 - Add token expiration to globals.py
- f99257f - Add
--debug
or-x
flag to view debug logs in stdout - 372c1e8 - Add entitlements for pkg build
- 348d984 - Remove threading event from
LogMe
class - baecf42 - Merge remote-tracking branch 'origin/main' into develop
- 0fd0b37 - Add version for consistency
- 101ea1c - Automate assembly
- fe38bcf - Builds signed and notarized .pkg file
- 8869dda - Include title, rename to about
- a49ed24 - Include version information
- bb7843a - Include ui_config.py in version control
- 5a66323 - Refactor to .ini for packaging and pip distributions
- c48fb7c - Refactor project structure to support packaging and pip distributions
- 2c1ad9c - Update project dependencies
- af1c492 - Refactor functions to separate classes
- 5cca38e - Add PlistError class for first run functionality error handling
- e24b8a0 - Utilize
ConfigManager
class for environment variable handling - 05a575a - Write logs to Application Support directory
- 159adfd - Add
cred_check
wrapper to ensure credentials are present when invoking CLI - e69d6a5 - Match OOP refactoring
- 9639ffb - Match OOP refactoring
- ecaef73 - Implement instance verification and
ClientResponseError
handling - 982bc8c - Refactor unit tests to match OOP project structure
- a33a54d - Refactor unit tests to match OOP project structure
- 0925db9 - Resolved an issue with
config_manager
pytest fixture returning unexpected results - 0d6d217 - Fixed an issue with token check not being awaited properly
- 8f94125 - Revert token check to synchronous call
- d289631 - Refactor codebase into client and model classes
- 070eb89 - Bump pytest version
- 1aea108 - Add pytest fixture and extra logging unit tests for LogMe class
- 6ef1fbb - Add unit tests for excel report creation
- d9f2817 - Remove
type
parameter - 7758fe1 - Fix path references
- bc7b36f - Fix
ConfigManager
instance return values - 10a5701 - Fix log directory reference to reflect new location
- 750b05f - Move fixtures to conftest.py
- 91c4999 - Fix formatting
- 11d5d86 - Include
asyncclick
library - 9647ea9 - Use
asyncclick
for asynchronous support - 4978239 - Add fixtures for
stop_event
,patcher_instance
andsample_patch_reports
- b36de6f - Add
PlistError
to error handling function - 819c582 - Deprecate .env and
ui_config.py
usage in favor ofkeyring
andconfig.ini
- 97bccc1 - Remove references to
globals.py
- afc6ccf - Ignore
RuntimeWarnings
- e35a0ca - Separate UIConfig from CredentialConfig
- d4cc0a7 - Add UIConfigManager to patcher fixture
- cf0c8b4 - Implement UIConfigManager in PDFReport class
- 983de73 - Add UIConfigManager as required argument
- 83131b5 - Add dynamic release dates to API payload fixtures
- 7ef022b - Add unit tests for report processing
- 05093c0 - Set default keyring backend for Ubuntu unit tests
- 292ad35 - Validate URL that is passed on first run
- 51bd841 - Fix formatting
- 1fb50c7 - Refactor token lifetime checks to default to
JamfClient
in place of unnecessary API call - 5d3b1e6 - Refactor token validity unit tests to test_environment.py
- 82379eb - Add fixtures for token manager, config manager and short lived jamf client
- 9a60194 - Add function to return JamfClient details unless validation fails
- 20cbec7 - Ensure correct mock data is used in tests
- 27392b0 - Add
JamfClient
class; refactor url validation function - ed02352 - Refactor
fetch_token
error handling - cf4e9cb - Initialize
JamfClient
class for credential usage - 91f0601 - Remove incorrect pytest fixtures
- 41c664a - Refactor token lifetime checks in wrapper functions
- d3ea413 - Add reST DocStrings
- f5d2c4c - Default max concurrency to 5 connections. See https://developer.jamf.com/developer-guide/docs/jamf-pro-api-scalability-...
Patcher 1.3.0
Important
Additional API privileges are needed for this version of Patcher to run as expected. Please be sure to see the API Client requirements in the README for the necessary privileges.
This release has been automatically generated by a GitHub Action.
Installation Instructions
For detailed installation instructions, please refer to the Wiki or the README
Release notes
- 0eb2c25 - Resolves #16; added handling to verify response type and token validity.
- 9ad7157 - Merge branch 'main' of https://github.com/liquidz00/Patcher
- eabeeac - Refactored mock environment variables and network requests in tests
- 203b62a - Wrapped mock environment into function
- f240261 - aiohttp no longer needed for pytests
- 8fa054e - Renamed images directory
- 192c507 - Moved to
bin
subdirectory - 29300f3 - Changed install command with new installer location
- 928dd72 - Condensed DocString for
process_reports
function - 1a6acf6 - Moved to
images
- eaa0c12 - Refactored paths to
globals.py
- f35355e - Initial API client creation and checking
- 0b10a70 - Fixed reference image refactor
- a1076dc - Updated with globals refactor
- e44f4c8 - Added logging statements for empty patch ID responses and invalid token
- be1017e - Just lumberjack things 🪵
- 3710788 - Updated
requests
per CVE-2024-35195 - 956fee1 - Merge remote-tracking branch 'origin/main' into develop
- 9f12400 - updated , per CVE warnings
- 5cdab96 - DocString formatting, refactored environment variables to reference globals.py
- bffd0c4 - Added environment variables and API headers
- 01b6117 - Added bearer token lifetime checks
- e275e82 - Added pytests for token lifetime function checks
- cb50795 - check_token_lifetime function defaults to client_id in .env
- 2cbe3a3 - Added bearer token lifetime check
- 0f6ca56 - Merge pull request #17 from liquidz00/develop
- 921191a - Added functionality to retrieve mobile device IDs and operating systems from Classic API
- 4a946b3 - Added iOS version reporting functions using Jamf Pro API and SOFA data feeds (https://sofa.macadmins.io)
- 2ce61e7 -
datetime.utcnow()
deprecated as of 3.12. Kudos to Gabriel Sroka for the heads up! - a384345 - Merge remote-tracking branch 'origin/main' into develop
- fd65aef - Call to SOFA feed is done through
curl
with subprocess due to Python's SSL support not supporting AIA fetching: certifi/python-certifi#72 (comment) - b34e6bf - Refactored error handling to be more narrow
- 9382a31 - Refactored unit tests by category
- 6d25c8c - Added unit tests for calculating devices on latest version of respective iOS
- abc1ab8 - Added
--ios
flag to include iOS device data in reports. Resolved issue in which token lifetime check was never awaited. - bd6a14e - Added functionality to calculate amount of devices on latest version of their respective OS
- 6f8814f - Added CLI unit tests
- 105ebaa -
calculate_ios_on_latest
function declared as synchronous - db1069e -
calculate_ios_on_latest
function declared as synchronous - 47f739b - Fixed formatting
- 4563a2b - Continued error handling cleanup
- edc785c - Removed unnecessary imports
- d236d42 - Bumped python requirement to 3.10+
- 8863876 - Reverted error handling to resolve issues with animation continuing after error
- df98308 - Removed info log entries for time format conversion
- 3e8ec52 - Resolved an issue with iOS device export
- a62e78a - Bearer token expiration added to .env file by default
- adc24ba - Added custom exceptions for error handling
- 2768d22 - Refactored LogMe class and log formatting
- 61875ba - Raise custom exceptions, context manager handles
stop_event.set()
- 48be5de - Continued error handling improvement
- 8bbe77b - Removed unnecessary f-strings
- a3c9f14 - Throws error if token refresh response is
None
- e5eefe7 - Refactored with improved logging
- c8f8a84 - Included additional checks for
None
for data handling - 04d06bb - Updated API Role requirements
- d8969e1 - Merge pull request #18 from liquidz00/develop
- 1295a28 - Upgraded
urllib3
per CVE-2024-37891 - 77c5c6b - Added API Privilege error class
- d8f9887 - Raise
APIPrivilegeError
if token lifetime check returns 403 response
Patcher 1.2.1
Patcher 1.2.0
This release has been automatically generated by a GitHub Action.
Installation Instructions
For detailed installation instructions, please refer to the Wiki or the README
Release notes
- d9b39de - Changed file extension to .yml instead of .yaml
- 4df2b7c - Created Notion Issue runner tryfabric/notion-github-action
- 89086ca - Merge pull request #10 from liquidz00/develop
- 0dcf968 - Fixed badges
- a39f444 - Fixed badges..again
- d58bdd5 - Merge pull request #12; fixes Badges in README.md
- b31aeca - Formatted for GitHub Markdown (https://github.com/orgs/community/discussions/16925#discussion-4085374)
- d5f525f - Added sudo/root checks and exits.
-d
or--develop
arguments passed will download develop branch instead of default (main) - 2bee22f - Uninstall all the things.
- fe66242 - Updated with new installer.sh location
- f8a74d7 - Added check for v0 install, attempts to copy .env and fonts directories if found
- 4dd1182 - Moved to tools subdirectory
- 43f691a - Merge pull request #13 from liquidz00/develop
- 944982b - Updated idna per CVE-2024-3651
- 2a77c41 - Wrap path in quotes to prevent globbing/word splitting
- 6874ba0 - Sample PDF added for README
- 250c131 - Merge pull request #14 from liquidz00/develop
- 349f0dc - Added image of Sample PDF to README.md
Patcher 1.1.0
This release has been automatically generated by a GitHub Action.
Installation Instructions
For detailed installation instructions, please refer to the Wiki or the README
Release notes
- 8e537ce - Utilize log directory in place of data directory
- 7422cab - Project directory no longer hidden by default, custom fonts copy into project directory instead of referencing
- c44ba73 - Formatted stdout messages with proper spacing
- 34635d9 - Ignore deprecation warnings
- 886cccb - Refactored async into coroutine to address Deprecation Warnings. Added animation functionality to stdout and formatted error, success messages.
- 9fca331 - Removed symlink creation, added
--user
flag to requirements install - 674efd4 - Removed shebang, updated DocString for async function
- ee2efb6 - Added reST DocStrings to functions
- e1cd823 - Wrapped variables written to .env file in single quotations
- bd56e07 - Ignore log directory
- 0dbd9e9 - Python version and pip prereqs
- 2e69056 - Errors written to stderr as well as log file
- b0f1369 - Added Bearer Token validation logic, fetching new token, and updating .env accordingly
- 84eecf6 - Validates current Bearer Token is valid, attempts to generate and save a new one if expired.
- b1be6b8 - Added automated tests for updating .env file, API failures and token validity checks
- 0aedcec - Updated pillow per CVE-2024-28219
- 5c9d9d1 - Merge pull request #8 from liquidz00/dev
- ff33bec - Resolves #7; Date header now includes day by default. Additional date formats can be passed with
--date-format
option. - 4663c3d - Added release badge, fixed usage statement to reflect
python3
- da6faca - Merge pull request #9 from liquidz00/dev
- 3fbfa99 - Updated release runner
- ffd2a88 - Added proper permissions for release runner
v1.0
Installation Instructions
For detailed installation instructions, please refer to the Wiki or the README
What's Changed
- v1.0 by @liquidz00 in #1
- Patcher v1.0 by @liquidz00 in #2
- Installer.sh and API Role & Clients requirement by @liquidz00 in #3
- Dev by @liquidz00 in #5
Full Changelog: https://github.com/liquidz00/Patcher/commits/v1.0