Skip to content

liquidz00/Patcher

Repository files navigation

Patcher

A python library and CLI for Jamf patch reporting and analysis, backed by a community app catalog API.

MacAdmins Slack (#patcher) →   |   📘 Project Docs


Sample Patcher PDF report
An exported PDF report for "AnyOrg". See Customization in the project docs for more.

Installation

$ python3 -m pip install 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.

API is public, no authentication is required. See project docs for curl and PatcherClient examples.

Note

On a corporate network that filters new or uncategorized domains, the catalog API may be blocked by a web gateway. See Catalog API Blocked by Web Filtering to confirm and resolve it.

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.

About

Python package and CLI for patch analysis and reporting on macOS fleets managed by Jamf Pro

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages