Sebastian Martinez
73221e43d7
httpd: Add more revision properties to patch
...
For display purposes in the web client, we add with this commit the
some needed properties to the revisions in the patch endpoint.
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-03-20 18:43:06 +01:00
Rūdolfs Ošiņš
d40f40b9af
httpd: Use camelCase in query params
...
It's more ergonomic to consume in JS/TS.
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-03-17 17:11:00 +01:00
Sebastian Martinez
2c0cdcd1c5
httpd: Add timestamp to revisions json
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-03-17 13:54:48 +01:00
Rūdolfs Ošiņš
fdd6bca311
httpd: Fix status code in commit history endpoint
...
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-03-15 10:17:41 +01:00
xphoniex
29b933e485
httpd: Use `RID` in tests
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-03-13 16:25:26 +01:00
Alexis Sellier
7266729924
Make Patch `state` field similar to Issue
...
Since they are similar objects, they should have similar structure.
This also makes it easier to add state metadata like for issues.
2023-03-13 13:55:12 +01:00
Alexis Sellier
aacacf872f
cob: Use `EntryId` as the operation identifier
...
By introducing a small limitation: only allowing entries in the change
graph to be addressable, instead of individual operations; we
drastically simplify the CRDT implementation.
There are four advantages:
1. Op ids are just regular SHA-1s
2. There's no need for relative IDs, ops never refer to other ops within the
same commit
3. There's no need for a nonce, since commits can't collide, and neither can op IDs
4. `OpId` can just be an alias of `EntryId`
The disadvantage of course, is that we have to be mindful of how we
create op transactions, since each transaction creates an addressable
unit. For example, we must not include multiple patch revisions in the
same transaction.
2023-03-09 17:08:56 +01:00
xphoniex
c7a955e9fe
httpd: Run tests off another remote for `test::seed`
...
Keep `test::contributor(..)` to test interactions with a contributor node.
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-03-08 15:27:13 +01:00
Alexis Sellier
9000a626d7
Use commit oid for COB parent
...
We were using the blob oid, which was causing the commit tree to
be invalid.
2023-03-06 15:39:34 +01:00
Alexis Sellier
8c22012d61
Remove need to pass public key in cob store
2023-03-06 10:56:20 +01:00
Sebastian Martinez
05d2487a47
httpd: Add patch creation endpoint
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-03-06 10:26:38 +01:00
Sebastian Martinez
796ae2f96a
httpd: Sort issues and patches by creation date
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-03-01 13:02:09 +01:00
Alexis Sellier
1bb6f9a921
httpd: Don't load project payload twice
2023-02-28 18:37:26 +01:00
xphoniex
de24a04621
httpd: Use `repo.identity_doc()` instead of `repo.identity_of(..)`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-28 18:08:26 +01:00
Alexis Sellier
06a92d52d9
cob: Use hashes for operation ids
...
It's fairly easy for a user to (by mistake or intentionally) create two
operations with the same OpId. This patch makes it much less likely,
and ensures that if the OpId is equal, it's because the operations
are identical.
2023-02-27 17:11:48 +01:00
Sebastian Martinez
97a2f8c1df
httpd: Add issue and patch counts
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-27 12:57:20 +01:00
xphoniex
34b15f9f16
httpd: Add `/raw` route
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-23 06:16:37 +00:00
xphoniex
f290f6b4a5
httpd: Move `test` utility mod from inside `api` to root
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-22 17:06:32 +01:00
Sebastian Martinez
b04451a1bd
Use `Did` in a bunch more places
...
Instead of showing just public keys we need to show the fully qualified
spec for a NID which is prefixed by `did🔑 ` While we want to maintain
`Author` and `ActorId` for internal use.
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-16 18:01:42 +01:00
xphoniex
a1e1e04fd9
httpd: Return correct count for `patches`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-16 16:51:02 +01:00
Alexis Sellier
950fae209d
Make `ReadStorage` more usable
...
Previously, we were not able to access a `ReadRepository` instance
through `ReadStorage`. With this change, we are able to.
2023-02-15 22:08:20 +01:00
Sebastian Martinez
867eea5c38
httpd: Add delegates to project routes
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-14 14:50:42 +01:00
Sebastian Martinez
881e9af219
httpd: Add `assignees` to `Issues::create`
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-13 13:47:15 +01:00
xphoniex
bdc0ab9881
Update `radicle-git` and `radicle-surf`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-10 22:14:50 +01:00
Sebastian Martinez
a57b33c785
httpd: Add `api::test::patch` request method
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-10 12:17:03 +01:00
Sebastian Martinez
1128842457
httpd: Add DELETE route to remove sessions
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-07 20:59:06 +01:00
Sebastian Martinez
af3ea6a11a
httpd: Add issue endpoints
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-06 14:14:06 +01:00
Sebastian Martinez
b4ddb31cf3
Extract `json!` into `api::json`
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-04 19:42:14 +01:00
Sebastian Martinez
d9f878bc45
httpd: Remove session serialization, improve tests
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-04 19:39:25 +01:00
Sebastian Martinez
58eeb3ab91
httpd: Refactor auth and session handling
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-04 19:38:26 +01:00
Sebastian Martinez
3d0a68eeb5
httpd: Remove session serialize and rework
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-04 19:37:35 +01:00
Sebastian Martinez
34064ef8b5
Add `GET /api/v1/sessions/:id` route to get session information
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-02-04 19:35:58 +01:00
xphoniex
c1ba45fcd8
httpd: Extract `issue` json response
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-04 13:46:26 +00:00
xphoniex
4552c1f296
httpd: Add routes for patch ops
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-02-04 13:22:09 +00:00
Alexis Sellier
f1a6a86689
node: Check refs when getting local inventory
...
If we don't do this, we're going to be returning broken repos.
2023-01-30 11:38:00 +01:00
Sebastian Martinez
f07a875ce1
Add web-based authentication
...
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-01-27 17:23:05 +01:00
xphoniex
a3f4c2ec67
httpd: Remove `lastCommit` in `/tree` for entries
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-01-25 15:35:24 +01:00
xphoniex
ccbcdd4998
httpd: Change `sha1` into `id`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-01-25 15:35:24 +01:00
xphoniex
57fbc1ed46
httpd: Use `commits`/`commit` instead of `headers`/`header`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-01-25 15:35:24 +01:00
xphoniex
f065bce876
httpd: change `committerTime` into `committer.time`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-01-25 15:35:24 +01:00
xphoniex
7ec903d712
httpd: Update axum from 0.5.x to 0.6.x
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-01-18 14:09:48 +00:00
Han Xu
4ea67250ea
httpd: Dogfood the new radicle-surf API
...
Signed-off-by: Han Xu <keepsimple@gmail.com>
2023-01-18 14:22:01 +01:00
xphoniex
7962ac0a8e
httpd: Add api tests
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-01-12 20:30:53 +01:00
Alexis Sellier
911c194fb3
cob: Create proper `OpId` type
...
To still access a comment's author, we add a new `author` field.
2022-12-31 09:58:51 +01:00
xphoniex
1f55d7a327
Update `radicle-git` to `79a94721366490053e2d8ac1c1afa14fb0c25f09`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2022-12-23 13:22:55 +01:00
Alexis Sellier
e47d7ca2aa
cob: Implement comment edit action
...
This implementation intentionally preserves all edits such that
they may be displayed in an application as an edit history.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-16 12:32:20 +01:00
Alexis Sellier
98c1566109
Make `Doc` type payload generic
2022-12-09 22:05:38 +01:00
xphoniex
46951b1b42
httpd: Use `HashSet` instead of `BTreeSet`
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2022-12-09 10:49:28 +01:00
xphoniex
fb8020e582
httpd: Conform response from issue handlers to previous model
...
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2022-12-09 10:49:09 +01:00
Alexis Sellier
5d2be57cd9
Rename patch/issue "status"
...
This reverts to the previous naming, since after serialization
we would otherwise end up with `{ status: { status: closed } }`.
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-12-09 10:44:59 +01:00