1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14
15
16
17
18 func (s *RepositoriesService) ListKeys(ctx context.Context, owner string, repo string, opts *ListOptions) ([]*Key, *Response, error) {
19 u := fmt.Sprintf("repos/%v/%v/keys", owner, repo)
20 u, err := addOptions(u, opts)
21 if err != nil {
22 return nil, nil, err
23 }
24
25 req, err := s.client.NewRequest("GET", u, nil)
26 if err != nil {
27 return nil, nil, err
28 }
29
30 var keys []*Key
31 resp, err := s.client.Do(ctx, req, &keys)
32 if err != nil {
33 return nil, resp, err
34 }
35
36 return keys, resp, nil
37 }
38
39
40
41
42 func (s *RepositoriesService) GetKey(ctx context.Context, owner string, repo string, id int64) (*Key, *Response, error) {
43 u := fmt.Sprintf("repos/%v/%v/keys/%v", owner, repo, id)
44
45 req, err := s.client.NewRequest("GET", u, nil)
46 if err != nil {
47 return nil, nil, err
48 }
49
50 key := new(Key)
51 resp, err := s.client.Do(ctx, req, key)
52 if err != nil {
53 return nil, resp, err
54 }
55
56 return key, resp, nil
57 }
58
59
60
61
62 func (s *RepositoriesService) CreateKey(ctx context.Context, owner string, repo string, key *Key) (*Key, *Response, error) {
63 u := fmt.Sprintf("repos/%v/%v/keys", owner, repo)
64
65 req, err := s.client.NewRequest("POST", u, key)
66 if err != nil {
67 return nil, nil, err
68 }
69
70 k := new(Key)
71 resp, err := s.client.Do(ctx, req, k)
72 if err != nil {
73 return nil, resp, err
74 }
75
76 return k, resp, nil
77 }
78
79
80
81
82 func (s *RepositoriesService) DeleteKey(ctx context.Context, owner string, repo string, id int64) (*Response, error) {
83 u := fmt.Sprintf("repos/%v/%v/keys/%v", owner, repo, id)
84
85 req, err := s.client.NewRequest("DELETE", u, nil)
86 if err != nil {
87 return nil, err
88 }
89
90 return s.client.Do(ctx, req, nil)
91 }
92
View as plain text