- help_text: brief: Create a Cloud Build Connection of type GitHub Enterprise. description: | Create a Cloud Build Connection of type GitHub Enterprise. Connections for GitHub Enterprise can be created either by following an intallation process (that requires manual steps in a web browser) or by providing all the properties of an already-installed application as arguments to this command. If the GitHub Enterprise server can only be accessed within a VPC, a Service Directory service resource can be provided for connecting to it. examples: | To create a connection by following the installation process, provide only the connection name and the host URI. If the server can only be accessed within a VPC, provide also the Service Directory service resource: $ {command} my-ghe-conn \ --project=myproj --region=us-central1 --host-uri=https://my.ghe-server.net --service-directory-service=projects/myproj/namespaces/x/services/mysds The command will print a URL to be opened in a web browser in order create and install a GitHub App in that server. After following the URL, you can get the connection's installation state with The ``describe'' command: $ gcloud alpha builds connections describe my-ghe-conn --region=us-central1 If the connection's installation state is not COMPLETE yet, it will provide a link to continue the installation process. Once the connection is in installation state COMPLETE, repositories can be added to it (see ``gcloud'' alpha builds repositories create). -- To create a complete connection (e.g. based on an existing installation), provide all the parameters: $ {command} my-ghe-conn \ --project=myproj --region=us-central1 \ --app-id=111 --app-slug=gcb-app \ --service-directory-service=projects/myproj/namespaces/x/services/mysds \ --private-key-secret-version=projects/myproj/secrets/pk/versions/1 \ --webhook-secret-secret-version=projects/myproj/secrets/whsecret/versions/1 \ --app-slug=myapp \ --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 static_fields: "connection.githubEnterpriseConfig": {} arguments: resource: help_text: Connection to create. spec: !REF googlecloudsdk.command_lib.cloudbuild.resources_v2:connection params: - api_field: connection.githubEnterpriseConfig.hostUri arg_name: host-uri required: true help_text: URI of the GitHub Enterprise server. - group: help_text: Group of arguments for configuring access through Service Directory. params: - api_field: connection.githubEnterpriseConfig.serviceDirectoryConfig.service arg_name: service-directory-service required: true help_text: Service Directory service resource to use for accessing the GitHub Enterprise Server. Necessary only if the server has no public access from the internet. - api_field: connection.githubEnterpriseConfig.sslCa arg_name: ssl-ca-file help_text: File containing the SSL_CA to be used. processor: googlecloudsdk.core.util.files:ReadFileContents - group: help_text: Group of arguments for the GitHub App properties. params: - api_field: connection.githubEnterpriseConfig.appId arg_name: app-id required: true help_text: App ID of the GitHub App in the GitHub Enterprise server. - api_field: connection.githubEnterpriseConfig.appSlug arg_name: app-slug required: true help_text: |- App slug (url-friendly name) of the GitHub App. When seeing the configuration page of the App (e.g. in https://my-ghe-server.net/settings/apps/my-app), the app-slug is the last component of the URL path ("my-app" in that example). - api_field: connection.githubEnterpriseConfig.privateKeySecretVersion arg_name: private-key-secret-version required: true help_text: Secret containing the private key of the GitHub App. - api_field: connection.githubEnterpriseConfig.webhookSecretSecretVersion arg_name: webhook-secret-secret-version required: true help_text: |- Secret containing the webhook secret string for validating webhook events generated by the GitHub App. - api_field: connection.githubEnterpriseConfig.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