Skip to content

Commit b4da246

Browse files
authored
fix: Remote parsing in --generate (#268)
Closes #266 Co-authored-by: Dylan Anthony <[email protected]>
1 parent a46fe2b commit b4da246

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/config.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,14 @@ pub(crate) fn generate() -> Result<()> {
135135
let release_steps = match git::get_first_remote() {
136136
Some(remote) if remote.contains("github.com") => {
137137
let parts = remote.split('/').collect::<Vec<_>>();
138-
let owner = parts[parts.len() - 2].to_string();
139-
let repo = parts[parts.len() - 1].to_string();
138+
let owner = parts[parts.len() - 2];
139+
let owner = owner
140+
.strip_prefix("[email protected]:")
141+
.unwrap_or(owner)
142+
.to_string();
143+
144+
let repo = parts[parts.len() - 1];
145+
let repo = repo.strip_suffix(".git").unwrap_or(repo).to_string();
140146
github = Some(GitHub { owner, repo });
141147
vec![
142148
Step::Command {

tests/generate.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,16 @@ fn generate_packages_changelog(#[case] has_changelog: bool, #[case] target_file:
108108
}
109109

110110
/// Run `--generate` on a repo with a GitHub remote.
111-
#[test]
112-
fn generate_github() {
111+
#[rstest]
112+
#[case::ssh("[email protected]:knope-dev/knope.git")]
113+
#[case::https("https://github.com/knope-dev/knope.git")]
114+
fn generate_github(#[case] remote: &str) {
113115
// Arrange
114116
let temp_dir = tempfile::tempdir().unwrap();
115117
let temp_path = temp_dir.path();
116118
let source_path = Path::new("tests/generate/github");
117119
init(temp_path);
118-
add_remote(temp_path, "github.com/knope-dev/knope");
120+
add_remote(temp_path, remote);
119121

120122
// Act
121123
let assert = Command::new(cargo_bin!("knope"))

0 commit comments

Comments
 (0)