Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Aug 30, 2024. It is now read-only.
/coder-v1-cliPublic archive

Cleanup and export entclient#95

Merged
cmoog merged 2 commits intomasterfromcleanup-entclient
Aug 17, 2020
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletionsci/integration/users_test.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,7 +5,7 @@ import (
"testing"

"cdr.dev/coder-cli/ci/tcli"
"cdr.dev/coder-cli/internal/entclient"
"cdr.dev/coder-cli/coder-sdk"
"cdr.dev/slog/sloggers/slogtest/assert"
)

Expand All@@ -20,7 +20,7 @@ func TestUsers(t *testing.T) {

headlessLogin(ctx, t, c)

var userentclient.User
var usercoder.User
c.Run(ctx, `coder users ls --output json | jq -c '.[] | select( .username == "charlie")'`).Assert(t,
tcli.Success(),
tcli.StdoutJSONUnmarshal(&user),
Expand Down
7 changes: 3 additions & 4 deletionsinternal/entclient/activity.go → coder-sdk/activity.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
packageentclient
packagecoder

import (
"context"
"net/http"
)

// PushActivity pushes CLI activity to Coder
// PushActivity pushes CLI activity to Coder.
func (c Client) PushActivity(ctx context.Context, source string, envID string) error {
res, err := c.request(ctx,"POST", "/api/metrics/usage/push", map[string]string{
res, err := c.request(ctx,http.MethodPost, "/api/metrics/usage/push", map[string]string{
"source": source,
"environment_id": envID,
})
Expand All@@ -18,6 +18,5 @@ func (c Client) PushActivity(ctx context.Context, source string, envID string) e
if res.StatusCode != http.StatusOK {
return bodyError(res)
}

return nil
}
2 changes: 1 addition & 1 deletioninternal/entclient/client.go → coder-sdk/client.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
packageentclient
packagecoder

import (
"net/http"
Expand Down
8 changes: 4 additions & 4 deletionsinternal/entclient/devurl.go → coder-sdk/devurl.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
packageentclient
packagecoder

import (
"context"
Expand All@@ -24,7 +24,7 @@ type delDevURLRequest struct {
func (c Client) DelDevURL(ctx context.Context, envID, urlID string) error {
reqURL := fmt.Sprintf("/api/environments/%s/devurls/%s", envID, urlID)

res, err := c.request(ctx,"DELETE", reqURL, delDevURLRequest{
res, err := c.request(ctx,http.MethodDelete, reqURL, delDevURLRequest{
EnvID: envID,
DevURLID: urlID,
})
Expand All@@ -51,7 +51,7 @@ type createDevURLRequest struct {
func (c Client) InsertDevURL(ctx context.Context, envID string, port int, name, access string) error {
reqURL := fmt.Sprintf("/api/environments/%s/devurls", envID)

res, err := c.request(ctx,"POST", reqURL, createDevURLRequest{
res, err := c.request(ctx,http.MethodPost, reqURL, createDevURLRequest{
EnvID: envID,
Port: port,
Access: access,
Expand All@@ -75,7 +75,7 @@ type updateDevURLRequest createDevURLRequest
func (c Client) UpdateDevURL(ctx context.Context, envID, urlID string, port int, name, access string) error {
reqURL := fmt.Sprintf("/api/environments/%s/devurls/%s", envID, urlID)

res, err := c.request(ctx,"PUT", reqURL, updateDevURLRequest{
res, err := c.request(ctx,http.MethodPut, reqURL, updateDevURLRequest{
EnvID: envID,
Port: port,
Access: access,
Expand Down
11 changes: 6 additions & 5 deletionsinternal/entclient/env.go → coder-sdk/env.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
packageentclient
packagecoder

import (
"context"
"net/http"
"time"

"cdr.dev/coder-cli/internal/x/xjson"
Expand DownExpand Up@@ -33,12 +34,12 @@ type Environment struct {
AutoOffThreshold xjson.Duration `json:"auto_off_threshold" tab:"-"`
}

//Envs gets the list of environments owned by theauthenticated user
func (c Client)Envs(ctx context.Context,user *User, org Org) ([]Environment, error) {
//EnvironmentsByOrganization gets the list of environments owned by thegiven user.
func (c Client)EnvironmentsByOrganization(ctx context.Context,userID, orgID string) ([]Environment, error) {
var envs []Environment
err := c.requestBody(
ctx,
"GET", "/api/orgs/"+org.ID+"/members/"+user.ID+"/environments",
http.MethodGet, "/api/orgs/"+orgID+"/members/"+userID+"/environments",
nil,
&envs,
)
Expand All@@ -47,7 +48,7 @@ func (c Client) Envs(ctx context.Context, user *User, org Org) ([]Environment, e

// DialWsep dials an environments command execution interface
// See github.com/cdr/wsep for details
func (c Client) DialWsep(ctx context.Context, env Environment) (*websocket.Conn, error) {
func (c Client) DialWsep(ctx context.Context, env*Environment) (*websocket.Conn, error) {
u := c.copyURL()
if c.BaseURL.Scheme == "https" {
u.Scheme = "wss"
Expand Down
2 changes: 1 addition & 1 deletioninternal/entclient/error.go → coder-sdk/error.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
packageentclient
packagecoder

import (
"encoding/json"
Expand Down
9 changes: 6 additions & 3 deletionsinternal/entclient/org.go → coder-sdk/org.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
packageentclient
packagecoder

import "context"
import (
"context"
"net/http"
)

// Org describes an Organization in Coder
type Org struct {
Expand All@@ -12,6 +15,6 @@ type Org struct {
// Orgs gets all Organizations
func (c Client) Orgs(ctx context.Context) ([]Org, error) {
var os []Org
err := c.requestBody(ctx,"GET", "/api/orgs", nil, &os)
err := c.requestBody(ctx,http.MethodGet, "/api/orgs", nil, &os)
return os, err
}
2 changes: 1 addition & 1 deletioninternal/entclient/request.go → coder-sdk/request.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
packageentclient
packagecoder

import (
"bytes"
Expand Down
79 changes: 79 additions & 0 deletionscoder-sdk/secrets.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
package coder

import (
"context"
"net/http"
"time"
)

// Secret describes a Coder secret
type Secret struct {
ID string `json:"id" tab:"-"`
Name string `json:"name"`
Value string `json:"value,omitempty"`
Description string `json:"description"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at" tab:"-"`
}

// Secrets gets all secrets for the given user
func (c *Client) Secrets(ctx context.Context, userID string) ([]Secret, error) {
var secrets []Secret
err := c.requestBody(ctx, http.MethodGet, "/api/users/"+userID+"/secrets", nil, &secrets)
return secrets, err
}

// SecretWithValueByName gets the Coder secret with its value by its name.
func (c *Client) SecretWithValueByName(ctx context.Context, name, userID string) (*Secret, error) {
s, err := c.SecretByName(ctx, name, userID)
if err != nil {
return nil, err
}
var secret Secret
err = c.requestBody(ctx, http.MethodGet, "/api/users/"+userID+"/secrets/"+s.ID, nil, &secret)
return &secret, err
}

// SecretWithValueByID gets the Coder secret with its value by the secret_id.
func (c *Client) SecretWithValueByID(ctx context.Context, id, userID string) (*Secret, error) {
var secret Secret
err := c.requestBody(ctx, http.MethodGet, "/api/users/"+userID+"/secrets/"+id, nil, &secret)
return &secret, err
}

// SecretByName gets a secret object by name
func (c *Client) SecretByName(ctx context.Context, name, userID string) (*Secret, error) {
secrets, err := c.Secrets(ctx, userID)
if err != nil {
return nil, err
}
for _, s := range secrets {
if s.Name == name {
return &s, nil
}
}
return nil, ErrNotFound
}

// InsertSecretReq describes the request body for creating a new secret
type InsertSecretReq struct {
Name string `json:"name"`
Value string `json:"value"`
Description string `json:"description"`
}

// InsertSecret adds a new secret for the authed user
func (c *Client) InsertSecret(ctx context.Context, user *User, req InsertSecretReq) error {
var resp interface{}
return c.requestBody(ctx, http.MethodPost, "/api/users/"+user.ID+"/secrets", req, &resp)
}

// DeleteSecretByName deletes the authenticated users secret with the given name
func (c *Client) DeleteSecretByName(ctx context.Context, name, userID string) error {
secret, err := c.SecretByName(ctx, name, userID)
if err != nil {
return err
}
_, err = c.request(ctx, http.MethodDelete, "/api/users/"+userID+"/secrets/"+secret.ID, nil)
return err
}
75 changes: 75 additions & 0 deletionscoder-sdk/users.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
package coder

import (
"context"
"net/http"
"time"
)

// User describes a Coder user account.
type User struct {
ID string `json:"id" tab:"-"`
Email string `json:"email"`
Username string `json:"username"`
Name string `json:"name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at" tab:"-"`
}

// Me gets the details of the authenticated user.
func (c Client) Me(ctx context.Context) (*User, error) {
return c.UserByID(ctx, Me)
}

// UserByID get the details of a user by their id.
func (c Client) UserByID(ctx context.Context, id string) (*User, error) {
var u User
err := c.requestBody(ctx, http.MethodGet, "/api/users/"+id, nil, &u)
if err != nil {
return nil, err
}
return &u, nil
}

// SSHKey describes an SSH keypair
type SSHKey struct {
PublicKey string `json:"public_key"`
PrivateKey string `json:"private_key"`
}

// SSHKey gets the current SSH kepair of the authenticated user.
func (c Client) SSHKey(ctx context.Context) (*SSHKey, error) {
var key SSHKey
err := c.requestBody(ctx, http.MethodGet, "/api/users/me/sshkey", nil, &key)
if err != nil {
return nil, err
}
return &key, nil
}

// Users gets the list of user accounts.
func (c Client) Users(ctx context.Context) ([]User, error) {
var u []User
err := c.requestBody(ctx, http.MethodGet, "/api/users", nil, &u)
if err != nil {
return nil, err
}
return u, nil
}

// UserByEmail gets a user by email.
func (c Client) UserByEmail(ctx context.Context, email string) (*User, error) {
if email == Me {
return c.Me(ctx)
}
users, err := c.Users(ctx)
if err != nil {
return nil, err
}
for _, u := range users {
if u.Email == email {
return &u, nil
}
}
return nil, ErrNotFound
}
6 changes: 3 additions & 3 deletionsinternal/activity/pusher.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,7 @@ import (
"context"
"time"

"cdr.dev/coder-cli/internal/entclient"
"cdr.dev/coder-cli/coder-sdk"
"golang.org/x/time/rate"

"go.coder.com/flog"
Expand All@@ -18,12 +18,12 @@ type Pusher struct {
envID string
source string

client *entclient.Client
client *coder.Client
rate *rate.Limiter
}

// NewPusher instantiates a new instance of Pusher
func NewPusher(c *entclient.Client, envID, source string) *Pusher {
func NewPusher(c *coder.Client, envID, source string) *Pusher {
return &Pusher{
envID: envID,
source: source,
Expand Down
8 changes: 4 additions & 4 deletionsinternal/cmd/auth.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,23 +3,23 @@ package cmd
import (
"net/url"

"cdr.dev/coder-cli/coder-sdk"
"cdr.dev/coder-cli/internal/config"
"cdr.dev/coder-cli/internal/entclient"
"golang.org/x/xerrors"

"go.coder.com/flog"
)

// requireAuth exits the process with a nonzero exit code if the user is not authenticated to make requests
func requireAuth() *entclient.Client {
func requireAuth() *coder.Client {
client, err := newClient()
if err != nil {
flog.Fatal("%v", err)
}
return client
}

func newClient() (*entclient.Client, error) {
func newClient() (*coder.Client, error) {
sessionToken, err := config.Session.Read()
if err != nil {
return nil, xerrors.Errorf("read session: %v (did you run coder login?)", err)
Expand All@@ -35,7 +35,7 @@ func newClient() (*entclient.Client, error) {
return nil, xerrors.Errorf("url misformatted: %v (try runing coder login)", err)
}

client := &entclient.Client{
client := &coder.Client{
BaseURL: u,
Token: sessionToken,
}
Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp