Changeset 192fa27a9dbc…
Parent b56064d5e3cc…
by Benjamin Pollack <benjamin@fogcreek.com>
Changes to 3 files · Browse files at 192fa27a9dbc Showing diff from parent b56064d5e3cc Diff from another changeset...
|
|
@@ -18,12 +18,12 @@ )
// Holds the bare minimum amount of information required to talk to a Kiln instance
-type KilnClient struct {
- credentials *kilnCredential
+type Client struct {
+ credentials *credential
}
// Stores kiln credentials in the Kiln configuration file
-type kilnCredential struct {
+type credential struct {
// Base URL of Kiln instance
KilnUrl string `json:"kilnUrl"`
// User for whom this token applies
@@ -34,17 +34,17 @@
type apiParams map[string]string
-type KilnCredentials map[string]map[string]string
-
-func NewKilnClient(kilnUrl *url.URL) *KilnClient {
+type Credentials map[string]map[string]string
+
+func NewClient(kilnUrl *url.URL) *Client {
user := ""
if kilnUrl.User != nil {
user = kilnUrl.User.Username()
}
- return &KilnClient{&kilnCredential{KilnUrl: kilnUrl.String(), User: user}}
-}
-
-func (k *KilnClient) LoadCredentials() bool {
+ return &Client{&credential{KilnUrl: kilnUrl.String(), User: user}}
+}
+
+func (k *Client) LoadCredentials() bool {
if creds, err := loadCredentials(); err == nil {
if token, ok := creds[k.credentials.User][k.credentials.KilnUrl]; ok {
k.credentials.Token = token
@@ -54,7 +54,7 @@ return false
}
-func (k *KilnClient) StoreCredentials() (err error) {
+func (k *Client) StoreCredentials() (err error) {
creds, _ := loadCredentials()
if _, ok := creds[k.credentials.User]; !ok {
creds[k.credentials.User] = make(map[string]string)
@@ -64,7 +64,7 @@ return
}
-func (k *KilnClient) DeleteCredentials() (err error) {
+func (k *Client) DeleteCredentials() (err error) {
creds, err := loadCredentials()
if err != nil {
return
@@ -77,14 +77,14 @@}
// Logs a user into Kiln, returning true and storing their token in the
-// KilnClient if successful, and returning an error otherwise
-func (k *KilnClient) Logon() error {
+// Client if successful, and returning an error otherwise
+func (k *Client) Logon() error {
login, password := requestUserCredentials()
resp, err := k.apiGet("Auth/Login", apiParams{"sUser": login, "sPassword": password})
if err != nil {
return fmt.Errorf("unable to contact Kiln: %v\n", err)
}
- var errors map[string][]KilnError
+ var errors map[string][]ApiError
if err = json.Unmarshal(resp, &errors); err == nil {
if err, _ := errors["errors"]; len(err) > 0 {
return fmt.Errorf("failed: %v\n", err[0].Description)
@@ -98,7 +98,7 @@
// Makes sure the client has credentials, taking them through the logon
// sequence if not
-func (k *KilnClient) EnsureCredentials() error {
+func (k *Client) EnsureCredentials() error {
if k.credentials.Token == "" && !k.LoadCredentials() {
if err := k.Logon(); err != nil {
return err
@@ -109,7 +109,7 @@}
// Resolve a Git SHA
-func (k *KilnClient) ResolveSHA(commit string) (string, error) {
+func (k *Client) ResolveSHA(commit string) (string, error) {
if out, err := exec.Command("git", "rev-parse", commit).CombinedOutput(); err == nil {
commit := strings.TrimSpace(string(out))
if strings.HasPrefix(commit, "fatal:") {
@@ -122,22 +122,22 @@}
// Browses the history tab of the repository
-func (k *KilnClient) BrowseHistory(repo string) error {
+func (k *Client) BrowseHistory(repo string) error {
return browse(k.repoRoute(repo, ""))
}
// Browse the settings tab for the repository
-func (k *KilnClient) BrowseSettings(repo string) error {
+func (k *Client) BrowseSettings(repo string) error {
return browse(k.repoRoute(repo, "Settings"))
}
// Browse the related tab for repository
-func (k *KilnClient) BrowseRelated(repo string) error {
+func (k *Client) BrowseRelated(repo string) error {
return browse(k.repoRoute(repo, "Related"))
}
// Browse a commit, expanding out to the full SHA beforehand
-func (k *KilnClient) BrowseCommit(repo string, commit string) (err error) {
+func (k *Client) BrowseCommit(repo string, commit string) (err error) {
if commit, err = k.ResolveSHA(commit); err == nil {
err = browse(k.repoRoute(repo, "History/"+commit))
}
@@ -145,7 +145,7 @@}
// Browse a file in Kiln
-func (k *KilnClient) BrowseFile(repo string, file string) error {
+func (k *Client) BrowseFile(repo string, file string) error {
path, err := repoRelativePath(file)
if err != nil {
return err
@@ -154,7 +154,7 @@}
// Browse an annotated file in Kiln
-func (k *KilnClient) BrowseAnnotatedFile(repo string, file string) error {
+func (k *Client) BrowseAnnotatedFile(repo string, file string) error {
path, err := repoRelativePath(file)
if err != nil {
return err
@@ -163,7 +163,7 @@}
// Browse a file in Kiln
-func (k *KilnClient) BrowseFileHistory(repo string, file string) error {
+func (k *Client) BrowseFileHistory(repo string, file string) error {
path, err := repoRelativePath(file)
if err != nil {
return err
@@ -213,31 +213,31 @@}
// Returns the full URL for relative Kiln URL
-func (k *KilnClient) kilnRoute(route string) string {
+func (k *Client) kilnRoute(route string) string {
return strings.TrimRight(k.credentials.KilnUrl, "/") + "/" + strings.TrimLeft(route, "/")
}
// Returns the full URL for an API call in Kiln
-func (k *KilnClient) apiRoute(route string) string {
+func (k *Client) apiRoute(route string) string {
return k.kilnRoute("Api/1.0/" + strings.TrimLeft(route, "/"))
}
// Returns the full URL for a given API call or Kiln route
-func (k *KilnClient) repoRoute(repo string, action string) string {
+func (k *Client) repoRoute(repo string, action string) string {
return k.kilnRoute(fmt.Sprintf("Code/%v/%v", repo, action))
}
// Returns the body from an API call via HTTP GET
-func (k *KilnClient) apiGet(route string, params apiParams) ([]byte, error) {
+func (k *Client) apiGet(route string, params apiParams) ([]byte, error) {
return k.apiRequest(route, params, "GET")
}
// Returns the body from an API call via HTTP POST
-func (k *KilnClient) apiPost(route string, params apiParams) ([]byte, error) {
+func (k *Client) apiPost(route string, params apiParams) ([]byte, error) {
return k.apiRequest(route, params, "POST")
}
-func (k *KilnClient) apiRequest(route string, params apiParams, method string) ([]byte, error) {
+func (k *Client) apiRequest(route string, params apiParams, method string) ([]byte, error) {
v := url.Values{}
for key, value := range params {
v.Set(key, value)
@@ -288,8 +288,8 @@}
// Load any existing credentials from the user's credential store
-func loadCredentials() (credentials KilnCredentials, err error) {
- credentials = make(KilnCredentials)
+func loadCredentials() (credentials Credentials, err error) {
+ credentials = make(Credentials)
path := filepath.Join(configDirectory(), "kiln_client.json")
fd, err := os.Open(path)
if err != nil {
@@ -300,7 +300,7 @@ if err != nil {
return
}
- var creds []kilnCredential
+ var creds []credential
if err = json.Unmarshal(data, &creds); err != nil {
return
}
@@ -314,7 +314,7 @@}
// Store all credentials in the credential store, overwriting any already present
-func (credentials KilnCredentials) storeCredentials() (err error) {
+func (credentials Credentials) storeCredentials() (err error) {
if err = os.MkdirAll(configDirectory(), 0700); err != nil {
return
}
@@ -324,10 +324,10 @@ return
}
defer fd.Close()
- creds := make([]*kilnCredential, 0, 10)
+ creds := make([]*credential, 0, 10)
for user, urls := range credentials {
for url, token := range urls {
- creds = append(creds, &kilnCredential{KilnUrl: url, User: user, Token: token})
+ creds = append(creds, &credential{KilnUrl: url, User: user, Token: token})
}
}
data, _ := json.Marshal(creds)
|
@@ -112,7 +112,7 @@ }
}
-func requireAuth(k *kiln.KilnClient) {
+func requireAuth(k *kiln.Client) {
if err := k.EnsureCredentials(); err != nil {
fmt.Fprintf(os.Stderr, "unable to logon: %v\n", err)
os.Exit(1)
@@ -131,8 +131,8 @@ return
}
-func findTargets(related []kiln.KilnRepo, project, group, repo string) []kiln.KilnRepo {
- targets := make([]kiln.KilnRepo, 0)
+func findTargets(related []kiln.Repo, project, group, repo string) []kiln.Repo {
+ targets := make([]kiln.Repo, 0)
for _, r := range related {
if r.Slug == repo &&
(len(group) == 0 || r.GroupSlug == group) &&
@@ -143,7 +143,7 @@ return targets
}
-func dispatch(k *kiln.KilnClient, repoPath string) {
+func dispatch(k *kiln.Client, repoPath string) {
var command string
if len(os.Args) == 1 {
command = "history"
@@ -286,6 +286,6 @@ fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
}
- k := kiln.NewKilnClient(kilnUrl)
+ k := kiln.NewClient(kilnUrl)
dispatch(k, repoPath)
}
|
Loading...