function generateChunkSource(repo, doc, encryptionWorker) {
  const payload = {
    owner: repo.author,
    project: repo.project,
    branch: repo.branch,
    path: doc.metadata.source,
    pat: !!repo.accessToken ? repo.accessToken : null,
  };
  return `github://${repo.repo}?payload=${encryptionWorker.encrypt(
    JSON.stringify(payload)
  )}`;
}
Generate the full chunkSource for a specific file so that we can resync it later.
This data is encrypted into a single `payload` query param so we can replay credentials later
since this was encrypted with the systems persistent password and salt.
@param {RepoLoader} repo
@param {import("@langchain/core/documents").Document} doc
@param {import("../../EncryptionWorker").EncryptionWorker} encryptionWorker
@returns {string}