{"id":17690271,"url":"https://github.com/grahampugh/autopkgsetup","last_synced_at":"2025-08-20T18:31:57.977Z","repository":{"id":42596592,"uuid":"98566998","full_name":"grahampugh/AutoPkgSetup","owner":"grahampugh","description":"A single-script installer for AutoPkg. Optimised for JamfUploader.","archived":false,"fork":false,"pushed_at":"2024-07-26T12:19:52.000Z","size":428,"stargazers_count":50,"open_issues_count":0,"forks_count":8,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-12-10T02:21:26.968Z","etag":null,"topics":["autopkg","jamf","jamfuploader"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grahampugh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-27T18:10:04.000Z","updated_at":"2024-12-08T09:53:34.000Z","dependencies_parsed_at":"2022-09-21T21:42:23.743Z","dependency_job_id":"f03e7a9b-db43-4e24-9e69-d392a3db790e","html_url":"https://github.com/grahampugh/AutoPkgSetup","commit_stats":null,"previous_names":["grahampugh/autopkgsetup"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grahampugh%2FAutoPkgSetup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grahampugh%2FAutoPkgSetup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grahampugh%2FAutoPkgSetup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grahampugh%2FAutoPkgSetup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grahampugh","download_url":"https://codeload.github.com/grahampugh/AutoPkgSetup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230445926,"owners_count":18227060,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autopkg","jamf","jamfuploader"],"created_at":"2024-10-24T11:50:28.830Z","updated_at":"2024-12-19T14:06:36.086Z","avatar_url":"https://github.com/grahampugh.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AutoPkgSetup\n\nA script to automatically install [AutoPkg] and optionally configure [JamfUploader] for immediate use.\n\n## What does it do?\n\n* Installs command line tools if not present (because `git` is required for\n    AutoPkg)\n* Downloads, installs and configures the latest version of AutoPkg\n* Optionally configures JamfUploader\n\nThe script is idempotent. It is safe to run if the Xcode Command Line Tools and\nAutoPkg are already installed. They will only be updated if\nthey are out of date. Any existing AutoPkg repos will also be updated, with the\ncaveat that all the repos you want should be in your autopkg-repo-list file.\n\n## Prerequisites for JamfUploader to work\n\nCreate a user on each JSS Instance with the following credentials\n(**System Settings** =\u003e **JSS User Accounts \u0026 Groups**):  \n\n* **Account:**\n  * Username: `AutoPkg`\n  * Access Level: `Full Access`\n  * Privilege Set: `Custom`\n  * Access Status: `Enabled`\n  * Full Name: `AutoPkg JSSImporter`\n  * Email Address: `jamfadmin@myorg.com`\n  * Password: `ChangeMe!!!`  \n* **Privileges:**\n  * Categories: `Create` `Read` `Update`\n  * Computer Extension Attributes: `Create` `Read` `Update`\n  * File Share Distribution Points: `Read`\n  * Packages: `Create` `Read` `Update`\n  * Policies: `Create` `Read` `Update`\n  * Scripts: `Create` `Read` `Update`\n  * Smart Computer Groups: `Create` `Read` `Update`\n  * Static Computer Groups: `Create` `Read` `Update`\n\nYou also need to know the password that the JSS uses to connect to the\ndistribution point.\n\n## Download\n\nSince one of the steps of this script is to install git, you'll perhaps not be able to git clone this script. So download the ZIP archive from the GitHub page, or use the following command to obtain the latest commit:\n\n```\ncurl -L \"https://github.com/grahampugh/AutoPkgSetup/archive/refs/heads/main.zip\" -o ~/Downloads/autopkg-setup.zip\n```\n\nThen unzip the downloaded zip file:\n\n```\nunzip ~/Downloads/autopkg-setup.zip\n```\n\n## Using the Setup Wizard\n\nTo run the script using a swiftDialog-based Setup Wizard, run the file setup-dialog.command from Finder or run `open setup-dialog.command`.\n\nFollow the instructions in the dialog window to proceed.\n\n![Setup Wizard](./assets/setup-wizard.png)\n\n## Running the script\n\nRun the script as the regular user (not as root/sudo).\n\nRun with no options to:\n\n* Install the Xcode Command Line Tools\n* Download and install AutoPkg\n* Create the prefs file in the default location (`~/Library/Preferences/com.github.autopkg.plist`)\n* Add the `grahampugh-recipes` repo\n\n```\n./autopkg-setup.sh\n```\n\nAdditional options are as follows.\n\n### Use the jamf-upload repo instead of the grahampugh-recipes repo\n\nAdding the jamf-upload repo means you get the latest features of JamfUploader. It also allows you to use the `jamf-upload.sh` script which can take advantage of the JamfUploader processors without needing recipes. For more information about `jamf-upload.sh`, see the [jamf-upload.sh wiki page]().\n\nTo add the jamf-upload repo, add the `--jamf-uploader-repo` flag:\n\n```\n./autopkg-setup.sh --jamf-uploader-repo\n```\n\nIf you only intend to install AutoPkg for use with `jamf-upload.sh`, you don't need any more parameters.\n\n### Force reinstallation of AutoPkg\n\nIf you want to force the reinstallation of AutoPkg, for example to upgrade AutoPkg, use the `-f` or `--force` option.\n\n### Allow recipes to run without trust\n\nIf you want to allow recipes to run without failing due to no trust, use the `-x` or `--fail` option.\n\n### Install the latest pre-release version of AutoPkg\n\nIf you want to force the installation of the latest pre-release version of AutoPkg, use the `-b` or `--beta` option.\n\n### Supply an existing prefs file\n\nTo supply an pre-made prefs file, use the `--prefs` option and specify a path, e.g. `./autopkg-setup.sh --prefs /path/to/com.myorg.autopkg.prefs`.\n\n### Replace an existing prefs file\n\nTo delete any existing prefs file and start fresh, add the `--replace-prefs` option.\n\n### Add a GitHub token\n\nTo add a GitHub token to aid with AutoPkg searches, add the `--github-token` option and specify the token, e.g. `./autopkg-setup.sh --github-token MY_GITHUB_TOKEN`.\n\n### Add repos from a repo list\n\nTo add (or update) repos from a repo-list, add the `--repo-list` option and specify the path to the list, e.g. `./autopkg-setup.sh --repo-list /path/to/repolist.txt`.\n\n### Add necessary repos for a recipe list\n\nTo ensure all dependencies for your recipe list are added to your repo list, add the `--recipe-list` option and specify the path to the list, e.g. `./autopkg-setup.sh --recipe-list /path/to/recipelist.txt`. This will run `autopkg info -p` for all recipes in the list and attempt to add all parent repos that are not already added. Note that this option is currently fragile due to problems with GitHub searches.\n\n### Add a private repo to the AutoPkg search list\n\nTo add a private repo, supply the path to the repo with `--private-repo /path/to/private-repo` and the URL of the repo with `--private-repo-url https://my.git.server/reponame`.\n\n## Configure JamfUploader\n\nTo configure JamfUploader, supply the Jamf Pro server URL, e.g. `--jss-url \"https://my.jamfcloud.com\"`.\n\nYou can supply the API user from the command line with the `--jss-user MY_USERNAME` option. If you use the `--jss-url` option but do not supply a value for `--jss-user`, and it is not already set in the AutoPkg prefs, you will be asked to supply it.\n\nYou can supply the API user's password from the command line with the `--jss-pass MY_PASSWORD` option. If you do not supply this value and it is not already set in the AutoPkg prefs, you will be asked to supply it.\n\nJamf Cloud Distribution Point users do not need to supply any additional keys.\n\nTo set `jcds2_mode`, add the `-j` or `--jcds2-mode` option.\n\nIf you have a local FileShare Distribution Point, supply the SMB server's full URL including Share name, e.g. `--smb-url \"smb://my.jamf-dp.com/ShareName\"`. The share must be a top level share.\n\nYou can supply the SMB user from the command line with the `--smb-user MY_SMB_USERNAME` option. If you use the `--smb-url` option but do not supply a value for `--smb-user`, and it is not already set in the AutoPkg prefs, you will be asked to supply it.\n\nYou can supply the API user's password from the command line with the `--smb-pass MY_SMB_PASSWORD` option. If you do not supply this value and it is not already set in the AutoPkg prefs, you will be asked to supply it.\n\n## Configure a Slack webhook\n\nTo configure a Slack webhook, supply the hook with `--slack-webhook https://my.slack.webhook/url`.\n\nTo set a username that Slack will report as, supply it with `--slack-user SLACK_USERNAME`.\n\n[AutoPkg]: https://github.com/autopkg/autopkg\n[JamfUploader]: https://github.com/grahampugh/jamf-upload/wiki/JamfUploader-AutoPkg-Processors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrahampugh%2Fautopkgsetup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrahampugh%2Fautopkgsetup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrahampugh%2Fautopkgsetup/lists"}