- help_text: brief: Create a Cloud Build Connection of type GitHub. description: | Create a Cloud Build Connection of type GitHub (for github.com). Connections for github.com can be created either by following an installation process (that requires manual steps in a web browser) or by providing the properties of an already-installed application (installation ID and a user token) as arguments to this command. examples: | To create a connection by following the installation process, provide only the connection name: $ {command} myconn \ --project=myproj --region=us-central1 The command will print a URL to be opened in a web browser in order to authorize Cloud Build (i.e. Cloud Build gets an OAuth token for the github account that you use). After doing this authorization, you can get the connection's installation state with the describe command: $ gcloud alpha builds connections describe myconn The output will include a second link to install the Cloud Build GitHub App. After doing this, the connection will be in installation state COMPLETE and repositories can be added to it (see ``gcloud'' alpha builds repositories create). -- To create a complete connection (e.g. based on an existing user token and installation), provide both the authorizer secret token and the app installation id: $ {command} myconn \ --project=myproj --region=us-central1 \ --authorizer-token-secret-version=projects/myproj/secrets/mytoken/versions/1 \ --app-installation-id=1234 Above command creates the connection in installation state COMPLETE, ready for adding repositories. command_type: CREATE request: collection: cloudbuild.projects.locations.connections api_version: v2 # If no arguments are provided, create an empty connection. static_fields: "connection.githubConfig": {} arguments: resource: help_text: Connection to create. spec: !REF googlecloudsdk.command_lib.cloudbuild.resources_v2:connection params: - group: help_text: Group of arguments for configuring a complete connnection. # if app-installation-id is provided, authorizer-token has to be provided too. params: - api_field: connection.githubConfig.authorizerCredential.oauthTokenSecretVersion arg_name: authorizer-token-secret-version help_text: Secret containing the authorizer user's token. required: true - api_field: connection.githubConfig.appInstallationId arg_name: app-installation-id help_text: Installation ID of the Cloud Build GitHub App. output: # Print the installation instruction and link (if any) after creation. format: 'csv[no-heading,separator="\\n"](installationState.stage,installationState.message,installationState.actionUri)' async: collection: cloudbuild.projects.locations.operations