Project

General

Profile

Rest Projects » History » Revision 39

Revision 38 (Mischa The Evil, 2022-07-27 03:34) → Revision 39/40 (Rashmi Isamaliya, 2023-10-23 07:17)

h1. Projects 

 {{>toc}} 

 h2. Listing projects 

   GET /projects.json /projects.xml 

 Returns all projects (all public projects and private projects where user have access to) 

 +Parameters+: 

 * @include@: fetch associated data (optional). Values should be separated by a comma ",". Possible values: 
 ** @trackers@ 
 ** @issue_categories@ 
 ** @enabled_modules@ (since 2.6.0) 
 ** @time_entry_activities@ (since 3.4.0) 
 ** @issue_custom_fields@ (since 4.2.0) 

 +Response+: 

 <pre><code class="xml"> 
 <projects type="array"> 
   <project> 
     <id>1</id> 
     <name>Redmine</name> 
     <identifier>redmine</identifier> 
     <description> 
       Redmine is a flexible project management web application written using Ruby on Rails framework. 
     </description> 
     <created_on>Sat Sep 29 12:03:04 +0200 2007</created_on> 
     <updated_on>Sun Mar 15 12:35:11 +0100 2009</updated_on> 
     <is_public>true</is_public> 
   </project> 
   <project> 
     <id>2</id> 
     ... 
   </project> 
 </code></pre> 

 +Notes+: 
 * @is_public@ is exposed since 2.6.0 

 h2. Showing a project 

   GET /projects/[id].xml 

 Returns the project of given id or identifier. 

 +Parameters+: 

 * @include@: fetch associated data (optional). Values should be separated by a comma ",". Possible values: 
 ** @trackers@ 
 ** @issue_categories@ 
 ** @enabled_modules@ (since 2.6.0) 
 ** @time_entry_activities@ (since 3.4.0) 
 ** @issue_custom_fields@ (since 4.2.0) 

 +Examples+: 

 <pre> 
 GET /projects/12.xml 
 GET /projects/12.xml?include=trackers 
 GET /projects/12.xml?include=trackers,issue_categories 
 GET /projects/12.xml?include=enabled_modules 
 GET /projects/redmine.xml 
 </pre> 

 +Response+: 

 <pre><code class="xml"> 
 <?xml version="1.0" encoding="UTF-8"?> 
 <project id="1"> 
   <name>Redmine</name> 
   <identifier>redmine</identifier> 
   <description> 
     Redmine is a flexible project management web application written using Ruby on Rails framework. 
   </description> 
   <homepage></homepage> 
   <status>1</status> 
   <parent id="123" name="foo"/> 
   <default_version id="3" name="2.0"/> 
   <default_assignee id="2" name="John Smith"/> 
   <created_on>Sat Sep 29 12:03:04 +0200 2007</created_on> 
   <updated_on>Sun Mar 15 12:35:11 +0100 2009</updated_on> 
   <is_public>true</is_public> 
 </project> 
 </code></pre> 

 +Notes+: 
 * @is_public@ is exposed since 2.6.0 

 h2. Creating a project 

   POST /projects.xml 

 Creates a the project. 

 +Parameters+: 

 * @project@ (required): a hash of the project attributes, including: 

   * @name@ (required): the project name 
   * @identifier@ (required): the project identifier 
   * @description@ 
   * @homepage@ 
   * @is_public@: true or false 
   * @parent_id@: the parent project number 
   * @inherit_members@: true or false 
   * @default_assigned_to_id@: ID of the default user. It works only when the new project is a subproject and it inherits the members.  
   * @default_version_id@: ID of the default version. It works only with existing shared versions. 
   * @tracker_ids@: (repeatable element) the tracker id: 1 for Bug, etc. 
   * @enabled_module_names@: (repeatable element) the module name: boards, calendar, documents, files, gantt, issue_tracking, news, repository, time_tracking, wiki. 
   * @issue_custom_field_ids@: (repeatable element) issue custom field id. 
   * @custom_field_values@: array with @id => value@ pairs 

 <pre> 
 POST /projects.xml 
 </pre> 

 <pre><code class="xml"> 
 <project> 
   <name>test project</name> 
   <identifier>test</identifier> 
   <enabled_module_names>time_tracking</enabled_module_names> 
   <enabled_module_names>issue_tracking</enabled_module_names> 
 </project> 
 </code></pre> 

 <pre> 
 POST /projects.json 
 </pre> 

 <pre><code class="json"> 
 { 
    "project":{ 
       "name":"Example name", 
       "identifier":"example_name", 
       "description":"Description of exapmple project", 
       "is_public":false, 
       "parent_id":1, 
       "inherit_members":false, 
       "tracker_ids":[ 
          1, 
          2, 
          3, 
          4, 
          5 
       ], 
       "enabled_module_names":[ 
          "issue_tracking" 
       ], 
       "custom_field_values":{ 
          "1":"VALUE" 
       } 
    } 
 } 
 </code></pre> 

 +Response+: 

   * @201 Created@: project was created 
   * @422 Unprocessable Entity@: project was not created due to validation failures (response body contains the error messages) 

 h2. Updating a project 

   PUT /projects/[id].xml 

 Updates the project of given id or identifier. 

 h2. Archiving a project 

   PUT /projects/[id]/archive.xml 

 Archives the project of given id or identifier. Available since Redmine 5.0. 

 h2. Unarchiving a project 

   PUT /projects/[id]/unarchive.xml 

 Unrchives the project of given id or identifier. Available since Redmine 5.0. 

 h2. Deleting a project 

   DELETE /projects/[id].xml 

 Deletes the project of given id or identifier. 

 h2. Limitations: 

 A POST request on Redmine 1.0.1-2 (Debian stable) does not work using the API key, but does work with a login/passwd authentication 
 #12104