Skip to content

Commit

Permalink
Merge changes from beta branch.
Browse files Browse the repository at this point in the history
  • Loading branch information
liquidz00 committed Jan 22, 2025
1 parent 274e88c commit 1fac0b9
Show file tree
Hide file tree
Showing 28 changed files with 575 additions and 198 deletions.
64 changes: 43 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,59 @@
# Patcher

_Patch reporting simplified_
<p align="left">
<a href="https://patcher.liquidzoo.io/">
<img src="docs/_static/patcher-banner-readme.svg" width="540"/>
</a>
</p>

![](https://img.shields.io/pypi/l/patcherctl)&nbsp;![](https://img.shields.io/badge/Python-3.10+-3776AB.svg?style=flat&logo=python&logoColor=white)&nbsp;![](https://img.shields.io/github/v/release/liquidz00/Patcher?color=orange)&nbsp;![](https://github.com/liquidz00/patcher/actions/workflows/pytest.yml/badge.svg)&nbsp;![](https://img.shields.io/pypi/v/patcherctl?color=yellow)

----

Patcher leverages the Jamf Pro API to fetch patch management data and generate comprehensive reports in both Excel and PDF formats. It simplifies tracking and reporting on software update compliance across macOS devices managed through Jamf Pro.
# Patcher

## Documentation
Project documentation can now be found [on our project homepage](https://patcher.liquidzoo.io). All content from our project wiki has been migrated to the new homepage. We are continuously updating references to the new homepage and regularly improving the documentation.
_Simplified patch reporting_

### Sample PDF
Assuming 'AnyOrg' is the name of your organization, an exported PDF could look like this:
<p align="left"><img src="docs/_static/example_pdf.png" width="750"/></p>
<p align="left">
<img src="https://cdn.worldvectorlogo.com/logos/slack-new-logo.svg" width="16" style="vertical-align: middle; margin-right: 5px;"/>
Find us in the <code>#patcher</code> channel in the <a href="https://www.macadmins.org">MacAdmins Slack</a>
</p>

## What is Patcher?
Patcher is a Command Line Interface (CLI) tool for macOS that leverages the Jamf Pro API to fetch patch management data and generates comprehensive reports in varying formats. It simplifies tracking and reporting on software update compliance across macOS devices managed through Jamf Pro.

### Installation
Install via `pip`:
Read the full project documentation [on our project homepage](https://patcher.liquidzoo.io).

```shell
pip install patcherctl
## Installation
Install releases from PyPI:

```console
$ python3 -m pip install patcherctl
```

> [!NOTE]
> Please note that while Patcher is installed as a package, it is meant to be used as a command line tool and not as an imported library.
*Why `patcherctl?` The pip package is called patcherctl because the name patcher was already taken on PyPI. Despite this, the project itself is referred to as Patcher*
## Sample PDF
Assuming 'AnyOrg' is the name of your organization, an exported PDF could look like this:
<p align="left"><img src="docs/_static/example_pdf.png" width="750"/></p>

PDF Reports can be customized to fit your organizations branding needs. See the [customizing reports](https://patcher.liquidzoo.io/user/customize_reports.html) in the project docs.

## Usage
For a list of all available commands and options, visit the [usage page](https://patcher.liquidzoo.io/user/usage.html) of our documentation.

### Usage
After installation, you can generate reports by running the main script. You can specify the output directory for the reports and choose to generate PDF reports alongside Excel files.
```shell
patcherctl --path '/path/to/output/directory' [--pdf]
After installation, reports can be generated by running the `export` command. You can specify the output directory for the reports and choose to generate PDF reports alongside Excel files.

```console
$ patcherctl export --path '/path/to/output/directory' [--pdf]
```

For a list of all available command options, visit the [usage page](https://patcher.liquidzoo.io/user/usage.html) of our documentation.
***

## Contributing

[Contributions](https://patcher.liquidzoo.io/contributing/index.html) to Patcher are welcome! We have set up templates for submitting [issues](https://github.com/liquidz00/Patcher/issues/new?template=issue.md), [feature requests](https://github.com/liquidz00/Patcher/issues/new?template=feature_request.md), and [feedback](https://github.com/liquidz00/Patcher/issues/new?template=feedback.md). Please be sure to utilize these templates when contributing to the project.

## Authors & Contributions
Patcher is co-authored by [Andrew Speciale - @liquidz00](https://github.com/liquidz00) and [Chris Ball - @ball42](https://github.com/ball42). [Contributions](https://patcher.liquidzoo.io/contributing/index.html) 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.
<!--
Author: Andrew Lerman
Keywords: patcher patcherctl jamf jamfpro macos patch patchmanagement apple
-->
17 changes: 17 additions & 0 deletions docs/_static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,20 @@ div.admonition.admonition-optional > .admonition-title::after {
color: hsl(0 0% 30%);
content: "\f08d";
}

.patcher-banner {
display: block;
margin: 20px;
max-width: 720px;
height: auto;
clear: both; /* Prevent text or floated elements from wrapping */
}

html[data-theme="dark"] .patcher-banner {
background-color: transparent;
}

.patcher-banner + * {
clear: both;
margin-top: 20px;
}
1 change: 1 addition & 0 deletions docs/_static/patcher-banner-readme.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/_static/v2-logo-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/_static/v2-logo-favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/_static/v2-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/_static/v2-patcher-banner-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/_static/v2-patcher-banner-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 10 additions & 3 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@

html_baseurl = "http://patcher.liquidzoo.io"
html_theme = "pydata_sphinx_theme"
html_logo = "_static/logo.svg"
html_favicon = "_static/logo.svg"
html_logo = "_static/v2-logo.svg"
html_favicon = "_static/v2-logo-favicon.svg"
html_static_path = ["_static"]
html_title = f"{release}"

Expand Down Expand Up @@ -116,10 +116,15 @@
"url": "https://pypi.org/project/patcherctl/",
"icon": "fab fa-python",
},
{
"name": "MacAdmins Slack",
"url": "https://macadmins.slack.com/archives/C07EH1R7LB0",
"icon": "fab fa-slack",
},
],
"logo": {
"text": "Patcher",
"image_dark": "_static/logo-dark.svg",
"image_dark": "_static/v2-logo-dark.svg",
},
"footer_start": ["copyright"],
"footer_end": ["theme-version"],
Expand All @@ -128,6 +133,8 @@
"**/*": ["page-toc", "sourcelink"],
},
"show_toc_level": 3,
"pygments_light_style": "xcode",
"pygments_dark_style": "github-dark",
}

# Remove primary sidebar from contributing page
Expand Down
22 changes: 19 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,30 @@
html_theme.sidebar_secondary.remove: True
---

# Patcher
```{image} _static/v2-patcher-banner-light.svg
:class: only-light patcher-banner
:align: center
```

*Patch reporting simplified*
```{image} _static/v2-patcher-banner-dark.svg
:class: only-dark patcher-banner
:align: center
```

## Welcome to Patcher's Documentation!
# 👋 Welcome to Patcher's Documentation!

Patcher is crafted with the needs of Mac Admins in mind, offering a streamlined approach to the often complex and time-consuming task of patch management. By automating the extraction and formatting of patch data, Patcher not only saves time but also ensures accuracy and consistency in the management of software updates.

***

## Features

- **Real-Time Patch Information Export**: Quickly extract up-to-date patch data for analysis.
- **Excel Spreadsheet Integration**: Seamlessly export patch information into Excel for in-depth analysis and record-keeping.
- **PDF Reporting**: Generate neatly formatted PDFs for easy sharing and documentation of patch statuses.
- **Customization Options**: Tailor the tool to match your organizations branding scheme with custom fonts and logo support.
- **Analysis**: Quickly analyze Patch Reports to identify which software titles may need some extra TLC.

::::{grid} 1 1 1 3
:gutter: 2
:padding: 2 2 0 0
Expand Down
12 changes: 12 additions & 0 deletions docs/reference/analyze.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,24 @@
Analyzer
========

BaseEnum
--------

.. autoclass:: patcher.client.analyze.BaseEnum
:members:

FilterCriteria
--------------

.. autoclass:: patcher.client.analyze.FilterCriteria
:members:

TrendCriteria
-------------

.. autoclass:: patcher.client.analyze.TrendCriteria
:members:

Analyzer Class
--------------

Expand Down
Loading

0 comments on commit 1fac0b9

Please sign in to comment.