sdk

package module
v0.3.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

README

Harness SDK for Go

This project is a Harness SDK for the go programming language. It provides go client for interacting with the current gen GraphQL and Config-as-Code API's.

Disclaimer

This product is not supported by the Harness Customer support team. If you have any questions please open a new issue or join our slack channel.

Getting Started

Installing

Use go get to retrieve the SDK to add it to your GOPATH workspace, or project's Go module dependencies.

go get github.com/harness/harness-go-sdk

To update the SDK use go get -u to retrieve the latest version of the SDK.

go get -u github.com/harness/harness-go-sdk
Dependencies

The metadata of the SDK's dependencies can be found in the Go module file go.mod.

Go Modules

If you are using Go modules, your go get will default to the latest tagged release version of the SDK. To get a specific release version of the SDK use @<tag> in your go get command.

go get github.com/harness/harness-go-sdk@v0.2.11

To get the latest SDK repository change use @latest.

go get github.com/harness/harness-go-sdk@latest

Quick Examples

Get an application by name
client := NewClient()
app, err := client.ApplicationClient.GetApplicationByName("my-app)
Create a Service
svc, _ := ServiceFactory(app.Id, serviceName, cac.DeploymentTypes.Kubernetes, cac.ArtifactTypes.Docker)
svc.ApplicationId = app.Id

newService, err := client.Services().UpsertService(svc)
Configuration

There are a few environment variables you can set to configure the api client.

  • HARNESS_ACCOUNT_ID: (required) The ID of the harness account you are connecting to.
  • HARNESS_API_KEY: (required) The API Key used for authentication.
  • HARNESS_BEARER_TOKEN: (optional) The authentication bearer token. This is needed for certain API calls to the config-as-code API's. This will be deprecated in the near future once those endpoints are updated.
  • HARNESS_ENDPOINT: (optional) The FQDN for contacting the Harness managers. Defaults to https://app.harness.io.

If you need to provide additional configuration you can create a client object from scratch.

client := &Client{
    UserAgent:   getUserAgentString(),
    Endpoint:    utils.GetEnv(envvar.Endpoint, utils.DefaultApiUrl),
    AccountId:   os.Getenv(envvar.AccountId),
    APIKey:      os.Getenv(envvar.ApiKey),
    BearerToken: os.Getenv(envvar.BearerToken),
    HTTPClient: &retryablehttp.Client{
        RetryMax:     10,
        RetryWaitMin: 5 * time.Second,
        RetryWaitMax: 10 * time.Second,
        HTTPClient: &http.Client{
            Timeout: 10 * time.Second,
        },
        Backoff:    retryablehttp.DefaultBackoff,
        CheckRetry: retryablehttp.DefaultRetryPolicy,
    },
}

The github.com/hashicorp/go-retryablehttp is essentially a drop-in replacement for the http package and is used to handle retries when getting rate limited.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cd
nextgen
* Harness NextGen Software Delivery Platform API Reference * * This is the Open Api Spec 3 for the NextGen Manager.
* Harness NextGen Software Delivery Platform API Reference * * This is the Open Api Spec 3 for the NextGen Manager.
policymgmt
* Governance Policy Management API * * Read and manage OPA Governance policies, policy sets and evaluations * * API version: 1.2.0 * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
* Governance Policy Management API * * Read and manage OPA Governance policies, policy sets and evaluations * * API version: 1.2.0 * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
Based on https://github.com/hashicorp/terraform-plugin-sdk/blob/3819ed23c0/helper/logging/transport.go
Based on https://github.com/hashicorp/terraform-plugin-sdk/blob/3819ed23c0/helper/logging/transport.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL