Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

60 stars

Watchers

17 watching

Forks

Latest commit

 

History

167 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tailscale.com/client/tailscale/v2

Go Reference Github Actions

The official client implementation for the Tailscale HTTP API. For more details, please see API documentation.

Example (Using API Key)

package main

import (
	"context"
	"os"

	"tailscale.com/client/tailscale/v2"
)

func main() {
	client := &tailscale.Client{
		Tailnet: os.Getenv("TAILSCALE_TAILNET"),
		APIKey:  os.Getenv("TAILSCALE_API_KEY"),
	}

	devices, err := client.Devices().List(context.Background())
}

Example (Using OAuth)

package main

import (
	"context"
	"os"

	"tailscale.com/client/tailscale/v2"
)

func main() {
	client := &tailscale.Client{
		Tailnet: os.Getenv("TAILSCALE_TAILNET"),
		Auth: &tailscale.OAuth{
			ClientID:     os.Getenv("TAILSCALE_OAUTH_CLIENT_ID"),
			ClientSecret: os.Getenv("TAILSCALE_OAUTH_CLIENT_SECRET"),
			Scopes:       []string{"all:write"},
		},
	}
	
	devices, err := client.Devices().List(context.Background())
}

Example (Using Identity Federation)

package main

import (
	"context"
	"os"

	"tailscale.com/client/tailscale/v2"
)

func main() {
	client := &tailscale.Client{
		Tailnet: os.Getenv("TAILSCALE_TAILNET"),
		Auth: &tailscale.IdentityFederation{
			ClientID: os.Getenv("TAILSCALE_OAUTH_CLIENT_ID"),
			IDTokenFunc: func() (string, error) {
				return os.Getenv("IDENTITY_TOKEN"), nil
            },
		},
	}

	devices, err := client.Devices().List(context.Background())
}

Example (Using Your Own Authentication Mechanism)

package main

import (
	"context"
	"os"

	"tailscale.com/client/tailscale/v2"
)

type MyAuth struct {...}

func (a *MyAuth) HTTPClient(orig *http.Client, baseURL string) *http.Client {
	// build an HTTP client that adds authentication to outgoing requests
	// see tailscale.OAuth for an example.
}

func main() {
	client := &tailscale.Client{
		Tailnet: os.Getenv("TAILSCALE_TAILNET"),
		Auth: &MyAuth{...},
	}
	
	devices, err := client.Devices().List(context.Background())
}

Releasing

Pushing a tag of the format vX.Y.Z will trigger the release workflow which uses goreleaser to build and sign artifacts and generate a GitHub release.

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

60 stars

Watchers

17 watching

Forks

Releases

Packages

Used by

Contributors

Languages