{"id":13646466,"url":"https://github.com/rmuslimov/browse-at-remote","last_synced_at":"2026-01-10T08:06:27.065Z","repository":{"id":26706327,"uuid":"30163485","full_name":"rmuslimov/browse-at-remote","owner":"rmuslimov","description":"Browse target page on github/bitbucket from emacs buffers","archived":false,"fork":false,"pushed_at":"2024-02-11T17:02:43.000Z","size":210,"stargazers_count":232,"open_issues_count":20,"forks_count":53,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-02T01:26:04.723Z","etag":null,"topics":["bitbucket","emacs-lisp","gist","github","gitlab","phabricator","sourcehut","stash"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rmuslimov.png","metadata":{"files":{"readme":"readme.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-01T23:18:56.000Z","updated_at":"2024-07-18T11:00:35.000Z","dependencies_parsed_at":"2024-01-14T10:00:16.471Z","dependency_job_id":"46df57fd-5bf6-49d7-a01e-0bdeb6921c64","html_url":"https://github.com/rmuslimov/browse-at-remote","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmuslimov%2Fbrowse-at-remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmuslimov%2Fbrowse-at-remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmuslimov%2Fbrowse-at-remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmuslimov%2Fbrowse-at-remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rmuslimov","download_url":"https://codeload.github.com/rmuslimov/browse-at-remote/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223880204,"owners_count":17219076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitbucket","emacs-lisp","gist","github","gitlab","phabricator","sourcehut","stash"],"created_at":"2024-08-02T01:02:56.476Z","updated_at":"2024-11-09T20:30:15.244Z","avatar_url":"https://github.com/rmuslimov.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":".. image:: http://melpa.org/packages/browse-at-remote-badge.svg\n   :target: http://melpa.org/#/browse-at-remote\n\n.. image:: https://travis-ci.org/rmuslimov/browse-at-remote.svg?branch=master\n    :target: https://travis-ci.org/rmuslimov/browse-at-remote\n\nbrowse-at-remote.el\n===================\n\nThis package is easiest way to open particular link on *github*/*gitlab*/*bitbucket*/*stash*/*git.savannah.gnu.org*/*sourcehut* from Emacs. It supports various kind of emacs buffer, like:\n\n- file buffer\n- dired buffer\n- magit-mode buffers representing code\n- vc-annotate mode (use get there by pressing ``C-x v g`` by default)\n\nInstallation:\n-------------\n\nAdd ``browse-at-remote`` to your Cask file:::\n\n  (depends-on \"browse-at-remote\")\n\nManual\n******\n\nSimply add this package to your emacs path, and add to ``.emacs``,::\n\n  (require 'browse-at-remote)\n\nActive keybindings for ``browse-at-remote`` function:::\n\n  (global-set-key (kbd \"C-c g g\") 'browse-at-remote)\n\nGNU Guix\n********\n\nRun ``guix install emacs-browse-at-remote`` then load ``browse-at-remote`` from your Emacs init.\n\nCustomization\n-------------\n\nRemote types\n************\n\nBy default `browse-at-remote` knows how to work with popular remote types (github/gitlab..). Knowledge how to work with certain remote-type comes from mapping `browse-at-remote-remote-type-domains`. It defines that `github.com` should be treat in github manner, `bitbucket.org` in bitbucket manner and so on.\nIn your development you may have some specific git-url, and `browse-at-remote` will before confuse which remote-type map to your domain.\n\nTwo solution available:\n\n1. In that case you can to customize that. (`M-x customize ... browse-at-remote-remote-type-domains`). For now our package supports next remote-types:\n\n\n   - bitbucket.com\n   - gitlab.com\n   - github.com\n   - Stash\n   - git.savannah.gnu.org\n   - gist.github.com\n   - Phabricator\n   - git.sr.ht\n   - pagure.io\n   - vs-ssh.visualstudio.com\n\n\n2. Set specific remote-type directly in git repo. For example, if your repository is hosted on GitHub enterprise, you should add following setting to its config::\n\n     git config --add browseAtRemote.type \"github\"\n\n   or for private Stash repository use command::\n\n     git config --add browseAtRemote.type \"stash\"\n\nExcluding line number if no region is selected\n**********************************************\n\nBy default `browse-at-remote` add line number when region is not selected in file attached buffer. If you don't like that and what to see no line information URL, it's possible to disable that by adding:::\n\n  (setq browse-at-remote-add-line-number-if-no-region-selected nil)\n\nOr setting via UI with `M-x customize`.\n\nCustomize how the host is resolved\n**********************************\n\nThere are cases where you might need to resolve a remote host to a particular value. For example, one common strategy to manage multiple SSH keys is to add an entry to `~/.ssh.config`::\n\n  Host mycompany.github.com\n      HostName github.com\n      User git\n      IdentityFile ~/.ssh/id_rsa_mycompany\n\nFor such cases, you can use the `:actual-host` property::\n\n   (add-to-list 'browse-at-remote-remote-type-regexps\n                `(:host ,(rx bol \"mycompany.github.com\" eol)\n                  :type \"github\"\n                  :actual-host \"github.com\"))\n\nYou can also directly configure the repository::\n\n  git config --add browseAtRemote.actualHost \"github.com\"\n\nAdding new remote type\n----------------------\n\nYou can add your own remote if you need - PRs are welcome! Please see good examples here: gnu-savannah-remote_, or stash-remote_.\n\n\nUsage:\n------\n\n1. Call function from emacs buffer::\n\n     M-x browse-at-remote\n\n   or::\n\n     M-x bar-browse\n\n   .. image:: http://i.imgur.com/rmAky8e.png\n\n   or just call ``C-c g g`` if you've already added binding before. You can use\n   this command in dired buffers too.\n\n2. Target page at github/bitbucket will be opened using your default browser:\n\n\n   .. image:: http://i.imgur.com/wBW9Gov.png\n      alt: screenshot of page at github\n\n   or same here is folder view at bitbucket:\n\n   .. image:: http://i.imgur.com/XuzLhcR.png\n      alt: screenshot page tree at bibucket\n\n3. Opening github commit's page at *magit-commit-mode*, *magit-log-mode*:\n\n   .. image:: http://i.imgur.com/NzlIHYr.png\n      alt: screenshot of *magit-log-mode*\n\n4. Open last commit which added target line:\n\n   .. image:: http://i.imgur.com/lpmOAz2.png\n      alt: screen of *vc-annotate-mode*\n\n   - Press `C-x v g` to call standard vc-annotate\n   - Call `browse-at-remote` on target line\n\n\nContributors:\n-------------\n\n- `@rmuslimov`_\n- `@env0der`_\n- `@ben`_\n- `@duff`_\n- `@Wilfred`_\n- `@yauhen-l`_\n- `@ieure`_\n- `@wigust`_\n- `@CyberShadow`_\n- `@kuba-orlik`_\n- `@jwhitbeck`_\n- `@microamp`_\n- `@FrostyX`_\n- `@legendary-mich`_\n- `@ilmotta`_\n\nChangelog:\n--------\n\n0.15.0\n******\nAdded new feature allowing customize how hosts are resolved by @ilmotta.\n\n\n0.14.0\n******\nNew remote type added **Pagure** by `@FrostyX`_.\nNew configuration option `browse-at-remote-add-line-number-if-no-region-selected` allowing add or not line number when target page open and region initially is not selected.\n\n0.13.0\n******\nNew remote type added **Sourcehut** by `@microamp`_.\n\n0.12.0\n******\nNew remote type added **Phabricator** by `@kuba-orlik`_.\n\n0.11.0\n******\nNew remote type added **gist.github.com** by `@CyberShadow`_.\n\n0.10.0\n******\nNew remote type added **git.savannah.gnu.org** by `@wigust`_.\n\n0.9.0\n*****\nMinor fixes, added Stash (bitbucket support) by `@yauhen-l`_.\n\n0.8.0\n*****\nDrop clojure-style function namings. Add abbrev methods like `bar-browse` and `bar-to-clipoboard` (where `bar` is browse-at-remote abbrev.)\n\n0.7.0\n*****\nMajor refactorings by `@ieure`_. Main function renamed to `browse-at-remote/browse`. (renamed in 0.8.0 to `bar-browse`)\n\n0.6.0\n*****\nAdded support of Gitlab by `@env0der`_. Thanks!\n\n0.5.0\n*****\nAdded support of Github Enterprice. Special thanks for `@env0der`_ for this feature.\n\n0.4.0\n*****\nFunction `browse-at-remote/to-clipboard` were added (renamed in 0.8.0 to `bar-to-clibpoard`)\n\nTODO:\n-----\n\n- Add mercurial support\n\n\n.. _`@rmuslimov`: https://github.com/rmuslimov\n.. _`@env0der`: https://github.com/env0der\n.. _`@Wilfred`: https://github.com/Wilfred\n.. _`@ben`: https://github.com/ben\n.. _`@duff`: https://github.com/duff\n.. _`@ieure`: https://github.com/ieure\n.. _`@yauhen-l`: https://github.com/yauhen-l\n.. _`@wigust`: https://github.com/wigust\n.. _`@CyberShadow`: https://github.com/CyberShadow\n.. _`@kuba-orlik`: https://github.com/kuba-orlik\n.. _`@jwhitbeck`: https://github.com/jwhitbeck\n.. _`@microamp`: https://github.com/microamp\n.. _`@FrostyX`: https://github.com/FrostyX\n.. _`@legendary-mich`: https://github.com/legendary-mich\n.. _stash-remote: https://github.com/rmuslimov/browse-at-remote/pull/34/files\n.. _gnu-savannah-remote: https://github.com/rmuslimov/browse-at-remote/pull/46/files\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmuslimov%2Fbrowse-at-remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frmuslimov%2Fbrowse-at-remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmuslimov%2Fbrowse-at-remote/lists"}