The Promoted Builds plugin should pass the actual job instance to the Git Publisher perform() when performing post-promote action.
I wondered why publishing Git tags did not work as post promote action and debugged the code a bit.
The promotion will fail with
Promoting JOBNAME #13
failed build hudson.plugins.git.GitPublisher@7cdd86df SUCCESS
In the class GitPublisher I see build.getProject() returns a project instance pointing to the build and promote. the getScm() then will of course return a NullSCM. I think getProject() should return the base/actual job so that the Git publisher wil refer to the correct project.
A Git Publisher setup as post build action works quiet fine.