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:



217
218
219
220
# File 'lib/octokit/client/projects.rb', line 217

def column_cards(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  paginate "projects/columns/#{id}/cards", opts
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:



71
72
73
74
75
# File 'lib/octokit/client/projects.rb', line 71

def create_org_project(org, name, options = {})
  opts = ensure_api_media_type(:projects, options)
  opts[:name] = name
  post "orgs/#{org}/projects", opts
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:



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

def create_project(repo, name, options = {})
  opts = ensure_api_media_type(:projects, options)
  opts[:name] = name
  post "#{Repository.path repo}/projects", opts
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:



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

def create_project_card(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  post "projects/columns/#{id}/cards", opts
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:



142
143
144
145
146
# File 'lib/octokit/client/projects.rb', line 142

def create_project_column(id, name, options = {})
  opts = ensure_api_media_type(:projects, options)
  opts[:name] = name
  post "projects/#{id}/columns", opts
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:



115
116
117
118
# File 'lib/octokit/client/projects.rb', line 115

def delete_project(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  boolean_from_response :delete, "projects/#{id}", opts
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:



307
308
309
310
# File 'lib/octokit/client/projects.rb', line 307

def delete_project_card(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  boolean_from_response :delete, "projects/columns/cards/#{id}", opts
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:



185
186
187
188
# File 'lib/octokit/client/projects.rb', line 185

def delete_project_column(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  boolean_from_response :delete, "projects/columns/#{id}", opts
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:<card-id>, where <card-id> 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:



292
293
294
295
296
# File 'lib/octokit/client/projects.rb', line 292

def move_project_card(id, position, options = {})
  opts = ensure_api_media_type(:projects, options)
  opts[:position] = position
  post "projects/columns/cards/#{id}/moves", opts
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:<column-id>, where <column-id> is the id value of a column in the same project.

Returns:

  • (Sawyer::Resource)

    Result

See Also:



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

def move_project_column(id, position, options = {})
  opts = ensure_api_media_type(:projects, options)
  opts[:position] = position
  post "projects/columns/#{id}/moves", opts
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:



52
53
54
55
# File 'lib/octokit/client/projects.rb', line 52

def org_projects(org, options = {})
  opts = ensure_api_media_type(:projects, options)
  get "orgs/#{org}/projects", opts
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:



85
86
87
88
# File 'lib/octokit/client/projects.rb', line 85

def project(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  get "projects/#{id}", opts
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:



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

def project_card(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  get "projects/columns/cards/#{id}", opts
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:



155
156
157
158
# File 'lib/octokit/client/projects.rb', line 155

def project_column(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  get "projects/columns/#{id}", opts
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:



127
128
129
130
# File 'lib/octokit/client/projects.rb', line 127

def project_columns(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  paginate "projects/#{id}/columns", opts
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
21
# File 'lib/octokit/client/projects.rb', line 18

def projects(repo, options = {})
  opts = ensure_api_media_type(:projects, options)
  paginate "#{Repository.path repo}/projects", opts
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:



101
102
103
104
# File 'lib/octokit/client/projects.rb', line 101

def update_project(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  patch "projects/#{id}", opts
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:



271
272
273
274
# File 'lib/octokit/client/projects.rb', line 271

def update_project_card(id, options = {})
  opts = ensure_api_media_type(:projects, options)
  patch "projects/columns/cards/#{id}", opts
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:



170
171
172
173
174
# File 'lib/octokit/client/projects.rb', line 170

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