Fossil SCM
Ported in 7 more json API doc pages. Time to go for a haircut.
Commit
85967b7c46f0f09f1dc7eeb1bee138a7a23f93ae03fb311bd78ed6dd3a0d7177
Parent
e30d67aa455862e…
8 files changed
+45
+46
+53
+53
+7
-6
+22
+59
+8
| --- a/www/json-api/api-checkout.md | ||
| +++ b/www/json-api/api-checkout.md | ||
| @@ -0,0 +1,45 @@ | ||
| 1 | +# JSON API: /status | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +# Status of Local Checkout | |
| 5 | + | |
| 6 | +**Status:** implemented 20130223 | |
| 7 | + | |
| 8 | +**Required permissions:** n/a (local access only) | |
| 9 | + | |
| 10 | +**Request:** `/json/status` | |
| 11 | + | |
| 12 | +This command requir local checkout and is the analog to the "fossil | |
| 13 | +status" command. | |
| 14 | + | |
| 15 | +**Request Options:** currently none. | |
| 16 | + | |
| 17 | +Payload example: | |
| 18 | + | |
| 19 | +```json | |
| 20 | +{ | |
| 21 | +"repository":"/home/stephan/cvs/fossil/fossil.fsl", | |
| 22 | +"localRoot":"/home/stephan/cvs/fossil/fossil/", | |
| 23 | +"checkout":{ | |
| 24 | + "uuid":"b38bb4f9bd27d0347b62ecfac63c4b8f57b5c93b", | |
| 25 | + "tags":["trunk"], | |
| 26 | + "datetime":"2013-02-22 17:34:19 UTC", | |
| 27 | + "timestamp":1361554459 | |
| 28 | + }, | |
| 29 | +/* "parent" info is currently missing. */ | |
| 30 | +"files":[ | |
| 31 | + {"name":"src/checkin.c", "status":"edited"} | |
| 32 | + ...], | |
| 33 | +"errorCount":0 /* see notes below */ | |
| 34 | +} | |
| 35 | +``` | |
| 36 | + | |
| 37 | +Notes: | |
| 38 | + | |
| 39 | +- The `checkout.tags` property follows the framework-wide convention | |
| 40 | + that the first tag in the list is the primary branch and any others | |
| 41 | + are secondary. | |
| 42 | +- `errorCount` is +1 for each missing file. Conflicts are not treated as | |
| 43 | + errors because the CLI 'status' command does noeported in all cases. | |
| 44 | +- TODO: Info for the parent version is currently missing. | |
| 45 | +- TODO: "mer |
| --- a/www/json-api/api-checkout.md | |
| +++ b/www/json-api/api-checkout.md | |
| @@ -0,0 +1,45 @@ | |
| --- a/www/json-api/api-checkout.md | |
| +++ b/www/json-api/api-checkout.md | |
| @@ -0,0 +1,45 @@ | |
| 1 | # JSON API: /status |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | # Status of Local Checkout |
| 5 | |
| 6 | **Status:** implemented 20130223 |
| 7 | |
| 8 | **Required permissions:** n/a (local access only) |
| 9 | |
| 10 | **Request:** `/json/status` |
| 11 | |
| 12 | This command requir local checkout and is the analog to the "fossil |
| 13 | status" command. |
| 14 | |
| 15 | **Request Options:** currently none. |
| 16 | |
| 17 | Payload example: |
| 18 | |
| 19 | ```json |
| 20 | { |
| 21 | "repository":"/home/stephan/cvs/fossil/fossil.fsl", |
| 22 | "localRoot":"/home/stephan/cvs/fossil/fossil/", |
| 23 | "checkout":{ |
| 24 | "uuid":"b38bb4f9bd27d0347b62ecfac63c4b8f57b5c93b", |
| 25 | "tags":["trunk"], |
| 26 | "datetime":"2013-02-22 17:34:19 UTC", |
| 27 | "timestamp":1361554459 |
| 28 | }, |
| 29 | /* "parent" info is currently missing. */ |
| 30 | "files":[ |
| 31 | {"name":"src/checkin.c", "status":"edited"} |
| 32 | ...], |
| 33 | "errorCount":0 /* see notes below */ |
| 34 | } |
| 35 | ``` |
| 36 | |
| 37 | Notes: |
| 38 | |
| 39 | - The `checkout.tags` property follows the framework-wide convention |
| 40 | that the first tag in the list is the primary branch and any others |
| 41 | are secondary. |
| 42 | - `errorCount` is +1 for each missing file. Conflicts are not treated as |
| 43 | errors because the CLI 'status' command does noeported in all cases. |
| 44 | - TODO: Info for the parent version is currently missing. |
| 45 | - TODO: "mer |
+46
| --- a/www/json-api/api-diff.md | ||
| +++ b/www/json-api/api-diff.md | ||
| @@ -0,0 +1,46 @@ | ||
| 1 | +# JSON API: /diff | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +# Diffs | |
| 5 | + | |
| 6 | +**Status:** implemented 20111007 | |
| 7 | + | |
| 8 | +**Required permissions:** "o" | |
| 9 | + | |
| 10 | +**Request:** `/json/diff[/version1[/version2]]` | |
| 11 | + | |
| 12 | +**Request options:** | |
| 13 | + | |
| 14 | +- `v1=string` Is the "from" version. It may optionally be the first | |
| 15 | + positional parameter/path element after the command name. | |
| 16 | +- `v2=string` Is the "to" version. It may optionally be the first | |
| 17 | + positional parameter/path element after the v1 part. | |
| 18 | +- `context=integer` (default=unspecified) Defines the number of context | |
| 19 | + lines to display in the diff.\ | |
| 20 | + CLI: `--context|-c` | |
| 21 | +- `sbs=bool` (default=false) Generates "side-by-side" diffs, but their | |
| 22 | + utility in JSON mode is questionable. | |
| 23 | +- `html=bool` (default=false) causes the output to be marked up with | |
| 24 | + HTML in the same manner as it is in the HTML interface. | |
| 25 | + | |
| 26 | +**Response payload example:** | |
| 27 | + | |
| 28 | +```json | |
| 29 | +{ | |
| 30 | +"from":"7a83a5cbd0424cefa2cdc001de60153aede530f5", | |
| 31 | +"to":"96920e7c04746c55ceed6e24fc82879886cb8197", | |
| 32 | +"diff":"@@ -1,7 +1,7 @@\\n-C factored\\\\sout..." | |
| 33 | +} | |
| 34 | +``` | |
| 35 | + | |
| 36 | +TODOs: | |
| 37 | + | |
| 38 | +- Unlike the standard diff command, which apparently requires commit | |
| 39 | + UUID requires a commit | |
| 40 | + hash,UUID is | |
| 41 | + provided, a diff of the manifests is returned. (That should be | |
| 42 | + considered a bug - we should return a combined diff in that case.) | |
| 43 | +- If UUIDin that case.) | |
| 44 | +- If hashes from two different types of artifacts are given, results | |
| 45 | + are unspecified. Garbage in, garbage out, and all that. | |
| 46 | +- For file |
| --- a/www/json-api/api-diff.md | |
| +++ b/www/json-api/api-diff.md | |
| @@ -0,0 +1,46 @@ | |
| --- a/www/json-api/api-diff.md | |
| +++ b/www/json-api/api-diff.md | |
| @@ -0,0 +1,46 @@ | |
| 1 | # JSON API: /diff |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | # Diffs |
| 5 | |
| 6 | **Status:** implemented 20111007 |
| 7 | |
| 8 | **Required permissions:** "o" |
| 9 | |
| 10 | **Request:** `/json/diff[/version1[/version2]]` |
| 11 | |
| 12 | **Request options:** |
| 13 | |
| 14 | - `v1=string` Is the "from" version. It may optionally be the first |
| 15 | positional parameter/path element after the command name. |
| 16 | - `v2=string` Is the "to" version. It may optionally be the first |
| 17 | positional parameter/path element after the v1 part. |
| 18 | - `context=integer` (default=unspecified) Defines the number of context |
| 19 | lines to display in the diff.\ |
| 20 | CLI: `--context|-c` |
| 21 | - `sbs=bool` (default=false) Generates "side-by-side" diffs, but their |
| 22 | utility in JSON mode is questionable. |
| 23 | - `html=bool` (default=false) causes the output to be marked up with |
| 24 | HTML in the same manner as it is in the HTML interface. |
| 25 | |
| 26 | **Response payload example:** |
| 27 | |
| 28 | ```json |
| 29 | { |
| 30 | "from":"7a83a5cbd0424cefa2cdc001de60153aede530f5", |
| 31 | "to":"96920e7c04746c55ceed6e24fc82879886cb8197", |
| 32 | "diff":"@@ -1,7 +1,7 @@\\n-C factored\\\\sout..." |
| 33 | } |
| 34 | ``` |
| 35 | |
| 36 | TODOs: |
| 37 | |
| 38 | - Unlike the standard diff command, which apparently requires commit |
| 39 | UUID requires a commit |
| 40 | hash,UUID is |
| 41 | provided, a diff of the manifests is returned. (That should be |
| 42 | considered a bug - we should return a combined diff in that case.) |
| 43 | - If UUIDin that case.) |
| 44 | - If hashes from two different types of artifacts are given, results |
| 45 | are unspecified. Garbage in, garbage out, and all that. |
| 46 | - For file |
+53
| --- a/www/json-api/api-dir.md | ||
| +++ b/www/json-api/api-dir.md | ||
| @@ -0,0 +1,53 @@ | ||
| 1 | +# JSON API: /dir | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +# Directory Listing | |
| 5 | + | |
| 6 | +**Status:** implemented 20120316 | |
| 7 | + | |
| 8 | +**Required privileges:** "o". Was "h" prior to 20120720, but the HTML | |
| 9 | +version of /dir changed permissions and this API was modified to match | |
| 10 | +it. | |
| 11 | + | |
| 12 | +**Request:** `/json/dir` | |
| 13 | + | |
| 14 | +Options: | |
| 15 | + | |
| 16 | +- `checkin=commit` (use "tip" for the latest). If checkin is not set | |
| 17 | + then all files from all versions of the tree are returned (but only | |
| 18 | + once per file - not with complete version info for each file in all | |
| 19 | + branches).\ | |
| 20 | + CLI: `--checkin|-ci CHECKIN` | |
| 21 | +- `name=subdirectory` name. To fetch the root directory, don't pass this | |
| 22 | + option, or use an empty value or "/".\ | |
| 23 | + CLI: use `--name|-n NAME` or pass it as the first argument after | |
| 24 | + the `dir` subcommand. | |
| 25 | + | |
| 26 | +**Response payload example:** | |
| 27 | + | |
| 28 | +```json | |
| 29 | +{ | |
| 30 | + "name":"/", /* dir name */ | |
| 31 | + "uuid":"ac6366218035ed62254c8d458f30801273e5d4fc", | |
| 32 | + "checkin":"tip", | |
| 33 | + "entries":[{ | |
| 34 | + "name": "ajax", /* file name/dir name fragment */ | |
| 35 | + "isDir": true, /* only set for directories */ | |
| 36 | + /* The following properties are ONLY set if | |
| 37 | + the 'checkin' parameter is provided. | |
| 38 | + */ | |
| 39 | + "uuid": "..." /*only for files, not dirs*/, | |
| 40 | + "size": number, | |
| 41 | + "timestamp": number | |
| 42 | + },...] | |
| 43 | +} | |
| 44 | +``` | |
| 45 | + | |
| 46 | +The checkin property is only set if the request includes it. The | |
| 47 | +entry-specific uuid and size properties (e.g. `entries[0].uuid`) are | |
| 48 | +only set if the checkin request property is set and they refer to the | |
| 49 | +latest version of that file for the given checkin. The `isDir` property is | |
| 50 | +only set on directory entries. | |
| 51 | + | |
| 52 | +This command does not recurse into subdirectories, though it "should be" | |
| 53 | +simple enough to add the option to do so. |
| --- a/www/json-api/api-dir.md | |
| +++ b/www/json-api/api-dir.md | |
| @@ -0,0 +1,53 @@ | |
| --- a/www/json-api/api-dir.md | |
| +++ b/www/json-api/api-dir.md | |
| @@ -0,0 +1,53 @@ | |
| 1 | # JSON API: /dir |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | # Directory Listing |
| 5 | |
| 6 | **Status:** implemented 20120316 |
| 7 | |
| 8 | **Required privileges:** "o". Was "h" prior to 20120720, but the HTML |
| 9 | version of /dir changed permissions and this API was modified to match |
| 10 | it. |
| 11 | |
| 12 | **Request:** `/json/dir` |
| 13 | |
| 14 | Options: |
| 15 | |
| 16 | - `checkin=commit` (use "tip" for the latest). If checkin is not set |
| 17 | then all files from all versions of the tree are returned (but only |
| 18 | once per file - not with complete version info for each file in all |
| 19 | branches).\ |
| 20 | CLI: `--checkin|-ci CHECKIN` |
| 21 | - `name=subdirectory` name. To fetch the root directory, don't pass this |
| 22 | option, or use an empty value or "/".\ |
| 23 | CLI: use `--name|-n NAME` or pass it as the first argument after |
| 24 | the `dir` subcommand. |
| 25 | |
| 26 | **Response payload example:** |
| 27 | |
| 28 | ```json |
| 29 | { |
| 30 | "name":"/", /* dir name */ |
| 31 | "uuid":"ac6366218035ed62254c8d458f30801273e5d4fc", |
| 32 | "checkin":"tip", |
| 33 | "entries":[{ |
| 34 | "name": "ajax", /* file name/dir name fragment */ |
| 35 | "isDir": true, /* only set for directories */ |
| 36 | /* The following properties are ONLY set if |
| 37 | the 'checkin' parameter is provided. |
| 38 | */ |
| 39 | "uuid": "..." /*only for files, not dirs*/, |
| 40 | "size": number, |
| 41 | "timestamp": number |
| 42 | },...] |
| 43 | } |
| 44 | ``` |
| 45 | |
| 46 | The checkin property is only set if the request includes it. The |
| 47 | entry-specific uuid and size properties (e.g. `entries[0].uuid`) are |
| 48 | only set if the checkin request property is set and they refer to the |
| 49 | latest version of that file for the given checkin. The `isDir` property is |
| 50 | only set on directory entries. |
| 51 | |
| 52 | This command does not recurse into subdirectories, though it "should be" |
| 53 | simple enough to add the option to do so. |
| --- a/www/json-api/api-finfo.md | ||
| +++ b/www/json-api/api-finfo.md | ||
| @@ -0,0 +1,53 @@ | ||
| 1 | +# JSON API: /finfo | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +# File Information | |
| 5 | + | |
| 6 | +**Status:** implemented 2012-something, but output structure is likely | |
| 7 | +to change. | |
| 8 | + | |
| 9 | +**Required privileges:** "o" | |
| 10 | + | |
| 11 | +**Request:** `/json/finfo?name=path/to/file` | |
| 12 | + | |
| 13 | +Options: | |
| 14 | + | |
| 15 | +- `name=string`. Required. Use the absolute name of the file, including | |
| 16 | + any directory parts, and without a leading slash. e.g. | |
| 17 | + `"path/to/my.c"`.\ | |
| 18 | + CLI mode: `--name` or positional argument. | |
| 19 | +- `checkin=string`. Only return info related to this specific checkin, | |
| 20 | + as opposed to listing all checkins. If set, neither "before" nor | |
| 21 | + "after" have any effect.\ | |
| 22 | + CLI mode: `--checkin|-ci` | |
| 23 | +- `before=DATETIME` only lists checkins from on or before this time.\ | |
| 24 | + CLI mode: `--before|-b` | |
| 25 | +- `after=DATETIME` onlybefores checkins from on or after this time. | |
| 26 | + Using this option swaps the sort order, to provide reasonable | |
| 27 | + behaviour in conjunction with the limit option.\ | |
| 28 | + Only one of "before" and "after" may be specified, and if both are | |
| 29 | + specified then which one takes precedence is unspecified.\ | |
| 30 | + CLI mode: `--after|-a` | |
| 31 | +- `limit=integer` limits the output to (at most) the given number of | |
| 32 | + associated checkins.\ | |
| 33 | + CLI mode: `--limit|-n` | |
| 34 | + | |
| 35 | +**Response payload example (very likely to change!):** | |
| 36 | + | |
| 37 | +```json | |
| 38 | +{ | |
| 39 | +"name":"ajax/i-test/rhino-shell.js", | |
| 40 | +"checkins":[{ | |
| 41 | + "checkin":"6b7ddfefbfb871f793378d8f276fe829106ca49b", | |
| 42 | + "uuid":"2b735676d55e3d06d670ffbc643e5d3f748b95ea", | |
| 43 | + "timestamp":1329514170, | |
| 44 | + "user":"viriketo", | |
| 45 | + "comment":"<...snip...>", | |
| 46 | + "size":6293, | |
| 47 | + "state":"added|modified|removed" | |
| 48 | + },…] | |
| 49 | +} | |
| 50 | +``` | |
| 51 | + | |
| 52 | +**FIXME:** there is a semantic discrepancy between `/json/artifact`'s | |
| 53 | +`payload.checkins[N] |
| --- a/www/json-api/api-finfo.md | |
| +++ b/www/json-api/api-finfo.md | |
| @@ -0,0 +1,53 @@ | |
| --- a/www/json-api/api-finfo.md | |
| +++ b/www/json-api/api-finfo.md | |
| @@ -0,0 +1,53 @@ | |
| 1 | # JSON API: /finfo |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | # File Information |
| 5 | |
| 6 | **Status:** implemented 2012-something, but output structure is likely |
| 7 | to change. |
| 8 | |
| 9 | **Required privileges:** "o" |
| 10 | |
| 11 | **Request:** `/json/finfo?name=path/to/file` |
| 12 | |
| 13 | Options: |
| 14 | |
| 15 | - `name=string`. Required. Use the absolute name of the file, including |
| 16 | any directory parts, and without a leading slash. e.g. |
| 17 | `"path/to/my.c"`.\ |
| 18 | CLI mode: `--name` or positional argument. |
| 19 | - `checkin=string`. Only return info related to this specific checkin, |
| 20 | as opposed to listing all checkins. If set, neither "before" nor |
| 21 | "after" have any effect.\ |
| 22 | CLI mode: `--checkin|-ci` |
| 23 | - `before=DATETIME` only lists checkins from on or before this time.\ |
| 24 | CLI mode: `--before|-b` |
| 25 | - `after=DATETIME` onlybefores checkins from on or after this time. |
| 26 | Using this option swaps the sort order, to provide reasonable |
| 27 | behaviour in conjunction with the limit option.\ |
| 28 | Only one of "before" and "after" may be specified, and if both are |
| 29 | specified then which one takes precedence is unspecified.\ |
| 30 | CLI mode: `--after|-a` |
| 31 | - `limit=integer` limits the output to (at most) the given number of |
| 32 | associated checkins.\ |
| 33 | CLI mode: `--limit|-n` |
| 34 | |
| 35 | **Response payload example (very likely to change!):** |
| 36 | |
| 37 | ```json |
| 38 | { |
| 39 | "name":"ajax/i-test/rhino-shell.js", |
| 40 | "checkins":[{ |
| 41 | "checkin":"6b7ddfefbfb871f793378d8f276fe829106ca49b", |
| 42 | "uuid":"2b735676d55e3d06d670ffbc643e5d3f748b95ea", |
| 43 | "timestamp":1329514170, |
| 44 | "user":"viriketo", |
| 45 | "comment":"<...snip...>", |
| 46 | "size":6293, |
| 47 | "state":"added|modified|removed" |
| 48 | },…] |
| 49 | } |
| 50 | ``` |
| 51 | |
| 52 | **FIXME:** there is a semantic discrepancy between `/json/artifact`'s |
| 53 | `payload.checkins[N] |
+7
-6
| --- www/json-api/api-index.md | ||
| +++ www/json-api/api-index.md | ||
| @@ -14,17 +14,18 @@ | ||
| 14 | 14 | The APIs, alphabetically by category: |
| 15 | 15 | |
| 16 | 16 | * [Artifact Info](api-artifact.md) |
| 17 | 17 | * [Authentication](api-auth.md) |
| 18 | 18 | * [Branches](api-branch.md) |
| 19 | +* [Checkout Status](api-checkout.md) | |
| 19 | 20 | * [Config](api-config.md) |
| 20 | -* TODO [Diffs](api-diffs.md) | |
| 21 | -* TODO [Directory Listing](api-dir.md) | |
| 22 | -* TODO [File Info](api-finfo.md) | |
| 23 | -* TODO [SQL Query](api-query.md) | |
| 24 | -* TODO [Stats](api-stats.md) | |
| 25 | -* TODO [Tags](api-tags.md) | |
| 21 | +* [Diffs](api-diff.md) | |
| 22 | +* [Directory Listing](api-dir.md) | |
| 23 | +* [File Info](api-finfo.md) | |
| 24 | +* [Repository Stats](api-stat.md) | |
| 25 | +* [SQL Query](api-query.md) | |
| 26 | +* [Tags](api-tag.md) | |
| 26 | 27 | * TODO [Tickets](api-tickets.md) |
| 27 | 28 | * TODO [Timeline](api-timeline.md) |
| 28 | 29 | * TODO [User Management](api-users.md) |
| 29 | 30 | * TODO [Version](api-version.md) |
| 30 | 31 | * [Wiki](api-wiki.md) |
| 31 | 32 | |
| 32 | 33 | ADDED www/json-api/api-query.md |
| 33 | 34 | ADDED www/json-api/api-stat.md |
| 34 | 35 | ADDED www/json-api/api-tag.md |
| --- www/json-api/api-index.md | |
| +++ www/json-api/api-index.md | |
| @@ -14,17 +14,18 @@ | |
| 14 | The APIs, alphabetically by category: |
| 15 | |
| 16 | * [Artifact Info](api-artifact.md) |
| 17 | * [Authentication](api-auth.md) |
| 18 | * [Branches](api-branch.md) |
| 19 | * [Config](api-config.md) |
| 20 | * TODO [Diffs](api-diffs.md) |
| 21 | * TODO [Directory Listing](api-dir.md) |
| 22 | * TODO [File Info](api-finfo.md) |
| 23 | * TODO [SQL Query](api-query.md) |
| 24 | * TODO [Stats](api-stats.md) |
| 25 | * TODO [Tags](api-tags.md) |
| 26 | * TODO [Tickets](api-tickets.md) |
| 27 | * TODO [Timeline](api-timeline.md) |
| 28 | * TODO [User Management](api-users.md) |
| 29 | * TODO [Version](api-version.md) |
| 30 | * [Wiki](api-wiki.md) |
| 31 | |
| 32 | DDED www/json-api/api-query.md |
| 33 | DDED www/json-api/api-stat.md |
| 34 | DDED www/json-api/api-tag.md |
| --- www/json-api/api-index.md | |
| +++ www/json-api/api-index.md | |
| @@ -14,17 +14,18 @@ | |
| 14 | The APIs, alphabetically by category: |
| 15 | |
| 16 | * [Artifact Info](api-artifact.md) |
| 17 | * [Authentication](api-auth.md) |
| 18 | * [Branches](api-branch.md) |
| 19 | * [Checkout Status](api-checkout.md) |
| 20 | * [Config](api-config.md) |
| 21 | * [Diffs](api-diff.md) |
| 22 | * [Directory Listing](api-dir.md) |
| 23 | * [File Info](api-finfo.md) |
| 24 | * [Repository Stats](api-stat.md) |
| 25 | * [SQL Query](api-query.md) |
| 26 | * [Tags](api-tag.md) |
| 27 | * TODO [Tickets](api-tickets.md) |
| 28 | * TODO [Timeline](api-timeline.md) |
| 29 | * TODO [User Management](api-users.md) |
| 30 | * TODO [Version](api-version.md) |
| 31 | * [Wiki](api-wiki.md) |
| 32 | |
| 33 | DDED www/json-api/api-query.md |
| 34 | DDED www/json-api/api-stat.md |
| 35 | DDED www/json-api/api-tag.md |
| --- a/www/json-api/api-query.md | ||
| +++ b/www/json-api/api-query.md | ||
| @@ -0,0 +1,22 @@ | ||
| 1 | +# JSON API: /query | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +# SQL Query | |
| 5 | + | |
| 6 | +**Status:** implemented 20111008 | |
| 7 | + | |
| 8 | +**Required privileges:** "a" or "s" | |
| 9 | + | |
| 10 | +**Request:** `/json/query` | |
| 11 | + | |
| 12 | +Potential FIXME: restrict this to queries which return results, as opposed | |
| 13 | +to those which may modify data. | |
| 14 | + | |
| 15 | +Options: | |
| 16 | + | |
| 17 | +- `sql=string` The SQL code to run. It is expected that it be a SELECT | |
| 18 | + statement, but that is not enforced. This parameter may be set as a | |
| 19 | + POST.payload property, as the POST.payload itself, GET, or as a | |
| 20 | + positional parameter coming after the command name (CLI and HTTP | |
| 21 | + modes, though the escaping would be unsightly in HTTP mode). | |
| 22 | +- `format=string` (default="o"). |
| --- a/www/json-api/api-query.md | |
| +++ b/www/json-api/api-query.md | |
| @@ -0,0 +1,22 @@ | |
| --- a/www/json-api/api-query.md | |
| +++ b/www/json-api/api-query.md | |
| @@ -0,0 +1,22 @@ | |
| 1 | # JSON API: /query |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | # SQL Query |
| 5 | |
| 6 | **Status:** implemented 20111008 |
| 7 | |
| 8 | **Required privileges:** "a" or "s" |
| 9 | |
| 10 | **Request:** `/json/query` |
| 11 | |
| 12 | Potential FIXME: restrict this to queries which return results, as opposed |
| 13 | to those which may modify data. |
| 14 | |
| 15 | Options: |
| 16 | |
| 17 | - `sql=string` The SQL code to run. It is expected that it be a SELECT |
| 18 | statement, but that is not enforced. This parameter may be set as a |
| 19 | POST.payload property, as the POST.payload itself, GET, or as a |
| 20 | positional parameter coming after the command name (CLI and HTTP |
| 21 | modes, though the escaping would be unsightly in HTTP mode). |
| 22 | - `format=string` (default="o"). |
+59
| --- a/www/json-api/api-stat.md | ||
| +++ b/www/json-api/api-stat.md | ||
| @@ -0,0 +1,59 @@ | ||
| 1 | +# JSON API: /stat | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +# Repository Stats | |
| 5 | + | |
| 6 | +**Status:** implemented | |
| 7 | + | |
| 8 | +**Required privileges:** "o" | |
| 9 | + | |
| 10 | +**Request:** `/json/stat` | |
| 11 | + | |
| 12 | +**Response payload example:** (fields marked with `*` are omitted in | |
| 13 | +"brief" mode) | |
| 14 | + | |
| 15 | +```json | |
| 16 | +{ | |
| 17 | +"projectName":"Fossil", | |
| 18 | +"projectDescription":"Fossil SCM", /* added 20120217 */ | |
| 19 | +"repositorySize":24464384, | |
| 20 | +* "blobCount":13612, | |
| 21 | +* "deltaCount":9348, | |
| 22 | +* "uncompressedArtifactSize":589205834, | |
| 23 | +* "averageArtifactSize":43292, | |
| 24 | +* "maxArtifactSize":4620758, | |
| 25 | +* "compressionRatio":"24:1", | |
| 26 | +* "checkinCount":3150, | |
| 27 | +* "fileCount":456, | |
| 28 | +* "wikiPageCount":23, | |
| 29 | +* "ticketCount":940, | |
| 30 | +"ageDays":1512, | |
| 31 | +"ageYears":4.139744, | |
| 32 | +"projectCode":"25d3a4b83202c0d616a5ed17334f180dac4434dc", | |
| 33 | +"compiler":"gcc-4.1.2 20080704 (Red Hat 4.1.2-50)", | |
| 34 | +"sqlite":{ | |
| 35 | + "version":"2011-09-04 01:27:00 [6b657ae750] (3.7.8)", | |
| 36 | + "pageCount":23891, | |
| 37 | + "pageSize":1024, | |
| 38 | + "freeList":2705, | |
| 39 | + "encoding":"UTF-8", | |
| 40 | + "journalMode":"delete" | |
| 41 | +} | |
| 42 | +} | |
| 43 | +``` | |
| 44 | + | |
| 45 | +**Options:** | |
| 46 | + | |
| 47 | +- "Full detail" mode:\ | |
| 48 | + **HTTP/payload parameter:** full=bool\ | |
| 49 | + **CLI MODE:** -f|--full with no value.\ | |
| 50 | + If true then all properties are included, else certain properties | |
| 51 | + are omitted from the payload (because they take a relatively long | |
| 52 | + time to calculate).\ | |
| 53 | + **TODO:** rename this to verbose, for consistency.\ | |
| 54 | + **Default=false**. *This is in contrast to the HTML interface*, | |
| 55 | + which defaults to full detail mode. Testing shows stat to have a | |
| 56 | + relatively high per-call cost/run time, so it defaults | |
| 57 | + to "brief" mode by default. Full-detail mode can, on slow hardware, | |
| 58 | + take half a minute to respond, whereas non-full mode takes well | |
| 59 | + under one second. |
| --- a/www/json-api/api-stat.md | |
| +++ b/www/json-api/api-stat.md | |
| @@ -0,0 +1,59 @@ | |
| --- a/www/json-api/api-stat.md | |
| +++ b/www/json-api/api-stat.md | |
| @@ -0,0 +1,59 @@ | |
| 1 | # JSON API: /stat |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | # Repository Stats |
| 5 | |
| 6 | **Status:** implemented |
| 7 | |
| 8 | **Required privileges:** "o" |
| 9 | |
| 10 | **Request:** `/json/stat` |
| 11 | |
| 12 | **Response payload example:** (fields marked with `*` are omitted in |
| 13 | "brief" mode) |
| 14 | |
| 15 | ```json |
| 16 | { |
| 17 | "projectName":"Fossil", |
| 18 | "projectDescription":"Fossil SCM", /* added 20120217 */ |
| 19 | "repositorySize":24464384, |
| 20 | * "blobCount":13612, |
| 21 | * "deltaCount":9348, |
| 22 | * "uncompressedArtifactSize":589205834, |
| 23 | * "averageArtifactSize":43292, |
| 24 | * "maxArtifactSize":4620758, |
| 25 | * "compressionRatio":"24:1", |
| 26 | * "checkinCount":3150, |
| 27 | * "fileCount":456, |
| 28 | * "wikiPageCount":23, |
| 29 | * "ticketCount":940, |
| 30 | "ageDays":1512, |
| 31 | "ageYears":4.139744, |
| 32 | "projectCode":"25d3a4b83202c0d616a5ed17334f180dac4434dc", |
| 33 | "compiler":"gcc-4.1.2 20080704 (Red Hat 4.1.2-50)", |
| 34 | "sqlite":{ |
| 35 | "version":"2011-09-04 01:27:00 [6b657ae750] (3.7.8)", |
| 36 | "pageCount":23891, |
| 37 | "pageSize":1024, |
| 38 | "freeList":2705, |
| 39 | "encoding":"UTF-8", |
| 40 | "journalMode":"delete" |
| 41 | } |
| 42 | } |
| 43 | ``` |
| 44 | |
| 45 | **Options:** |
| 46 | |
| 47 | - "Full detail" mode:\ |
| 48 | **HTTP/payload parameter:** full=bool\ |
| 49 | **CLI MODE:** -f|--full with no value.\ |
| 50 | If true then all properties are included, else certain properties |
| 51 | are omitted from the payload (because they take a relatively long |
| 52 | time to calculate).\ |
| 53 | **TODO:** rename this to verbose, for consistency.\ |
| 54 | **Default=false**. *This is in contrast to the HTML interface*, |
| 55 | which defaults to full detail mode. Testing shows stat to have a |
| 56 | relatively high per-call cost/run time, so it defaults |
| 57 | to "brief" mode by default. Full-detail mode can, on slow hardware, |
| 58 | take half a minute to respond, whereas non-full mode takes well |
| 59 | under one second. |
| --- a/www/json-api/api-tag.md | ||
| +++ b/www/json-api/api-tag.md | ||
| @@ -0,0 +1,8 @@ | ||
| 1 | +# JSON API: /tag | |
| 2 | +([⬑JSON API Index](index.md)) | |
| 3 | + | |
| 4 | +Jump to: | |
| 5 | + | |
| 6 | +* [Add](#add) | |
| 7 | +* [Cancel](#cancelappliedTo properUUID | |
| 8 | + strings, else |
| --- a/www/json-api/api-tag.md | |
| +++ b/www/json-api/api-tag.md | |
| @@ -0,0 +1,8 @@ | |
| --- a/www/json-api/api-tag.md | |
| +++ b/www/json-api/api-tag.md | |
| @@ -0,0 +1,8 @@ | |
| 1 | # JSON API: /tag |
| 2 | ([⬑JSON API Index](index.md)) |
| 3 | |
| 4 | Jump to: |
| 5 | |
| 6 | * [Add](#add) |
| 7 | * [Cancel](#cancelappliedTo properUUID |
| 8 | strings, else |