MCPcopy Index your code
hub / github.com/autopkg/autopkg

github.com/autopkg/autopkg @v2.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.9.0 ↗ · + Follow
2,089 symbols 5,439 edges 108 files 1,145 documented · 55%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AutoPkg

Code style: black Tests passing

Latest release is here.

AutoPkg is an automation framework for macOS software packaging and distribution, oriented towards the tasks one would normally perform manually to prepare third-party software for mass deployment to managed clients.

These tasks typically involve at least several of the following steps:

  • downloading an application and/or updates for it, usually via a web browser
  • extracting them from a multitude of archive formats
  • adding site-specific configuration
  • adding sane versioning information
  • "fixing" poorly-written installer scripts
  • saving these modifications back to a compressed disk image or installer package
  • importing these into a software distribution system like Munki, Jamf Pro, FileWave, etc.
  • customizing the associated metadata for such a system with site-specific data, post-installation scripts, version info or other metadata

Often these tasks follow similar patterns for each individual application, and when managing many applications this becomes a daily task full of sub-tasks that one must remember (and/or maintain documentation for) about exactly what had to be done for a successful deployment of every update for every managed piece of software.

With AutoPkg, we define these steps in a "Recipe" file in plist or yaml format, run automatically instead of by hand, and shared with others.

Installation

Install the latest release.

AutoPkg requires macOS, and Git is highly recommended to have installed so that autopkg can use git to can manage recipe repositories. Knowledge of Git itself is not required.

AutoPkg is tested on the current macOS release. It may work on older releases, but is not actively tested on older releases.

Git can be installed via Apple's command-line developer tools package, which can be prompted for installation by simply typing 'git' in a Terminal window.

Since AutoPkg 2.0, Python 2 is no longer supported. The installer linked above contains a bundled version of Python 3 and all needed dependencies.

Usage

A getting started guide is available here.

Frequently Asked Questions (and answers!) are here.

See the wiki for more documentation.

Discussion

Discussion of the use and development of AutoPkg is here.

Core symbols most depended-on inside this repo

output
called by 174
Code/autopkglib/__init__.py
execute_shell
called by 47
Code/autopkglib/__init__.py
log_err
called by 42
Code/autopkglib/__init__.py
process
called by 29
Code/autopkglib/__init__.py
normalize_keyword
called by 27
Code/autopkgcmd/searchcmd.py
create_installs_items
called by 22
Code/autopkglib/MunkiInstallsItemsCreator.py
copy
called by 14
Code/autopkglib/Copier.py
mount
called by 14
Code/autopkglib/DmgMounter.py

Shape

Method 1,638
Route 185
Class 162
Function 104

Languages

Python100%

Modules by API surface

Code/nuget/generated/_nuspec.py571 symbols
Code/tests/test_autopkg_recipes.py153 symbols
Code/tests/test_autopkg_repos.py91 symbols
Code/tests/test_autopkg_processor_base.py90 symbols
Code/autopkglib/__init__.py83 symbols
Code/tests/test_autopkg_other.py82 symbols
Code/tests/test_searchcmd.py72 symbols
Code/tests/test_pkgcreator.py42 symbols
Code/tests/test_pkginfocreator.py37 symbols
Code/tests/test_munkiimporter.py34 symbols
Code/tests/test_codesignatureverifier.py34 symbols
Code/tests/test_plistreader.py31 symbols

For agents

$ claude mcp add autopkg \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page