aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/vcs/gitlab_driver.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/repository/vcs/gitlab_driver.rs')
-rw-r--r--crates/shirabe/src/repository/vcs/gitlab_driver.rs63
1 files changed, 13 insertions, 50 deletions
diff --git a/crates/shirabe/src/repository/vcs/gitlab_driver.rs b/crates/shirabe/src/repository/vcs/gitlab_driver.rs
index 5494feed..30c3f7ae 100644
--- a/crates/shirabe/src/repository/vcs/gitlab_driver.rs
+++ b/crates/shirabe/src/repository/vcs/gitlab_driver.rs
@@ -15,7 +15,7 @@ use crate::util::HttpDownloader;
use crate::util::http::Response;
use chrono::{DateTime, FixedOffset};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
InvalidArgumentException, LogicException, PhpMixed, RuntimeException, array_search_mixed,
@@ -90,27 +90,14 @@ impl GitLabDriver {
};
let guessed_domain = match_
- .get(&CaptureKey::ByName("domain".to_string()))
+ .name("domain")
.filter(|s| !s.is_empty())
.map(str::to_string)
- .unwrap_or_else(|| {
- match_
- .get(&CaptureKey::ByName("domain2".to_string()))
- .unwrap_or_default()
- .to_string()
- });
+ .unwrap_or_else(|| match_.name("domain2").unwrap_or_default().to_string());
let configured_domains = self.inner.config.borrow_mut().get("gitlab-domains");
- let mut url_parts: Vec<String> = explode(
- "/",
- match_
- .get(&CaptureKey::ByName("parts".to_string()))
- .unwrap_or_default(),
- );
+ let mut url_parts: Vec<String> = explode("/", match_.name("parts").unwrap_or_default());
- let scheme_match = match_
- .get(&CaptureKey::ByName("scheme".to_string()))
- .unwrap_or_default()
- .to_string();
+ let scheme_match = match_.name("scheme").unwrap_or_default().to_string();
self.scheme = if matches!(scheme_match.as_str(), "https" | "http") {
scheme_match
} else if self
@@ -124,9 +111,7 @@ impl GitLabDriver {
} else {
"https".to_string()
};
- let port = match_
- .get(&CaptureKey::ByName("port".to_string()))
- .map(str::to_string);
+ let port = match_.name("port").map(str::to_string);
let origin =
Self::determine_origin(&configured_domains, guessed_domain, &mut url_parts, port);
let origin = match origin {
@@ -170,9 +155,7 @@ impl GitLabDriver {
self.repository = Preg::replace(
php_regex!(r"#(\.git)$#"),
"",
- match_
- .get(&CaptureKey::ByName("repo".to_string()))
- .unwrap_or_default(),
+ match_.name("repo").unwrap_or_default(),
);
self.inner.cache = Some(Cache::new(
@@ -948,34 +931,19 @@ impl GitLabDriver {
return Ok(false);
};
- let scheme = match_
- .get(&CaptureKey::ByName("scheme".to_string()))
- .unwrap_or_default()
- .to_string();
+ let scheme = match_.name("scheme").unwrap_or_default().to_string();
let guessed_domain = match_
- .get(&CaptureKey::ByName("domain".to_string()))
+ .name("domain")
.filter(|s| !s.is_empty())
.map(str::to_string)
- .unwrap_or_else(|| {
- match_
- .get(&CaptureKey::ByName("domain2".to_string()))
- .unwrap_or_default()
- .to_string()
- });
- let mut url_parts: Vec<String> = explode(
- "/",
- match_
- .get(&CaptureKey::ByName("parts".to_string()))
- .unwrap_or_default(),
- );
+ .unwrap_or_else(|| match_.name("domain2").unwrap_or_default().to_string());
+ let mut url_parts: Vec<String> = explode("/", match_.name("parts").unwrap_or_default());
if Self::determine_origin(
&config.borrow().get("gitlab-domains"),
guessed_domain,
&mut url_parts,
- match_
- .get(&CaptureKey::ByName("port".to_string()))
- .map(str::to_string),
+ match_.name("port").map(str::to_string),
)
.is_none()
{
@@ -1011,12 +979,7 @@ impl GitLabDriver {
let links = explode(",", &header);
for link in &links {
if let Some(match_) = Preg::is_match3(php_regex!(r#"{<(.+?)>; *rel="next"}"#), link) {
- return Some(
- match_
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- );
+ return Some(match_.get(1).unwrap_or_default().to_string());
}
}