Class: SupportOps::GitLab::Invitations

Inherits:
Base
  • Object
show all
Defined in:
lib/support_ops_gitlab/gitlab/invitations.rb

Overview

TODO:

Add attributes

Defines the class Invitations within the module SupportOps::GitLab.

Author:

  • Jason Colyer

Since:

  • 1.0.0

Class Method Summary collapse

Methods inherited from Base

#activate!, #approve!, attributes, #badges, #ban!, #block!, client, #client=, #commits, configure, #contributors, #create_support_pin!, #deactivate!, define_attributes, #delete!, #diffs, #disable_2fa!, #discussions, #emails, #encoded_path, #events, #find, #find!, #gpg_keys, #hard_delete!, #impersonations, #initialize, #issues, #jobs, #latest_pipeline, #members, #memberships, #merge_requests, #move!, #notes, #paid?, #pats, #pipeline_variables, #pipelines, #preferences, #projects, readonly_attributes, #reject!, #revoke!, #rotate!, #save!, #ssh_keys, #status, #store_original_attributes, #subscribe!, #support_pin, to_hash, #tokens, #unban!, #unblock!, #unsubscribe!, #webhooks

Constructor Details

This class inherits a constructor from SupportOps::GitLab::Base

Class Method Details

.create!(item_id, type, data) ⇒ Array

Create a membership invitation for a project. This will exit on error

Examples:

require 'support_ops_gitlab'

SupportOps::GitLab::Configuration.configure do |config|
  config.url = 'https://gitlab.com/api/v4'
  config.token = 'abc123'
end

data = {
  email: 'bob@example.com',
  access_level: 50
}
invite = SupportOps::GitLab::Invitations.create!('project', 1234, data)
pp invite
# => {"status"=>"success"}
require 'support_ops_gitlab'

SupportOps::GitLab::Configuration.configure do |config|
  config.url = 'https://gitlab.com/api/v4'
  config.token = 'abc123'
end

data = {
  user_id: 987,
  access_level: 40
}
invite = SupportOps::GitLab::Invitations.create!('group', 5678, data)
pp invite
# => {"status"=>"success"}

Parameters:

  • item_id (Integer)

    The ID of the project or group

  • type (String)
  • project (Object)

    An instance of Readiness::GitLab::Projects

  • data (Hash)

    The invite information

Returns:

  • (Array)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



61
62
63
64
65
66
67
# File 'lib/support_ops_gitlab/gitlab/invitations.rb', line 61

def self.create!(item_id, type, data)
  raise "This only works for a project or group, not a #{type}" unless %w[project group].include? type.downcase.singularize
  response = client.connection.post("#{type.downcase.pluralize}/#{item_id}/invitations", data.to_json)
  body = Oj.load(response.body)
  raise "Failed to create invites => #{body}" unless response.status == 200
  body
end