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.
Please have a look at python examples that demonstrate the capabilities of Fisheye & Crucible REST API: bitbucket.org/atlassian/fecru-rest-examples/src
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
Exposes the groups management operations. Admin only.
Creates a new user group.
acceptable request representations:
{
"name" : "team-6",
"admin" : true
}
available response representations:
This is a paged API.
Retrieve a page of groups.
parameter | value | description |
---|---|---|
prefix |
filter groups by name prefix |
available response representations:
{
"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
parameter | value | description |
---|---|---|
name |
group name |
Adds user to group
acceptable request representations:
{
"name" : "mac"
}
user name
available response representations:
Removes user from group
acceptable request representations:
{
"name" : "mac"
}
user name
available response representations:
parameter | value | description |
---|---|---|
name |
group name |
Retrieve a group by name.
available response representations:
Updates an existing group.
acceptable request representations:
{
"admin" : false
}
available response representations:
A rest service to get recently visited items for the logged in user.
Get a list of recently visited items for the currently logged in user.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<reviews>
<review>
<entityType>atlassian-review</entityType>
<entityId>PROJECT-KEY-1</entityId>
<lastViewed>1655717831732</lastViewed>
<uri>/context/cru/PROEJCT-KEY-1</uri>
</review>
</reviews>
<projects>
<project>
<entityType>atlassian-repository</entityType>
<entityId>repository_key</entityId>
<lastViewed>1655717831732</lastViewed>
<uri>/context/browse/repository_key</uri>
</project>
</projects>
<snippets>
<snippet>
<entityType>atlassian-snippet</entityType>
<entityId>PROJECT-KEY-2</entityId>
<lastViewed>1655717831732</lastViewed>
<uri>/context/snippet/PROEJCT-KEY-1</uri>
</snippet>
</snippets>
<repositories>
<repository>
<entityType>atlassian-repository</entityType>
<entityId>repository_key</entityId>
<lastViewed>1655717831732</lastViewed>
<uri>/context/browse/repository_key</uri>
</repository>
</repositories>
<users>
<user>
<entityType>atlassian-user</entityType>
<entityId>reviewer-1</entityId>
<lastViewed>1655717831732</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.
{
"reviews" : {
"review" : [ {
"entityType" : "atlassian-review",
"entityId" : "PROJECT-KEY-1",
"lastViewed" : 1655717831732,
"uri" : "/context/cru/PROEJCT-KEY-1"
} ]
},
"projects" : {
"project" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831732,
"uri" : "/context/browse/repository_key"
} ]
},
"snippets" : {
"snippet" : [ {
"entityType" : "atlassian-snippet",
"entityId" : "PROJECT-KEY-2",
"lastViewed" : 1655717831732,
"uri" : "/context/snippet/PROEJCT-KEY-1"
} ]
},
"repositories" : {
"repository" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831732,
"uri" : "/context/browse/repository_key"
} ]
},
"users" : {
"user" : [ {
"entityType" : "atlassian-user",
"entityId" : "reviewer-1",
"lastViewed" : 1655717831732,
"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.
Get a list of recently visisted items for the currently logged in user, including the detailed entities.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<reviews>
<review>
<entityType>atlassian-review</entityType>
<entityId>PROJECT-KEY-1</entityId>
<lastViewed>1655717831733</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>2022-06-20T09:37:11.729+0000</closeDate>
<createDate>2022-06-20T09:37:11.729+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>2022-06-20T09:37:11.729+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>1655717831733</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>1655717831733</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>2022-06-20T09:37:11.729+0000</closeDate>
<createDate>2022-06-20T09:37:11.729+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>2022-06-20T09:37:11.729+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>1655717831733</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>1655717831733</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.
{
"reviews" : {
"review" : [ {
"entityType" : "atlassian-review",
"entityId" : "PROJECT-KEY-1",
"lastViewed" : 1655717831733,
"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" : "2022-06-20T09:37:11.729+0000",
"closeDate" : "2022-06-20T09:37:11.729+0000",
"dueDate" : "2022-06-20T09:37:11.729+0000",
"linkedIssues" : [ "DEF-456", "ABC-123", "GHI-789" ],
"jiraIssueKey" : "ABC-123"
}
} ]
},
"projects" : {
"project" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831733,
"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" : 1655717831733,
"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" : "2022-06-20T09:37:11.729+0000",
"closeDate" : "2022-06-20T09:37:11.729+0000",
"dueDate" : "2022-06-20T09:37:11.729+0000",
"linkedIssues" : [ "DEF-456", "ABC-123", "GHI-789" ],
"jiraIssueKey" : "ABC-123"
}
} ]
},
"repositories" : {
"repository" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831733,
"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" : 1655717831733,
"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.
Get a list of recently visited repositories for the currently logged in user.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<repositories>
<repository>
<entityType>atlassian-repository</entityType>
<entityId>repository_key</entityId>
<lastViewed>1655717831732</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.
{
"repositories" : {
"repository" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831732,
"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.
Get a list of recently visited repositories for the currently logged in user, including the detailed entities.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<repositories>
<repository>
<entityType>atlassian-repository</entityType>
<entityId>repository_key</entityId>
<lastViewed>1655717831733</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}.
{
"repositories" : {
"repository" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831733,
"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}.
Get a list of recently visited users for the currently logged in user.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<users>
<user>
<entityType>atlassian-user</entityType>
<entityId>reviewer-1</entityId>
<lastViewed>1655717831732</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.
{
"users" : {
"user" : [ {
"entityType" : "atlassian-user",
"entityId" : "reviewer-1",
"lastViewed" : 1655717831732,
"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.
Get a list of recently visited users for the currently logged in user, including the detailed entities.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<users>
<user>
<entityType>atlassian-user</entityType>
<entityId>reviewer-1</entityId>
<lastViewed>1655717831733</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}.
{
"users" : {
"user" : [ {
"entityType" : "atlassian-user",
"entityId" : "reviewer-1",
"lastViewed" : 1655717831733,
"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}.
Get a list of recently visited projects for the currently logged in user.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<projects>
<project>
<entityType>atlassian-repository</entityType>
<entityId>repository_key</entityId>
<lastViewed>1655717831732</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.
{
"projects" : {
"project" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831732,
"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.
Get a list of recently visited projects for the currently logged in Project, including the detailed entities.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<projects>
<project>
<entityType>atlassian-repository</entityType>
<entityId>repository_key</entityId>
<lastViewed>1655717831733</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}.
{
"projects" : {
"project" : [ {
"entityType" : "atlassian-repository",
"entityId" : "repository_key",
"lastViewed" : 1655717831733,
"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}.
Get a list of recently visited reviews for the currently logged in user.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<reviews>
<review>
<entityType>atlassian-review</entityType>
<entityId>PROJECT-KEY-1</entityId>
<lastViewed>1655717831732</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.
{
"reviews" : {
"review" : [ {
"entityType" : "atlassian-review",
"entityId" : "PROJECT-KEY-1",
"lastViewed" : 1655717831732,
"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.
Get a list of recently visited reviews for the currently logged in user, including the detailed entities.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<reviews>
<review>
<entityType>atlassian-review</entityType>
<entityId>PROJECT-KEY-1</entityId>
<lastViewed>1655717831733</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>2022-06-20T09:37:11.729+0000</closeDate>
<createDate>2022-06-20T09:37:11.729+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>2022-06-20T09:37:11.729+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}.
{
"reviews" : {
"review" : [ {
"entityType" : "atlassian-review",
"entityId" : "PROJECT-KEY-1",
"lastViewed" : 1655717831733,
"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" : "2022-06-20T09:37:11.729+0000",
"closeDate" : "2022-06-20T09:37:11.729+0000",
"dueDate" : "2022-06-20T09:37:11.729+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}.
Get a list of recently visited snippets for the currently logged in user.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<snippets>
<snippet>
<entityType>atlassian-snippet</entityType>
<entityId>PROJECT-KEY-2</entityId>
<lastViewed>1655717831732</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.
{
"snippets" : {
"snippet" : [ {
"entityType" : "atlassian-snippet",
"entityId" : "PROJECT-KEY-2",
"lastViewed" : 1655717831732,
"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.
Get a list of recently visited snippets for the currently logged in user, including the detailed entities.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recentlyVisitedItems>
<snippets>
<snippet>
<entityType>atlassian-snippet</entityType>
<entityId>PROJECT-KEY-2</entityId>
<lastViewed>1655717831733</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>2022-06-20T09:37:11.729+0000</closeDate>
<createDate>2022-06-20T09:37:11.729+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>2022-06-20T09:37:11.729+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}.
{
"snippets" : {
"snippet" : [ {
"entityType" : "atlassian-snippet",
"entityId" : "PROJECT-KEY-2",
"lastViewed" : 1655717831733,
"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" : "2022-06-20T09:37:11.729+0000",
"closeDate" : "2022-06-20T09:37:11.729+0000",
"dueDate" : "2022-06-20T09:37:11.729+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}.
parameter | value | description |
---|---|---|
repository |
the key of the repository to get status of |
Returns indexing status of given repository.
available response representations:
parameter | value | description |
---|---|---|
repository |
repository key |
Get a page of repository users permissions Note: only repository user permissions defined directly, so not taking repository groups permissions this user belongs to
parameter | value | description |
---|---|---|
name |
user name filter |
available response representations:
parameter | value | description |
---|---|---|
repository |
repository key |
|
username |
user |
Get all repository user permissions defined for this user. Note: only repository user permissions defined directly, so not taking repository groups permissions this user belongs to
available response representations:
Adds a repository user permissions
acceptable request representations:
available response representations:
parameter | value | description |
---|---|---|
repository |
repository key |
Get a page of users which have no repository user permission yet Note: only repository user permissions defined directly, so not taking repository groups permissions this user belongs to
parameter | value | description |
---|---|---|
name |
name part to filter users by name, optional |
available response representations:
parameter | value | description |
---|---|---|
repository |
repository key |
parameter | value | description |
---|---|---|
repository |
repository key |
|
groupname |
group name |
parameter | value | description |
---|---|---|
repository |
repository key |
acceptable request representations:
<?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>
{
"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:
no data
Provides access to settings globally or per repository. Requires admin permissions to read and write. This corresponds to the {@link com.atlassian.sal.api.pluginsettings.PluginSettings} interface.
parameter | value | description |
---|---|---|
key |
Exposes the permission schemes management operations.
Creates a new permission scheme. The new permission scheme is blank or can be created from another existing permission scheme.
parameter | value | description |
---|---|---|
copyFrom |
if set, the new permission scheme will be a copy of permissionSchemeName |
acceptable request representations:
{
"name" : "agile"
}
available response representations:
This is a paged API.
Retrieve a page of permission schemes.
parameter | value | description |
---|---|---|
name |
permission scheme name part filter, case insensitive, optional |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 3,
"values" : [ {
"name" : "agile"
}, {
"name" : "finance-internal"
}, {
"name" : "web"
} ]
}
page of projects
parameter | value | description |
---|---|---|
name |
permission scheme name |
parameter | value | description |
---|---|---|
name |
permission scheme name |
This is a paged API.
Retrieve a page of user permissions [username, action name] for given permission scheme.
parameter | value | description |
---|---|---|
name |
permission scheme name |
|
action |
action name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 2,
"values" : [ {
"name" : "matt",
"action" : "action:approveReview"
}, {
"name" : "joe",
"action" : "action:approveReview"
} ]
}
page of projects keys
Add user permission [username, action name] to given permission scheme List of available action names:
acceptable request representations:
{
"name" : "matt",
"action" : "action:approveReview"
}
available response representations:
Removes user permission [username, action name] from given permission scheme
acceptable request representations:
{
"name" : "matt",
"action" : "action:approveReview"
}
available response representations:
parameter | value | description |
---|---|---|
name |
permission scheme name |
This is a paged API.
Retrieve a page of logged in users permissions [action name] for given permission scheme.
parameter | value | description |
---|---|---|
action |
action name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 2,
"values" : [ {
"action" : "action:abandonReview"
}, {
"action" : "action:approveReview"
} ]
}
page of logged in users permissions
Add logged-in-users permission [action name] to given permission scheme List of available action names:
acceptable request representations:
{
"action" : "action:abandonReview"
}
available response representations:
Removes logged-in-users permission [action name] from given permission scheme
acceptable request representations:
{
"action" : "action:abandonReview"
}
available response representations:
parameter | value | description |
---|---|---|
name |
permission scheme name |
This is a paged API.
Retrieve a page of group permissions [group name, action name] for given permission scheme.
parameter | value | description |
---|---|---|
name |
group name |
|
action |
action name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 2,
"values" : [ {
"name" : "team-1",
"action" : "action:completeReview"
}, {
"name" : "team-2",
"action" : "action:approveReview"
} ]
}
page of groups
Add group permission [group name, action name] to given permission scheme List of available action names:
acceptable request representations:
{
"name" : "team-1",
"action" : "action:completeReview"
}
available response representations:
Removes group permission [group name, action name] from given permission scheme
acceptable request representations:
{
"name" : "team-1",
"action" : "action:completeReview"
}
available response representations:
parameter | value | description |
---|---|---|
name |
permission scheme name |
This is a paged API.
Retrieve a page of review-roles permissions [role name, action name] for given permission scheme.
parameter | value | description |
---|---|---|
name |
role name |
|
action |
action name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 2,
"values" : [ {
"name" : "author",
"action" : "action:completeReview"
}, {
"name" : "reviewer",
"action" : "action:approveReview"
} ]
}
page of roles
Add review-role permission [role name, action name] to given permission scheme List of available action names:
acceptable request representations:
{
"name" : "author",
"action" : "action:completeReview"
}
available response representations:
Removes review-role permission [role name, action name] from given permission scheme
acceptable request representations:
{
"name" : "author",
"action" : "action:completeReview"
}
available response representations:
parameter | value | description |
---|---|---|
name |
permission scheme name |
This is a paged API.
Retrieve a page of anonymous users permissions [action name] for given permission scheme.
parameter | value | description |
---|---|---|
action |
action name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 2,
"values" : [ {
"action" : "action:abandonReview"
}, {
"action" : "action:viewReview"
} ]
}
page of anonymous users permissions
Add anonymous-user permission [action name] to given permission scheme List of available action names:
acceptable request representations:
{
"action" : "action:abandonReview"
}
available response representations:
Removes anonymous-user permission [action name] from given permission scheme
acceptable request representations:
{
"action" : "action:abandonReview"
}
available response representations:
parameter | value | description |
---|---|---|
name |
permission scheme name |
Retrieve a permission scheme by name
available response representations:
Updates an existing permission scheme.
acceptable request representations:
{
"name" : "internal"
}
available response representations:
Provides general information about the server's configuration.
Provides general information about the server's configuration.
available response representations:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<serverInfo>
<timeZone>
<ID>Etc/UTC</ID>
<rawOffset>0</rawOffset>
</timeZone>
<appHomeDir>/home/fisheye</appHomeDir>
<appInstanceDir>/var/fisheye</appInstanceDir>
<version>
<releaseNumber>4.8.10</releaseNumber>
<buildDate>2022-06-20 09:33</buildDate>
</version>
<isFishEye>true</isFishEye>
<isCrucible>false</isCrucible>
</serverInfo>
Information about the server's configuration.
{
"timeZone" : "Etc/UTC",
"appHomeDir" : "/home/fisheye",
"appInstanceDir" : "/var/fisheye",
"version" : {
"releaseNumber" : "4.8.10",
"buildDate" : "2022-06-20 09:33"
},
"isFishEye" : true,
"isCrucible" : false
}
Information about the server's configuration.
Exposes the user management operations. Admin only.
Creates a new user. Tries to add the user to fisheye-users and crucible-users groups if those exist.
acceptable request representations:
{
"name" : "newkash",
"password" : "1234",
"displayName" : "Lukasz Kuzynski"
}
available response representations:
This is a paged API.
Retrieve a page of users.
available response representations:
{
"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
parameter | value | description |
---|---|---|
name |
user name |
Adds user to group
acceptable request representations:
{
"name" : "team-5"
}
group name
available response representations:
Removes user from group
acceptable request representations:
{
"name" : "team-5"
}
group name
available response representations:
parameter | value | description |
---|---|---|
name |
user name |
Retrieve a user by name.
available response representations:
Updates an existing user.
acceptable request representations:
{
"password" : "5678"
}
available response representations:
parameter | value | description |
---|---|---|
property |
the property(preference) name |
parameter | value | description |
---|---|---|
property |
the property(preference) name |
|
repository |
the key of the repository |
Getting user's preference related to a certain repository
available response representations:
Allows managing global permissions Admin only.
parameter | value | description |
---|---|---|
name |
Grants/updates global permissions for given group
available response representations:
Removes/updates global permissions for given group
available response representations:
ok, permissions has been revoked
Retrieve global permissions for given group
available response representations:
{
"name" : "fecru-users",
"permissions" : [ "FISHEYE_USER", "CRUCIBLE_USER" ]
}
This is a paged API.
Gets a list of user name that have global permissions granted
parameter | value | description |
---|---|---|
name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 3,
"values" : [ {
"name" : "fisheye-users",
"permissions" : [ "FISHEYE_USER" ]
}, {
"name" : "crucible-users",
"permissions" : [ "FISHEYE_USER", "CRUCIBLE_USER" ]
}, {
"name" : "fecru-users",
"permissions" : [ "FISHEYE_USER", "CRUCIBLE_USER" ]
} ]
}
page of global permissions
parameter | value | description |
---|---|---|
name |
Retrieve global permissions for given user
available response representations:
{
"name" : "fecru-users",
"permissions" : [ "FISHEYE_USER", "CRUCIBLE_USER" ]
}
Grants/updates global permissions for given group
available response representations:
Removes/updates global permissions for given group
available response representations:
ok, permissions has been revoked
This is a paged API.
Gets a list of groups that have global permissions granted
parameter | value | description |
---|---|---|
name |
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 3,
"values" : [ {
"name" : "fisheye-users",
"permissions" : [ "FISHEYE_USER" ]
}, {
"name" : "crucible-users",
"permissions" : [ "FISHEYE_USER", "CRUCIBLE_USER" ]
}, {
"name" : "fecru-users",
"permissions" : [ "FISHEYE_USER", "CRUCIBLE_USER" ]
} ]
}
page of global permissions
Exposes the repository management operations.
Creates a repository.
acceptable request representations:
{
"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:
{
"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
when repository with given key already exists or key contains invalid characters
This is a paged API.
Retrieve a page of repositories. Repository properties with default values may not be returned.
parameter | value | description |
---|---|---|
type |
filter repositories by repository type: svn, git, hg, cvs, p4, ... |
|
enabled |
filter repositories by enabled flag |
|
started |
filter repositories by started flag |
available response representations:
{
"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
parameter | value | description |
---|---|---|
repository |
the key of the repository to reindex |
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.
parameter | value | description |
---|---|---|
clone |
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:
parameter | value | description |
---|---|---|
repository |
the key of the repository to re-index |
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:
parameter | value | description |
---|---|---|
repository |
the key of the repository to re-scan |
Re-scans the repository metadata. Only valid for Perforce and SVN repositories.
parameter | value | description |
---|---|---|
from |
the revision number to start at |
|
to |
the revision number to end at |
available response representations:
{
"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
when missing required parameters
when the repository doesn't exist
when the repository is disabled, not running or not a valid repository type
parameter | value | description |
---|---|---|
repository |
the key of the repository to stop |
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.
parameter | value | description |
---|---|---|
wait |
Default: false |
if true will wait for the indexing to finish before returning |
available response representations:
parameter | value | description |
---|---|---|
repository |
the key of the repository to scan |
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:
parameter | value | description |
---|---|---|
repository |
the key of the repository to reindex |
parameter | value | description |
---|---|---|
repository |
the key of the repository to re-index. |
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:
parameter | value | description |
---|---|---|
repository |
the key of the repository to perform the operation for |
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:
Retrieve default repository permissions properties.
available response representations:
{
"useDefaults" : false,
"allowAnonymous" : false,
"allowLoggedIn" : true
}
parameter | value | description |
---|---|---|
repository |
the key of the repository |
Updates repository permissions properties. Valid permission settings: any combination of useDefaults, allowAnonymous, allowLoggedIn.
acceptable request representations:
{
"useDefaults" : false,
"allowAnonymous" : false,
"allowLoggedIn" : true
}
available response representations:
{
"useDefaults" : false,
"allowAnonymous" : false,
"allowLoggedIn" : true
}
when repository permissions properties successfully updated
when permissions settings are invalid or not all permission properties in update are set
when repository with given key doesn't exist
parameter | value | description |
---|---|---|
repository |
the key of the repository |
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:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 3,
"values" : [ "team-1", "team-2", "team-4" ]
}
page of group names
when useDefaults, allowAnonymous or allowLoggedIn equals true
when repository with given key doesn't exist
Note: use /rest-service-fecru/admin/repository-permissions/ endpoint for full repository permission administration functionality Adds group to repository allowed groups
acceptable request representations:
{
"name" : "team-3"
}
group name
available response representations:
Delete group from repository allowed groups
acceptable request representations:
{
"name" : "team-3"
}
group name
available response representations:
parameter | value | description |
---|---|---|
repository |
repository key |
Retrieves repository updates properties.
available response representations:
Update repository updates properties.
To disable polling set the value of "pollingInterval" to "never".
acceptable request representations:
{
"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:
{
"useDefaults" : false,
"pollingInterval" : "20s"
}
when repository updates properties successfully updated
when updates settings are invalid or not all updates properties in update are set
when repository with given key doesn't exist
parameter | value | description |
---|---|---|
repository |
the key of the repository |
Retrieve a repository by key. Repository properties with default values may not be returned.
available response representations:
{
"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"
}
}
when repository with given key doesn't exist
Updates an existing repository.
acceptable request representations:
{
"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:
parameter | value | description |
---|---|---|
repository |
the key of the repository to start |
parameter | value | description |
---|---|---|
repository |
the key of the repository to stop |
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.Get the user authentication token.
acceptable request representations:
parameter | value | description |
---|---|---|
userName |
the username of the user to get the token for |
|
password |
the password for the user to get the token for |
available response representations:
Exposes the projects management operations.
Creates a new project.
acceptable request representations:
{
"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:
{
"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
when trying to create a project with illegal arguments (existing key, invalid key format, ...)
This is a paged API.
Retrieve a page of projects.
parameter | value | description |
---|---|---|
name |
project's name part filter, optional |
|
key |
project's key part filter, optional |
|
defaultRepositoryName |
project's default repository key part filter, optional |
|
permissionSchemeName |
project's permission scheme pare name filter, optional |
available response representations:
{
"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
parameter | value | description |
---|---|---|
sourceProjectKey |
project key of reviews and snippets source project |
|
destinationProjectKey |
project key of reviews and snippets destination project |
Move reviews and snippets from source project to destination project
available response representations:
parameter | value | description |
---|---|---|
key |
project key |
This is a paged API.
Retrieves project's default reviewer users
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 4,
"values" : [ {
"name" : "tom"
}, {
"name" : "piotr"
}, {
"name" : "liang"
}, {
"name" : "sten"
} ]
}
Add user to project's default reviewer users list
acceptable request representations:
{
"name" : "matt"
}
available response representations:
parameter | value | description |
---|---|---|
key |
project key |
This is a paged API.
Retrieves project's default reviewer groups
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 4,
"values" : [ {
"name" : "team-1"
}, {
"name" : "team-2"
}, {
"name" : "team-3"
}, {
"name" : "team-4"
} ]
}
Add group to project's default reviewer group list
acceptable request representations:
{
"name" : "team-1"
}
available response representations:
parameter | value | description |
---|---|---|
key |
project key |
This is a paged API.
Retrieves project's allowed reviewer users
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 4,
"values" : [ {
"name" : "tom"
}, {
"name" : "piotr"
}, {
"name" : "liang"
}, {
"name" : "sten"
} ]
}
Add user to project's allowed reviewer users list
acceptable request representations:
{
"name" : "matt"
}
available response representations:
parameter | value | description |
---|---|---|
key |
project key |
This is a paged API.
Retrieves project's allowed reviewer groups
available response representations:
{
"start" : 0,
"limit" : 100,
"lastPage" : true,
"size" : 4,
"values" : [ {
"name" : "team-1"
}, {
"name" : "team-2"
}, {
"name" : "team-3"
}, {
"name" : "team-4"
} ]
}
Add group to project's allowed reviewer group list
acceptable request representations:
{
"name" : "team-1"
}
available response representations:
parameter | value | description |
---|---|---|
key |
project key |
Retrieve a project by key.
available response representations:
{
"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 with given key doesn't exist
Updates an existing project.
acceptable request representations:
{
"key" : "CR-FE-NEW",
"name" : "Fisheye and Crucible New"
}
available response representations:
{
"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
when project with given name doesn't exist
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.
parameter | value | description |
---|---|---|
deleteProjectReviews |
Default: false |
if true deletes reviews in project |
available response representations:
Exposes the repository maintenance operations.
Deprecated since FishEye 3.4.0 for removal in 4.0. Use POST /rest-service-fecru/admin/repositories instead.
Adds repositoryBasic repository data:
acceptable request representations:
{
"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:
{
"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
when repository name or displayName are already used
when repository couldn't be created
parameter | value | description |
---|---|---|
repository |
the key of the repository to run scan for |
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.parameter | value | description |
---|---|---|
synchronous |
Default: false |
if true will wait for the indexing to finish before returning |
available response representations:
parameter | value | description |
---|---|---|
repository |
the key of the repository |
Returns information about the status of the repository and the current indexing status
available response representations:
{
"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
when the repository doesn't exist
parameter | value | description |
---|---|---|
repository |
the key of the repository to start |
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:
{
"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
when the repository doesn't exist
when the repository is not stopped
when the repository couldn't be started because of a configuration issue
parameter | value | description |
---|---|---|
repository |
the key of the repository to enable |
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:
{
"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
when repository is already enabled
when enabling could not be persisted
parameter | value | description |
---|---|---|
repository |
the key of the repository to disable |
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:
{
"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
when repository is disabled or not stopped
when disabling could not be persisted
parameter | value | description |
---|---|---|
repository |
the key of the repository to 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 operationavailable response representations:
parameter | value | description |
---|---|---|
repository |
the key of the repository to stop |
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:
{
"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
when the repository doesn't exist
when the repository is not running
parameter | value | description |
---|---|---|
repository |
the key of the repository to reindex |
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.parameter | value | description |
---|---|---|
clone |
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:
{
"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
when the repository doesn't exist
when the repository is disabled, or not running
parameter | value | description |
---|---|---|
repository |
the key of the repository to reindex |
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)parameter | value | description |
---|---|---|
synchronous |
Default: false |
if true will wait for the indexing to finish before returning |
available response representations:
{
"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
when the repository doesn't exist
when the repository is disabled, or not running
parameter | value | description |
---|---|---|
repository |
the key of the repository to re-index |
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:
{
"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
when the repository doesn't exist
when the repository is disabled, or not running
parameter | value | description |
---|---|---|
repository |
the key of the repository to scan |
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:
{
"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
when the repository doesn't exist
when the repository is disabled, not running or not a cvs repository
parameter | value | description |
---|---|---|
repository |
the key of the repository to re-index. |
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:
{
"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
when the repository doesn't exist
when the repository is disabled, or not running
parameter | value | description |
---|---|---|
repository |
the key of the repository to perform the operation for |
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:
{
"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
when the repository doesn't exist
when the repository is disabled, or not running
parameter | value | description |
---|---|---|
repository |
the key of the repository to re-scan |
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.parameter | value | description |
---|---|---|
from |
the revision number to start at |
|
to |
the revision number to end at |
available response representations:
{
"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
when missing required parameters
when the repository doesn't exist
when the repository is disabled, not running or not a valid repository type
Returns blame information for a file.
Returns blame information for a given file. Examples:
- get blame for an entire file:
/blame?rep=repository&file=path_to_file&rev=revision_hash- get blame for selected lines:
/blame?rep=repository&file=path_to_file&rev=revision_hash&f=17-5&f=143-1&f=155-8
parameter | value | description |
---|---|---|
rep |
the key of the repository |
|
file |
path to file |
|
rev |
revision hash |
|
f |
reduce blame range using a list of "start line-number of lines" |
available response representations:
{
"authors" : {
"Bob <bob@opensource.com>" : {
"userName" : "Bob <bob@opensource.com>",
"displayName" : "Bob",
"url" : "/committer/my_repository/Bob%20%3Cbob@opensource.com%3E"
},
"Alice <alice@example.com>" : {
"userName" : "alice",
"displayName" : "Alice",
"url" : "/user/alice"
}
},
"changesets" : {
"abcdefghijklmnopqrstuwvxyz" : {
"displayId" : "abcdef",
"author" : "Alice <alice@example.com>",
"commitDate" : "1970-01-17T19:13:26.400+0000",
"url" : "/changelog/my_repository?cs=abcdefghijklmnopqrstuwvxyz"
},
"zxyvwutsrqponmlkjihgfedcba" : {
"displayId" : "zxyvwu",
"author" : "Bob <bob@opensource.com>",
"commitDate" : "1970-01-17T19:13:26.400+0000",
"url" : "/changelog/my_repository?cs=zxyvwutsrqponmlkjihgfedcba"
}
},
"legend" : [ {
"from" : 17,
"lines" : 5,
"changeset" : "abcdefghijklmnopqrstuwvxyz"
}, {
"from" : 143,
"lines" : 1
}, {
"from" : 155,
"lines" : 8,
"changeset" : "zxyvwutsrqponmlkjihgfedcba"
} ],
"meta" : {
"repoName" : "my_repository"
}
}