Fetch patch management data from Jamf Pro to generate comprehensive reports in both Excel and PDF formats
Project description
A python library and CLI for turning patch reports into something other than a spreadsheet you'll never open again. Read the full project documentation on our project homepage.
An exported PDF report for "AnyOrg". See Customization in the project docs for more.
Installation
$ python3 -m pip install --upgrade patcherctl
Usage
Full library and CLI references plus assembled recipes live in the Guides section of the docs. The two quick examples below cover the common case of fetching Jamf's patch-management view and exporting reports.
Library
import asyncio
from patcher import PatcherClient
async def main():
async with PatcherClient(
client_id="...",
client_secret="...",
server="https://yourorg.jamfcloud.com",
) as patcher:
titles = await patcher.fetch_patches()
await patcher.export(titles, output_dir="./reports", formats={"pdf"})
asyncio.run(main())
CLI
$ patcherctl --client-id="..." --client-secret="..." --url="https://yourorg.jamfcloud.com" export --path="./reports" --format=pdf
Patcher API
Patcher's API is a community catalog of macOS app patching metadata stitched from Installomator, Homebrew Cask, AutoPkg (and more) into a single queryable surface.
Read endpoints are public, there is no authentication required. See project docs for curl and PatcherClient examples.
Contributing
Contributions to Patcher are welcome! We have set up templates for submitting issues, feature requests, and feedback. Please be sure to utilize these templates when contributing to the project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file patcherctl-3.0.0.tar.gz.
File metadata
- Download URL: patcherctl-3.0.0.tar.gz
- Upload date:
- Size: 118.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cee5000658418cfc5550c5d0572eed168084c2f33fcc7f5e946e1197192d16b9
|
|
| MD5 |
fb85b22ef6aafca740142f80b206fb54
|
|
| BLAKE2b-256 |
6d0ed51a0f4a738f7b1c47839e6f4f6c9ed5ae4194c5aadc1df695df45a71bb8
|
Provenance
The following attestation bundles were made for patcherctl-3.0.0.tar.gz:
Publisher:
build-release-publish.yml on liquidz00/Patcher
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
patcherctl-3.0.0.tar.gz -
Subject digest:
cee5000658418cfc5550c5d0572eed168084c2f33fcc7f5e946e1197192d16b9 - Sigstore transparency entry: 1593664913
- Sigstore integration time:
-
Permalink:
liquidz00/Patcher@1020d400aa986558073fca58261d2191e6a11c4a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/liquidz00
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-release-publish.yml@1020d400aa986558073fca58261d2191e6a11c4a -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file patcherctl-3.0.0-py3-none-any.whl.
File metadata
- Download URL: patcherctl-3.0.0-py3-none-any.whl
- Upload date:
- Size: 101.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bee77c9ee3d7e02cbede2229a766e6d6908b0b98abed08d9e857db16fef933e3
|
|
| MD5 |
acfc5a75cb224683ca762de550dd3091
|
|
| BLAKE2b-256 |
8f9f81e729437d075ff465b8860be93a68fdc90851ae0cc430c282168e4392f3
|
Provenance
The following attestation bundles were made for patcherctl-3.0.0-py3-none-any.whl:
Publisher:
build-release-publish.yml on liquidz00/Patcher
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
patcherctl-3.0.0-py3-none-any.whl -
Subject digest:
bee77c9ee3d7e02cbede2229a766e6d6908b0b98abed08d9e857db16fef933e3 - Sigstore transparency entry: 1593664941
- Sigstore integration time:
-
Permalink:
liquidz00/Patcher@1020d400aa986558073fca58261d2191e6a11c4a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/liquidz00
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-release-publish.yml@1020d400aa986558073fca58261d2191e6a11c4a -
Trigger Event:
workflow_dispatch
-
Statement type: