Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php b/src/applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php
index ba6f3e6c7e..c9f0b9dc9e 100644
--- a/src/applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php
+++ b/src/applications/harbormaster/step/HarbormasterHTTPRequestBuildStepImplementation.php
@@ -1,70 +1,87 @@
<?php
final class HarbormasterHTTPRequestBuildStepImplementation
extends VariableBuildStepImplementation {
public function getName() {
return pht('Make HTTP Request');
}
public function getGenericDescription() {
return pht('Make an HTTP request.');
}
public function getDescription() {
$settings = $this->getSettings();
$uri = new PhutilURI($settings['uri']);
$domain = $uri->getDomain();
- return pht('Make an HTTP request to %s', $domain);
+ return pht('Make an HTTP %s request to %s', $settings['method'], $domain);
}
public function execute(
HarbormasterBuild $build,
HarbormasterBuildTarget $build_target) {
$settings = $this->getSettings();
$variables = $build_target->getVariables();
$uri = $this->mergeVariables(
'vurisprintf',
$settings['uri'],
$variables);
$log_body = $build->createLog($build_target, $uri, 'http-body');
$start = $log_body->start();
+ $method = 'POST';
+ if ($settings['method'] !== '') {
+ $method = $settings['method'];
+ }
+
list($status, $body, $headers) = id(new HTTPSFuture($uri))
- ->setMethod('POST')
+ ->setMethod($method)
->setTimeout(60)
->resolve();
$log_body->append($body);
$log_body->finalize($start);
if ($status->getStatusCode() != 200) {
$build->setBuildStatus(HarbormasterBuild::STATUS_FAILED);
}
}
public function validateSettings() {
$settings = $this->getSettings();
if ($settings['uri'] === null || !is_string($settings['uri'])) {
return false;
}
+ if ($settings['method'] === null || $settings['method'] != '' &&
+ !in_array ($settings['method'],
+ array('GET', 'PUT', 'DELETE', 'POST'))) {
+ return false;
+ }
+
return true;
}
public function getSettingDefinitions() {
return array(
'uri' => array(
'name' => 'URI',
'description' => pht('The URI to request.'),
'type' => BuildStepImplementation::SETTING_TYPE_STRING,
),
+ 'method' => array(
+ 'name' => 'Method',
+ 'description' =>
+ pht('Request type. Should be GET, POST, PUT, or DELETE.'),
+ 'type' => BuildStepImplementation::SETTING_TYPE_STRING,
+ ),
);
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jul 27, 6:29 PM (1 w, 9 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
186064
Default Alt Text
(2 KB)

Event Timeline