Append link to gitlab to create link between open project and gitlab (#7)
Check go code / build-and-release (push) Successful in 1m7s

Reviewed-on: #7
Co-authored-by: Julien Fastré <julien.fastre@champs-libres.coop>
Co-committed-by: Julien Fastré <julien.fastre@champs-libres.coop>
This commit was merged in pull request #7.
This commit is contained in:
2025-11-18 08:45:31 +00:00
committed by Julien Fastré
parent f72f03e7d4
commit 69eafc509a
6 changed files with 106 additions and 15 deletions
+28 -4
View File
@@ -65,10 +65,30 @@ fn add_related_issues_section(issue: &IssueRelated) -> Vec<String> {
fn convert_issue_link_items(issue: &IssueRelated) -> String {
match issue {
IssueRelated::OpenProjectIssue(issue_url) => format!("- [{}]({})", issue_url, issue_url),
IssueRelated::OpenProjectIssue(issue_url) => {
let m = format!("- [{}]({})", issue_url, issue_url);
match extract_id(issue_url) {
Some(n) => format!("{}\n- OP#{}", m, n),
None => m,
}
}
}
}
use regex::Regex;
fn extract_id(url: &str) -> Option<u32> {
// Cette regex capture le dernier segment numérique si lURL se termine par :
// - /work_packages/<id>
// - /wp/<id>
// Et accepte n'importe quel segment avant.
let re = Regex::new(r"/(?:work_packages|wp)/(\d+)$").unwrap();
re.captures(url)
.and_then(|caps| caps.get(1))
.and_then(|m| m.as_str().parse::<u32>().ok())
}
#[cfg(test)]
mod tests {
use crate::planning::utils::{append_related_issues, IssueRelated};
@@ -80,7 +100,8 @@ mod tests {
r#"
## Related issues
- [https://example/wp/1](https://example/wp/1)"#,
- [https://example/wp/1](https://example/wp/1)
- OP#1"#,
append_related_issues(&issue, &("".to_string()))
);
}
@@ -97,7 +118,8 @@ Some content
## Related issues
- [https://example/wp/1](https://example/wp/1)"#,
- [https://example/wp/1](https://example/wp/1)
- OP#1"#,
append_related_issues(
&issue,
&"Something happens.\n\
@@ -123,7 +145,8 @@ Some content
## Related issues
- [https://example/wp/2](https://example/wp/2)
- [https://example/wp/1](https://example/wp/1)"#,
- [https://example/wp/1](https://example/wp/1)
- OP#1"#,
append_related_issues(
&issue,
&r#"Something happens.
@@ -154,6 +177,7 @@ Some content
- [https://example/wp/2](https://example/wp/2)
- [https://example/wp/1](https://example/wp/1)
- OP#1
## Other content