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 
GET /project/schema
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 
GET {projectURI}
Änderungshistorie der Projektdefinition abrufen 
GET {projectURI}/history
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 
GET /project/role/schema
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 
GET {projectURI}/roles
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
War dies hilfreich?