Class: Melaya::ProjectsAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/melaya/projects.rb

Overview

Projects API — create and list agent projects.

Projects are the top-level namespace for pipelines, connectors, and team membership in the Melaya platform.

Maps to /api/v1/private/projects/*.

Examples:

projects = melaya.projects.list
project  = melaya.projects.create(name: "my-project", description: "...")
melaya.projects.rename(old_name: "my-project", new_name: "renamed-project")

Instance Method Summary collapse

Constructor Details

#initialize(http) ⇒ ProjectsAPI

Returns a new instance of ProjectsAPI.



16
17
18
# File 'lib/melaya/projects.rb', line 16

def initialize(http)
  @http = http
end

Instance Method Details

#create(name:, description: nil) ⇒ Object

POST /api/v1/private/projects Create a new agent project.

Parameters:

  • name (String)
  • description (String, nil) (defaults to: nil)


31
32
33
34
# File 'lib/melaya/projects.rb', line 31

def create(name:, description: nil)
  body = compact("name" => name, "description" => description)
  @http.post("/api/v1/private/projects", body)
end

#listObject

GET /api/v1/private/projects List all projects the authenticated user can access (owned projects + projects they are a member of).



23
24
25
# File 'lib/melaya/projects.rb', line 23

def list
  @http.get("/api/v1/private/projects")
end

#rename(old_name:, new_name:) ⇒ Object

PATCH /api/v1/private/projects/rename Rename a project (body: oldName, newName).

Parameters:

  • old_name (String)
  • new_name (String)


40
41
42
43
44
# File 'lib/melaya/projects.rb', line 40

def rename(old_name:, new_name:)
  @http.patch("/api/v1/private/projects/rename",
    "oldName" => old_name,
    "newName" => new_name)
end

#runner_projectsObject

GET /api/v1/private/projects/runner Get projects list (runner-facing, authed).



48
49
50
# File 'lib/melaya/projects.rb', line 48

def runner_projects
  @http.get("/api/v1/private/projects/runner")
end