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.

Some endpoints (with no -v1 suffix) produce and consume payload in JSON format only.

REST Client Examples

Please have a look at python examples that demonstrate the capabilities of Fisheye & Crucible REST API: bitbucket.org/atlassian/fecru-rest-examples/src

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/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>1532599610105</lastViewed>
                <uri>/context/cru/PROEJCT-KEY-1</uri>
            </review>
        </reviews>
        <projects>
            <project>
                <entityType>atlassian-repository</entityType>
                <entityId>repository_key</entityId>
                <lastViewed>1532599610105</lastViewed>
                <uri>/context/browse/repository_key</uri>
            </project>
        </projects>
        <snippets>
            <snippet>
                <entityType>atlassian-snippet</entityType>
                <entityId>PROJECT-KEY-2</entityId>
                <lastViewed>1532599610105</lastViewed>
                <uri>/context/snippet/PROEJCT-KEY-1</uri>
            </snippet>
        </snippets>
        <repositories>
            <repository>
                <entityType>atlassian-repository</entityType>
                <entityId>repository_key</entityId>
                <lastViewed>1532599610105</lastViewed>
                <uri>/context/browse/repository_key</uri>
            </repository>
        </repositories>
        <users>
            <user>
                <entityType>atlassian-user</entityType>
                <entityId>reviewer-1</entityId>
                <lastViewed>1532599610105</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" : 1532599610105,
          "uri" : "/context/cru/PROEJCT-KEY-1"
        } ]
      },
      "projects" : {
        "project" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repository_key",
          "lastViewed" : 1532599610105,
          "uri" : "/context/browse/repository_key"
        } ]
      },
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1532599610105,
          "uri" : "/context/snippet/PROEJCT-KEY-1"
        } ]
      },
      "repositories" : {
        "repository" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repository_key",
          "lastViewed" : 1532599610105,
          "uri" : "/context/browse/repository_key"
        } ]
      },
      "users" : {
        "user" : [ {
          "entityType" : "atlassian-user",
          "entityId" : "reviewer-1",
          "lastViewed" : 1532599610105,
          "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>1532599610107</lastViewed>
                <uri>/context/cru/PROJECT-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>2018-07-26T10:06:50.102+0000</closeDate>
                    <createDate>2018-07-26T10:06:50.102+0000</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2018-07-26T10:06:50.102+0000</dueDate>
                    <jiraIssueKey>ABC-123</jiraIssueKey>
                    <linkedIssues>DEF-456</linkedIssues>
                    <linkedIssues>ABC-123</linkedIssues>
                    <linkedIssues>GHI-789</linkedIssues>
                    <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>repository_key</entityId>
                <lastViewed>1532599610107</lastViewed>
                <uri>/context/browse/repository_key</uri>
                <projectData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <allowedReviewerGroups>team-1</allowedReviewerGroups>
                    <allowedReviewerGroups>team-2</allowedReviewerGroups>
                    <allowedReviewerUsers>reviewer-1</allowedReviewerUsers>
                    <allowedReviewerUsers>reviewer-2</allowedReviewerUsers>
                    <allowedReviewerUsers>reviewer-3</allowedReviewerUsers>
                    <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>
                    <storeRevisions>false</storeRevisions>
                </projectData>
            </project>
        </projects>
        <snippets>
            <snippet>
                <entityType>atlassian-snippet</entityType>
                <entityId>PROJECT-KEY-2</entityId>
                <lastViewed>1532599610107</lastViewed>
                <uri>/context/snippet/PROJECT-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>2018-07-26T10:06:50.102+0000</closeDate>
                    <createDate>2018-07-26T10:06:50.102+0000</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2018-07-26T10:06:50.102+0000</dueDate>
                    <jiraIssueKey>ABC-123</jiraIssueKey>
                    <linkedIssues>DEF-456</linkedIssues>
                    <linkedIssues>ABC-123</linkedIssues>
                    <linkedIssues>GHI-789</linkedIssues>
                    <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>repository_key</entityId>
                <lastViewed>1532599610107</lastViewed>
                <uri>/context/browse/repository_key</uri>
                <repoData repositoryState="RUNNING" name="repository_key" finishedFullSlurp="true" enabled="true" displayName="repository_display_name"/>
            </repository>
        </repositories>
        <users>
            <user>
                <entityType>atlassian-user</entityType>
                <entityId>reviewer-1</entityId>
                <lastViewed>1532599610107</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" : 1532599610107,
          "uri" : "/context/cru/PROJECT-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" : "2018-07-26T10:06:50.102+0000",
            "closeDate" : "2018-07-26T10:06:50.102+0000",
            "dueDate" : "2018-07-26T10:06:50.102+0000",
            "linkedIssues" : [ "DEF-456", "ABC-123", "GHI-789" ],
            "jiraIssueKey" : "ABC-123"
          }
        } ]
      },
      "projects" : {
        "project" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repository_key",
          "lastViewed" : 1532599610107,
          "uri" : "/context/browse/repository_key",
          "projectData" : {
            "id" : 1,
            "name" : "Project Name",
            "key" : "PROJECT-KEY",
            "defaultRepositoryName" : "Default_Repository",
            "permissionSchemeId" : 1,
            "allowReviewersToJoin" : true,
            "storeRevisions" : false,
            "defaultDuration" : 5,
            "moderatorEnabled" : true,
            "defaultReviewerUsers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ],
            "defaultModerator" : "default-moderator",
            "defaultObjectives" : "default objectives",
            "allowedReviewerUsers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ],
            "allowedReviewerGroups" : [ "team-1", "team-2" ],
            "allowedReviewers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ]
          }
        } ]
      },
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1532599610107,
          "uri" : "/context/snippet/PROJECT-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" : "2018-07-26T10:06:50.102+0000",
            "closeDate" : "2018-07-26T10:06:50.102+0000",
            "dueDate" : "2018-07-26T10:06:50.102+0000",
            "linkedIssues" : [ "DEF-456", "ABC-123", "GHI-789" ],
            "jiraIssueKey" : "ABC-123"
          }
        } ]
      },
      "repositories" : {
        "repository" : [ {
          "entityType" : "atlassian-repository",
          "entityId" : "repository_key",
          "lastViewed" : 1532599610107,
          "uri" : "/context/browse/repository_key",
          "repoData" : {
            "name" : "repository_key",
            "displayName" : "repository_display_name",
            "enabled" : true,
            "finishedFullSlurp" : true,
            "repositoryState" : "RUNNING"
          }
        } ]
      },
      "users" : {
        "user" : [ {
          "entityType" : "atlassian-user",
          "entityId" : "reviewer-1",
          "lastViewed" : 1532599610107,
          "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>repository_key</entityId>
                <lastViewed>1532599610105</lastViewed>
                <uri>/context/browse/repository_key</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" : "repository_key",
          "lastViewed" : 1532599610105,
          "uri" : "/context/browse/repository_key"
        } ]
      }
    }

    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 visited 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>repository_key</entityId>
                <lastViewed>1532599610107</lastViewed>
                <uri>/context/browse/repository_key</uri>
                <repoData repositoryState="RUNNING" name="repository_key" finishedFullSlurp="true" enabled="true" displayName="repository_display_name"/>
            </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" : "repository_key",
          "lastViewed" : 1532599610107,
          "uri" : "/context/browse/repository_key",
          "repoData" : {
            "name" : "repository_key",
            "displayName" : "repository_display_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>1532599610105</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" : 1532599610105,
          "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>1532599610107</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" : 1532599610107,
          "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>repository_key</entityId>
                <lastViewed>1532599610105</lastViewed>
                <uri>/context/browse/repository_key</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" : "repository_key",
          "lastViewed" : 1532599610105,
          "uri" : "/context/browse/repository_key"
        } ]
      }
    }

    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>repository_key</entityId>
                <lastViewed>1532599610107</lastViewed>
                <uri>/context/browse/repository_key</uri>
                <projectData>
                    <allowReviewersToJoin>true</allowReviewersToJoin>
                    <allowedReviewerGroups>team-1</allowedReviewerGroups>
                    <allowedReviewerGroups>team-2</allowedReviewerGroups>
                    <allowedReviewerUsers>reviewer-1</allowedReviewerUsers>
                    <allowedReviewerUsers>reviewer-2</allowedReviewerUsers>
                    <allowedReviewerUsers>reviewer-3</allowedReviewerUsers>
                    <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>
                    <storeRevisions>false</storeRevisions>
                </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" : "repository_key",
          "lastViewed" : 1532599610107,
          "uri" : "/context/browse/repository_key",
          "projectData" : {
            "id" : 1,
            "name" : "Project Name",
            "key" : "PROJECT-KEY",
            "defaultRepositoryName" : "Default_Repository",
            "permissionSchemeId" : 1,
            "allowReviewersToJoin" : true,
            "storeRevisions" : false,
            "defaultDuration" : 5,
            "moderatorEnabled" : true,
            "defaultReviewerUsers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ],
            "defaultModerator" : "default-moderator",
            "defaultObjectives" : "default objectives",
            "allowedReviewerUsers" : [ "reviewer-1", "reviewer-2", "reviewer-3" ],
            "allowedReviewerGroups" : [ "team-1", "team-2" ],
            "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>1532599610105</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" : 1532599610105,
          "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>1532599610107</lastViewed>
                <uri>/context/cru/PROJECT-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>2018-07-26T10:06:50.102+0000</closeDate>
                    <createDate>2018-07-26T10:06:50.102+0000</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2018-07-26T10:06:50.102+0000</dueDate>
                    <jiraIssueKey>ABC-123</jiraIssueKey>
                    <linkedIssues>DEF-456</linkedIssues>
                    <linkedIssues>ABC-123</linkedIssues>
                    <linkedIssues>GHI-789</linkedIssues>
                    <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 ReviewData}.

  • 200 - application/json [expand]

    Example
    {
      "reviews" : {
        "review" : [ {
          "entityType" : "atlassian-review",
          "entityId" : "PROJECT-KEY-1",
          "lastViewed" : 1532599610107,
          "uri" : "/context/cru/PROJECT-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" : "2018-07-26T10:06:50.102+0000",
            "closeDate" : "2018-07-26T10:06:50.102+0000",
            "dueDate" : "2018-07-26T10:06:50.102+0000",
            "linkedIssues" : [ "DEF-456", "ABC-123", "GHI-789" ],
            "jiraIssueKey" : "ABC-123"
          }
        } ]
      }
    }

    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 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>1532599610105</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" : 1532599610105,
          "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>1532599610107</lastViewed>
                <uri>/context/snippet/PROJECT-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>2018-07-26T10:06:50.102+0000</closeDate>
                    <createDate>2018-07-26T10:06:50.102+0000</createDate>
                    <creator>
                        <avatarUrl>http://localhost:8080/context/avatar/reviewer-1</avatarUrl>
                        <displayName>reviewer 1</displayName>
                        <userName>reviewer-1</userName>
                    </creator>
                    <description>description</description>
                    <dueDate>2018-07-26T10:06:50.102+0000</dueDate>
                    <jiraIssueKey>ABC-123</jiraIssueKey>
                    <linkedIssues>DEF-456</linkedIssues>
                    <linkedIssues>ABC-123</linkedIssues>
                    <linkedIssues>GHI-789</linkedIssues>
                    <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 ReviewData}.

  • 200 - application/json [expand]

    Example
    {
      "snippets" : {
        "snippet" : [ {
          "entityType" : "atlassian-snippet",
          "entityId" : "PROJECT-KEY-2",
          "lastViewed" : 1532599610107,
          "uri" : "/context/snippet/PROJECT-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" : "2018-07-26T10:06:50.102+0000",
            "closeDate" : "2018-07-26T10:06:50.102+0000",
            "dueDate" : "2018-07-26T10:06:50.102+0000",
            "linkedIssues" : [ "DEF-456", "ABC-123", "GHI-789" ],
            "jiraIssueKey" : "ABC-123"
          }
        } ]
      }
    }

    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 ReviewData}.

/rest-service-fecru/admin/users

Exposes the user management operations. Admin only.

Methods

POST

Creates a new user. Tries to add the user to fisheye-users and crucible-users groups if those exist.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "newkash",
      "password" : "1234",
      "displayName" : "Lukasz Kuzynski"
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "name" : "newkash",
      "displayName" : "Lukasz Kuzynski",
      "email" : "newkash@atlassian.com"
    }

    when user successfully created

  • 400 [expand]

    when user with given name already exists

GET

This is a paged API.

Retrieve a page of users.

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"
      }, {
        "name" : "cezary",
        "displayName" : "Cezary Zawadka"
      }, {
        "name" : "lukas",
        "displayName" : "Lukasz Pater"
      }, {
        "name" : "piotr",
        "displayName" : "Piotr Swiecicki"
      } ]
    }

    page of users

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

resource-wide template parameters
parameter value description

name

string

user name

Methods

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

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

  • 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

  • 404 [expand]

    when user with given name doesn't exist

/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"
    }

  • 404 [expand]

    when user with given name doesn't exist

PUT

Updates an existing user.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "password" : "5678"
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "newkash",
      "displayName" : "Lukasz Kuzynski",
      "email" : "newkash@atlassian.com"
    }

    when user successfully updated

  • 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

/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>UTC</ID>
            <rawOffset>0</rawOffset>
        </timeZone>
        <appHomeDir>/home/fisheye</appHomeDir>
        <appInstanceDir>/var/fisheye</appInstanceDir>
        <version>
            <releaseNumber>4.6.0</releaseNumber>
            <buildDate>2018-07-26</buildDate>
        </version>
        <isFishEye>true</isFishEye>
        <isCrucible>false</isCrucible>
    </serverInfo>
    

    Information about the server's configuration.

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

    Example
    {
      "timeZone" : "UTC",
      "appHomeDir" : "/home/fisheye",
      "appInstanceDir" : "/var/fisheye",
      "version" : {
        "releaseNumber" : "4.6.0",
        "buildDate" : "2018-07-26"
      },
      "isFishEye" : true,
      "isCrucible" : false
    }

    Information about the server's configuration.

/rest-service-fecru/admin/projects

Exposes the projects management operations.

Methods

POST

Creates a new project.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "key" : "CR-FE",
      "name" : "Fisheye and Crucible",
      "defaultRepositoryName" : "fe-hg",
      "storeFileContentInReview" : true,
      "permissionSchemeName" : "agile",
      "moderatorEnabled" : true,
      "defaultModerator" : "matt",
      "allowReviewersToJoin" : true,
      "defaultDurationInWeekDays" : 5,
      "defaultObjectives" : "Please make sure feature branch builds are green."
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "key" : "CR-FE",
      "name" : "Fisheye and Crucible",
      "defaultRepositoryName" : "fe-hg",
      "storeFileContentInReview" : true,
      "permissionSchemeName" : "agile",
      "moderatorEnabled" : true,
      "defaultModerator" : "matt",
      "allowReviewersToJoin" : true,
      "defaultDurationInWeekDays" : 5,
      "defaultObjectives" : "Please make sure feature branch builds are green."
    }

    when project successfully created

  • 400 [expand]

    when trying to create a project with illegal arguments (existing key, invalid key format, ...)

GET

This is a paged API.

Retrieve a page of projects.

request query parameters
parameter value description

name

string

project's name part filter, optional

key

string

project's key part filter, optional

defaultRepositoryName

string

project's default repository key part filter, optional

permissionSchemeName

string

project's permission scheme pare name filter, optional

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 3,
      "values" : [ {
        "key" : "CR-FE",
        "name" : "Fisheye and Crucible",
        "defaultRepositoryName" : "fe-hg",
        "storeFileContentInReview" : true,
        "permissionSchemeName" : "agile",
        "moderatorEnabled" : true,
        "defaultModerator" : "matt",
        "allowReviewersToJoin" : true,
        "defaultDurationInWeekDays" : 5,
        "defaultObjectives" : "Please make sure feature branch builds are green."
      }, {
        "key" : "CR-FE",
        "name" : "Fisheye and Crucible",
        "defaultRepositoryName" : "fe-hg",
        "storeFileContentInReview" : true,
        "permissionSchemeName" : "agile",
        "moderatorEnabled" : true,
        "defaultModerator" : "matt",
        "allowReviewersToJoin" : true,
        "defaultDurationInWeekDays" : 5,
        "defaultObjectives" : "Please make sure feature branch builds are green."
      }, {
        "key" : "CR-FE",
        "name" : "Fisheye and Crucible",
        "defaultRepositoryName" : "fe-hg",
        "storeFileContentInReview" : true,
        "permissionSchemeName" : "agile",
        "moderatorEnabled" : true,
        "defaultModerator" : "matt",
        "allowReviewersToJoin" : true,
        "defaultDurationInWeekDays" : 5,
        "defaultObjectives" : "Please make sure feature branch builds are green."
      } ]
    }

    page of projects

/rest-service-fecru/admin/projects/{sourceProjectKey}/move-reviews/{destinationProjectKey}

resource-wide template parameters
parameter value description

sourceProjectKey

string

project key of reviews and snippets source project

destinationProjectKey

string

project key of reviews and snippets destination project

Methods

PUT

Move reviews and snippets from source project to destination project

available response representations:

  • 204 [expand]

    when reviews successfully moved from project with sourceProjectKey to project with destinationProjectKey

  • 400 [expand]

    when attempting to move reviews and snippets within same project, i.e. sourceProjectKey equals destinationProjectKey

/rest-service-fecru/admin/projects/{key}/default-reviewer-users

resource-wide template parameters
parameter value description

key

string

project key

Methods

GET

This is a paged API.

Retrieves project's default reviewer users

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 4,
      "values" : [ {
        "name" : "tom"
      }, {
        "name" : "piotr"
      }, {
        "name" : "liang"
      }, {
        "name" : "sten"
      } ]
    }

PUT

Add user to project's default reviewer users list

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "matt"
    }

available response representations:

  • 204 [expand]

    when user successfully added

  • 304 [expand]

    when user already in list

DELETE

Remove user from project's default reviewer users list

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "matt"
    }

available response representations:

  • 204 [expand]

    when user successfully deleted

  • 304 [expand]

    when user not in list

/rest-service-fecru/admin/projects/{key}/default-reviewer-groups

resource-wide template parameters
parameter value description

key

string

project key

Methods

GET

This is a paged API.

Retrieves project's default reviewer groups

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"
      } ]
    }

PUT

Add group to project's default reviewer group list

acceptable request representations:

  • application/json [expand]

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

available response representations:

  • 204 [expand]

    when group successfully added

  • 304 [expand]

    when group already in list

DELETE

Delete group from project's default reviewer group list

acceptable request representations:

  • application/json [expand]

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

available response representations:

  • 204 [expand]

    when group successfully deleted

  • 304 [expand]

    when group not in list

/rest-service-fecru/admin/projects/{key}/allowed-reviewer-users

resource-wide template parameters
parameter value description

key

string

project key

Methods

GET

This is a paged API.

Retrieves project's allowed reviewer users

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 4,
      "values" : [ {
        "name" : "tom"
      }, {
        "name" : "piotr"
      }, {
        "name" : "liang"
      }, {
        "name" : "sten"
      } ]
    }

PUT

Add user to project's allowed reviewer users list

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "matt"
    }

available response representations:

  • 204 [expand]

    when user successfully added

  • 304 [expand]

    when user already in list

DELETE

Remove user from project's allowed reviewer users list

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "matt"
    }

available response representations:

  • 204 [expand]

    when user successfully deleted

  • 304 [expand]

    when user not in list

/rest-service-fecru/admin/projects/{key}/allowed-reviewer-groups

resource-wide template parameters
parameter value description

key

string

project key

Methods

GET

This is a paged API.

Retrieves project's allowed reviewer groups

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"
      } ]
    }

PUT

Add group to project's allowed reviewer group list

acceptable request representations:

  • application/json [expand]

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

available response representations:

  • 204 [expand]

    when group successfully added

  • 304 [expand]

    when group already in list

DELETE

Delete group from project's allowed reviewer group list

acceptable request representations:

  • application/json [expand]

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

available response representations:

  • 204 [expand]

    when group successfully deleted

  • 304 [expand]

    when group not in list

/rest-service-fecru/admin/projects/{key}

resource-wide template parameters
parameter value description

key

string

project key

Methods

GET

Retrieve a project by key.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "key" : "CR-FE",
      "name" : "Fisheye and Crucible",
      "defaultRepositoryName" : "fe-hg",
      "storeFileContentInReview" : true,
      "permissionSchemeName" : "agile",
      "moderatorEnabled" : true,
      "defaultModerator" : "matt",
      "allowReviewersToJoin" : true,
      "defaultDurationInWeekDays" : 5,
      "defaultObjectives" : "Please make sure feature branch builds are green."
    }

  • 404 [expand]

    when project with given key doesn't exist

PUT

Updates an existing project.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "key" : "CR-FE-NEW",
      "name" : "Fisheye and Crucible New"
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "key" : "CR-FE-NEW",
      "name" : "Fisheye and Crucible New",
      "defaultRepositoryName" : "fe-hg",
      "storeFileContentInReview" : true,
      "permissionSchemeName" : "agile",
      "moderatorEnabled" : true,
      "defaultModerator" : "matt",
      "allowReviewersToJoin" : true,
      "defaultDurationInWeekDays" : 5,
      "defaultObjectives" : "Please make sure feature branch builds are green."
    }

    when project successfully updated

  • 404 [expand]

    when project with given name doesn't exist

DELETE

Deletes a project by key (including all reviews in this project). Use PUT /rest-service-fecru/admin/projects/[sourceProjectKey]/move-reviews/[destinationProjectKey] to move reviews to another project.

request query parameters
parameter value description

deleteProjectReviews

boolean

Default: false

if true deletes reviews in project

available response representations:

  • 204 [expand]

    when project successfully deleted

  • 404 [expand]

    when project with given key doesn't exist

/rest-service-fecru/admin/repositories

Exposes the repository management operations.

Methods

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",
        "path" : "/",
        "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" : "-----BEGIN RSA PRIVATE KEY-----\\nMIIJKAIBAAKCAgEAueNTcS/qm5ALaE2f5e5mCmbnlWy3AexwJZ/QNkFSiD4NeAN8\\n....\\n-----END RSA PRIVATE KEY-----\\n",
          "publicKey" : "ssh-rsa AAAAB3N.... public-key-name"
        },
        "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 key already exists or key contains invalid characters

GET

This is a paged API.

Retrieve a page of repositories. Repository properties with default values may not be returned.

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" : 5,
      "values" : [ {
        "type" : "git",
        "name" : "myGitRepo",
        "description" : "My GIT repo",
        "storeDiff" : true,
        "enabled" : true,
        "git" : {
          "location" : "git@bitbucket.org:atlassian/fecru-rest-examples.git",
          "path" : "/",
          "auth" : {
            "authType" : "key-generate"
          },
          "blockSize" : 400,
          "commandTimeout" : "1 hour",
          "renameDetection" : "NONE"
        }
      }, {
        "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" : "hg",
        "name" : "myHgRepo",
        "description" : "My Mercurial repo",
        "storeDiff" : true,
        "enabled" : true,
        "hg" : {
          "location" : "ssh://hg@bitbucket.org/mycompany/revolutionaryapp",
          "auth" : {
            "authType" : "key",
            "privateKey" : "-----BEGIN RSA PRIVATE KEY-----\\nMIIJKAIBAAKCAgEAueNTcS/qm5ALaE2f5e5mCmbnlWy3AexwJZ/QNkFSiD4NeAN8\\n....\\n-----END RSA PRIVATE KEY-----\\n",
            "publicKey" : "ssh-rsa AAAAB3N.... public-key-name"
          },
          "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
        }
      } ]
    }

    page of repositories

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

resource-wide template parameters
parameter value description

repository

string

the key of 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/{repository}/reindex-linecount

resource-wide template parameters
parameter value description

repository

string

the key of 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/{repository}/reindex-source?clone=<value>

resource-wide template parameters
parameter value description

repository

string

the key of 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/{repository}/permissions/groups

resource-wide template parameters
parameter value description

repository

string

the key of the repository

Methods

GET

This is a paged API.

Note: use /rest-service-fecru/admin/repository-permissions/ endpoint for full repository permission administration functionality Lists groups allowed to access repository.

Note: This returns the list of groups that were specifically added for this repo (i.e. will not return all groups when allowAnonymous=true or allowLoggedIn=true, like the UI currently does).

Note: This list will be cleared when useDefaults, allowAnonymous or allowLoggedIn changes value to true.

Note: Permissions/groups are disabled when useDefaults, allowAnonymous or allowLoggedIn are equals true. To get/modify repository allowed groups useDefaults, allowAnonymous and allowLoggedIn must be set to false.

available response representations:

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

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

    page of group names

  • 400 [expand]

    when useDefaults, allowAnonymous or allowLoggedIn equals true

  • 404 [expand]

    when repository with given key doesn't exist

PUT

Note: use /rest-service-fecru/admin/repository-permissions/ endpoint for full repository permission administration functionality Adds group to repository allowed groups

acceptable request representations:

  • application/json [expand]

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

    group name

available response representations:

  • 204 [expand]

    when group successfully added

  • 304 [expand]

    when group is already in list

  • 400 [expand]

    group with groupName doesn't exist or when useDefaults equals true

  • 404 [expand]

    when repository with given key doesn't exist

DELETE

Delete group from repository allowed groups

acceptable request representations:

  • application/json [expand]

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

    group name

available response representations:

  • 204 [expand]

    when group successfully removed

  • 304 [expand]

    when group not in list

  • 400 [expand]

    group with groupName doesn't exist or when useDefaults equals true

  • 404 [expand]

    when repository with given key doesn't exist

/rest-service-fecru/admin/repositories/{repository}/updates

resource-wide template parameters
parameter value description

repository

string

repository key

Methods

GET

Retrieves repository updates properties.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "useDefaults" : false,
      "pollingInterval" : "20s"
    }

  • 404 [expand]

    when repository with given key doesn't exist

PUT

Update repository updates properties.

To disable polling set the value of "pollingInterval" to "never".

acceptable request representations:

  • application/json [expand]

    Examples
    {
      "useDefaults" : false,
      "pollingInterval" : "20s"
    }
    {
      "useDefaults" : true
    }
    {
      "useDefaults" : false,
      "pollingInterval" : "never"
    }
    {
      "useDefaults" : false,
      "pollingInterval" : "20s",
      "cvs" : {
        "fullScanInterval" : "10m",
        "historyFile" : "../../CVSROOT/history",
        "stripPrefix" : "foo/bar"
      }
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "useDefaults" : false,
      "pollingInterval" : "20s"
    }

    when repository updates properties successfully updated

  • 400 [expand]

    when updates settings are invalid or not all updates properties in update are set

  • 404 [expand]

    when repository with given key doesn't exist

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

resource-wide template parameters
parameter value description

repository

string

the key of 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

resource-wide template parameters
parameter value description

repository

string

the key of 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/{repository}/reindex-changeset-discussion

resource-wide template parameters
parameter value description

repository

string

the key of 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

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

resource-wide template parameters
parameter value description

repository

string

the key of 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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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/~defaults/permissions

Methods

GET

Retrieve default repository permissions properties.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "useDefaults" : false,
      "allowAnonymous" : false,
      "allowLoggedIn" : true
    }

PUT

Updates default repository permissions properties. Valid permission settings: any combination of allowAnonymous, allowLoggedIn

acceptable request representations:

available response representations:

/rest-service-fecru/admin/repositories/{repository}/permissions

resource-wide template parameters
parameter value description

repository

string

the key of the repository

Methods

PUT

Updates repository permissions properties. Valid permission settings: any combination of useDefaults, allowAnonymous, allowLoggedIn.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "useDefaults" : false,
      "allowAnonymous" : false,
      "allowLoggedIn" : true
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "useDefaults" : false,
      "allowAnonymous" : false,
      "allowLoggedIn" : true
    }

    when repository permissions properties successfully updated

  • 400 [expand]

    when permissions settings are invalid or not all permission properties in update are set

  • 404 [expand]

    when repository with given key doesn't exist

GET

Retrieve repository permissions properties.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "useDefaults" : false,
      "allowAnonymous" : false,
      "allowLoggedIn" : true
    }

  • 404 [expand]

    when repository with given key doesn't exist

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

resource-wide template parameters
parameter value description

repository

string

the key of the repository to stop

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/{repository}

resource-wide template parameters
parameter value description

repository

string

the key of the repository

Methods

GET

Retrieve a repository by key. Repository properties with default values may not be returned.

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "type" : "git",
      "name" : "myGitRepo",
      "description" : "My GIT repo",
      "storeDiff" : true,
      "enabled" : true,
      "git" : {
        "location" : "git@bitbucket.org:atlassian/fecru-rest-examples.git",
        "path" : "/",
        "auth" : {
          "authType" : "key-generate"
        },
        "blockSize" : 400,
        "commandTimeout" : "1 hour",
        "renameDetection" : "NONE"
      }
    }

  • 404 [expand]

    when repository with given key 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 key doesn't exist

DELETE

Deletes a repository by key

available response representations:

  • 204 [expand]

    when repository successfully deleted

  • 404 [expand]

    when repository with given key doesn't exist

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

resource-wide template parameters
parameter value description

repository

string

the key of the repository to start

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/{repository}/stop

resource-wide template parameters
parameter value description

repository

string

the key of the repository to stop

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/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/{repository}/{property}

resource-wide template parameters
parameter value description

property

string

the property(preference) name

repository

string

the key of the repository

Methods

GET

Getting user's preference related to a certain repository

available response representations:

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

Exposes the repository maintenance operations.

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use POST /rest-service-fecru/admin/repositories instead.

Adds repository

Basic repository data:

  • type - SUBVERSION, PERFORCE, GIT, HG, CVS
  • name - an immutable repository key used internally, e.g. in URLs, REST API, FishEye data directory
  • displayName - a mutable repository name used in UI
  • 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_key",
      "displayName" : "repository_display_name",
      "url" : "svn://svn_host/repository_url",
      "path" : "repository_path",
      "description" : "repository description",
      "username" : "repository_username",
      "password" : "repository_password"
    }

available response representations:

  • 200 - application/json [expand]

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

    when repository created

  • 409 [expand]

    when repository name or displayName are already used

  • 500 [expand]

    when repository couldn't be created

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

resource-wide template parameters
parameter value description

repository

string

the key of the repository to run scan for

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/incremental-index instead.

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/{repository}

resource-wide template parameters
parameter value description

repository

string

the key 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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

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

resource-wide template parameters
parameter value description

repository

string

the key of the repository to stop

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/stop instead.

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

available response representations:

  • 200 - application/json [expand]

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

    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/{repository}/reindex-reviews?synchronous=<value>

resource-wide template parameters
parameter value description

repository

string

the key of the repository to reindex

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/reindex-reviews instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    information about a repository state

  • 404 [expand]

    when the repository doesn't exist

  • 409 [expand]

    when the repository is disabled, or not running

resource-wide template parameters
parameter value description

repository

string

the key of the repository to re-index.

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/reindex-search instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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/{repository}/reindex-discussions

resource-wide template parameters
parameter value description

repository

string

the key of the repository to perform the operation for

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/reindex-changeset-discussion instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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/{repository}/scan-cvs

resource-wide template parameters
parameter value description

repository

string

the key of the repository to scan

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/full-incremental-index instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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/{repository}/reindex-linecount

resource-wide template parameters
parameter value description

repository

string

the key of the repository to re-index

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/reindex-linecount instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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/{repository}/reindex-source?clone=<value>

resource-wide template parameters
parameter value description

repository

string

the key of the repository to reindex

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/reindex-source instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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/{repository}/rescan-metadata?from=<value>&to=<value>

resource-wide template parameters
parameter value description

repository

string

the key of the repository to re-scan

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/rescan-metadata instead.

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" : "repository_key",
      "displayName" : "repository_display_name",
      "state" : "RUNNING",
      "enabled" : true,
      "indexingStatus" : {
        "lastScanTime" : 1350474087616,
        "linesOfContentIndexingInProgress" : true,
        "indexingStateCounts" : {
          "UNKNOWN" : 600,
          "SCANNED" : 500,
          "INFILLED" : 400,
          "METADATA_INDEXED" : 300,
          "CONTENT_INDEXED" : 200,
          "COMPLETE" : 100
        },
        "initialScanningComplete" : false,
        "fullRepositorySlurpDone" : false,
        "incrementalIndexingInProgress" : false,
        "message" : "Pre-calculating line count data: deleting old data",
        "error" : false,
        "fullIndexingInProgress" : false,
        "crossRepositoryRescanInProgress" : false
      }
    }

    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-v1/{repository}/start

resource-wide template parameters
parameter value description

repository

string

the key of the repository to start

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository}/start instead.

Starts the repository.

available response representations:

  • 200 - application/json [expand]

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

    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/{repository}/enable

resource-wide template parameters
parameter value description

repository

string

the key of the repository to enable

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository} with {"enabled" : true} payload instead.

Enables repository.

available response representations:

  • 200 - application/json [expand]

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

    when repository enabled

  • 409 [expand]

    when repository is already enabled

  • 500 [expand]

    when enabling could not be persisted

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

resource-wide template parameters
parameter value description

repository

string

the key of the repository to disable

Methods

POST

Deprecated since FishEye 3.4.0 for removal in 4.0. Use PUT /rest-service-fecru/admin/repositories/{repository} with {"enabled" : false} payload instead.

Disables repository.

available response representations:

  • 200 - application/json [expand]

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

    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/{repository}

resource-wide template parameters
parameter value description

repository

string

the key of the repository to delete

Methods

DELETE

Deprecated since FishEye 3.4.0 for removal in 4.0. Use DELETE /rest-service-fecru/admin/repositories/{repository} instead.

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/permission-schemes?copyFrom=<value>

Exposes the permission schemes management operations.

Methods

POST

Creates a new permission scheme. The new permission scheme is blank or can be created from another existing permission scheme.

request query parameters
parameter value description

copyFrom

string

if set, the new permission scheme will be a copy of permissionSchemeName

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "agile"
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "name" : "agile"
    }

    when permission scheme successfully created

  • 400 [expand]

    when trying to create a permission scheme with illegal arguments

GET

This is a paged API.

Retrieve a page of permission schemes.

request query parameters
parameter value description

name

string

permission scheme name part filter, case insensitive, optional

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 3,
      "values" : [ {
        "name" : "agile"
      }, {
        "name" : "finance-internal"
      }, {
        "name" : "web"
      } ]
    }

    page of projects

/rest-service-fecru/admin/permission-schemes/{name}/projects

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

This is a paged API.

Retrieve a page of projects for given permission scheme.

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 3,
      "values" : [ "PR-DB", "PR-MAIN", "PR-WEB" ]
    }

    page of projects keys

/rest-service-fecru/admin/permission-schemes/{name}/users?name=<value>&action=<value>

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

This is a paged API.

Retrieve a page of user permissions [username, action name] for given permission scheme.

request query parameters
parameter value description

name

string

permission scheme name

action

string

action name

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 2,
      "values" : [ {
        "name" : "matt",
        "action" : "action:approveReview"
      }, {
        "name" : "joe",
        "action" : "action:approveReview"
      } ]
    }

    page of projects keys

PUT

Add user permission [username, action name] to given permission scheme List of available action names:

  • action:viewReview
  • action:createReview
  • action:abandonReview
  • action:deleteReview
  • action:submitReview
  • action:approveReview
  • action:rejectReview
  • action:summarizeReview
  • action:closeReview
  • action:reopenReview
  • action:recoverReview
  • action:completeReview
  • action:uncompleteReview
  • action:commentOnReview
  • action:modifyReviewFiles

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "matt",
      "action" : "action:approveReview"
    }

available response representations:

  • 204 [expand]

    when user permission successfully added

  • 304 [expand]

    when user permission already in list

DELETE

Removes user permission [username, action name] from given permission scheme

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "matt",
      "action" : "action:approveReview"
    }

available response representations:

  • 204 [expand]

    when user permission successfully removed

  • 304 [expand]

    when user permission not in list

/rest-service-fecru/admin/permission-schemes/{name}/groups?name=<value>&action=<value>

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

This is a paged API.

Retrieve a page of group permissions [group name, action name] for given permission scheme.

request query parameters
parameter value description

name

string

group name

action

string

action name

available response representations:

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

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

    page of groups

PUT

Add group permission [group name, action name] to given permission scheme List of available action names:

  • action:viewReview
  • action:createReview
  • action:abandonReview
  • action:deleteReview
  • action:submitReview
  • action:approveReview
  • action:rejectReview
  • action:summarizeReview
  • action:closeReview
  • action:reopenReview
  • action:recoverReview
  • action:completeReview
  • action:uncompleteReview
  • action:commentOnReview
  • action:modifyReviewFiles

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "team-1",
      "action" : "action:completeReview"
    }

available response representations:

  • 204 [expand]

    when group permission successfully added

  • 304 [expand]

    when group permission already in list

DELETE

Removes group permission [group name, action name] from given permission scheme

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "team-1",
      "action" : "action:completeReview"
    }

available response representations:

  • 204 [expand]

    when group permission successfully removed

  • 304 [expand]

    when group permission not in list

/rest-service-fecru/admin/permission-schemes/{name}/review-roles?name=<value>&action=<value>

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

This is a paged API.

Retrieve a page of review-roles permissions [role name, action name] for given permission scheme.

request query parameters
parameter value description

name

string

role name

action

string

action name

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 2,
      "values" : [ {
        "name" : "author",
        "action" : "action:completeReview"
      }, {
        "name" : "reviewer",
        "action" : "action:approveReview"
      } ]
    }

    page of roles

PUT

Add review-role permission [role name, action name] to given permission scheme List of available action names:

  • action:viewReview
  • action:createReview
  • action:abandonReview
  • action:deleteReview
  • action:submitReview
  • action:approveReview
  • action:rejectReview
  • action:summarizeReview
  • action:closeReview
  • action:reopenReview
  • action:recoverReview
  • action:completeReview
  • action:uncompleteReview
  • action:commentOnReview
  • action:modifyReviewFiles
List of available role names:
  • Author
  • Moderator
  • Reviewer
  • Creator

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "author",
      "action" : "action:completeReview"
    }

available response representations:

  • 204 [expand]

    when role permission successfully added

  • 304 [expand]

    when role permission already in list

DELETE

Removes review-role permission [role name, action name] from given permission scheme

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "author",
      "action" : "action:completeReview"
    }

available response representations:

  • 204 [expand]

    when review-role permission successfully removed

  • 304 [expand]

    when review-role permission not in list

/rest-service-fecru/admin/permission-schemes/{name}/logged-in-users?action=<value>

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

This is a paged API.

Retrieve a page of logged in users permissions [action name] for given permission scheme.

request query parameters
parameter value description

action

string

action name

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 2,
      "values" : [ {
        "action" : "action:abandonReview"
      }, {
        "action" : "action:approveReview"
      } ]
    }

    page of logged in users permissions

PUT

Add logged-in-users permission [action name] to given permission scheme List of available action names:

  • action:viewReview
  • action:createReview
  • action:abandonReview
  • action:deleteReview
  • action:submitReview
  • action:approveReview
  • action:rejectReview
  • action:summarizeReview
  • action:closeReview
  • action:reopenReview
  • action:recoverReview
  • action:completeReview
  • action:uncompleteReview
  • action:commentOnReview
  • action:modifyReviewFiles

acceptable request representations:

  • application/json [expand]

    Example
    {
      "action" : "action:abandonReview"
    }

available response representations:

  • 204 [expand]

    when logged-in-users permission successfully added

  • 304 [expand]

    when logged-in-users permission already in list

DELETE

Removes logged-in-users permission [action name] from given permission scheme

acceptable request representations:

  • application/json [expand]

    Example
    {
      "action" : "action:abandonReview"
    }

available response representations:

  • 204 [expand]

    when logged-in-users permission successfully removed

  • 304 [expand]

    when logged-in-users permission not in list

/rest-service-fecru/admin/permission-schemes/{name}/anonymous-users?action=<value>

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

This is a paged API.

Retrieve a page of anonymous users permissions [action name] for given permission scheme.

request query parameters
parameter value description

action

string

action name

available response representations:

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

    Example
    {
      "start" : 0,
      "limit" : 100,
      "lastPage" : true,
      "size" : 2,
      "values" : [ {
        "action" : "action:abandonReview"
      }, {
        "action" : "action:viewReview"
      } ]
    }

    page of anonymous users permissions

PUT

Add anonymous-user permission [action name] to given permission scheme List of available action names:

  • action:viewReview

acceptable request representations:

  • application/json [expand]

    Example
    {
      "action" : "action:abandonReview"
    }

available response representations:

  • 204 [expand]

    when anonymous-user permission successfully added

  • 304 [expand]

    when anonymous-user permission already in list

DELETE

Removes anonymous-user permission [action name] from given permission scheme

acceptable request representations:

  • application/json [expand]

    Example
    {
      "action" : "action:abandonReview"
    }

available response representations:

  • 204 [expand]

    when anonymous-users permission successfully removed

  • 304 [expand]

    when anonymous-users permission not in list

/rest-service-fecru/admin/permission-schemes/{name}

resource-wide template parameters
parameter value description

name

string

permission scheme name

Methods

GET

Retrieve a permission scheme by name

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "agile"
    }

  • 404 [expand]

    when permission scheme with given name doesn't exist

PUT

Updates an existing permission scheme.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "internal"
    }

available response representations:

  • 200 - application/json [expand]

    Example
    {
      "name" : "internal"
    }

    when permission scheme successfully updated

  • 404 [expand]

    when permission scheme with given name doesn't exist

DELETE

Deletes a permission scheme by name

available response representations:

  • 204 [expand]

    when permission scheme successfully deleted

  • 404 [expand]

    when permission scheme with given key doesn't exist

/rest-service-fecru/admin/groups

Exposes the groups management operations. Admin only.

Methods

POST

Creates a new user group.

acceptable request representations:

  • application/json [expand]

    Example
    {
      "name" : "team-6",
      "admin" : true
    }

available response representations:

  • 201 - application/json [expand]

    Example
    {
      "name" : "team-6",
      "admin" : true
    }

    when group successfully created

  • 400 [expand]

    when group with given name already exists

GET

This is a paged API.

Retrieve a page of groups.

request query parameters
parameter value description

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",
        "admin" : false
      }, {
        "name" : "team-2",
        "admin" : false
      }, {
        "name" : "team-3",
        "admin" : true
      }, {
        "name" : "team-4",
        "admin" : false
      }, {
        "name" : "team-5",
        "admin" : true
      } ]
    }

    page of groups

/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

  • 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

  • 404 [expand]

    when group with given name doesn't exist

/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",
      "admin" : false
    }

  • 404 [expand]

    when 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

DELETE

Deletes a group by name

available response representations:

  • 204 [expand]

    when group successfully deleted

  • 404 [expand]

    when group with given name doesn't exist

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

/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/auth

This resource offers the ability for client applications to authenticate with Fisheye and Crucible and use the returned session identifier to make further calls without the need to send the caller's username and password every time.

The received token should be used as a FEAUTH query parameter for subsequent REST requests.

Usage of this resource is not required, as Fisheye and Crucible 's REST API supports basic HTTP authentication whereby the caller embeds the username and password in the HTTP request headers of every call, making the process completely stateless.

See https://developer.atlassian.com/display/FECRUDEV/Authenticating+REST+Requests for more details.

/rest-service-fecru/auth/login

Methods

POST

Get the user authentication token.

acceptable request representations:

request form value parameters
parameter value description

userName

string

the username of the user to get the token for

password

string

the password for the user to get the token for

  • application/x-www-form-urlencoded [expand]

available response representations:

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

    Example
    {
      "token" : "evzijst:3319:bb51658323e4927ca7669e9b439bfe21"
    }

    Result of a successful login.

  • 403 - application/json [expand]

    Example
    {
      "error" : "authentication failed"
    }

    Result of an unsuccessful login.

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

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

resource-wide template parameters
parameter value description

repository

string

the key of the repository to get status of

Methods

GET

Returns indexing status of given repository.

available response representations: