MCPcopy Create free account
hub / github.com/emwalker/digraph / fetch_activity

Method fetch_activity

backend/src/redis/mod.rs:235–262  ·  view source on GitHub ↗
(&self, repo_id: RepoId, first: usize)

Source from the content-addressed store, hash-verified

233
234impl git::activity::ActivityForPrefix for Arc<Redis> {
235 fn fetch_activity(&self, repo_id: RepoId, first: usize) -> Result<Vec<git::activity::Change>> {
236 let key = Key(format!("activity:{repo_id}"));
237 log::info!("fetching activity for prefix {:?} from Redis", key);
238 let mut con = self.connection()?;
239
240 let iter: redis_rs::Iter<redis_rs::Value> = redis_rs::cmd("zrevrange")
241 .arg(&key)
242 .arg(0)
243 .arg(first)
244 .clone()
245 .iter(&mut con)?;
246
247 let mut changes = vec![];
248 for value in iter {
249 match value {
250 redis_rs::Value::Data(data) => match serde_yaml::from_slice(&data) {
251 Ok(change) => changes.push(change),
252 Err(err) => log::error!("problem fetching change from redis: {}", err),
253 },
254 redis_rs::Value::Nil => {}
255 other => {
256 log::error!("unexpected Redis value: {:?}", other);
257 }
258 }
259 }
260
261 Ok(changes)
262 }
263}

Callers

nothing calls this directly

Calls 3

KeyClass · 0.85
connectionMethod · 0.80
iterMethod · 0.45

Tested by

no test coverage detected