Context
I would like to create a Build Plan that can interact with a private build system via humans. The caveat is that our Phabricator instance is hosted on a public server with no access to the private build system.
The workflow I have in mind:
arc diff # At some point in the future, someone with access to the private build system runs internal_ci
The tentative idea is for internal_ci to initiate the continuous integration tooling.
Upon completion of the continuous integration, the tooling would call harbormaster.sendmessage to update the status of the build for the relevant diff.
The problem
sendmessage requires a buildTargetPHID value.
As best as I can tell, this value is only sent via the HTTP request as part of the Build Step. Our internal system can't receive this request, so we'd need to be able to fetch the value when we're ready to update the build.
Invocations to harbormaster.querybuilds do not return this value.
I could not find another API that would return the target.phid value seen in the "Variables" tab under /harbormaster/build/###/
The feature request
Returning the target phid in harbormaster.querybuilds would allow me to build this integration.
Assumptions
Based on T9456 I'm assuming the workflow of "some private build system" is not a priority, so I can understand if this won't be built for some time. If that is the case โ and the feature request seems sound โ I'm happy to contribute a patch.
I am also assuming that the work required to build this feature is relatively minor.
I think it would be reasonable to assume that most companies using this sort of workflow likely have an instance of Phabricator running on the local network that can therefor talk to the internal build system. This would allow the internal system to be invoked by harbormaster. My particular situation may be a bit odd in that sense.