Package: git2jss
Git2JSSVersion : v2.0.1Author: Geoff LeeOverviewQuestion:How do you ensure that all changes to Scripts and ComputerExtensionAttributes in your JAMF JSS are logged, reversible, and match what you have in source control?Answer:Make it zero-effort.UsingGit2jss, after making changes to JSS Scripts or CEAs in your dev/test environment and pushing them to a Git repository, you can export a tagged copy to your JSS, complete with the Git changelog in the ‘Notes’ field. Reverting a change is as easy as exporting the previous tagged version.You can also use this script in a Continuous Integration pipeline to export scripts from the head of a given branch to your JSS.Templating of some important values is also supported, so your scripts automatically contain details of the last change, and where they can be found in source control.Passwords are stored in the system keychain by default.Installation / UsageNB: thepython-jssandkeyringmodules are required. If manually installing, you’ll need to make sure they are present.
Installing via pip should take care of this for you.Install via pipIf you’re installing into a virtualenv$ pip install git2jssshould be all you need to do.If installing onto OS X 10.13 and not using a virtualenv,
you’ll need to use sudo, and install a missing dependency:$ sudo pip install git2jss$ sudo pip install cryptographyOr manuallyClone the repo and run the setup script$ git clonehttps://github.com/gkluoe/git2jss.git$ python setup.py installExamplesCommandlineYou can use it on the commandine like this:# Export the file localscript.sh to a Script object on the JSS called do_something_great.sh
# using the existing tag v0.0.9

$ git tag v0.0.9 && git push origin v0.0.9
$ git2jss --file localscript.sh --name do_something_great.sh --tag v0.0.9

# Export the file run-softwareupdate.py at the head of the master branch
# to an object on the JSS with the same name

$ git2jss --file run-softwareupdate.py --branch master

# Export the file check_firewall.sh to a ComputerExtensionAttribute object on the JSS called
# FirewallCheck, using the existing tag v0.0.9

$ git2jss --mode ComputerExtensionAttribute --file check_firewall.sh --name check-firewall --tag v0.0.9

# Export each script in the current folder that has a script object on the server
# with a matching name, and exists at tag v1.0.2

$ git2jss --all --tag v1.0.2

# Or do the same for all files at the head of branch 'production'

$ git2jss --all --branch production

# Show information about the currently configured JSS (or enter details if none configured)

$ git2jss --jss-infoTemplatingThe following variables, if embedded into your script, will be replaced with the indicated values when being transferred to the JSSVariableValue@@VERSIONIf –tag was used: The name of the git tag that you have specified (eg v1.0.1)
If –branch was used: The commit hash of the last change of the file, and a note of the branch@@ORIGINAssuming you have a git remote called ‘origin’, the URL thereof
(eghttps://github.com/uoe-macos/jss)@@PATHThe name of the file in the git repository identified by @@ORIGIN``@@DATEThe date of thelast changeof the file in Git@@USERThe username used by git2jss to authenticate to the JSS at
the time the script was exported@@LOGThe entire Git log for this script, formatted thus:'%h - %cD %ce: %n %s%n'@@LOGis used to construct the ‘Notes’ field in the JSS, overwriting anything that was present previously.ContributingIssues and pull requests are very welcome!