autopkg / erikng-recipes

autopkg recipes
Apache License 2.0
2 stars 8 forks source link

Installs Array is not created using _Essentials in the TYPE variable. #16

Open paul-cossey opened 1 month ago

paul-cossey commented 1 month ago

Hi, @erikng

The current Nudge Munki recipe doesn't generate an Installs Array when downloading the Essentials pkg.

This is because when the pkg is unpacked the app's path is /payload/Applications/Utilities/Applications/Utilities/Nudge.app resulting in MunkiInstallsItemsCreator's faux_root key being incorrect (for Essentials at least)

I'm happy to add on a fix to my PR that adds a variable to account for the additional folder in the path something like

<key>Description</key>
<string>Set ESSENTIALS_UNPACK_PATH variable to ""/Applications/Utilities" when downloading the Essentials pkg. Leave empty for all others.</string>

<key>ESSENTIALS_UNPACK_PATH</key>
<string>/Applications/Utilities</string>

<key>faux_root</key>
<string>%RECIPE_CACHE_DIR%/payload%ESSENTIALS_UNPACK_PATH%</string>

It's not particularly elegant, but I can't think of a better way at the moment πŸ˜…

Output from a -vv run using the above changes

autopkg run -vv Nudge.munki.recipe
Looking for com.github.erikng.download.Nudge...
Did not find com.github.erikng.download.Nudge in recipe map
Rebuilding recipe map with current working directories...
Looking for com.github.erikng.download.Nudge...
Found com.github.erikng.download.Nudge in recipe map
**load_recipe time: 0.006160249999084044
Processing Nudge.munki.recipe...
WARNING: Nudge.munki.recipe is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
GitHubReleasesInfoProvider
{'Input': {'asset_regex': 'Nudge_Essentials-\\S.*?.pkg',
           'github_repo': 'macadmins/nudge',
           'include_prereleases': ''}}
WARNING: This is an unathenticated Github session, some API features may not work
GitHubReleasesInfoProvider: Matched regex 'Nudge_Essentials-\S.*?.pkg' among asset(s): Nudge_Essentials-2.0.5.81760.pkg
GitHubReleasesInfoProvider: Selected asset 'Nudge_Essentials-2.0.5.81760.pkg' from tag 'v2.0.5.81760' at url https://github.com/macadmins/nudge/releases/download/v2.0.5.81760/Nudge_Essentials-2.0.5.81760.pkg
{'Output': {'asset_created_at': '2024-07-25T21:37:56Z',
            'asset_url': 'https://api.github.com/repos/macadmins/nudge/releases/assets/181868514',
            'release_notes': '# Notes\n'
                             'This is a version of Nudge created by GitHub '
                             'Actions.\n'
                             'Nudge.app has been signed and notarized. The '
                             'package has been signed, notarized and stapled.\n'
                             '\n'
                             'By default Nudge looks for a '
                             '`com.github.macadmins.Nudge.json` file located '
                             'in `/Library/Preferences`. If you would like to '
                             'use an alternative path, please read the '
                             '[README](https://github.com/macadmins/nudge/blob/main/README.md) '
                             'or the '
                             '[WIKI](https://github.com/macadmins/nudge/wiki)\n'
                             '\n'
                             '## About the LaunchAgent\n'
                             'This is a basic launch agent that opens Nudge '
                             'twice an hour, every 30 minutes.\n'
                             'If you would like to reduce the amount of times '
                             'Nudge launches per day, it is recommended to '
                             'create your own LaunchAgent.\n'
                             '\n'
                             '# Changelog\n'
                             'Requires macOS 12.0 and higher.\n'
                             '\n'
                             '### Added\n'
                             '- To artificially change the '
                             '`requredInstallationDate` to honor a previous '
                             'macOS minor version, set '
                             '`minorVersionRecalculationThreshold` under '
                             '`osVersionRequirement` in amount of minor '
                             'versions.\n'
                             '  - Ex: `minorVersionRecalculationThreshold` is '
                             'set to 1 and SOFA feed has macOS 14.5 available\n'
                             '    - macOS device is 14.0: Required OS: 14.5 - '
                             'Target macOS 14.4.1 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.1: Required OS: 14.5 - '
                             'Target macOS 14.4.1 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.2: Required OS: 14.5 - '
                             'Target macOS 14.4.1 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.3: Required OS: 14.5 - '
                             'Target macOS 14.4.1 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.4: Required OS: 14.5 - '
                             'Target macOS 14.4.1 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.4.1: Required OS: 14.5 '
                             '- Target macOS 14.5 requiredInstallationDate of '
                             '2024-06-03 00:00:00 +0000\n'
                             "      - This device's requiredInstallationDate "
                             'is different than the others as there is no '
                             'active exploit on 14.4.1\n'
                             '    - macOS device is 14.5: Required OS: 14.5 - '
                             'Fully updated\n'
                             '  - Ex: `minorVersionRecalculationThreshold` is '
                             'set to 2 and SOFA feed has macOS 14.5 available\n'
                             '    - macOS device is 14.0: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-03-21 00:00:00 +0000\n'
                             '    - macOS device is 14.1: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-03-21 00:00:00 +0000\n'
                             '    - macOS device is 14.2: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-03-21 00:00:00 +0000\n'
                             '    - macOS device is 14.3: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-03-21 00:00:00 +0000\n'
                             '    - macOS device is 14.4: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.4.1: Required OS: 14.5 '
                             '- Target macOS 14.4.1 requiredInstallationDate '
                             'of 2024-06-03 00:00:00 +0000\n'
                             '    - macOS device is 14.5: Required OS: 14.5 - '
                             'Fully updated\n'
                             '  - Ex: `minorVersionRecalculationThreshold` is '
                             'set to 3 and SOFA feed has macOS 14.5 available\n'
                             '    - macOS device is 14.0: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-02-22 00:00:00 +0000\n'
                             '    - macOS device is 14.1: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-02-22 00:00:00 +0000\n'
                             '    - macOS device is 14.2: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-02-22 00:00:00 +0000\n'
                             '    - macOS device is 14.3: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-02-22 00:00:00 +0000\n'
                             '    - macOS device is 14.4: Required OS: 14.5 - '
                             'Target macOS 14.4 requiredInstallationDate of '
                             '2024-04-08 00:00:00 +0000\n'
                             '    - macOS device is 14.4.1: Required OS: 14.5 '
                             '- Target macOS 14.4.1 requiredInstallationDate '
                             'of 2024-06-03 00:00:00 +0000\n'
                             '    - macOS device is 14.5: Required OS: 14.5 - '
                             'Fully updated\n'
                             '  - Addresses '
                             '[612](https://github.com/macadmins/nudge/issues/612)\n'
                             '- To ease testing, you can now pass '
                             '`-simulate-date` as an argument to override the '
                             'built-in date check.\n'
                             '  - Ex: `-simulate-date "2024-07-25T00:00:00Z"`\n'
                             '\n'
                             '### Changed\n'
                             '- The `Actively Exploited` logic internally '
                             'within Nudge and the UI on the left sidebar will '
                             'show `True` if any previous updates missing on '
                             'the device had active exploits.\n'
                             '  - **WARNING BREAKING CHANGE** - This changes '
                             'the SLA computation and will result in a '
                             'different `requiredInstallationDate` than '
                             'offered in Nudge v2.0 -> v2.01.\n'
                             '  - Ex: Device is on 14.3 and needing to go to '
                             '14.5.\n'
                             '    - While 14.4.1 -> 14.5 are not under active '
                             'exploit, 14.4 contains fixes for 14.3 that were '
                             'under active exploit.\n'
                             '  - Addresses '
                             '[610](https://github.com/macadmins/nudge/issues/610) '
                             'and '
                             '[613](https://github.com/macadmins/nudge/issues/613)\n'
                             '- When `showRequiredDate` is set to `True` and '
                             'the admin is using the default values for '
                             '`requiredInstallationDisplayFormat`, Nudge will '
                             'attempt to understand the current locale and '
                             'display the menu item appropriately.\n'
                             '  - Addresses '
                             '[615](https://github.com/macadmins/nudge/issues/615)\n'
                             '- Banned shortcut keys - including the ability '
                             'to quit the application - are now allowed when '
                             'passing `-simulate-os-version` or '
                             '`-simulate-hardware-id` or `-simulate-date`\n'
                             '\n'
                             '### Fixed\n'
                             '- Several components in the Github Actions were '
                             'triggering deprecation warnings. These have been '
                             'addressed by updating to the latest version of '
                             'these components\n'
                             '  - Addresses '
                             '[616](https://github.com/macadmins/nudge/issues/616)\n'
                             '\n'
                             '# Changes\n'
                             '- '
                             '[3ad843d](http://github.com/macadmins/nudge/commit/3ad843d5c7136f3ecdd39dd86625e3ba9b3ced2f) '
                             '- redo under active exploit logic\n'
                             '- '
                             '[c38d799](http://github.com/macadmins/nudge/commit/c38d799f5a36c2e02b86acc3e2987bd41a4f65c3) '
                             '- add another note in the changelog\n'
                             '- '
                             '[ccc1d29](http://github.com/macadmins/nudge/commit/ccc1d291c4e46743faad47666e204341f366a3f6) '
                             '- bump to v2.0.5\n'
                             '- '
                             '[84fb165](http://github.com/macadmins/nudge/commit/84fb1653d68649ea1556367bb866c0b732ed71f7) '
                             '- attempt to show locale when using default '
                             'values for showRequiredDate\n'
                             '- '
                             '[930681f](http://github.com/macadmins/nudge/commit/930681f973b4a1291e43e807891e3b514a209f54) '
                             '- address deprecated github actions\n'
                             '- '
                             '[0d53821](http://github.com/macadmins/nudge/commit/0d538213a3d387ce56e3d61cf8b26d0674613a7c) '
                             '- Add logic for '
                             'minorVersionRecalculationThreshold\n'
                             '- '
                             '[07452c3](http://github.com/macadmins/nudge/commit/07452c3b5ce3cdea4d910612496ebc60e005ede7) '
                             '- re-order logs\n'
                             '- '
                             '[1fd7e94](http://github.com/macadmins/nudge/commit/1fd7e94e118719c0dd8ffcebd00b4e11eb9bc29d) '
                             '- fix some logic issues and add safety\n'
                             '- '
                             '[abfccf7](http://github.com/macadmins/nudge/commit/abfccf7c37a9f184b42a5a1da9b0ae6c0df19919) '
                             '- fix changelog\n'
                             '- '
                             '[5d5d6a1](http://github.com/macadmins/nudge/commit/5d5d6a1f82495c35c5f4f70d3ec7b274c811e442) '
                             '- add an additional note as to why the date is '
                             'different\n'
                             '- '
                             '[69421f4](http://github.com/macadmins/nudge/commit/69421f4cf767e125097522892ce4c7a85445d32e) '
                             '- ensure active exploit logic is properly '
                             'assessed\n'
                             '- '
                             '[3d618e9](http://github.com/macadmins/nudge/commit/3d618e98249f1e376af8780ee7dc7cd9689083cf) '
                             '- add additional logging for computation\n'
                             '- '
                             '[2f39c0c](http://github.com/macadmins/nudge/commit/2f39c0cdf94d8b34299c9237aec92708d07f97fb) '
                             '- fix version comparison\n'
                             '- '
                             '[500e317](http://github.com/macadmins/nudge/commit/500e3176dc2193503d57f466e710c6c27ecff9d8) '
                             '- update changelog with new tests\n'
                             '- '
                             '[c208c8a](http://github.com/macadmins/nudge/commit/c208c8a8c0c83d2ac54b98e39cc65230152e59f1) '
                             '- Merge pull request #614 from '
                             'macadmins/development\n'
                             '- '
                             '[394792c](http://github.com/macadmins/nudge/commit/394792ccc7d9c8b30865709ad91eeb496209e94a) '
                             '- Update CHANGELOG.md\n'
                             '- '
                             '[62ba9b7](http://github.com/macadmins/nudge/commit/62ba9b736c70181b673a7294b0ab2e463095ba87) '
                             '- Merge pull request #617 from '
                             'macadmins/erikng-patch-1\n'
                             '- '
                             '[8294e9d](http://github.com/macadmins/nudge/commit/8294e9de1c3c18210cdb0138dafbedf5019fabe0) '
                             '- redo the minorversion calculation a third '
                             'time\n'
                             '- '
                             '[06a4476](http://github.com/macadmins/nudge/commit/06a44769ffd1b8141efb66bffdae4973a828a280) '
                             '- allow banned keys when simulating versions\n'
                             '- '
                             '[c17e0db](http://github.com/macadmins/nudge/commit/c17e0dbaf6621d7c446a04aa69a9d8122cb8ddb1) '
                             '- fix typo\n'
                             '- '
                             '[7038593](http://github.com/macadmins/nudge/commit/70385934e33fa0c3639b828dd77a77bea4b995a3) '
                             '- allow simulated dates\n'
                             '- '
                             '[4313964](http://github.com/macadmins/nudge/commit/4313964cac49138f14a38abe341d920ce5f877b7) '
                             '- Merge pull request #618 from '
                             'macadmins/development\n'
                             '\n',
            'url': 'https://github.com/macadmins/nudge/releases/download/v2.0.5.81760/Nudge_Essentials-2.0.5.81760.pkg',
            'version': '2.0.5.81760'}}
URLDownloader
{'Input': {'filename': 'NudgeEssentials.pkg',
           'url': 'https://github.com/macadmins/nudge/releases/download/v2.0.5.81760/Nudge_Essentials-2.0.5.81760.pkg'}}
URLDownloader: No value supplied for prefetch_filename, setting default value of: False
URLDownloader: No value supplied for CHECK_FILESIZE_ONLY, setting default value of: False
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg
{'Output': {'pathname': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg'}}
EndOfCheckPhase
{'Input': {}}
{'Output': {}}
CodeSignatureVerifier
{'Input': {'expected_authority_names': ['Developer ID Installer: Mac Admins '
                                        'Open Source (T4SK8ZXCXG)',
                                        'Developer ID Certification Authority',
                                        'Apple Root CA'],
           'input_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg',
           'requirement': 'identifier "com.github.macadmins.Nudge"',
           'strict_verification': True}}
CodeSignatureVerifier: Verifying installer package signature...
CodeSignatureVerifier: Package "NudgeEssentials.pkg":
CodeSignatureVerifier:    Status: signed by a developer certificate issued by Apple for distribution
CodeSignatureVerifier:    Notarization: trusted by the Apple notary service
CodeSignatureVerifier:    Signed with a trusted timestamp on: 2024-07-25 21:35:20 +0000
CodeSignatureVerifier:    Certificate Chain:
CodeSignatureVerifier:     1. Developer ID Installer: Mac Admins Open Source (T4SK8ZXCXG)
CodeSignatureVerifier:        Expires: 2028-02-09 02:34:05 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            B1 06 B6 26 DA 3B A8 48 34 F3 DF D2 CC 5E AC 03 91 31 05 3F A9 A2 
CodeSignatureVerifier:            B7 BA 2A 5E 33 3C 3B 05 53 7A
CodeSignatureVerifier:        ------------------------------------------------------------------------
CodeSignatureVerifier:     2. Developer ID Certification Authority
CodeSignatureVerifier:        Expires: 2031-09-17 00:00:00 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F 
CodeSignatureVerifier:            D1 44 71 5F 35 06 43 D2 DF 3A
CodeSignatureVerifier:        ------------------------------------------------------------------------
CodeSignatureVerifier:     3. Apple Root CA
CodeSignatureVerifier:        Expires: 2035-02-09 21:40:36 +0000
CodeSignatureVerifier:        SHA256 Fingerprint:
CodeSignatureVerifier:            B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 
CodeSignatureVerifier:            68 C5 BE 91 B5 A1 10 01 F0 24
CodeSignatureVerifier: 
CodeSignatureVerifier: Signature is valid
CodeSignatureVerifier: Authority name chain is valid
{'Output': {}}
FlatPkgUnpacker
{'Input': {'destination_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack',
           'flat_pkg_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg'}}
FlatPkgUnpacker: Unpacked /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg to /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack
{'Output': {}}
FileFinder
{'Input': {'pattern': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge*.pkg'}}
FileFinder: No value supplied for find_method, setting default value of: glob
FileFinder: Found file match: '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg' from globbed '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge*.pkg'
FileFinder: Basename match: 'Nudge_Essentials-2.0.5.81760.pkg'
{'Output': {'found_basename': 'Nudge_Essentials-2.0.5.81760.pkg',
            'found_filename': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg'}}
PkgPayloadUnpacker
{'Input': {'destination_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities',
           'pkg_payload_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg/Payload',
           'purge_destination': True}}
PkgPayloadUnpacker: Unpacked /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg/Payload to /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities
{'Output': {}}
FileFinder
{'Input': {'find_method': 'glob',
           'pattern': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/**/Nudge.app/Contents/Info.plist'}}
FileFinder: Found file match: '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist' from globbed '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/**/Nudge.app/Contents/Info.plist'
FileFinder: Basename match: 'Info.plist'
{'Output': {'found_basename': 'Info.plist',
            'found_filename': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist'}}
Versioner
{'Input': {'input_plist_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist'}}
Versioner: No value supplied for plist_version_key, setting default value of: CFBundleShortVersionString
Versioner: No value supplied for skip_single_root_dir, setting default value of: False
Versioner: Found version 2.0.5.81760 in file /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist
{'Output': {'version': '2.0.5.81760'}}
MunkiPkginfoMerger
{'Input': {'additional_pkginfo': {'version': '2.0.5.81760'},
           'pkginfo': {'blocking_applications': [],
                       'catalogs': ['testing'],
                       'category': 'Configuration Management',
                       'description': 'Nudge is a Swift application for '
                                      'enforcing macOS updates.',
                       'developer': 'Erik Gomez',
                       'display_name': 'Nudge Essentials',
                       'name': 'NudgeEssentials',
                       'unattended_install': True}}}
MunkiPkginfoMerger: Merged {'version': '2.0.5.81760'} into pkginfo
{'Output': {'pkginfo': {'blocking_applications': [],
                        'catalogs': ['testing'],
                        'category': 'Configuration Management',
                        'description': 'Nudge is a Swift application for '
                                       'enforcing macOS updates.',
                        'developer': 'Erik Gomez',
                        'display_name': 'Nudge Essentials',
                        'name': 'NudgeEssentials',
                        'unattended_install': True,
                        'version': '2.0.5.81760'}}}
MunkiInstallsItemsCreator
{'Input': {'derive_minimum_os_version': 'YES',
           'faux_root': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities',
           'installs_item_paths': ['/Applications/Utilities/Nudge.app']}}
MunkiInstallsItemsCreator: Created installs item for /Applications/Utilities/Nudge.app
MunkiInstallsItemsCreator: Derived minimum os version as: 12.0
{'Output': {'additional_pkginfo': {'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
                                                 'CFBundleName': 'Nudge',
                                                 'CFBundleShortVersionString': '2.0.5.81760',
                                                 'CFBundleVersion': '2.0.5.81760',
                                                 'minosversion': '12.0',
                                                 'path': '/Applications/Utilities/Nudge.app',
                                                 'type': 'application',
                                                 'version_comparison_key': 'CFBundleShortVersionString'}],
                                   'minimum_os_version': '12.0',
                                   'version': '2.0.5.81760'}}}
MunkiPkginfoMerger
{'Input': {'additional_pkginfo': {'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
                                                'CFBundleName': 'Nudge',
                                                'CFBundleShortVersionString': '2.0.5.81760',
                                                'CFBundleVersion': '2.0.5.81760',
                                                'minosversion': '12.0',
                                                'path': '/Applications/Utilities/Nudge.app',
                                                'type': 'application',
                                                'version_comparison_key': 'CFBundleShortVersionString'}],
                                  'minimum_os_version': '12.0',
                                  'version': '2.0.5.81760'},
           'pkginfo': {'blocking_applications': [],
                       'catalogs': ['testing'],
                       'category': 'Configuration Management',
                       'description': 'Nudge is a Swift application for '
                                      'enforcing macOS updates.',
                       'developer': 'Erik Gomez',
                       'display_name': 'Nudge Essentials',
                       'name': 'NudgeEssentials',
                       'unattended_install': True,
                       'version': '2.0.5.81760'}}}
MunkiPkginfoMerger: Merged {'version': '2.0.5.81760', 'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge', 'CFBundleName': 'Nudge', 'CFBundleShortVersionString': '2.0.5.81760', 'CFBundleVersion': '2.0.5.81760', 'minosversion': '12.0', 'path': '/Applications/Utilities/Nudge.app', 'type': 'application', 'version_comparison_key': 'CFBundleShortVersionString'}], 'minimum_os_version': '12.0'} into pkginfo
{'Output': {'pkginfo': {'blocking_applications': [],
                        'catalogs': ['testing'],
                        'category': 'Configuration Management',
                        'description': 'Nudge is a Swift application for '
                                       'enforcing macOS updates.',
                        'developer': 'Erik Gomez',
                        'display_name': 'Nudge Essentials',
                        'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
                                      'CFBundleName': 'Nudge',
                                      'CFBundleShortVersionString': '2.0.5.81760',
                                      'CFBundleVersion': '2.0.5.81760',
                                      'minosversion': '12.0',
                                      'path': '/Applications/Utilities/Nudge.app',
                                      'type': 'application',
                                      'version_comparison_key': 'CFBundleShortVersionString'}],
                        'minimum_os_version': '12.0',
                        'name': 'NudgeEssentials',
                        'unattended_install': True,
                        'version': '2.0.5.81760'}}}
MunkiImporter
{'Input': {'MUNKI_REPO': '/Users/Shared/munki_repo',
           'pkg_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg',
           'pkginfo': {'blocking_applications': [],
                       'catalogs': ['testing'],
                       'category': 'Configuration Management',
                       'description': 'Nudge is a Swift application for '
                                      'enforcing macOS updates.',
                       'developer': 'Erik Gomez',
                       'display_name': 'Nudge Essentials',
                       'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
                                     'CFBundleName': 'Nudge',
                                     'CFBundleShortVersionString': '2.0.5.81760',
                                     'CFBundleVersion': '2.0.5.81760',
                                     'minosversion': '12.0',
                                     'path': '/Applications/Utilities/Nudge.app',
                                     'type': 'application',
                                     'version_comparison_key': 'CFBundleShortVersionString'}],
                       'minimum_os_version': '12.0',
                       'name': 'NudgeEssentials',
                       'unattended_install': True,
                       'version': '2.0.5.81760'},
           'repo_subdirectory': 'apps/Nudge',
           'version_comparison_key': 'CFBundleVersion'}}
MunkiImporter: No value supplied for MUNKI_REPO_PLUGIN, setting default value of: FileRepo
MunkiImporter: No value supplied for MUNKILIB_DIR, setting default value of: /usr/local/munki
MunkiImporter: No value supplied for force_munki_repo_lib, setting default value of: False
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Copied pkginfo to: /Users/Shared/munki_repo/pkgsinfo/apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist
MunkiImporter:            pkg to: /Users/Shared/munki_repo/pkgs/apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg
{'Output': {'munki_importer_summary_result': {'data': {'catalogs': 'testing',
                                                       'icon_repo_path': '',
                                                       'name': 'NudgeEssentials',
                                                       'pkg_repo_path': 'apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg',
                                                       'pkginfo_path': 'apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist',
                                                       'version': '2.0.5.81760'},
                                              'report_fields': ['name',
                                                                'version',
                                                                'catalogs',
                                                                'pkginfo_path',
                                                                'pkg_repo_path',
                                                                'icon_repo_path'],
                                              'summary_text': 'The following '
                                                              'new items were '
                                                              'imported into '
                                                              'Munki:'},
            'munki_info': {'_metadata': {'created_by': 'paul.cossey',
                                         'creation_date': datetime.datetime(2024, 8, 1, 12, 12, 56),
                                         'munki_version': '6.3.2.4588',
                                         'os_version': '15.0'},
                           'autoremove': False,
                           'blocking_applications': [],
                           'catalogs': ['testing'],
                           'category': 'Configuration Management',
                           'description': 'Nudge is a Swift application for '
                                          'enforcing macOS updates.',
                           'developer': 'Erik Gomez',
                           'display_name': 'Nudge Essentials',
                           'installed_size': 4024,
                           'installer_item_hash': 'bd1251ddd8caa82c5eb63436b0f01fec282066e97f6712a45858356b2917e6cb',
                           'installer_item_location': 'apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg',
                           'installer_item_size': 1425,
                           'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
                                         'CFBundleName': 'Nudge',
                                         'CFBundleShortVersionString': '2.0.5.81760',
                                         'CFBundleVersion': '2.0.5.81760',
                                         'minosversion': '12.0',
                                         'path': '/Applications/Utilities/Nudge.app',
                                         'type': 'application',
                                         'version_comparison_key': 'CFBundleVersion'}],
                           'minimum_os_version': '12.0',
                           'name': 'NudgeEssentials',
                           'receipts': [{'installed_size': 4024,
                                         'packageid': 'com.github.macadmins.Nudge.Essentials',
                                         'version': '2.0.5.81760'}],
                           'unattended_install': True,
                           'uninstall_method': 'removepackages',
                           'uninstallable': True,
                           'version': '2.0.5.81760'},
            'munki_repo_changed': True,
            'pkg_repo_path': '/Users/Shared/munki_repo/pkgs/apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg',
            'pkginfo_repo_path': '/Users/Shared/munki_repo/pkgsinfo/apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist'}}
Receipt written to /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/receipts/Nudge.munki-receipt-20240801-131256.plist

The following new items were imported into Munki:
    Name             Version      Catalogs  Pkginfo Path                                     Pkg Repo Path                                  Icon Repo Path  
    ----             -------      --------  ------------                                     -------------                                  --------------  
    NudgeEssentials  2.0.5.81760  testing   apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist  apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg 
erikng commented 1 month ago

Your idea is great.

paul-cossey commented 1 month ago

Thanks!

Commit : https://github.com/autopkg/erikng-recipes/pull/15/commits/b9c780c20edae5b12326e10d03f5f7b7edc85ebe has been tagged on to my PR πŸ˜„