Руководство по REST API для команд

Tempo Teams REST API предназначен для разработчиков, которые хотят интегрироваться с надстройками Tempo. REST API - это стандартный интерфейс для взаимодействия с модулем Tempo Teams. Используйте браузер API REST, встроенный в JIRA, для просмотра сервисов, предоставляемых API REST командами. Примеры в этом руководстве используют curl и предназначены для того, чтобы дать представление о том, как использовать REST API для общих случаев использования.

Обратите внимание, что это не полный список доступных служб, и что эти API являются частными и могут быть изменены

Для получения более подробной информации о REST см. Документацию по JIRA REST API.

Доступно: команды Tempo 2.0.7 и познее

Обратите внимание, что член был memberBean, а членство было memberBean в версии 2.0.6 и более ранних

Типы данных

Ресурсы Команды REST имеют несколько различных типов параметров, которые описаны ниже.

Типы масштабов Team Link

Имя параметра: {scopeType}

Возможные значения типа:

  • проект - ссылка имеет тип проекта JIRA
  • доска - ссылка типа JIRA Agile доска

Типы членов команды

Имя параметра: {тип}

Возможные значения типа:

  • user - член относится к типу пользователя JIRA
  • группа ("group") - член группы типа JIRA

Ключи разрешения команд

Разрешения команды могут быть предоставлены различными модулями Tempo. Список доступных ключей разрешений может расти с новыми релизами.

Имя параметра: {permissionKey}

Возможные значения ключа:

  • teams.browse.team - разрешение на просмотр информации о команде
  • timesheets.approve.timesheet - разрешение на утверждение расписаний членов команды

Запрос существующих данных команды

Получить все команды, которые авторизованный пользователь имеет разрешение на просмотр.

Запрос


curl -D -u fred:fred -X GET -H "Content-Type: application/json" http://localhost:8090/jira/rest/tempo-teams/1/team

Отклик

Ответ содержит все команды, которые пользователь может просмотреть, и базовую информацию о каждой из них.


{
  "id"3,
  "name""Cloud Development",
  "summary""Cloud Development Team",
  "lead""erica"
},
{
  "id"1,
  "name""GreenCloud",
  "summary""The Whole Company",
  "lead""john"
}

Получить всю основную информацию о конкретной команде, используя идентификатор команды. Зарегистрированный пользователь должен иметь разрешение на просмотр команды для этой команды. В этом примере мы используем идентификатор команды "3".

Запрос


curl -D- -u fred:fred -X GET -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/1/team/3

Отклик

Ответ предоставляет всю основную информацию для указанной команды.


{
  "id"3,
  "name""Cloud Development",
  "summary""Cloud Development Team",
  "lead""erica"
}

Добавление  новой  команды

Для добавления новой команды требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

 

Запрос


curl -D- -u fred:fred -X POST --data '{see below}' -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/1/team

Данные


{
    "name""GreenCloud",
    "summary""The Whole Company",
    "lead""john"
}

Отклик

Ответ предоставляет новый идентификатор для добавленной команды и данные, которые были приведены выше.


{
  "id"8,
  "name""GreenCloud",
  "summary""The Whole Company",
  "lead""john"
}

Запрос для членов команды

Членами команды могут быть как пользователи JIRA, так и группы JIRA (см. Типы данных). В этой конечной точке значением по умолчанию для типа элемента является user. Получить всех членов группы в команде. В этом примере мы используем идентификатор команды "3". Требуется разрешение на просмотр команды.

Запрос


curl -D- -u fred:fred -X GET -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/team/3/member?type=group

Отклик

Ответ предоставляет всем членам команды тип группы.


{
  "id"31,
  "member": {
    "teamMemberId"31,
    "name""cloud-dev-user",
    "type""GROUP",
    "avatar": {},
    "activeInJira"true,
    "displayname""cloud-dev-user"
  },
  "showDeactivate"false
}

Получить всех пользователей в команде. В этом примере мы используем идентификатор команды "3". Требуется разрешение на просмотр команды.

Запрос


curl -D- -u fred:fred -X GET -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/team/3/member

Отклик

Ответ предоставляет всем членам команды типа user, а также всем пользователям, которые являются членами групп в команде.


 {
    "id"4,
    "member": {
      "teamMemberId"4,
      "name""bob",
      "type""USER",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10138",
        "24x24""/jira/secure/useravatar?size=small&avatarId=10138",
        "32x32""/jira/secure/useravatar?size=medium&avatarId=10138",
        "48x48""/jira/secure/useravatar?avatarId=10138"
      },
      "activeInJira"true,
      "displayname""Bob Johnson"
    },
    "membership": {
      "id"4,
      "role": {
        "id"4,
        "name""Developer"
      },
      "dateFrom""",
      "dateTo""29/Nov/13",
      "availability""50",
      "teamMemberId"4,
      "teamId"3,
      "status""active"
    },
    "showDeactivate"false
  },
  {
    "id"5,
    "member": {
      "teamMemberId"5,
      "name""david",
      "type""USER",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10122",
        "24x24""/jira/secure/useravatar?size=small&avatarId=10122",
        "32x32""/jira/secure/useravatar?size=medium&avatarId=10122",
        "48x48""/jira/secure/useravatar?avatarId=10122"
      },
      "activeInJira"true,
      "displayname""David Carsen"
    },
    "membership": {
      "id"5,
      "role": {
        "id"1,
        "name""Member"
      },
      "dateFrom""01/Dec/13",
      "dateTo""",
      "availability""100",
      "teamMemberId"5,
      "teamId"3,
      "status""active"
    },
    "showDeactivate"true
  }

Добавить участника в команду

Добавить участника в команду. В этом примере мы используем идентификатор команды "3". Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

Запрос


curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/team/3/member

Данные


 {
            "member": {
                "name""erica",
                "type""USER"
            },
            "membership": {
                "role": {
                    "id"3
                },
                "dateFrom""04/Jan/2013",
                "dateTo""",
                "availability""100",
                "teamId"3
            }
        }

Отклик

Ответ предоставляет вновь добавленного члена и членство. Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).


{
  "id"33,
  "member": {
    "teamMemberId"33,
    "name""erica",
    "type""USER",
    "avatar": {
      "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10120",
      "24x24""/jira/secure/useravatar?size=small&avatarId=10120",
      "32x32""/jira/secure/useravatar?size=medium&avatarId=10120",
      "48x48""/jira/secure/useravatar?avatarId=10120"
    },
    "activeInJira"true,
    "displayname""Erica Jefferson"
  },
  "membership": {
    "id"32,
    "role": {
      "id"3,
      "name""Scrum Master"
    },
    "dateFrom""04/Jan/13",
    "dateTo""",
    "availability""100",
    "teamMemberId"33,
    "teamId"3,
    "status""active"
  },
  "showDeactivate"true
}

Добавить группу в команду. В этом примере мы используем идентификатор команды 3. Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

Запрос


curl -D- -u fred:fred -X POST --data {see below} -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/team/3/member

Данные


{
  "member" : {
    "name" "jira-administrators",
    "type" "GROUP"
  },
  "membership": {
        "role": {
        }
    }
}

Отклик

Ответ предоставляет вновь добавленную группу.


 {
  "id"32,
  "member": {
    "teamMemberId"32,
    "name""jira-administrators",
    "type""GROUP",
    "avatar": {},
    "activeInJira"true,
    "displayname""jira-administrators"
  },
  "showDeactivate"false
}

Деактивировать члена команды

Деактивация члена означает закрытие текущего периода членства.

В этом примере мы используем идентификатор команды 3 и идентификатор участника 4. Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

Запрос


curl -D- -u fred:fred -X PUT -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/team/3/member/4/deactivate

Отклик

Ответ предоставляет членство деактивированного члена.


 
    "id"5,
    "role": {
        "id"1,
        "name""Member"
    },
    "dateFrom""01/Dec/13",
    "dateTo""20/Jan/14",
    "availability""100",
    "teamMemberId"5,
    "teamId"3,
    "status""past"
}

Удалить члена из команды

Удаление члена из команды, возвращает пустой ответ. В этом примере мы используем идентификатор команды "3" и идентификатор участника "4". Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

Запрос


curl -D- -u fred:fred -X DELETE -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/team/3/member/4

Разрешения группы обновления

Пользователям и группам JIRA могут быть предоставлены разные разрешения группы (см. Типы данных).

Обновите разрешение команды на утверждение расписания.

Все участники, которые должны иметь разрешение, должны быть указаны. Членами могут быть пользователи или группы JIRA. В этом примере мы используем идентификатор команды 3. Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

Запрос


curl -D- -u fred:fred -X PUT --data {see below} -H "Content-Type: application/json"  http://localhost:8090/jira/rest/tempo-teams/2/permission/team/3/tempo.timesheets.approve.timesheet

Данные


{
  "id""tempo.timesheets.approve.timesheet",
  "teamId""3",
  "groups": [ "cloud-dev-user" ],
  "users": [ "erica""john""laura" ]
}

Отклик

Ответ предоставляет обновленное разрешение.


{
  "id""tempo.timesheets.approve.timesheet",
  "teamId"3,
  "name""Approve Timesheet",
  "description""Permission to approve timesheet for team members",
  "weight"10,
  "groups": [
    "cloud-dev-user"
  ],
  "users": [
    {
      "name""laura",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10139",
        "48x48""/jira/secure/useravatar?avatarId=10139"
      },
      "jiraUser"true,
      "displayname""Laura Penn"
    },
    {
      "name""john",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10130",
        "48x48""/jira/secure/useravatar?avatarId=10130"
      },
      "jiraUser"true,
      "displayname""John Steel"
    },
    {
      "name""erica",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10120",
        "48x48""/jira/secure/useravatar?avatarId=10120"
      },
      "jiraUser"true,
      "displayname""Erica Jefferson"
    }
  ]
}

Разрешения запроса команды

Пользователям и группам JIRA могут быть предоставлены разные разрешения группы (см. Типы данных).

Чтобы получить всех членов команды, которые имеют разрешение «Утвердить расписание». Требуется разрешение администраторов команды Tempo (или разрешение менеджера команды Tempo для команд Tempo 2.x.x или более ранних версий).

Запрос

В этом примере мы используем идентификатор команды 3 и устанавливаем ключ разрешения на «tempo.timesheets.approve.timesheet».


curl -D- -u fred:fred -X GET -H "Content-Type: application/json" http://localhost:8090/jira/rest/tempo-teams/2/permission/team/3/tempo.timesheets.approve.timesheet

отклик

Ответ предоставляет разрешение команды.


 
{
  "id""tempo.timesheets.approve.timesheet",
  "teamId"3,
  "name""Approve Timesheet",
  "description""Permission to approve timesheet for team members",
  "weight"10,
  "groups": [
    "cloud-dev-user"
  ],
  "users": [
    {
      "name""laura",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10139",
        "48x48""/jira/secure/useravatar?avatarId=10139"
      },
      "jiraUser"true,
      "displayname""Laura Penn"
    },
    {
      "name""john",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10130",
        "48x48""/jira/secure/useravatar?avatarId=10130"
      },
      "jiraUser"true,
      "displayname""John Steel"
    },
    {
      "name""erica",
      "avatar": {
        "16x16""/jira/secure/useravatar?size=xsmall&avatarId=10120",
        "48x48""/jira/secure/useravatar?avatarId=10120"
      },
      "jiraUser"true,
      "displayname""Erica Jefferson"
    }
  ]
}

По материалам Tempo Server: Teams REST API Guide