Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: introduce Cloudbuild v2 #5924

Merged
merged 2 commits into from
Mar 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Build/.OwlBot.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
deep-copy-regex:
- source: /google/devtools/cloudbuild/v1/.*-php/(.*)
dest: /owl-bot-staging/Build/v1/$1
- source: /google/devtools/cloudbuild/(v1|v2)/.*-php/(.*)
dest: /owl-bot-staging/Build/$1/$2
api-name: Build
53 changes: 53 additions & 0 deletions Build/metadata/V2/Cloudbuild.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added Build/metadata/V2/Repositories.php
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<?php
/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* GENERATED CODE WARNING
* This file was automatically generated - do not edit!
*/

require_once __DIR__ . '/../../../vendor/autoload.php';

// [START cloudbuild_v2_generated_RepositoryManager_BatchCreateRepositories_sync]
use Google\ApiCore\ApiException;
use Google\ApiCore\OperationResponse;
use Google\Cloud\Build\V2\BatchCreateRepositoriesResponse;
use Google\Cloud\Build\V2\CreateRepositoryRequest;
use Google\Cloud\Build\V2\Repository;
use Google\Cloud\Build\V2\RepositoryManagerClient;
use Google\Rpc\Status;

/**
* Creates multiple repositories inside a connection.
*
* @param string $formattedParent The connection to contain all the repositories being created.
* Format: projects/&#42;/locations/&#42;/connections/*
* The parent field in the CreateRepositoryRequest messages
* must either be empty or match this field. Please see
* {@see RepositoryManagerClient::connectionName()} for help formatting this field.
* @param string $formattedRequestsParent The connection to contain the repository. If the request is part
* of a BatchCreateRepositoriesRequest, this field should be empty or match
* the parent specified there. Please see
* {@see RepositoryManagerClient::connectionName()} for help formatting this field.
* @param string $requestsRepositoryRemoteUri Git Clone HTTPS URI.
* @param string $requestsRepositoryId The ID to use for the repository, which will become the final
* component of the repository's resource name. This ID should be unique in
* the connection. Allows alphanumeric characters and any of
* -._~%!$&'()*+,;=&#64;.
*/
function batch_create_repositories_sample(
string $formattedParent,
string $formattedRequestsParent,
string $requestsRepositoryRemoteUri,
string $requestsRepositoryId
): void {
// Create a client.
$repositoryManagerClient = new RepositoryManagerClient();

// Prepare any non-scalar elements to be passed along with the request.
$requestsRepository = (new Repository())
->setRemoteUri($requestsRepositoryRemoteUri);
$createRepositoryRequest = (new CreateRepositoryRequest())
->setParent($formattedRequestsParent)
->setRepository($requestsRepository)
->setRepositoryId($requestsRepositoryId);
$requests = [$createRepositoryRequest,];

// Call the API and handle any network failures.
try {
/** @var OperationResponse $response */
$response = $repositoryManagerClient->batchCreateRepositories($formattedParent, $requests);
$response->pollUntilComplete();

if ($response->operationSucceeded()) {
/** @var BatchCreateRepositoriesResponse $result */
$result = $response->getResult();
printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
} else {
/** @var Status $error */
$error = $response->getError();
printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
}
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}

/**
* Helper to execute the sample.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
* - It may require correct/in-range values for request initialization.
* - It may require specifying regional endpoints when creating the service client,
* please see the apiEndpoint client configuration option for more details.
*/
function callSample(): void
{
$formattedParent = RepositoryManagerClient::connectionName(
'[PROJECT]',
'[LOCATION]',
'[CONNECTION]'
);
$formattedRequestsParent = RepositoryManagerClient::connectionName(
'[PROJECT]',
'[LOCATION]',
'[CONNECTION]'
);
$requestsRepositoryRemoteUri = '[REMOTE_URI]';
$requestsRepositoryId = '[REPOSITORY_ID]';

batch_create_repositories_sample(
$formattedParent,
$formattedRequestsParent,
$requestsRepositoryRemoteUri,
$requestsRepositoryId
);
}
// [END cloudbuild_v2_generated_RepositoryManager_BatchCreateRepositories_sync]
91 changes: 91 additions & 0 deletions Build/samples/V2/RepositoryManagerClient/create_connection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?php
/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* GENERATED CODE WARNING
* This file was automatically generated - do not edit!
*/

require_once __DIR__ . '/../../../vendor/autoload.php';

// [START cloudbuild_v2_generated_RepositoryManager_CreateConnection_sync]
use Google\ApiCore\ApiException;
use Google\ApiCore\OperationResponse;
use Google\Cloud\Build\V2\Connection;
use Google\Cloud\Build\V2\RepositoryManagerClient;
use Google\Rpc\Status;

/**
* Creates a Connection.
*
* @param string $formattedParent Project and location where the connection will be created.
* Format: `projects/&#42;/locations/*`. Please see
* {@see RepositoryManagerClient::locationName()} for help formatting this field.
* @param string $connectionId The ID to use for the Connection, which will become the final
* component of the Connection's resource name. Names must be unique
* per-project per-location. Allows alphanumeric characters and any of
* -._~%!$&'()*+,;=&#64;.
*/
function create_connection_sample(string $formattedParent, string $connectionId): void
{
// Create a client.
$repositoryManagerClient = new RepositoryManagerClient();

// Prepare any non-scalar elements to be passed along with the request.
$connection = new Connection();

// Call the API and handle any network failures.
try {
/** @var OperationResponse $response */
$response = $repositoryManagerClient->createConnection(
$formattedParent,
$connection,
$connectionId
);
$response->pollUntilComplete();

if ($response->operationSucceeded()) {
/** @var Connection $result */
$result = $response->getResult();
printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
} else {
/** @var Status $error */
$error = $response->getError();
printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
}
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}

/**
* Helper to execute the sample.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
* - It may require correct/in-range values for request initialization.
* - It may require specifying regional endpoints when creating the service client,
* please see the apiEndpoint client configuration option for more details.
*/
function callSample(): void
{
$formattedParent = RepositoryManagerClient::locationName('[PROJECT]', '[LOCATION]');
$connectionId = '[CONNECTION_ID]';

create_connection_sample($formattedParent, $connectionId);
}
// [END cloudbuild_v2_generated_RepositoryManager_CreateConnection_sync]
102 changes: 102 additions & 0 deletions Build/samples/V2/RepositoryManagerClient/create_repository.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
<?php
/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* GENERATED CODE WARNING
* This file was automatically generated - do not edit!
*/

require_once __DIR__ . '/../../../vendor/autoload.php';

// [START cloudbuild_v2_generated_RepositoryManager_CreateRepository_sync]
use Google\ApiCore\ApiException;
use Google\ApiCore\OperationResponse;
use Google\Cloud\Build\V2\Repository;
use Google\Cloud\Build\V2\RepositoryManagerClient;
use Google\Rpc\Status;

/**
* Creates a Repository.
*
* @param string $formattedParent The connection to contain the repository. If the request is part
* of a BatchCreateRepositoriesRequest, this field should be empty or match
* the parent specified there. Please see
* {@see RepositoryManagerClient::connectionName()} for help formatting this field.
* @param string $repositoryRemoteUri Git Clone HTTPS URI.
* @param string $repositoryId The ID to use for the repository, which will become the final
* component of the repository's resource name. This ID should be unique in
* the connection. Allows alphanumeric characters and any of
* -._~%!$&'()*+,;=&#64;.
*/
function create_repository_sample(
string $formattedParent,
string $repositoryRemoteUri,
string $repositoryId
): void {
// Create a client.
$repositoryManagerClient = new RepositoryManagerClient();

// Prepare any non-scalar elements to be passed along with the request.
$repository = (new Repository())
->setRemoteUri($repositoryRemoteUri);

// Call the API and handle any network failures.
try {
/** @var OperationResponse $response */
$response = $repositoryManagerClient->createRepository(
$formattedParent,
$repository,
$repositoryId
);
$response->pollUntilComplete();

if ($response->operationSucceeded()) {
/** @var Repository $result */
$result = $response->getResult();
printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
} else {
/** @var Status $error */
$error = $response->getError();
printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
}
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}

/**
* Helper to execute the sample.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
* - It may require correct/in-range values for request initialization.
* - It may require specifying regional endpoints when creating the service client,
* please see the apiEndpoint client configuration option for more details.
*/
function callSample(): void
{
$formattedParent = RepositoryManagerClient::connectionName(
'[PROJECT]',
'[LOCATION]',
'[CONNECTION]'
);
$repositoryRemoteUri = '[REMOTE_URI]';
$repositoryId = '[REPOSITORY_ID]';

create_repository_sample($formattedParent, $repositoryRemoteUri, $repositoryId);
}
// [END cloudbuild_v2_generated_RepositoryManager_CreateRepository_sync]
Loading