Menus: Swarm main menu items

Get main menu details

Summary

Get details of the Swarm main menu items.

GET /api/v11/menus

Description

Get details of the Swarm main menu items including custom menu items.

Any users can get the Swarm main menu details, the user does not need to be authenticated.

Parameter Description Type Parameter Type Required

project

Specify a project in the request to return the menu items for the project.

string

query

No

Example usage

Fetch Swarm menu items

Get details of the Swarm main menu items:

curl "https://myswarm-url/api/v11/menus"

Swarm responds with:

HTTP/1.1 200 OK		

{
  "error": null,
  "messages": [],
  "data" : {
    "menu": [
      {
        "id": "dashboard",
        "enabled": true,
        "target": "/",
        "cssClass": "component",
        "title": "dashboard",
        "priority": 100,
        "roles": null
      },
      {
        "id": "activity",
        "enabled": true,
        "target": "/activity/",
        "cssClass": "activity",
        "title": "activity",
        "priority": 120,
        "roles": null
      },
      {
        "id": "reviews",
        "enabled": true,
        "target": "/reviews/",
        "cssClass": "component",
        "title": "reviews",
        "priority": 130,
        "roles": null
      },
      {
        "id": "projects",
        "enabled": true,
        "target": "/projects/",
        "cssClass": "projects",
        "title": "projects",
        "priority": 140,
        "roles": null
      },
      {
        "id": "files",
        "enabled": true,
        "target": "/files/",
        "cssClass": "files",
        "title": "files",
        "priority": 150,
        "roles": null
      },
      {
        "id": "changes",
        "enabled": true,
        "target": "/changes/",
        "cssClass": "changes",
        "title": "changes",
        "priority": 160,
        "roles": null
      },
      {
        "id": "jobs",
        "enabled": true,
        "target": "/jobs/",
        "cssClass": "jobs",
        "title": "jobs",
        "priority": 170,
        "roles": null
      },
      {
        "id": "groups",
        "enabled": true,
        "target": "/groups/",
        "cssClass": "groups",
        "title": "groups",
        "priority": 180,
        "roles": null
      },
      {
        "id": "workflows",
        "enabled": true,
        "target": "/workflows/",
        "cssClass": "workflows",
        "title": "workflows",
        "priority": 190,
        "roles": null
      },
      {
        "id": "tests",
        "enabled": true,
        "target": "/testdefinitions/",
        "cssClass": "tests",
        "title": "tests",
        "priority": 200,
        "roles": null
      },
      {
        "id": "jenkins_blue",
        "enabled": true,
        "target": "http://my-jenkins.instance.blue.com",
        "cssClass": "custom_menu",
        "title": "Jenkins Build",
        "priority": 210,
        "roles": "authenticated"
      }
    ],
    "contextMetadata": []
  }
}

Fetch menu items for a project (authenticated and project owner)

Get menu items for project Jam when the authenticated user owns the project:

curl -u "username:ticket" "https://myswarm-url/api/v11/menus?project=jam"

Swarm responds with:

HTTP/1.1 200 OK		

{
  "error": null,
  "messages": [],
  "data" : {
    "menu": [
      {
        "id": "activity",
        "enabled": true,
        "target": "/projects/jam/activity/",
        "cssClass": "activity",
        "title": "activity",
        "priority": 120,
        "roles": null
      },
      {
        "id": "reviews",
        "enabled": true,
        "target": "/projects/jam/reviews/",
        "cssClass": "component",
        "title": "reviews",
        "priority": 130,
        "roles": null
      },
      {
        "id": "files",
        "enabled": true,
        "target": "/projects/jam/files/",
        "cssClass": "files",
        "title": "files",
        "priority": 150,
        "roles": null
      },
      {
        "id": "changes",
        "enabled": true,
        "target": "/projects/jam/changes/",
        "cssClass": "changes",
        "title": "changes",
        "priority": 160,
        "roles": null
      },
      {
        "id": "settings",
        "enabled": true,
        "target": "/projects/jam/settings/",
        "cssClass": "settings",
        "title": "settings",
        "priority": 200,
        "roles": null
      }
    ],
    "contextMetadata": {
      "contextName": "jam"
    }
  }
}

Fetch menu items for a project (unauthenticated or not project owner)

Get menu items for project Jam without authentication or when the authenticated user is not a project owner:

curl "https://myswarm-url/api/v11/menus?project=jam"

Swarm responds with:

HTTP/1.1 200 OK		

{
  "error": null,
  "messages": [],
  "data" : {
    "menu": [
      {
        "id": "activity",
        "enabled": true,
        "target": "/projects/jam/activity/",
        "cssClass": "activity",
        "title": "activity",
        "priority": 120,
        "roles": null
      },
      {
        "id": "reviews",
        "enabled": true,
        "target": "/projects/jam/reviews/",
        "cssClass": "component",
        "title": "reviews",
        "priority": 130,
        "roles": null
      },
      {
        "id": "files",
        "enabled": true,
        "target": "/projects/jam/files/",
        "cssClass": "files",
        "title": "files",
        "priority": 150,
        "roles": null
      },
      {
        "id": "changes",
        "enabled": true,
        "target": "/projects/jam/changes/",
        "cssClass": "changes",
        "title": "changes",
        "priority": 160,
        "roles": null
      }
    ],
    "contextMetadata": {
      "contextName": "Jam"
    }
  }
}

If a request fails

<error code>:

  • 404 Project specified does not exist
HTTP/1.1 <response error code>		

{
  "error": <error code>,
  "messages": [{
    "code" : "<code string>",
    "text" : "<error message>"
  }],
  "data" : null
}