(&self, store: &S)
| 599 | } |
| 600 | |
| 601 | pub fn write<S>(&self, store: &S) -> Result<()> |
| 602 | where |
| 603 | S: SaveChangesForPrefix, |
| 604 | { |
| 605 | self.indexer.write_repo_changes(store)?; |
| 606 | |
| 607 | let mut update = core::Update::new(); |
| 608 | |
| 609 | // Write topics and links |
| 610 | for ((repo_id, filename), oid) in self.files.iter() { |
| 611 | update.add(*repo_id, filename, oid)?; |
| 612 | } |
| 613 | |
| 614 | let index_files = self.indexer.files()?; |
| 615 | |
| 616 | // Write activity logs |
| 617 | for (prefix, filename, ser) in index_files { |
| 618 | let repo = self.repo(prefix)?; |
| 619 | let oid = repo.add_blob(ser.as_bytes())?; |
| 620 | update.add(prefix, &filename, &Some(oid))?; |
| 621 | } |
| 622 | |
| 623 | let sig = git2::Signature::now("digraph-bot", "digraph-bot@digraph.app")?; |
| 624 | update.write(&self.client.root, &sig, &self.commit_message()) |
| 625 | } |
| 626 | |
| 627 | pub fn save_change(&mut self, repo_id: RepoId, change: &activity::Change) -> Result<()> { |
| 628 | self.indexer.add_change(repo_id, &self.client, change)?; |
no test coverage detected