Commit Graph
97 Commits
Author SHA1 Message Date
Awiteb 08505151bd chore: More steps in Patch Guidelines
Signed-off-by: Awiteb <a@4rs.nl>
2025-06-02 17:54:41 +00:00
Awiteb 864f3018f6 chore: Update README.md
Signed-off-by: Awiteb <a@4rs.nl>
2025-06-01 12:46:10 +00:00
Awiteb 37128a8c1a chore(justfile): Improve the changelog body
Signed-off-by: Awiteb <a@4rs.nl>
2025-06-01 12:45:25 +00:00
Awiteb ce0068be53 chore: Bump the version to v0.2.0
Signed-off-by: Awiteb <a@4rs.nl>
2025-06-01 12:32:24 +00:00
Awiteb 4c6578ccb1 feat: Support relays and naddrs sets
This commit introduces support for 'sets', a feature that simplifies
referencing multiple relays or naddrs with a single word.

Sets are stored in the config directory under `n34` as `config.toml` in
`TOML` format. The config path follows the `$XDG_CONFIG_HOME` standard,
defaulting to `$HOME/.config` if unset.

The `n34 sets` command allows managing sets, adding, removing, updating,
or displaying them. When using the main `--relays` flag, a set name can
be provided to automatically expand its relays (an error occurs if the
set contains no relays). Similarly, any command accepting naddrs can
reference a set to extract its naddrs.

Sets can also be merged by updating a set while specifying another
set in `--repo` merges their naddrs, while `--set-relays` merges their
relays. Removal follows the same pattern.

Signed-off-by: Awiteb <a@4rs.nl>
2025-06-01 12:12:09 +00:00
Awiteb d6d3f8a52f chore: Add more relays to the repo address
Signed-off-by: Awiteb <a@4rs.nl>
2025-06-01 11:59:49 +00:00
Awiteb 84bfafa2e9 deps: Add serde@1.0.219, dirs@6.0.0 and toml@0.8.22
Signed-off-by: Awiteb <a@4rs.nl>
2025-06-01 11:59:12 +00:00
Awiteb 24e8522268 chore: Move the write relays definition to the end of the commands
To make it clear, we can review exactly what was collected instead of
having it spread throughout the body of the command.

Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 19:20:42 +00:00
Awiteb f670859b92 chore: Remove the vector parameter from add_{read,write}_relays
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 12:35:26 +00:00
Awiteb bca86f115f perf(NostrClient::send_event_to): Join the event sending
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 12:00:10 +00:00
Awiteb a9b9a7a02a chore: Remove unused import
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 11:04:58 +00:00
Awiteb 1abb8e3f36 feat: Events and naddrs can starts with nostr:
Suggested-by: DanConwayDev <DanConwayDev@protonmail.com>
Fixes: note1jwgfl095vuhduepxxpwhdqme0dnlhawzvcal0xnl0e6d82wx5jys5z92hj
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 10:48:33 +00:00
Awiteb 15d834dc0f chore: Deduplicate tags
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 08:45:20 +00:00
Awiteb ea862dac5f chore: Add a newline after the naddr
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 08:29:36 +00:00
Awiteb 55a4868813 fix(utils-repo_naddr): Create a valid naddr string
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 08:29:13 +00:00
Awiteb 60978f43b5 chore: Add a header to nostr-address file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 08:02:37 +00:00
Awiteb 37cf601c01 refactor: Support more than one naddr instead of one
This commit supports multiple naddrs for sending issues to and searching
for repositories by extracting the embedded relays, and appending to the
address file instead of overwriting its previous contents. A header has
also been added to the `nostr-address` file to clarify its purpose.

This enhancement accommodates maintainers who distribute issue tracking
across multiple repositories, preventing confusion if the primary
maintainer steps down. Now, issues and patches will reference all
relevant repositories, not just one.

Note that repositories won't automatically include all maintainers'
addresses unless explicitly specified. Maintainers may manage a
repository under a project-specific public key rather than individual
keys. Addresses are only added to issues and patches when explicitly
provided via the command or written to the address file. This prevents
unintended inclusions and ensures clarity.

Suggested-by: DanConwayDev <DanConwayDev@protonmail.com>
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-27 07:05:13 +00:00
Awiteb 87da5035da chore(todo): Some tasks
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-24 14:08:25 +00:00
Awiteb ddea5028ee feat: Make the relays list optional
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-24 12:30:40 +00:00
Awiteb de68d61c3f feat: Enter repository as nip5
For example, `4rs.nl/n34` and `_@4rs.nl/n34`

Signed-off-by: Awiteb <a@4rs.nl>
2025-05-24 11:00:37 +00:00
Awiteb f7e837e3ab deps: Enable nip05 feature of nostr crate
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-24 10:57:15 +00:00
Awiteb 02070c2868 feat: A --quote-to flag to quote the replied to content in the editor
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-24 06:06:32 +00:00
Awiteb 998ef8f4b1 deps: Add chrono@0.4.41 to the dependencies
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-24 06:03:17 +00:00
Awiteb 6fdf0dbcf5 feat: Read the nostr-address file in reply command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-23 13:38:21 +00:00
Awiteb 15c0eaa5dc chore: Make commands module
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-23 13:15:37 +00:00
Awiteb 226909ef16 feat: Read the nostr-address file in issue new command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-23 12:38:26 +00:00
Awiteb 8ca88804dd feat: Read the nostr-address file in repo view command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-23 12:36:48 +00:00
Awiteb 55f9b9194e chore: Utils to work with the nostr-address file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 20:45:01 +00:00
Awiteb a26116702d chore: Errors to work with the nostr-address file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 20:44:41 +00:00
Awiteb 35d376ca6c chore: Add nostr-address file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 19:19:27 +00:00
Awiteb 57b48c7368 feat: Add --address-file flag to repo announce command
This flag creates a file in the current working directory and writes
the `naddr` into it. This allows n34 and other tools to recognize the
repository address automatically, eliminating the need for manual input
by the user.

Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 19:17:07 +00:00
Awiteb b29937a04e chore(changelog): Update the body
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 15:15:49 +00:00
Awiteb 06374fe1fc feat: add --force-id flag to bypass case validation in repo announce
The new flag allows users to skip the kebkab case ID check when announcing
repositories.

Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 08:27:13 +00:00
Awiteb 2d5c0bf549 chore(git-cliff): Upper first after the trim
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 08:27:13 +00:00
Awiteb 0a5b4656c3 chore(taplo): Exclude target dir
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 08:27:13 +00:00
Awiteb cad2c7faa3 chore: Update CONTRIBUTING.md
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 08:27:13 +00:00
Awiteb 19cfecb9ea chore(readme): Add Contributions & Changes section
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-22 06:11:28 +00:00
Awiteb 89d0710ce5 chore(justfile): Add a subject to the tag message
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 23:57:16 +00:00
Awiteb c1afa9a93d chore: Bump the version to v0.1.0
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 22:41:37 +00:00
Awiteb 92165de6fd chore: Improve the changelog
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 22:07:24 +00:00
Awiteb c5085b3af7 chore: Update the bugs report location
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 22:07:24 +00:00
Awiteb ecee54c9a3 chore: Update README.md
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 22:07:23 +00:00
Awiteb 55aa48c1fe chore: Add CONTRIBUTING.md, AUTHORS and DCO files
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb 0cc656b780 chore: Update the repository url
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb 8bff000b33 chore: Format rustfmt.toml
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb 5c201b0cec chore(justfile): A new recipe to release n34
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb c608f2120b chore: Add taplo to the packages
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb 60ad1fe5bb chore: Improve issue new command code
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb b3b7ce7a4b chore(repo-announce): Ensure that the event author is not a duplicate maintainer
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb a137a3f9de chore: Rename nostr::nips::nip22::Comment to CommentTarget
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb 724e2707c6 deps: Bump nostr and nostr_sdk to 0.42.0
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:06 +00:00
Awiteb 9444fc1a8c feat: New reply command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:05 +00:00
Awiteb a324ba2ff7 chore: Add comments helper functions
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:05 +00:00
Awiteb 56316d36d3 chore: Add events errors
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:05 +00:00
Awiteb 074245733e chore(nostr): A util to get the content from a string or editor
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:05 +00:00
Awiteb 661266c67b chore(nostr): A function to add user read relays to a vector
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:45:05 +00:00
Awiteb a9b088d8a5 chore(NostrClient-add_relays): If the relays is empty do nothing
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-21 21:44:51 +00:00
Awiteb 1af731ef67 chore: Improve event fetchers functions
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-19 20:26:29 +00:00
Awiteb 4298ca5d2d chore: Use Coordinate instead of Nip19Coordinate in NostrClient::fetch_repo
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-19 20:26:29 +00:00
Awiteb 70ee4a59b2 perf: Connect to relays in a separate task
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 14:25:09 +00:00
Awiteb bd086538fd deps: Add futures@0.3.31 to the dependencies
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 13:32:44 +00:00
Awiteb 54f1c7e0e6 feat: Add issue new command
Command to create a new issue on a repo

Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 13:03:09 +00:00
Awiteb f1378a2eb7 chore: More errors for issue subcommand
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 13:02:04 +00:00
Awiteb 2627fe7980 chore: Function to returns the event author if found
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 13:01:20 +00:00
Awiteb 42508fc8b9 chore: Returns the relays that successfully received the event on NostrClient::send_event_to
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 13:01:05 +00:00
Awiteb c69fbca2a0 chore(justfile): Add some fancy emojis
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 12:56:43 +00:00
Awiteb 552136400d chore: Improve the MSRV check
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 12:40:01 +00:00
Awiteb ac7c1e6216 chore: Add MSRV
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 12:32:50 +00:00
Awiteb 5139f8ea11 chore: Improve logging
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 12:27:13 +00:00
Awiteb 6aac4b7a85 chore: Rename --labels flag of repo announce command to --label
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 12:25:06 +00:00
Awiteb ce58f29022 deps: Add tempfile@3.19.1 to the dependencies
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-08 12:23:10 +00:00
Awiteb d9fe376746 chore: Sort the relays then take 3 from them
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-07 20:20:36 +00:00
Awiteb d9f8ce2418 chore: Util to add write relays to a vector
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-07 06:12:17 +00:00
Awiteb 577de41054 chore(repo-announce): Utils to creates the bech32
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-07 06:04:28 +00:00
Awiteb 3857753b7d chore: Log the event result inside send_event_to function
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-07 05:42:07 +00:00
Awiteb 93c8743dc7 chore: Add the relays for read and write
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-06 12:24:33 +00:00
Awiteb c0a5e47793 feat(nip13): Support PoW
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-06 11:36:56 +00:00
Awiteb a56acf5752 chore: Trim the strings in repo announce command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-06 11:30:27 +00:00
Awiteb 9b4dfb9374 chore: Returns Result public key in CliOptions::pubkey
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-06 11:22:46 +00:00
Awiteb 6fc59bfe59 chore: Send the repo announce to the author relays list
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-06 11:20:41 +00:00
Awiteb b444aeba0a feat: Add repo announce command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-06 08:10:06 +00:00
Awiteb 273058fe3f chore: A method to send an event builder
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 19:56:41 +00:00
Awiteb 4dea4785b4 chore: A method to return the public key in CliOptions
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 19:56:41 +00:00
Awiteb 4314cebfbb chore: Take the ownership in the CommandRunner trait
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 19:56:41 +00:00
Awiteb 8a553f4de8 deps: Add convert_case@0.8.0 to the dependencies
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 19:56:41 +00:00
Awiteb 57434ac39b chore: Handle euc in the repo view command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 19:56:41 +00:00
Awiteb 99e46d7633 chore: Add a extension trait for Tags type
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 19:56:40 +00:00
Awiteb fb77a8ca14 deps: Add easy_ext@1.0.2 to the dependencies
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-05 13:52:00 +00:00
Awiteb d962732e52 feat: Setup the CLI and create repo view command
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-03 15:58:45 +00:00
Awiteb 654aee620e chore: Add .taplo.toml file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-03 15:23:41 +00:00
Awiteb d37c6964f7 deps: Add nedded dependencies
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-03 15:22:46 +00:00
Awiteb 97c6e4487b chore: Add changelog and readme
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-01 14:34:47 +00:00
Awiteb c3594c6467 feat: Initialize the project
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-01 14:34:47 +00:00
Awiteb 5b9d42dea6 chore: Add justfile
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-01 10:22:31 +00:00
Awiteb fb9dbde9a3 chore: Add .gitignore file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-01 10:22:30 +00:00
Awiteb f35c10ec49 chore: Add git-cliff configuration file
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-01 10:22:30 +00:00
Awiteb cb697930f9 chore: Add the license
Signed-off-by: Awiteb <a@4rs.nl>
2025-05-01 10:05:53 +00:00