...
1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14
15
16 func (s *UsersService) ListProjects(ctx context.Context, user string, opts *ProjectListOptions) ([]*Project, *Response, error) {
17 u := fmt.Sprintf("users/%v/projects", user)
18 u, err := addOptions(u, opts)
19 if err != nil {
20 return nil, nil, err
21 }
22
23 req, err := s.client.NewRequest("GET", u, nil)
24 if err != nil {
25 return nil, nil, err
26 }
27
28
29 req.Header.Set("Accept", mediaTypeProjectsPreview)
30
31 var projects []*Project
32 resp, err := s.client.Do(ctx, req, &projects)
33 if err != nil {
34 return nil, resp, err
35 }
36
37 return projects, resp, nil
38 }
39
40
41 type CreateUserProjectOptions struct {
42
43 Name string `json:"name"`
44
45 Body *string `json:"body,omitempty"`
46 }
47
48
49
50
51 func (s *UsersService) CreateProject(ctx context.Context, opts *CreateUserProjectOptions) (*Project, *Response, error) {
52 u := "user/projects"
53 req, err := s.client.NewRequest("POST", u, opts)
54 if err != nil {
55 return nil, nil, err
56 }
57
58
59 req.Header.Set("Accept", mediaTypeProjectsPreview)
60
61 project := &Project{}
62 resp, err := s.client.Do(ctx, req, project)
63 if err != nil {
64 return nil, resp, err
65 }
66
67 return project, resp, nil
68 }
69
View as plain text