XP-Dev.com Documentation

Old Projects API

This user guide only applies if your account and project is on our old platform, i.e. if your project's URL begins with https://xp-dev.com rather than https://<your-account>.xp-dev.com. If your account is on our new platform, you should be using this user guide instead.

Each Project Object has the following attributes:

Attribute Description
name Project long name
id Unique project ID
type Either XPDev, Barebones or Trac
owner Project owner’s username
description Project description
publicProject Whether the project is marked as public
fileAttachmentSize Total size of attachments, or for Trac projects, total size of the Trac project installation
forceSSL Whether all requests should be forced to use SSL
abbreviatedName Unique project abbreviated name, which for Trac projects make part of the project URL. Alphanumeric characters, period and underscore are alloed. No spaces allowed.
bugStates A list of bug states, only used for XPDev projects
trac A Trac Options object
sourceControlIds A list of unique ID for repositories.
repositorySize Size of the repository

A Trac Options object has the following attributes (only applicable to Trac projects):

Attribute Description
created Whether the Trac project has been created
restrictDropDown Whether Trac projects have drop downs restricted to usernames
notificationEnabled Whether email notifications are enabled
timelineMaxDays No. of days to show on the timeline
timelineShowTicketDetails Show comments and other stuff in the timeline
allowTicketDeletion Whether tickets are allowed to be deleted permanently or not

List All Projects

GET request to https://xp-dev.com/api/v1/projects/:

curl https://xp-dev.com/api/v1/projects/

Responses will be a list of Project Objects:

{"response":[
    {
        "name":"first one",
        "id":126,
        "type":"XPDev",
        "owner":"user",
        "description":"chnge me",
        "publicProject":false,
        "fileAttachmentsSize":0.00134181976318359,
        "forceSSL":false,
        "abbreviatedName":"firstone22",
        "bugStates":"New\r\nIn Progress\r\nClosed\r\nReopened",
        "trac":null,
        "sourceControlIds": [150],
        "repositorySize":0.412015914916992
    },
    ...
    {
        "name":"master trac",
        "id":136,
        "type":"Trac",
        "owner":"user",
        "description":"",
        "publicProject":false,
        "fileAttachmentsSize":15.5457563400269,
        "forceSSL":false,
        "abbreviatedName":"mtrac",
        "bugStates":"New\nIn Progress\nClosed\nReopened",
        "trac":{
            "notificationEnabled":false,
            "restrictDropDown":false,
            "timelineShowTicketDetails":false,
            "timelineMaxDays":90,
            "created":true
        },
        "sourceControlIds": [154],
        "repositorySize":0.0
    },
    ...
    {
        "name":"My Barebones Project",
        "id":168,
        "type":"Barebones",
        "owner":"user",
        "description":null,
        "publicProject":false,
        "fileAttachmentsSize":0.0,
        "forceSSL":false,
        "abbreviatedName":"barebones",
        "bugStates":"New\nIn Progress\nClosed\nReopened",
        "trac":null,
        "sourceControlIds": [],
        "repositorySize":0.0
    },
    ...
}

Create a New Project

POST request to https://xp-dev.com/api/v1/projects/ with the following attributes:

Mandatory:

  • name
  • type - either XPDev, Trac or Barebones
  • abbreviatedName
  • publicProject

Optional

  • description

Example request:

curl -X POST -H 'Content-Type: application/json' -d '{"name":"master trac","type":"XPDev","description":"","publicProject":false,"abbreviatedName":"mtractest"}' https://xp-dev.com/api/v1/projects/

Responses will be in the form of a single Project Object

Get a Single Project

GET request to https://xp-dev.com/api/v1/projects/<project-id>. For example:

curl https://xp-dev.com/api/v1/projects/136

Responses will be in the form of a single Project Object

Update a Single Project

PUT request to https://xp-dev.com/api/v1/projects/<project-id> with the following attributes:

Mandatory:

  • name
  • abbreviatedName
  • bugStates
  • publicProject
  • forceSSL

Optional:

  • description
  • trac (Trac Object - if supplied, all Trac Object attributes are required)

Example request:

curl -X PUT -H 'Content-Type: application/json' -d '{"name":"master trac","description":"","publicProject":false,"abbreviatedName":"mtracchange", "bugStates": "New\nAccepted\nClosed"}' https://xp-dev.com/api/v1/projects/136

Responses will be in the form of a single Project Object

Delete a Project

DELETE request to https://xp-dev.com/api/v1/projects/<project-id>:

curl -X DELETE https://xp-dev.com/api/v1/projects/136

Feel free to contact us if you need any assistance.