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>
This commit is contained in:
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add `--force-id` flag to bypass case validation in `repo announce` - (Awiteb at [8f627c2](https://git.4rs.nl/awiteb/n34.git/commit/?id=8f627c2704e31538074f06b8300b1a118eb6f21d))
|
||||||
|
|
||||||
## [0.1.0] - 2025-05-21
|
## [0.1.0] - 2025-05-21
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -48,6 +48,9 @@ pub struct AnnounceArgs {
|
|||||||
/// Labels to categorize the repository. Can be specified multiple times.
|
/// Labels to categorize the repository. Can be specified multiple times.
|
||||||
#[arg(short, long)]
|
#[arg(short, long)]
|
||||||
label: Vec<String>,
|
label: Vec<String>,
|
||||||
|
/// Skip kebab-case validation for the repository ID
|
||||||
|
#[arg(long)]
|
||||||
|
force_id: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CommandRunner for AnnounceArgs {
|
impl CommandRunner for AnnounceArgs {
|
||||||
@@ -70,6 +73,7 @@ impl CommandRunner for AnnounceArgs {
|
|||||||
options.relays.clone(),
|
options.relays.clone(),
|
||||||
self.maintainers,
|
self.maintainers,
|
||||||
self.label.into_iter().map(utils::str_trim).collect(),
|
self.label.into_iter().map(utils::str_trim).collect(),
|
||||||
|
self.force_id,
|
||||||
)?
|
)?
|
||||||
.pow(options.pow)
|
.pow(options.pow)
|
||||||
.build(user_pubk);
|
.build(user_pubk);
|
||||||
|
|||||||
@@ -76,9 +76,17 @@ impl EventBuilder {
|
|||||||
relays: Vec<RelayUrl>,
|
relays: Vec<RelayUrl>,
|
||||||
maintainers: Vec<PublicKey>,
|
maintainers: Vec<PublicKey>,
|
||||||
labels: Vec<String>,
|
labels: Vec<String>,
|
||||||
|
force_id: bool,
|
||||||
) -> N34Result<EventBuilder> {
|
) -> N34Result<EventBuilder> {
|
||||||
let repo_id = repo_id.trim();
|
let repo_id = repo_id.trim();
|
||||||
if repo_id.is_empty() || repo_id != repo_id.to_case(Case::Kebab) {
|
let kebab_repo_id = repo_id.to_case(Case::Kebab);
|
||||||
|
if repo_id.is_empty() || (!force_id && repo_id != kebab_repo_id) {
|
||||||
|
if repo_id != kebab_repo_id {
|
||||||
|
tracing::error!(
|
||||||
|
"The repo id should be `{kebab_repo_id}` (kebab-case). Use `--force-id` to \
|
||||||
|
override this check"
|
||||||
|
);
|
||||||
|
}
|
||||||
return Err(N34Error::InvalidRepoId);
|
return Err(N34Error::InvalidRepoId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user