From a939243639d452ef5f50fd8f87b8659862f16d37 Mon Sep 17 00:00:00 2001
From: Tsakiris Tryfon <tr.tsakiris@gmail.com>
Date: Wed, 21 Dec 2022 15:39:08 +0200
Subject: [PATCH] fix(checker): allow git checks only for non-pinned plugins
 (#61)

---
 lua/lazy/manage/checker.lua  | 2 +-
 lua/lazy/manage/task/git.lua | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/lua/lazy/manage/checker.lua b/lua/lazy/manage/checker.lua
index d3676d4..ba2c359 100644
--- a/lua/lazy/manage/checker.lua
+++ b/lua/lazy/manage/checker.lua
@@ -16,7 +16,7 @@ end
 
 function M.fast_check()
   for _, plugin in pairs(Config.plugins) do
-    if plugin._.installed then
+    if not plugin.pin and plugin._.installed then
       plugin._.has_updates = nil
       local info = Git.info(plugin.dir)
       local ok, target = pcall(Git.get_target, plugin)
diff --git a/lua/lazy/manage/task/git.lua b/lua/lazy/manage/task/git.lua
index 32b73fb..e058973 100644
--- a/lua/lazy/manage/task/git.lua
+++ b/lua/lazy/manage/task/git.lua
@@ -8,6 +8,9 @@ local M = {}
 M.log = {
   ---@param opts {updated?:boolean, check?: boolean}
   skip = function(plugin, opts)
+    if opts.check and plugin.pin then
+      return true
+    end
     if opts.updated and not (plugin._.updated and plugin._.updated.from ~= plugin._.updated.to) then
       return true
     end