From 5f1fbf980295282b65b2e1e2f777dda7cb0fa867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Mu=C3=B1oz?= Date: Mon, 15 Jan 2024 15:34:25 +0100 Subject: [PATCH] Make global proj-v2 property. Apply it elsewhere --- lua/octo/gh/init.lua | 7 ++++--- lua/octo/init.lua | 22 ++++++++++------------ lua/octo/pickers/fzf-lua/previewers.lua | 8 ++++---- lua/octo/pickers/telescope/previewers.lua | 4 ++-- lua/octo/utils.lua | 12 ++++++------ 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/lua/octo/gh/init.lua b/lua/octo/gh/init.lua index 0e585abc..773cbd35 100644 --- a/lua/octo/gh/init.lua +++ b/lua/octo/gh/init.lua @@ -58,9 +58,9 @@ function M.get_user_name(remote_hostname) local stdout = table.concat(job:result(), "\n") -- Newer versions of the gh cli have a different message. See #467 local name_err = string.match(stderr, "Logged in to [^%s]+ as ([^%s]+)") - or string.match(stderr, "Logged in to [^%s]+ account ([^%s]+)") + or string.match(stderr, "Logged in to [^%s]+ account ([^%s]+)") local name_out = string.match(stdout, "Logged in to [^%s]+ as ([^%s]+)") - or string.match(stdout, "Logged in to [^%s]+ account ([^%s]+)") + or string.match(stdout, "Logged in to [^%s]+ account ([^%s]+)") if name_err then return name_err @@ -82,7 +82,8 @@ function M.setup() } job:sync() local stdout = table.concat(job:result(), "\n") - local all_scopes = string.match(stdout, "- Token scopes: (.*)") + local all_scopes = string.match(stdout, " Token scopes: (.*)") + print(vim.inspect(all_scopes)) local split = vim.split(all_scopes, ", ") for idx, split_scope in ipairs(split) do diff --git a/lua/octo/init.lua b/lua/octo/init.lua index 1fdecf3f..f407d5ff 100644 --- a/lua/octo/init.lua +++ b/lua/octo/init.lua @@ -39,6 +39,14 @@ function M.setup(user_config) autocmds.setup() commands.setup() gh.setup() + if gh.has_scope { "read:project", "project" } then + _G.octo_pv2_fragment = fragments.projects_v2_fragment + else + if not config.values.suppress_missing_scope.projects_v2 then + utils.info "Cannot request projects v2, missing scope 'read:project'" + end + _G.octo_pv2_fragment = "" + end end function M.configure_octo_buffer(bufnr) @@ -89,21 +97,11 @@ function M.load(repo, kind, number, cb) local owner, name = utils.split_repo(repo) local query, key - local pv2_fragment - if gh.has_scope { "read:project", "project" } then - pv2_fragment = fragments.projects_v2_fragment - else - if not config.values.suppress_missing_scope.projects_v2 then - utils.info "Cannot request projects v2, missing scope 'read:project'" - end - pv2_fragment = "" - end - if kind == "pull" then - query = graphql("pull_request_query", owner, name, number, pv2_fragment) + query = graphql("pull_request_query", owner, name, number, _G.octo_pv2_fragment) key = "pullRequest" elseif kind == "issue" then - query = graphql("issue_query", owner, name, number, pv2_fragment) + query = graphql("issue_query", owner, name, number, _G.octo_pv2_fragment) key = "issue" elseif kind == "repo" then query = graphql("repository_query", owner, name) diff --git a/lua/octo/pickers/fzf-lua/previewers.lua b/lua/octo/pickers/fzf-lua/previewers.lua index 47f20927..9e44a7f4 100644 --- a/lua/octo/pickers/fzf-lua/previewers.lua +++ b/lua/octo/pickers/fzf-lua/previewers.lua @@ -60,9 +60,9 @@ M.issue = function(formatted_issues) local owner, name = utils.split_repo(entry.repo) local query if entry.kind == "issue" then - query = graphql("issue_query", owner, name, number) + query = graphql("issue_query", owner, name, number, _G.octo_pv2_fragment) elseif entry.kind == "pull_request" then - query = graphql("pull_request_query", owner, name, number) + query = graphql("pull_request_query", owner, name, number, _G.octo_pv2_fragment) end gh.run { args = { "api", "graphql", "-f", string.format("query=%s", query) }, @@ -116,9 +116,9 @@ M.search = function() local query if kind == "issue" then - query = graphql("issue_query", owner, name, number) + query = graphql("issue_query", owner, name, number, _G.octo_pv2_fragment) elseif kind == "pull_request" then - query = graphql("pull_request_query", owner, name, number) + query = graphql("pull_request_query", owner, name, number, octo_pv2_fragment) end gh.run { args = { "api", "graphql", "-f", string.format("query=%s", query) }, diff --git a/lua/octo/pickers/telescope/previewers.lua b/lua/octo/pickers/telescope/previewers.lua index 181ef516..2bd66db7 100644 --- a/lua/octo/pickers/telescope/previewers.lua +++ b/lua/octo/pickers/telescope/previewers.lua @@ -21,9 +21,9 @@ local issue = defaulter(function(opts) local owner, name = utils.split_repo(entry.repo) local query if entry.kind == "issue" then - query = graphql("issue_query", owner, name, number) + query = graphql("issue_query", owner, name, number, _G.octo_pv2_fragment) elseif entry.kind == "pull_request" then - query = graphql("pull_request_query", owner, name, number) + query = graphql("pull_request_query", owner, name, number, _G.octo_pv2_fragment) end gh.run { args = { "api", "graphql", "-f", string.format("query=%s", query) }, diff --git a/lua/octo/utils.lua b/lua/octo/utils.lua index 17bfb2b6..389bfe31 100644 --- a/lua/octo/utils.lua +++ b/lua/octo/utils.lua @@ -980,7 +980,7 @@ function M.process_patch(patch) for _, hunk in ipairs(hunk_strings) do local header = vim.split(hunk, "\n")[1] local found, _, left_start, left_length, right_start, right_length = - string.find(header, "^%s*%-(%d+),(%d+)%s+%+(%d+),(%d+)%s*@@") + string.find(header, "^%s*%-(%d+),(%d+)%s+%+(%d+),(%d+)%s*@@") if found then table.insert(hunks, hunk) table.insert(left_ranges, { tonumber(left_start), math.max(left_start + left_length - 1, 0) }) @@ -1088,7 +1088,7 @@ function M.get_pull_request_for_current_branch(cb) local id = pr.currentBranch.id local owner = pr.currentBranch.headRepositoryOwner.login local name = pr.currentBranch.headRepository.name - local query = graphql("pull_request_query", owner, name, number) + local query = graphql("pull_request_query", owner, name, number, _G.octo_pv2_fragment) gh.run { args = { "api", "graphql", "--paginate", "--jq", ".", "-f", string.format("query=%s", query) }, cb = function(output, stderr) @@ -1274,10 +1274,10 @@ function M.apply_mappings(kind, bufnr) local conf = config.values for action, value in pairs(conf.mappings[kind]) do if - not M.is_blank(value) - and not M.is_blank(action) - and not M.is_blank(value.lhs) - and not M.is_blank(mappings[action]) + not M.is_blank(value) + and not M.is_blank(action) + and not M.is_blank(value.lhs) + and not M.is_blank(mappings[action]) then if M.is_blank(value.desc) then value.desc = ""