Runner module to directly manage the git external pillar

salt.runners.git_pillar.update(branch=None, repo=None)

New in version 2014.1.0.

Changed in version 2015.8.4: This runner function now supports the git_pillar configuration schema introduced in 2015.8.0. Additionally, the branch and repo can now be omitted to update all git_pillar remotes. The return data has also changed to a dictionary. The values will be True only if new commits were fetched, and False if there were errors or no new commits were fetched.

Changed in version 2018.3.0: The return for a given git_pillar remote will now be None when no changes were fetched. False now is reserved only for instances in which there were errors.

Changed in version 3001: The repo parameter also matches against the repo name.

Fetch one or all configured git_pillar remotes.


This will not fast-forward the git_pillar cachedir on the master. All it does is perform a git fetch. If this runner is executed with -l debug, you may see a log message that says that the repo is up-to-date. Keep in mind that Salt automatically fetches git_pillar repos roughly every 60 seconds (or whatever loop_interval is set to). So, it is possible that the repo was fetched automatically in the time between when changes were pushed to the repo, and when this runner was executed. When in doubt, simply refresh pillar data using saltutil.refresh_pillar and then use pillar.item to check if the pillar data has changed as expected.

CLI Example:

# Update specific branch and repo
salt-run git_pillar.update branch='branch' repo=''
# Update specific repo, by name
salt-run git_pillar.update repo=myrepo
# Update all repos
salt-run git_pillar.update
# Run with debug logging
salt-run git_pillar.update -l debug