Commit Graph
647 Commits
Author SHA1 Message Date
Fintan Halpenny 7ddb1119a5 cli: show revision on rad patch checkout
Help the user know which revision they currently have checked out when
running `rad patch checkout`.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-11 11:56:11 +01:00
Fintan Halpenny 87d1cb50a0 fetch: allow fetch of annotated tags
If an ancestry check of an annotated tag was triggered then the fetch
from that peer would fail. This is due to `graph_ahead_behind` only
working for commit-ish objects.

To allow for annotated tags, and other object that peel to commits,
the check now peels the two objects to commits before getting their
`Oid`s. The call to `graph_ahead_behind` can take these two `Oid`s
instead.

A test for annotated tags is included as part of the `examples/git`
suite in the CLI tests.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-11 11:13:26 +01:00
Sebastian Martinez 9950182ee0 cli: Remove rad-web from help
Due to it not being stable, and eventually the auth flow to be
rewritten, it should be removed.
2024-03-11 11:06:32 +01:00
cloudhead b917c1b411 cli: Rename rad ls --seeds flag
Rename to `--seeded` as per our discussion in Zulip.
2024-03-11 10:46:09 +01:00
cloudhead d1e2e3b61e cli: Fix some tests 2024-03-09 14:01:30 +01:00
Zlatan Todoric acf71fceaa cli: Update help output 2024-03-09 13:51:30 +01:00
Fintan Halpenny cac6c0aad7 cli: add name to rad seed output
If the name is available to show for the repository -- it may not be
if it hasn't been replicated yet -- then add it to the output of the
`rad seed` command.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-09 13:45:35 +01:00
Christopher Fredén 13d5b4f620 cli: fix issue command asking for passphrase
Only require `signer` when doing a write operation.
2024-03-09 00:03:24 +01:00
Fintan Halpenny 50833d88d9 cli: document rad inbox further
The documentation for `rad inbox show` and `rad inbox clear` were
missing.

Add documentation into the help message for both.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-09 00:01:26 +01:00
Lars Wirzenius ccec3f80dc cli: add "debug" subcommand
This writes out information that may be useful when debugging Radicle
remotely on a user's machine. Things like versions of programs, and
values of relevant environment variables.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-03-08 23:50:01 +01:00
Fintan Halpenny 3bba7d1634 cli: test rad patch delete
No tests for `rad patch delete` existed.

Add a test where two peers interact on a patch and one decides to
delete the patch. It ensures that the patch is still visible to the
peer that did not delete the patch.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-08 23:43:19 +01:00
Fintan Halpenny 96c65eb2b3 cli: add replies to patch show output
If any replies to patches were made, it was not possible to see them
in the output of `rad patch show`.

Add the replies to show output, but only if the `--verbose` flag is
set.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-08 23:43:19 +01:00
Fintan Halpenny 3a2e06e498 cli: document --reply-to option
The option to reply to a comment was undocumented in the `rad patch
comment` command.

Add the option to the "Comment options" section of the help message.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-03-08 23:43:19 +01:00
Alexis Sellier 1c4a2cd167 helper: Fix error message
Git was outputting a confusing message when an unuspported option was
used:

  fatal: helper rad does not support 'push-option'

This fixes it.
2024-03-08 23:25:31 +01:00
Alexis Sellier 786ce40f95 node: Add connection limits
The limits are roughly modeled after the Bitcoin network.
2024-03-08 23:24:34 +01:00
cloudhead a48081f271 cli: Move node addresses command
To make things a little more consistent, move the `rad self --address`
command to `rad node config --addresses`, since it's more about
externally-facing configuration of the node, rather than your local user
or profile.
2024-02-26 14:23:13 +01:00
cloudhead 9c96b46c59 cli: Show full path in rad init
Instead of showing a '.'
2024-02-26 12:40:17 +01:00
cloudhead 9c9bbbe7bb node: Expose listen addresses 2024-02-26 12:35:20 +01:00
cloudhead d86d99e002 cli: Fix rad config bugs
The command was unable to deal with an invalid config. We fix this by
introducing a way to load the user's home without loading the config.
2024-02-26 12:10:34 +01:00
cloudhead 0726754b0e cli: Add --repo option to issue and patch
Allows users to operate on a repo without a checkout.
2024-02-23 18:16:52 +01:00
Fintan Halpenny 9e745b68d1 cli: add caching commands for patch and issue
In order to bootstrap the COB cache, and also in case of issues,
supply a command for caching a set of patches/issues, or a single
patch/issue.

This is necessary since reads are not read-thru, it may appear that
COBs are missing when in fact they haven't been cached when first
moving over to the cache.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-02-23 16:03:26 +01:00
Fintan Halpenny 985b0af3f6 radicle: implement caching for issues and patches
Implement caching for the `Issue` and `Patch` COB. This is achieved by
having the `Transaction::initial` and `Transaction::commit` methods
take a cache which can update the newly created/updated object. The
`Store::remove` method also takes the cache for removing the object
from the cache, as well as the repository.

This meant that the `*Mut` types for the respective COBs are required
to carry a cache alongside the repository store. Identities will not
be cached, and so this is always set to `NoCache` -- which performs no
caching, and always succeeds.

To perform cache reading for issues and patches, the `cache::Issues`
and `cache::Patches` traits are introduced. They capture the minimal
amount of methods that are needed for the `rad issue` and `rad patch`
CLI commands.

The implementor for each of these traits is there respective `Cache`
types, which combines their backing repository store and the SQLite
database. They both provide convenience methods:
- `create` (and `draft` for patches)
- `get_mut`
- `remove`
which can be used instead of their repository store counterparts.

All uses of the repository stores (where needed) are replaced with
`Cache` types.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-02-23 16:03:21 +01:00
cloudhead 17744a03fd cob: Properly authorize root actions
Previously, authorization was only checked for ops after the root op.
We also avoid creating empty actions for `assign` and `label`, which
was needed for non-authorized users to be able to create issues/patches.
2024-02-23 12:31:13 +01:00
cloudhead c63aaaceac cli: Fix id COB notifications in rad inbox 2024-02-23 11:35:54 +01:00
cloudhead eff40166c9 cli: Add rad unseed command
This replaces the `-d` flag of `rad seed`, making it more like `rad
unfollow`.
2024-02-22 16:02:40 +01:00
cloudhead 0d18a8fd9e cli: Better error message in rad id 2024-02-22 16:02:40 +01:00
cloudhead e06dd208f4 cli: rad seed output improvement
Better colors, and re-order fields to have policy before scope.
2024-02-22 16:02:38 +01:00
cloudhead 9767b485c2 cli: Improve rad inbox output
* Add change authors
* Add object status
* Add colors
2024-02-12 14:03:14 +01:00
cloudhead b477864b83 cli: Stabilize sort order of inbox repos
Sort repositories before displaying them.
2024-02-12 12:01:54 +01:00
cloudhead 664cf20c92 Change default seeding scope to 'all'
This makes the default policy `block` with scope `all`. The good thing
about this is that you don't have to manage individual nodes in the
beginning. You simply seed the repos you want, and everything is
followed within those repos. This matches user expectations, as `rad
seed` does what you expect it to do.

For open-policy seed nodes, it also means that simply changing `block`
to `allow` from the default config is all you need.

This leaves the non-default `followed` scope as a more "advanced"
setting, since it is much more cumbersome: it forces you to follow a
user before you can see their issues/patches, which is not something
most users expect coming from old-shcool forges.
2024-02-12 10:56:21 +01:00
cloudhead 137961c1f7 cli: Add rad config get
Gets a specific config value.
2024-02-07 17:12:45 +01:00
cloudhead e5fcbba4c0 cli: Implement rad block command
Blocks repos & nodes from beeing seeded/followed.
2024-02-07 15:51:05 +01:00
cloudhead d37c52aade cli: Allow rad inspect without repo existing
To check the seeding policy of a repo without it being in storage.
2024-02-07 15:51:00 +01:00
cloudhead 565e3b889c cli: Fix output of rad seed when empty 2024-02-07 15:45:50 +01:00
cloudhead 1130608331 cli: Document rad init --no-seed 2024-02-07 13:57:08 +01:00
cloudhead fe55de181d cli: Add new rad inbox command
Shows you updates on local repositories.

Included here is a basic implementation of a notification system. A new
database is created and updated after every fetch, with refs that have
changed.

The `rad inbox` command can then list items in the database and delete
them.
2024-02-06 11:40:58 +01:00
cloudhead bb06663d1c cli: Organize patch functions better
Move patch showing and timeline to a shared library so we can use it for
`rad inbox`.
2024-02-06 10:36:22 +01:00
cloudhead 8928c5ee26 cli: Fix node file rotation with rad node start
This was causing issues (error 22) on macOS and some Linux systems.
2024-02-05 16:26:55 +01:00
Lars Wirzenius 5abd7bf55a cli: fix formatting of warning of unconnected node
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-02-05 12:53:36 +01:00
cloudhead e12bff0871 cli: Update and remove some dependencies 2024-02-02 09:57:45 +01:00
cloudhead 0a3da17fad cli: Add --seeds option to ls
Small addition that is useful.
2024-01-31 17:24:59 +01:00
cloudhead 71bba29c9a cli: Add log rotation to node start
Very simple log rotation with two files.
2024-01-31 14:23:43 +01:00
cloudhead 1ece339eac cli: Hint to install ssh-agent 2024-01-31 14:07:28 +01:00
cloudhead 4e9e438f41 cli: Don't error if ssh-agent isn't running 2024-01-31 13:54:39 +01:00
cloudhead b5b9a55306 cli: Add --path option to rad node start
Useful for debugging and running nodes from different locations.
2024-01-31 13:40:13 +01:00
Sebastian Martinez 921f9f2d76 cli: Display rad-web in rad --help
Only show `rad-web` in help, if we are able to run the binary.
2024-01-31 13:30:40 +01:00
cloudhead 3560e0066d Fix preferred seeds configuration
When using `network: "test"`, we shouldn't default to any public seed
node. This change makes sure that the "preferredSeeds" configuration var
is only given a value when `network` is `main`.
2024-01-31 12:09:09 +01:00
cloudhead e58419a9b0 cli: Fix capitalization of "Radicle" 2024-01-29 11:30:30 +01:00
cloudhead 3ff1ddd5e3 cli: Improve rad config 2024-01-29 11:28:37 +01:00
cloudhead d7ca9ad3c0 cli: Fix help text in rad inspect 2024-01-29 11:22:48 +01:00