{"id":18103007,"url":"https://github.com/simonrw/gh-ci-watch","last_synced_at":"2026-03-15T04:07:04.650Z","repository":{"id":259948055,"uuid":"855206204","full_name":"simonrw/gh-ci-watch","owner":"simonrw","description":"Watch multiple CI runs from your menubar","archived":false,"fork":false,"pushed_at":"2025-03-03T19:33:12.000Z","size":846,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T09:45:34.538Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/simonrw.png","metadata":{"files":{"readme":"README.md","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":"2024-09-10T13:50:09.000Z","updated_at":"2024-12-02T21:55:24.000Z","dependencies_parsed_at":"2024-10-28T19:43:22.042Z","dependency_job_id":null,"html_url":"https://github.com/simonrw/gh-ci-watch","commit_stats":null,"previous_names":["simonrw/gh-ci-watch"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonrw%2Fgh-ci-watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonrw%2Fgh-ci-watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonrw%2Fgh-ci-watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonrw%2Fgh-ci-watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonrw","download_url":"https://codeload.github.com/simonrw/gh-ci-watch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248766142,"owners_count":21158296,"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":[],"created_at":"2024-10-31T22:09:53.655Z","updated_at":"2026-03-15T04:06:59.631Z","avatar_url":"https://github.com/simonrw.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Actions Monitor\n\n_Track your CI runs on PRs in a handy and beautiful desktop app._\n\nI often have multiple PRs running CI in progress, and wish to have a better handle on CI completion. I used to use the GitHub CLI with a command similar to:\n\n```fish\ngh pr checks --watch; and \u003csend desktop notification\u003e\n```\nhowever I often lost track of which notification belonged to which branch. I wanted to build a desktop application that was good to look at.\n\n\n## Features\n\n![Screenshot](./.github/docs/screenshot.png)\n\n* Live updating of PRs in progress\n* System notifications on completion\n* Links to the PR and checks\n* Inline description of the PR for context\n* Dark and light modes\n\n## Installation\n\nVisit the [project releases](https://github.com/simonrw/gh-ci-watch/releases) and download the latest application for your architecture.\n\n\n## Usage\n\nOn startup, the application will ask for your GitHub token. You can use `gh auth token` if you have installed the GitHub CLI, or you can go to [your tokens settings page](https://github.com/settings/tokens?type=beta) and add a token. Then paste your token in the initial screen of the app.\n\n### Required token scopes\n\nWhen creating a token, we recommend using \"Fine-grained tokens\", as this minimises the permissions granted.\n\nThis project requires _read-only_ access to the following scopes:\n\n* `actions` for:\n    * `/repos/{owner}/{repo}/actions/workflows`\n    * `/repos/{owner}/{repo}/actions/workflows/{workflow_number}/runs`\n    * `/repos/{owner}/{repo}/actions/runs/{run_number}/jobs`\n* `contents` for:\n    * `/repos/{owner}/{repo}/pulls/{pr_number}`\n\nfor any repository you wish to track.\n\n## Config file\n\nThis application can be configured by creating a `gh-actions-monitor/config.toml` file in your systems configuration dir. This file should be placed in your `XDG_CONFIG_HOME` directory. See the [table in the documentation to the `dirs::config_dir` function](https://docs.rs/dirs/latest/dirs/fn.config_dir.html) to locate your `XDG_CONFIG_HOME` directory.\n\nFor example, on Linux this configuration file will be located at `~/.config/gh-actions-monitor/config.toml`.\n\n### Error reporting\n\nThis application reports errors with [Sentry](https://sentry.io/). If you do not wish to send error reports, you can disable this functionality by setting `enable_sentry = false` in your [config file](#config-file).\n\n## Development\n\nThis project is written in Rust using the Tauri application framework.\nThe frontend is written in React using TypeScript, with [shadcn/ui](https://ui.shadcn.com/) and [tailwind](https://tailwindcss.com/) for styling.\n\n### Requirements\n\n* `rust`\n* `pnpm`\n\n### Getting set up\n\n1. `pnpm install` in the top level dir\n2. `pnpm start` to start the application in \"development\" mode, where the UI will hot reload, and changes to the Rust code will cause a recompilation and restart of the app.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonrw%2Fgh-ci-watch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonrw%2Fgh-ci-watch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonrw%2Fgh-ci-watch/lists"}