Skip to content

Commit bfa7b43

Browse files
authored
Merge pull request gitblit-org#1186 from mystygage/listBranchForRepository
New rpc endpoint for listing all branches from a given repository
2 parents 651b998 + 182f194 commit bfa7b43

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/main/java/com/gitblit/Constants.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ public static enum RpcRequest {
410410
// Order is important here. anything after LIST_SETTINGS requires
411411
// administrator privileges and web.allowRpcManagement.
412412
CLEAR_REPOSITORY_CACHE, REINDEX_TICKETS, GET_PROTOCOL, LIST_REPOSITORIES, LIST_BRANCHES, GET_USER,
413-
FORK_REPOSITORY, LIST_SETTINGS,
413+
FORK_REPOSITORY, LIST_REPOSITORY_BRANCHES, LIST_SETTINGS,
414414
CREATE_REPOSITORY, EDIT_REPOSITORY, DELETE_REPOSITORY,
415415
LIST_USERS, CREATE_USER, EDIT_USER, DELETE_USER,
416416
LIST_TEAMS, CREATE_TEAM, EDIT_TEAM, DELETE_TEAM,

src/main/java/com/gitblit/servlet/RpcServlet.java

+12
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,18 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re
328328
Collection<RegistrantAccessPermission> permissions = deserialize(request, response,
329329
RpcUtils.REGISTRANT_PERMISSIONS_TYPE);
330330
result = gitblit.setTeamAccessPermissions(model, permissions);
331+
} else if (RpcRequest.LIST_REPOSITORY_BRANCHES.equals(reqType)) {
332+
333+
// list all branches for the given repository
334+
Repository repository = gitblit.getRepository(objectName);
335+
List<RefModel> refs = JGitUtils.getLocalBranches(repository, false, -1);
336+
337+
List<String> branches = new ArrayList<>();
338+
for (RefModel ref : refs) {
339+
branches.add(ref.getName());
340+
}
341+
repository.close();
342+
result = branches;
331343
} else if (RpcRequest.LIST_FEDERATION_REGISTRATIONS.equals(reqType)) {
332344
// return the list of federation registrations
333345
if (allowAdmin) {

src/site/rpc.mkd

+2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ The Gitblit API includes methods for retrieving and interpreting RSS feeds. The
6262
<tr><td>Gitblit v1.3.1</td><td>6</td></tr>
6363
<tr><td>Gitblit v1.4.0</td><td>7</td></tr>
6464
<tr><td>Gitblit v1.6.0</td><td>8</td></tr>
65+
<tr><td>Gitblit v1.9.0</td><td>9</td></tr>
6566
</tbody>
6667
</table>
6768

@@ -104,6 +105,7 @@ Use *SET_REPOSITORY_TEAM_PERMISSIONS* instead.
104105
<tr><td><s>SET_REPOSITORY_TEAMS</s></td><td><s>repository name</s></td><td><em><s>admin</s></em></td><td><s>2</s></td><td><s>List&lt;String&gt;</s></td><td>-</td></tr>
105106
<tr><td>LIST_REPOSITORY_TEAM_PERMISSIONS</td><td>repository name</td><td><em>admin</em></td><td>5</td><td>-</td><td>List&lt;String&gt;</td></tr>
106107
<tr><td>SET_REPOSITORY_TEAM_PERMISSIONS</td><td>repository name</td><td><em>admin</em></td><td>5</td><td>List&lt;String&gt;</td><td>-</td></tr>
108+
<tr><td>LIST_REPOSITORY_BRANCHES</td><td>repository name</td><td><em>-</em></td><td>9</td><td>-</td><td>List&lt;String&gt;</td></tr>
107109
<tr><td>LIST_SETTINGS</td><td>-</td><td><em>admin</em></td><td>1</td><td>-</td><td>ServerSettings (management keys)</td></tr>
108110
<tr><td>CLEAR_REPOSITORY_CACHE</td><td>-</td><td><em>-</em></td><td>4</td><td>-</td><td>-</td></tr>
109111
<tr><td>REINDEX_TICKETS</td><td>repository name</td><td><em>-</em></td><td>7</td><td>-</td><td>-</td></tr>

0 commit comments

Comments
 (0)