chore(web/atward): remove sourcegraph support

We're moving away from sourcegraph to livegrep and so on, as Sourcegraph has
gone fully proprietary.

This removes support for redirecting to Sourcegraph.

Relates to b/290

Change-Id: I04ccf8dfef72113cd49d444151cb0c3eb834845d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12268
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
This commit is contained in:
Vincent Ambo 2024-08-23 12:33:22 +03:00 committed by tazjin
parent 8f6f45097e
commit 8041ce7cbd
3 changed files with 5 additions and 173 deletions

View file

@ -5,7 +5,6 @@
//! browsers and attempts to send users to useful locations based on
//! their search query (falling back to another search engine).
use regex::Regex;
use rouille::input::cookies;
use rouille::{Request, Response};
#[cfg(test)]
@ -31,43 +30,14 @@ struct Handler {
struct Query {
/// Query string itself.
query: String,
/// Should Sourcegraph be used instead of cgit?
cs: bool,
}
/// Helper function for setting a parameter based on a query
/// parameter.
fn query_setting(req: &Request, config: &mut bool, param: &str) {
match req.get_param(param) {
Some(s) if s == "true" => *config = true,
Some(s) if s == "false" => *config = false,
_ => {}
}
}
impl Query {
fn from_request(req: &Request) -> Option<Query> {
// First extract the actual search query ...
let mut query = match req.get_param("q") {
Some(query) => Query { query, cs: false },
match req.get_param("q") {
Some(query) => Some(Query { query }),
None => return None,
};
// ... then apply settings to it. Settings in query parameters
// take precedence over cookies.
for cookie in cookies(req) {
match cookie {
("cs", "true") => {
query.cs = true;
}
_ => {}
}
}
query_setting(req, &mut query.cs, "cs");
Some(query)
}
}
@ -76,7 +46,6 @@ impl From<&str> for Query {
fn from(query: &str) -> Query {
Query {
query: query.to_string(),
cs: false,
}
}
}
@ -90,10 +59,6 @@ fn cgit_url(path: &str) -> String {
}
}
/// Create a URL to a path in Sourcegraph.
fn sourcegraph_path_url(path: &str) -> String {
format!("https://cs.tvl.fyi/depot/-/tree/{}", path)
}
/// Definition of all supported query handlers in atward.
fn handlers() -> Vec<Handler> {
vec![
@ -126,16 +91,11 @@ fn handlers() -> Vec<Handler> {
// TODO(tazjin): Add support for specifying lines in a query parameter
Handler {
pattern: Regex::new("^//(?P<path>[a-zA-Z].*)?$").unwrap(),
target: |query, captures| {
target: |_, captures| {
// Pass an empty string if the path is missing, to
// redirect to the depot root.
let path = captures.name("path").map(|m| m.as_str()).unwrap_or("");
if query.cs {
Some(sourcegraph_path_url(path))
} else {
Some(cgit_url(path))
}
Some(cgit_url(path))
},
},
]

View file

@ -43,31 +43,6 @@ fn depot_path_cgit_query() {
assert_eq!(dispatch(&handlers(), &"/not/a/depot/path".into()), None);
}
#[test]
fn depot_path_sourcegraph_query() {
assert_eq!(
dispatch(
&handlers(),
&Query {
query: "//web/atward/default.nix".to_string(),
cs: true,
}
),
Some("https://cs.tvl.fyi/depot/-/tree/web/atward/default.nix".to_string()),
);
assert_eq!(
dispatch(
&handlers(),
&Query {
query: "/not/a/depot/path".to_string(),
cs: true,
}
),
None
);
}
#[test]
fn depot_root_cgit_query() {
assert_eq!(
@ -75,7 +50,6 @@ fn depot_root_cgit_query() {
&handlers(),
&Query {
query: "//".to_string(),
cs: false,
}
),
Some("https://code.tvl.fyi/tree/".to_string()),
@ -112,7 +86,6 @@ fn request_to_query() {
.expect("request should parse to a query"),
Query {
query: "b/42".to_string(),
cs: false,
},
);
@ -122,55 +95,6 @@ fn request_to_query() {
);
}
#[test]
fn settings_from_cookie() {
assert_eq!(
Query::from_request(&Request::fake_http(
"GET",
"/?q=b%2F42",
vec![("Cookie".to_string(), "cs=true;".to_string())],
vec![]
))
.expect("request should parse to a query"),
Query {
query: "b/42".to_string(),
cs: true,
},
);
}
#[test]
fn settings_from_query_parameter() {
assert_eq!(
Query::from_request(&Request::fake_http(
"GET",
"/?q=b%2F42&cs=true",
vec![],
vec![]
))
.expect("request should parse to a query"),
Query {
query: "b/42".to_string(),
cs: true,
},
);
// Query parameter should override cookie
assert_eq!(
Query::from_request(&Request::fake_http(
"GET",
"/?q=b%2F42&cs=false",
vec![("Cookie".to_string(), "cs=true;".to_string())],
vec![]
))
.expect("request should parse to a query"),
Query {
query: "b/42".to_string(),
cs: false,
},
);
}
#[test]
fn depot_revision_query() {
assert_eq!(