Feat: Adds open_in_browser() command to open MR in browser
This commit is contained in:
@@ -223,6 +223,7 @@ The plugin does not set up any keybindings outside of these buffers, you need to
|
|||||||
|
|
||||||
```lua
|
```lua
|
||||||
local gitlab = require("gitlab")
|
local gitlab = require("gitlab")
|
||||||
|
vim.keymap.set("n", "<leader>glr", gitlab.review)
|
||||||
vim.keymap.set("n", "<leader>gls", gitlab.summary)
|
vim.keymap.set("n", "<leader>gls", gitlab.summary)
|
||||||
vim.keymap.set("n", "<leader>glA", gitlab.approve)
|
vim.keymap.set("n", "<leader>glA", gitlab.approve)
|
||||||
vim.keymap.set("n", "<leader>glR", gitlab.revoke)
|
vim.keymap.set("n", "<leader>glR", gitlab.revoke)
|
||||||
@@ -234,6 +235,7 @@ vim.keymap.set("n", "<leader>glad", gitlab.delete_assignee)
|
|||||||
vim.keymap.set("n", "<leader>glra", gitlab.add_reviewer)
|
vim.keymap.set("n", "<leader>glra", gitlab.add_reviewer)
|
||||||
vim.keymap.set("n", "<leader>glrd", gitlab.delete_reviewer)
|
vim.keymap.set("n", "<leader>glrd", gitlab.delete_reviewer)
|
||||||
vim.keymap.set("n", "<leader>glp", gitlab.pipeline)
|
vim.keymap.set("n", "<leader>glp", gitlab.pipeline)
|
||||||
|
vim.keymap.set("n", "<leader>glo", gitlab.open_in_browser)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|||||||
19
lua/gitlab/actions/miscellaneous.lua
Normal file
19
lua/gitlab/actions/miscellaneous.lua
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
local state = require("gitlab.state")
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.open_in_browser = function()
|
||||||
|
local url = state.INFO.web_url
|
||||||
|
if url == nil then
|
||||||
|
vim.notify("Could not get Gitlab URL", vim.log.levels.ERROR)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if vim.fn.has("mac") == 1 then
|
||||||
|
vim.fn.jobstart({ "open", url })
|
||||||
|
elseif vim.fn.has("unix") == 1 then
|
||||||
|
vim.fn.jobstart({ "xdg-open", url })
|
||||||
|
else
|
||||||
|
vim.notify("Opening a Gitlab URL is not supported on this OS!", vim.log.levels.ERROR)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -9,6 +9,7 @@ local assignees_and_reviewers = require("gitlab.actions.assignees_and_reviewers"
|
|||||||
local comment = require("gitlab.actions.comment")
|
local comment = require("gitlab.actions.comment")
|
||||||
local pipeline = require("gitlab.actions.pipeline")
|
local pipeline = require("gitlab.actions.pipeline")
|
||||||
local approvals = require("gitlab.actions.approvals")
|
local approvals = require("gitlab.actions.approvals")
|
||||||
|
local miscellaneous = require("gitlab.actions.miscellaneous")
|
||||||
|
|
||||||
local info = state.dependencies.info
|
local info = state.dependencies.info
|
||||||
local project_members = state.dependencies.project_members
|
local project_members = state.dependencies.project_members
|
||||||
@@ -44,4 +45,5 @@ return {
|
|||||||
-- Other functions 🤷
|
-- Other functions 🤷
|
||||||
state = state,
|
state = state,
|
||||||
print_settings = state.print_settings,
|
print_settings = state.print_settings,
|
||||||
|
open_in_browser = async.sequence({ info }, miscellaneous.open_in_browser),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user