There was an issue in which we assumed that the phabricator settings were always set, this is obviously incorrect so check that they exist before attempting to add them to shared parameters for the agent to use.
Also gone through and tidied up a few loose ends highlighted by SonarQube.
Allow either the agent or server loggers to be used with the wrapper class by making the set method use the interface rather than concrete class. Also rename the interface away from C# style naming.
Since there is limited access to parameters in the early stages of a build we need to pass through the shared parameters from the server to the agent. Once the BuildContext has these parameters we can then go forward and check all the required information is present before trying to patch in our revision changes.
We were previously setting the phabricator variabels we needs within builds to be environment variables however there are issues arount pulling out ENVS when on the agent within `buildStarted` step. To resolve the lack of environment variable access we are going to use sharedParameters which also doesn't work with variables prefixed with `env.` hence the rename.
We are now parsing the phabractor variables and checking the ones we need are present. If there is no phabricator url then the process end likewise if there is a missing configuration variable the process ends too.
To make sure there are no naming conflicts with teamcity environment variable we are renaming the vars injected to the build via the harbormaster trigger.
Add a build tracker that is spun up when a bulid is created. The tracker will collect environment variables and wait for the build to finish before reporting the results.