Projekte
Projekte verfügen über URIs des Formulars: /project/{id} oder /project/{name}, wobei {id} die interne eindeutige Projekt-ID/-Nummer und {name} der eindeutige Projektname ist.
Hinweis: Der Projektname kann geändert werden, sodass nicht garantiert wird, dass auf dem Namen basierende URIs immer dasselbe/identische Projekt identifizieren, wohingegen URIs, die auf der unveränderlichen ID basieren, das tun.
Projektrollen sind Instanziierungen von Rollenstereotypen. Die URI von Projektrollen ist die Kombination der Projekt-URI und der Rollen-URI (Stereotyp): {projectURI}{roleURI}
Projektschema abrufen
Neues Projekt erstellen
POST /project
Der Anfragetext muss ein gültiges Projektobjekt mit allen erforderlichen Eigenschaften enthalten, z.B.:
{
"name": "REST API Test",
"description": "A sample project to test and demonstrate the __REST API__",
"descFormat": "Wiki",
"category": "Education"
}
Neues Projekt als Klon eines anderen Projekts erstellen
POST {projectURI}/clone
Der Anfragetext muss wie oben ein gültiges Projekt enthalten, aber das neue Projekt verwendet das angegebene Projekt als Vorlage und erbt die Rollen, Mitglieder, Tracker und CMDB-Kategorien.
Projektdefinition aktualisieren
PUT /project
Der Anfragetext muss den Projekt-URI und die zu aktualisierenden Eigenschaften enthalten, z.B.:
{
"uri": "/project/1",
"propagation": "Public with join approval",
"defaultMemberRoleId": 2
}
Die "defaultMemberRoleId" muss die Rollen-Stereotyp-ID einer definierten Projektrolle sein. Daher kann diese Eigenschaft nicht bei der Projekterstellung festgelegt werden!
Schließen/Erneut öffnen – Projekt schließen/erneut öffnen
PUT /project
Der Anfragetext muss den Projekt-URI und die zu aktualisierenden Eigenschaften enthalten, z.B.:
{
"uri": "/project/1",
"closed": true
}
Legen Sie "closed" auf false fest, um ein zuvor geschlossenes Projekt erneut zu öffnen.
Projekt entfernen/wiederherstellen
PUT /project
Der Anfragetext muss den Projekt-URI und die zu aktualisierenden Eigenschaften enthalten, z.B.:
{
"uri": "/project/1",
"deleted": true
}
Legen Sie "deleted" auf false fest, um ein zuvor entferntes Projekt wiederherzustellen.
Ein Projekt löschen
DELETE {projectURI}
Hinweis: Das Löschen eines Projekts kann nicht rückgängig gemacht werden.
Projektdefinition abrufen
Änderungshistorie der Projektdefinition abrufen
Projektliste abrufen
GET /projects/page/{page}[?query]
Gibt die angegebene Seite aller Projekte zurück (sichtbar für den aktuellen Benutzer und entspricht dem angegebenen Filter).
Parameter | Typ | Erforderlich | Bedeutung |
|---|
page | Ganzzahl | Ja | Anzahl der zurückzugebenden Ergebnisseiten. Die erste Seite hat die Nummer 1. |
pagesize | Ganzzahl | Nein | Die Seitengröße als Anzahl der Projekte. Der gültige Bereich ist [1 .. 500]. Der Standardwert ist 100. |
Kategorie | Zeichenfolge | Nein | Falls vorhanden: Gibt nur Projekte mit dieser Kategorie zurück |
filter | Zeichenfolge | Nein | Falls vorhanden: Gibt nur Projekte zurück, deren Daten diese Zeichenfolge enthalten |
Beispiel:
GET https://hostname/cb/rest/projects/page/1?pagesize=50&category=Education
Alle verfügbaren Projektberechtigungen abrufen
GET /project/permissions
Sie können Projektberechtigungen nicht erstellen, aktualisieren oder löschen und nur den Projektrollen Berechtigungen zuweisen.
Definition der Projektberechtigung abrufen
GET /project/permission/{permissionIdOrName}
Projektrollenschema abrufen
Neue Projektrolle definieren (instanziieren Sie ein Rollenstereotyp in einem Projekt)
POST {projectURI}{roleURI}
Der Anfragetext muss ein nicht leeres Array von Projektberechtigungen enthalten, die der neuen Projektrolle gewährt werden (die Berechtigungs-ID oder der Berechtigungsname reicht aus), z.B.:
[
"Wiki Space - View",
"Document - View",
"Trackers - View",
"CMDB - View"
]
Achtung: Die neue Rolle hat keine Berechtigungen für vorhandene Projektartefakte (Dokumente, Tracker usw.), daher sollten Sie die Klonmethode verwenden (siehe unten).
Neue Projektrolle basierend auf einer vorhandenen (Vorlagen-)Rolle erstellen
POST {projectURI}{roleURI}/clone/{roleIdOrName}
Der Anfragetext muss ein nicht leeres Array von Projektberechtigungen enthalten, die der neuen Projektrolle gewährt werden (die Berechtigungs-ID oder der Berechtigungsname reicht aus), z.B.:
[
"Wiki Space - View",
"Document - View",
"Trackers - View",
"CMDB - View"
]
Die neue Rolle hat die gleichen Berechtigungen für vorhandene Projektartefakte (Dokumente, Tracker usw.) wie die Vorlagenrolle.
Erstellen Sie z.B. die Projektrolle "Tester" basierend auf der vordefinierten Rolle "Entwickler":
POST https://hostname/cb/rest/project/1/role/Developer/clone/Tester
Berechtigungen ändern, die einer Projektrolle gewährt wurden
PUT {projectURI}{roleURI}
Der Anfragetext muss ein nicht leeres Array der Projektberechtigungen enthalten, die der Rolle zugewiesen wurden, z.B.:
[
"Wiki Space - View",
"Document - View",
"Trackers - View",
"CMDB - View",
"SCM - View",
"Members - View"
]
Eine Projektrolle löschen
DELETE {projectURI}{roleURI}
Eine Projektrollendefinition abrufen
GET {projectURI}{roleURI}
Die Änderungshistorie einer Projektrolle abrufen
GET {projectURI}{roleURI}/history
Ruft eine Liste aller Rollen ab, die in einem Projekt definiert sind
Ruft eine Liste aller in einem Projekt definierten Rollen sowie aller aktuellen Rollenmitglieder ab
GET {projectURI}/roles/members[?query]
Parameter | Typ | Erforderlich | Bedeutung |
|---|
status | Zeichenfolge | Nein | Eine der Optionen {"Any", "Submitted", "Rejected", "Active", "Resigned", }, um nur Projektrollenmitglieder mit diesem Status anzuzeigen. Der Standardwert ist derzeit "Active" Mitglieder. |
Ruft eine Liste aller in einem Projekt definierten Rollen sowie aller aktuellen/früheren Rollenmitglieder ab
GET {projectURI}/roles/members/history
Ruft eine Liste aller Mitglieder ab, denen derzeit eine bestimmte Projektrolle gewährt wurde
GET {projectURI}{roleURI}/members[?query]
Parameter | Typ | Erforderlich | Bedeutung |
|---|
status | Zeichenfolge | Nein | Eine der Optionen {"Any", "Submitted", "Rejected", "Active", "Resigned", }, um nur Projektrollenmitglieder mit diesem Status anzuzeigen. Der Standardwert ist derzeit "Active" Mitglieder. |
Mitgliedshistorie einer Projektrolle abrufen
GET {projectURI}{roleURI}/members/history
Alle (aktuellen) Mitglieder einer Projektrolle festlegen
PUT {projectURI}{roleURI}/members
Der Anfragetext muss ein Array von Rollenmitgliedern enthalten. Mitglieder können Benutzer und/oder Benutzergruppen sein, z.B.:
[
"/user/TestUser",
"/user/group/REST API Users"
]
Ruft eine Seite aller Benutzer ab, die einer Projektrolle zugewiesen wurden
GET {projectURI}{roleURI}/users/page/{page}
Parameter | Typ | Erforderlich | Bedeutung |
|---|
page | Ganzzahl | Ja | Anzahl der zurückzugebenden Ergebnisseiten. Die erste Seite hat die Nummer 1. |
pagesize | Ganzzahl | Nein | Die Seitengröße als Anzahl der Projekte. Der gültige Bereich ist [1 .. 500]. Der Standardwert ist 100. |
Gibt die angeforderte Seite aller Benutzer zurück, die entweder direkt oder indirekt Mitglieder der angegebenen Projektrolle sind.
Indirekt bedeutet, dass der Benutzer Mitglied einer Benutzergruppe und diese Benutzergruppe Mitglied der Projektrolle ist.
Einem Benutzer eine Projektrolle gewähren
PUT {projectURI}{roleURI}{userURI}
PUT {projectURI}{userURI}{roleURI}
PUT {userURI}{projectURI}{roleURI}
Der Anfragetext ist optional und kann eine einzelne Kommentarzeichenfolge enthalten. Z.B.:
"Why it was necessary to grant this role to this user"
Eine Projektrolle von einem Benutzer widerrufen
DELETE {projectURI}{roleURI}{userURI}
DELETE {projectURI}{userURI}{roleURI}
DELETE {userURI}{projectURI}{roleURI}
Der Anfragetext ist optional und kann eine einzelne Kommentarzeichenfolge enthalten. Z.B.:
"Why it was necessary to revoke this role from this user"
Die Mitgliedschaftshistorie eines bestimmten Benutzers in einer bestimmten Projektrolle abrufen
GET {projectURI}{roleURI}{userURI}/history
GET {projectURI}{userURI}{roleURI}/history
GET {userURI}{projectURI}{roleURI}/history
Das Ergebnisschema ist /project/role/history/schema.
Abrufen aller Rollen eines bestimmten Projekts, in dem ein Benutzer derzeit ein (direktes) Mitglied ist
GET {projectURI}{userURI}/roles[?direct=true]
GET {userURI}{projectURI}/roles[?direct=true]
Historie aller direkten Projektrollen abrufen, die ein Benutzer in einem bestimmten Projekt hat oder hatte
GET {projectURI}{userURI}/roles/history
GET {userURI}{projectURI}/roles/history
Abrufen aller Projekte und Rollen, bei denen ein Benutzer derzeit ein (direktes) Mitglied ist
GET {userURI}/projects/roles[?direct=true]
Abrufen der Historie aller Projekte und Rollen, in denen ein Benutzer ein direktes Mitglied ist oder war
GET {userURI}/projects/roles/history
Abrufen aller für einen Benutzer sichtbaren Projekte und der effektiven Projektberechtigungen pro Projekt
GET {userURI}/projects/permissions
Effektive Projektberechtigungen eines Benutzers für ein bestimmtes Projekt abrufen
GET {userURI}{projectURI}/permissions
GET {projectURI}{userURI}/permissions
Ruft eine Seite aller Projekte ab, auf die ein Benutzer zugreifen kann
GET {userURI}/projects/page/{page}[?query]
Parameter | Typ | Erforderlich | Bedeutung |
|---|
page | Ganzzahl | Ja | Anzahl der zurückzugebenden Ergebnisseiten. Die erste Seite hat die Nummer 1. |
pagesize | Ganzzahl | Nein | Die Seitengröße als Anzahl der Projekte. Der gültige Bereich ist [1 .. 500]. Der Standardwert ist 100. |
deleted | Boolesch | Nein | Wenn "true", werden auch entfernte Projekte angezeigt. Der Standardwert ist "false". |
Gibt die angeforderte Seite von Projekten zurück, auf die ein Benutzer zugreifen kann.
Ruft eine Seite aller Projekte ab, für die ein Benutzer eine bestimmte Berechtigung hat
GET {userURI}/projects/permission/{permissionIdOrName}/page/{page}[?query]
Parameter | Typ | Erforderlich | Bedeutung |
|---|
permissionIdOrName | Zeichenfolge | Ja | ID oder Name einer Projektberechtigung |
page | Ganzzahl | Ja | Anzahl der zurückzugebenden Ergebnisseiten. Die erste Seite hat die Nummer 1. |
pagesize | Ganzzahl | Nein | Die Seitengröße als Anzahl der Projekte. Der gültige Bereich ist [1 .. 500]. Der Standardwert ist 100. |
deleted | Boolesch | Nein | Wenn "true", werden auch entfernte Projekte angezeigt. Der Standardwert ist "false". |
Gibt die angeforderte Projektseite zurück, für die der Benutzer die angeforderte Berechtigung hat.
Beispiel: Erste Seite von Projekten suchen, bei der /user/bond Projektadministrator ist:
GET https://hostname/cb/rest/user/bond/projects/permission/Project - Admin/page/1
Einer Benutzergruppe eine Projektrolle gewähren
PUT {projectURI}{roleURI}/group/{groupIdOrName}
PUT {projectURI}/group/{groupIdOrName}/{roleURI}
PUT {groupURI}{projectURI}{roleURI}
Der Anfragetext ist optional und kann eine einzelne Kommentarzeichenfolge enthalten. Z.B.:
"Why it was necessary to grant this role to this user group"
Eine Projektrolle von einer Benutzergruppe widerrufen
DELETE {projectURI}{roleURI}/group/{groupIdOrName}
DELETE {projectURI}/group/{groupIdOrName}/{roleURI}
DELETE {groupURI}{projectURI}{roleURI}
Der Anfragetext ist optional und kann eine einzelne Kommentarzeichenfolge enthalten. Z.B.:
"Why it was necessary to revoke this role from this user group"
Mitgliedshistorie einer bestimmten Benutzergruppe in einer bestimmten Projektrolle abrufen
GET {projectURI}{roleURI}/group/{groupIdOrName}/history
GET {projectURI}/group/{groupIdOrName}{roleURI}/history
GET {groupURI}{projectURI}{roleURI}/history
Das Ergebnisschema ist /project/role/history/schema.
Abrufen aller Rollen eines bestimmten Projekts, in dem eine Benutzergruppe derzeit Mitglied ist
GET {projectURI}/group/{groupIdOrName}/roles
GET {groupURI}{projectURI}/roles
Historie aller Projektrollen abrufen, die eine Benutzergruppe in einem bestimmten Projekt hat oder hatte
GET {projectURI}/group/{groupIdOrName}/roles/history
GET {groupURI}{projectURI}/roles/history
Alle Projekte und Rollen abrufen, in denen eine Benutzergruppe derzeit Mitglied ist
GET {groupURI}/projects/roles
Abrufen des Verlaufs aller Projekte und Rollen, in denen eine Benutzergruppe ein direktes Mitglied ist oder war
GET {groupURI}/projects/roles/history
Abrufen aller für eine Benutzergruppe sichtbaren Projekte und der effektiven Projektberechtigungen pro Projekt
GET {groupURI}/projects/permissions
Effiziente Projektberechtigungen einer Benutzergruppe für ein bestimmtes Projekt abrufen
GET {groupURI}{projectURI}/permissions
GET {projectURI}/group/{groupIdOrName}/permissions