{"id":13475503,"url":"https://github.com/vfeskov/gitpunch","last_synced_at":"2025-05-16T06:07:49.637Z","repository":{"id":27235347,"uuid":"111587387","full_name":"vfeskov/gitpunch","owner":"vfeskov","description":"Watch for releases on GitHub → gitpunch.com","archived":false,"fork":false,"pushed_at":"2024-11-10T00:30:20.000Z","size":20403,"stargazers_count":390,"open_issues_count":69,"forks_count":8,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-08T16:06:29.803Z","etag":null,"topics":["aws","docker","nodejs","pwa","react","ssr"],"latest_commit_sha":null,"homepage":"https://gitpunch.com","language":"JavaScript","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/vfeskov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"patreon":"vfeskov"}},"created_at":"2017-11-21T18:40:29.000Z","updated_at":"2025-03-25T19:36:32.000Z","dependencies_parsed_at":"2024-12-08T15:11:29.683Z","dependency_job_id":null,"html_url":"https://github.com/vfeskov/gitpunch","commit_stats":{"total_commits":396,"total_committers":4,"mean_commits":99.0,"dds":0.02777777777777779,"last_synced_commit":"bcae71b1a9a622823537e3b32b96d0f5947f91fb"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfeskov%2Fgitpunch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfeskov%2Fgitpunch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfeskov%2Fgitpunch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfeskov%2Fgitpunch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vfeskov","download_url":"https://codeload.github.com/vfeskov/gitpunch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478193,"owners_count":22077676,"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":["aws","docker","nodejs","pwa","react","ssr"],"created_at":"2024-07-31T16:01:20.964Z","updated_at":"2025-05-16T06:07:44.626Z","avatar_url":"https://github.com/vfeskov.png","language":"JavaScript","funding_links":["https://patreon.com/vfeskov"],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://gitpunch.com\"\u003e\u003cimg width=\"300px\" src=\"https://raw.githubusercontent.com/vfeskov/gitpunch/master/client/src/big-logo.png\"/\u003e\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n  Watch for releases on GitHub\n\u003c/p\u003e\n\n## Features\n\n- **Realtime** or **daily** updates\n- Ignore **minor**, **patch** or **pre-releases** ([semver](https://semver.org/))\n- Optionally **watch starred** repos\n- Completely **open-source**\n\n## API\n\n### `POST /api/sign_in`\n\nGets you an authorization token via cookie\n\nExample payload\n```json\n{\n  \"email\": \"test@email.com\",\n  \"password\": \"testpassword\"\n}\n```\n\nResponds with user record (see [profile](#profile)) and `Set-Cookie` header that sets `token` cookie. The cookie must be sent with subsequent requests for authorization\n\n### `DELETE /api/sign_out`\n\nUnsets `token` cookie\n\n### \u003ca id=\"profile\"\u003e\u003c/a\u003e`GET /api/profile`\n\nReturns authorized user record\n\nExample response:\n```js\n{\n  \"id\":\"5bd5f53e66785643e93c83a9\",\n  \"email\":\"test@email.com\",\n  \"frequency\":\"daily\",\n  \"checkAt\":9, // UTC hour\n  \"accessToken\":\"tui43sg76bbcbfce178bb682b01d6ebcd8b1c221\", // of github\n  \"watching\":true,\n  \"watchingStars\":1, // 0: not watching stars\n                     // 1: adding new stars\n                     // 2: 1 + removing nonstars\n  \"alerted\":[[\"angular/angular\",\"7.1.0-beta.1\"],[\"vuejs/vue\",\"v2.5.17\"]],\n  \"repos\":[\n    {\n      \"repo\":\"angular/angular\",\n      \"muted\":false,\n      \"filter\":0 // 0: only major releases\n                 // 1: major \u0026 minor\n                 // 2: major, minor \u0026 patch\n                 // 3: all\n    },\n    {\n      \"repo\":\"vuejs/vue\",\n      \"muted\":true,\n      \"filter\":2\n    }\n  ]\n}\n```\n\n### `PATCH /api/profile`\n\nUpdates record of authorized user\n\nAny of the params can be send alone or all together:\n```js\n{\n  \"frequency\":\"daily\",\n  \"checkAt\":9, // UTC hour\n  \"watching\":true,\n  \"watchingStars\":1, // 0: not watching stars\n                     // 1: adding new stars\n                     // 2: 1 + removing nonstars\n  \"repos\":[\n    {\n      \"repo\":\"angular/angular\",\n      \"muted\":false,\n      \"filter\":0 // 0: only major releases\n                 // 1: major \u0026 minor\n                 // 2: major, minor \u0026 patch\n                 // 3: all\n    },\n    {\n      \"repo\":\"vuejs/vue\",\n      \"muted\":true,\n      \"filter\":2\n    }\n  ]\n}\n```\n\nResponds with result user record, see [profile](#profile)\n\n### `POST /api/repos`\n\nAdds a repo to authorized user\n\nParams:\n```js\n{\n  \"repo\":\"angular/angular\",\n  \"muted\":false,\n  \"filter\":0 // 0: only major releases\n             // 1: major \u0026 minor\n             // 2: major, minor \u0026 patch\n             // 3: all\n}\n```\n\nResponds with all repos of authorized user, \u003ca id=\"all-repos-example\"\u003e\u003c/a\u003eexample:\n```js\n{\n  \"repos\":[\n    {\n      \"repo\":\"angular/angular\",\n      \"muted\":false,\n      \"filter\":0 // 0: only major releases\n                 // 1: major \u0026 minor\n                 // 2: major, minor \u0026 patch\n                 // 3: all\n    },\n    {\n      \"repo\":\"vuejs/vue\",\n      \"muted\":true,\n      \"filter\":2\n    }\n  ]\n}\n```\n\n### `POST /api/repos/bulk`\n\nAdds multiple repos to authorized user\n\nParams:\n```js\n{\n  \"repos\":[\n    {\n      \"repo\":\"angular/angular\",\n      \"muted\":false,\n      \"filter\":0 // 0: only major releases\n                 // 1: major \u0026 minor\n                 // 2: major, minor \u0026 patch\n                 // 3: all\n    },\n    {\n      \"repo\":\"vuejs/vue\",\n      \"muted\":true,\n      \"filter\":2\n    }\n  ]\n}\n```\n\nResponds with all repos of authorized user, see [example](#all-repos-example)\n\n### `PATCH /api/repos/all`\n\nUpdates all repos of authorized user\n\nParams can be sent alone or all together:\n```js\n{\n  \"muted\":false,\n  \"filter\":0 // 0: only major releases\n             // 1: major \u0026 minor\n             // 2: major, minor \u0026 patch\n             // 3: all\n}\n```\n\nResponds with all repos of authorized user, see [example](#all-repos-example)\n\n### `PATCH /api/repos/:repo`\n\nUpdates a single repo of authorized user\n\nParams:\n```js\n{\n  \"muted\":false,\n  \"filter\":0 // 0: only major releases\n             // 1: major \u0026 minor\n             // 2: major, minor \u0026 patch\n             // 3: all\n}\n```\n\nResponds with all repos of authorized user, see [example](#all-repos-example)\n\n### `DELETE /api/repos/all`\n\nDeletes all repos of authorized user\n\nResponds with `{repos: []}`\n\n### `DELETE /api/repos/:repo`\n\nDeletes a repo of authorized user\n\nResponds with all repos of authorized user, see [example](#all-repos-example)\n\n## Notifier Stats\n\u003cimg src=\"https://raw.githubusercontent.com/vfeskov/gitpunch/master/monitoring.png\" width=\"800px\" /\u003e\n\n## Credits\n\nLogo by [Sasha Feskova](https://www.behance.net/feskovochka). Special thanks to [@soulim](https://github.com/soulim) and [@luziamg](https://github.com/luziamg)\n\n----------\n\nSupport GitPunch by reporting bugs, suggesting ideas and starring the project - your feedback really helps me stay motivated ♥\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvfeskov%2Fgitpunch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvfeskov%2Fgitpunch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvfeskov%2Fgitpunch/lists"}