A fast asynchronous python library for syncing your scripts in git with your JSS easily. This allows admins to keep their script in a version control system for easy updating rather than googling and copy-pasting from resources that they find online.
- Fork the Project
- Install Python version 3.6 or higher. (this is because of the async requirements)
- Run
python3.6 -m pip install -r requirements.txt
to install required modules - Run
./tools/download.py --url https://your.jss.url:8443 --username api_user
to download all scripts and extension attributes to the repository - Run
./sync.py --url https://your.jss.url:8443 --username api_user
to sync all scripts back to your JSS
Optional flags for download.py
:
--password
for CI/CD (Will prompt for password if not set)--do_not_verify_ssl
to skip ssl verification--overwrite
to overwrite all scripts and extension attributes
Optional flags for sync.py
:
--password
for CI/CD (Will prompt for password if not set)--do_not_verify_ssl
to skip ssl verification--overwrite
to overwrite all scripts and extension attributes--limit
to limit max connections (default=25)--timeout
to limit max connections (default=60)--verbose
to add additional logging--update_all
to upload all resources in./extension_attributes
and./scripts
--jenkins
to write a Jenkins file:jenkins.properties
with$scripts
and$eas
and compare$GIT_PREVIOUS_COMMIT
with$GIT_COMMIT
ConfigParser (Optional):
A config file can be created in the project root or the users home folder. When a config file exists, the script will not promt for a password.
A jamfapi.cfg file can provide the following variables:
- username
- password
- url
git2jss requires Python 3.6 and the python modules listed in requirements.txt
The project can be ran ad-hoc with the example listed above, but ideally you setup webhooks and integrate into a CI/CD pipeline so each time a push is made to the repo your scripts are re-uploaded to the JSS.
PR's are always welcome!