1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14 type SSHSigningKey struct {
15 ID *int64 `json:"id,omitempty"`
16 Key *string `json:"key,omitempty"`
17 Title *string `json:"title,omitempty"`
18 CreatedAt *Timestamp `json:"created_at,omitempty"`
19 }
20
21 func (k SSHSigningKey) String() string {
22 return Stringify(k)
23 }
24
25
26
27
28
29
30 func (s *UsersService) ListSSHSigningKeys(ctx context.Context, user string, opts *ListOptions) ([]*SSHSigningKey, *Response, error) {
31 var u string
32 if user != "" {
33 u = fmt.Sprintf("users/%v/ssh_signing_keys", user)
34 } else {
35 u = "user/ssh_signing_keys"
36 }
37 u, err := addOptions(u, opts)
38 if err != nil {
39 return nil, nil, err
40 }
41
42 req, err := s.client.NewRequest("GET", u, nil)
43 if err != nil {
44 return nil, nil, err
45 }
46
47 var keys []*SSHSigningKey
48 resp, err := s.client.Do(ctx, req, &keys)
49 if err != nil {
50 return nil, resp, err
51 }
52
53 return keys, resp, nil
54 }
55
56
57
58
59 func (s *UsersService) GetSSHSigningKey(ctx context.Context, id int64) (*SSHSigningKey, *Response, error) {
60 u := fmt.Sprintf("user/ssh_signing_keys/%v", id)
61
62 req, err := s.client.NewRequest("GET", u, nil)
63 if err != nil {
64 return nil, nil, err
65 }
66
67 key := new(SSHSigningKey)
68 resp, err := s.client.Do(ctx, req, key)
69 if err != nil {
70 return nil, resp, err
71 }
72
73 return key, resp, nil
74 }
75
76
77
78
79 func (s *UsersService) CreateSSHSigningKey(ctx context.Context, key *Key) (*SSHSigningKey, *Response, error) {
80 u := "user/ssh_signing_keys"
81
82 req, err := s.client.NewRequest("POST", u, key)
83 if err != nil {
84 return nil, nil, err
85 }
86
87 k := new(SSHSigningKey)
88 resp, err := s.client.Do(ctx, req, k)
89 if err != nil {
90 return nil, resp, err
91 }
92
93 return k, resp, nil
94 }
95
96
97
98
99 func (s *UsersService) DeleteSSHSigningKey(ctx context.Context, id int64) (*Response, error) {
100 u := fmt.Sprintf("user/ssh_signing_keys/%v", id)
101
102 req, err := s.client.NewRequest("DELETE", u, nil)
103 if err != nil {
104 return nil, err
105 }
106
107 return s.client.Do(ctx, req, nil)
108 }
109
View as plain text