Class: CircleCi::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/circleci/project.rb

Overview

Class for interacting with Projects

Class Method Summary collapse

Class Method Details

.allCircleCi::Response

Return all projects for your API key

Returns:



12
13
14
# File 'lib/circleci/project.rb', line 12

def self.all
  CircleCi.http.get '/projects'
end

.build(username, project) ⇒ CircleCi::Response

Build the latest master push for this project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



24
25
26
# File 'lib/circleci/project.rb', line 24

def self.build(username, project)
  CircleCi.http.post "/project/#{username}/#{project}"
end

.build_branch(username, project, branch, build_parameters = {}) ⇒ CircleCi::Response

Build the latest push for this branch of a specific project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • branch (String)
    • Name of branch

  • build_parameters (Hash) (defaults to: {})
    • Optional Build Parameters

Returns:



38
39
40
41
42
# File 'lib/circleci/project.rb', line 38

def self.build_branch(username, project, branch, build_parameters = {})
  body = {}
  body['build_parameters'] = build_parameters unless build_parameters.empty?
  CircleCi.http.post "/project/#{username}/#{project}/tree/#{branch}", {}, body
end

.build_ssh_key(username, project, build, key, hostname) ⇒ CircleCi::Response

Add a ssh key to a build

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • build (String)
    • Build number

  • key (String)
    • The ssh private key

  • hostname (String)
    • The hostname identified by the key

Returns:



54
55
56
57
# File 'lib/circleci/project.rb', line 54

def self.build_ssh_key(username, project, build, key, hostname)
  body = { hostname: hostname, private_key: key }
  CircleCi.http.post "/project/#{username}/#{project}/#{build}/ssh-users", {}, body
end

.clear_cache(username, project) ⇒ CircleCi::Response

Clear the build cache for a specific project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



67
68
69
# File 'lib/circleci/project.rb', line 67

def self.clear_cache(username, project)
  CircleCi.http.delete "/project/#{username}/#{project}/build-cache"
end

.delete_checkout_key(username, project, fingerprint) ⇒ CircleCi::Response

Delete a checkout key for a project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • fingerprint (String)
    • Fingerprint of a checkout key

Returns:



80
81
82
# File 'lib/circleci/project.rb', line 80

def self.delete_checkout_key(username, project, fingerprint)
  CircleCi.http.delete "/project/#{username}/#{project}/checkout-key/#{fingerprint}"
end

.enable(username, project) ⇒ CircleCi::Response

Enable a project in CircleCI. Causes a CircleCI SSH key to be added to the GitHub. Requires admin privilege to the repository.

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



93
94
95
# File 'lib/circleci/project.rb', line 93

def self.enable(username, project)
  CircleCi.http.post "/project/#{username}/#{project}/enable"
end

.envvars(username, project) ⇒ CircleCi::Response

Get the project envvars

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



105
106
107
# File 'lib/circleci/project.rb', line 105

def self.envvars(username, project)
  CircleCi.http.get "/project/#{username}/#{project}/envvar"
end

.follow(username, project) ⇒ CircleCi::Response

Follow the project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



131
132
133
# File 'lib/circleci/project.rb', line 131

def self.follow(username, project)
  CircleCi.http.post "/project/#{username}/#{project}/follow"
end

.get_checkout_key(username, project, fingerprint) ⇒ CircleCi::Response

Get a checkout key for a project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • fingerprint (String)
    • Fingerprint of a checkout key

Returns:



144
145
146
# File 'lib/circleci/project.rb', line 144

def self.get_checkout_key(username, project, fingerprint)
  CircleCi.http.get "/project/#{username}/#{project}/checkout-key/#{fingerprint}"
end

.list_checkout_keys(username, project) ⇒ CircleCi::Response

Get a list of checkout keys for project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



156
157
158
# File 'lib/circleci/project.rb', line 156

def self.list_checkout_keys(username, project)
  CircleCi.http.get "/project/#{username}/#{project}/checkout-key"
end

.new_checkout_key(username, project, type) ⇒ CircleCi::Response

Create a checkout key for a project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • type (String)
    • The type of key to create. Can be ‘deploy-key’ or ‘github-user-key’.

Returns:



169
170
171
172
# File 'lib/circleci/project.rb', line 169

def self.new_checkout_key(username, project, type)
  body = { type: type }
  CircleCi.http.post "/project/#{username}/#{project}/checkout-key", {}, body
end

.recent_builds(username, project) ⇒ CircleCi::Response

Get all recent builds for a specific project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



182
183
184
# File 'lib/circleci/project.rb', line 182

def self.recent_builds(username, project)
  CircleCi.http.get "/project/#{username}/#{project}"
end

.recent_builds_branch(username, project, branch) ⇒ CircleCi::Response

Get all recent builds for a specific branch of a project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • branch (String)
    • Name of branch

Returns:



195
196
197
# File 'lib/circleci/project.rb', line 195

def self.recent_builds_branch(username, project, branch)
  CircleCi.http.get "/project/#{username}/#{project}/tree/#{branch}"
end

.set_envvar(username, project, envvar) ⇒ CircleCi::Response

Sets an envvar for a project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • envvar (Hash)
    • ‘foo’, value: ‘bar’

Returns:



118
119
120
121
# File 'lib/circleci/project.rb', line 118

def self.set_envvar(username, project, envvar)
  body = envvar
  CircleCi.http.post "/project/#{username}/#{project}/envvar", {}, body
end

.settings(username, project) ⇒ CircleCi::Response

Get the project configuration

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



207
208
209
# File 'lib/circleci/project.rb', line 207

def self.settings(username, project)
  CircleCi.http.get "/project/#{username}/#{project}/settings"
end

.ssh_key(username, project, key, hostname) ⇒ CircleCi::Response

Add a ssh key to a project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

  • key (String)
    • The ssh private key

  • hostname (String)
    • The hostname identified by the key

Returns:



221
222
223
224
# File 'lib/circleci/project.rb', line 221

def self.ssh_key(username, project, key, hostname)
  body = { hostname: hostname, private_key: key }
  CircleCi.http.post "/project/#{username}/#{project}/ssh-key", {}, body
end

.unfollow(username, project) ⇒ CircleCi::Response

Unfollow the project

Parameters:

  • username (String)
    • User or org name who owns project

  • project (String)
    • Name of project

Returns:



234
235
236
# File 'lib/circleci/project.rb', line 234

def self.unfollow(username, project)
  CircleCi.http.post "/project/#{username}/#{project}/unfollow"
end