Fisheye Crucible REST API

This is the reference section of the Fisheye Crucible common REST API.

For information about Fisheye Crucible Plugin Development, visit the Development Hub.

This documentation was automatically generated from the WADL.

The REST resources decribed on this page produce and consume serialized objects whose structure is described in XML Schema: fecru.xsd.

Paged APIs

FishEye uses paging to conserve server resources and limit response size for resources that return potentially large collections of items. A request to a paged API will result in a values array wrapped in a JSON object with some paging metadata, like this:


                    {
                    "start": 3,
                    "size": 3,
                    "limit": 100,
                    "lastPage": true,
                    "values": [
                        { /* result 0 */ },
                        { /* result 1 */ },
                        { /* result 2 */ }
                    ]
                    }
                

Clients can use the limit and start query parameters to retrieve the desired number of results.

The limit parameter indicates how many results to return per page. Most APIs default to returning 100 if the limit is left unspecified. A resource can have a hard limit. It's always best practice to check the limit attribute on the response to see what limit has been applied. The request to get a page with desired size should look like this:


                    http://host:port/context/rest/api/api-version/path/to/resource?limit={desired size of page}
                

For example:


                    http://fecru.atlassian.com/rest/api/1.0/rest-service-fecru/users?limit=50
                

The start parameter indicates which item should be used as the first item in the page of results. All paged responses contain a lastPage attribute indicating whether another page of items exists. If a paged response has a property lastPage set to false, the next page start should be calculated by adding current page start and size. The request to get a subsequent page should look like this:


                    http://host:port/context/path/to/resource?start={start of last page}+{size of last page}&limit={desired size of page}
                

For example:


                    http://fecru.atlassian.com/rest/api/1.0/rest-service-fecru/users?size=50&limit=50
                

Resources

/rest-service-fecru/admin/users?type=<value>&crucible=<value>

Exposes the user management operations. Admin only.

Methods

GET

This is a paged API.

Retrieve a page of users.

request query parameters
parameter value description

type

string

filter users by authentication type: built-in, LDAP, host, custom, ajp, crowd

crucible

boolean

filter users by crucible flag

available response representations:

  • 200 - application/json (page) [expand]

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 4,
      "values" : [ {
        "name" : "mac",
        "displayName" : "Maciej Swinarski",
        "email" : "mac@atlassian.com",
        "type" : "built-in",
        "crucible" : true,
        "timezone" : "UTC+01:00"
      }, {
        "name" : "cezary",
        "displayName" : "Cezary Zawadka",
        "email" : "cezary@atlassian.com",
        "type" : "crowd",
        "crucible" : true
      }, {
        "name" : "lukas",
        "displayName" : "Lukasz Pater",
        "email" : "lukas@atlassian.com",
        "type" : "LDAP",
        "crucible" : false
      }, {
        "name" : "piotr",
        "displayName" : "Piotr Swiecicki",
        "email" : "piotr@atlassian.com",
        "type" : "crowd",
        "crucible" : true
      } ]
    }

    page of users

POST

Creates a new user.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "newkash",
      "password" : "1234",
      "displayName" : "Lukasz Kuzynski",
      "email" : "newkash@atlassian.com",
      "type" : "built-in",
      "crucible" : true
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "name" : "newkash",
      "displayName" : "Lukasz Kuzynski",
      "email" : "newkash@atlassian.com",
      "type" : "built-in",
      "crucible" : true
    }

    when user successfully created

  • 400 [expand]

    when user with given name already exists

/rest-service-fecru/admin/users/{name}

resource-wide template parameters
parameter value description

name

string

user name

Methods

GET

Retrieve a user by name.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "mac",
      "displayName" : "Maciej Swinarski",
      "email" : "mac@atlassian.com",
      "type" : "built-in",
      "crucible" : true,
      "timezone" : "UTC+01:00"
    }

  • 404 [expand]

    when user with given name doesn't exist

DELETE

Deletes a user by name

available response representations:

  • 204 [expand]

    when user successfully deleted

  • 404 [expand]

    when user with given name doesn't exist

PUT

Updates an existing user.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "password" : "5678",
      "crucible" : false
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "newkash",
      "displayName" : "Lukasz Kuzynski",
      "email" : "newkash@atlassian.com",
      "type" : "built-in",
      "crucible" : false
    }

    when user successfully updated

  • 404 [expand]

    when user with given name doesn't exist

/rest-service-fecru/admin/users/{name}/groups

resource-wide template parameters
parameter value description

name

string

user name

Methods

PUT

Adds user to group

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "team-5"
    }

    group name

available response representations:

  • 204 [expand]

    when user successfully added to group

  • 304 [expand]

    when user is already in group

  • 400 [expand]

    group with given name doesn't exist or it is not a built-in group

  • 404 [expand]

    when user with given name doesn't exist

DELETE

Removes user from group

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "team-5"
    }

    group name

available response representations:

  • 204 [expand]

    when user successfully removed from group

  • 304 [expand]

    when user already not in group

  • 400 [expand]

    group with given name doesn't exist or it is not a built-in group

  • 404 [expand]

    when user with given name doesn't exist

GET

This is a paged API.

Lists user's group names

available response representations:

  • 200 - application/json (page) [expand]

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 4,
      "values" : [ {
        "name" : "team-1"
      }, {
        "name" : "team-2"
      }, {
        "name" : "team-3"
      }, {
        "name" : "team-4"
      } ]
    }

    page of group names

  • 404 [expand]

    when user with given name doesn't exist

/rest-service-fecru/admin/groups?type=<value>&admin=<value>&prefix=<value>

Exposes the groups management operations. Admin only.

Methods

GET

This is a paged API.

Retrieve a page of groups.

request query parameters
parameter value description

type

string

filter groups by authentication type: built-in, LDAP, host, custom, ajp, crowd, ...

admin

boolean

filter groups by admin flag

prefix

string

filter groups by name prefix

available response representations:

  • 200 - application/json (page) [expand]

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 5,
      "values" : [ {
        "name" : "team-1",
        "types" : [ "built-in" ],
        "admin" : false
      }, {
        "name" : "team-2",
        "types" : [ "built-in" ],
        "admin" : false
      }, {
        "name" : "team-3",
        "types" : [ "built-in" ],
        "admin" : true
      }, {
        "name" : "team-4",
        "types" : [ "crowd" ],
        "admin" : false
      }, {
        "name" : "team-5",
        "types" : [ "built-in", "crowd" ],
        "admin" : true
      } ]
    }

    page of groups

POST

Creates a new built-in group.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "team-6",
      "types" : [ "built-in" ],
      "admin" : true
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "name" : "team-6",
      "types" : [ "built-in" ],
      "admin" : true
    }

    when group successfully created

  • 400 [expand]

    when trying to create a non built-in group or when group with given name already exists

/rest-service-fecru/admin/groups/{name}

resource-wide template parameters
parameter value description

name

string

group name

Methods

GET

Retrieve a group by name.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "team-1",
      "types" : [ "built-in" ],
      "admin" : false
    }

  • 404 [expand]

    when group with given name doesn't exist

DELETE

Deletes a group by name

available response representations:

  • 204 [expand]

    when group successfully deleted

  • 404 [expand]

    when built-in group with given name doesn't exist

PUT

Updates an existing group.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "admin" : false
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "admin" : false
    }

    when group successfully updated

  • 404 [expand]

    when group with given name doesn't exist

/rest-service-fecru/admin/groups/{name}/users

resource-wide template parameters
parameter value description

name

string

group name

Methods

GET

This is a paged API.

Lists group's user names

available response representations:

  • 200 - application/json (page) [expand]

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 4,
      "values" : [ {
        "name" : "mac"
      }, {
        "name" : "cezary"
      }, {
        "name" : "lukas"
      }, {
        "name" : "piotr"
      } ]
    }

    page of user names

  • 404 [expand]

    when group with given name doesn't exist

PUT

Adds user to group

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "mac"
    }

    user name

available response representations:

  • 204 [expand]

    when user successfully added to group

  • 304 [expand]

    when user is already in group

  • 400 [expand]

    user with userName doesn't exist or group with name groupName is not a built-in group

  • 404 [expand]

    when group with given name doesn't exist

DELETE

Removes user from group

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "mac"
    }

    user name

available response representations:

  • 204 [expand]

    when user successfully removed from group

  • 304 [expand]

    when user already not in group

  • 400 [expand]

    user with userName doesn't exist or group with name groupName is not a built-in group

  • 404 [expand]

    when group with given name doesn't exist

/rest-service-fecru/server-v1

Provides general information about the server's configuration.

Methods

GET

Provides general information about the server's configuration.

available response representations:

  • 200 - application/xml (serverInfo) [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <serverInfo>
        <timeZone>
            <ID>Europe/Warsaw</ID>
            <rawOffset>3600000</rawOffset>
        </timeZone>
        <appHomeDir>/home/fisheye</appHomeDir>
        <appInstanceDir>/var/fisheye</appInstanceDir>
        <version>
            <releaseNumber>3.4.0</releaseNumber>
            <buildDate>2014-04-14</buildDate>
        </version>
        <isFishEye>true</isFishEye>
        <isCrucible>false</isCrucible>
    </serverInfo>
    

    Information about the server's configuration.

  • 200 - application/json (serverInfo) [expand]

    Example
    {
      "timeZone" : "Europe/Warsaw",
      "appHomeDir" : "/home/fisheye",
      "appInstanceDir" : "/var/fisheye",
      "version" : {
        "releaseNumber" : "3.4.0",
        "buildDate" : "2014-04-14"
      },
      "isFishEye" : true,
      "isCrucible" : false
    }

    Information about the server's configuration.

/rest-service-fecru/indexing-status-v1

Methods

/rest-service-fecru/indexing-status-v1/status/{repoName}

resource-wide template parameters
parameter value description

repoName

string

Methods

GET

available response representations:

/rest-service-fecru/recently-visited-v1

A rest service to get recently visited items for the logged in user.

Methods

GET

Get a list of recently visited items for the currently logged in user.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <reviews>
            <review>
                <entityType>atlassian-review</entityType>
                <entityId>PROJECT-KEY-1</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/cru/PROEJCT-KEY-1</uri>
            </review>
        </reviews>
        <projects>
            <project>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/browse/repo_name</uri>
            </project>
        </projects>
        <snippets>
            <snippet>
                <entityType>atlassian-snippet</entityType>
                <entityId>PROJECT-KEY-2</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/snippet/PROEJCT-KEY-1</uri>
            </snippet>
        </snippets>
        <repositories>
            <repository>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/browse/repo_name</uri>
            </repository>
        </repositories>
        <users>
            <user>
                <entityType>atlassian-user</entityType>
                <entityId>reviewer-1</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/user/reviewer-1</uri>
            </user>
        </users>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing all types of recently visited items. The possible types are: repository, project, user, review, and snippet. If the license is crucible only, then, repository will not have any items. If license is fisheye only, then review and snippets will not have any items.

  • 200 - application/json [expand]

    Example
    {
      "reviews" : {
        "review" : [ {
          "entityType" : "atlassian-review",
          "entityId" : "PROJECT-KEY-1",
          "lastViewed" : 1397483942121,
          "uri" : "/context/cru/PROEJCT-KEY-1"
        } ]
      },
      "projects" : {
        "project" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942121,
          "uri" : "/context/browse/repo_name"
        } ]
      },
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1397483942121,
          "uri" : "/context/snippet/PROEJCT-KEY-1"
        } ]
      },
      "repositories" : {
        "repository" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942121,
          "uri" : "/context/browse/repo_name"
        } ]
      },
      "users" : {
        "user" : [ {
          "entityType" : "atlassian-user",
          "entityId" : "reviewer-1",
          "lastViewed" : 1397483942121,
          "uri" : "/context/user/reviewer-1"
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing all types of recently visited items. The possible types are: repository, project, user, review, and snippet. If the license is crucible only, then, repository will not have any items. If license is fisheye only, then review and snippets will not have any items.

/rest-service-fecru/recently-visited-v1/detailed

Methods

GET

Get a list of recently visisted items for the currently logged in user, including the detailed entities.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <reviews>
            <review>
                <entityType>atlassian-review</entityType>
                <entityId>PROJECT-KEY-1</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/cru/PROEJCT-KEY-1</uri>
                <reviewData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <author>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </author>
                    <closeDate>2014-04-14T15:59:02.118+0200</closeDate>
                    <createDate>2014-04-14T15:59:02.118+0200</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2014-04-14T15:59:02.118+0200</dueDate>
                    <jiraIssueKey>JIRA_1234</jiraIssueKey>
                    <metricsVersion>4</metricsVersion>
                    <moderator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </moderator>
                    <name>Review Title</name>
                    <permaId>
                        <id>PROJECT-KEY-1</id>
                    </permaId>
                    <projectKey>PROJECT-KEY</projectKey>
                    <state>Review</state>
                    <type>REVIEW</type>
                </reviewData>
            </review>
        </reviews>
        <projects>
            <project>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/browse/repo_name</uri>
                <projectData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <allowedReviewers>reviewer-1</allowedReviewers>
                    <allowedReviewers>reviewer-2</allowedReviewers>
                    <allowedReviewers>reviewer-3</allowedReviewers>
                    <defaultDuration>5</defaultDuration>
                    <defaultModerator>default-moderator</defaultModerator>
                    <defaultObjectives>default objectives</defaultObjectives>
                    <defaultRepositoryName>Default_Repository</defaultRepositoryName>
                    <defaultReviewerUsers>reviewer-1</defaultReviewerUsers>
                    <defaultReviewerUsers>reviewer-2</defaultReviewerUsers>
                    <defaultReviewerUsers>reviewer-3</defaultReviewerUsers>
                    <id>1</id>
                    <key>PROJECT-KEY</key>
                    <moderatorEnabled>true</moderatorEnabled>
                    <name>Project Name</name>
                    <permissionSchemeId>1</permissionSchemeId>
                </projectData>
            </project>
        </projects>
        <snippets>
            <snippet>
                <entityType>atlassian-snippet</entityType>
                <entityId>PROJECT-KEY-2</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/snippet/PROEJCT-KEY-1</uri>
                <snippetData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <author>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </author>
                    <closeDate>2014-04-14T15:59:02.118+0200</closeDate>
                    <createDate>2014-04-14T15:59:02.118+0200</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2014-04-14T15:59:02.118+0200</dueDate>
                    <jiraIssueKey>JIRA_1234</jiraIssueKey>
                    <metricsVersion>4</metricsVersion>
                    <moderator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </moderator>
                    <name>Review Title</name>
                    <permaId>
                        <id>PROJECT-KEY-1</id>
                    </permaId>
                    <projectKey>PROJECT-KEY</projectKey>
                    <state>Review</state>
                    <type>SNIPPET</type>
                </snippetData>
            </snippet>
        </snippets>
        <repositories>
            <repository>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/browse/repo_name</uri>
                <repoData repositoryState="RUNNING" name="repository_name" finishedFullSlurp="true" enabled="true"/>
            </repository>
        </repositories>
        <users>
            <user>
                <entityType>atlassian-user</entityType>
                <entityId>reviewer-1</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/user/reviewer-1</uri>
                <userData>
                    <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                    <displayName>reviewer 1</displayName>
                    <userName>reviewer-1</userName>
                </userData>
            </user>
        </users>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing all types of recently visited items. The possible types are: repository, project, user, review, and snippet. If the license is crucible only, then, repository will not have any items. If license is fisheye only, then review and snippets will not have any items.

  • 200 - application/json [expand]

    Example
    {
      "reviews" : {
        "review" : [ {
          "entityType" : "atlassian-review",
          "entityId" : "PROJECT-KEY-1",
          "lastViewed" : 1397483942123,
          "uri" : "/context/cru/PROEJCT-KEY-1",
          "reviewData" : {
            "projectKey" : "PROJECT-KEY",
            "name" : "Review Title",
            "description" : "description",
            "author" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "moderator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "creator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "permaId" : {
              "id" : "PROJECT-KEY-1"
            },
            "state" : "Review",
            "type" : "REVIEW",
            "allowReviewersToJoin" : true,
            "metricsVersion" : 4,
            "createDate" : "2014-04-14T15:59:02.118+0200",
            "closeDate" : "2014-04-14T15:59:02.118+0200",
            "dueDate" : "2014-04-14T15:59:02.118+0200",
            "jiraIssueKey" : "JIRA_1234"
          }
        } ]
      },
      "projects" : {
        "project" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942123,
          "uri" : "/context/browse/repo_name",
          "projectData" : {
            "id" : 1,
            "name" : "Project Name",
            "key" : "PROJECT-KEY",
            "defaultRepositoryName" : "Default_Repository",
            "permissionSchemeId" : 1,
            "allowReviewersToJoin" : true,
            "defaultDuration" : 5,
            "moderatorEnabled" : true,
            "defaultReviewerUsers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ],
            "defaultModerator" : "default-moderator",
            "defaultObjectives" : "default objectives",
            "allowedReviewers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ]
          }
        } ]
      },
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1397483942123,
          "uri" : "/context/snippet/PROEJCT-KEY-1",
          "snippetData" : {
            "projectKey" : "PROJECT-KEY",
            "name" : "Review Title",
            "description" : "description",
            "author" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "moderator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "creator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "permaId" : {
              "id" : "PROJECT-KEY-1"
            },
            "state" : "Review",
            "type" : "SNIPPET",
            "allowReviewersToJoin" : true,
            "metricsVersion" : 4,
            "createDate" : "2014-04-14T15:59:02.118+0200",
            "closeDate" : "2014-04-14T15:59:02.118+0200",
            "dueDate" : "2014-04-14T15:59:02.118+0200",
            "jiraIssueKey" : "JIRA_1234"
          }
        } ]
      },
      "repositories" : {
        "repository" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942123,
          "uri" : "/context/browse/repo_name",
          "repoData" : {
            "name" : "repository_name",
            "enabled" : true,
            "finishedFullSlurp" : true,
            "repositoryState" : "RUNNING"
          }
        } ]
      },
      "users" : {
        "user" : [ {
          "entityType" : "atlassian-user",
          "entityId" : "reviewer-1",
          "lastViewed" : 1397483942123,
          "uri" : "/context/user/reviewer-1",
          "userData" : {
            "userName" : "reviewer-1",
            "displayName" : "reviewer 1",
            "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
          }
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing all types of recently visited items. The possible types are: repository, project, user, review, and snippet. If the license is crucible only, then, repository will not have any items. If license is fisheye only, then review and snippets will not have any items.

/rest-service-fecru/recently-visited-v1/repositories

Methods

GET

Get a list of recently visited repositories for the currently logged in user.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <repositories>
            <repository>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/browse/repo_name</uri>
            </repository>
        </repositories>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link RepositoryRecentlyVisitedItemData} of the repositories recently visited by the logged in user. This does not contain the detailed entity.

  • 200 - application/json [expand]

    Example
    {
      "repositories" : {
        "repository" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942121,
          "uri" : "/context/browse/repo_name"
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link RepositoryRecentlyVisitedItemData} of the repositories recently visited by the logged in user. This does not contain the detailed entity.

/rest-service-fecru/recently-visited-v1/repositories/detailed

Methods

GET

Get a list of recently visisted repositories for the currently logged in user, including the detailed entities.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <repositories>
            <repository>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/browse/repo_name</uri>
                <repoData repositoryState="RUNNING" name="repository_name" finishedFullSlurp="true" enabled="true"/>
            </repository>
        </repositories>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link RepositoryRecentlyVisitedItemData} of the repositories recently visited by the logged in user, and also the detailed entity {@link com.atlassian.fisheye.spi.data.RepositoryDataFE}.

  • 200 - application/json [expand]

    Example
    {
      "repositories" : {
        "repository" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942123,
          "uri" : "/context/browse/repo_name",
          "repoData" : {
            "name" : "repository_name",
            "enabled" : true,
            "finishedFullSlurp" : true,
            "repositoryState" : "RUNNING"
          }
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link RepositoryRecentlyVisitedItemData} of the repositories recently visited by the logged in user, and also the detailed entity {@link com.atlassian.fisheye.spi.data.RepositoryDataFE}.

/rest-service-fecru/recently-visited-v1/users

Methods

GET

Get a list of recently visited users for the currently logged in user.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <users>
            <user>
                <entityType>atlassian-user</entityType>
                <entityId>reviewer-1</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/user/reviewer-1</uri>
            </user>
        </users>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link UserRecentlyVisitedItemData} of the users recently visited by the logged in user. This does not contain the detailed entity of the user.

  • 200 - application/json [expand]

    Example
    {
      "users" : {
        "user" : [ {
          "entityType" : "atlassian-user",
          "entityId" : "reviewer-1",
          "lastViewed" : 1397483942121,
          "uri" : "/context/user/reviewer-1"
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link UserRecentlyVisitedItemData} of the users recently visited by the logged in user. This does not contain the detailed entity of the user.

/rest-service-fecru/recently-visited-v1/users/detailed

Methods

GET

Get a list of recently visited users for the currently logged in user, including the detailed entities.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <users>
            <user>
                <entityType>atlassian-user</entityType>
                <entityId>reviewer-1</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/user/reviewer-1</uri>
                <userData>
                    <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                    <displayName>reviewer 1</displayName>
                    <userName>reviewer-1</userName>
                </userData>
            </user>
        </users>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link UserRecentlyVisitedItemData} of the users recently visited by the logged in user, and also the detailed entity {@link com.atlassian.crucible.spi.data.UserData}.

  • 200 - application/json [expand]

    Example
    {
      "users" : {
        "user" : [ {
          "entityType" : "atlassian-user",
          "entityId" : "reviewer-1",
          "lastViewed" : 1397483942123,
          "uri" : "/context/user/reviewer-1",
          "userData" : {
            "userName" : "reviewer-1",
            "displayName" : "reviewer 1",
            "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
          }
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link UserRecentlyVisitedItemData} of the users recently visited by the logged in user, and also the detailed entity {@link com.atlassian.crucible.spi.data.UserData}.

/rest-service-fecru/recently-visited-v1/projects

Methods

GET

Get a list of recently visited projects for the currently logged in user.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <projects>
            <project>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/browse/repo_name</uri>
            </project>
        </projects>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link ProjectRecentlyVisitedItemData} of the projects recently visited by the logged in user. This does not contain the detailed entity of the project.

  • 200 - application/json [expand]

    Example
    {
      "projects" : {
        "project" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942121,
          "uri" : "/context/browse/repo_name"
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link ProjectRecentlyVisitedItemData} of the projects recently visited by the logged in user. This does not contain the detailed entity of the project.

/rest-service-fecru/recently-visited-v1/projects/detailed

Methods

GET

Get a list of recently visited projects for the currently logged in Project, including the detailed entities.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <projects>
            <project>
                <entityType>atlassian-repository</entityType>
                <entityId>repo_name</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/browse/repo_name</uri>
                <projectData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <allowedReviewers>reviewer-1</allowedReviewers>
                    <allowedReviewers>reviewer-2</allowedReviewers>
                    <allowedReviewers>reviewer-3</allowedReviewers>
                    <defaultDuration>5</defaultDuration>
                    <defaultModerator>default-moderator</defaultModerator>
                    <defaultObjectives>default objectives</defaultObjectives>
                    <defaultRepositoryName>Default_Repository</defaultRepositoryName>
                    <defaultReviewerUsers>reviewer-1</defaultReviewerUsers>
                    <defaultReviewerUsers>reviewer-2</defaultReviewerUsers>
                    <defaultReviewerUsers>reviewer-3</defaultReviewerUsers>
                    <id>1</id>
                    <key>PROJECT-KEY</key>
                    <moderatorEnabled>true</moderatorEnabled>
                    <name>Project Name</name>
                    <permissionSchemeId>1</permissionSchemeId>
                </projectData>
            </project>
        </projects>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link ProjectRecentlyVisitedItemData} of the projects recently visited by the logged in Project, and also the detailed entity {@link com.atlassian.crucible.spi.data.ProjectData}.

  • 200 - application/json [expand]

    Example
    {
      "projects" : {
        "project" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repo_name",
          "lastViewed" : 1397483942123,
          "uri" : "/context/browse/repo_name",
          "projectData" : {
            "id" : 1,
            "name" : "Project Name",
            "key" : "PROJECT-KEY",
            "defaultRepositoryName" : "Default_Repository",
            "permissionSchemeId" : 1,
            "allowReviewersToJoin" : true,
            "defaultDuration" : 5,
            "moderatorEnabled" : true,
            "defaultReviewerUsers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ],
            "defaultModerator" : "default-moderator",
            "defaultObjectives" : "default objectives",
            "allowedReviewers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ]
          }
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link ProjectRecentlyVisitedItemData} of the projects recently visited by the logged in Project, and also the detailed entity {@link com.atlassian.crucible.spi.data.ProjectData}.

/rest-service-fecru/recently-visited-v1/reviews

Methods

GET

Get a list of recently visited reviews for the currently logged in user.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <reviews>
            <review>
                <entityType>atlassian-review</entityType>
                <entityId>PROJECT-KEY-1</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/cru/PROEJCT-KEY-1</uri>
            </review>
        </reviews>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link ReviewRecentlyVisitedItemData} of the reviews recently visited by the logged in user. This does not contain the detailed entity of the review.

  • 200 - application/json [expand]

    Example
    {
      "reviews" : {
        "review" : [ {
          "entityType" : "atlassian-review",
          "entityId" : "PROJECT-KEY-1",
          "lastViewed" : 1397483942121,
          "uri" : "/context/cru/PROEJCT-KEY-1"
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link ReviewRecentlyVisitedItemData} of the reviews recently visited by the logged in user. This does not contain the detailed entity of the review.

/rest-service-fecru/recently-visited-v1/reviews/detailed

Methods

GET

Get a list of recently visited reviews for the currently logged in user, including the detailed entities.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <reviews>
            <review>
                <entityType>atlassian-review</entityType>
                <entityId>PROJECT-KEY-1</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/cru/PROEJCT-KEY-1</uri>
                <reviewData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <author>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </author>
                    <closeDate>2014-04-14T15:59:02.118+0200</closeDate>
                    <createDate>2014-04-14T15:59:02.118+0200</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2014-04-14T15:59:02.118+0200</dueDate>
                    <jiraIssueKey>JIRA_1234</jiraIssueKey>
                    <metricsVersion>4</metricsVersion>
                    <moderator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </moderator>
                    <name>Review Title</name>
                    <permaId>
                        <id>PROJECT-KEY-1</id>
                    </permaId>
                    <projectKey>PROJECT-KEY</projectKey>
                    <state>Review</state>
                    <type>REVIEW</type>
                </reviewData>
            </review>
        </reviews>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link ReviewRecentlyVisitedItemData} of the reviews recently visited by the logged in user, and also the detailed entity {@link com.atlassian.crucible.spi.data.ReviewData}.

  • 200 - application/json [expand]

    Example
    {
      "reviews" : {
        "review" : [ {
          "entityType" : "atlassian-review",
          "entityId" : "PROJECT-KEY-1",
          "lastViewed" : 1397483942123,
          "uri" : "/context/cru/PROEJCT-KEY-1",
          "reviewData" : {
            "projectKey" : "PROJECT-KEY",
            "name" : "Review Title",
            "description" : "description",
            "author" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "moderator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "creator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "permaId" : {
              "id" : "PROJECT-KEY-1"
            },
            "state" : "Review",
            "type" : "REVIEW",
            "allowReviewersToJoin" : true,
            "metricsVersion" : 4,
            "createDate" : "2014-04-14T15:59:02.118+0200",
            "closeDate" : "2014-04-14T15:59:02.118+0200",
            "dueDate" : "2014-04-14T15:59:02.118+0200",
            "jiraIssueKey" : "JIRA_1234"
          }
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link ReviewRecentlyVisitedItemData} of the reviews recently visited by the logged in user, and also the detailed entity {@link com.atlassian.crucible.spi.data.ReviewData}.

/rest-service-fecru/recently-visited-v1/snippets

Methods

GET

Get a list of recently visited snippets for the currently logged in user.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <snippets>
            <snippet>
                <entityType>atlassian-snippet</entityType>
                <entityId>PROJECT-KEY-2</entityId>
                <lastViewed>1397483942121</lastViewed>
                <uri>/context/snippet/PROEJCT-KEY-1</uri>
            </snippet>
        </snippets>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link SnippetRecentlyVisitedItemData} of the snippets recently visited by the logged in user. This does not contain the detailed entity of the snippet.

  • 200 - application/json [expand]

    Example
    {
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1397483942121,
          "uri" : "/context/snippet/PROEJCT-KEY-1"
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link SnippetRecentlyVisitedItemData} of the snippets recently visited by the logged in user. This does not contain the detailed entity of the snippet.

/rest-service-fecru/recently-visited-v1/snippets/detailed

Methods

GET

Get a list of recently visited snippets for the currently logged in user, including the detailed entities.

available response representations:

  • 200 - application/xml [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <recentlyVisitedItems>
        <snippets>
            <snippet>
                <entityType>atlassian-snippet</entityType>
                <entityId>PROJECT-KEY-2</entityId>
                <lastViewed>1397483942123</lastViewed>
                <uri>/context/snippet/PROEJCT-KEY-1</uri>
                <snippetData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <author>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </author>
                    <closeDate>2014-04-14T15:59:02.118+0200</closeDate>
                    <createDate>2014-04-14T15:59:02.118+0200</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2014-04-14T15:59:02.118+0200</dueDate>
                    <jiraIssueKey>JIRA_1234</jiraIssueKey>
                    <metricsVersion>4</metricsVersion>
                    <moderator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </moderator>
                    <name>Review Title</name>
                    <permaId>
                        <id>PROJECT-KEY-1</id>
                    </permaId>
                    <projectKey>PROJECT-KEY</projectKey>
                    <state>Review</state>
                    <type>SNIPPET</type>
                </snippetData>
            </snippet>
        </snippets>
    </recentlyVisitedItems>
    

    A {@link RecentlyVisitedItems}, containing a list of {@link SnippetRecentlyVisitedItemData} of the snippets recently visited by the logged in user, and also the detailed entity {@link com.atlassian.crucible.spi.data.ReviewData}.

  • 200 - application/json [expand]

    Example
    {
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1397483942123,
          "uri" : "/context/snippet/PROEJCT-KEY-1",
          "snippetData" : {
            "projectKey" : "PROJECT-KEY",
            "name" : "Review Title",
            "description" : "description",
            "author" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "moderator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "creator" : {
              "userName" : "reviewer-1",
              "displayName" : "reviewer 1",
              "avatarUrl" : "http://localhost:8080/context/avatar/reviewer-1"
            },
            "permaId" : {
              "id" : "PROJECT-KEY-1"
            },
            "state" : "Review",
            "type" : "SNIPPET",
            "allowReviewersToJoin" : true,
            "metricsVersion" : 4,
            "createDate" : "2014-04-14T15:59:02.118+0200",
            "closeDate" : "2014-04-14T15:59:02.118+0200",
            "dueDate" : "2014-04-14T15:59:02.118+0200",
            "jiraIssueKey" : "JIRA_1234"
          }
        } ]
      }
    }

    A {@link RecentlyVisitedItems}, containing a list of {@link SnippetRecentlyVisitedItemData} of the snippets recently visited by the logged in user, and also the detailed entity {@link com.atlassian.crucible.spi.data.ReviewData}.

/rest-service-fecru/share-content-v1

Methods

/rest-service-fecru/share-content-v1/share

Methods

POST

acceptable request representations:

  • application/xml (shareContentRequest) [expand]

    Example
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <shareContentRequest>
        <url>http://server/changelog/myRepo?cs=abc123</url>
        <note>The message from the user</note>
        <entity1>myRepo</entity1>
        <entity2>abc123</entity2>
        <type>changeset</type>
        <users>user1, user2</users>
        <emails>email1@company.com</emails>
        <emails>email1@company.com</emails>
    </shareContentRequest>
    

  • application/json (shareContentRequest) [expand]

    Example
    {
      "url" : "http://server/changelog/myRepo?cs=abc123",
      "note" : "The message from the user",
      "entity1" : "myRepo",
      "entity2" : "abc123",
      "type" : "changeset",
      "users" : [ "user1, user2" ],
      "emails" : [ "email1@company.com", "email1@company.com" ]
    }

available response representations:

/rest-service-fecru/admin/repositories-v1

Exposes the repository maintenance operations.

Methods

POST

Adds repository

Basic repository data:

  • type - SUBVERSION, PERFORCE, GIT, HG, CVS
  • name - repository name
  • url - svn url, perforce host, git/hg location, cvs dir
  • path - svn/perforce/git/hg path [optional]
  • description - repository description [optional]
  • username - svn/perforce username [optional]
  • password - svn/perforce/git/hg password [optional]

acceptable request representations:

  • application/json (basicRepositoryData) [expand]

    Example
    {
      "type" : "SUBVERSION",
      "name" : "repository_name",
      "url" : "svn://svn_host/repository_name",
      "path" : "repository_path",
      "description" : "repository description",
      "username" : "repository_username",
      "password" : "repository_password"
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    when repository created

  • 409 [expand]

    when repository name is already used

  • 500 [expand]

    when repository couldn't be created

/rest-service-fecru/admin/repositories-v1/{repo}

resource-wide template parameters
parameter value description

repo

string

the name of the repository

Methods

GET

Returns information about the status of the repository and the current indexing status

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

/rest-service-fecru/admin/repositories-v1/{repo}/scan?synchronous=<value>

resource-wide template parameters
parameter value description

repo

string

the repository to run for

Methods

POST

Runs an incremental repository index now. This is the same operation as triggered by scheduled indexing. Can be called using the REST Api Token to authorize.

request query parameters
parameter value description

synchronous

boolean

Default: false

if true will wait for the indexing to finish before returning

available response representations:

  • 200 [expand]

    when the request is successful

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories-v1/{repo}/start

resource-wide template parameters
parameter value description

repo

string

the repository to start

Methods

POST

Starts the repository.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is not stopped

  • 500 [expand]

    when the repository couldn't be started because of a configuration issue

/rest-service-fecru/admin/repositories-v1/{repo}/enable

resource-wide template parameters
parameter value description

repo

string

the repository to enable

Methods

POST

Enables repository.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    when repository enabled

  • 409 [expand]

    when repository is already enabled

  • 500 [expand]

    when enabling could not be persisted

/rest-service-fecru/admin/repositories-v1/{repo}/disable

resource-wide template parameters
parameter value description

repo

string

the repository to disable

Methods

POST

Disables repository.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    when repository disabled

  • 409 [expand]

    when repository is disabled or not stopped

  • 500 [expand]

    when disabling could not be persisted

/rest-service-fecru/admin/repositories-v1/{repo}

resource-wide template parameters
parameter value description

repo

string

the repository to delete

Methods

DELETE

Deletes repository. Warning: you can not undo this operation

available response representations:

  • 200 [expand]

    when repository deleted

  • 409 [expand]

    when repository is enabled but not stopped

  • 500 [expand]

    when there was a problem deleting the repository

/rest-service-fecru/admin/repositories-v1/{repo}/stop

resource-wide template parameters
parameter value description

repo

string

the repository to stop

Methods

POST

Stops the repository. Does not wait for the repository to stop before returning.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is not running

/rest-service-fecru/admin/repositories-v1/{repo}/reindex-source?clone=<value>

resource-wide template parameters
parameter value description

repo

string

the repository to reindex

Methods

POST

Deletes the existing cache and re-indexes the repository from scratch. For large or slow repositories this may take some time, during which some functionality will be unavailable. This action will also restart the repository.

request query parameters
parameter value description

clone

boolean

Default: false

if true and the repository is a dvcs repository (git or mercurial) it will re-clone the repository before re-indexing

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories-v1/{repo}/reindex-reviews?synchronous=<value>

resource-wide template parameters
parameter value description

repo

string

the repository to reindex

Methods

POST

Re-indexes all the Crucible revision data (which revisions have been reviewed)

request query parameters
parameter value description

synchronous

boolean

Default: false

if true will wait for the indexing to finish before returning

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories-v1/{repo}/reindex-linecount

resource-wide template parameters
parameter value description

repo

string

the repository to re-index

Methods

POST

Re-indexes the linecount data used to generate the LOC graphs. The linecount data will be recalculated in daily buckets based on the server timezone.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories-v1/{repo}/reindex-search

resource-wide template parameters
parameter value description

repo

string

the repository to re-index.

Methods

POST

Rebuilds the search index data for the given repository. This will rebuild the data used to search by path, commit message and comitter, also used for activity streams and JIRA integration.

Note that the reindex process might take some time, and that search data will only be partially available during the process.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories-v1/{repo}/reindex-discussions

resource-wide template parameters
parameter value description

repo

string

the repository to perform the operation for

Methods

POST

Rebuilds the changeset discussion index for the specified repository. The index is used to display changeset discussions in activity streams.

Not all changeset discussions will be listed in the activity stream until re-indexing is complete

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories-v1/{repo}/scan-cvs

resource-wide template parameters
parameter value description

repo

string

the repository to scan

Methods

POST

Scans the whole CVS repository for any changes since the last scan. Only valid for CVS repositories.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, not running or not a cvs repository

/rest-service-fecru/admin/repositories-v1/{repo}/rescan-metadata?from=<value>&to=<value>

resource-wide template parameters
parameter value description

repo

string

the repository to re-scan

Methods

POST

Re-scans the repository metadata for SVN and Perforce repositories. Only valid for Perforce and SVN repositories.

  • For Perforce: re-scans changelist metadata (author, date, commit message) and any job fixes associated with changelists in the the given changelist range.
  • For SVN: re-scan the non-versioned properties of the repository (revprops).

request query parameters
parameter value description

from

long

the revision number to start at

to

long

the revision number to end at

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 400 [expand]

    when missing required parameters

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, not running or not a valid repository type

/rest-service-fecru/user-prefs-v1

Methods

POST

Using POST method to set a user preference. If repo is not set, the preference will be recognised as a global preference.

acceptable request representations:

available response representations:

/rest-service-fecru/user-prefs-v1/{property}

resource-wide template parameters
parameter value description

property

string

the property(preference) name

Methods

GET

Getting user's global preference

available response representations:

/rest-service-fecru/user-prefs-v1/{repo}/{property}

resource-wide template parameters
parameter value description

repo

string

the repository name

property

string

the property(preference) name

Methods

GET

Getting user's preference related to a certain repository

available response representations:

/rest-service-fecru/admin/repositories?type=<value>&enabled=<value>&started=<value>

Exposes the repository management operations.

Methods

GET

This is a paged API.

Retrieve a page of repositories.

request query parameters
parameter value description

type

string

filter repositories by repository type: svn, git, hg, cvs, p4, ...

enabled

boolean

filter repositories by enabled flag

started

boolean

filter repositories by started flag

available response representations:

  • 200 - application/json (page) [expand]

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 3,
      "values" : [ {
        "name" : "myGitRepo",
        "description" : "My Git repo",
        "storeDiff" : true,
        "enabled" : true
      }, {
        "name" : "mySvnRepo",
        "description" : "My SVN repo",
        "storeDiff" : true,
        "enabled" : false
      }, {
        "name" : "myHgRepo",
        "description" : "My HG repo",
        "storeDiff" : true,
        "enabled" : false
      } ]
    }

    page of repositories

POST

Creates a repository.

acceptable request representations:

  • application/json [expand]

    Examples
    {
      "type" : "svn",
      "name" : "mySvnRepo",
      "description" : "My SVN repo",
      "storeDiff" : true,
      "enabled" : true,
      "svn" : {
        "url" : "svn://svn.mycompany.com/myrepo",
        "path" : "/amazingapp",
        "auth" : {
          "username" : "copernicus",
          "password" : "sun123"
        },
        "blockSize" : 400,
        "commandTimeout" : "1 hour",
        "connectionsPerSecond" : 1.0,
        "charset" : "UTF-8",
        "accessCode" : "allow",
        "startRevision" : 10000,
        "initialImport" : "notags",
        "followBase" : true,
        "usingBuiltinSymbolicRules" : false,
        "trunks" : [ {
          "regex" : "trunk(/|$)",
          "name" : "trunk"
        }, {
          "regex" : "core/trunk(/|$)",
          "name" : "trunk",
          "logicalPathPrefix" : "core"
        } ],
        "branches" : [ {
          "regex" : "branches/([^/]+)",
          "name" : "${1}"
        }, {
          "regex" : "core/branches/([^/]+)",
          "name" : "core-${1}",
          "logicalPathPrefix" : "core"
        } ],
        "tags" : [ {
          "regex" : "(tags|releases)/([^/]+)",
          "name" : "${2}"
        }, {
          "regex" : "core/tags/([^/]+)",
          "name" : "core-${1}",
          "logicalPathPrefix" : "core"
        } ]
      }
    }
    {
      "type" : "git",
      "name" : "myGitRepo",
      "description" : "My GIT repo",
      "storeDiff" : true,
      "enabled" : true,
      "git" : {
        "location" : "git@bitbucket.org:atlassian/fecru-rest-examples.git",
        "auth" : {
          "authType" : "key-generate"
        },
        "blockSize" : 400,
        "commandTimeout" : "1 hour",
        "renameDetection" : "NONE"
      }
    }
    {
      "type" : "git",
      "name" : "myGitRepo",
      "description" : "My GIT repo",
      "storeDiff" : true,
      "enabled" : true,
      "git" : {
        "location" : "git@bitbucket.org:atlassian/fecru-rest-examples.git",
        "auth" : {
          "authType" : "password",
          "password" : "1234"
        },
        "blockSize" : 400,
        "commandTimeout" : "1 hour",
        "renameDetection" : "NONE"
      }
    }
    {
      "type" : "hg",
      "name" : "myHgRepo",
      "description" : "My Mercurial repo",
      "storeDiff" : true,
      "enabled" : true,
      "hg" : {
        "location" : "ssh://hg@bitbucket.org/mycompany/revolutionaryapp",
        "auth" : {
          "authType" : "key",
          "privateKey" : "[private-key]",
          "publicKey" : "[public-key]"
        },
        "blockSize" : 400,
        "commandTimeout" : "1 hour"
      }
    }
    {
      "type" : "cvs",
      "name" : "myCvsRepo",
      "description" : "My CVS repo",
      "storeDiff" : true,
      "enabled" : true,
      "cvs" : {
        "dir" : "/usr/local/cvsroot",
        "charset" : "UTF-8"
      }
    }
    {
      "type" : "p4",
      "name" : "myP4Repo",
      "description" : "My Perforce repo",
      "storeDiff" : true,
      "enabled" : true,
      "p4" : {
        "host" : "perforce.mycompany.com",
        "path" : "//depot/",
        "port" : 8080,
        "auth" : {
          "username" : "archimedes",
          "password" : "water"
        },
        "blockSize" : 400,
        "filelogLimit" : 1000,
        "commandTimeout" : "1 hour",
        "connectionsPerSecond" : 1.0,
        "charset" : "UTF-8",
        "unicodeServer" : true,
        "skipLabels" : false,
        "caseSensitive" : false,
        "disableMultiplePrint" : true,
        "startRevision" : 10000,
        "initialImport" : true
      }
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "type" : "svn",
      "name" : "mySvnRepo",
      "description" : "My SVN repo",
      "storeDiff" : true,
      "enabled" : true,
      "svn" : {
        "url" : "svn://svn.mycompany.com/myrepo",
        "path" : "/amazingapp",
        "auth" : {
          "username" : "copernicus"
        },
        "blockSize" : 400,
        "commandTimeout" : "1 hour",
        "connectionsPerSecond" : 1.0,
        "charset" : "UTF-8",
        "accessCode" : "allow",
        "startRevision" : 10000,
        "initialImport" : "notags",
        "followBase" : true,
        "usingBuiltinSymbolicRules" : false,
        "trunks" : [ {
          "regex" : "trunk(/|$)",
          "name" : "trunk"
        }, {
          "regex" : "core/trunk(/|$)",
          "name" : "trunk",
          "logicalPathPrefix" : "core"
        } ],
        "branches" : [ {
          "regex" : "branches/([^/]+)",
          "name" : "${1}"
        }, {
          "regex" : "core/branches/([^/]+)",
          "name" : "core-${1}",
          "logicalPathPrefix" : "core"
        } ],
        "tags" : [ {
          "regex" : "(tags|releases)/([^/]+)",
          "name" : "${2}"
        }, {
          "regex" : "core/tags/([^/]+)",
          "name" : "core-${1}",
          "logicalPathPrefix" : "core"
        } ]
      }
    }

    when repository successfully created

  • 400 [expand]

    when repository with given name already exists or name contains invalid characters

/rest-service-fecru/admin/repositories/{name}

resource-wide template parameters
parameter value description

name

string

repository name

Methods

GET

Retrieve a repository by name.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "myGitRepo",
      "description" : "My Git repo",
      "storeDiff" : true,
      "enabled" : true
    }

  • 404 [expand]

    when repository with given name doesn't exist

DELETE

Deletes a repository by name

available response representations:

  • 204 [expand]

    when repository successfully deleted

  • 404 [expand]

    when repository with given name doesn't exist

PUT

Updates an existing repository.

acceptable request representations:

  • application/json [expand]

    Examples
    {
      "description" : "My old SVN repo",
      "enabled" : false,
      "svn" : {
        "path" : "/amazingapp_old"
      }
    }
    {
      "storeDiff" : false,
      "git" : {
        "location" : "git@bitbucket.org:atlassian/fecru-rest-examples.git",
        "commandTimeout" : "30 minute"
      }
    }
    {
      "enabled" : false,
      "hg" : {
        "location" : "ssh://hg@bitbucket.org/mycompany/justapp"
      }
    }
    {
      "enabled" : true,
      "cvs" : {
        "dir" : "/usr/local/cvs"
      }
    }
    {
      "p4" : {
        "port" : 9090,
        "auth" : {
          "username" : "newton",
          "password" : "apple"
        },
        "caseSensitive" : true
      }
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "description" : "My old SVN repo",
      "enabled" : false,
      "svn" : {
        "path" : "/amazingapp_old"
      }
    }

    when repository successfully updated

  • 404 [expand]

    when repository with given name doesn't exist

/rest-service-fecru/admin/repositories/{name}/start

resource-wide template parameters
parameter value description

name

string

repository name

Methods

PUT

Starts repository. Does not wait for the repository to start before returning.

available response representations:

  • 202 [expand]

    when repository start request was successfully accepted

  • 404 [expand]

    when repository doesn't exist

/rest-service-fecru/admin/repositories/{name}/stop

resource-wide template parameters
parameter value description

name

string

repository name

Methods

PUT

Stops repository. Does not wait for the repository to stop before returning.

available response representations:

  • 202 [expand]

    when repository stop request was successfully accepted

  • 404 [expand]

    when repository doesn't exist

/rest-service-fecru/admin/repositories/{name}/reindex-source?clone=<value>

resource-wide template parameters
parameter value description

name

string

the repository to reindex

Methods

PUT

Deletes the existing cache and re-indexes the repository from scratch. For large or slow repositories this may take some time, during which some functionality will be unavailable. This action will also restart the repository.

request query parameters
parameter value description

clone

boolean

Default: false

if true and the repository is a dvcs repository (git or mercurial) it will re-clone the repository before re-indexing

available response representations:

  • 202 [expand]

    when reindex-source request was successfully accepted

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories/{name}/reindex-linecount

resource-wide template parameters
parameter value description

name

string

the repository to re-index

Methods

PUT

Re-indexes the linecount data used to generate the LOC graphs. The linecount data will be recalculated in daily buckets based on the server timezone.

available response representations:

  • 202 [expand]

    when reindex-linecount request was successfully accepted

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories/{name}/rescan-metadata?from=<value>&to=<value>

resource-wide template parameters
parameter value description

name

string

the repository to re-scan

Methods

PUT

Re-scans the repository metadata. Only valid for Perforce and SVN repositories.

  • For Perforce: re-scans changelist metadata (author, date, commit message) and any job fixes associated with changelists in the the given changelist range.
  • For SVN: re-scan the non-versioned properties of the repository (revprops).

request query parameters
parameter value description

from

string

the revision number to start at

to

string

the revision number to end at

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "repo1",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "message" : "Pre-calculating line count data: deleting old data",
        "linesOfContentIndexingInProgress" : true,
        "crossRepositoryRescanInProgress" : false,
        "error" : false,
        "fullIndexingInProgress" : false,
        "initialScanningComplete" : false,
        "lastScanTime" : 1350474087616,
        "incrementalIndexingInProgress" : false,
        "fullRepositorySlurpDone" : false,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        }
      }
    }

    information about a repository state

  • 400 [expand]

    when missing required parameters

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, not running or not a valid repository type

/rest-service-fecru/admin/repositories/{name}/incremental-index?wait=<value>

resource-wide template parameters
parameter value description

name

string

repository name

Methods

PUT

Runs an incremental repository index. This is the same operation as triggered by scheduled indexing. Can be called using the REST API Token to authorize.

request query parameters
parameter value description

wait

boolean

Default: false

if true will wait for the indexing to finish before returning

available response representations:

  • 202 [expand]

    when incremental-index request was successfully accepted (wait==false)

  • 204 [expand]

    when incremental-index was successfully done (wait==true)

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories/{name}/full-incremental-index

resource-wide template parameters
parameter value description

name

string

the repository to scan

Methods

PUT

Runs an full incremental repository index. For CVS: scans the whole CVS repository for any changes since the last scan. For other repository types will trigger an incremental index.

available response representations:

  • 202 [expand]

    when full-incremental-index request was successfully accepted

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, not running

/rest-service-fecru/admin/repositories/{name}/reindex-reviews

resource-wide template parameters
parameter value description

name

string

the repository to reindex

Methods

PUT

Re-indexes all the Crucible revision data (which revisions have been reviewed)

available response representations:

  • 202 [expand]

    when reindex-reviews request was successfully accepted

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories/{name}/reindex-search

resource-wide template parameters
parameter value description

name

string

the repository to re-index.

Methods

PUT

Rebuilds the search index data for the given repository. This will rebuild the data used to search by path, commit message and committer, also used for activity streams and JIRA integration.

Note that the reindex process might take some time, and that search data will only be partially available during the process.

available response representations:

  • 202 [expand]

    when reindex-search request was successfully accepted

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

/rest-service-fecru/admin/repositories/{name}/reindex-changeset-discussion

resource-wide template parameters
parameter value description

name

string

the repository to perform the operation for

Methods

PUT

Rebuilds the changeset discussion index for the specified repository. The index is used to display changeset discussions in activity streams.

Not all changeset discussions will be listed in the activity stream until re-indexing is complete

available response representations:

  • 202 [expand]

    when reindex-search request was successfully accepted

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running