Skip to content

Releases: liquidz00/Patcher

Patcher 1.4.1

07 Nov 19:27
Compare
Choose a tag to compare

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...
Read more

Patcher 1.4.0

09 Aug 21:47
Compare
Choose a tag to compare

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

29 Jul 23:34
Compare
Choose a tag to compare

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 to self.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...
Read more

Patcher 1.3.3

06 Jul 18:53
Compare
Choose a tag to compare

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

Contributors

Patcher 1.3.2

05 Jul 20:02
Compare
Choose a tag to compare

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 and sample_patch_reports
  • b36de6f - Add PlistError to error handling function
  • 819c582 - Deprecate .env and ui_config.py usage in favor of keyring and config.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-...
Read more

Patcher 1.3.0

18 Jun 16:57
Compare
Choose a tag to compare

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

11 May 18:04
Compare
Choose a tag to compare

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

  • ee72bdb - Bump aiohttp from 3.9.3 to 3.9.4
  • 7bc8098 - Merge pull request #15 from liquidz00/dependabot/pip/aiohttp-3.9.4
  • 3688327 - Added traps for SIGINT and SIGTERM, checks for .git configuration on reinstall (#16)
  • 2bd7c44 - Added Homebrew Python checks

Patcher 1.2.0

16 Apr 18:15
Compare
Choose a tag to compare

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

Patcher 1.1.0

04 Apr 22:24
Compare
Choose a tag to compare

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

28 Mar 23:19
Compare
Choose a tag to compare

Installation Instructions

For detailed installation instructions, please refer to the Wiki or the README

What's Changed

Full Changelog: https://github.com/liquidz00/Patcher/commits/v1.0