| | |
| | | ### RPC Requests
|
| | |
|
| | | <table>
|
| | | <tr><th colspan='2'>url parameters</th><th rowspan='2'>required<br/>permission</th><th colspan='2'>json</th></tr>
|
| | | <tr><th colspan='2'>url parameters</th><th rowspan='2'>required<br/>user<br/>permission</th><th colspan='2'>json</th></tr>
|
| | | <tr><th>req=</th><th>name=</th><th>post body</th><th>response body</th></tr>
|
| | | <tr><td>LIST_REPOSITORIES</td><td>-</td><td>-</td><td>-</td><td>Map String, RepositoryModel </td></tr>
|
| | | <tr><td colspan='5'><em>web.enableRpcServlet=true</em></td></tr>
|
| | | <tr><td>LIST_REPOSITORIES</td><td>-</td><td>-</td><td>-</td><td>Map<String, RepositoryModel></td></tr>
|
| | | <tr><td colspan='5'><em>web.enableRpcManagement=true</em></td></tr>
|
| | | <tr><td>CREATE_REPOSITORY</td><td>repository name</td><td><em>admin</em></td><td>RepositoryModel</td><td>-</td></tr>
|
| | | <tr><td>EDIT_REPOSITORY</td><td>repository name</td><td><em>admin</em></td><td>RepositoryModel</td><td>-</td></tr>
|
| | | <tr><td>DELETE_REPOSITORY</td><td>repository name</td><td><em>admin</em></td><td>-</td><td>-</td></tr>
|
| | | <tr><td>LIST_USERS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List UserModel </td></tr>
|
| | | <tr><td>LIST_USERS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List<UserModel></td></tr>
|
| | | <tr><td>CREATE_USER</td><td>user name</td><td><em>admin</em></td><td>UserModel</td><td>-</td></tr>
|
| | | <tr><td>EDIT_USER</td><td>user name</td><td><em>admin</em></td><td>UserModel</td><td>-</td></tr>
|
| | | <tr><td>DELETE_USER</td><td>user name</td><td><em>admin</em></td><td>-</td><td>-</td></tr>
|
| | | <tr><td>LIST_REPOSITORY_MEMBERS</td><td>repository name</td><td><em>admin</em></td><td>-</td><td>List String</td></tr>
|
| | | <tr><td>SET_REPOSITORY_MEMBERS</td><td>repository name</td><td><em>admin</em></td><td>List String</td><td>-</td></tr>
|
| | | <tr><td>LIST_FEDERATION_REGISTRATIONS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List FederationModel</td></tr>
|
| | | <tr><td>LIST_FEDERATION_RESULTS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List FederationModel</td></tr>
|
| | | <tr><td>LIST_FEDERATION_PROPOSALS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List FederationProposal </td></tr>
|
| | | <tr><td>LIST_FEDERATION_SETS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List FederationSet </td></tr>
|
| | | <tr><td>LIST_SETTINGS</td><td>-</td><td><em>admin</em></td><td>-</td><td>Properties</td></tr>
|
| | | <tr><td>LIST_REPOSITORY_MEMBERS</td><td>repository name</td><td><em>admin</em></td><td>-</td><td>List<String></td></tr>
|
| | | <tr><td>SET_REPOSITORY_MEMBERS</td><td>repository name</td><td><em>admin</em></td><td>List<String></td><td>-</td></tr>
|
| | | <tr><td>LIST_SETTINGS</td><td>-</td><td><em>admin</em></td><td>-</td><td>ServerSettings (management keys)</td></tr>
|
| | | <tr><td colspan='5'><em>web.enableRpcAdministration=true</em></td></tr>
|
| | | <tr><td>LIST_FEDERATION_REGISTRATIONS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List<FederationModel></td></tr>
|
| | | <tr><td>LIST_FEDERATION_RESULTS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List<FederationModel></td></tr>
|
| | | <tr><td>LIST_FEDERATION_PROPOSALS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List<FederationProposal></td></tr>
|
| | | <tr><td>LIST_FEDERATION_SETS</td><td>-</td><td><em>admin</em></td><td>-</td><td>List<FederationSet></td></tr>
|
| | | <tr><td>LIST_SETTINGS</td><td>-</td><td><em>admin</em></td><td>-</td><td>ServerSettings (all keys)</td></tr>
|
| | | <tr><td>EDIT_SETTINGS</td><td>-</td><td><em>admin</em></td><td>Map<String, String></td><td>-</td></tr>
|
| | | <tr><td>LIST_STATUS</td><td>-</td><td><em>admin</em></td><td>-</td><td>ServerStatus (see example below)</td></tr>
|
| | | </table>
|
| | |
|
| | | ### Result Codes
|
| | | ### RPC/HTTP Response Codes
|
| | | <table>
|
| | | <tr><th>code</th><th>name</th><th>description</th></tr>
|
| | | <tr><td>200</td><td>success</td><td>Gitblit processed the request successfully</td></tr>
|
| | | <tr><td>401</td><td>unauthorized</td><td>Gitblit requires user credentials to process the request</td></tr>
|
| | | <tr><td>403</td><td>forbidden</td><td>Gitblit can not process the request for the supplied credentials</td></tr>
|
| | | <tr><td>405</td><td>method not allowed</td><td>Gitblit has disallowed the processing the specified request</td></tr>
|
| | | <tr><td>500</td><td>server error</td><td>Gitblit failed to process the request likely because the input object created a conflict</td></tr>
|
| | | <tr><td>501</td><td>unknown request</td><td>Gitblit does not recognize the RPC request type</td></tr>
|
| | | </table>
|
| | |
|
| | | ### Gitblit Manager
|
| | |
|
| | | [Gitblit Manager](http://code.google.com/p/gitblit/downloads/detail?name=%MANAGER%) is an example Java/Swing application that allows remote administration of a Gitblit server.
|
| | | This application exercises most methods from the utility class `com.gitblit.utils.RpcUtils`.
|
| | | This application exercises many, but not all, methods from the utility class `com.gitblit.utils.RpcUtils`.
|
| | |
|
| | | **NOTE:** |
| | | Gitblit Manager stores your login credentials **INSECURELY** in homedir/.gitblit/config.
|
| | |
|
| | | ### EGit "Import from Gitblit" Feature (Planning)
|
| | |
|
| | | One obvious goal of a Gitblit RPC mechanism would be to have an EGit Feature that allows authentication and enumeration of Gitblit repositories from the Eclipse *Import...* menu. Cloning (hopefully batch) would be delegated to EGit.
|
| | |
|
| | | This particular project should not be difficult as the only external dependency for `com.gitblit.utils.RpcUtils` is [google-gson](http://google-gson.googlecode.com) which is already a dependency of the EGit/GitHub Mylyn feature.
|
| | |
|
| | | One proposal from the EGit team is to define a common JSON RPC method for enumeration of repositories which can be implemented by Git hosts. The EGit team would then implement the UI and the client-side enumeration code. This idea was raised as part of this [feature request for EGit](https://bugs.eclipse.org/bugs/show_bug.cgi?id=361251).
|
| | |
|
| | | Currently this project is in the planning stage.
|
| | |
|
| | |
| | | "libraries"
|
| | | ],
|
| | | "isFederated": false,
|
| | | "skipSizeCalculation": false,
|
| | | "skipSummaryMetrics": false,
|
| | | "size": "102 KB"
|
| | | },
|
| | | "https://localhost/git/libraries/smack.git": {
|
| | |
| | | "federationStrategy": "FEDERATE_THIS",
|
| | | "federationSets": [],
|
| | | "isFederated": false,
|
| | | "skipSizeCalculation": false,
|
| | | "skipSummaryMetrics": false,
|
| | | "size": "4.8 MB"
|
| | | }
|
| | | }
|
| | |
| | | "libraries"
|
| | | ],
|
| | | "isFederated": false,
|
| | | "skipSizeCalculation": false,
|
| | | "skipSummaryMetrics": false,
|
| | | "size": "102 KB"
|
| | | }
|
| | | </pre>
|
| | |
| | | ]
|
| | | }
|
| | | ]
|
| | | </pre>
|
| | |
|
| | | ### Example: LIST_SETTINGS
|
| | | **url**: https://localhost/rpc?req=LIST_SETTINGS |
| | | **response body**: ServerSettings
|
| | | <pre>
|
| | | {
|
| | | "settings": {
|
| | | "web.siteName": {
|
| | | "name": "web.siteName",
|
| | | "currentValue": "",
|
| | | "defaultValue": "",
|
| | | "description": "Gitblit Web Settings\nIf blank Gitblit is displayed.",
|
| | | "since": "0.5.0",
|
| | | "caseSensitive": false,
|
| | | "restartRequired": false,
|
| | | "spaceDelimited": false
|
| | | },
|
| | | "web.summaryCommitCount": {
|
| | | "name": "web.summaryCommitCount",
|
| | | "currentValue": "16",
|
| | | "defaultValue": "16",
|
| | | "description": "The number of commits to display on the summary page\nValue must exceed 0 else default of 16 is used",
|
| | | "since": "0.5.0",
|
| | | "caseSensitive": false,
|
| | | "restartRequired": false,
|
| | | "spaceDelimited": false
|
| | | }
|
| | | }
|
| | | }
|
| | | </pre>
|
| | |
|
| | | ### Example: LIST_STATUS
|
| | | **url**: https://localhost/rpc?req=LIST_STATUS |
| | | **response body**: ServerStatus
|
| | | <pre>
|
| | | {
|
| | | "bootDate": "2011-10-22T12:13:00Z",
|
| | | "systemProperties": {
|
| | | "file.encoding": "Cp1252",
|
| | | "java.home": "C:\\Program Files\\Java\\jdk1.6.0_26\\jre",
|
| | | "java.io.tmpdir": "C:\\Users\\JAMESM~1\\AppData\\Local\\Temp\\",
|
| | | "java.runtime.name": "Java(TM) SE Runtime Environment",
|
| | | "java.runtime.version": "1.6.0_26-b03",
|
| | | "java.vendor": "Sun Microsystems Inc.",
|
| | | "java.version": "1.6.0_26",
|
| | | "java.vm.info": "mixed mode",
|
| | | "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
|
| | | "java.vm.vendor": "Sun Microsystems Inc.",
|
| | | "java.vm.version": "20.1-b02",
|
| | | "os.arch": "amd64",
|
| | | "os.name": "Windows 7",
|
| | | "os.version": "6.1"
|
| | | },
|
| | | "heapAllocated": 128057344,
|
| | | "heapFree": 120399168,
|
| | | "heapSize": 1899560960
|
| | | }
|
| | | </pre> |