Module: Octokit::Client::Projects

Included in:
Octokit::Client
Defined in:
lib/octokit/client/projects.rb

Overview

Methods for Projects API

Instance Method Summary collapse

Instance Method Details

#column_cards(id, options = {}) ⇒ Array<Sawyer::Resource>

List columns cards

Requires authenticated client

Examples:

@client.column_cards(30294)

Parameters:

  • id (Integer)

    Project column id

Returns:

  • (Array<Sawyer::Resource>)

    Cards in the column

See Also:



204
205
206
# File 'lib/octokit/client/projects.rb', line 204

def column_cards(id, options = {})
  paginate "projects/columns/#{id}/cards", options
end

#create_org_project(org, name, options = {}) ⇒ Sawyer::Resource Also known as: create_organization_project

Create organization project

Requires authenticated client

Examples:

Create with only a name

@client.create_org_project("octocat", "make more octocats")

Create a project with name and body

@client.create_org_project("octokit", "octocan", body: 'Improve clients')

Parameters:

  • org (String)

    A GitHub organization

  • name (String)

    Project name

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :body (String)

    Project body

Returns:

  • (Sawyer::Resource)

    Organization project

See Also:



68
69
70
71
# File 'lib/octokit/client/projects.rb', line 68

def create_org_project(org, name, options = {})
  options[:name] = name
  post "orgs/#{org}/projects", options
end

#create_project(repo, name, options = {}) ⇒ Sawyer::Resource

Create a project

Requires authenticated client

Examples:

Create project with only a name

@client.create_project('octokit/octokit.rb', 'implement new APIs')

Create project with name and body

@client.create_project('octokit/octokit.rb', 'bugs be gone', body: 'Fix all the bugs @joeyw creates')

Parameters:

  • repo (Integer, String, Repository, Hash)

    A GitHub repository

  • name (String)

    Project name

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :body (String)

    Body of the project

Returns:

  • (Sawyer::Resource)

    Fresh new project

See Also:



36
37
38
39
# File 'lib/octokit/client/projects.rb', line 36

def create_project(repo, name, options = {})
  options[:name] = name
  post "#{Repository.path repo}/projects", options
end

#create_project_card(id, options = {}) ⇒ Sawyer::Resource

Note:

If :note is supplied, :content_id and :content_type must be excluded. Similarly, if :content_id is supplied, :content_type must be set and :note must not be included.

Create project card

Requires authenticated client

Examples:

Create a project card with a note

@client.create_project_card(123495, note: 'New note card')

Create a project card for an repository issue

@client.create_project_card(123495, content_id: 1, content_type: 'Issue')

Parameters:

  • id (Integer)

    Project column id

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :note (String)

    Card contents for a note type

  • :content_id (Integer)

    Issue ID for the card contents

  • :content_type (String)

    Type of content to associate with the card. Issue is presently the only avaiable value

Returns:

  • (Sawyer::Resource)

    Newly created card

See Also:



226
227
228
# File 'lib/octokit/client/projects.rb', line 226

def create_project_card(id, options = {})
  post "projects/columns/#{id}/cards", options
end

#create_project_column(id, name, options = {}) ⇒ Sawyer::Resource

Create a project column

Requires authenticated client

Examples:

@client.create_project_column(123942, "To Dones")

Parameters:

  • id (Integer)

    Project column id

  • name (String)

    New column name

Returns:

  • (Sawyer::Resource)

    Newly created column

See Also:



134
135
136
137
# File 'lib/octokit/client/projects.rb', line 134

def create_project_column(id, name, options = {})
  options[:name] = name
  post "projects/#{id}/columns", options
end

#delete_project(id, options = {}) ⇒ Boolean

Delete a project

Requires authenticated client

Examples:

@client.delete_project(123942)

Parameters:

  • id (Integer)

    Project id

Returns:

  • (Boolean)

    Result of deletion

See Also:



109
110
111
# File 'lib/octokit/client/projects.rb', line 109

def delete_project(id, options = {})
  boolean_from_response :delete, "projects/#{id}", options
end

#delete_project_card(id, options = {}) ⇒ Boolean

Delete a project card

Requires authenticated client

Examples:

@client.delete_project_card(123495)

Parameters:

  • id (Integer)

    Project card id

Returns:

  • (Boolean)

    True of deleted, false otherwise

See Also:



289
290
291
# File 'lib/octokit/client/projects.rb', line 289

def delete_project_card(id, options = {})
  boolean_from_response :delete, "projects/columns/cards/#{id}", options
end

#delete_project_column(id, options = {}) ⇒ Boolean

Delete a project column

Requires authenticated client

Examples:

@client.delete_project_column(30294)

Parameters:

  • id (Integer)

    Project column id

Returns:

  • (Boolean)

    Result of deletion request, true when deleted

See Also:



174
175
176
# File 'lib/octokit/client/projects.rb', line 174

def delete_project_column(id, options = {})
  boolean_from_response :delete, "projects/columns/#{id}", options
end

#move_project_card(id, position, options = {}) ⇒ Sawyer::Resource

Move a project card

Requires authenticated client

Examples:

Move a card to the bottom of the same column

@client.move_project_card(123495, 'bottom')

Move a card to the top of another column

@client.move_project_card(123495, 'top', column_id: 59402)

Parameters:

  • id (Integer)

    Project card id

  • position (String)

    Can be one of top, bottom, or after:, where is the id value of a card in the same column, or in the new column specified by column_id.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :column_id (Integer)

    The column id to move the card to, must be column in same project

Returns:

  • (Sawyer::Resource)

    Empty sawyer resource

See Also:



275
276
277
278
# File 'lib/octokit/client/projects.rb', line 275

def move_project_card(id, position, options = {})
  options[:position] = position
  post "projects/columns/cards/#{id}/moves", options
end

#move_project_column(id, position, options = {}) ⇒ Sawyer::Resource

Move a project column

Requires authenticated client

Examples:

@client.move_project_column(30294, "last")

Parameters:

  • id (Integer)

    Project column id

  • position (String)

    New position for the column. Can be one of first, last, or after:, where is the id value of a column in the same project.

Returns:

  • (Sawyer::Resource)

    Result

See Also:



190
191
192
193
# File 'lib/octokit/client/projects.rb', line 190

def move_project_column(id, position, options = {})
  options[:position] = position
  post "projects/columns/#{id}/moves", options
end

#org_projects(org, options = {}) ⇒ Array<Sawyer::Resource> Also known as: organization_projects

List organization projects

Requires authenticated client

Examples:

@client.org_projects("octokit")

Parameters:

  • org (String)

    A GitHub organization

Returns:

  • (Array<Sawyer::Resource>)

    Organization projects

See Also:



50
51
52
# File 'lib/octokit/client/projects.rb', line 50

def org_projects(org, options = {})
  paginate "orgs/#{org}/projects", options
end

#project(id, options = {}) ⇒ Sawyer::Resource

Get a project by id

Examples:

Octokit.project(123942)

Parameters:

  • id (Integer)

    Project id

Returns:

  • (Sawyer::Resource)

    Project

See Also:



81
82
83
# File 'lib/octokit/client/projects.rb', line 81

def project(id, options = {})
  get "projects/#{id}", options
end

#project_card(id, options = {}) ⇒ Sawyer::Resource

Get a project card

Requires authenticated client

Examples:

@client.project_card(123495)

Parameters:

  • id (Integer)

    Project card id

Returns:

  • (Sawyer::Resource)

    Project card

See Also:



239
240
241
# File 'lib/octokit/client/projects.rb', line 239

def project_card(id, options = {})
  get "projects/columns/cards/#{id}", options
end

#project_column(id, options = {}) ⇒ Sawyer::Resource

Get a project column by ID

Examples:

Octokit.project_column(30294)

Parameters:

  • id (Integer)

    Project column id

Returns:

  • (Sawyer::Resource)

    Project column

See Also:



146
147
148
# File 'lib/octokit/client/projects.rb', line 146

def project_column(id, options = {})
  get "projects/columns/#{id}", options
end

#project_columns(id, options = {}) ⇒ Array<Sawyer::Resource>

List project columns

Examples:

@client.project_columns(123942)

Parameters:

  • id (Integer)

    Project id

Returns:

  • (Array<Sawyer::Resource>)

    List of project columns

See Also:



120
121
122
# File 'lib/octokit/client/projects.rb', line 120

def project_columns(id, options = {})
  paginate "projects/#{id}/columns", options
end

#projects(repo, options = {}) ⇒ Array<Sawyer::Resource>

List projects for a repository

Requires authenticated client

Examples:

@client.projects('octokit/octokit.rb')

Parameters:

  • repo (Integer, String, Repository, Hash)

    A GitHub repository

Returns:

  • (Array<Sawyer::Resource>)

    Repository projects

See Also:



18
19
20
# File 'lib/octokit/client/projects.rb', line 18

def projects(repo, options = {})
  paginate "#{Repository.path repo}/projects", options
end

#update_project(id, options = {}) ⇒ Sawyer::Resource

Update a project

Requires authenticated client

Examples:

Update project name

@client.update_project(123942, name: 'New name')

Parameters:

  • id (Integer)

    Project id

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :name (String)

    Project name

  • :body (String)

    Project body

Returns:

  • (Sawyer::Resource)

    Project

See Also:



96
97
98
# File 'lib/octokit/client/projects.rb', line 96

def update_project(id, options = {})
  patch "projects/#{id}", options
end

#update_project_card(id, options = {}) ⇒ Sawyer::Resource

Update a project card

Requires authenticated client

Examples:

@client.update_project_card(12345, note: 'new note')

Parameters:

  • id (Integer)

    Project card id

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :note (String)

    The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a content_id and content_type.

Returns:

  • (Sawyer::Resource)

    Updated project card

See Also:



255
256
257
# File 'lib/octokit/client/projects.rb', line 255

def update_project_card(id, options = {})
  patch "projects/columns/cards/#{id}", options
end

#update_project_column(id, name, options = {}) ⇒ Sawyer::Resource

Update a project column

Requires authenticated client

Examples:

@client.update_project_column(30294, "new column name")

Parameters:

  • id (Integer)

    Project column id

  • name (String)

    New column name

Returns:

  • (Sawyer::Resource)

    Updated column

See Also:



160
161
162
163
# File 'lib/octokit/client/projects.rb', line 160

def update_project_column(id, name, options = {})
  options[:name] = name
  patch "projects/columns/#{id}", options
end