An API client interface for Heroku Platform API for the Go (golang) programming language.
Please note: major version changes.
$ go mod init myproj
$ go mod get -u github.com/heroku/heroku-go/v6
$ cd myproj
package main
import (
"context"
"flag"
"fmt"
"log"
heroku "github.com/heroku/heroku-go/v6"
)
var (
apiKey = flag.String("api-key", "", "Heroku API key")
)
func main() {
log.SetFlags(0)
flag.Parse()
heroku.DefaultTransport.BearerToken = *apiKey
h := heroku.NewService(heroku.DefaultClient)
addons, err := h.AddOnList(context.TODO(), &heroku.ListRange{Field: "name"})
if err != nil {
log.Fatal(err)
}
for _, addon := range addons {
fmt.Println(addon.Name)
}
}The Formation type's Size string property moved to DynoSize struct property, which can identify a dyno size by ID or Name.
In v5:
import (
heroku "github.com/heroku/heroku-go/v5"
)
opts := heroku.FormationUpdateOpts{}
newSize := "standard-1x"
opts.Size = &newSize…becomes in v6…
import (
heroku "github.com/heroku/heroku-go/v6"
)
opts := heroku.FormationUpdateOpts{}
newSize := "standard-1x"
opts.DynoSize = &struct {
ID *string `json:"id,omitempty" url:"id,omitempty,key"` // unique identifier of the dyno size
Name *string `json:"name,omitempty" url:"name,omitempty,key"` // name of the dyno size
}{
Name: &newSize,
}This client is auto-generated from the JSON Schema published by the Heroku Platform API.
To fetch the current schema.json and generate an updated client:
make generateTo use the existing schema.json to generate an updated client:
UPDATE_SCHEMA=0 make generateSee script/generate for more details.