Class: Melaya::TeamAPI
- Inherits:
-
Object
- Object
- Melaya::TeamAPI
- Defined in:
- lib/melaya/team.rb
Overview
Team API — manage project team membership, roles, and invitations.
Maps to:
/api/v1/private/projects/:project/members/*
/api/v1/private/team/*
/api/v1/private/projects/:project/pipelines/:pipeline/visibility
Instance Method Summary collapse
-
#accept_invite(token) ⇒ Object
POST /api/v1/private/team/invite/accept Accept a project invite using the token from an invite link.
-
#create_invite_link(project) ⇒ Object
POST /api/v1/private/projects/:project/invite-link Create a shareable invite link for a project.
-
#get_pipeline_visibility(project, pipeline) ⇒ Object
GET /api/v1/private/projects/:project/pipelines/:pipeline/visibility Get visibility settings for a pipeline within a project.
-
#initialize(http) ⇒ TeamAPI
constructor
A new instance of TeamAPI.
-
#invite(project, username:) ⇒ Object
POST /api/v1/private/projects/:project/members/invite Invite a user to a project team by username.
-
#list_members(project) ⇒ Object
GET /api/v1/private/projects/:project/members List members of a project team.
-
#remove_member(project, user_id) ⇒ Object
DELETE /api/v1/private/projects/:project/members/:userId Remove a member from a project team.
-
#set_pipeline_visibility(project, pipeline, body = {}) ⇒ Object
PUT /api/v1/private/projects/:project/pipelines/:pipeline/visibility Set pipeline visibility within a project.
-
#update_member_role(project, user_id, role:) ⇒ Object
PATCH /api/v1/private/projects/:project/members/:userId Update a team member's role in a project.
Constructor Details
#initialize(http) ⇒ TeamAPI
Returns a new instance of TeamAPI.
16 17 18 |
# File 'lib/melaya/team.rb', line 16 def initialize(http) @http = http end |
Instance Method Details
#accept_invite(token) ⇒ Object
POST /api/v1/private/team/invite/accept Accept a project invite using the token from an invite link.
47 48 49 |
# File 'lib/melaya/team.rb', line 47 def accept_invite(token) @http.post("/api/v1/private/team/invite/accept", "token" => token) end |
#create_invite_link(project) ⇒ Object
POST /api/v1/private/projects/:project/invite-link Create a shareable invite link for a project. Returns the URL to send to new team members.
40 41 42 |
# File 'lib/melaya/team.rb', line 40 def create_invite_link(project) @http.post("/api/v1/private/projects/#{enc(project)}/invite-link") end |
#get_pipeline_visibility(project, pipeline) ⇒ Object
GET /api/v1/private/projects/:project/pipelines/:pipeline/visibility Get visibility settings for a pipeline within a project.
77 78 79 80 81 |
# File 'lib/melaya/team.rb', line 77 def get_pipeline_visibility(project, pipeline) @http.get( "/api/v1/private/projects/#{enc(project)}/pipelines/#{enc(pipeline)}/visibility" ) end |
#invite(project, username:) ⇒ Object
POST /api/v1/private/projects/:project/members/invite Invite a user to a project team by username.
31 32 33 34 |
# File 'lib/melaya/team.rb', line 31 def invite(project, username:) @http.post("/api/v1/private/projects/#{enc(project)}/members/invite", "username" => username) end |
#list_members(project) ⇒ Object
GET /api/v1/private/projects/:project/members List members of a project team.
23 24 25 |
# File 'lib/melaya/team.rb', line 23 def list_members(project) @http.get("/api/v1/private/projects/#{enc(project)}/members") end |
#remove_member(project, user_id) ⇒ Object
DELETE /api/v1/private/projects/:project/members/:userId Remove a member from a project team.
67 68 69 |
# File 'lib/melaya/team.rb', line 67 def remove_member(project, user_id) @http.delete("/api/v1/private/projects/#{enc(project)}/members/#{enc(user_id)}") end |
#set_pipeline_visibility(project, pipeline, body = {}) ⇒ Object
PUT /api/v1/private/projects/:project/pipelines/:pipeline/visibility Set pipeline visibility within a project.
88 89 90 91 92 93 |
# File 'lib/melaya/team.rb', line 88 def set_pipeline_visibility(project, pipeline, body = {}) @http.put( "/api/v1/private/projects/#{enc(project)}/pipelines/#{enc(pipeline)}/visibility", body ) end |
#update_member_role(project, user_id, role:) ⇒ Object
PATCH /api/v1/private/projects/:project/members/:userId Update a team member's role in a project.
56 57 58 59 60 61 |
# File 'lib/melaya/team.rb', line 56 def update_member_role(project, user_id, role:) @http.patch( "/api/v1/private/projects/#{enc(project)}/members/#{enc(user_id)}", "role" => role ) end |