in internal/mode/advanced/indexer/indexer.go [100:133]
func (i *Indexer) submitRepoBlob(f *git.File, _, toCommit string) error {
blob, err := BuildBlob(f, i.Submitter.ParentID(), toCommit, "blob", i.Encoder, i.Submitter.IsProjectDocument())
if err != nil {
return fmt.Errorf("Blob %s: %w", f.Path, err)
}
joinData := map[string]string{
"name": "blob",
"parent": fmt.Sprintf("project_%v", i.Submitter.ParentID()),
}
indexJsonData := map[string]interface{}{"project_id": i.Submitter.ParentID(), "blob": blob, "type": "blob", "join_field": joinData}
if i.Submitter.TraversalIDs() != "" {
indexJsonData["traversal_ids"] = i.Submitter.TraversalIDs()
}
if i.Submitter.Archived() != "" {
archived, err := extractArchivedFlag(i.Submitter.Archived())
if err != nil {
return err
}
indexJsonData["archived"] = archived
}
if permissions := i.Submitter.ProjectPermissions(); permissions != nil {
indexJsonData["visibility_level"] = permissions.VisibilityLevel
indexJsonData["repository_access_level"] = permissions.RepositoryAccessLevel
}
indexJsonData["schema_version"] = i.Submitter.SchemaVersionBlob()
i.Submitter.Index("blob", blob.ID, indexJsonData)
return nil
}