{"id":16614543,"url":"https://github.com/manuelhentschel/vscode-github-linker","last_synced_at":"2026-05-08T01:48:07.857Z","repository":{"id":40548176,"uuid":"310141090","full_name":"ManuelHentschel/vscode-github-linker","owner":"ManuelHentschel","description":"VS Code extension to create and open GitHub links","archived":false,"fork":false,"pushed_at":"2024-02-23T18:01:28.000Z","size":165,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T00:17:45.003Z","etag":null,"topics":["github","url","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=manhen.github-linker","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ManuelHentschel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-11-04T23:28:18.000Z","updated_at":"2023-04-11T15:32:55.000Z","dependencies_parsed_at":"2022-07-27T09:02:31.215Z","dependency_job_id":"6599e411-911a-4657-a0f1-1596db05a7db","html_url":"https://github.com/ManuelHentschel/vscode-github-linker","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/ManuelHentschel/vscode-github-linker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManuelHentschel%2Fvscode-github-linker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManuelHentschel%2Fvscode-github-linker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManuelHentschel%2Fvscode-github-linker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManuelHentschel%2Fvscode-github-linker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ManuelHentschel","download_url":"https://codeload.github.com/ManuelHentschel/vscode-github-linker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManuelHentschel%2Fvscode-github-linker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32763518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["github","url","vscode-extension"],"created_at":"2024-10-12T02:06:49.306Z","updated_at":"2026-05-08T01:48:07.840Z","avatar_url":"https://github.com/ManuelHentschel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Features\n\nThis extension adds commands to create and open remote links to the currently open file.\nThere are a number of extensions that offer similar functionality,\nso I tried to focus on three areas with this extension:\n\n* **Flexibility:**\nUser configurable regular expressions and template strings to parse/modify/create urls\n* **Small Footprint:**\nOnly depends on the default vscode.git extension\n* **Inverse functionality:**\nTry to parse the clipboard content and open the corresponding file\n\n# Commands\n\n* `githubLinker.copyUrl`:\nCopy a GitHub link to the currently selected file and lines.\n* `githubLinker.openUrlInBrowser`:\nMake a link to the currently selected file and open it in an external browser.\n* `githubLinker.openFileFromUrl`:\nRead the current clipboard content, try to parse it and open the corresponding file.\nIs a \"best guess\", does not create any files or perform any git actions.\n\n# Settings\n\nBelow is an explanation of the key settings.\nThere are some more settings that are described only in the settings window itself.\nEach setting contains sensible defaults, that should work for \"normal\" repositories.\n\n## Making remote URLs\n\n### `githubLinker.patterns.githubLinker`\nSearch-Replace patterns that are applied to the remote URL when making a GitHub URL.\nSearch patterns are passed to `Regexp()` first!\nThey are applied in the same order as they are specified in the settings.\nCan be used e.g. to remove the \".git\" from the end of an URL \nor to convert locally defined SSH hosts to URLs.\nCan also be set in a workspace to completely overwrite the URL by matching `.*`\nand replacing it with the desired URL.\n\n### `githubLinker.templates.githubLinker`\nThe template used to construct the GitHub URL.\nDefaults to\n`${repoUrl}/blob/${remoteHash}/${relativePath}${lineSpec}`.\nThe references `${...}` are filled using simple search and replace,\nso they can only contain the following references:\n* `${repoUrl}`: The base URL of the repository.\n* `${relativePath}`: The relative path of the file in the repository.\n* `${lineSpec}`: The line numbers that are selected, e.g. `#L3-L12`.\nSee below for details.\n* Any of the following references to identify the commit.\nIf a reference cannot be found, the `remoteXXX` references fall back to their local counterpart\nand branches fall back to hashes, with `${localHash}` being the last resort for most references.\nOnly `${remoteName}` and `${tag}` fall back to an empty string.\n    * `${localBranch}`\n    * `${remoteBranch}`\n    * `${localHash}`\n    * `${remoteHash}`\n    * `${tagOrBranch}`\n    * `${tagOrLocalHash}`\n    * `${tagOrRemoteHash}`\n    * `${remoteName}`\n    * `${tag}`\n\n### `githubLinker.templates.oneLineNumber`\nThe template used to construct the `${lineSpec}` used above,\nwhen the selection contains only one line.\nCan reference `${line0}`.\n\n### `githubLinker.templates.twoLineNumbers`\nThe template used to construct the `${lineSpec}` used above,\nwhen the selection spans multiple lines.\nCan reference `${line0}` and `${line1}`.\n\n## Opening files specified in the clipboard\n\n### `githubLinker.patterns.openFiles`\nSearch-Replace patterns that are applied to the URL/path, when opening a file from the clipboard.\nSearch patterns are passed to `Regexp()` first!\nThey are applied in the same order as they are specified in the settings.\nIt is expected that only the path of the file and the optional line numbers remain after replacing these patterns.\nThe path is considered either as absolute path, relative to the workspace folder(s),\nor relative to the repository root(s).\nThe first combination that yields an existing file is opened in a new editor.\n\n### `githubLinker.patterns.lineNumbers`\nThe `Regexp()` patterns used to identify line numbers that are selected after opening the file.\nShould contain one or two capture groups.\nThe patterns are used in the same order as they are specified in the config.\nThe first matching pattern is replaced with an empty string,\nits first capture group (if present) is considered as the first line number in the selection,\nand the second capture group (if present) is considered as the last number in the selection.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanuelhentschel%2Fvscode-github-linker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanuelhentschel%2Fvscode-github-linker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanuelhentschel%2Fvscode-github-linker/lists"}