## Remote Management, Administration and Integration *SINCE 0.7.0* Gitblit optionally allows a remote client to administer the Gitblit server. This client could be a Java-based tool or perhaps a tool written in another language. web.enableRpcServlet=true web.enableRpcManagement=false web.enableRpcAdministration=false **https** is strongly recommended because passwords are insecurely transmitted form your browser/rpc client using Basic authentication! The Gitblit JSON RPC mechanism, like the Gitblit JGit servlet, syndication/feed servlet, etc, supports request-based authentication. Making an *admin* request will trigger Gitblit's basic authentication mechanism. Listing of repositories, generally, will not trigger this authentication mechanism unless *web.authenticateViewPages=true*. That means its possible to allow anonymous enumeration of repositories that are not *view restricted* or *clone restricted*. Of course, if credentials are provided then all private repositories that are available to the user account will be enumerated in the JSON response. ### Gitblit Manager The Gitblit Manager is an example Java/Swing application that allows remote management (repository and user objects) and administration (server settings) of a Gitblit server. This application uses a combination of RSS feeds and the JSON RPC interface, both of which are part of the [Gitblit API](http://code.google.com/p/gitblit/downloads/detail?name=%API%) library, to present live information from a Gitblit server. Some JSON RPC methods from the utility class `com.gitblit.utils.RpcUtils` are not currently used by the Gitblit Manager. **NOTE:** Gitblit Manager stores your login credentials **INSECURELY** in homedir/.gitblit/config. ## RSS Query Interface At present, Gitblit does not yet support retrieving Git objects (commits, etc) via the JSON RPC mechanism. However, the repository/branch RSS feeds can be used to extract log/history information from a repository branch. The Gitblit API includes methods for retrieving and interpreting RSS feeds. The Gitblit Manager uses these methods to allow branch activity monitoring and repository searching.
url parameter | default | description |
---|---|---|
standard query | ||
repository | required | repository name is part of the url (see examples below) |
ot= | optional default: COMMIT | object type to return in results. COMMIT or TAG |
h= | optional default: HEAD | starting branch, ref, or commit id |
l= | optional default: web.syndicationEntries | maximum return count |
pg= | optional default: 0 | page number for paging (offset into history = pagenumber*maximum return count) |
search query | ||
s= | required | search string |
st= | optional default: COMMIT | search type |
Release | Protocol Version |
---|---|
Gitblit v0.7.0 | 1 (inferred version) |
Gitblit v0.8.0 | 2 |
Gitblit v0.9.0 - v1.0.0 | 3 |
Gitblit v1.1.0 | 4 |
Gitblit v1.2.0 | 5 |
Gitblit v1.3.1 | 6 |
Gitblit v1.4.0 | 7 |
Gitblit v1.6.0 | 8 |
url parameters | required user permission | protocol version | json | ||
---|---|---|---|---|---|
req= | name= | post body | response body | ||
web.enableRpcServlet=true | |||||
GET_PROTOCOL | - | - | 2 | - | Integer |
LIST_REPOSITORIES | - | - | 1 | - | Map<String, RepositoryModel> |
LIST_BRANCHES | - | - | 1 | - | Map<String, List<String>> |
LIST_SETTINGS | - | - | 1 | - | ServerSettings (basic keys) |
GET_USER | user name | - | 6 | - | UserModel |
FORK_REPOSITORY | repository name | - | 8 | - | - |
web.enableRpcManagement=true | |||||
CREATE_REPOSITORY | repository name | admin | 1 | RepositoryModel | - |
EDIT_REPOSITORY | repository name | admin | 1 | RepositoryModel | - |
DELETE_REPOSITORY | repository name | admin | 1 | RepositoryModel | - |
LIST_USERS | - | admin | 1 | - | List<UserModel> |
CREATE_USER | user name | admin | 1 | UserModel | - |
EDIT_USER | user name | admin | 1 | UserModel | - |
DELETE_USER | user name | admin | 1 | UserModel | - |
LIST_TEAMS | - | admin | 2 | - | List<TeamModel> |
CREATE_TEAM | team name | admin | 2 | TeamModel | - |
EDIT_TEAM | team name | admin | 2 | TeamModel | - |
DELETE_TEAM | team name | admin | 2 | TeamModel | - |
LIST_REPOSITORY_MEMBERS | repository name | admin | 1 | - | List<String> |
- | |||||
LIST_REPOSITORY_MEMBER_PERMISSIONS | repository name | admin | 5 | - | List<String> |
SET_REPOSITORY_MEMBER_PERMISSIONS | repository name | admin | 5 | List<String> | - |
LIST_REPOSITORY_TEAMS | repository name | admin | 2 | - | List<String> |
- | |||||
LIST_REPOSITORY_TEAM_PERMISSIONS | repository name | admin | 5 | - | List<String> |
SET_REPOSITORY_TEAM_PERMISSIONS | repository name | admin | 5 | List<String> | - |
LIST_SETTINGS | - | admin | 1 | - | ServerSettings (management keys) |
CLEAR_REPOSITORY_CACHE | - | - | 4 | - | - |
REINDEX_TICKETS | repository name | - | 7 | - | - |
web.enableRpcAdministration=true | |||||
LIST_FEDERATION_REGISTRATIONS | - | admin | 1 | - | List<FederationModel> |
LIST_FEDERATION_RESULTS | - | admin | 1 | - | List<FederationModel> |
LIST_FEDERATION_PROPOSALS | - | admin | 1 | - | List<FederationProposal> |
LIST_FEDERATION_SETS | - | admin | 1 | - | List<FederationSet> |
LIST_SETTINGS | - | admin | 1 | - | ServerSettings (all keys) |
EDIT_SETTINGS | - | admin | 1 | Map<String, String> | - |
LIST_STATUS | - | admin | 1 | - | ServerStatus (see example below) |
code | name | description |
---|---|---|
200 | success | Gitblit processed the request successfully |
401 | unauthorized | Gitblit requires user credentials to process the request |
403 | forbidden | Gitblit can not process the request for the supplied credentials |
405 | method not allowed | Gitblit has disallowed the processing the specified request |
500 | server error | Gitblit failed to process the request likely because the input object created a conflict |
501 | unknown request | Gitblit does not recognize the RPC request type |