XP-Dev.com Documentation

Projects API

This user guide only applies if your account and project is on our new platform, i.e. if your project's URL begins with https://<your-account>.xp-dev.com rather than https://xp-dev.com. If your account is on our old 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
description Project description
fileAttachmentSize Total size of attachments, or for Trac projects, total size of the Trac project installation
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

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
incomingEmailEnabled Whether incoming emails are enabled and allowed
alwaysNotifyReporter Always notify the ticket reporter in email notifications
alwaysNotifyOwner Always notify the ticket owner in email notifications
alwaysNotifyUpdater Always notify the ticket updater in email notifications
size This Trac project's size
alwaysCc List of email addressess to CC all email notifications to
alwaysBcc List of email addressess to BCC all email notifications to
subjectPrefix Email notification's subject prefix

List All Projects

GET request to https://<your-account>.xp-dev.com/api/v1/projects:

curl https://<your-account>.xp-dev.com/api/v1/projects

Responses will be a list of Project Objects:

[
    {
        "id": 1,
        "name": "first one",
        "fileAttachmentsSize": 0.10902690887451172,
        "bugStates": "New\nIn Progress\nClosed\nReopened",
        "abbreviatedName": "firstone",
        "description": "first project",
        "type": "XPDev",
        "trac": null
    },
    {
        "id": 2,
        "name": "Trac project",
        "fileAttachmentsSize": 0.0,
        "bugStates": "New\nIn Progress\nClosed\nReopened",
        "abbreviatedName": "trac-project",
        "description": "The trac project",
        "type": "Trac",
        "trac": {
          "created": true,
          "notificationEnabled": false,
          "incomingEmailEnabled": false,
          "timelineMaxDays": 90,
          "allowTicketDeletion": false,
          "alwaysNotifyReporter": false,
          "alwaysNotifyOwner": false,
          "alwaysNotifyUpdater": true,
          "restrictDropDown": false,
          "size": 2.0,
          "alwaysCc": "admin@xp-dev.com",
          "alwaysBcc": null,
          "subjectPrefix": null
        }
    },
    ...
]

Create a New Project

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

Mandatory:

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

Example request:

curl -X POST -H 'Content-Type: application/json' -d '{"name":"master trac","type":"XPDev","description":"a description","abbreviatedName":"mtractest"}' https://<your-account>.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://<your-account>.xp-dev.com/api/v1/projects/<project-id>. For example:

curl https://<your-account>.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://<your-account>.xp-dev.com/api/v1/projects/<project-id> with the following attributes:

Mandatory:

  • name
  • abbreviatedName
  • bugStates
  • description

Optional:

  • 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":"a desc","abbreviatedName":"mtracchange", "bugStates": "New\nAccepted\nClosed"}' https://<your-account>.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://<your-account>.xp-dev.com/api/v1/projects/<project-id>:

curl -X DELETE https://<your-account>.xp-dev.com/api/v1/projects/136

Feel free to contact us if you need any assistance.