func()

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
}