func (s *ProjectsService) UpdateProject(ctx context.Context, id int64, opts *ProjectOptions) (*Project, *Response, error) {
	u := fmt.Sprintf("projects/%v", id)
	req, err := s.client.NewRequest("PATCH", u, opts)
	if err != nil {
		return nil, nil, err
	}
	req.Header.Set("Accept", mediaTypeProjectsPreview)
	project := &Project{}
	resp, err := s.client.Do(ctx, req, project)
	if err != nil {
		return nil, resp, err
	}
	return project, resp, nil
}
UpdateProject updates a repository project.

GitHub API docs: https://developer.github.com/v3/projects/#update-a-project
package github
import (
	"context"
	"fmt"
)
type ProjectsService service
type Project struct {
	ID         *int64     `json:"id,omitempty"`
	URL        *string    `json:"url,omitempty"`
	HTMLURL    *string    `json:"html_url,omitempty"`
	ColumnsURL *string    `json:"columns_url,omitempty"`
	OwnerURL   *string    `json:"owner_url,omitempty"`
	Name       *string    `json:"name,omitempty"`
	Body       *string    `json:"body,omitempty"`
	Number     *int       `json:"number,omitempty"`
	State      *string    `json:"state,omitempty"`
	CreatedAt  *Timestamp `json:"created_at,omitempty"`
	UpdatedAt  *Timestamp `json:"updated_at,omitempty"`
	NodeID     *string    `json:"node_id,omitempty"`
	Creator *User `json:"creator,omitempty"`
}
func (p Project) String() string {
	return Stringify(p)
}
func (s *ProjectsService) GetProject(ctx context.Context, id int64) (*Project, *Response, error) {
	u := fmt.Sprintf("projects/%v", id)
	req, err := s.client.NewRequest("GET", u, nil)
	if err != nil {
		return nil, nil, err
	}
	req.Header.Set("Accept", mediaTypeProjectsPreview)
	project := &Project{}
	resp, err := s.client.Do(ctx, req, project)
	if err != nil {
		return nil, resp, err
	}
	return project, resp, nil
}
type ProjectOptions struct {
	Name *string `json:"name,omitempty"`
	Body *string `json:"body,omitempty"`
	State *string `json:"state,omitempty"`
	OrganizationPermission *string `json:"organization_permission,omitempty"`
	Public *bool `json:"public,omitempty"`
}