mirror of
https://github.com/4cuck/nitter-status.git
synced 2026-10-27 00:57:39 +00:00
add option to disable github version fetch
This commit is contained in:
1 parent
e7bc9afea3
commit
6113c46c12
4 files changed
+23
-11
No files matched your search
+3
-1
@@ -55,4 +55,6 @@ SESSION_DB_URI="sqlite:./sessions.db?mode=rwc"
|
||||
# interval in seconds for gathering .health endpoint data
|
||||
STATS_INTERVAL_S=900
|
||||
# Folder to use for git operations during nitter version checks
|
||||
GIT_SCRATCH_DIR="."
|
||||
GIT_SCRATCH_DIR="."
|
||||
# Disable github fetching of latest commit
|
||||
DISABLE_GITHUB_FETCH=false
|
||||
+7
-3
@@ -12,7 +12,8 @@ use miette::{Context, IntoDiagnostic};
|
||||
use profile_parser::ProfileParser;
|
||||
use regex::{Regex, RegexBuilder};
|
||||
use reqwest::{
|
||||
Client, ClientBuilder, header::{HeaderMap, HeaderValue}, retry
|
||||
header::{HeaderMap, HeaderValue},
|
||||
Client, ClientBuilder,
|
||||
};
|
||||
use sea_orm::{ConnectionTrait, DatabaseConnection, DbBackend, FromQueryResult, Statement};
|
||||
use thiserror::Error;
|
||||
@@ -129,8 +130,9 @@ pub async fn run_scanner(
|
||||
config: ScannerConfig,
|
||||
app_state: AppState,
|
||||
disable_health_checks: bool,
|
||||
disable_github_fetch: bool,
|
||||
) -> miette::Result<()> {
|
||||
let scanner = Scanner::new(db, config, app_state)
|
||||
let scanner = Scanner::new(db, config, app_state, disable_github_fetch)
|
||||
.await
|
||||
.wrap_err("Initializing scanner!")?;
|
||||
scanner.schedule_cleanup().unwrap();
|
||||
@@ -192,11 +194,13 @@ impl Scanner {
|
||||
db: DatabaseConnection,
|
||||
config: ScannerConfig,
|
||||
app_state: AppState,
|
||||
disable_github_fetch: bool,
|
||||
) -> miette::Result<Self> {
|
||||
let mut builder_regex_rss = RegexBuilder::new(&config.rss_content);
|
||||
builder_regex_rss.case_insensitive(true);
|
||||
|
||||
let version_checker = Mutex::new(VersionCheck::new(config.clone()).into_diagnostic()?);
|
||||
let version_checker =
|
||||
Mutex::new(VersionCheck::new(config.clone(), disable_github_fetch).into_diagnostic()?);
|
||||
|
||||
let http_client = Self::client_builder(&config);
|
||||
let client_ipv4 = Scanner::client_builder(&config)
|
||||
|
||||
@@ -4,6 +4,7 @@ use std::{collections::HashMap, path::Path};
|
||||
|
||||
use entities::state::{scanner::ScannerConfig, CommitInfo};
|
||||
use git2::Repository;
|
||||
use tracing::warn;
|
||||
|
||||
use crate::Result;
|
||||
|
||||
@@ -11,7 +12,6 @@ pub struct VersionCheck {
|
||||
config: ScannerConfig,
|
||||
commit_cache: HashMap<String, CommitCacheValue>,
|
||||
current_epoch: u8,
|
||||
// TODO: this is ugly and unnecessary
|
||||
repository: Repository,
|
||||
}
|
||||
|
||||
@@ -22,10 +22,10 @@ struct CommitCacheValue {
|
||||
}
|
||||
|
||||
impl VersionCheck {
|
||||
pub(crate) fn new(config: ScannerConfig) -> Result<Self> {
|
||||
let temp_dir = Path::new(&config.git_scratch_folder).join(format!("nitter_version_clone"));
|
||||
tracing::debug!(git_check_dir=?temp_dir);
|
||||
let repository = Repository::init(temp_dir)?;
|
||||
pub(crate) fn new(config: ScannerConfig, disable_health_checks: bool) -> Result<Self> {
|
||||
let clone_dir = Path::new(&config.git_scratch_folder).join(format!("nitter_version_clone"));
|
||||
tracing::debug!(git_check_dir=?clone_dir);
|
||||
let repository = Repository::init(clone_dir)?;
|
||||
let mut checker = VersionCheck {
|
||||
config,
|
||||
commit_cache: Default::default(),
|
||||
@@ -33,7 +33,11 @@ impl VersionCheck {
|
||||
repository,
|
||||
};
|
||||
|
||||
checker.update_remote()?;
|
||||
if !disable_health_checks {
|
||||
checker.update_remote()?;
|
||||
} else {
|
||||
warn!("Version fetching disabled, attempting to use existing dir.");
|
||||
}
|
||||
Ok(checker)
|
||||
}
|
||||
/// Increases the epoch, invalidating unused cache entries and removes them.
|
||||
@@ -148,7 +152,7 @@ mod test {
|
||||
|
||||
#[test]
|
||||
fn test_git_commit_exists() {
|
||||
let mut checker = VersionCheck::new(Config::test_defaults()).unwrap();
|
||||
let mut checker = VersionCheck::new(Config::test_defaults(), false).unwrap();
|
||||
assert_eq!(
|
||||
CommitInfo::Outdated,
|
||||
checker
|
||||
|
||||
@@ -84,12 +84,14 @@ async fn _main() -> miette::Result<()> {
|
||||
let cache = entities::state::new();
|
||||
|
||||
let disable_health_checks = require_env_str("DISABLE_HEALTH_CHECKS")? == "true";
|
||||
let disable_github_fetch = require_env_str("DISABLE_GITHUB_FETCH")? == "true";
|
||||
|
||||
scanner::run_scanner(
|
||||
pool.clone(),
|
||||
scanner_config.clone(),
|
||||
cache.clone(),
|
||||
disable_health_checks,
|
||||
disable_github_fetch,
|
||||
)
|
||||
.await
|
||||
.wrap_err("Crash starting background scanner")?;
|
||||
|
||||
Reference in new issue
Block a user