{"id":15116675,"url":"https://github.com/dhilman/gitowl-extension","last_synced_at":"2025-07-22T23:36:11.076Z","repository":{"id":132444124,"uuid":"609995420","full_name":"dhilman/gitowl-extension","owner":"dhilman","description":"GitOwl Browser Extension. Open Source Insights At a Glance.","archived":false,"fork":false,"pushed_at":"2024-10-22T20:15:35.000Z","size":1566,"stargazers_count":35,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T15:39:58.929Z","etag":null,"topics":["browser-extension","chrome-extension","github","insights","oss"],"latest_commit_sha":null,"homepage":"https://gitowl.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhilman.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":"2023-03-05T20:54:22.000Z","updated_at":"2025-03-21T10:42:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"d0198b70-9bd1-4778-90b6-ca80b0c45ba2","html_url":"https://github.com/dhilman/gitowl-extension","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dhilman/gitowl-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhilman%2Fgitowl-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhilman%2Fgitowl-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhilman%2Fgitowl-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhilman%2Fgitowl-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhilman","download_url":"https://codeload.github.com/dhilman/gitowl-extension/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhilman%2Fgitowl-extension/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266591059,"owners_count":23953050,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":["browser-extension","chrome-extension","github","insights","oss"],"created_at":"2024-09-26T01:44:30.519Z","updated_at":"2025-07-22T23:36:11.053Z","avatar_url":"https://github.com/dhilman.png","language":"TypeScript","readme":"\n\u003ch1 align=\"center\"\u003e\n  GitOwl Browser Extension\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\n  \u003cb\u003e\u003ca href=\"https://gitowl.dev\"\u003egitowl.dev\u003c/a\u003e\u003c/b\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003cb\u003e\u003ca href=\"https://chrome.google.com/webstore/detail/gitowl/gijnkijpbdlefjnobncjfongkbpoohdb\"\u003echrome\u003c/a\u003e\u003c/b\u003e\n  \u003cspan\u003e • \u003c/span\u003e\n  \u003cb\u003e\u003ca href=\"https://addons.mozilla.org/en-US/firefox/addon/gitowl/\"\u003efirefox\u003c/a\u003e\u003c/b\u003e\n\u003c/h3\u003e\n\n![Screenshot](./screenshots/main.png)\n\nGitOwl browser extension adds a sidebar to GitHub, NPM \u0026 PyPI with contextual insights.\n\nThe extension code itself is kept to a minimum, to maintain privacy and ease of review.\nThe insights are provided by the `gitowl.dev` iframe, which is embedded in the sidebar and doesn't have access to the content of the page.\n\nThe extension is only responsible for:\n- Controlling the sidebar state\n- Identifying the entity being viewed\n- Instantiating the iframe\n- Passing the entity name to the iframe\n- Storing authentication token\n\n## Architecture\n\nExtension consists of the [content script](./src/content/index.tsx), the [frame](./src/frame/index.html) page and the [worker](./src/worker/index.ts).\n\n### Content Script\n\n- runs in the context of the page\n- creates \u0026 controls the sidebar\n- identifies the entity being viewed\n- instantiates frame.html as an iframe\n- posts messages to iframe if the entity changes\n\n### Frame Page\n\nThe frame page contains the `gitowl.dev` iframe, it is needed to prevent issues with embedding iframe with a different origin.\n\n- Relays messages from the content script to `gitowl.dev` (URL changes)\n- Attaches authentication token to the `gitowl.dev` URL\n\n### Worker (chromium only)\n\nListens for messages from `gitowl.dev` and stores the authentication token.\n\n## Development\n\n1. Install dependencies\n```shell\n$ npm install\n```\n\n2. Run the dev script\n```shell\n$ npm run dev\n```\n\nThe extension preview will be available at `http://localhost:5173`. Alternatively, it can also be loaded as an unpacked extension (see below).\n\n### Loading the extension (Chrome)\n\n```shell\n# Builds the extension and watches for changes\n$ npm run build:watch\n```\n\n- Open the Extension Management page by navigating to `chrome://extensions`.\n- Enable Developer Mode by clicking the toggle switch next to Developer mode.\n- Click the `LOAD UNPACKED` button and select the `dist` directory.\n- Note: there is no automatic reloading, so you will need to manually reload the extension to see changes.\n\n\n## Build \u0026 Pack\n\nThe build script simply bundles the extension and zips the contents of the `dist` directory.\n\n```shell\n$ ./scripts/create-release.sh\n```\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhilman%2Fgitowl-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhilman%2Fgitowl-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhilman%2Fgitowl-extension/lists"}