private def addToGitBlameIgnoreRevs()

in modules/core/src/main/scala/org/scalasteward/core/edit/hooks/HookExecutor.scala [86:118]


  private def addToGitBlameIgnoreRevs(
      repo: Repo,
      repoDir: File,
      hook: PostUpdateHook,
      commit: Commit,
      commitMsg: CommitMsg,
      signoffCommits: Option[Boolean]
  ): F[Option[Commit]] =
    if (hook.addToGitBlameIgnoreRevs) {
      for {
        _ <- F.unit
        file = repoDir / gitBlameIgnoreRevsName
        newLines = s"# Scala Steward: ${commitMsg.title}\n${commit.sha1.value.value}\n"
        oldContent <- fileAlg.readFile(file)
        newContent = oldContent.fold(newLines)(_ + "\n" + newLines)
        _ <- fileAlg.writeFile(file, newContent)
        pathAsString = file.pathAsString

        addAndCommit = gitAlg.add(repo, pathAsString).flatMap { _ =>
          val blameIgnoreCommitMsg =
            CommitMsg(s"Add '${commitMsg.title}' to $gitBlameIgnoreRevsName")
          gitAlg.commitAllIfDirty(repo, blameIgnoreCommitMsg, signoffCommits)
        }
        maybeBlameIgnoreCommit <- gitAlg
          .checkIgnore(repo, pathAsString)
          .ifM(
            logger
              .warn(s"Impossible to add '$pathAsString' because it is git ignored.")
              .as(Option.empty[Commit]),
            addAndCommit
          )
      } yield maybeBlameIgnoreCommit
    } else F.pure(None)