Metadata-Version: 2.4
Name: napt
Version: 0.10.0
Summary: Automates the entire workflow for packaging Windows applications and deploying them to Microsoft Intune
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: intune,intunewin,msi,psadt,packaging,windows,deployment,automation
Author: Roger Cibrian
Requires-Python: >=3.11
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Software Distribution
Classifier: Topic :: System :: Systems Administration
Requires-Dist: azure-identity (>=1.25.3)
Requires-Dist: beautifulsoup4 (>=4.14.0)
Requires-Dist: jsonpath-ng (>=1.6.1)
Requires-Dist: msal (>=1.35.1)
Requires-Dist: msal-extensions (>=1.2.0)
Requires-Dist: msal[broker] (>=1.35.1) ; sys_platform == "win32"
Requires-Dist: pyyaml (>=6.0.2)
Requires-Dist: requests (>=2.33)
Project-URL: Changelog, https://rogercibrian.github.io/notapkgtool/changelog/
Project-URL: Documentation, https://rogercibrian.github.io/notapkgtool
Project-URL: Source, https://github.com/RogerCibrian/notapkgtool
Description-Content-Type: text/markdown

# NAPT - Not a Pkg Tool

> **Automated Windows application packaging and deployment to Microsoft Intune using PSAppDeployToolkit**

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

## Overview

NAPT is a Python CLI. It runs on Windows, Linux, and macOS, though packaging (.intunewin creation) requires Windows.

**[Full Documentation](https://rogercibrian.github.io/notapkgtool/)** | [Quick Start](https://rogercibrian.github.io/notapkgtool/quick-start/) | [User Guide](https://rogercibrian.github.io/notapkgtool/user-guide/) | [Developer Reference](https://rogercibrian.github.io/notapkgtool/api/)

### Why NAPT?

Packaging applications for Microsoft Intune with PSAppDeployToolkit (PSADT) typically involves a manual, time-consuming process:

1. **Manually check for new versions** - Check vendor sites/APIs for updates. Easy to miss versions or waste time when nothing changed.

2. **Create PSADT deployment** - Copy template, manually edit `Invoke-AppDeployToolkit.ps1` with variables, configure install/uninstall logic. Error-prone and repetitive.

3. **Create detection and requirements scripts** - Write PowerShell detection and requirements logic, test thoroughly, maintain version checks. Must update for each new version.

4. **Package as .intunewin** - Run IntuneWinAppUtil.exe manually, manage paths, handle errors.

5. **Upload to Intune** - Upload package via portal, fill metadata, configure app info and requirements manually.

6. **Configure deployment** - Set up rollout assignments manually for each version.

NAPT replaces this with YAML-based recipes and automatic version tracking.

### Key features

- **Automatic version tracking** - Discovery from MSI, EXE, URLs, or APIs with caching to skip unnecessary downloads
- **YAML-based recipes** - Define app packaging once with layered configuration (Organization → Vendor → Recipe)
- **Automated PSADT packaging** - Generate Intune-ready packages with detection and requirements scripts, no manual template editing
- **Cross-platform workflow** - Run on Windows, Linux, and macOS (packaging requires Windows)
- **Direct Intune upload** - Upload to Microsoft Intune via the Graph API, no portal required

## Getting started

See the [Quick Start Guide](https://rogercibrian.github.io/notapkgtool/quick-start/) for installation and setup.

## Creating recipes

Recipes are YAML configuration files that define how to discover, download, and package applications.

**Example recipes:**

- **[chrome.yaml](https://github.com/RogerCibrian/notapkgtool/blob/main/recipes/Google/chrome.yaml)** - url_download strategy with MSI version extraction
- **[git.yaml](https://github.com/RogerCibrian/notapkgtool/blob/main/recipes/Git/git.yaml)** - api_github strategy for GitHub Releases
- **[7zip-x64-msi.yaml](https://github.com/RogerCibrian/notapkgtool/blob/main/recipes/7-Zip/7zip-x64-msi.yaml)** - web_scrape strategy for vendor download pages

**Note:** The `recipes/` and `defaults/` directories in this repository are
working examples used for development and testing.
They are not included in the pip package.
Run `napt init` to create your own workspace with a starter `org.yaml`.

NAPT supports multiple discovery strategies (url_download, web_scrape, api_github, api_json) - see the [Discovery Strategies](https://rogercibrian.github.io/notapkgtool/user-guide/#discovery-strategies) guide for detailed configuration and more examples.

## Contributing

Ideas and feedback are welcome. See [Contributing](https://rogercibrian.github.io/notapkgtool/contributing/) for guidelines.

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](https://github.com/RogerCibrian/notapkgtool/blob/main/LICENSE) file for details.

## Author

**Roger Cibrian**

## Acknowledgments

- Draws inspiration from [AutoPkg](https://github.com/autopkg/autopkg) for macOS application packaging automation
- Uses [PSAppDeployToolkit](https://psappdeploytoolkit.com/) (PSADT) for Windows application packaging
- Uses [IntuneWinAppUtil](https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool) for creating .intunewin packages

