Use require"octo".setup { ... } to configure the plugin. The configuration covers pickers, remote defaults, UI elements, icon sets, and specialized mappings for discussions, issues, pull requests, and reviews.
Key configuration sections include:
picker: Select the picker engine (telescope, fzf-lua, snacks, or default).picker_config: Configure picker-specific settings like mappings and snacks custom actions.mappings: Define custom keybindings for different contexts (e.g., discussion, issue, pull_request, review_diff).ui: Control buffer appearance, including conceallevel and status column usage.pull_requests / issues / discussions: Set default sorting via order_by (fields: COMMENTS, CREATED_AT, UPDATED_AT; directions: DESC, ASC).gh_cmd: Specify the GitHub CLI command to use (defaults to gh).
require"octo".setup {
picker = "telescope", -- or "fzf-lua" or "snacks" or "default"
picker_config = {
use_emojis = false,
search_static = true,
mappings = {
open_in_browser = { lhs = "<C-b>", desc = "open issue in browser" },
copy_url = { lhs = "<C-y>", desc = "copy url to system clipboard" },
copy_sha = { lhs = "<C-e>", desc = "copy commit SHA to system clipboard" },
checkout_pr = { lhs = "<C-o>", desc = "checkout pull request" },
merge_pr = { lhs = "<C-r>", desc = "merge pull request" },
},
snacks = {
actions = {
issues = {},
pull_requests = {},
notifications = {},
issue_templates = {},
search = {},
changed_files = {},
commits = {},
review_commits = {},
},
},
},
default_remote = { "upstream", "origin" },
default_merge_method = "merge",
default_delete_branch = false,
ssh_aliases = {["github.com-work"] = "github.com"},
gh_cmd = "gh",
-- ... other options
}