{"id":17910328,"url":"https://github.com/raulfdm/gh-open-prs","last_synced_at":"2025-03-23T21:33:14.216Z","repository":{"id":36195388,"uuid":"220705872","full_name":"raulfdm/gh-open-prs","owner":"raulfdm","description":"Dashboard to track projects PR's from an organization","archived":false,"fork":false,"pushed_at":"2023-10-28T03:53:09.000Z","size":25519,"stargazers_count":3,"open_issues_count":10,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-14T00:44:00.394Z","etag":null,"topics":["github","organization","pull-request","pull-request-tracker"],"latest_commit_sha":null,"homepage":"https://github-pr-tracker.now.sh/","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/raulfdm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-09T21:26:49.000Z","updated_at":"2023-04-11T04:25:24.000Z","dependencies_parsed_at":"2023-01-16T23:46:06.527Z","dependency_job_id":null,"html_url":"https://github.com/raulfdm/gh-open-prs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raulfdm%2Fgh-open-prs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raulfdm%2Fgh-open-prs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raulfdm%2Fgh-open-prs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raulfdm%2Fgh-open-prs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raulfdm","download_url":"https://codeload.github.com/raulfdm/gh-open-prs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221918168,"owners_count":16901605,"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":["github","organization","pull-request","pull-request-tracker"],"created_at":"2024-10-28T19:30:01.128Z","updated_at":"2024-10-28T19:30:01.899Z","avatar_url":"https://github.com/raulfdm.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Github Open PRs\n\n\u003e Simple Page to track open PR's for specifics projects.\n\n![App Home](./media/home.png)\n\n## Before start\n\nThis project uses [Github GraphQL API](https://developer.github.com/v4/). Differently from their [REST API](https://developer.github.com/v3/), it **requires** you being Authenticated.\n\n### Generating a Token\n\nIn their documentation, they said you need the same kind of token as required for CLI's ([check it here](https://developer.github.com/v4/guides/forming-calls/#authenticating-with-graphql)).\n\nHowever, I would say, you get the follow permissions:\n\n```\n[x] repo (you need all in order to handle private proj.)\n  [x] repo:status\n  [x] repo:status\n  [x] repo_deployment\n  [x] public_repo\n  [x] repo:invite\n...\n\n[x] admin:org\n  [ ] write:org\n  [x] read:org\n...\n```\n\nWhy? Just because this app does not need any right to **write** things, only read organization repositories.\n\n## How to use\n\n### Track your Repos\n\nBasically you need to fill:\n\n- Organization name;\n- Repositories name split by comma;\n- Github Token API\n\nThen press search and everything will load :)\n\n![Basic Example](./media/pr-tracker-usage.gif)\n\nAll your settings will be saved via Cookies since the Token (and maybe your repository names) are a sensitive information.\n\n### Filter by label\n\nTo only see specific label, you just need to click in the ones you don't have to see.\n\n![Filter Example](./media/pr-tracker-filter.gif)\n\nIn order to keep the selection even if you close the App, this filter is saved via `localStorage`:\n\n```text\nkey: `pr_tracker_label_by_repo`\nvalue: { \u003crepoId\u003e: \u003clabelId\u003e[] }\n```\n\n### Cleaning up\n\nIf you want to remove all your data, it's only about:\n\n1. open the app\n1. Open your console\n1. Application\n1. Clear Site Data (must be localStorage and Cookies)\n\n## Development\n\nThe same as any modern JS app:\n\n1. Fork/clone this project;\n1. navigate inside the folder;\n1. run `pnpm` to install dependencies;\n1. then boot the server by running `pnpm run dev`\n\nThen your app will be available at `http://localhost:3000`\n\n## Stack\n\n- NextJS\n- TypeScript\n- ApolloClient\n- Styled Components\n\n## Issues\n\nMaybe this is just the beginning. Feel free to report issues, come up with suggestions or improvements. PR's are always open! :)\n\n## License\n\n[MIT](./LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraulfdm%2Fgh-open-prs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraulfdm%2Fgh-open-prs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraulfdm%2Fgh-open-prs/lists"}