add option to disable github version fetch

This commit is contained in:
4cuck committed 2026-08-26 02:15:35 +02:00
1 parent e7bc9afea3
commit 6113c46c12
4 files changed
+23 -11

No files matched your search

+3 -1
View File
@@ -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
View File
@@ -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)
+11 -7
View File
@@ -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
+2
View File
@@ -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")?;