From 7620b615bda807c7c86172580cfda4d29aae328f Mon Sep 17 00:00:00 2001 From: kpj2006 <24ucs074@lnmiit.ac.in> Date: Wed, 8 Jul 2026 01:22:59 +0530 Subject: [PATCH] feat: implement AppContext for multi-org exploration and create initial page scaffoldings --- .github/workflows/fetch-cache.yml | 36 + public/data/manifest.json | 13 + public/data/orgs/aossie-org.json | 297068 ++++++++++++++++++++++++++ public/data/orgs/djedalliance.json | 57829 +++++ scripts/fetch-orgs.js | 177 + src/context/AppContext.jsx | 125 +- src/pages/HomePage.jsx | 30 +- src/pages/OverviewPage.jsx | 23 +- 8 files changed, 355256 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/fetch-cache.yml create mode 100644 public/data/manifest.json create mode 100644 public/data/orgs/aossie-org.json create mode 100644 public/data/orgs/djedalliance.json create mode 100644 scripts/fetch-orgs.js diff --git a/.github/workflows/fetch-cache.yml b/.github/workflows/fetch-cache.yml new file mode 100644 index 0000000..e9b2ce9 --- /dev/null +++ b/.github/workflows/fetch-cache.yml @@ -0,0 +1,36 @@ +name: Fetch and Cache GitHub Data + +on: + schedule: + # Run every day at midnight UTC + - cron: '0 0 * * *' + workflow_dispatch: + # Allow manual triggering + +permissions: + contents: write + +jobs: + fetch-cache: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Run Fetch Script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: node scripts/fetch-orgs.js + + - name: Commit and Push Cache Files + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add public/data/ + git diff-index --quiet HEAD || (git commit -m "chore: update cached organization data" && git push) diff --git a/public/data/manifest.json b/public/data/manifest.json new file mode 100644 index 0000000..cd5cb7e --- /dev/null +++ b/public/data/manifest.json @@ -0,0 +1,13 @@ +{ + "updatedAt": "2026-07-07T19:10:50.827Z", + "orgs": [ + { + "login": "aossie-org", + "name": "AOSSIE-Org" + }, + { + "login": "djedalliance", + "name": "DjedAlliance" + } + ] +} \ No newline at end of file diff --git a/public/data/orgs/aossie-org.json b/public/data/orgs/aossie-org.json new file mode 100644 index 0000000..ab099a9 --- /dev/null +++ b/public/data/orgs/aossie-org.json @@ -0,0 +1,297068 @@ +{ + "org": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "url": "https://api.github.com/orgs/AOSSIE-Org", + "repos_url": "https://api.github.com/orgs/AOSSIE-Org/repos", + "events_url": "https://api.github.com/orgs/AOSSIE-Org/events", + "hooks_url": "https://api.github.com/orgs/AOSSIE-Org/hooks", + "issues_url": "https://api.github.com/orgs/AOSSIE-Org/issues", + "members_url": "https://api.github.com/orgs/AOSSIE-Org/members{/member}", + "public_members_url": "https://api.github.com/orgs/AOSSIE-Org/public_members{/member}", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "description": "Australian Open Source Software Innovation and Education", + "name": "AOSSIE", + "company": null, + "blog": "http://aossie.org/", + "location": "Australia", + "email": "contact@aossie.org", + "twitter_username": "aossie_org", + "is_verified": false, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 79, + "public_gists": 0, + "followers": 1132, + "following": 0, + "html_url": "https://github.com/AOSSIE-Org", + "created_at": "2018-05-01T11:14:02Z", + "updated_at": "2026-07-04T12:32:07Z", + "archived_at": null, + "type": "Organization" + }, + "repos": [ + { + "id": 647530507, + "node_id": "R_kgDOJpiICw", + "name": "PictoPy", + "full_name": "AOSSIE-Org/PictoPy", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/PictoPy", + "description": "A desktop image gallery with a privacy-first approach. It detects objects and clusters faces. ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/deployments", + "created_at": "2023-05-31T01:38:25Z", + "updated_at": "2026-07-07T18:36:34Z", + "pushed_at": "2026-07-07T16:47:25Z", + "git_url": "git://github.com/AOSSIE-Org/PictoPy.git", + "ssh_url": "git@github.com:AOSSIE-Org/PictoPy.git", + "clone_url": "https://github.com/AOSSIE-Org/PictoPy.git", + "svn_url": "https://github.com/AOSSIE-Org/PictoPy", + "homepage": "https://aossie-org.github.io/PictoPy/", + "size": 541036, + "stargazers_count": 259, + "watchers_count": 259, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": true, + "forks_count": 633, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 234, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "gsoc", + "gsoc-2024", + "gsoc-2025", + "gsoc-2026", + "hacktoberfest" + ], + "visibility": "public", + "forks": 633, + "open_issues": 234, + "watchers": 259, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1121473735, + "node_id": "R_kgDOQthUxw", + "name": "Template-Repo", + "full_name": "AOSSIE-Org/Template-Repo", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Template-Repo", + "description": "Template that should be used for all repos of AOSSIE", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo/deployments", + "created_at": "2025-12-23T03:54:46Z", + "updated_at": "2026-07-07T10:24:48Z", + "pushed_at": "2026-07-07T10:08:18Z", + "git_url": "git://github.com/AOSSIE-Org/Template-Repo.git", + "ssh_url": "git@github.com:AOSSIE-Org/Template-Repo.git", + "clone_url": "https://github.com/AOSSIE-Org/Template-Repo.git", + "svn_url": "https://github.com/AOSSIE-Org/Template-Repo", + "homepage": "", + "size": 561, + "stargazers_count": 17, + "watchers_count": 17, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 27, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 16, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": true, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "template" + ], + "visibility": "public", + "forks": 27, + "open_issues": 16, + "watchers": 17, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 897762063, + "node_id": "R_kgDONYLDDw", + "name": "DebateAI", + "full_name": "AOSSIE-Org/DebateAI", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/DebateAI", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/deployments", + "created_at": "2024-12-03T07:38:23Z", + "updated_at": "2026-07-07T06:06:07Z", + "pushed_at": "2026-03-19T15:51:07Z", + "git_url": "git://github.com/AOSSIE-Org/DebateAI.git", + "ssh_url": "git@github.com:AOSSIE-Org/DebateAI.git", + "clone_url": "https://github.com/AOSSIE-Org/DebateAI.git", + "svn_url": "https://github.com/AOSSIE-Org/DebateAI", + "homepage": null, + "size": 118747, + "stargazers_count": 68, + "watchers_count": 68, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 163, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 242, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 163, + "open_issues": 242, + "watchers": 68, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131983460, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE5ODM0NjA=", + "name": "Agora-web-frontend", + "full_name": "AOSSIE-Org/Agora-web-frontend", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Agora-web-frontend", + "description": "Mirror of the Agora-web-frontend Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-web-frontend/deployments", + "created_at": "2018-05-03T11:08:24Z", + "updated_at": "2026-07-06T07:40:32Z", + "pushed_at": "2026-02-11T19:08:48Z", + "git_url": "git://github.com/AOSSIE-Org/Agora-web-frontend.git", + "ssh_url": "git@github.com:AOSSIE-Org/Agora-web-frontend.git", + "clone_url": "https://github.com/AOSSIE-Org/Agora-web-frontend.git", + "svn_url": "https://github.com/AOSSIE-Org/Agora-web-frontend", + "homepage": "https://gitlab.com/aossie/Agora-web-frontend", + "size": 5721, + "stargazers_count": 12, + "watchers_count": 12, + "language": "SCSS", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 9, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 9, + "open_issues": 1, + "watchers": 12, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131983312, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE5ODMzMTI=", + "name": "Agora-Web", + "full_name": "AOSSIE-Org/Agora-Web", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Agora-Web", + "description": "Mirror of the Agora-Web Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Web/deployments", + "created_at": "2018-05-03T11:06:35Z", + "updated_at": "2026-07-06T07:29:07Z", + "pushed_at": "2026-02-11T19:10:41Z", + "git_url": "git://github.com/AOSSIE-Org/Agora-Web.git", + "ssh_url": "git@github.com:AOSSIE-Org/Agora-Web.git", + "clone_url": "https://github.com/AOSSIE-Org/Agora-Web.git", + "svn_url": "https://github.com/AOSSIE-Org/Agora-Web", + "homepage": "https://gitlab.com/aossie/Agora-Web", + "size": 24375, + "stargazers_count": 11, + "watchers_count": 11, + "language": "HTML", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 8, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 8, + "open_issues": 0, + "watchers": 11, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1143230276, + "node_id": "R_kgDORCRPRA", + "name": "OrgExplorer", + "full_name": "AOSSIE-Org/OrgExplorer", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/OrgExplorer", + "description": "Intuitive Dashboard to Explore Large GitHub Organizations", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/OrgExplorer/deployments", + "created_at": "2026-01-27T10:21:28Z", + "updated_at": "2026-07-06T07:08:11Z", + "pushed_at": "2026-07-03T17:30:42Z", + "git_url": "git://github.com/AOSSIE-Org/OrgExplorer.git", + "ssh_url": "git@github.com:AOSSIE-Org/OrgExplorer.git", + "clone_url": "https://github.com/AOSSIE-Org/OrgExplorer.git", + "svn_url": "https://github.com/AOSSIE-Org/OrgExplorer", + "homepage": "https://orgexplorer.aossie.org/", + "size": 4042, + "stargazers_count": 22, + "watchers_count": 22, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": false, + "forks_count": 52, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 32, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 52, + "open_issues": 32, + "watchers": 22, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1290274929, + "node_id": "R_kgDOTOgIcQ", + "name": "Zplit-Website", + "full_name": "AOSSIE-Org/Zplit-Website", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Zplit-Website", + "description": "Product website for Zplit by AOSSIE", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Zplit-Website/deployments", + "created_at": "2026-07-05T19:20:56Z", + "updated_at": "2026-07-05T19:38:07Z", + "pushed_at": "2026-07-06T09:24:44Z", + "git_url": "git://github.com/AOSSIE-Org/Zplit-Website.git", + "ssh_url": "git@github.com:AOSSIE-Org/Zplit-Website.git", + "clone_url": "https://github.com/AOSSIE-Org/Zplit-Website.git", + "svn_url": "https://github.com/AOSSIE-Org/Zplit-Website", + "homepage": null, + "size": 896, + "stargazers_count": 0, + "watchers_count": 0, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 9, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 9, + "watchers": 0, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1159706660, + "node_id": "R_kgDORR-4JA", + "name": "OpenVerifiableLLM", + "full_name": "AOSSIE-Org/OpenVerifiableLLM", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/OpenVerifiableLLM", + "description": "Local Fully Open, Open-Weight, Open-Data, Verifiable LLMs", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/OpenVerifiableLLM/deployments", + "created_at": "2026-02-17T04:01:06Z", + "updated_at": "2026-07-05T03:38:05Z", + "pushed_at": "2026-07-07T11:54:39Z", + "git_url": "git://github.com/AOSSIE-Org/OpenVerifiableLLM.git", + "ssh_url": "git@github.com:AOSSIE-Org/OpenVerifiableLLM.git", + "clone_url": "https://github.com/AOSSIE-Org/OpenVerifiableLLM.git", + "svn_url": "https://github.com/AOSSIE-Org/OpenVerifiableLLM", + "homepage": null, + "size": 744, + "stargazers_count": 16, + "watchers_count": 16, + "language": "Python", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 30, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 33, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 30, + "open_issues": 33, + "watchers": 16, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 616372046, + "node_id": "R_kgDOJL0XTg", + "name": "Resonate-Backend", + "full_name": "AOSSIE-Org/Resonate-Backend", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Resonate-Backend", + "description": "Appwrite Cloud Functions for Resonate Project.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Backend/deployments", + "created_at": "2023-03-20T09:03:45Z", + "updated_at": "2026-07-04T02:16:40Z", + "pushed_at": "2026-01-18T12:29:59Z", + "git_url": "git://github.com/AOSSIE-Org/Resonate-Backend.git", + "ssh_url": "git@github.com:AOSSIE-Org/Resonate-Backend.git", + "clone_url": "https://github.com/AOSSIE-Org/Resonate-Backend.git", + "svn_url": "https://github.com/AOSSIE-Org/Resonate-Backend", + "homepage": "", + "size": 465, + "stargazers_count": 43, + "watchers_count": 43, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 120, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 34, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "appwrite", + "audio", + "backend", + "cloudfunctions", + "communication", + "hacktoberfest", + "resonate", + "voice" + ], + "visibility": "public", + "forks": 120, + "open_issues": 34, + "watchers": 43, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 998702425, + "node_id": "R_kgDOO4b9WQ", + "name": "Info", + "full_name": "AOSSIE-Org/Info", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Info", + "description": "Important Information and Guidelines for AOSSIE's Contributors, Mentors and Admins", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Info", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Info/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Info/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Info/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Info/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Info/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Info/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Info/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Info/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Info/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Info/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Info/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Info/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Info/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Info/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Info/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Info/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Info/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Info/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Info/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Info/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Info/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Info/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Info/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Info/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Info/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Info/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Info/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Info/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Info/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Info/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Info/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Info/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Info/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Info/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Info/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Info/deployments", + "created_at": "2025-06-09T05:41:59Z", + "updated_at": "2026-07-03T10:15:54Z", + "pushed_at": "2026-07-03T10:15:50Z", + "git_url": "git://github.com/AOSSIE-Org/Info.git", + "ssh_url": "git@github.com:AOSSIE-Org/Info.git", + "clone_url": "https://github.com/AOSSIE-Org/Info.git", + "svn_url": "https://github.com/AOSSIE-Org/Info", + "homepage": "", + "size": 448, + "stargazers_count": 52, + "watchers_count": 52, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 63, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 63, + "open_issues": 2, + "watchers": 52, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1167682685, + "node_id": "R_kgDORZlsfQ", + "name": "CodingAgent", + "full_name": "AOSSIE-Org/CodingAgent", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CodingAgent", + "description": "AI Coding Agent", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CodingAgent/deployments", + "created_at": "2026-02-26T15:10:29Z", + "updated_at": "2026-07-03T07:39:39Z", + "pushed_at": "2026-02-27T15:25:04Z", + "git_url": "git://github.com/AOSSIE-Org/CodingAgent.git", + "ssh_url": "git@github.com:AOSSIE-Org/CodingAgent.git", + "clone_url": "https://github.com/AOSSIE-Org/CodingAgent.git", + "svn_url": "https://github.com/AOSSIE-Org/CodingAgent", + "homepage": null, + "size": 198, + "stargazers_count": 7, + "watchers_count": 7, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 7, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131704549, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE3MDQ1NDk=", + "name": "CrowdAlert-Web", + "full_name": "AOSSIE-Org/CrowdAlert-Web", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CrowdAlert-Web", + "description": "Mirror of the CrowdAlert-Web Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Web/deployments", + "created_at": "2018-05-01T11:15:25Z", + "updated_at": "2026-07-03T07:39:28Z", + "pushed_at": "2026-02-11T19:07:19Z", + "git_url": "git://github.com/AOSSIE-Org/CrowdAlert-Web.git", + "ssh_url": "git@github.com:AOSSIE-Org/CrowdAlert-Web.git", + "clone_url": "https://github.com/AOSSIE-Org/CrowdAlert-Web.git", + "svn_url": "https://github.com/AOSSIE-Org/CrowdAlert-Web", + "homepage": "https://gitlab.com/aossie/CrowdAlert-Web", + "size": 1735, + "stargazers_count": 8, + "watchers_count": 8, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 10, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 10, + "open_issues": 0, + "watchers": 8, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 940645321, + "node_id": "R_kgDOOBEbyQ", + "name": "Devr.AI", + "full_name": "AOSSIE-Org/Devr.AI", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Devr.AI", + "description": "Devr.AI is an advanced AI-powered Developer Relations (DevRel) assistant designed to revolutionize open-source community management. By integrating with platforms like Discord, Slack, GitHub, and Discourse, Devr.AI functions as a virtual DevRel advocate that helps maintainers engage with contributors and streamline onboarding processes.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Devr.AI/deployments", + "created_at": "2025-02-28T14:42:50Z", + "updated_at": "2026-07-03T07:38:58Z", + "pushed_at": "2026-02-11T19:14:35Z", + "git_url": "git://github.com/AOSSIE-Org/Devr.AI.git", + "ssh_url": "git@github.com:AOSSIE-Org/Devr.AI.git", + "clone_url": "https://github.com/AOSSIE-Org/Devr.AI.git", + "svn_url": "https://github.com/AOSSIE-Org/Devr.AI", + "homepage": "https://devr-ai.netlify.app/", + "size": 3299, + "stargazers_count": 95, + "watchers_count": 95, + "language": "Python", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 138, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 123, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "agentic-ai", + "devrel", + "genai-usecase", + "gsoc-2025" + ], + "visibility": "public", + "forks": 138, + "open_issues": 123, + "watchers": 95, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1118608140, + "node_id": "R_kgDOQqybDA", + "name": "SocialShareButton", + "full_name": "AOSSIE-Org/SocialShareButton", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/SocialShareButton", + "description": "A Component to Share in Social Media", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/SocialShareButton/deployments", + "created_at": "2025-12-18T02:45:44Z", + "updated_at": "2026-07-02T13:50:17Z", + "pushed_at": "2026-06-26T08:00:32Z", + "git_url": "git://github.com/AOSSIE-Org/SocialShareButton.git", + "ssh_url": "git@github.com:AOSSIE-Org/SocialShareButton.git", + "clone_url": "https://github.com/AOSSIE-Org/SocialShareButton.git", + "svn_url": "https://github.com/AOSSIE-Org/SocialShareButton", + "homepage": "https://social-share-button.aossie.org/", + "size": 1134, + "stargazers_count": 19, + "watchers_count": 19, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": false, + "forks_count": 52, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 34, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 52, + "open_issues": 34, + "watchers": 19, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1138033415, + "node_id": "R_kgDOQ9UDBw", + "name": "Gitcord-GithubDiscordBot", + "full_name": "AOSSIE-Org/Gitcord-GithubDiscordBot", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Gitcord-GithubDiscordBot", + "description": "Gitcord is a Github Discord Bot", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-GithubDiscordBot/deployments", + "created_at": "2026-01-20T06:48:01Z", + "updated_at": "2026-07-02T13:35:50Z", + "pushed_at": "2026-07-06T06:18:01Z", + "git_url": "git://github.com/AOSSIE-Org/Gitcord-GithubDiscordBot.git", + "ssh_url": "git@github.com:AOSSIE-Org/Gitcord-GithubDiscordBot.git", + "clone_url": "https://github.com/AOSSIE-Org/Gitcord-GithubDiscordBot.git", + "svn_url": "https://github.com/AOSSIE-Org/Gitcord-GithubDiscordBot", + "homepage": null, + "size": 26309, + "stargazers_count": 15, + "watchers_count": 15, + "language": "Python", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 14, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 4, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 14, + "open_issues": 4, + "watchers": 15, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1251959394, + "node_id": "R_kgDOSp9iYg", + "name": "IndexedDB-Import-Export", + "full_name": "AOSSIE-Org/IndexedDB-Import-Export", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/IndexedDB-Import-Export", + "description": "Library and Component to make it easier to import and export from IndexedDB", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/IndexedDB-Import-Export/deployments", + "created_at": "2026-05-28T04:07:01Z", + "updated_at": "2026-07-02T13:23:55Z", + "pushed_at": "2026-07-06T09:19:55Z", + "git_url": "git://github.com/AOSSIE-Org/IndexedDB-Import-Export.git", + "ssh_url": "git@github.com:AOSSIE-Org/IndexedDB-Import-Export.git", + "clone_url": "https://github.com/AOSSIE-Org/IndexedDB-Import-Export.git", + "svn_url": "https://github.com/AOSSIE-Org/IndexedDB-Import-Export", + "homepage": null, + "size": 705, + "stargazers_count": 7, + "watchers_count": 7, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 4, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 4, + "watchers": 7, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1250319777, + "node_id": "R_kgDOSoZdoQ", + "name": "CarbonTracker", + "full_name": "AOSSIE-Org/CarbonTracker", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonTracker", + "description": "Sunny Local Fitness Tracker that also tracks saved CO2 Emissions", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker/deployments", + "created_at": "2026-05-26T14:12:05Z", + "updated_at": "2026-07-02T11:22:03Z", + "pushed_at": "2026-07-02T11:21:58Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonTracker.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonTracker.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonTracker.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonTracker", + "homepage": null, + "size": 871, + "stargazers_count": 6, + "watchers_count": 6, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 2, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 609485866, + "node_id": "R_kgDOJFQEKg", + "name": "Resonate", + "full_name": "AOSSIE-Org/Resonate", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Resonate", + "description": "Clubhouse, but Open Source. A social voice platform.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate/deployments", + "created_at": "2023-03-04T10:19:26Z", + "updated_at": "2026-07-02T11:11:18Z", + "pushed_at": "2026-06-18T10:37:07Z", + "git_url": "git://github.com/AOSSIE-Org/Resonate.git", + "ssh_url": "git@github.com:AOSSIE-Org/Resonate.git", + "clone_url": "https://github.com/AOSSIE-Org/Resonate.git", + "svn_url": "https://github.com/AOSSIE-Org/Resonate", + "homepage": "", + "size": 70318, + "stargazers_count": 343, + "watchers_count": 343, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 348, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 121, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "codepeak23", + "communication", + "flutter", + "gsoc-2024", + "hacktoberfest", + "livekit", + "mobile-app" + ], + "visibility": "public", + "forks": 348, + "open_issues": 121, + "watchers": 343, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1147029353, + "node_id": "R_kgDORF5HaQ", + "name": "Rein", + "full_name": "AOSSIE-Org/Rein", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Rein", + "description": "Cross-Platform LAN-Based Remote Input Controller", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Rein", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Rein/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Rein/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Rein/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Rein/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Rein/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Rein/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Rein/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Rein/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Rein/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Rein/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Rein/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Rein/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Rein/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Rein/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Rein/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Rein/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Rein/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Rein/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Rein/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Rein/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Rein/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Rein/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Rein/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Rein/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Rein/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Rein/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Rein/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Rein/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Rein/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Rein/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Rein/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Rein/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Rein/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Rein/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Rein/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Rein/deployments", + "created_at": "2026-02-01T04:23:41Z", + "updated_at": "2026-07-02T04:27:56Z", + "pushed_at": "2026-07-02T04:27:51Z", + "git_url": "git://github.com/AOSSIE-Org/Rein.git", + "ssh_url": "git@github.com:AOSSIE-Org/Rein.git", + "clone_url": "https://github.com/AOSSIE-Org/Rein.git", + "svn_url": "https://github.com/AOSSIE-Org/Rein", + "homepage": null, + "size": 2268, + "stargazers_count": 34, + "watchers_count": 34, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 75, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 42, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 75, + "open_issues": 42, + "watchers": 34, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1259221409, + "node_id": "R_kgDOSw4xoQ", + "name": "SkillBot", + "full_name": "AOSSIE-Org/SkillBot", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/SkillBot", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/SkillBot", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/SkillBot/deployments", + "created_at": "2026-06-04T09:51:33Z", + "updated_at": "2026-07-01T12:08:20Z", + "pushed_at": "2026-07-06T09:19:52Z", + "git_url": "git://github.com/AOSSIE-Org/SkillBot.git", + "ssh_url": "git@github.com:AOSSIE-Org/SkillBot.git", + "clone_url": "https://github.com/AOSSIE-Org/SkillBot.git", + "svn_url": "https://github.com/AOSSIE-Org/SkillBot", + "homepage": null, + "size": 306, + "stargazers_count": 5, + "watchers_count": 5, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 5, + "watchers": 5, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 767666602, + "node_id": "R_kgDOLcGpqg", + "name": "Djed-Solidity-WebDashboard", + "full_name": "AOSSIE-Org/Djed-Solidity-WebDashboard", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Djed-Solidity-WebDashboard", + "description": null, + "fork": true, + "url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Djed-Solidity-WebDashboard/deployments", + "created_at": "2024-03-05T17:33:48Z", + "updated_at": "2026-06-23T12:16:30Z", + "pushed_at": "2024-02-22T18:10:33Z", + "git_url": "git://github.com/AOSSIE-Org/Djed-Solidity-WebDashboard.git", + "ssh_url": "git@github.com:AOSSIE-Org/Djed-Solidity-WebDashboard.git", + "clone_url": "https://github.com/AOSSIE-Org/Djed-Solidity-WebDashboard.git", + "svn_url": "https://github.com/AOSSIE-Org/Djed-Solidity-WebDashboard", + "homepage": "https://djed.one", + "size": 2873, + "stargazers_count": 10, + "watchers_count": 10, + "language": null, + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 5, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 5, + "open_issues": 0, + "watchers": 10, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1274161788, + "node_id": "R_kgDOS_IqfA", + "name": "PythonScripts", + "full_name": "AOSSIE-Org/PythonScripts", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/PythonScripts", + "description": "Python Scripts to automate various tasks", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/PythonScripts/deployments", + "created_at": "2026-06-19T08:33:06Z", + "updated_at": "2026-06-20T14:58:15Z", + "pushed_at": "2026-07-06T09:20:50Z", + "git_url": "git://github.com/AOSSIE-Org/PythonScripts.git", + "ssh_url": "git@github.com:AOSSIE-Org/PythonScripts.git", + "clone_url": "https://github.com/AOSSIE-Org/PythonScripts.git", + "svn_url": "https://github.com/AOSSIE-Org/PythonScripts", + "homepage": null, + "size": 252, + "stargazers_count": 6, + "watchers_count": 6, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 3, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1259230692, + "node_id": "R_kgDOSw5V5A", + "name": "AI-Keyboard", + "full_name": "AOSSIE-Org/AI-Keyboard", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/AI-Keyboard", + "description": "AI-Powered Keyboard for Mobiles", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/AI-Keyboard/deployments", + "created_at": "2026-06-04T10:01:10Z", + "updated_at": "2026-06-19T14:52:15Z", + "pushed_at": "2026-06-04T10:01:26Z", + "git_url": "git://github.com/AOSSIE-Org/AI-Keyboard.git", + "ssh_url": "git@github.com:AOSSIE-Org/AI-Keyboard.git", + "clone_url": "https://github.com/AOSSIE-Org/AI-Keyboard.git", + "svn_url": "https://github.com/AOSSIE-Org/AI-Keyboard", + "homepage": null, + "size": 228, + "stargazers_count": 6, + "watchers_count": 6, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 1, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1259222598, + "node_id": "R_kgDOSw42Rg", + "name": "PullRequestDashboard", + "full_name": "AOSSIE-Org/PullRequestDashboard", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/PullRequestDashboard", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/PullRequestDashboard/deployments", + "created_at": "2026-06-04T09:52:46Z", + "updated_at": "2026-06-19T14:52:10Z", + "pushed_at": "2026-07-06T09:19:46Z", + "git_url": "git://github.com/AOSSIE-Org/PullRequestDashboard.git", + "ssh_url": "git@github.com:AOSSIE-Org/PullRequestDashboard.git", + "clone_url": "https://github.com/AOSSIE-Org/PullRequestDashboard.git", + "svn_url": "https://github.com/AOSSIE-Org/PullRequestDashboard", + "homepage": null, + "size": 254, + "stargazers_count": 6, + "watchers_count": 6, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 3, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1250325759, + "node_id": "R_kgDOSoZ0_w", + "name": "CarbonTracker-WatchCompanionApp", + "full_name": "AOSSIE-Org/CarbonTracker-WatchCompanionApp", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonTracker-WatchCompanionApp", + "description": "Watch Companion App for Carbon Tracker", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonTracker-WatchCompanionApp/deployments", + "created_at": "2026-05-26T14:18:32Z", + "updated_at": "2026-06-19T14:52:07Z", + "pushed_at": "2026-06-22T09:22:00Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonTracker-WatchCompanionApp.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonTracker-WatchCompanionApp.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonTracker-WatchCompanionApp.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonTracker-WatchCompanionApp", + "homepage": null, + "size": 238, + "stargazers_count": 6, + "watchers_count": 6, + "language": "YAML", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 5, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1250323389, + "node_id": "R_kgDOSoZrvQ", + "name": "MoveYourBody", + "full_name": "AOSSIE-Org/MoveYourBody", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/MoveYourBody", + "description": "Sunny Local AI-Powered Fitness App", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/MoveYourBody/deployments", + "created_at": "2026-05-26T14:16:01Z", + "updated_at": "2026-06-19T14:52:07Z", + "pushed_at": "2026-05-26T14:16:22Z", + "git_url": "git://github.com/AOSSIE-Org/MoveYourBody.git", + "ssh_url": "git@github.com:AOSSIE-Org/MoveYourBody.git", + "clone_url": "https://github.com/AOSSIE-Org/MoveYourBody.git", + "svn_url": "https://github.com/AOSSIE-Org/MoveYourBody", + "homepage": null, + "size": 226, + "stargazers_count": 8, + "watchers_count": 8, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 8, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 8, + "watchers": 8, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1234423557, + "node_id": "R_kgDOSZPPBQ", + "name": "Template-Repo-Flutter", + "full_name": "AOSSIE-Org/Template-Repo-Flutter", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Template-Repo-Flutter", + "description": "Template Repo for Flutter Apps", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Template-Repo-Flutter/deployments", + "created_at": "2026-05-10T06:56:47Z", + "updated_at": "2026-06-19T14:52:05Z", + "pushed_at": "2026-05-24T06:53:10Z", + "git_url": "git://github.com/AOSSIE-Org/Template-Repo-Flutter.git", + "ssh_url": "git@github.com:AOSSIE-Org/Template-Repo-Flutter.git", + "clone_url": "https://github.com/AOSSIE-Org/Template-Repo-Flutter.git", + "svn_url": "https://github.com/AOSSIE-Org/Template-Repo-Flutter", + "homepage": null, + "size": 481, + "stargazers_count": 6, + "watchers_count": 6, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": true, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 0, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1192648146, + "node_id": "R_kgDORxZd0g", + "name": "Gitcord-Test", + "full_name": "AOSSIE-Org/Gitcord-Test", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Gitcord-Test", + "description": "Repo for Testing Gitcord", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Gitcord-Test/deployments", + "created_at": "2026-03-26T12:28:47Z", + "updated_at": "2026-06-19T14:52:04Z", + "pushed_at": "2026-03-26T12:29:01Z", + "git_url": "git://github.com/AOSSIE-Org/Gitcord-Test.git", + "ssh_url": "git@github.com:AOSSIE-Org/Gitcord-Test.git", + "clone_url": "https://github.com/AOSSIE-Org/Gitcord-Test.git", + "svn_url": "https://github.com/AOSSIE-Org/Gitcord-Test", + "homepage": null, + "size": 208, + "stargazers_count": 5, + "watchers_count": 5, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 5, + "watchers": 5, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1182975252, + "node_id": "R_kgDORoLFFA", + "name": "BringYourOwnKey", + "full_name": "AOSSIE-Org/BringYourOwnKey", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/BringYourOwnKey", + "description": "Component to let users input their own API keys", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/BringYourOwnKey/deployments", + "created_at": "2026-03-16T06:27:57Z", + "updated_at": "2026-06-19T14:52:00Z", + "pushed_at": "2026-03-17T06:53:43Z", + "git_url": "git://github.com/AOSSIE-Org/BringYourOwnKey.git", + "ssh_url": "git@github.com:AOSSIE-Org/BringYourOwnKey.git", + "clone_url": "https://github.com/AOSSIE-Org/BringYourOwnKey.git", + "svn_url": "https://github.com/AOSSIE-Org/BringYourOwnKey", + "homepage": null, + "size": 331, + "stargazers_count": 9, + "watchers_count": 9, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 0, + "open_issues": 1, + "watchers": 9, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1179628750, + "node_id": "R_kgDORk-0zg", + "name": "AutoInitialIssues", + "full_name": "AOSSIE-Org/AutoInitialIssues", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/AutoInitialIssues", + "description": "Automatically Initializes Repos with Issues", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/AutoInitialIssues/deployments", + "created_at": "2026-03-12T08:07:26Z", + "updated_at": "2026-06-19T14:51:48Z", + "pushed_at": "2026-03-14T06:08:05Z", + "git_url": "git://github.com/AOSSIE-Org/AutoInitialIssues.git", + "ssh_url": "git@github.com:AOSSIE-Org/AutoInitialIssues.git", + "clone_url": "https://github.com/AOSSIE-Org/AutoInitialIssues.git", + "svn_url": "https://github.com/AOSSIE-Org/AutoInitialIssues", + "homepage": null, + "size": 544, + "stargazers_count": 7, + "watchers_count": 7, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 1, + "watchers": 7, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1176149274, + "node_id": "R_kgDORhqdGg", + "name": "Skills", + "full_name": "AOSSIE-Org/Skills", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Skills", + "description": "Agent Skills", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Skills", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Skills/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Skills/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Skills/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Skills/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Skills/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Skills/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Skills/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Skills/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Skills/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Skills/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Skills/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Skills/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Skills/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Skills/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Skills/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Skills/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Skills/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Skills/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Skills/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Skills/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Skills/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Skills/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Skills/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Skills/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Skills/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Skills/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Skills/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Skills/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Skills/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Skills/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Skills/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Skills/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Skills/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Skills/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Skills/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Skills/deployments", + "created_at": "2026-03-08T17:25:30Z", + "updated_at": "2026-06-19T14:51:42Z", + "pushed_at": "2026-06-13T04:49:29Z", + "git_url": "git://github.com/AOSSIE-Org/Skills.git", + "ssh_url": "git@github.com:AOSSIE-Org/Skills.git", + "clone_url": "https://github.com/AOSSIE-Org/Skills.git", + "svn_url": "https://github.com/AOSSIE-Org/Skills", + "homepage": null, + "size": 216, + "stargazers_count": 6, + "watchers_count": 6, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 1, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1172608900, + "node_id": "R_kgDOReSXhA", + "name": "WebSift", + "full_name": "AOSSIE-Org/WebSift", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/WebSift", + "description": "Convert webpages to MML-ready formats", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/WebSift", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/WebSift/deployments", + "created_at": "2026-03-04T13:59:23Z", + "updated_at": "2026-06-19T14:51:31Z", + "pushed_at": "2026-03-04T13:59:38Z", + "git_url": "git://github.com/AOSSIE-Org/WebSift.git", + "ssh_url": "git@github.com:AOSSIE-Org/WebSift.git", + "clone_url": "https://github.com/AOSSIE-Org/WebSift.git", + "svn_url": "https://github.com/AOSSIE-Org/WebSift", + "homepage": null, + "size": 193, + "stargazers_count": 9, + "watchers_count": 9, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 3, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 3, + "open_issues": 1, + "watchers": 9, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1167676144, + "node_id": "R_kgDORZlS8A", + "name": "PictoPy-Website", + "full_name": "AOSSIE-Org/PictoPy-Website", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/PictoPy-Website", + "description": "PictoPy Landing Page", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy-Website/deployments", + "created_at": "2026-02-26T15:02:14Z", + "updated_at": "2026-06-19T14:51:27Z", + "pushed_at": "2026-03-01T01:44:49Z", + "git_url": "git://github.com/AOSSIE-Org/PictoPy-Website.git", + "ssh_url": "git@github.com:AOSSIE-Org/PictoPy-Website.git", + "clone_url": "https://github.com/AOSSIE-Org/PictoPy-Website.git", + "svn_url": "https://github.com/AOSSIE-Org/PictoPy-Website", + "homepage": null, + "size": 1010, + "stargazers_count": 12, + "watchers_count": 12, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": false, + "forks_count": 13, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 23, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 13, + "open_issues": 23, + "watchers": 12, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1167411769, + "node_id": "R_kgDORZVKOQ", + "name": "SupportUsButton", + "full_name": "AOSSIE-Org/SupportUsButton", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/SupportUsButton", + "description": "A configurable and minimalistic \"Support Us\" button that can be easily integrated to frontends", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/SupportUsButton/deployments", + "created_at": "2026-02-26T09:10:20Z", + "updated_at": "2026-06-19T14:51:26Z", + "pushed_at": "2026-03-31T18:43:49Z", + "git_url": "git://github.com/AOSSIE-Org/SupportUsButton.git", + "ssh_url": "git@github.com:AOSSIE-Org/SupportUsButton.git", + "clone_url": "https://github.com/AOSSIE-Org/SupportUsButton.git", + "svn_url": "https://github.com/AOSSIE-Org/SupportUsButton", + "homepage": null, + "size": 1335, + "stargazers_count": 12, + "watchers_count": 12, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 10, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 10, + "open_issues": 2, + "watchers": 12, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1159181322, + "node_id": "R_kgDORRe0Cg", + "name": "SmartNotes", + "full_name": "AOSSIE-Org/SmartNotes", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/SmartNotes", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/SmartNotes/deployments", + "created_at": "2026-02-16T12:20:35Z", + "updated_at": "2026-06-19T14:51:19Z", + "pushed_at": "2026-03-21T08:00:02Z", + "git_url": "git://github.com/AOSSIE-Org/SmartNotes.git", + "ssh_url": "git@github.com:AOSSIE-Org/SmartNotes.git", + "clone_url": "https://github.com/AOSSIE-Org/SmartNotes.git", + "svn_url": "https://github.com/AOSSIE-Org/SmartNotes", + "homepage": null, + "size": 4378, + "stargazers_count": 16, + "watchers_count": 16, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 29, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 29, + "open_issues": 0, + "watchers": 16, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1159177357, + "node_id": "R_kgDORRekjQ", + "name": "LibrEd", + "full_name": "AOSSIE-Org/LibrEd", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/LibrEd", + "description": "Self-Learning Assistant", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/LibrEd", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/LibrEd/deployments", + "created_at": "2026-02-16T12:14:27Z", + "updated_at": "2026-06-19T14:51:17Z", + "pushed_at": "2026-04-05T14:01:36Z", + "git_url": "git://github.com/AOSSIE-Org/LibrEd.git", + "ssh_url": "git@github.com:AOSSIE-Org/LibrEd.git", + "clone_url": "https://github.com/AOSSIE-Org/LibrEd.git", + "svn_url": "https://github.com/AOSSIE-Org/LibrEd", + "homepage": null, + "size": 10970, + "stargazers_count": 16, + "watchers_count": 16, + "language": "Python", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 10, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 10, + "open_issues": 5, + "watchers": 16, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1128143736, + "node_id": "R_kgDOQz4beA", + "name": "ContributorAutomation", + "full_name": "AOSSIE-Org/ContributorAutomation", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/ContributorAutomation", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/ContributorAutomation/deployments", + "created_at": "2026-01-05T07:51:08Z", + "updated_at": "2026-06-19T14:51:02Z", + "pushed_at": "2026-02-11T13:37:02Z", + "git_url": "git://github.com/AOSSIE-Org/ContributorAutomation.git", + "ssh_url": "git@github.com:AOSSIE-Org/ContributorAutomation.git", + "clone_url": "https://github.com/AOSSIE-Org/ContributorAutomation.git", + "svn_url": "https://github.com/AOSSIE-Org/ContributorAutomation", + "homepage": null, + "size": 186, + "stargazers_count": 7, + "watchers_count": 7, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 2, + "watchers": 7, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1076656701, + "node_id": "R_kgDOQCx6PQ", + "name": "Zplit", + "full_name": "AOSSIE-Org/Zplit", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Zplit", + "description": "Payment splitting app.", + "fork": true, + "url": "https://api.github.com/repos/AOSSIE-Org/Zplit", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Zplit/deployments", + "created_at": "2025-10-15T07:03:34Z", + "updated_at": "2026-06-19T14:50:50Z", + "pushed_at": "2025-11-08T08:08:33Z", + "git_url": "git://github.com/AOSSIE-Org/Zplit.git", + "ssh_url": "git@github.com:AOSSIE-Org/Zplit.git", + "clone_url": "https://github.com/AOSSIE-Org/Zplit.git", + "svn_url": "https://github.com/AOSSIE-Org/Zplit", + "homepage": null, + "size": 70, + "stargazers_count": 13, + "watchers_count": 13, + "language": "Dart", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 3, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 3, + "open_issues": 0, + "watchers": 13, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 1045633472, + "node_id": "R_kgDOPlMZwA", + "name": "SummerOfCode-Reports", + "full_name": "AOSSIE-Org/SummerOfCode-Reports", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/SummerOfCode-Reports", + "description": "Repo for Final Summer of Code Reports", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/SummerOfCode-Reports/deployments", + "created_at": "2025-08-27T13:36:56Z", + "updated_at": "2026-06-19T14:50:46Z", + "pushed_at": "2026-02-11T19:14:21Z", + "git_url": "git://github.com/AOSSIE-Org/SummerOfCode-Reports.git", + "ssh_url": "git@github.com:AOSSIE-Org/SummerOfCode-Reports.git", + "clone_url": "https://github.com/AOSSIE-Org/SummerOfCode-Reports.git", + "svn_url": "https://github.com/AOSSIE-Org/SummerOfCode-Reports", + "homepage": null, + "size": 12, + "stargazers_count": 6, + "watchers_count": 6, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 7, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 7, + "open_issues": 5, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 990200017, + "node_id": "R_kgDOOwVA0Q", + "name": "Ell-ena", + "full_name": "AOSSIE-Org/Ell-ena", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Ell-ena", + "description": "Ell-ena is a smart AI product manager that streamlines task, project, and meeting management through a simple chat interface.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Ell-ena/deployments", + "created_at": "2025-05-25T17:46:25Z", + "updated_at": "2026-06-19T14:50:36Z", + "pushed_at": "2026-06-14T15:28:28Z", + "git_url": "git://github.com/AOSSIE-Org/Ell-ena.git", + "ssh_url": "git@github.com:AOSSIE-Org/Ell-ena.git", + "clone_url": "https://github.com/AOSSIE-Org/Ell-ena.git", + "svn_url": "https://github.com/AOSSIE-Org/Ell-ena", + "homepage": null, + "size": 6847, + "stargazers_count": 54, + "watchers_count": 54, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 104, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 126, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 104, + "open_issues": 126, + "watchers": 54, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 984240655, + "node_id": "R_kgDOOqpSDw", + "name": "DocPilot", + "full_name": "AOSSIE-Org/DocPilot", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/DocPilot", + "description": "A new age EMR application using conversational AI at its best", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/DocPilot", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/DocPilot/deployments", + "created_at": "2025-05-15T15:59:19Z", + "updated_at": "2026-06-19T14:50:31Z", + "pushed_at": "2026-03-28T13:52:26Z", + "git_url": "git://github.com/AOSSIE-Org/DocPilot.git", + "ssh_url": "git@github.com:AOSSIE-Org/DocPilot.git", + "clone_url": "https://github.com/AOSSIE-Org/DocPilot.git", + "svn_url": "https://github.com/AOSSIE-Org/DocPilot", + "homepage": null, + "size": 320, + "stargazers_count": 18, + "watchers_count": 18, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 25, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 21, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 25, + "open_issues": 21, + "watchers": 18, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 943651316, + "node_id": "R_kgDOOD759A", + "name": "NeuroTrack", + "full_name": "AOSSIE-Org/NeuroTrack", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/NeuroTrack", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/NeuroTrack/deployments", + "created_at": "2025-03-06T03:45:34Z", + "updated_at": "2026-06-19T14:50:27Z", + "pushed_at": "2026-03-08T04:23:49Z", + "git_url": "git://github.com/AOSSIE-Org/NeuroTrack.git", + "ssh_url": "git@github.com:AOSSIE-Org/NeuroTrack.git", + "clone_url": "https://github.com/AOSSIE-Org/NeuroTrack.git", + "svn_url": "https://github.com/AOSSIE-Org/NeuroTrack", + "homepage": null, + "size": 1980, + "stargazers_count": 29, + "watchers_count": 29, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 51, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 83, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 51, + "open_issues": 83, + "watchers": 29, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 934193926, + "node_id": "R_kgDON66rBg", + "name": "BabyNest", + "full_name": "AOSSIE-Org/BabyNest", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/BabyNest", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/BabyNest", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/BabyNest/deployments", + "created_at": "2025-02-17T12:34:00Z", + "updated_at": "2026-06-19T14:50:16Z", + "pushed_at": "2026-03-02T17:25:05Z", + "git_url": "git://github.com/AOSSIE-Org/BabyNest.git", + "ssh_url": "git@github.com:AOSSIE-Org/BabyNest.git", + "clone_url": "https://github.com/AOSSIE-Org/BabyNest.git", + "svn_url": "https://github.com/AOSSIE-Org/BabyNest", + "homepage": null, + "size": 8784, + "stargazers_count": 56, + "watchers_count": 56, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 122, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 112, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 122, + "open_issues": 112, + "watchers": 56, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 932228678, + "node_id": "R_kgDON5CuRg", + "name": "Perspective", + "full_name": "AOSSIE-Org/Perspective", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Perspective", + "description": "Perspective analyzes your news or social feed and presents credible counter-narratives from reliable sources—helping you think critically, reduce bias, and see the full picture. Don’t settle for one-sided stories. Get complete, nuanced facts.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Perspective", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Perspective/deployments", + "created_at": "2025-02-13T15:24:14Z", + "updated_at": "2026-06-19T14:50:07Z", + "pushed_at": "2026-02-11T19:13:38Z", + "git_url": "git://github.com/AOSSIE-Org/Perspective.git", + "ssh_url": "git@github.com:AOSSIE-Org/Perspective.git", + "clone_url": "https://github.com/AOSSIE-Org/Perspective.git", + "svn_url": "https://github.com/AOSSIE-Org/Perspective", + "homepage": "https://perspective-aossie.vercel.app/", + "size": 730, + "stargazers_count": 50, + "watchers_count": 50, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 78, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 43, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "agentic-ai", + "bias-detection", + "fact-checking", + "langchain", + "langgraph", + "news-aggregation" + ], + "visibility": "public", + "forks": 78, + "open_issues": 43, + "watchers": 50, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 853655620, + "node_id": "R_kgDOMuHARA", + "name": "SciKitLearn-Rust", + "full_name": "AOSSIE-Org/SciKitLearn-Rust", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/SciKitLearn-Rust", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/SciKitLearn-Rust/deployments", + "created_at": "2024-09-07T06:39:24Z", + "updated_at": "2026-06-19T14:49:59Z", + "pushed_at": "2026-02-11T19:11:44Z", + "git_url": "git://github.com/AOSSIE-Org/SciKitLearn-Rust.git", + "ssh_url": "git@github.com:AOSSIE-Org/SciKitLearn-Rust.git", + "clone_url": "https://github.com/AOSSIE-Org/SciKitLearn-Rust.git", + "svn_url": "https://github.com/AOSSIE-Org/SciKitLearn-Rust", + "homepage": null, + "size": 16, + "stargazers_count": 7, + "watchers_count": 7, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 7, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 755442793, + "node_id": "R_kgDOLQckaQ", + "name": "Website", + "full_name": "AOSSIE-Org/Website", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Website", + "description": "AOSSIE Offical Website", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Website", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Website/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Website/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Website/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Website/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Website/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Website/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Website/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Website/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Website/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Website/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Website/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Website/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Website/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Website/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Website/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Website/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Website/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Website/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Website/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Website/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Website/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Website/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Website/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Website/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Website/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Website/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Website/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Website/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Website/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Website/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Website/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Website/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Website/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Website/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Website/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Website/deployments", + "created_at": "2024-02-10T08:04:16Z", + "updated_at": "2026-06-19T14:49:49Z", + "pushed_at": "2026-05-25T03:43:58Z", + "git_url": "git://github.com/AOSSIE-Org/Website.git", + "ssh_url": "git@github.com:AOSSIE-Org/Website.git", + "clone_url": "https://github.com/AOSSIE-Org/Website.git", + "svn_url": "https://github.com/AOSSIE-Org/Website", + "homepage": "https://aossie.org/", + "size": 6472, + "stargazers_count": 97, + "watchers_count": 97, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "has_discussions": false, + "forks_count": 374, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 11, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 374, + "open_issues": 11, + "watchers": 97, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 748767623, + "node_id": "R_kgDOLKFJhw", + "name": "Agora-Blockchain", + "full_name": "AOSSIE-Org/Agora-Blockchain", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Agora-Blockchain", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Blockchain/deployments", + "created_at": "2024-01-26T18:10:06Z", + "updated_at": "2026-06-19T14:49:47Z", + "pushed_at": "2026-02-11T19:18:25Z", + "git_url": "git://github.com/AOSSIE-Org/Agora-Blockchain.git", + "ssh_url": "git@github.com:AOSSIE-Org/Agora-Blockchain.git", + "clone_url": "https://github.com/AOSSIE-Org/Agora-Blockchain.git", + "svn_url": "https://github.com/AOSSIE-Org/Agora-Blockchain", + "homepage": "", + "size": 31494, + "stargazers_count": 98, + "watchers_count": 98, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 192, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 97, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 192, + "open_issues": 97, + "watchers": 98, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 705137920, + "node_id": "R_kgDOKgeNAA", + "name": "Resonate-Website", + "full_name": "AOSSIE-Org/Resonate-Website", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website", + "description": "Resonate Landing Page", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/deployments", + "created_at": "2023-10-15T06:13:28Z", + "updated_at": "2026-06-19T14:49:46Z", + "pushed_at": "2026-07-01T05:26:35Z", + "git_url": "git://github.com/AOSSIE-Org/Resonate-Website.git", + "ssh_url": "git@github.com:AOSSIE-Org/Resonate-Website.git", + "clone_url": "https://github.com/AOSSIE-Org/Resonate-Website.git", + "svn_url": "https://github.com/AOSSIE-Org/Resonate-Website", + "homepage": "http://resonate.aossie.org/", + "size": 5624, + "stargazers_count": 45, + "watchers_count": 45, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": false, + "forks_count": 152, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 49, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 152, + "open_issues": 49, + "watchers": 45, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 698223452, + "node_id": "R_kgDOKZ4LXA", + "name": "P2PRelay", + "full_name": "AOSSIE-Org/P2PRelay", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/P2PRelay", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/P2PRelay/deployments", + "created_at": "2023-09-29T12:42:07Z", + "updated_at": "2026-06-19T14:49:45Z", + "pushed_at": "2026-02-11T19:10:54Z", + "git_url": "git://github.com/AOSSIE-Org/P2PRelay.git", + "ssh_url": "git@github.com:AOSSIE-Org/P2PRelay.git", + "clone_url": "https://github.com/AOSSIE-Org/P2PRelay.git", + "svn_url": "https://github.com/AOSSIE-Org/P2PRelay", + "homepage": null, + "size": 6, + "stargazers_count": 6, + "watchers_count": 6, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 6, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 658198798, + "node_id": "R_kgDOJztRDg", + "name": "social-street-smart-api", + "full_name": "AOSSIE-Org/social-street-smart-api", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/social-street-smart-api", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/social-street-smart-api/deployments", + "created_at": "2023-06-25T04:30:09Z", + "updated_at": "2026-06-19T14:49:43Z", + "pushed_at": "2023-06-25T04:30:10Z", + "git_url": "git://github.com/AOSSIE-Org/social-street-smart-api.git", + "ssh_url": "git@github.com:AOSSIE-Org/social-street-smart-api.git", + "clone_url": "https://github.com/AOSSIE-Org/social-street-smart-api.git", + "svn_url": "https://github.com/AOSSIE-Org/social-street-smart-api", + "homepage": null, + "size": 0, + "stargazers_count": 5, + "watchers_count": 5, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 0, + "open_issues": 0, + "watchers": 5, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 646337857, + "node_id": "R_kgDOJoZVQQ", + "name": "EduAid", + "full_name": "AOSSIE-Org/EduAid", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/EduAid", + "description": "A tool that can auto-generate short quizzes on the basis of the content provided.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/EduAid", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/EduAid/deployments", + "created_at": "2023-05-28T04:10:38Z", + "updated_at": "2026-06-19T14:49:42Z", + "pushed_at": "2026-03-17T19:03:24Z", + "git_url": "git://github.com/AOSSIE-Org/EduAid.git", + "ssh_url": "git@github.com:AOSSIE-Org/EduAid.git", + "clone_url": "https://github.com/AOSSIE-Org/EduAid.git", + "svn_url": "https://github.com/AOSSIE-Org/EduAid", + "homepage": null, + "size": 13005, + "stargazers_count": 172, + "watchers_count": 172, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 427, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 452, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 427, + "open_issues": 452, + "watchers": 172, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 610777184, + "node_id": "R_kgDOJGe4YA", + "name": "OpenPeerChat-react-native", + "full_name": "AOSSIE-Org/OpenPeerChat-react-native", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/OpenPeerChat-react-native", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-react-native/deployments", + "created_at": "2023-03-07T13:13:48Z", + "updated_at": "2026-06-19T14:49:40Z", + "pushed_at": "2026-02-11T19:10:28Z", + "git_url": "git://github.com/AOSSIE-Org/OpenPeerChat-react-native.git", + "ssh_url": "git@github.com:AOSSIE-Org/OpenPeerChat-react-native.git", + "clone_url": "https://github.com/AOSSIE-Org/OpenPeerChat-react-native.git", + "svn_url": "https://github.com/AOSSIE-Org/OpenPeerChat-react-native", + "homepage": null, + "size": 40779, + "stargazers_count": 7, + "watchers_count": 7, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 5, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 6, + "license": { + "key": "agpl-3.0", + "name": "GNU Affero General Public License v3.0", + "spdx_id": "AGPL-3.0", + "url": "https://api.github.com/licenses/agpl-3.0", + "node_id": "MDc6TGljZW5zZTE=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 5, + "open_issues": 6, + "watchers": 7, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 610775967, + "node_id": "R_kgDOJGeznw", + "name": "OpenPeerChat-flutter", + "full_name": "AOSSIE-Org/OpenPeerChat-flutter", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/OpenPeerChat-flutter", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/OpenPeerChat-flutter/deployments", + "created_at": "2023-03-07T13:11:02Z", + "updated_at": "2026-06-19T14:49:39Z", + "pushed_at": "2026-02-11T19:12:26Z", + "git_url": "git://github.com/AOSSIE-Org/OpenPeerChat-flutter.git", + "ssh_url": "git@github.com:AOSSIE-Org/OpenPeerChat-flutter.git", + "clone_url": "https://github.com/AOSSIE-Org/OpenPeerChat-flutter.git", + "svn_url": "https://github.com/AOSSIE-Org/OpenPeerChat-flutter", + "homepage": null, + "size": 261911, + "stargazers_count": 31, + "watchers_count": 31, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 54, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 24, + "license": { + "key": "agpl-3.0", + "name": "GNU Affero General Public License v3.0", + "spdx_id": "AGPL-3.0", + "url": "https://api.github.com/licenses/agpl-3.0", + "node_id": "MDc6TGljZW5zZTE=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 54, + "open_issues": 24, + "watchers": 31, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 609859106, + "node_id": "R_kgDOJFm2Ig", + "name": "Monumento", + "full_name": "AOSSIE-Org/Monumento", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Monumento", + "description": "Monumento: Share, connect, and explore landmarks with AR", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Monumento", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Monumento/deployments", + "created_at": "2023-03-05T13:08:30Z", + "updated_at": "2026-06-19T14:49:38Z", + "pushed_at": "2026-02-11T19:15:28Z", + "git_url": "git://github.com/AOSSIE-Org/Monumento.git", + "ssh_url": "git@github.com:AOSSIE-Org/Monumento.git", + "clone_url": "https://github.com/AOSSIE-Org/Monumento.git", + "svn_url": "https://github.com/AOSSIE-Org/Monumento", + "homepage": "", + "size": 226751, + "stargazers_count": 55, + "watchers_count": 55, + "language": "Dart", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 81, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 30, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "flutter", + "gsoc-2024", + "mobile-app" + ], + "visibility": "public", + "forks": 81, + "open_issues": 30, + "watchers": 55, + "default_branch": "develop", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 266774058, + "node_id": "MDEwOlJlcG9zaXRvcnkyNjY3NzQwNTg=", + "name": "Agora-iOS", + "full_name": "AOSSIE-Org/Agora-iOS", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Agora-iOS", + "description": "Mirror of the Agora-iOSProject", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-iOS/deployments", + "created_at": "2020-05-25T12:31:53Z", + "updated_at": "2026-06-19T14:49:37Z", + "pushed_at": "2026-02-11T19:08:26Z", + "git_url": "git://github.com/AOSSIE-Org/Agora-iOS.git", + "ssh_url": "git@github.com:AOSSIE-Org/Agora-iOS.git", + "clone_url": "https://github.com/AOSSIE-Org/Agora-iOS.git", + "svn_url": "https://github.com/AOSSIE-Org/Agora-iOS", + "homepage": "https://gitlab.com/aossie/agora-ios", + "size": 11942, + "stargazers_count": 8, + "watchers_count": 8, + "language": "Swift", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 4, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 4, + "open_issues": 0, + "watchers": 8, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 265294749, + "node_id": "MDEwOlJlcG9zaXRvcnkyNjUyOTQ3NDk=", + "name": ".github", + "full_name": "AOSSIE-Org/.github", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/.github", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/.github", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/.github/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/.github/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/.github/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/.github/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/.github/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/.github/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/.github/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/.github/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/.github/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/.github/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/.github/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/.github/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/.github/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/.github/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/.github/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/.github/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/.github/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/.github/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/.github/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/.github/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/.github/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/.github/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/.github/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/.github/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/.github/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/.github/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/.github/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/.github/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/.github/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/.github/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/.github/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/.github/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/.github/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/.github/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/.github/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/.github/deployments", + "created_at": "2020-05-19T16:01:42Z", + "updated_at": "2026-06-19T14:49:36Z", + "pushed_at": "2026-03-08T04:08:22Z", + "git_url": "git://github.com/AOSSIE-Org/.github.git", + "ssh_url": "git@github.com:AOSSIE-Org/.github.git", + "clone_url": "https://github.com/AOSSIE-Org/.github.git", + "svn_url": "https://github.com/AOSSIE-Org/.github", + "homepage": null, + "size": 30, + "stargazers_count": 7, + "watchers_count": 7, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 2, + "watchers": 7, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186996514, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY5OTY1MTQ=", + "name": "Skeptik", + "full_name": "AOSSIE-Org/Skeptik", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Skeptik", + "description": "Mirror of the Skeptik Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Skeptik", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Skeptik/deployments", + "created_at": "2019-05-16T09:29:49Z", + "updated_at": "2026-06-19T14:49:35Z", + "pushed_at": "2026-02-11T19:06:28Z", + "git_url": "git://github.com/AOSSIE-Org/Skeptik.git", + "ssh_url": "git@github.com:AOSSIE-Org/Skeptik.git", + "clone_url": "https://github.com/AOSSIE-Org/Skeptik.git", + "svn_url": "https://github.com/AOSSIE-Org/Skeptik", + "homepage": "https://gitlab.com/aossie/Skeptik", + "size": 56110, + "stargazers_count": 6, + "watchers_count": 6, + "language": "SMT", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186996287, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY5OTYyODc=", + "name": "MindTheWord-Mobile", + "full_name": "AOSSIE-Org/MindTheWord-Mobile", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/MindTheWord-Mobile", + "description": "Mirror of the MindTheWord-Mobile Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord-Mobile/deployments", + "created_at": "2019-05-16T09:28:36Z", + "updated_at": "2026-06-19T14:49:29Z", + "pushed_at": "2026-02-11T19:06:20Z", + "git_url": "git://github.com/AOSSIE-Org/MindTheWord-Mobile.git", + "ssh_url": "git@github.com:AOSSIE-Org/MindTheWord-Mobile.git", + "clone_url": "https://github.com/AOSSIE-Org/MindTheWord-Mobile.git", + "svn_url": "https://github.com/AOSSIE-Org/MindTheWord-Mobile", + "homepage": "https://gitlab.com/aossie/MindTheWord-Mobile", + "size": 7202, + "stargazers_count": 6, + "watchers_count": 6, + "language": "TypeScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186993489, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY5OTM0ODk=", + "name": "Scavenger", + "full_name": "AOSSIE-Org/Scavenger", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Scavenger", + "description": "Mirror of the Scavenger Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Scavenger", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Scavenger/deployments", + "created_at": "2019-05-16T09:13:24Z", + "updated_at": "2026-06-19T14:49:28Z", + "pushed_at": "2026-02-11T19:06:11Z", + "git_url": "git://github.com/AOSSIE-Org/Scavenger.git", + "ssh_url": "git@github.com:AOSSIE-Org/Scavenger.git", + "clone_url": "https://github.com/AOSSIE-Org/Scavenger.git", + "svn_url": "https://github.com/AOSSIE-Org/Scavenger", + "homepage": "https://gitlab.com/aossie/Scavenger", + "size": 23796, + "stargazers_count": 6, + "watchers_count": 6, + "language": "SMT", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186993251, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY5OTMyNTE=", + "name": "AOSSIE-Blogs", + "full_name": "AOSSIE-Org/AOSSIE-Blogs", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/AOSSIE-Blogs", + "description": "Mirror of the AOSSIE-Blogs Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/AOSSIE-Blogs/deployments", + "created_at": "2019-05-16T09:12:17Z", + "updated_at": "2026-06-19T14:49:24Z", + "pushed_at": "2026-02-11T19:09:18Z", + "git_url": "git://github.com/AOSSIE-Org/AOSSIE-Blogs.git", + "ssh_url": "git@github.com:AOSSIE-Org/AOSSIE-Blogs.git", + "clone_url": "https://github.com/AOSSIE-Org/AOSSIE-Blogs.git", + "svn_url": "https://github.com/AOSSIE-Org/AOSSIE-Blogs", + "homepage": "https://gitlab.com/aossie/aossie-blogs", + "size": 1132, + "stargazers_count": 6, + "watchers_count": 6, + "language": "SCSS", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 1, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186992913, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY5OTI5MTM=", + "name": "Sensala", + "full_name": "AOSSIE-Org/Sensala", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Sensala", + "description": "Mirror of the Sensala Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Sensala", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Sensala/deployments", + "created_at": "2019-05-16T09:10:29Z", + "updated_at": "2026-06-19T14:49:21Z", + "pushed_at": "2026-02-11T19:05:58Z", + "git_url": "git://github.com/AOSSIE-Org/Sensala.git", + "ssh_url": "git@github.com:AOSSIE-Org/Sensala.git", + "clone_url": "https://github.com/AOSSIE-Org/Sensala.git", + "svn_url": "https://github.com/AOSSIE-Org/Sensala", + "homepage": "https://gitlab.com/aossie/Sensala", + "size": 571, + "stargazers_count": 6, + "watchers_count": 6, + "language": "Scala", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186992515, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY5OTI1MTU=", + "name": "CarbonFootPrint-Alexa", + "full_name": "AOSSIE-Org/CarbonFootPrint-Alexa", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonFootPrint-Alexa", + "description": "Mirror of the CarbonFootPrint-Alexa Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootPrint-Alexa/deployments", + "created_at": "2019-05-16T09:08:16Z", + "updated_at": "2026-06-19T14:49:18Z", + "pushed_at": "2026-02-11T19:06:48Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonFootPrint-Alexa.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonFootPrint-Alexa.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonFootPrint-Alexa.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonFootPrint-Alexa", + "homepage": "https://gitlab.com/aossie/carbonfootprint-alexa", + "size": 429, + "stargazers_count": 8, + "watchers_count": 8, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 8, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186839696, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4Mzk2OTY=", + "name": "Social-Street-Smart", + "full_name": "AOSSIE-Org/Social-Street-Smart", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Social-Street-Smart", + "description": "An Extension to make Internet a safer and a more productive service for the users.", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Social-Street-Smart/deployments", + "created_at": "2019-05-15T14:08:06Z", + "updated_at": "2026-06-19T14:49:18Z", + "pushed_at": "2026-02-11T19:11:31Z", + "git_url": "git://github.com/AOSSIE-Org/Social-Street-Smart.git", + "ssh_url": "git@github.com:AOSSIE-Org/Social-Street-Smart.git", + "clone_url": "https://github.com/AOSSIE-Org/Social-Street-Smart.git", + "svn_url": "https://github.com/AOSSIE-Org/Social-Street-Smart", + "homepage": "https://chromewebstore.google.com/detail/social-street-smart/ddjcjpfkmcgpgpjhlmdenmionhbnpagm?hl=ml", + "size": 315444, + "stargazers_count": 54, + "watchers_count": 54, + "language": "Jupyter Notebook", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 98, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 34, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "chrome-extension", + "deep-learning", + "flask", + "javascript", + "machine-learning", + "python", + "react", + "tensorflow", + "typescript" + ], + "visibility": "public", + "forks": 98, + "open_issues": 34, + "watchers": 54, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186839293, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4MzkyOTM=", + "name": "Agora-Android", + "full_name": "AOSSIE-Org/Agora-Android", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Agora-Android", + "description": "Mirror of the Agora-Android Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Agora-Android/deployments", + "created_at": "2019-05-15T14:06:08Z", + "updated_at": "2026-06-19T14:49:17Z", + "pushed_at": "2026-02-11T19:11:08Z", + "git_url": "git://github.com/AOSSIE-Org/Agora-Android.git", + "ssh_url": "git@github.com:AOSSIE-Org/Agora-Android.git", + "clone_url": "https://github.com/AOSSIE-Org/Agora-Android.git", + "svn_url": "https://github.com/AOSSIE-Org/Agora-Android", + "homepage": "https://gitlab.com/aossie/agora-android", + "size": 44253, + "stargazers_count": 21, + "watchers_count": 21, + "language": "Java", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 47, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 47, + "open_issues": 5, + "watchers": 21, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186838823, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4Mzg4MjM=", + "name": "Slagora", + "full_name": "AOSSIE-Org/Slagora", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Slagora", + "description": "Mirror of the Agora-Android Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Slagora", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Slagora/deployments", + "created_at": "2019-05-15T14:03:42Z", + "updated_at": "2026-06-19T14:49:16Z", + "pushed_at": "2026-02-11T19:09:00Z", + "git_url": "git://github.com/AOSSIE-Org/Slagora.git", + "ssh_url": "git@github.com:AOSSIE-Org/Slagora.git", + "clone_url": "https://github.com/AOSSIE-Org/Slagora.git", + "svn_url": "https://github.com/AOSSIE-Org/Slagora", + "homepage": "https://gitlab.com/aossie/slagora", + "size": 7104, + "stargazers_count": 8, + "watchers_count": 8, + "language": "Scala", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 0, + "watchers": 8, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186838286, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4MzgyODY=", + "name": "Starcross-Android", + "full_name": "AOSSIE-Org/Starcross-Android", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Starcross-Android", + "description": "Mirror of the Starcross-Android Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Starcross-Android/deployments", + "created_at": "2019-05-15T14:00:49Z", + "updated_at": "2026-06-19T14:49:06Z", + "pushed_at": "2026-02-11T19:07:09Z", + "git_url": "git://github.com/AOSSIE-Org/Starcross-Android.git", + "ssh_url": "git@github.com:AOSSIE-Org/Starcross-Android.git", + "clone_url": "https://github.com/AOSSIE-Org/Starcross-Android.git", + "svn_url": "https://github.com/AOSSIE-Org/Starcross-Android", + "homepage": "https://gitlab.com/aossie/starcross-android", + "size": 997, + "stargazers_count": 11, + "watchers_count": 11, + "language": "Java", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 7, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 7, + "open_issues": 0, + "watchers": 11, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 186836117, + "node_id": "MDEwOlJlcG9zaXRvcnkxODY4MzYxMTc=", + "name": "Aossie-Scholar", + "full_name": "AOSSIE-Org/Aossie-Scholar", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Aossie-Scholar", + "description": "Mirror of the Aossie-Scholar Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Aossie-Scholar/deployments", + "created_at": "2019-05-15T13:49:26Z", + "updated_at": "2026-06-19T14:49:05Z", + "pushed_at": "2026-02-11T19:09:42Z", + "git_url": "git://github.com/AOSSIE-Org/Aossie-Scholar.git", + "ssh_url": "git@github.com:AOSSIE-Org/Aossie-Scholar.git", + "clone_url": "https://github.com/AOSSIE-Org/Aossie-Scholar.git", + "svn_url": "https://github.com/AOSSIE-Org/Aossie-Scholar", + "homepage": "https://gitlab.com/aossie/aossie-scholar", + "size": 56909, + "stargazers_count": 23, + "watchers_count": 23, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 18, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 3, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 18, + "open_issues": 3, + "watchers": 23, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 146001470, + "node_id": "MDEwOlJlcG9zaXRvcnkxNDYwMDE0NzA=", + "name": "CrowdAlert-Mobile", + "full_name": "AOSSIE-Org/CrowdAlert-Mobile", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CrowdAlert-Mobile", + "description": "Mirror of the CrowdAlert-Mobile Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert-Mobile/deployments", + "created_at": "2018-08-24T14:26:19Z", + "updated_at": "2026-06-19T14:48:53Z", + "pushed_at": "2026-02-11T19:07:40Z", + "git_url": "git://github.com/AOSSIE-Org/CrowdAlert-Mobile.git", + "ssh_url": "git@github.com:AOSSIE-Org/CrowdAlert-Mobile.git", + "clone_url": "https://github.com/AOSSIE-Org/CrowdAlert-Mobile.git", + "svn_url": "https://github.com/AOSSIE-Org/CrowdAlert-Mobile", + "homepage": "https://gitlab.com/aossie/CrowdAlert-Mobile", + "size": 5770, + "stargazers_count": 7, + "watchers_count": 7, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 4, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 4, + "open_issues": 0, + "watchers": 7, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 133138986, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzMxMzg5ODY=", + "name": "CarbonAssistant-Function", + "full_name": "AOSSIE-Org/CarbonAssistant-Function", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonAssistant-Function", + "description": "Mirror of the CarbonFootprint-API Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Function/deployments", + "created_at": "2018-05-12T11:18:01Z", + "updated_at": "2026-06-19T14:48:52Z", + "pushed_at": "2026-02-11T19:08:10Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonAssistant-Function.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonAssistant-Function.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonAssistant-Function.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonAssistant-Function", + "homepage": "https://gitlab.com/aossie/CarbonAssistant-Function", + "size": 979, + "stargazers_count": 7, + "watchers_count": 7, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 3, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 3, + "open_issues": 1, + "watchers": 7, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 133138876, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzMxMzg4NzY=", + "name": "CarbonAssistant-Agent", + "full_name": "AOSSIE-Org/CarbonAssistant-Agent", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonAssistant-Agent", + "description": "Mirror of the CarbonAssistant-Agent Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonAssistant-Agent/deployments", + "created_at": "2018-05-12T11:16:34Z", + "updated_at": "2026-06-19T14:48:48Z", + "pushed_at": "2026-02-11T19:05:49Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonAssistant-Agent.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonAssistant-Agent.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonAssistant-Agent.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonAssistant-Agent", + "homepage": "https://gitlab.com/aossie/CarbonAssistant-Agent", + "size": 218, + "stargazers_count": 6, + "watchers_count": 6, + "language": null, + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 1, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 1, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 132267544, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzIyNjc1NDQ=", + "name": "Agora", + "full_name": "AOSSIE-Org/Agora", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/Agora", + "description": "Mirror of the Agora Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/Agora", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/Agora/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/Agora/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/Agora/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/Agora/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/Agora/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/Agora/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Agora/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/Agora/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/Agora/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/Agora/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/Agora/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/Agora/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/Agora/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/Agora/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/Agora/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/Agora/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/Agora/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/Agora/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/Agora/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/Agora/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Agora/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/Agora/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/Agora/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/Agora/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/Agora/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/Agora/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/Agora/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/Agora/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/Agora/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/Agora/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/Agora/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Agora/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/Agora/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/Agora/deployments", + "created_at": "2018-05-05T16:57:51Z", + "updated_at": "2026-06-19T14:48:41Z", + "pushed_at": "2026-02-11T19:11:55Z", + "git_url": "git://github.com/AOSSIE-Org/Agora.git", + "ssh_url": "git@github.com:AOSSIE-Org/Agora.git", + "clone_url": "https://github.com/AOSSIE-Org/Agora.git", + "svn_url": "https://github.com/AOSSIE-Org/Agora", + "homepage": "https://gitlab.com/aossie/Agora", + "size": 8213, + "stargazers_count": 10, + "watchers_count": 10, + "language": "Scala", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 11, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 7, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 11, + "open_issues": 7, + "watchers": 10, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131983741, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE5ODM3NDE=", + "name": "ComputationalPhilosophy", + "full_name": "AOSSIE-Org/ComputationalPhilosophy", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/ComputationalPhilosophy", + "description": "Mirror of the ComputationalPhilosophy Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/ComputationalPhilosophy/deployments", + "created_at": "2018-05-03T11:11:14Z", + "updated_at": "2026-06-19T14:48:30Z", + "pushed_at": "2026-02-11T19:06:38Z", + "git_url": "git://github.com/AOSSIE-Org/ComputationalPhilosophy.git", + "ssh_url": "git@github.com:AOSSIE-Org/ComputationalPhilosophy.git", + "clone_url": "https://github.com/AOSSIE-Org/ComputationalPhilosophy.git", + "svn_url": "https://github.com/AOSSIE-Org/ComputationalPhilosophy", + "homepage": "https://gitlab.com/aossie/ComputationalPhilosophy", + "size": 455976, + "stargazers_count": 7, + "watchers_count": 7, + "language": "TeX", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 0, + "watchers": 7, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131865200, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE4NjUyMDA=", + "name": "CarbonFootprint-Mobile", + "full_name": "AOSSIE-Org/CarbonFootprint-Mobile", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonFootprint-Mobile", + "description": "Mirror of the CarbonFootprint-Mobile Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-Mobile/deployments", + "created_at": "2018-05-02T14:48:02Z", + "updated_at": "2026-06-19T14:48:19Z", + "pushed_at": "2026-02-11T19:08:36Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonFootprint-Mobile.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonFootprint-Mobile.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonFootprint-Mobile.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonFootprint-Mobile", + "homepage": "https://gitlab.com/aossie/CarbonFootprint-Mobile", + "size": 113246, + "stargazers_count": 15, + "watchers_count": 15, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 13, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 5, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 13, + "open_issues": 5, + "watchers": 15, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131865001, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE4NjUwMDE=", + "name": "CrowdAlert", + "full_name": "AOSSIE-Org/CrowdAlert", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CrowdAlert", + "description": "This repository is deprecated and is no longer being maintained", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CrowdAlert/deployments", + "created_at": "2018-05-02T14:46:33Z", + "updated_at": "2026-06-19T14:48:04Z", + "pushed_at": "2018-05-07T15:51:16Z", + "git_url": "git://github.com/AOSSIE-Org/CrowdAlert.git", + "ssh_url": "git@github.com:AOSSIE-Org/CrowdAlert.git", + "clone_url": "https://github.com/AOSSIE-Org/CrowdAlert.git", + "svn_url": "https://github.com/AOSSIE-Org/CrowdAlert", + "homepage": "https://gitlab.com/aossie/CrowdAlert-Mobile", + "size": 858, + "stargazers_count": 6, + "watchers_count": 6, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 3, + "mirror_url": null, + "archived": true, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 3, + "open_issues": 0, + "watchers": 6, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131864827, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE4NjQ4Mjc=", + "name": "starcross", + "full_name": "AOSSIE-Org/starcross", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/starcross", + "description": "Mirror of the starcross Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/starcross", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/starcross/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/starcross/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/starcross/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/starcross/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/starcross/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/starcross/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/starcross/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/starcross/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/starcross/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/starcross/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/starcross/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/starcross/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/starcross/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/starcross/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/starcross/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/starcross/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/starcross/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/starcross/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/starcross/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/starcross/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/starcross/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/starcross/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/starcross/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/starcross/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/starcross/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/starcross/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/starcross/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/starcross/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/starcross/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/starcross/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/starcross/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/starcross/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/starcross/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/starcross/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/starcross/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/starcross/deployments", + "created_at": "2018-05-02T14:45:19Z", + "updated_at": "2026-06-19T14:48:02Z", + "pushed_at": "2026-02-11T19:07:50Z", + "git_url": "git://github.com/AOSSIE-Org/starcross.git", + "ssh_url": "git@github.com:AOSSIE-Org/starcross.git", + "clone_url": "https://github.com/AOSSIE-Org/starcross.git", + "svn_url": "https://github.com/AOSSIE-Org/starcross", + "homepage": "https://gitlab.com/aossie/starcross", + "size": 1568, + "stargazers_count": 8, + "watchers_count": 8, + "language": "Objective-C", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 2, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 2, + "open_issues": 0, + "watchers": 8, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131864602, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE4NjQ2MDI=", + "name": "CarbonFootprint-API", + "full_name": "AOSSIE-Org/CarbonFootprint-API", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonFootprint-API", + "description": "Mirror of the CarbonFootprint-API Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint-API/deployments", + "created_at": "2018-05-02T14:43:36Z", + "updated_at": "2026-06-19T14:47:49Z", + "pushed_at": "2026-02-11T19:08:00Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonFootprint-API.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonFootprint-API.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonFootprint-API.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonFootprint-API", + "homepage": "https://gitlab.com/aossie/CarbonFootprint-API", + "size": 15113, + "stargazers_count": 27, + "watchers_count": 27, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 12, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 12, + "open_issues": 1, + "watchers": 27, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131864074, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE4NjQwNzQ=", + "name": "CarbonFootprint", + "full_name": "AOSSIE-Org/CarbonFootprint", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/CarbonFootprint", + "description": "Mirror of the CarbonFootprint Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/CarbonFootprint/deployments", + "created_at": "2018-05-02T14:39:42Z", + "updated_at": "2026-06-19T14:47:24Z", + "pushed_at": "2026-02-11T19:07:29Z", + "git_url": "git://github.com/AOSSIE-Org/CarbonFootprint.git", + "ssh_url": "git@github.com:AOSSIE-Org/CarbonFootprint.git", + "clone_url": "https://github.com/AOSSIE-Org/CarbonFootprint.git", + "svn_url": "https://github.com/AOSSIE-Org/CarbonFootprint", + "homepage": "https://gitlab.com/aossie/CarbonFootprint", + "size": 95486, + "stargazers_count": 16, + "watchers_count": 16, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 6, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 6, + "open_issues": 1, + "watchers": 16, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 131863718, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzE4NjM3MTg=", + "name": "MindTheWord", + "full_name": "AOSSIE-Org/MindTheWord", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/MindTheWord", + "description": "Mirror of the MindTheWord Project ", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/MindTheWord/deployments", + "created_at": "2018-05-02T14:36:59Z", + "updated_at": "2026-06-19T14:47:23Z", + "pushed_at": "2026-02-11T19:06:59Z", + "git_url": "git://github.com/AOSSIE-Org/MindTheWord.git", + "ssh_url": "git@github.com:AOSSIE-Org/MindTheWord.git", + "clone_url": "https://github.com/AOSSIE-Org/MindTheWord.git", + "svn_url": "https://github.com/AOSSIE-Org/MindTheWord", + "homepage": "https://gitlab.com/aossie/MindTheWord", + "size": 50546, + "stargazers_count": 11, + "watchers_count": 11, + "language": "JavaScript", + "has_issues": false, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 8, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [], + "visibility": "public", + "forks": 8, + "open_issues": 0, + "watchers": 11, + "default_branch": "master", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + }, + { + "id": 940644570, + "node_id": "R_kgDOOBEY2g", + "name": "InPactAI", + "full_name": "AOSSIE-Org/InPactAI", + "private": false, + "owner": { + "login": "AOSSIE-Org", + "id": 38881995, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4ODgxOTk1", + "avatar_url": "https://avatars.githubusercontent.com/u/38881995?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AOSSIE-Org", + "html_url": "https://github.com/AOSSIE-Org", + "followers_url": "https://api.github.com/users/AOSSIE-Org/followers", + "following_url": "https://api.github.com/users/AOSSIE-Org/following{/other_user}", + "gists_url": "https://api.github.com/users/AOSSIE-Org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AOSSIE-Org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AOSSIE-Org/subscriptions", + "organizations_url": "https://api.github.com/users/AOSSIE-Org/orgs", + "repos_url": "https://api.github.com/users/AOSSIE-Org/repos", + "events_url": "https://api.github.com/users/AOSSIE-Org/events{/privacy}", + "received_events_url": "https://api.github.com/users/AOSSIE-Org/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/AOSSIE-Org/InPactAI", + "description": "Inpact is an open-source AI-powered platform designed to connect content creators, brands, and agencies through data-driven insights. By leveraging Generative AI (GenAI), audience analytics, and engagement metrics, Inpact ensures highly relevant sponsorship opportunities for creators while maximizing ROI for brands investing in influencer marketing", + "fork": false, + "url": "https://api.github.com/repos/AOSSIE-Org/InPactAI", + "forks_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/forks", + "keys_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/teams", + "hooks_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/hooks", + "issue_events_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/issues/events{/number}", + "events_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/events", + "assignees_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/assignees{/user}", + "branches_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/branches{/branch}", + "tags_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/tags", + "blobs_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/languages", + "stargazers_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/stargazers", + "contributors_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/contributors", + "subscribers_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/subscribers", + "subscription_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/subscription", + "commits_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/contents/{+path}", + "compare_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/merges", + "archive_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/downloads", + "issues_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/issues{/number}", + "pulls_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/labels{/name}", + "releases_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/releases{/id}", + "deployments_url": "https://api.github.com/repos/AOSSIE-Org/InPactAI/deployments", + "created_at": "2025-02-28T14:41:24Z", + "updated_at": "2026-06-19T13:53:14Z", + "pushed_at": "2026-03-26T11:57:10Z", + "git_url": "git://github.com/AOSSIE-Org/InPactAI.git", + "ssh_url": "git@github.com:AOSSIE-Org/InPactAI.git", + "clone_url": "https://github.com/AOSSIE-Org/InPactAI.git", + "svn_url": "https://github.com/AOSSIE-Org/InPactAI", + "homepage": "", + "size": 1523, + "stargazers_count": 98, + "watchers_count": 98, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 146, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 161, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "agentic-ai", + "collaboration", + "creator-economy", + "genai-usecase", + "social-media" + ], + "visibility": "public", + "forks": 146, + "open_issues": 161, + "watchers": 98, + "default_branch": "main", + "permissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + }, + "custom_properties": {} + } + ], + "contributors": { + "PictoPy": [ + { + "login": "rahulharpal1603", + "id": 51887323, + "node_id": "MDQ6VXNlcjUxODg3MzIz", + "avatar_url": "https://avatars.githubusercontent.com/u/51887323?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahulharpal1603", + "html_url": "https://github.com/rahulharpal1603", + "followers_url": "https://api.github.com/users/rahulharpal1603/followers", + "following_url": "https://api.github.com/users/rahulharpal1603/following{/other_user}", + "gists_url": "https://api.github.com/users/rahulharpal1603/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahulharpal1603/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahulharpal1603/subscriptions", + "organizations_url": "https://api.github.com/users/rahulharpal1603/orgs", + "repos_url": "https://api.github.com/users/rahulharpal1603/repos", + "events_url": "https://api.github.com/users/rahulharpal1603/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahulharpal1603/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 289 + }, + { + "login": "Pranav0-0Aggarwal", + "id": 96537779, + "node_id": "U_kgDOBcEMsw", + "avatar_url": "https://avatars.githubusercontent.com/u/96537779?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Pranav0-0Aggarwal", + "html_url": "https://github.com/Pranav0-0Aggarwal", + "followers_url": "https://api.github.com/users/Pranav0-0Aggarwal/followers", + "following_url": "https://api.github.com/users/Pranav0-0Aggarwal/following{/other_user}", + "gists_url": "https://api.github.com/users/Pranav0-0Aggarwal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Pranav0-0Aggarwal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Pranav0-0Aggarwal/subscriptions", + "organizations_url": "https://api.github.com/users/Pranav0-0Aggarwal/orgs", + "repos_url": "https://api.github.com/users/Pranav0-0Aggarwal/repos", + "events_url": "https://api.github.com/users/Pranav0-0Aggarwal/events{/privacy}", + "received_events_url": "https://api.github.com/users/Pranav0-0Aggarwal/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 123 + }, + { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 123 + }, + { + "login": "Jibesh10101011", + "id": 114723590, + "node_id": "U_kgDOBtaLBg", + "avatar_url": "https://avatars.githubusercontent.com/u/114723590?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jibesh10101011", + "html_url": "https://github.com/Jibesh10101011", + "followers_url": "https://api.github.com/users/Jibesh10101011/followers", + "following_url": "https://api.github.com/users/Jibesh10101011/following{/other_user}", + "gists_url": "https://api.github.com/users/Jibesh10101011/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jibesh10101011/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jibesh10101011/subscriptions", + "organizations_url": "https://api.github.com/users/Jibesh10101011/orgs", + "repos_url": "https://api.github.com/users/Jibesh10101011/repos", + "events_url": "https://api.github.com/users/Jibesh10101011/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jibesh10101011/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 114 + }, + { + "login": "Rishab87", + "id": 138858208, + "node_id": "U_kgDOCEbO4A", + "avatar_url": "https://avatars.githubusercontent.com/u/138858208?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Rishab87", + "html_url": "https://github.com/Rishab87", + "followers_url": "https://api.github.com/users/Rishab87/followers", + "following_url": "https://api.github.com/users/Rishab87/following{/other_user}", + "gists_url": "https://api.github.com/users/Rishab87/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Rishab87/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Rishab87/subscriptions", + "organizations_url": "https://api.github.com/users/Rishab87/orgs", + "repos_url": "https://api.github.com/users/Rishab87/repos", + "events_url": "https://api.github.com/users/Rishab87/events{/privacy}", + "received_events_url": "https://api.github.com/users/Rishab87/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 82 + }, + { + "login": "bassamadnan", + "id": 109953791, + "node_id": "U_kgDOBo3C_w", + "avatar_url": "https://avatars.githubusercontent.com/u/109953791?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bassamadnan", + "html_url": "https://github.com/bassamadnan", + "followers_url": "https://api.github.com/users/bassamadnan/followers", + "following_url": "https://api.github.com/users/bassamadnan/following{/other_user}", + "gists_url": "https://api.github.com/users/bassamadnan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bassamadnan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bassamadnan/subscriptions", + "organizations_url": "https://api.github.com/users/bassamadnan/orgs", + "repos_url": "https://api.github.com/users/bassamadnan/repos", + "events_url": "https://api.github.com/users/bassamadnan/events{/privacy}", + "received_events_url": "https://api.github.com/users/bassamadnan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 54 + }, + { + "login": "Hemil36", + "id": 138382078, + "node_id": "U_kgDOCD-K_g", + "avatar_url": "https://avatars.githubusercontent.com/u/138382078?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Hemil36", + "html_url": "https://github.com/Hemil36", + "followers_url": "https://api.github.com/users/Hemil36/followers", + "following_url": "https://api.github.com/users/Hemil36/following{/other_user}", + "gists_url": "https://api.github.com/users/Hemil36/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Hemil36/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Hemil36/subscriptions", + "organizations_url": "https://api.github.com/users/Hemil36/orgs", + "repos_url": "https://api.github.com/users/Hemil36/repos", + "events_url": "https://api.github.com/users/Hemil36/events{/privacy}", + "received_events_url": "https://api.github.com/users/Hemil36/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 43 + }, + { + "login": "Aditya30ag", + "id": 162010355, + "node_id": "U_kgDOCagU8w", + "avatar_url": "https://avatars.githubusercontent.com/u/162010355?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya30ag", + "html_url": "https://github.com/Aditya30ag", + "followers_url": "https://api.github.com/users/Aditya30ag/followers", + "following_url": "https://api.github.com/users/Aditya30ag/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya30ag/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya30ag/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya30ag/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya30ag/orgs", + "repos_url": "https://api.github.com/users/Aditya30ag/repos", + "events_url": "https://api.github.com/users/Aditya30ag/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya30ag/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 27 + }, + { + "login": "tushar1977", + "id": 36126341, + "node_id": "MDQ6VXNlcjM2MTI2MzQx", + "avatar_url": "https://avatars.githubusercontent.com/u/36126341?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/tushar1977", + "html_url": "https://github.com/tushar1977", + "followers_url": "https://api.github.com/users/tushar1977/followers", + "following_url": "https://api.github.com/users/tushar1977/following{/other_user}", + "gists_url": "https://api.github.com/users/tushar1977/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tushar1977/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tushar1977/subscriptions", + "organizations_url": "https://api.github.com/users/tushar1977/orgs", + "repos_url": "https://api.github.com/users/tushar1977/repos", + "events_url": "https://api.github.com/users/tushar1977/events{/privacy}", + "received_events_url": "https://api.github.com/users/tushar1977/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 27 + }, + { + "login": "Ashutoshx7", + "id": 181958559, + "node_id": "U_kgDOCth3nw", + "avatar_url": "https://avatars.githubusercontent.com/u/181958559?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ashutoshx7", + "html_url": "https://github.com/Ashutoshx7", + "followers_url": "https://api.github.com/users/Ashutoshx7/followers", + "following_url": "https://api.github.com/users/Ashutoshx7/following{/other_user}", + "gists_url": "https://api.github.com/users/Ashutoshx7/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ashutoshx7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ashutoshx7/subscriptions", + "organizations_url": "https://api.github.com/users/Ashutoshx7/orgs", + "repos_url": "https://api.github.com/users/Ashutoshx7/repos", + "events_url": "https://api.github.com/users/Ashutoshx7/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ashutoshx7/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 25 + }, + { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 19 + }, + { + "login": "Dushyantbha012", + "id": 89176588, + "node_id": "MDQ6VXNlcjg5MTc2NTg4", + "avatar_url": "https://avatars.githubusercontent.com/u/89176588?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dushyantbha012", + "html_url": "https://github.com/Dushyantbha012", + "followers_url": "https://api.github.com/users/Dushyantbha012/followers", + "following_url": "https://api.github.com/users/Dushyantbha012/following{/other_user}", + "gists_url": "https://api.github.com/users/Dushyantbha012/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dushyantbha012/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dushyantbha012/subscriptions", + "organizations_url": "https://api.github.com/users/Dushyantbha012/orgs", + "repos_url": "https://api.github.com/users/Dushyantbha012/repos", + "events_url": "https://api.github.com/users/Dushyantbha012/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dushyantbha012/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 17 + }, + { + "login": "Rajgupta36", + "id": 134638667, + "node_id": "U_kgDOCAZsSw", + "avatar_url": "https://avatars.githubusercontent.com/u/134638667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Rajgupta36", + "html_url": "https://github.com/Rajgupta36", + "followers_url": "https://api.github.com/users/Rajgupta36/followers", + "following_url": "https://api.github.com/users/Rajgupta36/following{/other_user}", + "gists_url": "https://api.github.com/users/Rajgupta36/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Rajgupta36/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Rajgupta36/subscriptions", + "organizations_url": "https://api.github.com/users/Rajgupta36/orgs", + "repos_url": "https://api.github.com/users/Rajgupta36/repos", + "events_url": "https://api.github.com/users/Rajgupta36/events{/privacy}", + "received_events_url": "https://api.github.com/users/Rajgupta36/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "red-panda3", + "id": 191556459, + "node_id": "U_kgDOC2rraw", + "avatar_url": "https://avatars.githubusercontent.com/u/191556459?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/red-panda3", + "html_url": "https://github.com/red-panda3", + "followers_url": "https://api.github.com/users/red-panda3/followers", + "following_url": "https://api.github.com/users/red-panda3/following{/other_user}", + "gists_url": "https://api.github.com/users/red-panda3/gists{/gist_id}", + "starred_url": "https://api.github.com/users/red-panda3/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/red-panda3/subscriptions", + "organizations_url": "https://api.github.com/users/red-panda3/orgs", + "repos_url": "https://api.github.com/users/red-panda3/repos", + "events_url": "https://api.github.com/users/red-panda3/events{/privacy}", + "received_events_url": "https://api.github.com/users/red-panda3/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "animeshchaudhri", + "id": 111721851, + "node_id": "U_kgDOBqi9ew", + "avatar_url": "https://avatars.githubusercontent.com/u/111721851?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/animeshchaudhri", + "html_url": "https://github.com/animeshchaudhri", + "followers_url": "https://api.github.com/users/animeshchaudhri/followers", + "following_url": "https://api.github.com/users/animeshchaudhri/following{/other_user}", + "gists_url": "https://api.github.com/users/animeshchaudhri/gists{/gist_id}", + "starred_url": "https://api.github.com/users/animeshchaudhri/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/animeshchaudhri/subscriptions", + "organizations_url": "https://api.github.com/users/animeshchaudhri/orgs", + "repos_url": "https://api.github.com/users/animeshchaudhri/repos", + "events_url": "https://api.github.com/users/animeshchaudhri/events{/privacy}", + "received_events_url": "https://api.github.com/users/animeshchaudhri/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "abhiifour", + "id": 116870561, + "node_id": "U_kgDOBvdNoQ", + "avatar_url": "https://avatars.githubusercontent.com/u/116870561?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/abhiifour", + "html_url": "https://github.com/abhiifour", + "followers_url": "https://api.github.com/users/abhiifour/followers", + "following_url": "https://api.github.com/users/abhiifour/following{/other_user}", + "gists_url": "https://api.github.com/users/abhiifour/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abhiifour/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abhiifour/subscriptions", + "organizations_url": "https://api.github.com/users/abhiifour/orgs", + "repos_url": "https://api.github.com/users/abhiifour/repos", + "events_url": "https://api.github.com/users/abhiifour/events{/privacy}", + "received_events_url": "https://api.github.com/users/abhiifour/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "akshajtiwari", + "id": 185712941, + "node_id": "U_kgDOCxHBLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/185712941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/akshajtiwari", + "html_url": "https://github.com/akshajtiwari", + "followers_url": "https://api.github.com/users/akshajtiwari/followers", + "following_url": "https://api.github.com/users/akshajtiwari/following{/other_user}", + "gists_url": "https://api.github.com/users/akshajtiwari/gists{/gist_id}", + "starred_url": "https://api.github.com/users/akshajtiwari/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/akshajtiwari/subscriptions", + "organizations_url": "https://api.github.com/users/akshajtiwari/orgs", + "repos_url": "https://api.github.com/users/akshajtiwari/repos", + "events_url": "https://api.github.com/users/akshajtiwari/events{/privacy}", + "received_events_url": "https://api.github.com/users/akshajtiwari/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 9 + }, + { + "login": "ssz2605", + "id": 204754569, + "node_id": "U_kgDODDROiQ", + "avatar_url": "https://avatars.githubusercontent.com/u/204754569?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ssz2605", + "html_url": "https://github.com/ssz2605", + "followers_url": "https://api.github.com/users/ssz2605/followers", + "following_url": "https://api.github.com/users/ssz2605/following{/other_user}", + "gists_url": "https://api.github.com/users/ssz2605/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ssz2605/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ssz2605/subscriptions", + "organizations_url": "https://api.github.com/users/ssz2605/orgs", + "repos_url": "https://api.github.com/users/ssz2605/repos", + "events_url": "https://api.github.com/users/ssz2605/events{/privacy}", + "received_events_url": "https://api.github.com/users/ssz2605/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 8 + }, + { + "login": "asmit27rai", + "id": 146473475, + "node_id": "U_kgDOCLsCAw", + "avatar_url": "https://avatars.githubusercontent.com/u/146473475?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/asmit27rai", + "html_url": "https://github.com/asmit27rai", + "followers_url": "https://api.github.com/users/asmit27rai/followers", + "following_url": "https://api.github.com/users/asmit27rai/following{/other_user}", + "gists_url": "https://api.github.com/users/asmit27rai/gists{/gist_id}", + "starred_url": "https://api.github.com/users/asmit27rai/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/asmit27rai/subscriptions", + "organizations_url": "https://api.github.com/users/asmit27rai/orgs", + "repos_url": "https://api.github.com/users/asmit27rai/repos", + "events_url": "https://api.github.com/users/asmit27rai/events{/privacy}", + "received_events_url": "https://api.github.com/users/asmit27rai/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "zenitsu0509", + "id": 151658698, + "node_id": "U_kgDOCQogyg", + "avatar_url": "https://avatars.githubusercontent.com/u/151658698?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/zenitsu0509", + "html_url": "https://github.com/zenitsu0509", + "followers_url": "https://api.github.com/users/zenitsu0509/followers", + "following_url": "https://api.github.com/users/zenitsu0509/following{/other_user}", + "gists_url": "https://api.github.com/users/zenitsu0509/gists{/gist_id}", + "starred_url": "https://api.github.com/users/zenitsu0509/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zenitsu0509/subscriptions", + "organizations_url": "https://api.github.com/users/zenitsu0509/orgs", + "repos_url": "https://api.github.com/users/zenitsu0509/repos", + "events_url": "https://api.github.com/users/zenitsu0509/events{/privacy}", + "received_events_url": "https://api.github.com/users/zenitsu0509/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "BlueMoon67", + "id": 172877642, + "node_id": "U_kgDOCk3nSg", + "avatar_url": "https://avatars.githubusercontent.com/u/172877642?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/BlueMoon67", + "html_url": "https://github.com/BlueMoon67", + "followers_url": "https://api.github.com/users/BlueMoon67/followers", + "following_url": "https://api.github.com/users/BlueMoon67/following{/other_user}", + "gists_url": "https://api.github.com/users/BlueMoon67/gists{/gist_id}", + "starred_url": "https://api.github.com/users/BlueMoon67/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/BlueMoon67/subscriptions", + "organizations_url": "https://api.github.com/users/BlueMoon67/orgs", + "repos_url": "https://api.github.com/users/BlueMoon67/repos", + "events_url": "https://api.github.com/users/BlueMoon67/events{/privacy}", + "received_events_url": "https://api.github.com/users/BlueMoon67/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "DecodeX15", + "id": 149659317, + "node_id": "U_kgDOCOuetQ", + "avatar_url": "https://avatars.githubusercontent.com/u/149659317?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DecodeX15", + "html_url": "https://github.com/DecodeX15", + "followers_url": "https://api.github.com/users/DecodeX15/followers", + "following_url": "https://api.github.com/users/DecodeX15/following{/other_user}", + "gists_url": "https://api.github.com/users/DecodeX15/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DecodeX15/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DecodeX15/subscriptions", + "organizations_url": "https://api.github.com/users/DecodeX15/orgs", + "repos_url": "https://api.github.com/users/DecodeX15/repos", + "events_url": "https://api.github.com/users/DecodeX15/events{/privacy}", + "received_events_url": "https://api.github.com/users/DecodeX15/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "agrawalshreyansh", + "id": 63304023, + "node_id": "MDQ6VXNlcjYzMzA0MDIz", + "avatar_url": "https://avatars.githubusercontent.com/u/63304023?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/agrawalshreyansh", + "html_url": "https://github.com/agrawalshreyansh", + "followers_url": "https://api.github.com/users/agrawalshreyansh/followers", + "following_url": "https://api.github.com/users/agrawalshreyansh/following{/other_user}", + "gists_url": "https://api.github.com/users/agrawalshreyansh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/agrawalshreyansh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/agrawalshreyansh/subscriptions", + "organizations_url": "https://api.github.com/users/agrawalshreyansh/orgs", + "repos_url": "https://api.github.com/users/agrawalshreyansh/repos", + "events_url": "https://api.github.com/users/agrawalshreyansh/events{/privacy}", + "received_events_url": "https://api.github.com/users/agrawalshreyansh/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "ShivaGupta-14", + "id": 177179178, + "node_id": "U_kgDOCo-KKg", + "avatar_url": "https://avatars.githubusercontent.com/u/177179178?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ShivaGupta-14", + "html_url": "https://github.com/ShivaGupta-14", + "followers_url": "https://api.github.com/users/ShivaGupta-14/followers", + "following_url": "https://api.github.com/users/ShivaGupta-14/following{/other_user}", + "gists_url": "https://api.github.com/users/ShivaGupta-14/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ShivaGupta-14/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ShivaGupta-14/subscriptions", + "organizations_url": "https://api.github.com/users/ShivaGupta-14/orgs", + "repos_url": "https://api.github.com/users/ShivaGupta-14/repos", + "events_url": "https://api.github.com/users/ShivaGupta-14/events{/privacy}", + "received_events_url": "https://api.github.com/users/ShivaGupta-14/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "Umang-Khemka", + "id": 137717384, + "node_id": "U_kgDOCDVmiA", + "avatar_url": "https://avatars.githubusercontent.com/u/137717384?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Umang-Khemka", + "html_url": "https://github.com/Umang-Khemka", + "followers_url": "https://api.github.com/users/Umang-Khemka/followers", + "following_url": "https://api.github.com/users/Umang-Khemka/following{/other_user}", + "gists_url": "https://api.github.com/users/Umang-Khemka/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Umang-Khemka/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Umang-Khemka/subscriptions", + "organizations_url": "https://api.github.com/users/Umang-Khemka/orgs", + "repos_url": "https://api.github.com/users/Umang-Khemka/repos", + "events_url": "https://api.github.com/users/Umang-Khemka/events{/privacy}", + "received_events_url": "https://api.github.com/users/Umang-Khemka/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Anjali-Kan", + "id": 33205530, + "node_id": "MDQ6VXNlcjMzMjA1NTMw", + "avatar_url": "https://avatars.githubusercontent.com/u/33205530?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Anjali-Kan", + "html_url": "https://github.com/Anjali-Kan", + "followers_url": "https://api.github.com/users/Anjali-Kan/followers", + "following_url": "https://api.github.com/users/Anjali-Kan/following{/other_user}", + "gists_url": "https://api.github.com/users/Anjali-Kan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Anjali-Kan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Anjali-Kan/subscriptions", + "organizations_url": "https://api.github.com/users/Anjali-Kan/orgs", + "repos_url": "https://api.github.com/users/Anjali-Kan/repos", + "events_url": "https://api.github.com/users/Anjali-Kan/events{/privacy}", + "received_events_url": "https://api.github.com/users/Anjali-Kan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Code-Builder-io", + "id": 218017224, + "node_id": "U_kgDODP6tyA", + "avatar_url": "https://avatars.githubusercontent.com/u/218017224?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Code-Builder-io", + "html_url": "https://github.com/Code-Builder-io", + "followers_url": "https://api.github.com/users/Code-Builder-io/followers", + "following_url": "https://api.github.com/users/Code-Builder-io/following{/other_user}", + "gists_url": "https://api.github.com/users/Code-Builder-io/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Code-Builder-io/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Code-Builder-io/subscriptions", + "organizations_url": "https://api.github.com/users/Code-Builder-io/orgs", + "repos_url": "https://api.github.com/users/Code-Builder-io/repos", + "events_url": "https://api.github.com/users/Code-Builder-io/events{/privacy}", + "received_events_url": "https://api.github.com/users/Code-Builder-io/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "SiddharthJiyani", + "id": 120766410, + "node_id": "U_kgDOBzK_yg", + "avatar_url": "https://avatars.githubusercontent.com/u/120766410?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SiddharthJiyani", + "html_url": "https://github.com/SiddharthJiyani", + "followers_url": "https://api.github.com/users/SiddharthJiyani/followers", + "following_url": "https://api.github.com/users/SiddharthJiyani/following{/other_user}", + "gists_url": "https://api.github.com/users/SiddharthJiyani/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SiddharthJiyani/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SiddharthJiyani/subscriptions", + "organizations_url": "https://api.github.com/users/SiddharthJiyani/orgs", + "repos_url": "https://api.github.com/users/SiddharthJiyani/repos", + "events_url": "https://api.github.com/users/SiddharthJiyani/events{/privacy}", + "received_events_url": "https://api.github.com/users/SiddharthJiyani/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "abhayymishraa", + "id": 133818254, + "node_id": "U_kgDOB_nnjg", + "avatar_url": "https://avatars.githubusercontent.com/u/133818254?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/abhayymishraa", + "html_url": "https://github.com/abhayymishraa", + "followers_url": "https://api.github.com/users/abhayymishraa/followers", + "following_url": "https://api.github.com/users/abhayymishraa/following{/other_user}", + "gists_url": "https://api.github.com/users/abhayymishraa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abhayymishraa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abhayymishraa/subscriptions", + "organizations_url": "https://api.github.com/users/abhayymishraa/orgs", + "repos_url": "https://api.github.com/users/abhayymishraa/repos", + "events_url": "https://api.github.com/users/abhayymishraa/events{/privacy}", + "received_events_url": "https://api.github.com/users/abhayymishraa/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "monu808", + "id": 115109945, + "node_id": "U_kgDOBtxwOQ", + "avatar_url": "https://avatars.githubusercontent.com/u/115109945?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/monu808", + "html_url": "https://github.com/monu808", + "followers_url": "https://api.github.com/users/monu808/followers", + "following_url": "https://api.github.com/users/monu808/following{/other_user}", + "gists_url": "https://api.github.com/users/monu808/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monu808/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monu808/subscriptions", + "organizations_url": "https://api.github.com/users/monu808/orgs", + "repos_url": "https://api.github.com/users/monu808/repos", + "events_url": "https://api.github.com/users/monu808/events{/privacy}", + "received_events_url": "https://api.github.com/users/monu808/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "ParagGhatage", + "id": 146347793, + "node_id": "U_kgDOCLkXEQ", + "avatar_url": "https://avatars.githubusercontent.com/u/146347793?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ParagGhatage", + "html_url": "https://github.com/ParagGhatage", + "followers_url": "https://api.github.com/users/ParagGhatage/followers", + "following_url": "https://api.github.com/users/ParagGhatage/following{/other_user}", + "gists_url": "https://api.github.com/users/ParagGhatage/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ParagGhatage/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ParagGhatage/subscriptions", + "organizations_url": "https://api.github.com/users/ParagGhatage/orgs", + "repos_url": "https://api.github.com/users/ParagGhatage/repos", + "events_url": "https://api.github.com/users/ParagGhatage/events{/privacy}", + "received_events_url": "https://api.github.com/users/ParagGhatage/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "codiphile", + "id": 142134117, + "node_id": "U_kgDOCHjLZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/142134117?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/codiphile", + "html_url": "https://github.com/codiphile", + "followers_url": "https://api.github.com/users/codiphile/followers", + "following_url": "https://api.github.com/users/codiphile/following{/other_user}", + "gists_url": "https://api.github.com/users/codiphile/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codiphile/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codiphile/subscriptions", + "organizations_url": "https://api.github.com/users/codiphile/orgs", + "repos_url": "https://api.github.com/users/codiphile/repos", + "events_url": "https://api.github.com/users/codiphile/events{/privacy}", + "received_events_url": "https://api.github.com/users/codiphile/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "kamisama-coder", + "id": 186094787, + "node_id": "U_kgDOCxeUww", + "avatar_url": "https://avatars.githubusercontent.com/u/186094787?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kamisama-coder", + "html_url": "https://github.com/kamisama-coder", + "followers_url": "https://api.github.com/users/kamisama-coder/followers", + "following_url": "https://api.github.com/users/kamisama-coder/following{/other_user}", + "gists_url": "https://api.github.com/users/kamisama-coder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kamisama-coder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kamisama-coder/subscriptions", + "organizations_url": "https://api.github.com/users/kamisama-coder/orgs", + "repos_url": "https://api.github.com/users/kamisama-coder/repos", + "events_url": "https://api.github.com/users/kamisama-coder/events{/privacy}", + "received_events_url": "https://api.github.com/users/kamisama-coder/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "skyforge-glitch", + "id": 196805013, + "node_id": "U_kgDOC7sBlQ", + "avatar_url": "https://avatars.githubusercontent.com/u/196805013?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/skyforge-glitch", + "html_url": "https://github.com/skyforge-glitch", + "followers_url": "https://api.github.com/users/skyforge-glitch/followers", + "following_url": "https://api.github.com/users/skyforge-glitch/following{/other_user}", + "gists_url": "https://api.github.com/users/skyforge-glitch/gists{/gist_id}", + "starred_url": "https://api.github.com/users/skyforge-glitch/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/skyforge-glitch/subscriptions", + "organizations_url": "https://api.github.com/users/skyforge-glitch/orgs", + "repos_url": "https://api.github.com/users/skyforge-glitch/repos", + "events_url": "https://api.github.com/users/skyforge-glitch/events{/privacy}", + "received_events_url": "https://api.github.com/users/skyforge-glitch/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "jitendra-ky", + "id": 36557466, + "node_id": "MDQ6VXNlcjM2NTU3NDY2", + "avatar_url": "https://avatars.githubusercontent.com/u/36557466?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jitendra-ky", + "html_url": "https://github.com/jitendra-ky", + "followers_url": "https://api.github.com/users/jitendra-ky/followers", + "following_url": "https://api.github.com/users/jitendra-ky/following{/other_user}", + "gists_url": "https://api.github.com/users/jitendra-ky/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jitendra-ky/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jitendra-ky/subscriptions", + "organizations_url": "https://api.github.com/users/jitendra-ky/orgs", + "repos_url": "https://api.github.com/users/jitendra-ky/repos", + "events_url": "https://api.github.com/users/jitendra-ky/events{/privacy}", + "received_events_url": "https://api.github.com/users/jitendra-ky/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "adya14", + "id": 103478795, + "node_id": "U_kgDOBir2Cw", + "avatar_url": "https://avatars.githubusercontent.com/u/103478795?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/adya14", + "html_url": "https://github.com/adya14", + "followers_url": "https://api.github.com/users/adya14/followers", + "following_url": "https://api.github.com/users/adya14/following{/other_user}", + "gists_url": "https://api.github.com/users/adya14/gists{/gist_id}", + "starred_url": "https://api.github.com/users/adya14/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/adya14/subscriptions", + "organizations_url": "https://api.github.com/users/adya14/orgs", + "repos_url": "https://api.github.com/users/adya14/repos", + "events_url": "https://api.github.com/users/adya14/events{/privacy}", + "received_events_url": "https://api.github.com/users/adya14/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "seika-afk", + "id": 84296830, + "node_id": "MDQ6VXNlcjg0Mjk2ODMw", + "avatar_url": "https://avatars.githubusercontent.com/u/84296830?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/seika-afk", + "html_url": "https://github.com/seika-afk", + "followers_url": "https://api.github.com/users/seika-afk/followers", + "following_url": "https://api.github.com/users/seika-afk/following{/other_user}", + "gists_url": "https://api.github.com/users/seika-afk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/seika-afk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/seika-afk/subscriptions", + "organizations_url": "https://api.github.com/users/seika-afk/orgs", + "repos_url": "https://api.github.com/users/seika-afk/repos", + "events_url": "https://api.github.com/users/seika-afk/events{/privacy}", + "received_events_url": "https://api.github.com/users/seika-afk/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Pritom2357", + "id": 76788332, + "node_id": "MDQ6VXNlcjc2Nzg4MzMy", + "avatar_url": "https://avatars.githubusercontent.com/u/76788332?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Pritom2357", + "html_url": "https://github.com/Pritom2357", + "followers_url": "https://api.github.com/users/Pritom2357/followers", + "following_url": "https://api.github.com/users/Pritom2357/following{/other_user}", + "gists_url": "https://api.github.com/users/Pritom2357/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Pritom2357/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Pritom2357/subscriptions", + "organizations_url": "https://api.github.com/users/Pritom2357/orgs", + "repos_url": "https://api.github.com/users/Pritom2357/repos", + "events_url": "https://api.github.com/users/Pritom2357/events{/privacy}", + "received_events_url": "https://api.github.com/users/Pritom2357/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "singhshaurya01", + "id": 222411767, + "node_id": "U_kgDODUG79w", + "avatar_url": "https://avatars.githubusercontent.com/u/222411767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/singhshaurya01", + "html_url": "https://github.com/singhshaurya01", + "followers_url": "https://api.github.com/users/singhshaurya01/followers", + "following_url": "https://api.github.com/users/singhshaurya01/following{/other_user}", + "gists_url": "https://api.github.com/users/singhshaurya01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/singhshaurya01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/singhshaurya01/subscriptions", + "organizations_url": "https://api.github.com/users/singhshaurya01/orgs", + "repos_url": "https://api.github.com/users/singhshaurya01/repos", + "events_url": "https://api.github.com/users/singhshaurya01/events{/privacy}", + "received_events_url": "https://api.github.com/users/singhshaurya01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "bakayu", + "id": 56398566, + "node_id": "MDQ6VXNlcjU2Mzk4NTY2", + "avatar_url": "https://avatars.githubusercontent.com/u/56398566?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bakayu", + "html_url": "https://github.com/bakayu", + "followers_url": "https://api.github.com/users/bakayu/followers", + "following_url": "https://api.github.com/users/bakayu/following{/other_user}", + "gists_url": "https://api.github.com/users/bakayu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bakayu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bakayu/subscriptions", + "organizations_url": "https://api.github.com/users/bakayu/orgs", + "repos_url": "https://api.github.com/users/bakayu/repos", + "events_url": "https://api.github.com/users/bakayu/events{/privacy}", + "received_events_url": "https://api.github.com/users/bakayu/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Supritha-gurazala", + "id": 171582752, + "node_id": "U_kgDOCjolIA", + "avatar_url": "https://avatars.githubusercontent.com/u/171582752?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Supritha-gurazala", + "html_url": "https://github.com/Supritha-gurazala", + "followers_url": "https://api.github.com/users/Supritha-gurazala/followers", + "following_url": "https://api.github.com/users/Supritha-gurazala/following{/other_user}", + "gists_url": "https://api.github.com/users/Supritha-gurazala/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Supritha-gurazala/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Supritha-gurazala/subscriptions", + "organizations_url": "https://api.github.com/users/Supritha-gurazala/orgs", + "repos_url": "https://api.github.com/users/Supritha-gurazala/repos", + "events_url": "https://api.github.com/users/Supritha-gurazala/events{/privacy}", + "received_events_url": "https://api.github.com/users/Supritha-gurazala/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "arorabhavik1001", + "id": 71212695, + "node_id": "MDQ6VXNlcjcxMjEyNjk1", + "avatar_url": "https://avatars.githubusercontent.com/u/71212695?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/arorabhavik1001", + "html_url": "https://github.com/arorabhavik1001", + "followers_url": "https://api.github.com/users/arorabhavik1001/followers", + "following_url": "https://api.github.com/users/arorabhavik1001/following{/other_user}", + "gists_url": "https://api.github.com/users/arorabhavik1001/gists{/gist_id}", + "starred_url": "https://api.github.com/users/arorabhavik1001/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/arorabhavik1001/subscriptions", + "organizations_url": "https://api.github.com/users/arorabhavik1001/orgs", + "repos_url": "https://api.github.com/users/arorabhavik1001/repos", + "events_url": "https://api.github.com/users/arorabhavik1001/events{/privacy}", + "received_events_url": "https://api.github.com/users/arorabhavik1001/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "DhruvK278", + "id": 136009129, + "node_id": "U_kgDOCBtVqQ", + "avatar_url": "https://avatars.githubusercontent.com/u/136009129?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DhruvK278", + "html_url": "https://github.com/DhruvK278", + "followers_url": "https://api.github.com/users/DhruvK278/followers", + "following_url": "https://api.github.com/users/DhruvK278/following{/other_user}", + "gists_url": "https://api.github.com/users/DhruvK278/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DhruvK278/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DhruvK278/subscriptions", + "organizations_url": "https://api.github.com/users/DhruvK278/orgs", + "repos_url": "https://api.github.com/users/DhruvK278/repos", + "events_url": "https://api.github.com/users/DhruvK278/events{/privacy}", + "received_events_url": "https://api.github.com/users/DhruvK278/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "ManishxNinja", + "id": 126325637, + "node_id": "U_kgDOB4eThQ", + "avatar_url": "https://avatars.githubusercontent.com/u/126325637?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ManishxNinja", + "html_url": "https://github.com/ManishxNinja", + "followers_url": "https://api.github.com/users/ManishxNinja/followers", + "following_url": "https://api.github.com/users/ManishxNinja/following{/other_user}", + "gists_url": "https://api.github.com/users/ManishxNinja/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ManishxNinja/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ManishxNinja/subscriptions", + "organizations_url": "https://api.github.com/users/ManishxNinja/orgs", + "repos_url": "https://api.github.com/users/ManishxNinja/repos", + "events_url": "https://api.github.com/users/ManishxNinja/events{/privacy}", + "received_events_url": "https://api.github.com/users/ManishxNinja/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "MayankSharma-ops", + "id": 199877936, + "node_id": "U_kgDOC-nlMA", + "avatar_url": "https://avatars.githubusercontent.com/u/199877936?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MayankSharma-ops", + "html_url": "https://github.com/MayankSharma-ops", + "followers_url": "https://api.github.com/users/MayankSharma-ops/followers", + "following_url": "https://api.github.com/users/MayankSharma-ops/following{/other_user}", + "gists_url": "https://api.github.com/users/MayankSharma-ops/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MayankSharma-ops/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MayankSharma-ops/subscriptions", + "organizations_url": "https://api.github.com/users/MayankSharma-ops/orgs", + "repos_url": "https://api.github.com/users/MayankSharma-ops/repos", + "events_url": "https://api.github.com/users/MayankSharma-ops/events{/privacy}", + "received_events_url": "https://api.github.com/users/MayankSharma-ops/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "priyankeshh", + "id": 102135464, + "node_id": "U_kgDOBhZ2qA", + "avatar_url": "https://avatars.githubusercontent.com/u/102135464?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/priyankeshh", + "html_url": "https://github.com/priyankeshh", + "followers_url": "https://api.github.com/users/priyankeshh/followers", + "following_url": "https://api.github.com/users/priyankeshh/following{/other_user}", + "gists_url": "https://api.github.com/users/priyankeshh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/priyankeshh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/priyankeshh/subscriptions", + "organizations_url": "https://api.github.com/users/priyankeshh/orgs", + "repos_url": "https://api.github.com/users/priyankeshh/repos", + "events_url": "https://api.github.com/users/priyankeshh/events{/privacy}", + "received_events_url": "https://api.github.com/users/priyankeshh/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "SharkyBytes", + "id": 129230225, + "node_id": "U_kgDOB7PlkQ", + "avatar_url": "https://avatars.githubusercontent.com/u/129230225?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SharkyBytes", + "html_url": "https://github.com/SharkyBytes", + "followers_url": "https://api.github.com/users/SharkyBytes/followers", + "following_url": "https://api.github.com/users/SharkyBytes/following{/other_user}", + "gists_url": "https://api.github.com/users/SharkyBytes/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SharkyBytes/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SharkyBytes/subscriptions", + "organizations_url": "https://api.github.com/users/SharkyBytes/orgs", + "repos_url": "https://api.github.com/users/SharkyBytes/repos", + "events_url": "https://api.github.com/users/SharkyBytes/events{/privacy}", + "received_events_url": "https://api.github.com/users/SharkyBytes/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "ritigya03", + "id": 149865024, + "node_id": "U_kgDOCO7CQA", + "avatar_url": "https://avatars.githubusercontent.com/u/149865024?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ritigya03", + "html_url": "https://github.com/ritigya03", + "followers_url": "https://api.github.com/users/ritigya03/followers", + "following_url": "https://api.github.com/users/ritigya03/following{/other_user}", + "gists_url": "https://api.github.com/users/ritigya03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ritigya03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ritigya03/subscriptions", + "organizations_url": "https://api.github.com/users/ritigya03/orgs", + "repos_url": "https://api.github.com/users/ritigya03/repos", + "events_url": "https://api.github.com/users/ritigya03/events{/privacy}", + "received_events_url": "https://api.github.com/users/ritigya03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "rebeccabas", + "id": 103018188, + "node_id": "U_kgDOBiPuzA", + "avatar_url": "https://avatars.githubusercontent.com/u/103018188?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rebeccabas", + "html_url": "https://github.com/rebeccabas", + "followers_url": "https://api.github.com/users/rebeccabas/followers", + "following_url": "https://api.github.com/users/rebeccabas/following{/other_user}", + "gists_url": "https://api.github.com/users/rebeccabas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rebeccabas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rebeccabas/subscriptions", + "organizations_url": "https://api.github.com/users/rebeccabas/orgs", + "repos_url": "https://api.github.com/users/rebeccabas/repos", + "events_url": "https://api.github.com/users/rebeccabas/events{/privacy}", + "received_events_url": "https://api.github.com/users/rebeccabas/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Ujjiyara", + "id": 192215632, + "node_id": "U_kgDOC3T6UA", + "avatar_url": "https://avatars.githubusercontent.com/u/192215632?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ujjiyara", + "html_url": "https://github.com/Ujjiyara", + "followers_url": "https://api.github.com/users/Ujjiyara/followers", + "following_url": "https://api.github.com/users/Ujjiyara/following{/other_user}", + "gists_url": "https://api.github.com/users/Ujjiyara/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ujjiyara/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ujjiyara/subscriptions", + "organizations_url": "https://api.github.com/users/Ujjiyara/orgs", + "repos_url": "https://api.github.com/users/Ujjiyara/repos", + "events_url": "https://api.github.com/users/Ujjiyara/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ujjiyara/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "suryansh00001", + "id": 203127069, + "node_id": "U_kgDODBt5HQ", + "avatar_url": "https://avatars.githubusercontent.com/u/203127069?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/suryansh00001", + "html_url": "https://github.com/suryansh00001", + "followers_url": "https://api.github.com/users/suryansh00001/followers", + "following_url": "https://api.github.com/users/suryansh00001/following{/other_user}", + "gists_url": "https://api.github.com/users/suryansh00001/gists{/gist_id}", + "starred_url": "https://api.github.com/users/suryansh00001/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/suryansh00001/subscriptions", + "organizations_url": "https://api.github.com/users/suryansh00001/orgs", + "repos_url": "https://api.github.com/users/suryansh00001/repos", + "events_url": "https://api.github.com/users/suryansh00001/events{/privacy}", + "received_events_url": "https://api.github.com/users/suryansh00001/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "tanmaysachann", + "id": 188097442, + "node_id": "U_kgDOCzYjog", + "avatar_url": "https://avatars.githubusercontent.com/u/188097442?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/tanmaysachann", + "html_url": "https://github.com/tanmaysachann", + "followers_url": "https://api.github.com/users/tanmaysachann/followers", + "following_url": "https://api.github.com/users/tanmaysachann/following{/other_user}", + "gists_url": "https://api.github.com/users/tanmaysachann/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tanmaysachann/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tanmaysachann/subscriptions", + "organizations_url": "https://api.github.com/users/tanmaysachann/orgs", + "repos_url": "https://api.github.com/users/tanmaysachann/repos", + "events_url": "https://api.github.com/users/tanmaysachann/events{/privacy}", + "received_events_url": "https://api.github.com/users/tanmaysachann/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Varun-JP", + "id": 92174003, + "node_id": "U_kgDOBX52sw", + "avatar_url": "https://avatars.githubusercontent.com/u/92174003?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Varun-JP", + "html_url": "https://github.com/Varun-JP", + "followers_url": "https://api.github.com/users/Varun-JP/followers", + "following_url": "https://api.github.com/users/Varun-JP/following{/other_user}", + "gists_url": "https://api.github.com/users/Varun-JP/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Varun-JP/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Varun-JP/subscriptions", + "organizations_url": "https://api.github.com/users/Varun-JP/orgs", + "repos_url": "https://api.github.com/users/Varun-JP/repos", + "events_url": "https://api.github.com/users/Varun-JP/events{/privacy}", + "received_events_url": "https://api.github.com/users/Varun-JP/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "VasuS609", + "id": 160463336, + "node_id": "U_kgDOCZB56A", + "avatar_url": "https://avatars.githubusercontent.com/u/160463336?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VasuS609", + "html_url": "https://github.com/VasuS609", + "followers_url": "https://api.github.com/users/VasuS609/followers", + "following_url": "https://api.github.com/users/VasuS609/following{/other_user}", + "gists_url": "https://api.github.com/users/VasuS609/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VasuS609/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VasuS609/subscriptions", + "organizations_url": "https://api.github.com/users/VasuS609/orgs", + "repos_url": "https://api.github.com/users/VasuS609/repos", + "events_url": "https://api.github.com/users/VasuS609/events{/privacy}", + "received_events_url": "https://api.github.com/users/VasuS609/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "devanmolx", + "id": 143805969, + "node_id": "U_kgDOCJJOEQ", + "avatar_url": "https://avatars.githubusercontent.com/u/143805969?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/devanmolx", + "html_url": "https://github.com/devanmolx", + "followers_url": "https://api.github.com/users/devanmolx/followers", + "following_url": "https://api.github.com/users/devanmolx/following{/other_user}", + "gists_url": "https://api.github.com/users/devanmolx/gists{/gist_id}", + "starred_url": "https://api.github.com/users/devanmolx/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/devanmolx/subscriptions", + "organizations_url": "https://api.github.com/users/devanmolx/orgs", + "repos_url": "https://api.github.com/users/devanmolx/repos", + "events_url": "https://api.github.com/users/devanmolx/events{/privacy}", + "received_events_url": "https://api.github.com/users/devanmolx/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Awaneesh03", + "id": 125533736, + "node_id": "U_kgDOB3t-KA", + "avatar_url": "https://avatars.githubusercontent.com/u/125533736?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Awaneesh03", + "html_url": "https://github.com/Awaneesh03", + "followers_url": "https://api.github.com/users/Awaneesh03/followers", + "following_url": "https://api.github.com/users/Awaneesh03/following{/other_user}", + "gists_url": "https://api.github.com/users/Awaneesh03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Awaneesh03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Awaneesh03/subscriptions", + "organizations_url": "https://api.github.com/users/Awaneesh03/orgs", + "repos_url": "https://api.github.com/users/Awaneesh03/repos", + "events_url": "https://api.github.com/users/Awaneesh03/events{/privacy}", + "received_events_url": "https://api.github.com/users/Awaneesh03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "dhruvi-16-me", + "id": 188478043, + "node_id": "U_kgDOCzvyWw", + "avatar_url": "https://avatars.githubusercontent.com/u/188478043?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dhruvi-16-me", + "html_url": "https://github.com/dhruvi-16-me", + "followers_url": "https://api.github.com/users/dhruvi-16-me/followers", + "following_url": "https://api.github.com/users/dhruvi-16-me/following{/other_user}", + "gists_url": "https://api.github.com/users/dhruvi-16-me/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dhruvi-16-me/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dhruvi-16-me/subscriptions", + "organizations_url": "https://api.github.com/users/dhruvi-16-me/orgs", + "repos_url": "https://api.github.com/users/dhruvi-16-me/repos", + "events_url": "https://api.github.com/users/dhruvi-16-me/events{/privacy}", + "received_events_url": "https://api.github.com/users/dhruvi-16-me/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "g-k-s-03", + "id": 226368649, + "node_id": "U_kgDODX4ciQ", + "avatar_url": "https://avatars.githubusercontent.com/u/226368649?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/g-k-s-03", + "html_url": "https://github.com/g-k-s-03", + "followers_url": "https://api.github.com/users/g-k-s-03/followers", + "following_url": "https://api.github.com/users/g-k-s-03/following{/other_user}", + "gists_url": "https://api.github.com/users/g-k-s-03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/g-k-s-03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/g-k-s-03/subscriptions", + "organizations_url": "https://api.github.com/users/g-k-s-03/orgs", + "repos_url": "https://api.github.com/users/g-k-s-03/repos", + "events_url": "https://api.github.com/users/g-k-s-03/events{/privacy}", + "received_events_url": "https://api.github.com/users/g-k-s-03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "dehydrated-bear", + "id": 173430794, + "node_id": "U_kgDOClZYCg", + "avatar_url": "https://avatars.githubusercontent.com/u/173430794?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dehydrated-bear", + "html_url": "https://github.com/dehydrated-bear", + "followers_url": "https://api.github.com/users/dehydrated-bear/followers", + "following_url": "https://api.github.com/users/dehydrated-bear/following{/other_user}", + "gists_url": "https://api.github.com/users/dehydrated-bear/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dehydrated-bear/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dehydrated-bear/subscriptions", + "organizations_url": "https://api.github.com/users/dehydrated-bear/orgs", + "repos_url": "https://api.github.com/users/dehydrated-bear/repos", + "events_url": "https://api.github.com/users/dehydrated-bear/events{/privacy}", + "received_events_url": "https://api.github.com/users/dehydrated-bear/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "igennova", + "id": 91773416, + "node_id": "U_kgDOBXhZ6A", + "avatar_url": "https://avatars.githubusercontent.com/u/91773416?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/igennova", + "html_url": "https://github.com/igennova", + "followers_url": "https://api.github.com/users/igennova/followers", + "following_url": "https://api.github.com/users/igennova/following{/other_user}", + "gists_url": "https://api.github.com/users/igennova/gists{/gist_id}", + "starred_url": "https://api.github.com/users/igennova/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/igennova/subscriptions", + "organizations_url": "https://api.github.com/users/igennova/orgs", + "repos_url": "https://api.github.com/users/igennova/repos", + "events_url": "https://api.github.com/users/igennova/events{/privacy}", + "received_events_url": "https://api.github.com/users/igennova/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "sawarn24", + "id": 150719088, + "node_id": "U_kgDOCPvKcA", + "avatar_url": "https://avatars.githubusercontent.com/u/150719088?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sawarn24", + "html_url": "https://github.com/sawarn24", + "followers_url": "https://api.github.com/users/sawarn24/followers", + "following_url": "https://api.github.com/users/sawarn24/following{/other_user}", + "gists_url": "https://api.github.com/users/sawarn24/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sawarn24/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sawarn24/subscriptions", + "organizations_url": "https://api.github.com/users/sawarn24/orgs", + "repos_url": "https://api.github.com/users/sawarn24/repos", + "events_url": "https://api.github.com/users/sawarn24/events{/privacy}", + "received_events_url": "https://api.github.com/users/sawarn24/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "smeet96", + "id": 171246282, + "node_id": "U_kgDOCjUCyg", + "avatar_url": "https://avatars.githubusercontent.com/u/171246282?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/smeet96", + "html_url": "https://github.com/smeet96", + "followers_url": "https://api.github.com/users/smeet96/followers", + "following_url": "https://api.github.com/users/smeet96/following{/other_user}", + "gists_url": "https://api.github.com/users/smeet96/gists{/gist_id}", + "starred_url": "https://api.github.com/users/smeet96/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/smeet96/subscriptions", + "organizations_url": "https://api.github.com/users/smeet96/orgs", + "repos_url": "https://api.github.com/users/smeet96/repos", + "events_url": "https://api.github.com/users/smeet96/events{/privacy}", + "received_events_url": "https://api.github.com/users/smeet96/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "vipulgupta28", + "id": 121814604, + "node_id": "U_kgDOB0K-TA", + "avatar_url": "https://avatars.githubusercontent.com/u/121814604?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vipulgupta28", + "html_url": "https://github.com/vipulgupta28", + "followers_url": "https://api.github.com/users/vipulgupta28/followers", + "following_url": "https://api.github.com/users/vipulgupta28/following{/other_user}", + "gists_url": "https://api.github.com/users/vipulgupta28/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vipulgupta28/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vipulgupta28/subscriptions", + "organizations_url": "https://api.github.com/users/vipulgupta28/orgs", + "repos_url": "https://api.github.com/users/vipulgupta28/repos", + "events_url": "https://api.github.com/users/vipulgupta28/events{/privacy}", + "received_events_url": "https://api.github.com/users/vipulgupta28/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "yosinn1-blip", + "id": 269333706, + "node_id": "U_kgDOEA20yg", + "avatar_url": "https://avatars.githubusercontent.com/u/269333706?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/yosinn1-blip", + "html_url": "https://github.com/yosinn1-blip", + "followers_url": "https://api.github.com/users/yosinn1-blip/followers", + "following_url": "https://api.github.com/users/yosinn1-blip/following{/other_user}", + "gists_url": "https://api.github.com/users/yosinn1-blip/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yosinn1-blip/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yosinn1-blip/subscriptions", + "organizations_url": "https://api.github.com/users/yosinn1-blip/orgs", + "repos_url": "https://api.github.com/users/yosinn1-blip/repos", + "events_url": "https://api.github.com/users/yosinn1-blip/events{/privacy}", + "received_events_url": "https://api.github.com/users/yosinn1-blip/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "aryash45", + "id": 180546589, + "node_id": "U_kgDOCsLsHQ", + "avatar_url": "https://avatars.githubusercontent.com/u/180546589?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aryash45", + "html_url": "https://github.com/aryash45", + "followers_url": "https://api.github.com/users/aryash45/followers", + "following_url": "https://api.github.com/users/aryash45/following{/other_user}", + "gists_url": "https://api.github.com/users/aryash45/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aryash45/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aryash45/subscriptions", + "organizations_url": "https://api.github.com/users/aryash45/orgs", + "repos_url": "https://api.github.com/users/aryash45/repos", + "events_url": "https://api.github.com/users/aryash45/events{/privacy}", + "received_events_url": "https://api.github.com/users/aryash45/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Abhaysoft-inc", + "id": 57512017, + "node_id": "MDQ6VXNlcjU3NTEyMDE3", + "avatar_url": "https://avatars.githubusercontent.com/u/57512017?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhaysoft-inc", + "html_url": "https://github.com/Abhaysoft-inc", + "followers_url": "https://api.github.com/users/Abhaysoft-inc/followers", + "following_url": "https://api.github.com/users/Abhaysoft-inc/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhaysoft-inc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhaysoft-inc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhaysoft-inc/subscriptions", + "organizations_url": "https://api.github.com/users/Abhaysoft-inc/orgs", + "repos_url": "https://api.github.com/users/Abhaysoft-inc/repos", + "events_url": "https://api.github.com/users/Abhaysoft-inc/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhaysoft-inc/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Adarsh-ops", + "id": 176600621, + "node_id": "U_kgDOCoa2LQ", + "avatar_url": "https://avatars.githubusercontent.com/u/176600621?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Adarsh-ops", + "html_url": "https://github.com/Adarsh-ops", + "followers_url": "https://api.github.com/users/Adarsh-ops/followers", + "following_url": "https://api.github.com/users/Adarsh-ops/following{/other_user}", + "gists_url": "https://api.github.com/users/Adarsh-ops/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Adarsh-ops/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Adarsh-ops/subscriptions", + "organizations_url": "https://api.github.com/users/Adarsh-ops/orgs", + "repos_url": "https://api.github.com/users/Adarsh-ops/repos", + "events_url": "https://api.github.com/users/Adarsh-ops/events{/privacy}", + "received_events_url": "https://api.github.com/users/Adarsh-ops/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "aniket866", + "id": 200447751, + "node_id": "U_kgDOC_KXBw", + "avatar_url": "https://avatars.githubusercontent.com/u/200447751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aniket866", + "html_url": "https://github.com/aniket866", + "followers_url": "https://api.github.com/users/aniket866/followers", + "following_url": "https://api.github.com/users/aniket866/following{/other_user}", + "gists_url": "https://api.github.com/users/aniket866/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aniket866/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aniket866/subscriptions", + "organizations_url": "https://api.github.com/users/aniket866/orgs", + "repos_url": "https://api.github.com/users/aniket866/repos", + "events_url": "https://api.github.com/users/aniket866/events{/privacy}", + "received_events_url": "https://api.github.com/users/aniket866/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "steam-bell-92", + "id": 192874339, + "node_id": "U_kgDOC38HYw", + "avatar_url": "https://avatars.githubusercontent.com/u/192874339?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/steam-bell-92", + "html_url": "https://github.com/steam-bell-92", + "followers_url": "https://api.github.com/users/steam-bell-92/followers", + "following_url": "https://api.github.com/users/steam-bell-92/following{/other_user}", + "gists_url": "https://api.github.com/users/steam-bell-92/gists{/gist_id}", + "starred_url": "https://api.github.com/users/steam-bell-92/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/steam-bell-92/subscriptions", + "organizations_url": "https://api.github.com/users/steam-bell-92/orgs", + "repos_url": "https://api.github.com/users/steam-bell-92/repos", + "events_url": "https://api.github.com/users/steam-bell-92/events{/privacy}", + "received_events_url": "https://api.github.com/users/steam-bell-92/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Arpitsh7", + "id": 125698685, + "node_id": "U_kgDOB34CfQ", + "avatar_url": "https://avatars.githubusercontent.com/u/125698685?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Arpitsh7", + "html_url": "https://github.com/Arpitsh7", + "followers_url": "https://api.github.com/users/Arpitsh7/followers", + "following_url": "https://api.github.com/users/Arpitsh7/following{/other_user}", + "gists_url": "https://api.github.com/users/Arpitsh7/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Arpitsh7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Arpitsh7/subscriptions", + "organizations_url": "https://api.github.com/users/Arpitsh7/orgs", + "repos_url": "https://api.github.com/users/Arpitsh7/repos", + "events_url": "https://api.github.com/users/Arpitsh7/events{/privacy}", + "received_events_url": "https://api.github.com/users/Arpitsh7/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Daniel-Leve", + "id": 147330913, + "node_id": "U_kgDOCMgXYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/147330913?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Daniel-Leve", + "html_url": "https://github.com/Daniel-Leve", + "followers_url": "https://api.github.com/users/Daniel-Leve/followers", + "following_url": "https://api.github.com/users/Daniel-Leve/following{/other_user}", + "gists_url": "https://api.github.com/users/Daniel-Leve/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Daniel-Leve/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Daniel-Leve/subscriptions", + "organizations_url": "https://api.github.com/users/Daniel-Leve/orgs", + "repos_url": "https://api.github.com/users/Daniel-Leve/repos", + "events_url": "https://api.github.com/users/Daniel-Leve/events{/privacy}", + "received_events_url": "https://api.github.com/users/Daniel-Leve/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "HardikMathur11", + "id": 186831435, + "node_id": "U_kgDOCyLSSw", + "avatar_url": "https://avatars.githubusercontent.com/u/186831435?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/HardikMathur11", + "html_url": "https://github.com/HardikMathur11", + "followers_url": "https://api.github.com/users/HardikMathur11/followers", + "following_url": "https://api.github.com/users/HardikMathur11/following{/other_user}", + "gists_url": "https://api.github.com/users/HardikMathur11/gists{/gist_id}", + "starred_url": "https://api.github.com/users/HardikMathur11/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/HardikMathur11/subscriptions", + "organizations_url": "https://api.github.com/users/HardikMathur11/orgs", + "repos_url": "https://api.github.com/users/HardikMathur11/repos", + "events_url": "https://api.github.com/users/HardikMathur11/events{/privacy}", + "received_events_url": "https://api.github.com/users/HardikMathur11/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "harsh1519", + "id": 98206466, + "node_id": "U_kgDOBdqDAg", + "avatar_url": "https://avatars.githubusercontent.com/u/98206466?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/harsh1519", + "html_url": "https://github.com/harsh1519", + "followers_url": "https://api.github.com/users/harsh1519/followers", + "following_url": "https://api.github.com/users/harsh1519/following{/other_user}", + "gists_url": "https://api.github.com/users/harsh1519/gists{/gist_id}", + "starred_url": "https://api.github.com/users/harsh1519/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/harsh1519/subscriptions", + "organizations_url": "https://api.github.com/users/harsh1519/orgs", + "repos_url": "https://api.github.com/users/harsh1519/repos", + "events_url": "https://api.github.com/users/harsh1519/events{/privacy}", + "received_events_url": "https://api.github.com/users/harsh1519/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "KKSurendran06", + "id": 137263515, + "node_id": "U_kgDOCC55mw", + "avatar_url": "https://avatars.githubusercontent.com/u/137263515?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/KKSurendran06", + "html_url": "https://github.com/KKSurendran06", + "followers_url": "https://api.github.com/users/KKSurendran06/followers", + "following_url": "https://api.github.com/users/KKSurendran06/following{/other_user}", + "gists_url": "https://api.github.com/users/KKSurendran06/gists{/gist_id}", + "starred_url": "https://api.github.com/users/KKSurendran06/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/KKSurendran06/subscriptions", + "organizations_url": "https://api.github.com/users/KKSurendran06/orgs", + "repos_url": "https://api.github.com/users/KKSurendran06/repos", + "events_url": "https://api.github.com/users/KKSurendran06/events{/privacy}", + "received_events_url": "https://api.github.com/users/KKSurendran06/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "kunal30114", + "id": 149945731, + "node_id": "U_kgDOCO_9gw", + "avatar_url": "https://avatars.githubusercontent.com/u/149945731?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kunal30114", + "html_url": "https://github.com/kunal30114", + "followers_url": "https://api.github.com/users/kunal30114/followers", + "following_url": "https://api.github.com/users/kunal30114/following{/other_user}", + "gists_url": "https://api.github.com/users/kunal30114/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kunal30114/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kunal30114/subscriptions", + "organizations_url": "https://api.github.com/users/kunal30114/orgs", + "repos_url": "https://api.github.com/users/kunal30114/repos", + "events_url": "https://api.github.com/users/kunal30114/events{/privacy}", + "received_events_url": "https://api.github.com/users/kunal30114/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "kanishka-commits", + "id": 172115852, + "node_id": "U_kgDOCkJHjA", + "avatar_url": "https://avatars.githubusercontent.com/u/172115852?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kanishka-commits", + "html_url": "https://github.com/kanishka-commits", + "followers_url": "https://api.github.com/users/kanishka-commits/followers", + "following_url": "https://api.github.com/users/kanishka-commits/following{/other_user}", + "gists_url": "https://api.github.com/users/kanishka-commits/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kanishka-commits/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kanishka-commits/subscriptions", + "organizations_url": "https://api.github.com/users/kanishka-commits/orgs", + "repos_url": "https://api.github.com/users/kanishka-commits/repos", + "events_url": "https://api.github.com/users/kanishka-commits/events{/privacy}", + "received_events_url": "https://api.github.com/users/kanishka-commits/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "keshaviscool", + "id": 71484260, + "node_id": "MDQ6VXNlcjcxNDg0MjYw", + "avatar_url": "https://avatars.githubusercontent.com/u/71484260?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/keshaviscool", + "html_url": "https://github.com/keshaviscool", + "followers_url": "https://api.github.com/users/keshaviscool/followers", + "following_url": "https://api.github.com/users/keshaviscool/following{/other_user}", + "gists_url": "https://api.github.com/users/keshaviscool/gists{/gist_id}", + "starred_url": "https://api.github.com/users/keshaviscool/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/keshaviscool/subscriptions", + "organizations_url": "https://api.github.com/users/keshaviscool/orgs", + "repos_url": "https://api.github.com/users/keshaviscool/repos", + "events_url": "https://api.github.com/users/keshaviscool/events{/privacy}", + "received_events_url": "https://api.github.com/users/keshaviscool/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "manishyad375375", + "id": 123263131, + "node_id": "U_kgDOB1jYmw", + "avatar_url": "https://avatars.githubusercontent.com/u/123263131?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/manishyad375375", + "html_url": "https://github.com/manishyad375375", + "followers_url": "https://api.github.com/users/manishyad375375/followers", + "following_url": "https://api.github.com/users/manishyad375375/following{/other_user}", + "gists_url": "https://api.github.com/users/manishyad375375/gists{/gist_id}", + "starred_url": "https://api.github.com/users/manishyad375375/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/manishyad375375/subscriptions", + "organizations_url": "https://api.github.com/users/manishyad375375/orgs", + "repos_url": "https://api.github.com/users/manishyad375375/repos", + "events_url": "https://api.github.com/users/manishyad375375/events{/privacy}", + "received_events_url": "https://api.github.com/users/manishyad375375/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "PranjaliBhardwaj", + "id": 146981751, + "node_id": "U_kgDOCMLDdw", + "avatar_url": "https://avatars.githubusercontent.com/u/146981751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PranjaliBhardwaj", + "html_url": "https://github.com/PranjaliBhardwaj", + "followers_url": "https://api.github.com/users/PranjaliBhardwaj/followers", + "following_url": "https://api.github.com/users/PranjaliBhardwaj/following{/other_user}", + "gists_url": "https://api.github.com/users/PranjaliBhardwaj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PranjaliBhardwaj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PranjaliBhardwaj/subscriptions", + "organizations_url": "https://api.github.com/users/PranjaliBhardwaj/orgs", + "repos_url": "https://api.github.com/users/PranjaliBhardwaj/repos", + "events_url": "https://api.github.com/users/PranjaliBhardwaj/events{/privacy}", + "received_events_url": "https://api.github.com/users/PranjaliBhardwaj/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Garry400", + "id": 97863544, + "node_id": "U_kgDOBdVHeA", + "avatar_url": "https://avatars.githubusercontent.com/u/97863544?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Garry400", + "html_url": "https://github.com/Garry400", + "followers_url": "https://api.github.com/users/Garry400/followers", + "following_url": "https://api.github.com/users/Garry400/following{/other_user}", + "gists_url": "https://api.github.com/users/Garry400/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Garry400/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Garry400/subscriptions", + "organizations_url": "https://api.github.com/users/Garry400/orgs", + "repos_url": "https://api.github.com/users/Garry400/repos", + "events_url": "https://api.github.com/users/Garry400/events{/privacy}", + "received_events_url": "https://api.github.com/users/Garry400/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Rishiii57", + "id": 218080108, + "node_id": "U_kgDODP-jbA", + "avatar_url": "https://avatars.githubusercontent.com/u/218080108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Rishiii57", + "html_url": "https://github.com/Rishiii57", + "followers_url": "https://api.github.com/users/Rishiii57/followers", + "following_url": "https://api.github.com/users/Rishiii57/following{/other_user}", + "gists_url": "https://api.github.com/users/Rishiii57/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Rishiii57/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Rishiii57/subscriptions", + "organizations_url": "https://api.github.com/users/Rishiii57/orgs", + "repos_url": "https://api.github.com/users/Rishiii57/repos", + "events_url": "https://api.github.com/users/Rishiii57/events{/privacy}", + "received_events_url": "https://api.github.com/users/Rishiii57/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "Resonate": [ + { + "login": "Aarush-Acharya", + "id": 92685647, + "node_id": "U_kgDOBYZFTw", + "avatar_url": "https://avatars.githubusercontent.com/u/92685647?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aarush-Acharya", + "html_url": "https://github.com/Aarush-Acharya", + "followers_url": "https://api.github.com/users/Aarush-Acharya/followers", + "following_url": "https://api.github.com/users/Aarush-Acharya/following{/other_user}", + "gists_url": "https://api.github.com/users/Aarush-Acharya/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aarush-Acharya/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aarush-Acharya/subscriptions", + "organizations_url": "https://api.github.com/users/Aarush-Acharya/orgs", + "repos_url": "https://api.github.com/users/Aarush-Acharya/repos", + "events_url": "https://api.github.com/users/Aarush-Acharya/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aarush-Acharya/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 273 + }, + { + "login": "chandansgowda", + "id": 41890434, + "node_id": "MDQ6VXNlcjQxODkwNDM0", + "avatar_url": "https://avatars.githubusercontent.com/u/41890434?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/chandansgowda", + "html_url": "https://github.com/chandansgowda", + "followers_url": "https://api.github.com/users/chandansgowda/followers", + "following_url": "https://api.github.com/users/chandansgowda/following{/other_user}", + "gists_url": "https://api.github.com/users/chandansgowda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chandansgowda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chandansgowda/subscriptions", + "organizations_url": "https://api.github.com/users/chandansgowda/orgs", + "repos_url": "https://api.github.com/users/chandansgowda/repos", + "events_url": "https://api.github.com/users/chandansgowda/events{/privacy}", + "received_events_url": "https://api.github.com/users/chandansgowda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 257 + }, + { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 145 + }, + { + "login": "Mayank4352", + "id": 120477383, + "node_id": "U_kgDOBy5Wxw", + "avatar_url": "https://avatars.githubusercontent.com/u/120477383?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Mayank4352", + "html_url": "https://github.com/Mayank4352", + "followers_url": "https://api.github.com/users/Mayank4352/followers", + "following_url": "https://api.github.com/users/Mayank4352/following{/other_user}", + "gists_url": "https://api.github.com/users/Mayank4352/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mayank4352/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mayank4352/subscriptions", + "organizations_url": "https://api.github.com/users/Mayank4352/orgs", + "repos_url": "https://api.github.com/users/Mayank4352/repos", + "events_url": "https://api.github.com/users/Mayank4352/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mayank4352/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 70 + }, + { + "login": "vrundraval24", + "id": 141143426, + "node_id": "U_kgDOCGmtgg", + "avatar_url": "https://avatars.githubusercontent.com/u/141143426?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vrundraval24", + "html_url": "https://github.com/vrundraval24", + "followers_url": "https://api.github.com/users/vrundraval24/followers", + "following_url": "https://api.github.com/users/vrundraval24/following{/other_user}", + "gists_url": "https://api.github.com/users/vrundraval24/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vrundraval24/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vrundraval24/subscriptions", + "organizations_url": "https://api.github.com/users/vrundraval24/orgs", + "repos_url": "https://api.github.com/users/vrundraval24/repos", + "events_url": "https://api.github.com/users/vrundraval24/events{/privacy}", + "received_events_url": "https://api.github.com/users/vrundraval24/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 55 + }, + { + "login": "xkaper001", + "id": 71162979, + "node_id": "MDQ6VXNlcjcxMTYyOTc5", + "avatar_url": "https://avatars.githubusercontent.com/u/71162979?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/xkaper001", + "html_url": "https://github.com/xkaper001", + "followers_url": "https://api.github.com/users/xkaper001/followers", + "following_url": "https://api.github.com/users/xkaper001/following{/other_user}", + "gists_url": "https://api.github.com/users/xkaper001/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xkaper001/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xkaper001/subscriptions", + "organizations_url": "https://api.github.com/users/xkaper001/orgs", + "repos_url": "https://api.github.com/users/xkaper001/repos", + "events_url": "https://api.github.com/users/xkaper001/events{/privacy}", + "received_events_url": "https://api.github.com/users/xkaper001/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 50 + }, + { + "login": "AyaNady17", + "id": 144162711, + "node_id": "U_kgDOCJe_lw", + "avatar_url": "https://avatars.githubusercontent.com/u/144162711?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AyaNady17", + "html_url": "https://github.com/AyaNady17", + "followers_url": "https://api.github.com/users/AyaNady17/followers", + "following_url": "https://api.github.com/users/AyaNady17/following{/other_user}", + "gists_url": "https://api.github.com/users/AyaNady17/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AyaNady17/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AyaNady17/subscriptions", + "organizations_url": "https://api.github.com/users/AyaNady17/orgs", + "repos_url": "https://api.github.com/users/AyaNady17/repos", + "events_url": "https://api.github.com/users/AyaNady17/events{/privacy}", + "received_events_url": "https://api.github.com/users/AyaNady17/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 47 + }, + { + "login": "jddeep", + "id": 43133646, + "node_id": "MDQ6VXNlcjQzMTMzNjQ2", + "avatar_url": "https://avatars.githubusercontent.com/u/43133646?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jddeep", + "html_url": "https://github.com/jddeep", + "followers_url": "https://api.github.com/users/jddeep/followers", + "following_url": "https://api.github.com/users/jddeep/following{/other_user}", + "gists_url": "https://api.github.com/users/jddeep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jddeep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jddeep/subscriptions", + "organizations_url": "https://api.github.com/users/jddeep/orgs", + "repos_url": "https://api.github.com/users/jddeep/repos", + "events_url": "https://api.github.com/users/jddeep/events{/privacy}", + "received_events_url": "https://api.github.com/users/jddeep/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 37 + }, + { + "login": "0xAdiyat", + "id": 67780459, + "node_id": "MDQ6VXNlcjY3NzgwNDU5", + "avatar_url": "https://avatars.githubusercontent.com/u/67780459?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xAdiyat", + "html_url": "https://github.com/0xAdiyat", + "followers_url": "https://api.github.com/users/0xAdiyat/followers", + "following_url": "https://api.github.com/users/0xAdiyat/following{/other_user}", + "gists_url": "https://api.github.com/users/0xAdiyat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xAdiyat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xAdiyat/subscriptions", + "organizations_url": "https://api.github.com/users/0xAdiyat/orgs", + "repos_url": "https://api.github.com/users/0xAdiyat/repos", + "events_url": "https://api.github.com/users/0xAdiyat/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xAdiyat/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 34 + }, + { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false, + "contributions": 33 + }, + { + "login": "uju09", + "id": 191013708, + "node_id": "U_kgDOC2KjTA", + "avatar_url": "https://avatars.githubusercontent.com/u/191013708?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/uju09", + "html_url": "https://github.com/uju09", + "followers_url": "https://api.github.com/users/uju09/followers", + "following_url": "https://api.github.com/users/uju09/following{/other_user}", + "gists_url": "https://api.github.com/users/uju09/gists{/gist_id}", + "starred_url": "https://api.github.com/users/uju09/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/uju09/subscriptions", + "organizations_url": "https://api.github.com/users/uju09/orgs", + "repos_url": "https://api.github.com/users/uju09/repos", + "events_url": "https://api.github.com/users/uju09/events{/privacy}", + "received_events_url": "https://api.github.com/users/uju09/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 29 + }, + { + "login": "ShivamMenda", + "id": 74780977, + "node_id": "MDQ6VXNlcjc0NzgwOTc3", + "avatar_url": "https://avatars.githubusercontent.com/u/74780977?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ShivamMenda", + "html_url": "https://github.com/ShivamMenda", + "followers_url": "https://api.github.com/users/ShivamMenda/followers", + "following_url": "https://api.github.com/users/ShivamMenda/following{/other_user}", + "gists_url": "https://api.github.com/users/ShivamMenda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ShivamMenda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ShivamMenda/subscriptions", + "organizations_url": "https://api.github.com/users/ShivamMenda/orgs", + "repos_url": "https://api.github.com/users/ShivamMenda/repos", + "events_url": "https://api.github.com/users/ShivamMenda/events{/privacy}", + "received_events_url": "https://api.github.com/users/ShivamMenda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 27 + }, + { + "login": "puneethkumar18", + "id": 119596819, + "node_id": "U_kgDOByDnEw", + "avatar_url": "https://avatars.githubusercontent.com/u/119596819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/puneethkumar18", + "html_url": "https://github.com/puneethkumar18", + "followers_url": "https://api.github.com/users/puneethkumar18/followers", + "following_url": "https://api.github.com/users/puneethkumar18/following{/other_user}", + "gists_url": "https://api.github.com/users/puneethkumar18/gists{/gist_id}", + "starred_url": "https://api.github.com/users/puneethkumar18/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/puneethkumar18/subscriptions", + "organizations_url": "https://api.github.com/users/puneethkumar18/orgs", + "repos_url": "https://api.github.com/users/puneethkumar18/repos", + "events_url": "https://api.github.com/users/puneethkumar18/events{/privacy}", + "received_events_url": "https://api.github.com/users/puneethkumar18/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 20 + }, + { + "login": "ARYPROGRAMMER", + "id": 75311742, + "node_id": "MDQ6VXNlcjc1MzExNzQy", + "avatar_url": "https://avatars.githubusercontent.com/u/75311742?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ARYPROGRAMMER", + "html_url": "https://github.com/ARYPROGRAMMER", + "followers_url": "https://api.github.com/users/ARYPROGRAMMER/followers", + "following_url": "https://api.github.com/users/ARYPROGRAMMER/following{/other_user}", + "gists_url": "https://api.github.com/users/ARYPROGRAMMER/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ARYPROGRAMMER/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ARYPROGRAMMER/subscriptions", + "organizations_url": "https://api.github.com/users/ARYPROGRAMMER/orgs", + "repos_url": "https://api.github.com/users/ARYPROGRAMMER/repos", + "events_url": "https://api.github.com/users/ARYPROGRAMMER/events{/privacy}", + "received_events_url": "https://api.github.com/users/ARYPROGRAMMER/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "4555jan", + "id": 119113736, + "node_id": "U_kgDOBxmICA", + "avatar_url": "https://avatars.githubusercontent.com/u/119113736?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/4555jan", + "html_url": "https://github.com/4555jan", + "followers_url": "https://api.github.com/users/4555jan/followers", + "following_url": "https://api.github.com/users/4555jan/following{/other_user}", + "gists_url": "https://api.github.com/users/4555jan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/4555jan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/4555jan/subscriptions", + "organizations_url": "https://api.github.com/users/4555jan/orgs", + "repos_url": "https://api.github.com/users/4555jan/repos", + "events_url": "https://api.github.com/users/4555jan/events{/privacy}", + "received_events_url": "https://api.github.com/users/4555jan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "asmitvimal-cred", + "id": 146125121, + "node_id": "U_kgDOCLWxQQ", + "avatar_url": "https://avatars.githubusercontent.com/u/146125121?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/asmitvimal-cred", + "html_url": "https://github.com/asmitvimal-cred", + "followers_url": "https://api.github.com/users/asmitvimal-cred/followers", + "following_url": "https://api.github.com/users/asmitvimal-cred/following{/other_user}", + "gists_url": "https://api.github.com/users/asmitvimal-cred/gists{/gist_id}", + "starred_url": "https://api.github.com/users/asmitvimal-cred/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/asmitvimal-cred/subscriptions", + "organizations_url": "https://api.github.com/users/asmitvimal-cred/orgs", + "repos_url": "https://api.github.com/users/asmitvimal-cred/repos", + "events_url": "https://api.github.com/users/asmitvimal-cred/events{/privacy}", + "received_events_url": "https://api.github.com/users/asmitvimal-cred/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 15 + }, + { + "login": "JuanitaCathy", + "id": 114871036, + "node_id": "U_kgDOBtjK_A", + "avatar_url": "https://avatars.githubusercontent.com/u/114871036?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JuanitaCathy", + "html_url": "https://github.com/JuanitaCathy", + "followers_url": "https://api.github.com/users/JuanitaCathy/followers", + "following_url": "https://api.github.com/users/JuanitaCathy/following{/other_user}", + "gists_url": "https://api.github.com/users/JuanitaCathy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JuanitaCathy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JuanitaCathy/subscriptions", + "organizations_url": "https://api.github.com/users/JuanitaCathy/orgs", + "repos_url": "https://api.github.com/users/JuanitaCathy/repos", + "events_url": "https://api.github.com/users/JuanitaCathy/events{/privacy}", + "received_events_url": "https://api.github.com/users/JuanitaCathy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 15 + }, + { + "login": "Sharma-Ji-21", + "id": 177863043, + "node_id": "U_kgDOCpn5gw", + "avatar_url": "https://avatars.githubusercontent.com/u/177863043?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Sharma-Ji-21", + "html_url": "https://github.com/Sharma-Ji-21", + "followers_url": "https://api.github.com/users/Sharma-Ji-21/followers", + "following_url": "https://api.github.com/users/Sharma-Ji-21/following{/other_user}", + "gists_url": "https://api.github.com/users/Sharma-Ji-21/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Sharma-Ji-21/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Sharma-Ji-21/subscriptions", + "organizations_url": "https://api.github.com/users/Sharma-Ji-21/orgs", + "repos_url": "https://api.github.com/users/Sharma-Ji-21/repos", + "events_url": "https://api.github.com/users/Sharma-Ji-21/events{/privacy}", + "received_events_url": "https://api.github.com/users/Sharma-Ji-21/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 14 + }, + { + "login": "TheGoodUser", + "id": 121678476, + "node_id": "U_kgDOB0CqjA", + "avatar_url": "https://avatars.githubusercontent.com/u/121678476?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/TheGoodUser", + "html_url": "https://github.com/TheGoodUser", + "followers_url": "https://api.github.com/users/TheGoodUser/followers", + "following_url": "https://api.github.com/users/TheGoodUser/following{/other_user}", + "gists_url": "https://api.github.com/users/TheGoodUser/gists{/gist_id}", + "starred_url": "https://api.github.com/users/TheGoodUser/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/TheGoodUser/subscriptions", + "organizations_url": "https://api.github.com/users/TheGoodUser/orgs", + "repos_url": "https://api.github.com/users/TheGoodUser/repos", + "events_url": "https://api.github.com/users/TheGoodUser/events{/privacy}", + "received_events_url": "https://api.github.com/users/TheGoodUser/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 12 + }, + { + "login": "yuvikaaaaaa", + "id": 154015713, + "node_id": "U_kgDOCS4X4Q", + "avatar_url": "https://avatars.githubusercontent.com/u/154015713?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/yuvikaaaaaa", + "html_url": "https://github.com/yuvikaaaaaa", + "followers_url": "https://api.github.com/users/yuvikaaaaaa/followers", + "following_url": "https://api.github.com/users/yuvikaaaaaa/following{/other_user}", + "gists_url": "https://api.github.com/users/yuvikaaaaaa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yuvikaaaaaa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yuvikaaaaaa/subscriptions", + "organizations_url": "https://api.github.com/users/yuvikaaaaaa/orgs", + "repos_url": "https://api.github.com/users/yuvikaaaaaa/repos", + "events_url": "https://api.github.com/users/yuvikaaaaaa/events{/privacy}", + "received_events_url": "https://api.github.com/users/yuvikaaaaaa/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "AKASHANGADII", + "id": 81625153, + "node_id": "MDQ6VXNlcjgxNjI1MTUz", + "avatar_url": "https://avatars.githubusercontent.com/u/81625153?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AKASHANGADII", + "html_url": "https://github.com/AKASHANGADII", + "followers_url": "https://api.github.com/users/AKASHANGADII/followers", + "following_url": "https://api.github.com/users/AKASHANGADII/following{/other_user}", + "gists_url": "https://api.github.com/users/AKASHANGADII/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AKASHANGADII/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AKASHANGADII/subscriptions", + "organizations_url": "https://api.github.com/users/AKASHANGADII/orgs", + "repos_url": "https://api.github.com/users/AKASHANGADII/repos", + "events_url": "https://api.github.com/users/AKASHANGADII/events{/privacy}", + "received_events_url": "https://api.github.com/users/AKASHANGADII/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 10 + }, + { + "login": "ShamanthOP", + "id": 69506046, + "node_id": "MDQ6VXNlcjY5NTA2MDQ2", + "avatar_url": "https://avatars.githubusercontent.com/u/69506046?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ShamanthOP", + "html_url": "https://github.com/ShamanthOP", + "followers_url": "https://api.github.com/users/ShamanthOP/followers", + "following_url": "https://api.github.com/users/ShamanthOP/following{/other_user}", + "gists_url": "https://api.github.com/users/ShamanthOP/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ShamanthOP/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ShamanthOP/subscriptions", + "organizations_url": "https://api.github.com/users/ShamanthOP/orgs", + "repos_url": "https://api.github.com/users/ShamanthOP/repos", + "events_url": "https://api.github.com/users/ShamanthOP/events{/privacy}", + "received_events_url": "https://api.github.com/users/ShamanthOP/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 9 + }, + { + "login": "bhawesh2002", + "id": 55053472, + "node_id": "MDQ6VXNlcjU1MDUzNDcy", + "avatar_url": "https://avatars.githubusercontent.com/u/55053472?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhawesh2002", + "html_url": "https://github.com/bhawesh2002", + "followers_url": "https://api.github.com/users/bhawesh2002/followers", + "following_url": "https://api.github.com/users/bhawesh2002/following{/other_user}", + "gists_url": "https://api.github.com/users/bhawesh2002/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhawesh2002/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhawesh2002/subscriptions", + "organizations_url": "https://api.github.com/users/bhawesh2002/orgs", + "repos_url": "https://api.github.com/users/bhawesh2002/repos", + "events_url": "https://api.github.com/users/bhawesh2002/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhawesh2002/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "MrBooring", + "id": 110709126, + "node_id": "U_kgDOBplJhg", + "avatar_url": "https://avatars.githubusercontent.com/u/110709126?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MrBooring", + "html_url": "https://github.com/MrBooring", + "followers_url": "https://api.github.com/users/MrBooring/followers", + "following_url": "https://api.github.com/users/MrBooring/following{/other_user}", + "gists_url": "https://api.github.com/users/MrBooring/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MrBooring/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MrBooring/subscriptions", + "organizations_url": "https://api.github.com/users/MrBooring/orgs", + "repos_url": "https://api.github.com/users/MrBooring/repos", + "events_url": "https://api.github.com/users/MrBooring/events{/privacy}", + "received_events_url": "https://api.github.com/users/MrBooring/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "kareemabdeen", + "id": 118139061, + "node_id": "U_kgDOBwqotQ", + "avatar_url": "https://avatars.githubusercontent.com/u/118139061?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kareemabdeen", + "html_url": "https://github.com/kareemabdeen", + "followers_url": "https://api.github.com/users/kareemabdeen/followers", + "following_url": "https://api.github.com/users/kareemabdeen/following{/other_user}", + "gists_url": "https://api.github.com/users/kareemabdeen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kareemabdeen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kareemabdeen/subscriptions", + "organizations_url": "https://api.github.com/users/kareemabdeen/orgs", + "repos_url": "https://api.github.com/users/kareemabdeen/repos", + "events_url": "https://api.github.com/users/kareemabdeen/events{/privacy}", + "received_events_url": "https://api.github.com/users/kareemabdeen/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 6 + }, + { + "login": "Anushreebasics", + "id": 122273783, + "node_id": "U_kgDOB0m_9w", + "avatar_url": "https://avatars.githubusercontent.com/u/122273783?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Anushreebasics", + "html_url": "https://github.com/Anushreebasics", + "followers_url": "https://api.github.com/users/Anushreebasics/followers", + "following_url": "https://api.github.com/users/Anushreebasics/following{/other_user}", + "gists_url": "https://api.github.com/users/Anushreebasics/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Anushreebasics/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Anushreebasics/subscriptions", + "organizations_url": "https://api.github.com/users/Anushreebasics/orgs", + "repos_url": "https://api.github.com/users/Anushreebasics/repos", + "events_url": "https://api.github.com/users/Anushreebasics/events{/privacy}", + "received_events_url": "https://api.github.com/users/Anushreebasics/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 6 + }, + { + "login": "bhoomikshetty", + "id": 76581406, + "node_id": "MDQ6VXNlcjc2NTgxNDA2", + "avatar_url": "https://avatars.githubusercontent.com/u/76581406?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhoomikshetty", + "html_url": "https://github.com/bhoomikshetty", + "followers_url": "https://api.github.com/users/bhoomikshetty/followers", + "following_url": "https://api.github.com/users/bhoomikshetty/following{/other_user}", + "gists_url": "https://api.github.com/users/bhoomikshetty/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhoomikshetty/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhoomikshetty/subscriptions", + "organizations_url": "https://api.github.com/users/bhoomikshetty/orgs", + "repos_url": "https://api.github.com/users/bhoomikshetty/repos", + "events_url": "https://api.github.com/users/bhoomikshetty/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhoomikshetty/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "Shweta-281", + "id": 144674061, + "node_id": "U_kgDOCJ-NDQ", + "avatar_url": "https://avatars.githubusercontent.com/u/144674061?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shweta-281", + "html_url": "https://github.com/Shweta-281", + "followers_url": "https://api.github.com/users/Shweta-281/followers", + "following_url": "https://api.github.com/users/Shweta-281/following{/other_user}", + "gists_url": "https://api.github.com/users/Shweta-281/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shweta-281/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shweta-281/subscriptions", + "organizations_url": "https://api.github.com/users/Shweta-281/orgs", + "repos_url": "https://api.github.com/users/Shweta-281/repos", + "events_url": "https://api.github.com/users/Shweta-281/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shweta-281/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "vanshambansal", + "id": 170827871, + "node_id": "U_kgDOCi6gXw", + "avatar_url": "https://avatars.githubusercontent.com/u/170827871?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vanshambansal", + "html_url": "https://github.com/vanshambansal", + "followers_url": "https://api.github.com/users/vanshambansal/followers", + "following_url": "https://api.github.com/users/vanshambansal/following{/other_user}", + "gists_url": "https://api.github.com/users/vanshambansal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vanshambansal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vanshambansal/subscriptions", + "organizations_url": "https://api.github.com/users/vanshambansal/orgs", + "repos_url": "https://api.github.com/users/vanshambansal/repos", + "events_url": "https://api.github.com/users/vanshambansal/events{/privacy}", + "received_events_url": "https://api.github.com/users/vanshambansal/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "SimardeepSingh1450", + "id": 92221517, + "node_id": "U_kgDOBX8wTQ", + "avatar_url": "https://avatars.githubusercontent.com/u/92221517?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SimardeepSingh1450", + "html_url": "https://github.com/SimardeepSingh1450", + "followers_url": "https://api.github.com/users/SimardeepSingh1450/followers", + "following_url": "https://api.github.com/users/SimardeepSingh1450/following{/other_user}", + "gists_url": "https://api.github.com/users/SimardeepSingh1450/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SimardeepSingh1450/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SimardeepSingh1450/subscriptions", + "organizations_url": "https://api.github.com/users/SimardeepSingh1450/orgs", + "repos_url": "https://api.github.com/users/SimardeepSingh1450/repos", + "events_url": "https://api.github.com/users/SimardeepSingh1450/events{/privacy}", + "received_events_url": "https://api.github.com/users/SimardeepSingh1450/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Aditya062003", + "id": 102402625, + "node_id": "U_kgDOBhqKQQ", + "avatar_url": "https://avatars.githubusercontent.com/u/102402625?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya062003", + "html_url": "https://github.com/Aditya062003", + "followers_url": "https://api.github.com/users/Aditya062003/followers", + "following_url": "https://api.github.com/users/Aditya062003/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya062003/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya062003/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya062003/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya062003/orgs", + "repos_url": "https://api.github.com/users/Aditya062003/repos", + "events_url": "https://api.github.com/users/Aditya062003/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya062003/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "arice77", + "id": 92450890, + "node_id": "U_kgDOBYKwSg", + "avatar_url": "https://avatars.githubusercontent.com/u/92450890?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/arice77", + "html_url": "https://github.com/arice77", + "followers_url": "https://api.github.com/users/arice77/followers", + "following_url": "https://api.github.com/users/arice77/following{/other_user}", + "gists_url": "https://api.github.com/users/arice77/gists{/gist_id}", + "starred_url": "https://api.github.com/users/arice77/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/arice77/subscriptions", + "organizations_url": "https://api.github.com/users/arice77/orgs", + "repos_url": "https://api.github.com/users/arice77/repos", + "events_url": "https://api.github.com/users/arice77/events{/privacy}", + "received_events_url": "https://api.github.com/users/arice77/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "xonx4l", + "id": 119700621, + "node_id": "U_kgDOByJ8jQ", + "avatar_url": "https://avatars.githubusercontent.com/u/119700621?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/xonx4l", + "html_url": "https://github.com/xonx4l", + "followers_url": "https://api.github.com/users/xonx4l/followers", + "following_url": "https://api.github.com/users/xonx4l/following{/other_user}", + "gists_url": "https://api.github.com/users/xonx4l/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xonx4l/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xonx4l/subscriptions", + "organizations_url": "https://api.github.com/users/xonx4l/orgs", + "repos_url": "https://api.github.com/users/xonx4l/repos", + "events_url": "https://api.github.com/users/xonx4l/events{/privacy}", + "received_events_url": "https://api.github.com/users/xonx4l/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "ThienNg65", + "id": 112293169, + "node_id": "U_kgDOBrF1MQ", + "avatar_url": "https://avatars.githubusercontent.com/u/112293169?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ThienNg65", + "html_url": "https://github.com/ThienNg65", + "followers_url": "https://api.github.com/users/ThienNg65/followers", + "following_url": "https://api.github.com/users/ThienNg65/following{/other_user}", + "gists_url": "https://api.github.com/users/ThienNg65/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ThienNg65/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ThienNg65/subscriptions", + "organizations_url": "https://api.github.com/users/ThienNg65/orgs", + "repos_url": "https://api.github.com/users/ThienNg65/repos", + "events_url": "https://api.github.com/users/ThienNg65/events{/privacy}", + "received_events_url": "https://api.github.com/users/ThienNg65/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "shwetd19", + "id": 119885670, + "node_id": "U_kgDOByVPZg", + "avatar_url": "https://avatars.githubusercontent.com/u/119885670?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shwetd19", + "html_url": "https://github.com/shwetd19", + "followers_url": "https://api.github.com/users/shwetd19/followers", + "following_url": "https://api.github.com/users/shwetd19/following{/other_user}", + "gists_url": "https://api.github.com/users/shwetd19/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shwetd19/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shwetd19/subscriptions", + "organizations_url": "https://api.github.com/users/shwetd19/orgs", + "repos_url": "https://api.github.com/users/shwetd19/repos", + "events_url": "https://api.github.com/users/shwetd19/events{/privacy}", + "received_events_url": "https://api.github.com/users/shwetd19/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "sandy4242", + "id": 152861071, + "node_id": "U_kgDOCRx5jw", + "avatar_url": "https://avatars.githubusercontent.com/u/152861071?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sandy4242", + "html_url": "https://github.com/sandy4242", + "followers_url": "https://api.github.com/users/sandy4242/followers", + "following_url": "https://api.github.com/users/sandy4242/following{/other_user}", + "gists_url": "https://api.github.com/users/sandy4242/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sandy4242/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sandy4242/subscriptions", + "organizations_url": "https://api.github.com/users/sandy4242/orgs", + "repos_url": "https://api.github.com/users/sandy4242/repos", + "events_url": "https://api.github.com/users/sandy4242/events{/privacy}", + "received_events_url": "https://api.github.com/users/sandy4242/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "NishchayShakya1", + "id": 79781577, + "node_id": "MDQ6VXNlcjc5NzgxNTc3", + "avatar_url": "https://avatars.githubusercontent.com/u/79781577?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NishchayShakya1", + "html_url": "https://github.com/NishchayShakya1", + "followers_url": "https://api.github.com/users/NishchayShakya1/followers", + "following_url": "https://api.github.com/users/NishchayShakya1/following{/other_user}", + "gists_url": "https://api.github.com/users/NishchayShakya1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NishchayShakya1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NishchayShakya1/subscriptions", + "organizations_url": "https://api.github.com/users/NishchayShakya1/orgs", + "repos_url": "https://api.github.com/users/NishchayShakya1/repos", + "events_url": "https://api.github.com/users/NishchayShakya1/events{/privacy}", + "received_events_url": "https://api.github.com/users/NishchayShakya1/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "SharmaDhruv2511", + "id": 102755411, + "node_id": "U_kgDOBh_sUw", + "avatar_url": "https://avatars.githubusercontent.com/u/102755411?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SharmaDhruv2511", + "html_url": "https://github.com/SharmaDhruv2511", + "followers_url": "https://api.github.com/users/SharmaDhruv2511/followers", + "following_url": "https://api.github.com/users/SharmaDhruv2511/following{/other_user}", + "gists_url": "https://api.github.com/users/SharmaDhruv2511/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SharmaDhruv2511/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SharmaDhruv2511/subscriptions", + "organizations_url": "https://api.github.com/users/SharmaDhruv2511/orgs", + "repos_url": "https://api.github.com/users/SharmaDhruv2511/repos", + "events_url": "https://api.github.com/users/SharmaDhruv2511/events{/privacy}", + "received_events_url": "https://api.github.com/users/SharmaDhruv2511/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Charan-BS", + "id": 128631171, + "node_id": "U_kgDOB6rBgw", + "avatar_url": "https://avatars.githubusercontent.com/u/128631171?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Charan-BS", + "html_url": "https://github.com/Charan-BS", + "followers_url": "https://api.github.com/users/Charan-BS/followers", + "following_url": "https://api.github.com/users/Charan-BS/following{/other_user}", + "gists_url": "https://api.github.com/users/Charan-BS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Charan-BS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Charan-BS/subscriptions", + "organizations_url": "https://api.github.com/users/Charan-BS/orgs", + "repos_url": "https://api.github.com/users/Charan-BS/repos", + "events_url": "https://api.github.com/users/Charan-BS/events{/privacy}", + "received_events_url": "https://api.github.com/users/Charan-BS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "theadityaagnihotri", + "id": 95487342, + "node_id": "U_kgDOBbEFbg", + "avatar_url": "https://avatars.githubusercontent.com/u/95487342?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/theadityaagnihotri", + "html_url": "https://github.com/theadityaagnihotri", + "followers_url": "https://api.github.com/users/theadityaagnihotri/followers", + "following_url": "https://api.github.com/users/theadityaagnihotri/following{/other_user}", + "gists_url": "https://api.github.com/users/theadityaagnihotri/gists{/gist_id}", + "starred_url": "https://api.github.com/users/theadityaagnihotri/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/theadityaagnihotri/subscriptions", + "organizations_url": "https://api.github.com/users/theadityaagnihotri/orgs", + "repos_url": "https://api.github.com/users/theadityaagnihotri/repos", + "events_url": "https://api.github.com/users/theadityaagnihotri/events{/privacy}", + "received_events_url": "https://api.github.com/users/theadityaagnihotri/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "HimaTeju", + "id": 90406478, + "node_id": "MDQ6VXNlcjkwNDA2NDc4", + "avatar_url": "https://avatars.githubusercontent.com/u/90406478?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/HimaTeju", + "html_url": "https://github.com/HimaTeju", + "followers_url": "https://api.github.com/users/HimaTeju/followers", + "following_url": "https://api.github.com/users/HimaTeju/following{/other_user}", + "gists_url": "https://api.github.com/users/HimaTeju/gists{/gist_id}", + "starred_url": "https://api.github.com/users/HimaTeju/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/HimaTeju/subscriptions", + "organizations_url": "https://api.github.com/users/HimaTeju/orgs", + "repos_url": "https://api.github.com/users/HimaTeju/repos", + "events_url": "https://api.github.com/users/HimaTeju/events{/privacy}", + "received_events_url": "https://api.github.com/users/HimaTeju/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Jhalakupadhyay", + "id": 89909502, + "node_id": "MDQ6VXNlcjg5OTA5NTAy", + "avatar_url": "https://avatars.githubusercontent.com/u/89909502?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jhalakupadhyay", + "html_url": "https://github.com/Jhalakupadhyay", + "followers_url": "https://api.github.com/users/Jhalakupadhyay/followers", + "following_url": "https://api.github.com/users/Jhalakupadhyay/following{/other_user}", + "gists_url": "https://api.github.com/users/Jhalakupadhyay/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jhalakupadhyay/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jhalakupadhyay/subscriptions", + "organizations_url": "https://api.github.com/users/Jhalakupadhyay/orgs", + "repos_url": "https://api.github.com/users/Jhalakupadhyay/repos", + "events_url": "https://api.github.com/users/Jhalakupadhyay/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jhalakupadhyay/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Naman-30903", + "id": 85550236, + "node_id": "MDQ6VXNlcjg1NTUwMjM2", + "avatar_url": "https://avatars.githubusercontent.com/u/85550236?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Naman-30903", + "html_url": "https://github.com/Naman-30903", + "followers_url": "https://api.github.com/users/Naman-30903/followers", + "following_url": "https://api.github.com/users/Naman-30903/following{/other_user}", + "gists_url": "https://api.github.com/users/Naman-30903/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Naman-30903/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Naman-30903/subscriptions", + "organizations_url": "https://api.github.com/users/Naman-30903/orgs", + "repos_url": "https://api.github.com/users/Naman-30903/repos", + "events_url": "https://api.github.com/users/Naman-30903/events{/privacy}", + "received_events_url": "https://api.github.com/users/Naman-30903/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "amanraval76593", + "id": 136071018, + "node_id": "U_kgDOCBxHag", + "avatar_url": "https://avatars.githubusercontent.com/u/136071018?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/amanraval76593", + "html_url": "https://github.com/amanraval76593", + "followers_url": "https://api.github.com/users/amanraval76593/followers", + "following_url": "https://api.github.com/users/amanraval76593/following{/other_user}", + "gists_url": "https://api.github.com/users/amanraval76593/gists{/gist_id}", + "starred_url": "https://api.github.com/users/amanraval76593/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/amanraval76593/subscriptions", + "organizations_url": "https://api.github.com/users/amanraval76593/orgs", + "repos_url": "https://api.github.com/users/amanraval76593/repos", + "events_url": "https://api.github.com/users/amanraval76593/events{/privacy}", + "received_events_url": "https://api.github.com/users/amanraval76593/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "animeshchaudhri", + "id": 111721851, + "node_id": "U_kgDOBqi9ew", + "avatar_url": "https://avatars.githubusercontent.com/u/111721851?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/animeshchaudhri", + "html_url": "https://github.com/animeshchaudhri", + "followers_url": "https://api.github.com/users/animeshchaudhri/followers", + "following_url": "https://api.github.com/users/animeshchaudhri/following{/other_user}", + "gists_url": "https://api.github.com/users/animeshchaudhri/gists{/gist_id}", + "starred_url": "https://api.github.com/users/animeshchaudhri/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/animeshchaudhri/subscriptions", + "organizations_url": "https://api.github.com/users/animeshchaudhri/orgs", + "repos_url": "https://api.github.com/users/animeshchaudhri/repos", + "events_url": "https://api.github.com/users/animeshchaudhri/events{/privacy}", + "received_events_url": "https://api.github.com/users/animeshchaudhri/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Md-hayath", + "id": 160020427, + "node_id": "U_kgDOCYm3yw", + "avatar_url": "https://avatars.githubusercontent.com/u/160020427?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Md-hayath", + "html_url": "https://github.com/Md-hayath", + "followers_url": "https://api.github.com/users/Md-hayath/followers", + "following_url": "https://api.github.com/users/Md-hayath/following{/other_user}", + "gists_url": "https://api.github.com/users/Md-hayath/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Md-hayath/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Md-hayath/subscriptions", + "organizations_url": "https://api.github.com/users/Md-hayath/orgs", + "repos_url": "https://api.github.com/users/Md-hayath/repos", + "events_url": "https://api.github.com/users/Md-hayath/events{/privacy}", + "received_events_url": "https://api.github.com/users/Md-hayath/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "notpritam", + "id": 119423845, + "node_id": "U_kgDOBx5DZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/119423845?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/notpritam", + "html_url": "https://github.com/notpritam", + "followers_url": "https://api.github.com/users/notpritam/followers", + "following_url": "https://api.github.com/users/notpritam/following{/other_user}", + "gists_url": "https://api.github.com/users/notpritam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notpritam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notpritam/subscriptions", + "organizations_url": "https://api.github.com/users/notpritam/orgs", + "repos_url": "https://api.github.com/users/notpritam/repos", + "events_url": "https://api.github.com/users/notpritam/events{/privacy}", + "received_events_url": "https://api.github.com/users/notpritam/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "r1n1os", + "id": 32699540, + "node_id": "MDQ6VXNlcjMyNjk5NTQw", + "avatar_url": "https://avatars.githubusercontent.com/u/32699540?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/r1n1os", + "html_url": "https://github.com/r1n1os", + "followers_url": "https://api.github.com/users/r1n1os/followers", + "following_url": "https://api.github.com/users/r1n1os/following{/other_user}", + "gists_url": "https://api.github.com/users/r1n1os/gists{/gist_id}", + "starred_url": "https://api.github.com/users/r1n1os/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/r1n1os/subscriptions", + "organizations_url": "https://api.github.com/users/r1n1os/orgs", + "repos_url": "https://api.github.com/users/r1n1os/repos", + "events_url": "https://api.github.com/users/r1n1os/events{/privacy}", + "received_events_url": "https://api.github.com/users/r1n1os/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "EduAid": [ + { + "login": "Aditya062003", + "id": 102402625, + "node_id": "U_kgDOBhqKQQ", + "avatar_url": "https://avatars.githubusercontent.com/u/102402625?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya062003", + "html_url": "https://github.com/Aditya062003", + "followers_url": "https://api.github.com/users/Aditya062003/followers", + "following_url": "https://api.github.com/users/Aditya062003/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya062003/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya062003/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya062003/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya062003/orgs", + "repos_url": "https://api.github.com/users/Aditya062003/repos", + "events_url": "https://api.github.com/users/Aditya062003/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya062003/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 26 + }, + { + "login": "yatikakain", + "id": 169523142, + "node_id": "U_kgDOChq3xg", + "avatar_url": "https://avatars.githubusercontent.com/u/169523142?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/yatikakain", + "html_url": "https://github.com/yatikakain", + "followers_url": "https://api.github.com/users/yatikakain/followers", + "following_url": "https://api.github.com/users/yatikakain/following{/other_user}", + "gists_url": "https://api.github.com/users/yatikakain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yatikakain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yatikakain/subscriptions", + "organizations_url": "https://api.github.com/users/yatikakain/orgs", + "repos_url": "https://api.github.com/users/yatikakain/repos", + "events_url": "https://api.github.com/users/yatikakain/events{/privacy}", + "received_events_url": "https://api.github.com/users/yatikakain/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 21 + }, + { + "login": "prarabdhshukla", + "id": 87240342, + "node_id": "MDQ6VXNlcjg3MjQwMzQy", + "avatar_url": "https://avatars.githubusercontent.com/u/87240342?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prarabdhshukla", + "html_url": "https://github.com/prarabdhshukla", + "followers_url": "https://api.github.com/users/prarabdhshukla/followers", + "following_url": "https://api.github.com/users/prarabdhshukla/following{/other_user}", + "gists_url": "https://api.github.com/users/prarabdhshukla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prarabdhshukla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prarabdhshukla/subscriptions", + "organizations_url": "https://api.github.com/users/prarabdhshukla/orgs", + "repos_url": "https://api.github.com/users/prarabdhshukla/repos", + "events_url": "https://api.github.com/users/prarabdhshukla/events{/privacy}", + "received_events_url": "https://api.github.com/users/prarabdhshukla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 19 + }, + { + "login": "Roaster05", + "id": 100672872, + "node_id": "U_kgDOBgAlaA", + "avatar_url": "https://avatars.githubusercontent.com/u/100672872?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Roaster05", + "html_url": "https://github.com/Roaster05", + "followers_url": "https://api.github.com/users/Roaster05/followers", + "following_url": "https://api.github.com/users/Roaster05/following{/other_user}", + "gists_url": "https://api.github.com/users/Roaster05/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Roaster05/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Roaster05/subscriptions", + "organizations_url": "https://api.github.com/users/Roaster05/orgs", + "repos_url": "https://api.github.com/users/Roaster05/repos", + "events_url": "https://api.github.com/users/Roaster05/events{/privacy}", + "received_events_url": "https://api.github.com/users/Roaster05/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 19 + }, + { + "login": "jayydevs", + "id": 229104396, + "node_id": "U_kgDODafbDA", + "avatar_url": "https://avatars.githubusercontent.com/u/229104396?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jayydevs", + "html_url": "https://github.com/jayydevs", + "followers_url": "https://api.github.com/users/jayydevs/followers", + "following_url": "https://api.github.com/users/jayydevs/following{/other_user}", + "gists_url": "https://api.github.com/users/jayydevs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jayydevs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jayydevs/subscriptions", + "organizations_url": "https://api.github.com/users/jayydevs/orgs", + "repos_url": "https://api.github.com/users/jayydevs/repos", + "events_url": "https://api.github.com/users/jayydevs/events{/privacy}", + "received_events_url": "https://api.github.com/users/jayydevs/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "sakina1303", + "id": 184861570, + "node_id": "U_kgDOCwTDgg", + "avatar_url": "https://avatars.githubusercontent.com/u/184861570?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sakina1303", + "html_url": "https://github.com/sakina1303", + "followers_url": "https://api.github.com/users/sakina1303/followers", + "following_url": "https://api.github.com/users/sakina1303/following{/other_user}", + "gists_url": "https://api.github.com/users/sakina1303/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sakina1303/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sakina1303/subscriptions", + "organizations_url": "https://api.github.com/users/sakina1303/orgs", + "repos_url": "https://api.github.com/users/sakina1303/repos", + "events_url": "https://api.github.com/users/sakina1303/events{/privacy}", + "received_events_url": "https://api.github.com/users/sakina1303/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Zahnentferner", + "id": 1809436, + "node_id": "MDQ6VXNlcjE4MDk0MzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1809436?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Zahnentferner", + "html_url": "https://github.com/Zahnentferner", + "followers_url": "https://api.github.com/users/Zahnentferner/followers", + "following_url": "https://api.github.com/users/Zahnentferner/following{/other_user}", + "gists_url": "https://api.github.com/users/Zahnentferner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zahnentferner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zahnentferner/subscriptions", + "organizations_url": "https://api.github.com/users/Zahnentferner/orgs", + "repos_url": "https://api.github.com/users/Zahnentferner/repos", + "events_url": "https://api.github.com/users/Zahnentferner/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zahnentferner/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "SxBxcoder", + "id": 159655656, + "node_id": "U_kgDOCYQm6A", + "avatar_url": "https://avatars.githubusercontent.com/u/159655656?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SxBxcoder", + "html_url": "https://github.com/SxBxcoder", + "followers_url": "https://api.github.com/users/SxBxcoder/followers", + "following_url": "https://api.github.com/users/SxBxcoder/following{/other_user}", + "gists_url": "https://api.github.com/users/SxBxcoder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SxBxcoder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SxBxcoder/subscriptions", + "organizations_url": "https://api.github.com/users/SxBxcoder/orgs", + "repos_url": "https://api.github.com/users/SxBxcoder/repos", + "events_url": "https://api.github.com/users/SxBxcoder/events{/privacy}", + "received_events_url": "https://api.github.com/users/SxBxcoder/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "yugalkaushik", + "id": 138966980, + "node_id": "U_kgDOCEh3xA", + "avatar_url": "https://avatars.githubusercontent.com/u/138966980?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/yugalkaushik", + "html_url": "https://github.com/yugalkaushik", + "followers_url": "https://api.github.com/users/yugalkaushik/followers", + "following_url": "https://api.github.com/users/yugalkaushik/following{/other_user}", + "gists_url": "https://api.github.com/users/yugalkaushik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/yugalkaushik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/yugalkaushik/subscriptions", + "organizations_url": "https://api.github.com/users/yugalkaushik/orgs", + "repos_url": "https://api.github.com/users/yugalkaushik/repos", + "events_url": "https://api.github.com/users/yugalkaushik/events{/privacy}", + "received_events_url": "https://api.github.com/users/yugalkaushik/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "singhshaurya01", + "id": 222411767, + "node_id": "U_kgDODUG79w", + "avatar_url": "https://avatars.githubusercontent.com/u/222411767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/singhshaurya01", + "html_url": "https://github.com/singhshaurya01", + "followers_url": "https://api.github.com/users/singhshaurya01/followers", + "following_url": "https://api.github.com/users/singhshaurya01/following{/other_user}", + "gists_url": "https://api.github.com/users/singhshaurya01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/singhshaurya01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/singhshaurya01/subscriptions", + "organizations_url": "https://api.github.com/users/singhshaurya01/orgs", + "repos_url": "https://api.github.com/users/singhshaurya01/repos", + "events_url": "https://api.github.com/users/singhshaurya01/events{/privacy}", + "received_events_url": "https://api.github.com/users/singhshaurya01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "ansh26748ar", + "id": 89684482, + "node_id": "MDQ6VXNlcjg5Njg0NDgy", + "avatar_url": "https://avatars.githubusercontent.com/u/89684482?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ansh26748ar", + "html_url": "https://github.com/ansh26748ar", + "followers_url": "https://api.github.com/users/ansh26748ar/followers", + "following_url": "https://api.github.com/users/ansh26748ar/following{/other_user}", + "gists_url": "https://api.github.com/users/ansh26748ar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ansh26748ar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ansh26748ar/subscriptions", + "organizations_url": "https://api.github.com/users/ansh26748ar/orgs", + "repos_url": "https://api.github.com/users/ansh26748ar/repos", + "events_url": "https://api.github.com/users/ansh26748ar/events{/privacy}", + "received_events_url": "https://api.github.com/users/ansh26748ar/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "saurabh007007", + "id": 116506457, + "node_id": "U_kgDOBvG_WQ", + "avatar_url": "https://avatars.githubusercontent.com/u/116506457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/saurabh007007", + "html_url": "https://github.com/saurabh007007", + "followers_url": "https://api.github.com/users/saurabh007007/followers", + "following_url": "https://api.github.com/users/saurabh007007/following{/other_user}", + "gists_url": "https://api.github.com/users/saurabh007007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/saurabh007007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/saurabh007007/subscriptions", + "organizations_url": "https://api.github.com/users/saurabh007007/orgs", + "repos_url": "https://api.github.com/users/saurabh007007/repos", + "events_url": "https://api.github.com/users/saurabh007007/events{/privacy}", + "received_events_url": "https://api.github.com/users/saurabh007007/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Naman-B-Parlecha", + "id": 140307212, + "node_id": "U_kgDOCFzrDA", + "avatar_url": "https://avatars.githubusercontent.com/u/140307212?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Naman-B-Parlecha", + "html_url": "https://github.com/Naman-B-Parlecha", + "followers_url": "https://api.github.com/users/Naman-B-Parlecha/followers", + "following_url": "https://api.github.com/users/Naman-B-Parlecha/following{/other_user}", + "gists_url": "https://api.github.com/users/Naman-B-Parlecha/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Naman-B-Parlecha/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Naman-B-Parlecha/subscriptions", + "organizations_url": "https://api.github.com/users/Naman-B-Parlecha/orgs", + "repos_url": "https://api.github.com/users/Naman-B-Parlecha/repos", + "events_url": "https://api.github.com/users/Naman-B-Parlecha/events{/privacy}", + "received_events_url": "https://api.github.com/users/Naman-B-Parlecha/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "kartik-212004", + "id": 103111467, + "node_id": "U_kgDOBiVbKw", + "avatar_url": "https://avatars.githubusercontent.com/u/103111467?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kartik-212004", + "html_url": "https://github.com/kartik-212004", + "followers_url": "https://api.github.com/users/kartik-212004/followers", + "following_url": "https://api.github.com/users/kartik-212004/following{/other_user}", + "gists_url": "https://api.github.com/users/kartik-212004/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kartik-212004/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kartik-212004/subscriptions", + "organizations_url": "https://api.github.com/users/kartik-212004/orgs", + "repos_url": "https://api.github.com/users/kartik-212004/repos", + "events_url": "https://api.github.com/users/kartik-212004/events{/privacy}", + "received_events_url": "https://api.github.com/users/kartik-212004/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "MiHarsh", + "id": 58695010, + "node_id": "MDQ6VXNlcjU4Njk1MDEw", + "avatar_url": "https://avatars.githubusercontent.com/u/58695010?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MiHarsh", + "html_url": "https://github.com/MiHarsh", + "followers_url": "https://api.github.com/users/MiHarsh/followers", + "following_url": "https://api.github.com/users/MiHarsh/following{/other_user}", + "gists_url": "https://api.github.com/users/MiHarsh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MiHarsh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MiHarsh/subscriptions", + "organizations_url": "https://api.github.com/users/MiHarsh/orgs", + "repos_url": "https://api.github.com/users/MiHarsh/repos", + "events_url": "https://api.github.com/users/MiHarsh/events{/privacy}", + "received_events_url": "https://api.github.com/users/MiHarsh/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Ashvin-KS", + "id": 90855180, + "node_id": "MDQ6VXNlcjkwODU1MTgw", + "avatar_url": "https://avatars.githubusercontent.com/u/90855180?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ashvin-KS", + "html_url": "https://github.com/Ashvin-KS", + "followers_url": "https://api.github.com/users/Ashvin-KS/followers", + "following_url": "https://api.github.com/users/Ashvin-KS/following{/other_user}", + "gists_url": "https://api.github.com/users/Ashvin-KS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ashvin-KS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ashvin-KS/subscriptions", + "organizations_url": "https://api.github.com/users/Ashvin-KS/orgs", + "repos_url": "https://api.github.com/users/Ashvin-KS/repos", + "events_url": "https://api.github.com/users/Ashvin-KS/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ashvin-KS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Aditya30ag", + "id": 162010355, + "node_id": "U_kgDOCagU8w", + "avatar_url": "https://avatars.githubusercontent.com/u/162010355?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya30ag", + "html_url": "https://github.com/Aditya30ag", + "followers_url": "https://api.github.com/users/Aditya30ag/followers", + "following_url": "https://api.github.com/users/Aditya30ag/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya30ag/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya30ag/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya30ag/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya30ag/orgs", + "repos_url": "https://api.github.com/users/Aditya30ag/repos", + "events_url": "https://api.github.com/users/Aditya30ag/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya30ag/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Adilkhan6465", + "id": 197754617, + "node_id": "U_kgDOC8l--Q", + "avatar_url": "https://avatars.githubusercontent.com/u/197754617?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Adilkhan6465", + "html_url": "https://github.com/Adilkhan6465", + "followers_url": "https://api.github.com/users/Adilkhan6465/followers", + "following_url": "https://api.github.com/users/Adilkhan6465/following{/other_user}", + "gists_url": "https://api.github.com/users/Adilkhan6465/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Adilkhan6465/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Adilkhan6465/subscriptions", + "organizations_url": "https://api.github.com/users/Adilkhan6465/orgs", + "repos_url": "https://api.github.com/users/Adilkhan6465/repos", + "events_url": "https://api.github.com/users/Adilkhan6465/events{/privacy}", + "received_events_url": "https://api.github.com/users/Adilkhan6465/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "Website": [ + { + "login": "Zahnentferner", + "id": 1809436, + "node_id": "MDQ6VXNlcjE4MDk0MzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1809436?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Zahnentferner", + "html_url": "https://github.com/Zahnentferner", + "followers_url": "https://api.github.com/users/Zahnentferner/followers", + "following_url": "https://api.github.com/users/Zahnentferner/following{/other_user}", + "gists_url": "https://api.github.com/users/Zahnentferner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zahnentferner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zahnentferner/subscriptions", + "organizations_url": "https://api.github.com/users/Zahnentferner/orgs", + "repos_url": "https://api.github.com/users/Zahnentferner/repos", + "events_url": "https://api.github.com/users/Zahnentferner/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zahnentferner/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 89 + }, + { + "login": "jddeep", + "id": 43133646, + "node_id": "MDQ6VXNlcjQzMTMzNjQ2", + "avatar_url": "https://avatars.githubusercontent.com/u/43133646?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jddeep", + "html_url": "https://github.com/jddeep", + "followers_url": "https://api.github.com/users/jddeep/followers", + "following_url": "https://api.github.com/users/jddeep/following{/other_user}", + "gists_url": "https://api.github.com/users/jddeep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jddeep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jddeep/subscriptions", + "organizations_url": "https://api.github.com/users/jddeep/orgs", + "repos_url": "https://api.github.com/users/jddeep/repos", + "events_url": "https://api.github.com/users/jddeep/events{/privacy}", + "received_events_url": "https://api.github.com/users/jddeep/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 25 + }, + { + "login": "reach2saksham", + "id": 113931310, + "node_id": "U_kgDOBsp0Lg", + "avatar_url": "https://avatars.githubusercontent.com/u/113931310?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/reach2saksham", + "html_url": "https://github.com/reach2saksham", + "followers_url": "https://api.github.com/users/reach2saksham/followers", + "following_url": "https://api.github.com/users/reach2saksham/following{/other_user}", + "gists_url": "https://api.github.com/users/reach2saksham/gists{/gist_id}", + "starred_url": "https://api.github.com/users/reach2saksham/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/reach2saksham/subscriptions", + "organizations_url": "https://api.github.com/users/reach2saksham/orgs", + "repos_url": "https://api.github.com/users/reach2saksham/repos", + "events_url": "https://api.github.com/users/reach2saksham/events{/privacy}", + "received_events_url": "https://api.github.com/users/reach2saksham/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 20 + }, + { + "login": "blizet", + "id": 109814198, + "node_id": "U_kgDOBouhtg", + "avatar_url": "https://avatars.githubusercontent.com/u/109814198?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/blizet", + "html_url": "https://github.com/blizet", + "followers_url": "https://api.github.com/users/blizet/followers", + "following_url": "https://api.github.com/users/blizet/following{/other_user}", + "gists_url": "https://api.github.com/users/blizet/gists{/gist_id}", + "starred_url": "https://api.github.com/users/blizet/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/blizet/subscriptions", + "organizations_url": "https://api.github.com/users/blizet/orgs", + "repos_url": "https://api.github.com/users/blizet/repos", + "events_url": "https://api.github.com/users/blizet/events{/privacy}", + "received_events_url": "https://api.github.com/users/blizet/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 18 + }, + { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "ankitkr104", + "id": 179861827, + "node_id": "U_kgDOCrh5Qw", + "avatar_url": "https://avatars.githubusercontent.com/u/179861827?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankitkr104", + "html_url": "https://github.com/ankitkr104", + "followers_url": "https://api.github.com/users/ankitkr104/followers", + "following_url": "https://api.github.com/users/ankitkr104/following{/other_user}", + "gists_url": "https://api.github.com/users/ankitkr104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankitkr104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankitkr104/subscriptions", + "organizations_url": "https://api.github.com/users/ankitkr104/orgs", + "repos_url": "https://api.github.com/users/ankitkr104/repos", + "events_url": "https://api.github.com/users/ankitkr104/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankitkr104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 15 + }, + { + "login": "ManavSarkar", + "id": 42129636, + "node_id": "MDQ6VXNlcjQyMTI5NjM2", + "avatar_url": "https://avatars.githubusercontent.com/u/42129636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ManavSarkar", + "html_url": "https://github.com/ManavSarkar", + "followers_url": "https://api.github.com/users/ManavSarkar/followers", + "following_url": "https://api.github.com/users/ManavSarkar/following{/other_user}", + "gists_url": "https://api.github.com/users/ManavSarkar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ManavSarkar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ManavSarkar/subscriptions", + "organizations_url": "https://api.github.com/users/ManavSarkar/orgs", + "repos_url": "https://api.github.com/users/ManavSarkar/repos", + "events_url": "https://api.github.com/users/ManavSarkar/events{/privacy}", + "received_events_url": "https://api.github.com/users/ManavSarkar/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 14 + }, + { + "login": "reveurguy", + "id": 59417546, + "node_id": "MDQ6VXNlcjU5NDE3NTQ2", + "avatar_url": "https://avatars.githubusercontent.com/u/59417546?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/reveurguy", + "html_url": "https://github.com/reveurguy", + "followers_url": "https://api.github.com/users/reveurguy/followers", + "following_url": "https://api.github.com/users/reveurguy/following{/other_user}", + "gists_url": "https://api.github.com/users/reveurguy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/reveurguy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/reveurguy/subscriptions", + "organizations_url": "https://api.github.com/users/reveurguy/orgs", + "repos_url": "https://api.github.com/users/reveurguy/repos", + "events_url": "https://api.github.com/users/reveurguy/events{/privacy}", + "received_events_url": "https://api.github.com/users/reveurguy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 8 + }, + { + "login": "madhavansingh", + "id": 174650268, + "node_id": "U_kgDOCmjznA", + "avatar_url": "https://avatars.githubusercontent.com/u/174650268?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/madhavansingh", + "html_url": "https://github.com/madhavansingh", + "followers_url": "https://api.github.com/users/madhavansingh/followers", + "following_url": "https://api.github.com/users/madhavansingh/following{/other_user}", + "gists_url": "https://api.github.com/users/madhavansingh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/madhavansingh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/madhavansingh/subscriptions", + "organizations_url": "https://api.github.com/users/madhavansingh/orgs", + "repos_url": "https://api.github.com/users/madhavansingh/repos", + "events_url": "https://api.github.com/users/madhavansingh/events{/privacy}", + "received_events_url": "https://api.github.com/users/madhavansingh/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 8 + }, + { + "login": "chandansgowda", + "id": 41890434, + "node_id": "MDQ6VXNlcjQxODkwNDM0", + "avatar_url": "https://avatars.githubusercontent.com/u/41890434?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/chandansgowda", + "html_url": "https://github.com/chandansgowda", + "followers_url": "https://api.github.com/users/chandansgowda/followers", + "following_url": "https://api.github.com/users/chandansgowda/following{/other_user}", + "gists_url": "https://api.github.com/users/chandansgowda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chandansgowda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chandansgowda/subscriptions", + "organizations_url": "https://api.github.com/users/chandansgowda/orgs", + "repos_url": "https://api.github.com/users/chandansgowda/repos", + "events_url": "https://api.github.com/users/chandansgowda/events{/privacy}", + "received_events_url": "https://api.github.com/users/chandansgowda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 8 + }, + { + "login": "swathi2006", + "id": 149090342, + "node_id": "U_kgDOCOLwJg", + "avatar_url": "https://avatars.githubusercontent.com/u/149090342?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/swathi2006", + "html_url": "https://github.com/swathi2006", + "followers_url": "https://api.github.com/users/swathi2006/followers", + "following_url": "https://api.github.com/users/swathi2006/following{/other_user}", + "gists_url": "https://api.github.com/users/swathi2006/gists{/gist_id}", + "starred_url": "https://api.github.com/users/swathi2006/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/swathi2006/subscriptions", + "organizations_url": "https://api.github.com/users/swathi2006/orgs", + "repos_url": "https://api.github.com/users/swathi2006/repos", + "events_url": "https://api.github.com/users/swathi2006/events{/privacy}", + "received_events_url": "https://api.github.com/users/swathi2006/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 6 + }, + { + "login": "Muneerali199", + "id": 186174121, + "node_id": "U_kgDOCxjKqQ", + "avatar_url": "https://avatars.githubusercontent.com/u/186174121?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Muneerali199", + "html_url": "https://github.com/Muneerali199", + "followers_url": "https://api.github.com/users/Muneerali199/followers", + "following_url": "https://api.github.com/users/Muneerali199/following{/other_user}", + "gists_url": "https://api.github.com/users/Muneerali199/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Muneerali199/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Muneerali199/subscriptions", + "organizations_url": "https://api.github.com/users/Muneerali199/orgs", + "repos_url": "https://api.github.com/users/Muneerali199/repos", + "events_url": "https://api.github.com/users/Muneerali199/events{/privacy}", + "received_events_url": "https://api.github.com/users/Muneerali199/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "MiHarsh", + "id": 58695010, + "node_id": "MDQ6VXNlcjU4Njk1MDEw", + "avatar_url": "https://avatars.githubusercontent.com/u/58695010?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MiHarsh", + "html_url": "https://github.com/MiHarsh", + "followers_url": "https://api.github.com/users/MiHarsh/followers", + "following_url": "https://api.github.com/users/MiHarsh/following{/other_user}", + "gists_url": "https://api.github.com/users/MiHarsh/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MiHarsh/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MiHarsh/subscriptions", + "organizations_url": "https://api.github.com/users/MiHarsh/orgs", + "repos_url": "https://api.github.com/users/MiHarsh/repos", + "events_url": "https://api.github.com/users/MiHarsh/events{/privacy}", + "received_events_url": "https://api.github.com/users/MiHarsh/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "AACHAL2303PATIL", + "id": 143063155, + "node_id": "U_kgDOCIb4cw", + "avatar_url": "https://avatars.githubusercontent.com/u/143063155?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AACHAL2303PATIL", + "html_url": "https://github.com/AACHAL2303PATIL", + "followers_url": "https://api.github.com/users/AACHAL2303PATIL/followers", + "following_url": "https://api.github.com/users/AACHAL2303PATIL/following{/other_user}", + "gists_url": "https://api.github.com/users/AACHAL2303PATIL/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AACHAL2303PATIL/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AACHAL2303PATIL/subscriptions", + "organizations_url": "https://api.github.com/users/AACHAL2303PATIL/orgs", + "repos_url": "https://api.github.com/users/AACHAL2303PATIL/repos", + "events_url": "https://api.github.com/users/AACHAL2303PATIL/events{/privacy}", + "received_events_url": "https://api.github.com/users/AACHAL2303PATIL/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Aarush-Acharya", + "id": 92685647, + "node_id": "U_kgDOBYZFTw", + "avatar_url": "https://avatars.githubusercontent.com/u/92685647?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aarush-Acharya", + "html_url": "https://github.com/Aarush-Acharya", + "followers_url": "https://api.github.com/users/Aarush-Acharya/followers", + "following_url": "https://api.github.com/users/Aarush-Acharya/following{/other_user}", + "gists_url": "https://api.github.com/users/Aarush-Acharya/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aarush-Acharya/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aarush-Acharya/subscriptions", + "organizations_url": "https://api.github.com/users/Aarush-Acharya/orgs", + "repos_url": "https://api.github.com/users/Aarush-Acharya/repos", + "events_url": "https://api.github.com/users/Aarush-Acharya/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aarush-Acharya/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Aarya-Chaudhari", + "id": 164394872, + "node_id": "U_kgDOCcx3eA", + "avatar_url": "https://avatars.githubusercontent.com/u/164394872?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aarya-Chaudhari", + "html_url": "https://github.com/Aarya-Chaudhari", + "followers_url": "https://api.github.com/users/Aarya-Chaudhari/followers", + "following_url": "https://api.github.com/users/Aarya-Chaudhari/following{/other_user}", + "gists_url": "https://api.github.com/users/Aarya-Chaudhari/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aarya-Chaudhari/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aarya-Chaudhari/subscriptions", + "organizations_url": "https://api.github.com/users/Aarya-Chaudhari/orgs", + "repos_url": "https://api.github.com/users/Aarya-Chaudhari/repos", + "events_url": "https://api.github.com/users/Aarya-Chaudhari/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aarya-Chaudhari/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "hackeramitkumar", + "id": 76870298, + "node_id": "MDQ6VXNlcjc2ODcwMjk4", + "avatar_url": "https://avatars.githubusercontent.com/u/76870298?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/hackeramitkumar", + "html_url": "https://github.com/hackeramitkumar", + "followers_url": "https://api.github.com/users/hackeramitkumar/followers", + "following_url": "https://api.github.com/users/hackeramitkumar/following{/other_user}", + "gists_url": "https://api.github.com/users/hackeramitkumar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hackeramitkumar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hackeramitkumar/subscriptions", + "organizations_url": "https://api.github.com/users/hackeramitkumar/orgs", + "repos_url": "https://api.github.com/users/hackeramitkumar/repos", + "events_url": "https://api.github.com/users/hackeramitkumar/events{/privacy}", + "received_events_url": "https://api.github.com/users/hackeramitkumar/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "prathamkhatwani", + "id": 241340310, + "node_id": "U_kgDODmKPlg", + "avatar_url": "https://avatars.githubusercontent.com/u/241340310?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prathamkhatwani", + "html_url": "https://github.com/prathamkhatwani", + "followers_url": "https://api.github.com/users/prathamkhatwani/followers", + "following_url": "https://api.github.com/users/prathamkhatwani/following{/other_user}", + "gists_url": "https://api.github.com/users/prathamkhatwani/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prathamkhatwani/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prathamkhatwani/subscriptions", + "organizations_url": "https://api.github.com/users/prathamkhatwani/orgs", + "repos_url": "https://api.github.com/users/prathamkhatwani/repos", + "events_url": "https://api.github.com/users/prathamkhatwani/events{/privacy}", + "received_events_url": "https://api.github.com/users/prathamkhatwani/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Pranav0-0Aggarwal", + "id": 96537779, + "node_id": "U_kgDOBcEMsw", + "avatar_url": "https://avatars.githubusercontent.com/u/96537779?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Pranav0-0Aggarwal", + "html_url": "https://github.com/Pranav0-0Aggarwal", + "followers_url": "https://api.github.com/users/Pranav0-0Aggarwal/followers", + "following_url": "https://api.github.com/users/Pranav0-0Aggarwal/following{/other_user}", + "gists_url": "https://api.github.com/users/Pranav0-0Aggarwal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Pranav0-0Aggarwal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Pranav0-0Aggarwal/subscriptions", + "organizations_url": "https://api.github.com/users/Pranav0-0Aggarwal/orgs", + "repos_url": "https://api.github.com/users/Pranav0-0Aggarwal/repos", + "events_url": "https://api.github.com/users/Pranav0-0Aggarwal/events{/privacy}", + "received_events_url": "https://api.github.com/users/Pranav0-0Aggarwal/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "mdmohsin7", + "id": 59914433, + "node_id": "MDQ6VXNlcjU5OTE0NDMz", + "avatar_url": "https://avatars.githubusercontent.com/u/59914433?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mdmohsin7", + "html_url": "https://github.com/mdmohsin7", + "followers_url": "https://api.github.com/users/mdmohsin7/followers", + "following_url": "https://api.github.com/users/mdmohsin7/following{/other_user}", + "gists_url": "https://api.github.com/users/mdmohsin7/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mdmohsin7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mdmohsin7/subscriptions", + "organizations_url": "https://api.github.com/users/mdmohsin7/orgs", + "repos_url": "https://api.github.com/users/mdmohsin7/repos", + "events_url": "https://api.github.com/users/mdmohsin7/events{/privacy}", + "received_events_url": "https://api.github.com/users/mdmohsin7/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "AnshuPriya-1", + "id": 212613629, + "node_id": "U_kgDODKw5_Q", + "avatar_url": "https://avatars.githubusercontent.com/u/212613629?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AnshuPriya-1", + "html_url": "https://github.com/AnshuPriya-1", + "followers_url": "https://api.github.com/users/AnshuPriya-1/followers", + "following_url": "https://api.github.com/users/AnshuPriya-1/following{/other_user}", + "gists_url": "https://api.github.com/users/AnshuPriya-1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AnshuPriya-1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AnshuPriya-1/subscriptions", + "organizations_url": "https://api.github.com/users/AnshuPriya-1/orgs", + "repos_url": "https://api.github.com/users/AnshuPriya-1/repos", + "events_url": "https://api.github.com/users/AnshuPriya-1/events{/privacy}", + "received_events_url": "https://api.github.com/users/AnshuPriya-1/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "divyanshu887", + "id": 59568700, + "node_id": "MDQ6VXNlcjU5NTY4NzAw", + "avatar_url": "https://avatars.githubusercontent.com/u/59568700?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/divyanshu887", + "html_url": "https://github.com/divyanshu887", + "followers_url": "https://api.github.com/users/divyanshu887/followers", + "following_url": "https://api.github.com/users/divyanshu887/following{/other_user}", + "gists_url": "https://api.github.com/users/divyanshu887/gists{/gist_id}", + "starred_url": "https://api.github.com/users/divyanshu887/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/divyanshu887/subscriptions", + "organizations_url": "https://api.github.com/users/divyanshu887/orgs", + "repos_url": "https://api.github.com/users/divyanshu887/repos", + "events_url": "https://api.github.com/users/divyanshu887/events{/privacy}", + "received_events_url": "https://api.github.com/users/divyanshu887/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "rahul-vyas-dev", + "id": 194380849, + "node_id": "U_kgDOC5YEMQ", + "avatar_url": "https://avatars.githubusercontent.com/u/194380849?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahul-vyas-dev", + "html_url": "https://github.com/rahul-vyas-dev", + "followers_url": "https://api.github.com/users/rahul-vyas-dev/followers", + "following_url": "https://api.github.com/users/rahul-vyas-dev/following{/other_user}", + "gists_url": "https://api.github.com/users/rahul-vyas-dev/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahul-vyas-dev/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahul-vyas-dev/subscriptions", + "organizations_url": "https://api.github.com/users/rahul-vyas-dev/orgs", + "repos_url": "https://api.github.com/users/rahul-vyas-dev/repos", + "events_url": "https://api.github.com/users/rahul-vyas-dev/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahul-vyas-dev/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Copilot", + "id": 198982749, + "node_id": "BOT_kgDOC9w8XQ", + "avatar_url": "https://avatars.githubusercontent.com/in/1143301?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Copilot", + "html_url": "https://github.com/apps/copilot-swe-agent", + "followers_url": "https://api.github.com/users/Copilot/followers", + "following_url": "https://api.github.com/users/Copilot/following{/other_user}", + "gists_url": "https://api.github.com/users/Copilot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Copilot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Copilot/subscriptions", + "organizations_url": "https://api.github.com/users/Copilot/orgs", + "repos_url": "https://api.github.com/users/Copilot/repos", + "events_url": "https://api.github.com/users/Copilot/events{/privacy}", + "received_events_url": "https://api.github.com/users/Copilot/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Aditya062003", + "id": 102402625, + "node_id": "U_kgDOBhqKQQ", + "avatar_url": "https://avatars.githubusercontent.com/u/102402625?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya062003", + "html_url": "https://github.com/Aditya062003", + "followers_url": "https://api.github.com/users/Aditya062003/followers", + "following_url": "https://api.github.com/users/Aditya062003/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya062003/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya062003/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya062003/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya062003/orgs", + "repos_url": "https://api.github.com/users/Aditya062003/repos", + "events_url": "https://api.github.com/users/Aditya062003/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya062003/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "bassamadnan", + "id": 109953791, + "node_id": "U_kgDOBo3C_w", + "avatar_url": "https://avatars.githubusercontent.com/u/109953791?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bassamadnan", + "html_url": "https://github.com/bassamadnan", + "followers_url": "https://api.github.com/users/bassamadnan/followers", + "following_url": "https://api.github.com/users/bassamadnan/following{/other_user}", + "gists_url": "https://api.github.com/users/bassamadnan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bassamadnan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bassamadnan/subscriptions", + "organizations_url": "https://api.github.com/users/bassamadnan/orgs", + "repos_url": "https://api.github.com/users/bassamadnan/repos", + "events_url": "https://api.github.com/users/bassamadnan/events{/privacy}", + "received_events_url": "https://api.github.com/users/bassamadnan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Ronnieraj37", + "id": 101713157, + "node_id": "U_kgDOBhAFBQ", + "avatar_url": "https://avatars.githubusercontent.com/u/101713157?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ronnieraj37", + "html_url": "https://github.com/Ronnieraj37", + "followers_url": "https://api.github.com/users/Ronnieraj37/followers", + "following_url": "https://api.github.com/users/Ronnieraj37/following{/other_user}", + "gists_url": "https://api.github.com/users/Ronnieraj37/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ronnieraj37/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ronnieraj37/subscriptions", + "organizations_url": "https://api.github.com/users/Ronnieraj37/orgs", + "repos_url": "https://api.github.com/users/Ronnieraj37/repos", + "events_url": "https://api.github.com/users/Ronnieraj37/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ronnieraj37/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Swapnilden", + "id": 142904704, + "node_id": "U_kgDOCISNgA", + "avatar_url": "https://avatars.githubusercontent.com/u/142904704?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Swapnilden", + "html_url": "https://github.com/Swapnilden", + "followers_url": "https://api.github.com/users/Swapnilden/followers", + "following_url": "https://api.github.com/users/Swapnilden/following{/other_user}", + "gists_url": "https://api.github.com/users/Swapnilden/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Swapnilden/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Swapnilden/subscriptions", + "organizations_url": "https://api.github.com/users/Swapnilden/orgs", + "repos_url": "https://api.github.com/users/Swapnilden/repos", + "events_url": "https://api.github.com/users/Swapnilden/events{/privacy}", + "received_events_url": "https://api.github.com/users/Swapnilden/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "icemc", + "id": 14994500, + "node_id": "MDQ6VXNlcjE0OTk0NTAw", + "avatar_url": "https://avatars.githubusercontent.com/u/14994500?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/icemc", + "html_url": "https://github.com/icemc", + "followers_url": "https://api.github.com/users/icemc/followers", + "following_url": "https://api.github.com/users/icemc/following{/other_user}", + "gists_url": "https://api.github.com/users/icemc/gists{/gist_id}", + "starred_url": "https://api.github.com/users/icemc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/icemc/subscriptions", + "organizations_url": "https://api.github.com/users/icemc/orgs", + "repos_url": "https://api.github.com/users/icemc/repos", + "events_url": "https://api.github.com/users/icemc/events{/privacy}", + "received_events_url": "https://api.github.com/users/icemc/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "Agora-Blockchain": [ + { + "login": "Ronnieraj37", + "id": 101713157, + "node_id": "U_kgDOBhAFBQ", + "avatar_url": "https://avatars.githubusercontent.com/u/101713157?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ronnieraj37", + "html_url": "https://github.com/Ronnieraj37", + "followers_url": "https://api.github.com/users/Ronnieraj37/followers", + "following_url": "https://api.github.com/users/Ronnieraj37/following{/other_user}", + "gists_url": "https://api.github.com/users/Ronnieraj37/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ronnieraj37/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ronnieraj37/subscriptions", + "organizations_url": "https://api.github.com/users/Ronnieraj37/orgs", + "repos_url": "https://api.github.com/users/Ronnieraj37/repos", + "events_url": "https://api.github.com/users/Ronnieraj37/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ronnieraj37/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 30 + }, + { + "login": "rajranjan0608", + "id": 40765810, + "node_id": "MDQ6VXNlcjQwNzY1ODEw", + "avatar_url": "https://avatars.githubusercontent.com/u/40765810?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rajranjan0608", + "html_url": "https://github.com/rajranjan0608", + "followers_url": "https://api.github.com/users/rajranjan0608/followers", + "following_url": "https://api.github.com/users/rajranjan0608/following{/other_user}", + "gists_url": "https://api.github.com/users/rajranjan0608/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rajranjan0608/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rajranjan0608/subscriptions", + "organizations_url": "https://api.github.com/users/rajranjan0608/orgs", + "repos_url": "https://api.github.com/users/rajranjan0608/repos", + "events_url": "https://api.github.com/users/rajranjan0608/events{/privacy}", + "received_events_url": "https://api.github.com/users/rajranjan0608/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 21 + }, + { + "login": "rairohit17", + "id": 154455386, + "node_id": "U_kgDOCTTNWg", + "avatar_url": "https://avatars.githubusercontent.com/u/154455386?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rairohit17", + "html_url": "https://github.com/rairohit17", + "followers_url": "https://api.github.com/users/rairohit17/followers", + "following_url": "https://api.github.com/users/rairohit17/following{/other_user}", + "gists_url": "https://api.github.com/users/rairohit17/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rairohit17/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rairohit17/subscriptions", + "organizations_url": "https://api.github.com/users/rairohit17/orgs", + "repos_url": "https://api.github.com/users/rairohit17/repos", + "events_url": "https://api.github.com/users/rairohit17/events{/privacy}", + "received_events_url": "https://api.github.com/users/rairohit17/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 19 + }, + { + "login": "kirtilodha", + "id": 67586672, + "node_id": "MDQ6VXNlcjY3NTg2Njcy", + "avatar_url": "https://avatars.githubusercontent.com/u/67586672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kirtilodha", + "html_url": "https://github.com/kirtilodha", + "followers_url": "https://api.github.com/users/kirtilodha/followers", + "following_url": "https://api.github.com/users/kirtilodha/following{/other_user}", + "gists_url": "https://api.github.com/users/kirtilodha/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kirtilodha/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kirtilodha/subscriptions", + "organizations_url": "https://api.github.com/users/kirtilodha/orgs", + "repos_url": "https://api.github.com/users/kirtilodha/repos", + "events_url": "https://api.github.com/users/kirtilodha/events{/privacy}", + "received_events_url": "https://api.github.com/users/kirtilodha/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "Yugg007", + "id": 88202862, + "node_id": "MDQ6VXNlcjg4MjAyODYy", + "avatar_url": "https://avatars.githubusercontent.com/u/88202862?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Yugg007", + "html_url": "https://github.com/Yugg007", + "followers_url": "https://api.github.com/users/Yugg007/followers", + "following_url": "https://api.github.com/users/Yugg007/following{/other_user}", + "gists_url": "https://api.github.com/users/Yugg007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Yugg007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Yugg007/subscriptions", + "organizations_url": "https://api.github.com/users/Yugg007/orgs", + "repos_url": "https://api.github.com/users/Yugg007/repos", + "events_url": "https://api.github.com/users/Yugg007/events{/privacy}", + "received_events_url": "https://api.github.com/users/Yugg007/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "sreenikethMadgula", + "id": 56798332, + "node_id": "MDQ6VXNlcjU2Nzk4MzMy", + "avatar_url": "https://avatars.githubusercontent.com/u/56798332?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sreenikethMadgula", + "html_url": "https://github.com/sreenikethMadgula", + "followers_url": "https://api.github.com/users/sreenikethMadgula/followers", + "following_url": "https://api.github.com/users/sreenikethMadgula/following{/other_user}", + "gists_url": "https://api.github.com/users/sreenikethMadgula/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sreenikethMadgula/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sreenikethMadgula/subscriptions", + "organizations_url": "https://api.github.com/users/sreenikethMadgula/orgs", + "repos_url": "https://api.github.com/users/sreenikethMadgula/repos", + "events_url": "https://api.github.com/users/sreenikethMadgula/events{/privacy}", + "received_events_url": "https://api.github.com/users/sreenikethMadgula/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 9 + }, + { + "login": "IronJam11", + "id": 148959043, + "node_id": "U_kgDOCODvQw", + "avatar_url": "https://avatars.githubusercontent.com/u/148959043?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/IronJam11", + "html_url": "https://github.com/IronJam11", + "followers_url": "https://api.github.com/users/IronJam11/followers", + "following_url": "https://api.github.com/users/IronJam11/following{/other_user}", + "gists_url": "https://api.github.com/users/IronJam11/gists{/gist_id}", + "starred_url": "https://api.github.com/users/IronJam11/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/IronJam11/subscriptions", + "organizations_url": "https://api.github.com/users/IronJam11/orgs", + "repos_url": "https://api.github.com/users/IronJam11/repos", + "events_url": "https://api.github.com/users/IronJam11/events{/privacy}", + "received_events_url": "https://api.github.com/users/IronJam11/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "ajaysehwal", + "id": 110731336, + "node_id": "U_kgDOBpmgSA", + "avatar_url": "https://avatars.githubusercontent.com/u/110731336?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ajaysehwal", + "html_url": "https://github.com/ajaysehwal", + "followers_url": "https://api.github.com/users/ajaysehwal/followers", + "following_url": "https://api.github.com/users/ajaysehwal/following{/other_user}", + "gists_url": "https://api.github.com/users/ajaysehwal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ajaysehwal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ajaysehwal/subscriptions", + "organizations_url": "https://api.github.com/users/ajaysehwal/orgs", + "repos_url": "https://api.github.com/users/ajaysehwal/repos", + "events_url": "https://api.github.com/users/ajaysehwal/events{/privacy}", + "received_events_url": "https://api.github.com/users/ajaysehwal/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 6 + }, + { + "login": "kailash360", + "id": 75155230, + "node_id": "MDQ6VXNlcjc1MTU1MjMw", + "avatar_url": "https://avatars.githubusercontent.com/u/75155230?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kailash360", + "html_url": "https://github.com/kailash360", + "followers_url": "https://api.github.com/users/kailash360/followers", + "following_url": "https://api.github.com/users/kailash360/following{/other_user}", + "gists_url": "https://api.github.com/users/kailash360/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kailash360/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kailash360/subscriptions", + "organizations_url": "https://api.github.com/users/kailash360/orgs", + "repos_url": "https://api.github.com/users/kailash360/repos", + "events_url": "https://api.github.com/users/kailash360/events{/privacy}", + "received_events_url": "https://api.github.com/users/kailash360/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "anisharma07", + "id": 126901961, + "node_id": "U_kgDOB5BeyQ", + "avatar_url": "https://avatars.githubusercontent.com/u/126901961?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/anisharma07", + "html_url": "https://github.com/anisharma07", + "followers_url": "https://api.github.com/users/anisharma07/followers", + "following_url": "https://api.github.com/users/anisharma07/following{/other_user}", + "gists_url": "https://api.github.com/users/anisharma07/gists{/gist_id}", + "starred_url": "https://api.github.com/users/anisharma07/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/anisharma07/subscriptions", + "organizations_url": "https://api.github.com/users/anisharma07/orgs", + "repos_url": "https://api.github.com/users/anisharma07/repos", + "events_url": "https://api.github.com/users/anisharma07/events{/privacy}", + "received_events_url": "https://api.github.com/users/anisharma07/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "govindsingh3477", + "id": 140132860, + "node_id": "U_kgDOCFpB_A", + "avatar_url": "https://avatars.githubusercontent.com/u/140132860?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/govindsingh3477", + "html_url": "https://github.com/govindsingh3477", + "followers_url": "https://api.github.com/users/govindsingh3477/followers", + "following_url": "https://api.github.com/users/govindsingh3477/following{/other_user}", + "gists_url": "https://api.github.com/users/govindsingh3477/gists{/gist_id}", + "starred_url": "https://api.github.com/users/govindsingh3477/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/govindsingh3477/subscriptions", + "organizations_url": "https://api.github.com/users/govindsingh3477/orgs", + "repos_url": "https://api.github.com/users/govindsingh3477/repos", + "events_url": "https://api.github.com/users/govindsingh3477/events{/privacy}", + "received_events_url": "https://api.github.com/users/govindsingh3477/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "jayeshpatil7", + "id": 182396551, + "node_id": "U_kgDOCt8mhw", + "avatar_url": "https://avatars.githubusercontent.com/u/182396551?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jayeshpatil7", + "html_url": "https://github.com/jayeshpatil7", + "followers_url": "https://api.github.com/users/jayeshpatil7/followers", + "following_url": "https://api.github.com/users/jayeshpatil7/following{/other_user}", + "gists_url": "https://api.github.com/users/jayeshpatil7/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jayeshpatil7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jayeshpatil7/subscriptions", + "organizations_url": "https://api.github.com/users/jayeshpatil7/orgs", + "repos_url": "https://api.github.com/users/jayeshpatil7/repos", + "events_url": "https://api.github.com/users/jayeshpatil7/events{/privacy}", + "received_events_url": "https://api.github.com/users/jayeshpatil7/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Zahnentferner", + "id": 1809436, + "node_id": "MDQ6VXNlcjE4MDk0MzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1809436?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Zahnentferner", + "html_url": "https://github.com/Zahnentferner", + "followers_url": "https://api.github.com/users/Zahnentferner/followers", + "following_url": "https://api.github.com/users/Zahnentferner/following{/other_user}", + "gists_url": "https://api.github.com/users/Zahnentferner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zahnentferner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zahnentferner/subscriptions", + "organizations_url": "https://api.github.com/users/Zahnentferner/orgs", + "repos_url": "https://api.github.com/users/Zahnentferner/repos", + "events_url": "https://api.github.com/users/Zahnentferner/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zahnentferner/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "meetjn", + "id": 141674944, + "node_id": "U_kgDOCHHJwA", + "avatar_url": "https://avatars.githubusercontent.com/u/141674944?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/meetjn", + "html_url": "https://github.com/meetjn", + "followers_url": "https://api.github.com/users/meetjn/followers", + "following_url": "https://api.github.com/users/meetjn/following{/other_user}", + "gists_url": "https://api.github.com/users/meetjn/gists{/gist_id}", + "starred_url": "https://api.github.com/users/meetjn/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/meetjn/subscriptions", + "organizations_url": "https://api.github.com/users/meetjn/orgs", + "repos_url": "https://api.github.com/users/meetjn/repos", + "events_url": "https://api.github.com/users/meetjn/events{/privacy}", + "received_events_url": "https://api.github.com/users/meetjn/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "thuva4", + "id": 17289840, + "node_id": "MDQ6VXNlcjE3Mjg5ODQw", + "avatar_url": "https://avatars.githubusercontent.com/u/17289840?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/thuva4", + "html_url": "https://github.com/thuva4", + "followers_url": "https://api.github.com/users/thuva4/followers", + "following_url": "https://api.github.com/users/thuva4/following{/other_user}", + "gists_url": "https://api.github.com/users/thuva4/gists{/gist_id}", + "starred_url": "https://api.github.com/users/thuva4/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/thuva4/subscriptions", + "organizations_url": "https://api.github.com/users/thuva4/orgs", + "repos_url": "https://api.github.com/users/thuva4/repos", + "events_url": "https://api.github.com/users/thuva4/events{/privacy}", + "received_events_url": "https://api.github.com/users/thuva4/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "ayush0x00", + "id": 44584229, + "node_id": "MDQ6VXNlcjQ0NTg0MjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/44584229?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayush0x00", + "html_url": "https://github.com/ayush0x00", + "followers_url": "https://api.github.com/users/ayush0x00/followers", + "following_url": "https://api.github.com/users/ayush0x00/following{/other_user}", + "gists_url": "https://api.github.com/users/ayush0x00/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayush0x00/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayush0x00/subscriptions", + "organizations_url": "https://api.github.com/users/ayush0x00/orgs", + "repos_url": "https://api.github.com/users/ayush0x00/repos", + "events_url": "https://api.github.com/users/ayush0x00/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayush0x00/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Deep-1507", + "id": 126111717, + "node_id": "U_kgDOB4RP5Q", + "avatar_url": "https://avatars.githubusercontent.com/u/126111717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Deep-1507", + "html_url": "https://github.com/Deep-1507", + "followers_url": "https://api.github.com/users/Deep-1507/followers", + "following_url": "https://api.github.com/users/Deep-1507/following{/other_user}", + "gists_url": "https://api.github.com/users/Deep-1507/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Deep-1507/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Deep-1507/subscriptions", + "organizations_url": "https://api.github.com/users/Deep-1507/orgs", + "repos_url": "https://api.github.com/users/Deep-1507/repos", + "events_url": "https://api.github.com/users/Deep-1507/events{/privacy}", + "received_events_url": "https://api.github.com/users/Deep-1507/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "ParagGhatage", + "id": 146347793, + "node_id": "U_kgDOCLkXEQ", + "avatar_url": "https://avatars.githubusercontent.com/u/146347793?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ParagGhatage", + "html_url": "https://github.com/ParagGhatage", + "followers_url": "https://api.github.com/users/ParagGhatage/followers", + "following_url": "https://api.github.com/users/ParagGhatage/following{/other_user}", + "gists_url": "https://api.github.com/users/ParagGhatage/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ParagGhatage/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ParagGhatage/subscriptions", + "organizations_url": "https://api.github.com/users/ParagGhatage/orgs", + "repos_url": "https://api.github.com/users/ParagGhatage/repos", + "events_url": "https://api.github.com/users/ParagGhatage/events{/privacy}", + "received_events_url": "https://api.github.com/users/ParagGhatage/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "saikiranpatil", + "id": 84263946, + "node_id": "MDQ6VXNlcjg0MjYzOTQ2", + "avatar_url": "https://avatars.githubusercontent.com/u/84263946?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/saikiranpatil", + "html_url": "https://github.com/saikiranpatil", + "followers_url": "https://api.github.com/users/saikiranpatil/followers", + "following_url": "https://api.github.com/users/saikiranpatil/following{/other_user}", + "gists_url": "https://api.github.com/users/saikiranpatil/gists{/gist_id}", + "starred_url": "https://api.github.com/users/saikiranpatil/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/saikiranpatil/subscriptions", + "organizations_url": "https://api.github.com/users/saikiranpatil/orgs", + "repos_url": "https://api.github.com/users/saikiranpatil/repos", + "events_url": "https://api.github.com/users/saikiranpatil/events{/privacy}", + "received_events_url": "https://api.github.com/users/saikiranpatil/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "asmit27rai", + "id": 146473475, + "node_id": "U_kgDOCLsCAw", + "avatar_url": "https://avatars.githubusercontent.com/u/146473475?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/asmit27rai", + "html_url": "https://github.com/asmit27rai", + "followers_url": "https://api.github.com/users/asmit27rai/followers", + "following_url": "https://api.github.com/users/asmit27rai/following{/other_user}", + "gists_url": "https://api.github.com/users/asmit27rai/gists{/gist_id}", + "starred_url": "https://api.github.com/users/asmit27rai/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/asmit27rai/subscriptions", + "organizations_url": "https://api.github.com/users/asmit27rai/orgs", + "repos_url": "https://api.github.com/users/asmit27rai/repos", + "events_url": "https://api.github.com/users/asmit27rai/events{/privacy}", + "received_events_url": "https://api.github.com/users/asmit27rai/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "singhshaurya01", + "id": 222411767, + "node_id": "U_kgDODUG79w", + "avatar_url": "https://avatars.githubusercontent.com/u/222411767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/singhshaurya01", + "html_url": "https://github.com/singhshaurya01", + "followers_url": "https://api.github.com/users/singhshaurya01/followers", + "following_url": "https://api.github.com/users/singhshaurya01/following{/other_user}", + "gists_url": "https://api.github.com/users/singhshaurya01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/singhshaurya01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/singhshaurya01/subscriptions", + "organizations_url": "https://api.github.com/users/singhshaurya01/orgs", + "repos_url": "https://api.github.com/users/singhshaurya01/repos", + "events_url": "https://api.github.com/users/singhshaurya01/events{/privacy}", + "received_events_url": "https://api.github.com/users/singhshaurya01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "InPactAI": [ + { + "login": "Vivekgupta008", + "id": 124180585, + "node_id": "U_kgDOB2bYaQ", + "avatar_url": "https://avatars.githubusercontent.com/u/124180585?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Vivekgupta008", + "html_url": "https://github.com/Vivekgupta008", + "followers_url": "https://api.github.com/users/Vivekgupta008/followers", + "following_url": "https://api.github.com/users/Vivekgupta008/following{/other_user}", + "gists_url": "https://api.github.com/users/Vivekgupta008/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Vivekgupta008/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Vivekgupta008/subscriptions", + "organizations_url": "https://api.github.com/users/Vivekgupta008/orgs", + "repos_url": "https://api.github.com/users/Vivekgupta008/repos", + "events_url": "https://api.github.com/users/Vivekgupta008/events{/privacy}", + "received_events_url": "https://api.github.com/users/Vivekgupta008/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "ishaanxgupta", + "id": 124028055, + "node_id": "U_kgDOB2SElw", + "avatar_url": "https://avatars.githubusercontent.com/u/124028055?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ishaanxgupta", + "html_url": "https://github.com/ishaanxgupta", + "followers_url": "https://api.github.com/users/ishaanxgupta/followers", + "following_url": "https://api.github.com/users/ishaanxgupta/following{/other_user}", + "gists_url": "https://api.github.com/users/ishaanxgupta/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ishaanxgupta/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ishaanxgupta/subscriptions", + "organizations_url": "https://api.github.com/users/ishaanxgupta/orgs", + "repos_url": "https://api.github.com/users/ishaanxgupta/repos", + "events_url": "https://api.github.com/users/ishaanxgupta/events{/privacy}", + "received_events_url": "https://api.github.com/users/ishaanxgupta/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 6 + }, + { + "login": "chandansgowda", + "id": 41890434, + "node_id": "MDQ6VXNlcjQxODkwNDM0", + "avatar_url": "https://avatars.githubusercontent.com/u/41890434?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/chandansgowda", + "html_url": "https://github.com/chandansgowda", + "followers_url": "https://api.github.com/users/chandansgowda/followers", + "following_url": "https://api.github.com/users/chandansgowda/following{/other_user}", + "gists_url": "https://api.github.com/users/chandansgowda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chandansgowda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chandansgowda/subscriptions", + "organizations_url": "https://api.github.com/users/chandansgowda/orgs", + "repos_url": "https://api.github.com/users/chandansgowda/repos", + "events_url": "https://api.github.com/users/chandansgowda/events{/privacy}", + "received_events_url": "https://api.github.com/users/chandansgowda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Saahi30", + "id": 66820791, + "node_id": "MDQ6VXNlcjY2ODIwNzkx", + "avatar_url": "https://avatars.githubusercontent.com/u/66820791?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Saahi30", + "html_url": "https://github.com/Saahi30", + "followers_url": "https://api.github.com/users/Saahi30/followers", + "following_url": "https://api.github.com/users/Saahi30/following{/other_user}", + "gists_url": "https://api.github.com/users/Saahi30/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Saahi30/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Saahi30/subscriptions", + "organizations_url": "https://api.github.com/users/Saahi30/orgs", + "repos_url": "https://api.github.com/users/Saahi30/repos", + "events_url": "https://api.github.com/users/Saahi30/events{/privacy}", + "received_events_url": "https://api.github.com/users/Saahi30/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Zahnentferner", + "id": 1809436, + "node_id": "MDQ6VXNlcjE4MDk0MzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1809436?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Zahnentferner", + "html_url": "https://github.com/Zahnentferner", + "followers_url": "https://api.github.com/users/Zahnentferner/followers", + "following_url": "https://api.github.com/users/Zahnentferner/following{/other_user}", + "gists_url": "https://api.github.com/users/Zahnentferner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zahnentferner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zahnentferner/subscriptions", + "organizations_url": "https://api.github.com/users/Zahnentferner/orgs", + "repos_url": "https://api.github.com/users/Zahnentferner/repos", + "events_url": "https://api.github.com/users/Zahnentferner/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zahnentferner/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "muntaxir4", + "id": 73852736, + "node_id": "MDQ6VXNlcjczODUyNzM2", + "avatar_url": "https://avatars.githubusercontent.com/u/73852736?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/muntaxir4", + "html_url": "https://github.com/muntaxir4", + "followers_url": "https://api.github.com/users/muntaxir4/followers", + "following_url": "https://api.github.com/users/muntaxir4/following{/other_user}", + "gists_url": "https://api.github.com/users/muntaxir4/gists{/gist_id}", + "starred_url": "https://api.github.com/users/muntaxir4/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/muntaxir4/subscriptions", + "organizations_url": "https://api.github.com/users/muntaxir4/orgs", + "repos_url": "https://api.github.com/users/muntaxir4/repos", + "events_url": "https://api.github.com/users/muntaxir4/events{/privacy}", + "received_events_url": "https://api.github.com/users/muntaxir4/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Priyansh-max", + "id": 109947651, + "node_id": "U_kgDOBo2rAw", + "avatar_url": "https://avatars.githubusercontent.com/u/109947651?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Priyansh-max", + "html_url": "https://github.com/Priyansh-max", + "followers_url": "https://api.github.com/users/Priyansh-max/followers", + "following_url": "https://api.github.com/users/Priyansh-max/following{/other_user}", + "gists_url": "https://api.github.com/users/Priyansh-max/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Priyansh-max/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Priyansh-max/subscriptions", + "organizations_url": "https://api.github.com/users/Priyansh-max/orgs", + "repos_url": "https://api.github.com/users/Priyansh-max/repos", + "events_url": "https://api.github.com/users/Priyansh-max/events{/privacy}", + "received_events_url": "https://api.github.com/users/Priyansh-max/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Aditya30ag", + "id": 162010355, + "node_id": "U_kgDOCagU8w", + "avatar_url": "https://avatars.githubusercontent.com/u/162010355?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya30ag", + "html_url": "https://github.com/Aditya30ag", + "followers_url": "https://api.github.com/users/Aditya30ag/followers", + "following_url": "https://api.github.com/users/Aditya30ag/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya30ag/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya30ag/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya30ag/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya30ag/orgs", + "repos_url": "https://api.github.com/users/Aditya30ag/repos", + "events_url": "https://api.github.com/users/Aditya30ag/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya30ag/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "prakharsingh-74", + "id": 148339919, + "node_id": "U_kgDOCNd8zw", + "avatar_url": "https://avatars.githubusercontent.com/u/148339919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prakharsingh-74", + "html_url": "https://github.com/prakharsingh-74", + "followers_url": "https://api.github.com/users/prakharsingh-74/followers", + "following_url": "https://api.github.com/users/prakharsingh-74/following{/other_user}", + "gists_url": "https://api.github.com/users/prakharsingh-74/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prakharsingh-74/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prakharsingh-74/subscriptions", + "organizations_url": "https://api.github.com/users/prakharsingh-74/orgs", + "repos_url": "https://api.github.com/users/prakharsingh-74/repos", + "events_url": "https://api.github.com/users/prakharsingh-74/events{/privacy}", + "received_events_url": "https://api.github.com/users/prakharsingh-74/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "singhshaurya01", + "id": 222411767, + "node_id": "U_kgDODUG79w", + "avatar_url": "https://avatars.githubusercontent.com/u/222411767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/singhshaurya01", + "html_url": "https://github.com/singhshaurya01", + "followers_url": "https://api.github.com/users/singhshaurya01/followers", + "following_url": "https://api.github.com/users/singhshaurya01/following{/other_user}", + "gists_url": "https://api.github.com/users/singhshaurya01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/singhshaurya01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/singhshaurya01/subscriptions", + "organizations_url": "https://api.github.com/users/singhshaurya01/orgs", + "repos_url": "https://api.github.com/users/singhshaurya01/repos", + "events_url": "https://api.github.com/users/singhshaurya01/events{/privacy}", + "received_events_url": "https://api.github.com/users/singhshaurya01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "aniket866", + "id": 200447751, + "node_id": "U_kgDOC_KXBw", + "avatar_url": "https://avatars.githubusercontent.com/u/200447751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aniket866", + "html_url": "https://github.com/aniket866", + "followers_url": "https://api.github.com/users/aniket866/followers", + "following_url": "https://api.github.com/users/aniket866/following{/other_user}", + "gists_url": "https://api.github.com/users/aniket866/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aniket866/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aniket866/subscriptions", + "organizations_url": "https://api.github.com/users/aniket866/orgs", + "repos_url": "https://api.github.com/users/aniket866/repos", + "events_url": "https://api.github.com/users/aniket866/events{/privacy}", + "received_events_url": "https://api.github.com/users/aniket866/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Jk-karunadu", + "id": 158207370, + "node_id": "U_kgDOCW4Nig", + "avatar_url": "https://avatars.githubusercontent.com/u/158207370?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Jk-karunadu", + "html_url": "https://github.com/Jk-karunadu", + "followers_url": "https://api.github.com/users/Jk-karunadu/followers", + "following_url": "https://api.github.com/users/Jk-karunadu/following{/other_user}", + "gists_url": "https://api.github.com/users/Jk-karunadu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Jk-karunadu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jk-karunadu/subscriptions", + "organizations_url": "https://api.github.com/users/Jk-karunadu/orgs", + "repos_url": "https://api.github.com/users/Jk-karunadu/repos", + "events_url": "https://api.github.com/users/Jk-karunadu/events{/privacy}", + "received_events_url": "https://api.github.com/users/Jk-karunadu/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Rrahullkumar", + "id": 175727888, + "node_id": "U_kgDOCnllEA", + "avatar_url": "https://avatars.githubusercontent.com/u/175727888?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Rrahullkumar", + "html_url": "https://github.com/Rrahullkumar", + "followers_url": "https://api.github.com/users/Rrahullkumar/followers", + "following_url": "https://api.github.com/users/Rrahullkumar/following{/other_user}", + "gists_url": "https://api.github.com/users/Rrahullkumar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Rrahullkumar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Rrahullkumar/subscriptions", + "organizations_url": "https://api.github.com/users/Rrahullkumar/orgs", + "repos_url": "https://api.github.com/users/Rrahullkumar/repos", + "events_url": "https://api.github.com/users/Rrahullkumar/events{/privacy}", + "received_events_url": "https://api.github.com/users/Rrahullkumar/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "SharkyBytes", + "id": 129230225, + "node_id": "U_kgDOB7PlkQ", + "avatar_url": "https://avatars.githubusercontent.com/u/129230225?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SharkyBytes", + "html_url": "https://github.com/SharkyBytes", + "followers_url": "https://api.github.com/users/SharkyBytes/followers", + "following_url": "https://api.github.com/users/SharkyBytes/following{/other_user}", + "gists_url": "https://api.github.com/users/SharkyBytes/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SharkyBytes/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SharkyBytes/subscriptions", + "organizations_url": "https://api.github.com/users/SharkyBytes/orgs", + "repos_url": "https://api.github.com/users/SharkyBytes/repos", + "events_url": "https://api.github.com/users/SharkyBytes/events{/privacy}", + "received_events_url": "https://api.github.com/users/SharkyBytes/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "geeky-hypertext629", + "id": 107639960, + "node_id": "U_kgDOBmp0mA", + "avatar_url": "https://avatars.githubusercontent.com/u/107639960?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/geeky-hypertext629", + "html_url": "https://github.com/geeky-hypertext629", + "followers_url": "https://api.github.com/users/geeky-hypertext629/followers", + "following_url": "https://api.github.com/users/geeky-hypertext629/following{/other_user}", + "gists_url": "https://api.github.com/users/geeky-hypertext629/gists{/gist_id}", + "starred_url": "https://api.github.com/users/geeky-hypertext629/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/geeky-hypertext629/subscriptions", + "organizations_url": "https://api.github.com/users/geeky-hypertext629/orgs", + "repos_url": "https://api.github.com/users/geeky-hypertext629/repos", + "events_url": "https://api.github.com/users/geeky-hypertext629/events{/privacy}", + "received_events_url": "https://api.github.com/users/geeky-hypertext629/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "DisturbedCrow", + "id": 277257760, + "node_id": "U_kgDOEIaeIA", + "avatar_url": "https://avatars.githubusercontent.com/u/277257760?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DisturbedCrow", + "html_url": "https://github.com/DisturbedCrow", + "followers_url": "https://api.github.com/users/DisturbedCrow/followers", + "following_url": "https://api.github.com/users/DisturbedCrow/following{/other_user}", + "gists_url": "https://api.github.com/users/DisturbedCrow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DisturbedCrow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DisturbedCrow/subscriptions", + "organizations_url": "https://api.github.com/users/DisturbedCrow/orgs", + "repos_url": "https://api.github.com/users/DisturbedCrow/repos", + "events_url": "https://api.github.com/users/DisturbedCrow/events{/privacy}", + "received_events_url": "https://api.github.com/users/DisturbedCrow/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "DebateAI": [ + { + "login": "rixitgithub", + "id": 128586763, + "node_id": "U_kgDOB6oUCw", + "avatar_url": "https://avatars.githubusercontent.com/u/128586763?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rixitgithub", + "html_url": "https://github.com/rixitgithub", + "followers_url": "https://api.github.com/users/rixitgithub/followers", + "following_url": "https://api.github.com/users/rixitgithub/following{/other_user}", + "gists_url": "https://api.github.com/users/rixitgithub/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rixitgithub/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rixitgithub/subscriptions", + "organizations_url": "https://api.github.com/users/rixitgithub/orgs", + "repos_url": "https://api.github.com/users/rixitgithub/repos", + "events_url": "https://api.github.com/users/rixitgithub/events{/privacy}", + "received_events_url": "https://api.github.com/users/rixitgithub/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 61 + }, + { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 31 + }, + { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "keshav-nischal", + "id": 91429557, + "node_id": "MDQ6VXNlcjkxNDI5NTU3", + "avatar_url": "https://avatars.githubusercontent.com/u/91429557?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/keshav-nischal", + "html_url": "https://github.com/keshav-nischal", + "followers_url": "https://api.github.com/users/keshav-nischal/followers", + "following_url": "https://api.github.com/users/keshav-nischal/following{/other_user}", + "gists_url": "https://api.github.com/users/keshav-nischal/gists{/gist_id}", + "starred_url": "https://api.github.com/users/keshav-nischal/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/keshav-nischal/subscriptions", + "organizations_url": "https://api.github.com/users/keshav-nischal/orgs", + "repos_url": "https://api.github.com/users/keshav-nischal/repos", + "events_url": "https://api.github.com/users/keshav-nischal/events{/privacy}", + "received_events_url": "https://api.github.com/users/keshav-nischal/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 9 + }, + { + "login": "ayush00git", + "id": 183527389, + "node_id": "U_kgDOCvBn3Q", + "avatar_url": "https://avatars.githubusercontent.com/u/183527389?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayush00git", + "html_url": "https://github.com/ayush00git", + "followers_url": "https://api.github.com/users/ayush00git/followers", + "following_url": "https://api.github.com/users/ayush00git/following{/other_user}", + "gists_url": "https://api.github.com/users/ayush00git/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayush00git/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayush00git/subscriptions", + "organizations_url": "https://api.github.com/users/ayush00git/orgs", + "repos_url": "https://api.github.com/users/ayush00git/repos", + "events_url": "https://api.github.com/users/ayush00git/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayush00git/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 9 + }, + { + "login": "ARCoder181105", + "id": 171220000, + "node_id": "U_kgDOCjScIA", + "avatar_url": "https://avatars.githubusercontent.com/u/171220000?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ARCoder181105", + "html_url": "https://github.com/ARCoder181105", + "followers_url": "https://api.github.com/users/ARCoder181105/followers", + "following_url": "https://api.github.com/users/ARCoder181105/following{/other_user}", + "gists_url": "https://api.github.com/users/ARCoder181105/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ARCoder181105/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ARCoder181105/subscriptions", + "organizations_url": "https://api.github.com/users/ARCoder181105/orgs", + "repos_url": "https://api.github.com/users/ARCoder181105/repos", + "events_url": "https://api.github.com/users/ARCoder181105/events{/privacy}", + "received_events_url": "https://api.github.com/users/ARCoder181105/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 8 + }, + { + "login": "ProthamD", + "id": 155388736, + "node_id": "U_kgDOCUMLQA", + "avatar_url": "https://avatars.githubusercontent.com/u/155388736?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ProthamD", + "html_url": "https://github.com/ProthamD", + "followers_url": "https://api.github.com/users/ProthamD/followers", + "following_url": "https://api.github.com/users/ProthamD/following{/other_user}", + "gists_url": "https://api.github.com/users/ProthamD/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ProthamD/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ProthamD/subscriptions", + "organizations_url": "https://api.github.com/users/ProthamD/orgs", + "repos_url": "https://api.github.com/users/ProthamD/repos", + "events_url": "https://api.github.com/users/ProthamD/events{/privacy}", + "received_events_url": "https://api.github.com/users/ProthamD/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "sakshi-in-loops", + "id": 57134054, + "node_id": "MDQ6VXNlcjU3MTM0MDU0", + "avatar_url": "https://avatars.githubusercontent.com/u/57134054?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sakshi-in-loops", + "html_url": "https://github.com/sakshi-in-loops", + "followers_url": "https://api.github.com/users/sakshi-in-loops/followers", + "following_url": "https://api.github.com/users/sakshi-in-loops/following{/other_user}", + "gists_url": "https://api.github.com/users/sakshi-in-loops/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sakshi-in-loops/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sakshi-in-loops/subscriptions", + "organizations_url": "https://api.github.com/users/sakshi-in-loops/orgs", + "repos_url": "https://api.github.com/users/sakshi-in-loops/repos", + "events_url": "https://api.github.com/users/sakshi-in-loops/events{/privacy}", + "received_events_url": "https://api.github.com/users/sakshi-in-loops/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "tripcoded", + "id": 206809037, + "node_id": "U_kgDODFOnzQ", + "avatar_url": "https://avatars.githubusercontent.com/u/206809037?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/tripcoded", + "html_url": "https://github.com/tripcoded", + "followers_url": "https://api.github.com/users/tripcoded/followers", + "following_url": "https://api.github.com/users/tripcoded/following{/other_user}", + "gists_url": "https://api.github.com/users/tripcoded/gists{/gist_id}", + "starred_url": "https://api.github.com/users/tripcoded/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tripcoded/subscriptions", + "organizations_url": "https://api.github.com/users/tripcoded/orgs", + "repos_url": "https://api.github.com/users/tripcoded/repos", + "events_url": "https://api.github.com/users/tripcoded/events{/privacy}", + "received_events_url": "https://api.github.com/users/tripcoded/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "samrat53", + "id": 122829487, + "node_id": "U_kgDOB1I6rw", + "avatar_url": "https://avatars.githubusercontent.com/u/122829487?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/samrat53", + "html_url": "https://github.com/samrat53", + "followers_url": "https://api.github.com/users/samrat53/followers", + "following_url": "https://api.github.com/users/samrat53/following{/other_user}", + "gists_url": "https://api.github.com/users/samrat53/gists{/gist_id}", + "starred_url": "https://api.github.com/users/samrat53/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/samrat53/subscriptions", + "organizations_url": "https://api.github.com/users/samrat53/orgs", + "repos_url": "https://api.github.com/users/samrat53/repos", + "events_url": "https://api.github.com/users/samrat53/events{/privacy}", + "received_events_url": "https://api.github.com/users/samrat53/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "221fa04732", + "id": 140374924, + "node_id": "U_kgDOCF3zjA", + "avatar_url": "https://avatars.githubusercontent.com/u/140374924?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/221fa04732", + "html_url": "https://github.com/221fa04732", + "followers_url": "https://api.github.com/users/221fa04732/followers", + "following_url": "https://api.github.com/users/221fa04732/following{/other_user}", + "gists_url": "https://api.github.com/users/221fa04732/gists{/gist_id}", + "starred_url": "https://api.github.com/users/221fa04732/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/221fa04732/subscriptions", + "organizations_url": "https://api.github.com/users/221fa04732/orgs", + "repos_url": "https://api.github.com/users/221fa04732/repos", + "events_url": "https://api.github.com/users/221fa04732/events{/privacy}", + "received_events_url": "https://api.github.com/users/221fa04732/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Ayushdas1904", + "id": 143927004, + "node_id": "U_kgDOCJQm3A", + "avatar_url": "https://avatars.githubusercontent.com/u/143927004?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ayushdas1904", + "html_url": "https://github.com/Ayushdas1904", + "followers_url": "https://api.github.com/users/Ayushdas1904/followers", + "following_url": "https://api.github.com/users/Ayushdas1904/following{/other_user}", + "gists_url": "https://api.github.com/users/Ayushdas1904/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ayushdas1904/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ayushdas1904/subscriptions", + "organizations_url": "https://api.github.com/users/Ayushdas1904/orgs", + "repos_url": "https://api.github.com/users/Ayushdas1904/repos", + "events_url": "https://api.github.com/users/Ayushdas1904/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ayushdas1904/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Zahnentferner", + "id": 1809436, + "node_id": "MDQ6VXNlcjE4MDk0MzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1809436?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Zahnentferner", + "html_url": "https://github.com/Zahnentferner", + "followers_url": "https://api.github.com/users/Zahnentferner/followers", + "following_url": "https://api.github.com/users/Zahnentferner/following{/other_user}", + "gists_url": "https://api.github.com/users/Zahnentferner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zahnentferner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zahnentferner/subscriptions", + "organizations_url": "https://api.github.com/users/Zahnentferner/orgs", + "repos_url": "https://api.github.com/users/Zahnentferner/repos", + "events_url": "https://api.github.com/users/Zahnentferner/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zahnentferner/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Naman-B-Parlecha", + "id": 140307212, + "node_id": "U_kgDOCFzrDA", + "avatar_url": "https://avatars.githubusercontent.com/u/140307212?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Naman-B-Parlecha", + "html_url": "https://github.com/Naman-B-Parlecha", + "followers_url": "https://api.github.com/users/Naman-B-Parlecha/followers", + "following_url": "https://api.github.com/users/Naman-B-Parlecha/following{/other_user}", + "gists_url": "https://api.github.com/users/Naman-B-Parlecha/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Naman-B-Parlecha/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Naman-B-Parlecha/subscriptions", + "organizations_url": "https://api.github.com/users/Naman-B-Parlecha/orgs", + "repos_url": "https://api.github.com/users/Naman-B-Parlecha/repos", + "events_url": "https://api.github.com/users/Naman-B-Parlecha/events{/privacy}", + "received_events_url": "https://api.github.com/users/Naman-B-Parlecha/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "optmyzrKeshav", + "id": 167280192, + "node_id": "U_kgDOCfh-QA", + "avatar_url": "https://avatars.githubusercontent.com/u/167280192?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/optmyzrKeshav", + "html_url": "https://github.com/optmyzrKeshav", + "followers_url": "https://api.github.com/users/optmyzrKeshav/followers", + "following_url": "https://api.github.com/users/optmyzrKeshav/following{/other_user}", + "gists_url": "https://api.github.com/users/optmyzrKeshav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/optmyzrKeshav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/optmyzrKeshav/subscriptions", + "organizations_url": "https://api.github.com/users/optmyzrKeshav/orgs", + "repos_url": "https://api.github.com/users/optmyzrKeshav/repos", + "events_url": "https://api.github.com/users/optmyzrKeshav/events{/privacy}", + "received_events_url": "https://api.github.com/users/optmyzrKeshav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "Rishab87", + "id": 138858208, + "node_id": "U_kgDOCEbO4A", + "avatar_url": "https://avatars.githubusercontent.com/u/138858208?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Rishab87", + "html_url": "https://github.com/Rishab87", + "followers_url": "https://api.github.com/users/Rishab87/followers", + "following_url": "https://api.github.com/users/Rishab87/following{/other_user}", + "gists_url": "https://api.github.com/users/Rishab87/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Rishab87/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Rishab87/subscriptions", + "organizations_url": "https://api.github.com/users/Rishab87/orgs", + "repos_url": "https://api.github.com/users/Rishab87/repos", + "events_url": "https://api.github.com/users/Rishab87/events{/privacy}", + "received_events_url": "https://api.github.com/users/Rishab87/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "Devr.AI": [ + { + "login": "smokeyScraper", + "id": 116462808, + "node_id": "U_kgDOBvEU2A", + "avatar_url": "https://avatars.githubusercontent.com/u/116462808?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/smokeyScraper", + "html_url": "https://github.com/smokeyScraper", + "followers_url": "https://api.github.com/users/smokeyScraper/followers", + "following_url": "https://api.github.com/users/smokeyScraper/following{/other_user}", + "gists_url": "https://api.github.com/users/smokeyScraper/gists{/gist_id}", + "starred_url": "https://api.github.com/users/smokeyScraper/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/smokeyScraper/subscriptions", + "organizations_url": "https://api.github.com/users/smokeyScraper/orgs", + "repos_url": "https://api.github.com/users/smokeyScraper/repos", + "events_url": "https://api.github.com/users/smokeyScraper/events{/privacy}", + "received_events_url": "https://api.github.com/users/smokeyScraper/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 165 + }, + { + "login": "chandansgowda", + "id": 41890434, + "node_id": "MDQ6VXNlcjQxODkwNDM0", + "avatar_url": "https://avatars.githubusercontent.com/u/41890434?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/chandansgowda", + "html_url": "https://github.com/chandansgowda", + "followers_url": "https://api.github.com/users/chandansgowda/followers", + "following_url": "https://api.github.com/users/chandansgowda/following{/other_user}", + "gists_url": "https://api.github.com/users/chandansgowda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chandansgowda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chandansgowda/subscriptions", + "organizations_url": "https://api.github.com/users/chandansgowda/orgs", + "repos_url": "https://api.github.com/users/chandansgowda/repos", + "events_url": "https://api.github.com/users/chandansgowda/events{/privacy}", + "received_events_url": "https://api.github.com/users/chandansgowda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 42 + }, + { + "login": "bakayu", + "id": 56398566, + "node_id": "MDQ6VXNlcjU2Mzk4NTY2", + "avatar_url": "https://avatars.githubusercontent.com/u/56398566?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bakayu", + "html_url": "https://github.com/bakayu", + "followers_url": "https://api.github.com/users/bakayu/followers", + "following_url": "https://api.github.com/users/bakayu/following{/other_user}", + "gists_url": "https://api.github.com/users/bakayu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bakayu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bakayu/subscriptions", + "organizations_url": "https://api.github.com/users/bakayu/orgs", + "repos_url": "https://api.github.com/users/bakayu/repos", + "events_url": "https://api.github.com/users/bakayu/events{/privacy}", + "received_events_url": "https://api.github.com/users/bakayu/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 32 + }, + { + "login": "DhruvK278", + "id": 136009129, + "node_id": "U_kgDOCBtVqQ", + "avatar_url": "https://avatars.githubusercontent.com/u/136009129?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DhruvK278", + "html_url": "https://github.com/DhruvK278", + "followers_url": "https://api.github.com/users/DhruvK278/followers", + "following_url": "https://api.github.com/users/DhruvK278/following{/other_user}", + "gists_url": "https://api.github.com/users/DhruvK278/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DhruvK278/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DhruvK278/subscriptions", + "organizations_url": "https://api.github.com/users/DhruvK278/orgs", + "repos_url": "https://api.github.com/users/DhruvK278/repos", + "events_url": "https://api.github.com/users/DhruvK278/events{/privacy}", + "received_events_url": "https://api.github.com/users/DhruvK278/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 12 + }, + { + "login": "ShivamMenda", + "id": 74780977, + "node_id": "MDQ6VXNlcjc0NzgwOTc3", + "avatar_url": "https://avatars.githubusercontent.com/u/74780977?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ShivamMenda", + "html_url": "https://github.com/ShivamMenda", + "followers_url": "https://api.github.com/users/ShivamMenda/followers", + "following_url": "https://api.github.com/users/ShivamMenda/following{/other_user}", + "gists_url": "https://api.github.com/users/ShivamMenda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ShivamMenda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ShivamMenda/subscriptions", + "organizations_url": "https://api.github.com/users/ShivamMenda/orgs", + "repos_url": "https://api.github.com/users/ShivamMenda/repos", + "events_url": "https://api.github.com/users/ShivamMenda/events{/privacy}", + "received_events_url": "https://api.github.com/users/ShivamMenda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 12 + }, + { + "login": "SharkyBytes", + "id": 129230225, + "node_id": "U_kgDOB7PlkQ", + "avatar_url": "https://avatars.githubusercontent.com/u/129230225?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SharkyBytes", + "html_url": "https://github.com/SharkyBytes", + "followers_url": "https://api.github.com/users/SharkyBytes/followers", + "following_url": "https://api.github.com/users/SharkyBytes/following{/other_user}", + "gists_url": "https://api.github.com/users/SharkyBytes/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SharkyBytes/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SharkyBytes/subscriptions", + "organizations_url": "https://api.github.com/users/SharkyBytes/orgs", + "repos_url": "https://api.github.com/users/SharkyBytes/repos", + "events_url": "https://api.github.com/users/SharkyBytes/events{/privacy}", + "received_events_url": "https://api.github.com/users/SharkyBytes/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 10 + }, + { + "login": "Dharya4242", + "id": 119648064, + "node_id": "U_kgDOByGvQA", + "avatar_url": "https://avatars.githubusercontent.com/u/119648064?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dharya4242", + "html_url": "https://github.com/Dharya4242", + "followers_url": "https://api.github.com/users/Dharya4242/followers", + "following_url": "https://api.github.com/users/Dharya4242/following{/other_user}", + "gists_url": "https://api.github.com/users/Dharya4242/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dharya4242/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dharya4242/subscriptions", + "organizations_url": "https://api.github.com/users/Dharya4242/orgs", + "repos_url": "https://api.github.com/users/Dharya4242/repos", + "events_url": "https://api.github.com/users/Dharya4242/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dharya4242/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 8 + }, + { + "login": "Aditya30ag", + "id": 162010355, + "node_id": "U_kgDOCagU8w", + "avatar_url": "https://avatars.githubusercontent.com/u/162010355?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Aditya30ag", + "html_url": "https://github.com/Aditya30ag", + "followers_url": "https://api.github.com/users/Aditya30ag/followers", + "following_url": "https://api.github.com/users/Aditya30ag/following{/other_user}", + "gists_url": "https://api.github.com/users/Aditya30ag/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Aditya30ag/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Aditya30ag/subscriptions", + "organizations_url": "https://api.github.com/users/Aditya30ag/orgs", + "repos_url": "https://api.github.com/users/Aditya30ag/repos", + "events_url": "https://api.github.com/users/Aditya30ag/events{/privacy}", + "received_events_url": "https://api.github.com/users/Aditya30ag/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "Vivekgupta008", + "id": 124180585, + "node_id": "U_kgDOB2bYaQ", + "avatar_url": "https://avatars.githubusercontent.com/u/124180585?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Vivekgupta008", + "html_url": "https://github.com/Vivekgupta008", + "followers_url": "https://api.github.com/users/Vivekgupta008/followers", + "following_url": "https://api.github.com/users/Vivekgupta008/following{/other_user}", + "gists_url": "https://api.github.com/users/Vivekgupta008/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Vivekgupta008/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Vivekgupta008/subscriptions", + "organizations_url": "https://api.github.com/users/Vivekgupta008/orgs", + "repos_url": "https://api.github.com/users/Vivekgupta008/repos", + "events_url": "https://api.github.com/users/Vivekgupta008/events{/privacy}", + "received_events_url": "https://api.github.com/users/Vivekgupta008/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "Eli4479", + "id": 98244788, + "node_id": "U_kgDOBdsYtA", + "avatar_url": "https://avatars.githubusercontent.com/u/98244788?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Eli4479", + "html_url": "https://github.com/Eli4479", + "followers_url": "https://api.github.com/users/Eli4479/followers", + "following_url": "https://api.github.com/users/Eli4479/following{/other_user}", + "gists_url": "https://api.github.com/users/Eli4479/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Eli4479/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Eli4479/subscriptions", + "organizations_url": "https://api.github.com/users/Eli4479/orgs", + "repos_url": "https://api.github.com/users/Eli4479/repos", + "events_url": "https://api.github.com/users/Eli4479/events{/privacy}", + "received_events_url": "https://api.github.com/users/Eli4479/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 6 + }, + { + "login": "ParagGhatage", + "id": 146347793, + "node_id": "U_kgDOCLkXEQ", + "avatar_url": "https://avatars.githubusercontent.com/u/146347793?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ParagGhatage", + "html_url": "https://github.com/ParagGhatage", + "followers_url": "https://api.github.com/users/ParagGhatage/followers", + "following_url": "https://api.github.com/users/ParagGhatage/following{/other_user}", + "gists_url": "https://api.github.com/users/ParagGhatage/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ParagGhatage/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ParagGhatage/subscriptions", + "organizations_url": "https://api.github.com/users/ParagGhatage/orgs", + "repos_url": "https://api.github.com/users/ParagGhatage/repos", + "events_url": "https://api.github.com/users/ParagGhatage/events{/privacy}", + "received_events_url": "https://api.github.com/users/ParagGhatage/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "ishaanxgupta", + "id": 124028055, + "node_id": "U_kgDOB2SElw", + "avatar_url": "https://avatars.githubusercontent.com/u/124028055?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ishaanxgupta", + "html_url": "https://github.com/ishaanxgupta", + "followers_url": "https://api.github.com/users/ishaanxgupta/followers", + "following_url": "https://api.github.com/users/ishaanxgupta/following{/other_user}", + "gists_url": "https://api.github.com/users/ishaanxgupta/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ishaanxgupta/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ishaanxgupta/subscriptions", + "organizations_url": "https://api.github.com/users/ishaanxgupta/orgs", + "repos_url": "https://api.github.com/users/ishaanxgupta/repos", + "events_url": "https://api.github.com/users/ishaanxgupta/events{/privacy}", + "received_events_url": "https://api.github.com/users/ishaanxgupta/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "PinJinx", + "id": 177038078, + "node_id": "U_kgDOCo1i_g", + "avatar_url": "https://avatars.githubusercontent.com/u/177038078?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PinJinx", + "html_url": "https://github.com/PinJinx", + "followers_url": "https://api.github.com/users/PinJinx/followers", + "following_url": "https://api.github.com/users/PinJinx/following{/other_user}", + "gists_url": "https://api.github.com/users/PinJinx/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PinJinx/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PinJinx/subscriptions", + "organizations_url": "https://api.github.com/users/PinJinx/orgs", + "repos_url": "https://api.github.com/users/PinJinx/repos", + "events_url": "https://api.github.com/users/PinJinx/events{/privacy}", + "received_events_url": "https://api.github.com/users/PinJinx/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "mithun50", + "id": 99024517, + "node_id": "U_kgDOBeb-hQ", + "avatar_url": "https://avatars.githubusercontent.com/u/99024517?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mithun50", + "html_url": "https://github.com/mithun50", + "followers_url": "https://api.github.com/users/mithun50/followers", + "following_url": "https://api.github.com/users/mithun50/following{/other_user}", + "gists_url": "https://api.github.com/users/mithun50/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mithun50/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mithun50/subscriptions", + "organizations_url": "https://api.github.com/users/mithun50/orgs", + "repos_url": "https://api.github.com/users/mithun50/repos", + "events_url": "https://api.github.com/users/mithun50/events{/privacy}", + "received_events_url": "https://api.github.com/users/mithun50/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "PranshuLakhotia", + "id": 164731237, + "node_id": "U_kgDOCdGZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/164731237?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PranshuLakhotia", + "html_url": "https://github.com/PranshuLakhotia", + "followers_url": "https://api.github.com/users/PranshuLakhotia/followers", + "following_url": "https://api.github.com/users/PranshuLakhotia/following{/other_user}", + "gists_url": "https://api.github.com/users/PranshuLakhotia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PranshuLakhotia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PranshuLakhotia/subscriptions", + "organizations_url": "https://api.github.com/users/PranshuLakhotia/orgs", + "repos_url": "https://api.github.com/users/PranshuLakhotia/repos", + "events_url": "https://api.github.com/users/PranshuLakhotia/events{/privacy}", + "received_events_url": "https://api.github.com/users/PranshuLakhotia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Rudra775", + "id": 131602828, + "node_id": "U_kgDOB9gZjA", + "avatar_url": "https://avatars.githubusercontent.com/u/131602828?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Rudra775", + "html_url": "https://github.com/Rudra775", + "followers_url": "https://api.github.com/users/Rudra775/followers", + "following_url": "https://api.github.com/users/Rudra775/following{/other_user}", + "gists_url": "https://api.github.com/users/Rudra775/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Rudra775/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Rudra775/subscriptions", + "organizations_url": "https://api.github.com/users/Rudra775/orgs", + "repos_url": "https://api.github.com/users/Rudra775/repos", + "events_url": "https://api.github.com/users/Rudra775/events{/privacy}", + "received_events_url": "https://api.github.com/users/Rudra775/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "DisturbedCrow", + "id": 277257760, + "node_id": "U_kgDOEIaeIA", + "avatar_url": "https://avatars.githubusercontent.com/u/277257760?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DisturbedCrow", + "html_url": "https://github.com/DisturbedCrow", + "followers_url": "https://api.github.com/users/DisturbedCrow/followers", + "following_url": "https://api.github.com/users/DisturbedCrow/following{/other_user}", + "gists_url": "https://api.github.com/users/DisturbedCrow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DisturbedCrow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DisturbedCrow/subscriptions", + "organizations_url": "https://api.github.com/users/DisturbedCrow/orgs", + "repos_url": "https://api.github.com/users/DisturbedCrow/repos", + "events_url": "https://api.github.com/users/DisturbedCrow/events{/privacy}", + "received_events_url": "https://api.github.com/users/DisturbedCrow/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Zahnentferner", + "id": 1809436, + "node_id": "MDQ6VXNlcjE4MDk0MzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/1809436?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Zahnentferner", + "html_url": "https://github.com/Zahnentferner", + "followers_url": "https://api.github.com/users/Zahnentferner/followers", + "following_url": "https://api.github.com/users/Zahnentferner/following{/other_user}", + "gists_url": "https://api.github.com/users/Zahnentferner/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Zahnentferner/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Zahnentferner/subscriptions", + "organizations_url": "https://api.github.com/users/Zahnentferner/orgs", + "repos_url": "https://api.github.com/users/Zahnentferner/repos", + "events_url": "https://api.github.com/users/Zahnentferner/events{/privacy}", + "received_events_url": "https://api.github.com/users/Zahnentferner/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "HrishikeshUchake", + "id": 135912491, + "node_id": "U_kgDOCBncKw", + "avatar_url": "https://avatars.githubusercontent.com/u/135912491?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/HrishikeshUchake", + "html_url": "https://github.com/HrishikeshUchake", + "followers_url": "https://api.github.com/users/HrishikeshUchake/followers", + "following_url": "https://api.github.com/users/HrishikeshUchake/following{/other_user}", + "gists_url": "https://api.github.com/users/HrishikeshUchake/gists{/gist_id}", + "starred_url": "https://api.github.com/users/HrishikeshUchake/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/HrishikeshUchake/subscriptions", + "organizations_url": "https://api.github.com/users/HrishikeshUchake/orgs", + "repos_url": "https://api.github.com/users/HrishikeshUchake/repos", + "events_url": "https://api.github.com/users/HrishikeshUchake/events{/privacy}", + "received_events_url": "https://api.github.com/users/HrishikeshUchake/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "prakharsingh-74", + "id": 148339919, + "node_id": "U_kgDOCNd8zw", + "avatar_url": "https://avatars.githubusercontent.com/u/148339919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prakharsingh-74", + "html_url": "https://github.com/prakharsingh-74", + "followers_url": "https://api.github.com/users/prakharsingh-74/followers", + "following_url": "https://api.github.com/users/prakharsingh-74/following{/other_user}", + "gists_url": "https://api.github.com/users/prakharsingh-74/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prakharsingh-74/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prakharsingh-74/subscriptions", + "organizations_url": "https://api.github.com/users/prakharsingh-74/orgs", + "repos_url": "https://api.github.com/users/prakharsingh-74/repos", + "events_url": "https://api.github.com/users/prakharsingh-74/events{/privacy}", + "received_events_url": "https://api.github.com/users/prakharsingh-74/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "vidit-maheshwari", + "id": 134200004, + "node_id": "U_kgDOB_-6xA", + "avatar_url": "https://avatars.githubusercontent.com/u/134200004?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vidit-maheshwari", + "html_url": "https://github.com/vidit-maheshwari", + "followers_url": "https://api.github.com/users/vidit-maheshwari/followers", + "following_url": "https://api.github.com/users/vidit-maheshwari/following{/other_user}", + "gists_url": "https://api.github.com/users/vidit-maheshwari/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vidit-maheshwari/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vidit-maheshwari/subscriptions", + "organizations_url": "https://api.github.com/users/vidit-maheshwari/orgs", + "repos_url": "https://api.github.com/users/vidit-maheshwari/repos", + "events_url": "https://api.github.com/users/vidit-maheshwari/events{/privacy}", + "received_events_url": "https://api.github.com/users/vidit-maheshwari/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "singhshaurya01", + "id": 222411767, + "node_id": "U_kgDODUG79w", + "avatar_url": "https://avatars.githubusercontent.com/u/222411767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/singhshaurya01", + "html_url": "https://github.com/singhshaurya01", + "followers_url": "https://api.github.com/users/singhshaurya01/followers", + "following_url": "https://api.github.com/users/singhshaurya01/following{/other_user}", + "gists_url": "https://api.github.com/users/singhshaurya01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/singhshaurya01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/singhshaurya01/subscriptions", + "organizations_url": "https://api.github.com/users/singhshaurya01/orgs", + "repos_url": "https://api.github.com/users/singhshaurya01/repos", + "events_url": "https://api.github.com/users/singhshaurya01/events{/privacy}", + "received_events_url": "https://api.github.com/users/singhshaurya01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "Resonate-Website": [ + { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 36 + }, + { + "login": "aniket866", + "id": 200447751, + "node_id": "U_kgDOC_KXBw", + "avatar_url": "https://avatars.githubusercontent.com/u/200447751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aniket866", + "html_url": "https://github.com/aniket866", + "followers_url": "https://api.github.com/users/aniket866/followers", + "following_url": "https://api.github.com/users/aniket866/following{/other_user}", + "gists_url": "https://api.github.com/users/aniket866/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aniket866/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aniket866/subscriptions", + "organizations_url": "https://api.github.com/users/aniket866/orgs", + "repos_url": "https://api.github.com/users/aniket866/repos", + "events_url": "https://api.github.com/users/aniket866/events{/privacy}", + "received_events_url": "https://api.github.com/users/aniket866/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 15 + }, + { + "login": "Muneerali199", + "id": 186174121, + "node_id": "U_kgDOCxjKqQ", + "avatar_url": "https://avatars.githubusercontent.com/u/186174121?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Muneerali199", + "html_url": "https://github.com/Muneerali199", + "followers_url": "https://api.github.com/users/Muneerali199/followers", + "following_url": "https://api.github.com/users/Muneerali199/following{/other_user}", + "gists_url": "https://api.github.com/users/Muneerali199/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Muneerali199/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Muneerali199/subscriptions", + "organizations_url": "https://api.github.com/users/Muneerali199/orgs", + "repos_url": "https://api.github.com/users/Muneerali199/repos", + "events_url": "https://api.github.com/users/Muneerali199/events{/privacy}", + "received_events_url": "https://api.github.com/users/Muneerali199/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 14 + }, + { + "login": "mahatolalit", + "id": 166677345, + "node_id": "U_kgDOCe9LYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/166677345?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mahatolalit", + "html_url": "https://github.com/mahatolalit", + "followers_url": "https://api.github.com/users/mahatolalit/followers", + "following_url": "https://api.github.com/users/mahatolalit/following{/other_user}", + "gists_url": "https://api.github.com/users/mahatolalit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mahatolalit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mahatolalit/subscriptions", + "organizations_url": "https://api.github.com/users/mahatolalit/orgs", + "repos_url": "https://api.github.com/users/mahatolalit/repos", + "events_url": "https://api.github.com/users/mahatolalit/events{/privacy}", + "received_events_url": "https://api.github.com/users/mahatolalit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 12 + }, + { + "login": "Mayank4352", + "id": 120477383, + "node_id": "U_kgDOBy5Wxw", + "avatar_url": "https://avatars.githubusercontent.com/u/120477383?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Mayank4352", + "html_url": "https://github.com/Mayank4352", + "followers_url": "https://api.github.com/users/Mayank4352/followers", + "following_url": "https://api.github.com/users/Mayank4352/following{/other_user}", + "gists_url": "https://api.github.com/users/Mayank4352/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mayank4352/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mayank4352/subscriptions", + "organizations_url": "https://api.github.com/users/Mayank4352/orgs", + "repos_url": "https://api.github.com/users/Mayank4352/repos", + "events_url": "https://api.github.com/users/Mayank4352/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mayank4352/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 7 + }, + { + "login": "dependabot[bot]", + "id": 49699333, + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "html_url": "https://github.com/apps/dependabot", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "JaYRaNa213", + "id": 172463082, + "node_id": "U_kgDOCkeT6g", + "avatar_url": "https://avatars.githubusercontent.com/u/172463082?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaYRaNa213", + "html_url": "https://github.com/JaYRaNa213", + "followers_url": "https://api.github.com/users/JaYRaNa213/followers", + "following_url": "https://api.github.com/users/JaYRaNa213/following{/other_user}", + "gists_url": "https://api.github.com/users/JaYRaNa213/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaYRaNa213/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaYRaNa213/subscriptions", + "organizations_url": "https://api.github.com/users/JaYRaNa213/orgs", + "repos_url": "https://api.github.com/users/JaYRaNa213/repos", + "events_url": "https://api.github.com/users/JaYRaNa213/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaYRaNa213/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "chandansgowda", + "id": 41890434, + "node_id": "MDQ6VXNlcjQxODkwNDM0", + "avatar_url": "https://avatars.githubusercontent.com/u/41890434?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/chandansgowda", + "html_url": "https://github.com/chandansgowda", + "followers_url": "https://api.github.com/users/chandansgowda/followers", + "following_url": "https://api.github.com/users/chandansgowda/following{/other_user}", + "gists_url": "https://api.github.com/users/chandansgowda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/chandansgowda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chandansgowda/subscriptions", + "organizations_url": "https://api.github.com/users/chandansgowda/orgs", + "repos_url": "https://api.github.com/users/chandansgowda/repos", + "events_url": "https://api.github.com/users/chandansgowda/events{/privacy}", + "received_events_url": "https://api.github.com/users/chandansgowda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "ayushman1210", + "id": 138183570, + "node_id": "U_kgDOCDyDkg", + "avatar_url": "https://avatars.githubusercontent.com/u/138183570?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayushman1210", + "html_url": "https://github.com/ayushman1210", + "followers_url": "https://api.github.com/users/ayushman1210/followers", + "following_url": "https://api.github.com/users/ayushman1210/following{/other_user}", + "gists_url": "https://api.github.com/users/ayushman1210/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayushman1210/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayushman1210/subscriptions", + "organizations_url": "https://api.github.com/users/ayushman1210/orgs", + "repos_url": "https://api.github.com/users/ayushman1210/repos", + "events_url": "https://api.github.com/users/ayushman1210/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayushman1210/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 3 + }, + { + "login": "udaykiran243", + "id": 132606304, + "node_id": "U_kgDOB-dpYA", + "avatar_url": "https://avatars.githubusercontent.com/u/132606304?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/udaykiran243", + "html_url": "https://github.com/udaykiran243", + "followers_url": "https://api.github.com/users/udaykiran243/followers", + "following_url": "https://api.github.com/users/udaykiran243/following{/other_user}", + "gists_url": "https://api.github.com/users/udaykiran243/gists{/gist_id}", + "starred_url": "https://api.github.com/users/udaykiran243/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/udaykiran243/subscriptions", + "organizations_url": "https://api.github.com/users/udaykiran243/orgs", + "repos_url": "https://api.github.com/users/udaykiran243/repos", + "events_url": "https://api.github.com/users/udaykiran243/events{/privacy}", + "received_events_url": "https://api.github.com/users/udaykiran243/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "SimardeepSingh1450", + "id": 92221517, + "node_id": "U_kgDOBX8wTQ", + "avatar_url": "https://avatars.githubusercontent.com/u/92221517?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SimardeepSingh1450", + "html_url": "https://github.com/SimardeepSingh1450", + "followers_url": "https://api.github.com/users/SimardeepSingh1450/followers", + "following_url": "https://api.github.com/users/SimardeepSingh1450/following{/other_user}", + "gists_url": "https://api.github.com/users/SimardeepSingh1450/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SimardeepSingh1450/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SimardeepSingh1450/subscriptions", + "organizations_url": "https://api.github.com/users/SimardeepSingh1450/orgs", + "repos_url": "https://api.github.com/users/SimardeepSingh1450/repos", + "events_url": "https://api.github.com/users/SimardeepSingh1450/events{/privacy}", + "received_events_url": "https://api.github.com/users/SimardeepSingh1450/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "AyusKumarPathak", + "id": 150468678, + "node_id": "U_kgDOCPf4Rg", + "avatar_url": "https://avatars.githubusercontent.com/u/150468678?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AyusKumarPathak", + "html_url": "https://github.com/AyusKumarPathak", + "followers_url": "https://api.github.com/users/AyusKumarPathak/followers", + "following_url": "https://api.github.com/users/AyusKumarPathak/following{/other_user}", + "gists_url": "https://api.github.com/users/AyusKumarPathak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AyusKumarPathak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AyusKumarPathak/subscriptions", + "organizations_url": "https://api.github.com/users/AyusKumarPathak/orgs", + "repos_url": "https://api.github.com/users/AyusKumarPathak/repos", + "events_url": "https://api.github.com/users/AyusKumarPathak/events{/privacy}", + "received_events_url": "https://api.github.com/users/AyusKumarPathak/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "akshat3410", + "id": 69171692, + "node_id": "MDQ6VXNlcjY5MTcxNjky", + "avatar_url": "https://avatars.githubusercontent.com/u/69171692?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/akshat3410", + "html_url": "https://github.com/akshat3410", + "followers_url": "https://api.github.com/users/akshat3410/followers", + "following_url": "https://api.github.com/users/akshat3410/following{/other_user}", + "gists_url": "https://api.github.com/users/akshat3410/gists{/gist_id}", + "starred_url": "https://api.github.com/users/akshat3410/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/akshat3410/subscriptions", + "organizations_url": "https://api.github.com/users/akshat3410/orgs", + "repos_url": "https://api.github.com/users/akshat3410/repos", + "events_url": "https://api.github.com/users/akshat3410/events{/privacy}", + "received_events_url": "https://api.github.com/users/akshat3410/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "bibekjoshi01", + "id": 107404712, + "node_id": "U_kgDOBmbdqA", + "avatar_url": "https://avatars.githubusercontent.com/u/107404712?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bibekjoshi01", + "html_url": "https://github.com/bibekjoshi01", + "followers_url": "https://api.github.com/users/bibekjoshi01/followers", + "following_url": "https://api.github.com/users/bibekjoshi01/following{/other_user}", + "gists_url": "https://api.github.com/users/bibekjoshi01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bibekjoshi01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bibekjoshi01/subscriptions", + "organizations_url": "https://api.github.com/users/bibekjoshi01/orgs", + "repos_url": "https://api.github.com/users/bibekjoshi01/repos", + "events_url": "https://api.github.com/users/bibekjoshi01/events{/privacy}", + "received_events_url": "https://api.github.com/users/bibekjoshi01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "kunal-bunkar", + "id": 183866603, + "node_id": "U_kgDOCvWU6w", + "avatar_url": "https://avatars.githubusercontent.com/u/183866603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kunal-bunkar", + "html_url": "https://github.com/kunal-bunkar", + "followers_url": "https://api.github.com/users/kunal-bunkar/followers", + "following_url": "https://api.github.com/users/kunal-bunkar/following{/other_user}", + "gists_url": "https://api.github.com/users/kunal-bunkar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kunal-bunkar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kunal-bunkar/subscriptions", + "organizations_url": "https://api.github.com/users/kunal-bunkar/orgs", + "repos_url": "https://api.github.com/users/kunal-bunkar/repos", + "events_url": "https://api.github.com/users/kunal-bunkar/events{/privacy}", + "received_events_url": "https://api.github.com/users/kunal-bunkar/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "prajjwalyd", + "id": 111794524, + "node_id": "U_kgDOBqnZXA", + "avatar_url": "https://avatars.githubusercontent.com/u/111794524?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prajjwalyd", + "html_url": "https://github.com/prajjwalyd", + "followers_url": "https://api.github.com/users/prajjwalyd/followers", + "following_url": "https://api.github.com/users/prajjwalyd/following{/other_user}", + "gists_url": "https://api.github.com/users/prajjwalyd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prajjwalyd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prajjwalyd/subscriptions", + "organizations_url": "https://api.github.com/users/prajjwalyd/orgs", + "repos_url": "https://api.github.com/users/prajjwalyd/repos", + "events_url": "https://api.github.com/users/prajjwalyd/events{/privacy}", + "received_events_url": "https://api.github.com/users/prajjwalyd/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "saurabh007007", + "id": 116506457, + "node_id": "U_kgDOBvG_WQ", + "avatar_url": "https://avatars.githubusercontent.com/u/116506457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/saurabh007007", + "html_url": "https://github.com/saurabh007007", + "followers_url": "https://api.github.com/users/saurabh007007/followers", + "following_url": "https://api.github.com/users/saurabh007007/following{/other_user}", + "gists_url": "https://api.github.com/users/saurabh007007/gists{/gist_id}", + "starred_url": "https://api.github.com/users/saurabh007007/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/saurabh007007/subscriptions", + "organizations_url": "https://api.github.com/users/saurabh007007/orgs", + "repos_url": "https://api.github.com/users/saurabh007007/repos", + "events_url": "https://api.github.com/users/saurabh007007/events{/privacy}", + "received_events_url": "https://api.github.com/users/saurabh007007/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "4555jan", + "id": 119113736, + "node_id": "U_kgDOBxmICA", + "avatar_url": "https://avatars.githubusercontent.com/u/119113736?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/4555jan", + "html_url": "https://github.com/4555jan", + "followers_url": "https://api.github.com/users/4555jan/followers", + "following_url": "https://api.github.com/users/4555jan/following{/other_user}", + "gists_url": "https://api.github.com/users/4555jan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/4555jan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/4555jan/subscriptions", + "organizations_url": "https://api.github.com/users/4555jan/orgs", + "repos_url": "https://api.github.com/users/4555jan/repos", + "events_url": "https://api.github.com/users/4555jan/events{/privacy}", + "received_events_url": "https://api.github.com/users/4555jan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "piyusha-chopra", + "id": 197360966, + "node_id": "U_kgDOC8N9Rg", + "avatar_url": "https://avatars.githubusercontent.com/u/197360966?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/piyusha-chopra", + "html_url": "https://github.com/piyusha-chopra", + "followers_url": "https://api.github.com/users/piyusha-chopra/followers", + "following_url": "https://api.github.com/users/piyusha-chopra/following{/other_user}", + "gists_url": "https://api.github.com/users/piyusha-chopra/gists{/gist_id}", + "starred_url": "https://api.github.com/users/piyusha-chopra/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/piyusha-chopra/subscriptions", + "organizations_url": "https://api.github.com/users/piyusha-chopra/orgs", + "repos_url": "https://api.github.com/users/piyusha-chopra/repos", + "events_url": "https://api.github.com/users/piyusha-chopra/events{/privacy}", + "received_events_url": "https://api.github.com/users/piyusha-chopra/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "singhshaurya01", + "id": 222411767, + "node_id": "U_kgDODUG79w", + "avatar_url": "https://avatars.githubusercontent.com/u/222411767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/singhshaurya01", + "html_url": "https://github.com/singhshaurya01", + "followers_url": "https://api.github.com/users/singhshaurya01/followers", + "following_url": "https://api.github.com/users/singhshaurya01/following{/other_user}", + "gists_url": "https://api.github.com/users/singhshaurya01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/singhshaurya01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/singhshaurya01/subscriptions", + "organizations_url": "https://api.github.com/users/singhshaurya01/orgs", + "repos_url": "https://api.github.com/users/singhshaurya01/repos", + "events_url": "https://api.github.com/users/singhshaurya01/events{/privacy}", + "received_events_url": "https://api.github.com/users/singhshaurya01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ], + "Ell-ena": [ + { + "login": "SharkyBytes", + "id": 129230225, + "node_id": "U_kgDOB7PlkQ", + "avatar_url": "https://avatars.githubusercontent.com/u/129230225?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SharkyBytes", + "html_url": "https://github.com/SharkyBytes", + "followers_url": "https://api.github.com/users/SharkyBytes/followers", + "following_url": "https://api.github.com/users/SharkyBytes/following{/other_user}", + "gists_url": "https://api.github.com/users/SharkyBytes/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SharkyBytes/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SharkyBytes/subscriptions", + "organizations_url": "https://api.github.com/users/SharkyBytes/orgs", + "repos_url": "https://api.github.com/users/SharkyBytes/repos", + "events_url": "https://api.github.com/users/SharkyBytes/events{/privacy}", + "received_events_url": "https://api.github.com/users/SharkyBytes/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 101 + }, + { + "login": "may-tas", + "id": 135056339, + "node_id": "U_kgDOCAzL0w", + "avatar_url": "https://avatars.githubusercontent.com/u/135056339?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/may-tas", + "html_url": "https://github.com/may-tas", + "followers_url": "https://api.github.com/users/may-tas/followers", + "following_url": "https://api.github.com/users/may-tas/following{/other_user}", + "gists_url": "https://api.github.com/users/may-tas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/may-tas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/may-tas/subscriptions", + "organizations_url": "https://api.github.com/users/may-tas/orgs", + "repos_url": "https://api.github.com/users/may-tas/repos", + "events_url": "https://api.github.com/users/may-tas/events{/privacy}", + "received_events_url": "https://api.github.com/users/may-tas/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 19 + }, + { + "login": "g-k-s-03", + "id": 226368649, + "node_id": "U_kgDODX4ciQ", + "avatar_url": "https://avatars.githubusercontent.com/u/226368649?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/g-k-s-03", + "html_url": "https://github.com/g-k-s-03", + "followers_url": "https://api.github.com/users/g-k-s-03/followers", + "following_url": "https://api.github.com/users/g-k-s-03/following{/other_user}", + "gists_url": "https://api.github.com/users/g-k-s-03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/g-k-s-03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/g-k-s-03/subscriptions", + "organizations_url": "https://api.github.com/users/g-k-s-03/orgs", + "repos_url": "https://api.github.com/users/g-k-s-03/repos", + "events_url": "https://api.github.com/users/g-k-s-03/events{/privacy}", + "received_events_url": "https://api.github.com/users/g-k-s-03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 16 + }, + { + "login": "hasanravda", + "id": 73700675, + "node_id": "MDQ6VXNlcjczNzAwNjc1", + "avatar_url": "https://avatars.githubusercontent.com/u/73700675?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/hasanravda", + "html_url": "https://github.com/hasanravda", + "followers_url": "https://api.github.com/users/hasanravda/followers", + "following_url": "https://api.github.com/users/hasanravda/following{/other_user}", + "gists_url": "https://api.github.com/users/hasanravda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hasanravda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hasanravda/subscriptions", + "organizations_url": "https://api.github.com/users/hasanravda/orgs", + "repos_url": "https://api.github.com/users/hasanravda/repos", + "events_url": "https://api.github.com/users/hasanravda/events{/privacy}", + "received_events_url": "https://api.github.com/users/hasanravda/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 13 + }, + { + "login": "jddeep", + "id": 43133646, + "node_id": "MDQ6VXNlcjQzMTMzNjQ2", + "avatar_url": "https://avatars.githubusercontent.com/u/43133646?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jddeep", + "html_url": "https://github.com/jddeep", + "followers_url": "https://api.github.com/users/jddeep/followers", + "following_url": "https://api.github.com/users/jddeep/following{/other_user}", + "gists_url": "https://api.github.com/users/jddeep/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jddeep/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jddeep/subscriptions", + "organizations_url": "https://api.github.com/users/jddeep/orgs", + "repos_url": "https://api.github.com/users/jddeep/repos", + "events_url": "https://api.github.com/users/jddeep/events{/privacy}", + "received_events_url": "https://api.github.com/users/jddeep/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "dhruvi-16-me", + "id": 188478043, + "node_id": "U_kgDOCzvyWw", + "avatar_url": "https://avatars.githubusercontent.com/u/188478043?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dhruvi-16-me", + "html_url": "https://github.com/dhruvi-16-me", + "followers_url": "https://api.github.com/users/dhruvi-16-me/followers", + "following_url": "https://api.github.com/users/dhruvi-16-me/following{/other_user}", + "gists_url": "https://api.github.com/users/dhruvi-16-me/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dhruvi-16-me/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dhruvi-16-me/subscriptions", + "organizations_url": "https://api.github.com/users/dhruvi-16-me/orgs", + "repos_url": "https://api.github.com/users/dhruvi-16-me/repos", + "events_url": "https://api.github.com/users/dhruvi-16-me/events{/privacy}", + "received_events_url": "https://api.github.com/users/dhruvi-16-me/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 11 + }, + { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 9 + }, + { + "login": "PraneetBose", + "id": 94593299, + "node_id": "U_kgDOBaNhEw", + "avatar_url": "https://avatars.githubusercontent.com/u/94593299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PraneetBose", + "html_url": "https://github.com/PraneetBose", + "followers_url": "https://api.github.com/users/PraneetBose/followers", + "following_url": "https://api.github.com/users/PraneetBose/following{/other_user}", + "gists_url": "https://api.github.com/users/PraneetBose/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PraneetBose/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PraneetBose/subscriptions", + "organizations_url": "https://api.github.com/users/PraneetBose/orgs", + "repos_url": "https://api.github.com/users/PraneetBose/repos", + "events_url": "https://api.github.com/users/PraneetBose/events{/privacy}", + "received_events_url": "https://api.github.com/users/PraneetBose/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "dolliecoder", + "id": 227510566, + "node_id": "U_kgDODY-JJg", + "avatar_url": "https://avatars.githubusercontent.com/u/227510566?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dolliecoder", + "html_url": "https://github.com/dolliecoder", + "followers_url": "https://api.github.com/users/dolliecoder/followers", + "following_url": "https://api.github.com/users/dolliecoder/following{/other_user}", + "gists_url": "https://api.github.com/users/dolliecoder/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dolliecoder/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dolliecoder/subscriptions", + "organizations_url": "https://api.github.com/users/dolliecoder/orgs", + "repos_url": "https://api.github.com/users/dolliecoder/repos", + "events_url": "https://api.github.com/users/dolliecoder/events{/privacy}", + "received_events_url": "https://api.github.com/users/dolliecoder/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 5 + }, + { + "login": "navaneeth0041", + "id": 143107716, + "node_id": "U_kgDOCIemhA", + "avatar_url": "https://avatars.githubusercontent.com/u/143107716?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/navaneeth0041", + "html_url": "https://github.com/navaneeth0041", + "followers_url": "https://api.github.com/users/navaneeth0041/followers", + "following_url": "https://api.github.com/users/navaneeth0041/following{/other_user}", + "gists_url": "https://api.github.com/users/navaneeth0041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/navaneeth0041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/navaneeth0041/subscriptions", + "organizations_url": "https://api.github.com/users/navaneeth0041/orgs", + "repos_url": "https://api.github.com/users/navaneeth0041/repos", + "events_url": "https://api.github.com/users/navaneeth0041/events{/privacy}", + "received_events_url": "https://api.github.com/users/navaneeth0041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "Peehu1308", + "id": 145141126, + "node_id": "U_kgDOCKathg", + "avatar_url": "https://avatars.githubusercontent.com/u/145141126?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Peehu1308", + "html_url": "https://github.com/Peehu1308", + "followers_url": "https://api.github.com/users/Peehu1308/followers", + "following_url": "https://api.github.com/users/Peehu1308/following{/other_user}", + "gists_url": "https://api.github.com/users/Peehu1308/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Peehu1308/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Peehu1308/subscriptions", + "organizations_url": "https://api.github.com/users/Peehu1308/orgs", + "repos_url": "https://api.github.com/users/Peehu1308/repos", + "events_url": "https://api.github.com/users/Peehu1308/events{/privacy}", + "received_events_url": "https://api.github.com/users/Peehu1308/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 4 + }, + { + "login": "KunalPatilCode", + "id": 165749218, + "node_id": "U_kgDOCeEh4g", + "avatar_url": "https://avatars.githubusercontent.com/u/165749218?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/KunalPatilCode", + "html_url": "https://github.com/KunalPatilCode", + "followers_url": "https://api.github.com/users/KunalPatilCode/followers", + "following_url": "https://api.github.com/users/KunalPatilCode/following{/other_user}", + "gists_url": "https://api.github.com/users/KunalPatilCode/gists{/gist_id}", + "starred_url": "https://api.github.com/users/KunalPatilCode/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/KunalPatilCode/subscriptions", + "organizations_url": "https://api.github.com/users/KunalPatilCode/orgs", + "repos_url": "https://api.github.com/users/KunalPatilCode/repos", + "events_url": "https://api.github.com/users/KunalPatilCode/events{/privacy}", + "received_events_url": "https://api.github.com/users/KunalPatilCode/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "baidpankaj567", + "id": 175218126, + "node_id": "U_kgDOCnGdzg", + "avatar_url": "https://avatars.githubusercontent.com/u/175218126?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/baidpankaj567", + "html_url": "https://github.com/baidpankaj567", + "followers_url": "https://api.github.com/users/baidpankaj567/followers", + "following_url": "https://api.github.com/users/baidpankaj567/following{/other_user}", + "gists_url": "https://api.github.com/users/baidpankaj567/gists{/gist_id}", + "starred_url": "https://api.github.com/users/baidpankaj567/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baidpankaj567/subscriptions", + "organizations_url": "https://api.github.com/users/baidpankaj567/orgs", + "repos_url": "https://api.github.com/users/baidpankaj567/repos", + "events_url": "https://api.github.com/users/baidpankaj567/events{/privacy}", + "received_events_url": "https://api.github.com/users/baidpankaj567/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "Swayanshuu", + "id": 186157247, + "node_id": "U_kgDOCxiIvw", + "avatar_url": "https://avatars.githubusercontent.com/u/186157247?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Swayanshuu", + "html_url": "https://github.com/Swayanshuu", + "followers_url": "https://api.github.com/users/Swayanshuu/followers", + "following_url": "https://api.github.com/users/Swayanshuu/following{/other_user}", + "gists_url": "https://api.github.com/users/Swayanshuu/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Swayanshuu/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Swayanshuu/subscriptions", + "organizations_url": "https://api.github.com/users/Swayanshuu/orgs", + "repos_url": "https://api.github.com/users/Swayanshuu/repos", + "events_url": "https://api.github.com/users/Swayanshuu/events{/privacy}", + "received_events_url": "https://api.github.com/users/Swayanshuu/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "amrkhaled104", + "id": 152913400, + "node_id": "U_kgDOCR1F-A", + "avatar_url": "https://avatars.githubusercontent.com/u/152913400?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/amrkhaled104", + "html_url": "https://github.com/amrkhaled104", + "followers_url": "https://api.github.com/users/amrkhaled104/followers", + "following_url": "https://api.github.com/users/amrkhaled104/following{/other_user}", + "gists_url": "https://api.github.com/users/amrkhaled104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/amrkhaled104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/amrkhaled104/subscriptions", + "organizations_url": "https://api.github.com/users/amrkhaled104/orgs", + "repos_url": "https://api.github.com/users/amrkhaled104/repos", + "events_url": "https://api.github.com/users/amrkhaled104/events{/privacy}", + "received_events_url": "https://api.github.com/users/amrkhaled104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "ayush00git", + "id": 183527389, + "node_id": "U_kgDOCvBn3Q", + "avatar_url": "https://avatars.githubusercontent.com/u/183527389?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayush00git", + "html_url": "https://github.com/ayush00git", + "followers_url": "https://api.github.com/users/ayush00git/followers", + "following_url": "https://api.github.com/users/ayush00git/following{/other_user}", + "gists_url": "https://api.github.com/users/ayush00git/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayush00git/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayush00git/subscriptions", + "organizations_url": "https://api.github.com/users/ayush00git/orgs", + "repos_url": "https://api.github.com/users/ayush00git/repos", + "events_url": "https://api.github.com/users/ayush00git/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayush00git/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "hritikkumar07", + "id": 193479388, + "node_id": "U_kgDOC4hC3A", + "avatar_url": "https://avatars.githubusercontent.com/u/193479388?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/hritikkumar07", + "html_url": "https://github.com/hritikkumar07", + "followers_url": "https://api.github.com/users/hritikkumar07/followers", + "following_url": "https://api.github.com/users/hritikkumar07/following{/other_user}", + "gists_url": "https://api.github.com/users/hritikkumar07/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hritikkumar07/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hritikkumar07/subscriptions", + "organizations_url": "https://api.github.com/users/hritikkumar07/orgs", + "repos_url": "https://api.github.com/users/hritikkumar07/repos", + "events_url": "https://api.github.com/users/hritikkumar07/events{/privacy}", + "received_events_url": "https://api.github.com/users/hritikkumar07/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 2 + }, + { + "login": "aniket866", + "id": 200447751, + "node_id": "U_kgDOC_KXBw", + "avatar_url": "https://avatars.githubusercontent.com/u/200447751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aniket866", + "html_url": "https://github.com/aniket866", + "followers_url": "https://api.github.com/users/aniket866/followers", + "following_url": "https://api.github.com/users/aniket866/following{/other_user}", + "gists_url": "https://api.github.com/users/aniket866/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aniket866/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aniket866/subscriptions", + "organizations_url": "https://api.github.com/users/aniket866/orgs", + "repos_url": "https://api.github.com/users/aniket866/repos", + "events_url": "https://api.github.com/users/aniket866/events{/privacy}", + "received_events_url": "https://api.github.com/users/aniket866/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "pankajbaid567", + "id": 191518868, + "node_id": "U_kgDOC2pYlA", + "avatar_url": "https://avatars.githubusercontent.com/u/191518868?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pankajbaid567", + "html_url": "https://github.com/pankajbaid567", + "followers_url": "https://api.github.com/users/pankajbaid567/followers", + "following_url": "https://api.github.com/users/pankajbaid567/following{/other_user}", + "gists_url": "https://api.github.com/users/pankajbaid567/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pankajbaid567/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pankajbaid567/subscriptions", + "organizations_url": "https://api.github.com/users/pankajbaid567/orgs", + "repos_url": "https://api.github.com/users/pankajbaid567/repos", + "events_url": "https://api.github.com/users/pankajbaid567/events{/privacy}", + "received_events_url": "https://api.github.com/users/pankajbaid567/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "FOX-KNIGHT", + "id": 197281681, + "node_id": "U_kgDOC8JHkQ", + "avatar_url": "https://avatars.githubusercontent.com/u/197281681?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/FOX-KNIGHT", + "html_url": "https://github.com/FOX-KNIGHT", + "followers_url": "https://api.github.com/users/FOX-KNIGHT/followers", + "following_url": "https://api.github.com/users/FOX-KNIGHT/following{/other_user}", + "gists_url": "https://api.github.com/users/FOX-KNIGHT/gists{/gist_id}", + "starred_url": "https://api.github.com/users/FOX-KNIGHT/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/FOX-KNIGHT/subscriptions", + "organizations_url": "https://api.github.com/users/FOX-KNIGHT/orgs", + "repos_url": "https://api.github.com/users/FOX-KNIGHT/repos", + "events_url": "https://api.github.com/users/FOX-KNIGHT/events{/privacy}", + "received_events_url": "https://api.github.com/users/FOX-KNIGHT/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + }, + { + "login": "fatma-khaledd", + "id": 200439155, + "node_id": "U_kgDOC_J1cw", + "avatar_url": "https://avatars.githubusercontent.com/u/200439155?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/fatma-khaledd", + "html_url": "https://github.com/fatma-khaledd", + "followers_url": "https://api.github.com/users/fatma-khaledd/followers", + "following_url": "https://api.github.com/users/fatma-khaledd/following{/other_user}", + "gists_url": "https://api.github.com/users/fatma-khaledd/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fatma-khaledd/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fatma-khaledd/subscriptions", + "organizations_url": "https://api.github.com/users/fatma-khaledd/orgs", + "repos_url": "https://api.github.com/users/fatma-khaledd/repos", + "events_url": "https://api.github.com/users/fatma-khaledd/events{/privacy}", + "received_events_url": "https://api.github.com/users/fatma-khaledd/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "contributions": 1 + } + ] + }, + "issues": { + "PictoPy": [ + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1367", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1367/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1367/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1367/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1367", + "id": 4831182838, + "node_id": "PR_kwDOJpiIC87u9QxH", + "number": 1367, + "title": "DOC: Update backend routes directory structure documentation", + "user": { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257246, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/documentation", + "name": "documentation", + "color": "0075ca", + "default": true, + "description": "Improvements or additions to documentation" + }, + { + "id": 5564257251, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4w", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-07-07T18:26:21Z", + "updated_at": "2026-07-07T18:34:15Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1367", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1367", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1367.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1367.patch", + "merged_at": null + }, + "body": "This PR updates the Routes table in `docs/backend/backend_python/directory-structure.md` to accurately reflect the current state of the `backend/app/routes/` directory.\n\n### Changes\n* **Removed** `facetagging.py` from the documentation, as the file no longer exists in the codebase.\n* **Added** `memories.py`, detailing the endpoints for generating location and time-based photo memories.\n* **Added** `models.py`, documenting the endpoints used for AI model management (download status, hardware recommendations, setup, and deletion).\n* **Added** `shutdown.py`, covering the endpoint responsible for gracefully terminating the backend process.\n\n*(Note: `test.py` was intentionally omitted since its contents are currently commented out and it does not register an active router.)*\n\nThis addresses the scoped documentation improvements confirmed in the issue discussion.\n\nCloses #1257\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Updated backend directory documentation to reflect the current set of route modules.\n * Added references to new route modules and revised descriptions for existing ones.\n * Removed an outdated route entry from the documented structure.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1367/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1367/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1366", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1366/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1366/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1366/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1366", + "id": 4830684889, + "node_id": "I_kwDOJpiIC88AAAABH-5m2Q", + "number": 1366, + "title": "BUG:Image flicker at top-left corner during slideshow/navigation transitions (valid images)", + "user": { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 2, + "created_at": "2026-07-07T17:11:56Z", + "updated_at": "2026-07-07T19:03:44Z", + "closed_at": null, + "assignee": { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n## Description\nWhen navigating between images (via slideshow or next/prev), a brief flicker appears at the top-left corner of the screen during the transition even when the images are valid and load successfully.\n\n## Steps to Reproduce\n1. Open any valid image in the media viewer\n2. Start the slideshow (or manually navigate using next/previous)\n3. Watch the top-left corner of the screen during each transition\n4. A brief flicker is visible before the image settles into its correct position\n\n## Root Cause\nConfirmed this happens on `main` as well, so it's pre-existing and unrelated to any specific feature branch.\n\nThe image element becomes visible before its zoom/fit transform has actually been applied. There are two gaps in the render cycle:\n1. The image renders at its natural size/position briefly before `rawDimensions` are calculated on load\n2. Even after dimensions are known, the actual centering/fit transform is applied one frame later via `requestAnimationFrame`, causing a visible flash at the untransformed position\n\n## Proposed Fix\nGate the image's visibility (opacity) on a new `isFitReady` state that only becomes `true` once the fit transform has actually been applied not just when raw dimensions are known.\n\nTested this locally, fixes the flicker for me. Happy to open a PR for this if assigned\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1366/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1366/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1365", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1365/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1365/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1365/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1365", + "id": 4820863701, + "node_id": "PR_kwDOJpiIC87ubncg", + "number": 1365, + "title": "Add confirmation dialog before folder deletion", + "user": { + "login": "serusharma", + "id": 183257982, + "node_id": "U_kgDOCuxLfg", + "avatar_url": "https://avatars.githubusercontent.com/u/183257982?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/serusharma", + "html_url": "https://github.com/serusharma", + "followers_url": "https://api.github.com/users/serusharma/followers", + "following_url": "https://api.github.com/users/serusharma/following{/other_user}", + "gists_url": "https://api.github.com/users/serusharma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/serusharma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/serusharma/subscriptions", + "organizations_url": "https://api.github.com/users/serusharma/orgs", + "repos_url": "https://api.github.com/users/serusharma/repos", + "events_url": "https://api.github.com/users/serusharma/events{/privacy}", + "received_events_url": "https://api.github.com/users/serusharma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 7, + "created_at": "2026-07-06T15:58:19Z", + "updated_at": "2026-07-07T10:29:25Z", + "closed_at": "2026-07-07T07:26:17Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1365", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1365", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1365.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1365.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\r\n\r\nFixes #(TODO:issue number)\r\n\r\n\r\n### Screenshots/Recordings:\r\n\r\nTODO: If applicable, add screenshots or recordings that demonstrate the interface **before** and **after** the changes.\r\n\r\n\r\n### Additional Notes:\r\n\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [ ] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: TODO\r\n\r\n\r\n## Checklist\r\n\r\n- [ ] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [ ] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [ ] My changes generate no new warnings or errors\r\n- [ ] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [ ] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [ ] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [ ] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Added a confirmation prompt before deleting a folder, helping prevent accidental removal.\n * Folder deletion now only proceeds after the user confirms the action.\n\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1365/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1365/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1364", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1364/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1364/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1364/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1364", + "id": 4809877258, + "node_id": "I_kwDOJpiIC88AAAABHrDnCg", + "number": 1364, + "title": "Feat: Allow merging two or more face clusters into one", + "user": { + "login": "swarn007-byte", + "id": 235354922, + "node_id": "U_kgDODgc7Kg", + "avatar_url": "https://avatars.githubusercontent.com/u/235354922?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/swarn007-byte", + "html_url": "https://github.com/swarn007-byte", + "followers_url": "https://api.github.com/users/swarn007-byte/followers", + "following_url": "https://api.github.com/users/swarn007-byte/following{/other_user}", + "gists_url": "https://api.github.com/users/swarn007-byte/gists{/gist_id}", + "starred_url": "https://api.github.com/users/swarn007-byte/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/swarn007-byte/subscriptions", + "organizations_url": "https://api.github.com/users/swarn007-byte/orgs", + "repos_url": "https://api.github.com/users/swarn007-byte/repos", + "events_url": "https://api.github.com/users/swarn007-byte/events{/privacy}", + "received_events_url": "https://api.github.com/users/swarn007-byte/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 9784612883, + "node_id": "LA_kwDOJpiIC88AAAACRzVYEw", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/needs-triage", + "name": "needs-triage", + "color": "75a495", + "default": false, + "description": "The maintainer needs time to review this issue. Please do not begin working on it." + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 6, + "created_at": "2026-07-04T17:10:39Z", + "updated_at": "2026-07-07T16:40:10Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### problem described\n\nPictoPy's face clustering uses DBSCAN on face embeddings (FaceNet) to group photos by person. In practice, the same real person is frequently split across two or more separate clusters because of variations in lighting, angle, expression, or accessories (e.g. sunglasses). Since DBSCAN groups purely by embedding distance, a face that looks different enough in a photo can land outside another cluster's distance threshold and start (or join) a different cluster — even though it's the same person.\n\nCurrently there is no way to tell PictoPy \"these two clusters are actually the same person.\" The user is left with duplicate \"people\" in the Face Clusters view (e.g. \"Person 1\" and \"Person 1 (2)\"), which gets worse as the photo library grows.\n\nThis is the natural companion feature to #1177 (manual deletion of face clusters) — that issue lets a user remove a wrong cluster; this one lets a user correct a *split* cluster instead of losing the photos.\n\n### Described solution\n\nAdd a \"Merge\" action to the Face Clusters screen:\n\n1. User selects two (or more) clusters they know represent the same person.\n2. User taps a \"Merge\" button.\n3. The app reassigns all faces/photos from the source cluster(s) into the target cluster.\n4. The now-empty source cluster(s) are removed (soft-delete, consistent with the approach in #1177).\n5. The merged cluster's representative/cover photo can be re-picked (e.g. most recent or highest-confidence face).\n\nSuggested backend approach (open to adjustment by maintainers):\n\n- Add an endpoint, e.g. `POST /api/clusters/merge`, accepting a `target_cluster_id` and a list of `source_cluster_ids`.\n- Update the `faces` table rows referencing the source cluster(s) to point to `target_cluster_id`.\n- Soft-delete the emptied source cluster(s) using the same mechanism introduced in #1177, so periodic re-clustering doesn't resurrect them.\n- Wrap the reassignment + delete in a single transaction to avoid orphaned records if it fails partway.\n\nSuggested frontend approach:\n\n- Add a selection mode (checkboxes) in the Face Clusters grid.\n- Show a \"Merge (n selected)\" button once 2+ clusters are selected.\n- Confirm before merging (destructive-ish action), and show a success toast with an undo window if feasible.\n\n### Describing alternatives i have considered\n\n- Re-running clustering with a looser DBSCAN `epsilon` value — rejected because it risks merging *different* people together globally, rather than fixing one specific mistake.\n- Fully automatic re-merge suggestions (ML-based \"these might be the same person\") — a good future enhancement, but out of scope for this issue; manual merge is the minimum viable, safe fix.\n\n### Additional context\n\n- Directly complements #1177 (cluster deletion) — recommend implementing after or alongside it, since both touch the same cluster-management code paths.\n- I'd like to work on this myself. Please let me know if the general approach above sounds right, or if there's a preferred data model / endpoint convention I should follow before I start.\n\n### Checklist\n- [x] I have searched existing issues and confirmed this hasn't been requested before\n- [x] I have described the problem and a concrete proposed solution\n- [ ] I have discussed this in Discord (will do after posting)\n\n### ScreenShots\n\n\"Image\"\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1364/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1364/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1363", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1363/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1363/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1363/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1363", + "id": 4809627147, + "node_id": "PR_kwDOJpiIC87t4vn1", + "number": 1363, + "title": "feat: add configurable slideshow duration with hover slider", + "user": { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-07-04T15:52:15Z", + "updated_at": "2026-07-04T16:20:23Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1363", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1363", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1363.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1363.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\r\n\r\nFixes #1350 \r\n\r\n### Summary\r\nThe Slideshow feature previously auto-advanced images at a fixed 3-second interval with no way for users to control the pace. This PR adds a duration control, per feedback from the maintainer on the original issue.\r\n\r\nBehavior:\r\n- Clicking \"Slideshow\" starts immediately at the current/default duration (no extra step)\r\n- Hovering over the Slideshow button reveals a small settings panel with a duration slider\r\n- The slider snaps to 3 preset values: 2s / 5s / 10s\r\n- Changing the duration takes effect immediately, even while the slideshow is running\r\n\r\nImplementation:\r\n- `useSlideshow.ts`: duration is now stored in state (default 3000ms) instead of hardcoded, and exposed from the hook along with a setter\r\n- `MediaView.tsx`: pulls the duration state from the hook and passes it down to the controls component\r\n- `MediaViewControls.tsx`: replaces the old single-click toggle with a hover-triggered settings panel containing the duration slider; clicking the button still starts/pauses the slideshow directly\r\n\r\n\r\n### Screenshots/Recordings:\r\n\r\nBEFORE:\r\n\"image\"\r\nAFTER:\r\n\"image\"\r\n\"image\"\r\n\r\n\r\n\r\n\r\n### Additional Notes:\r\n\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: Claude\r\n\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added slideshow duration controls for image media, allowing users to adjust per-slide visibility time.\n * Introduced a slider-based duration picker in the media controls (shown in the settings area).\n* **Bug Fixes**\n * Updated slideshow playback so interval timing responds immediately to duration changes, keeping progression synchronized with the selected setting.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1363/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1363/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1362", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1362/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1362/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1362/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1362", + "id": 4808481902, + "node_id": "PR_kwDOJpiIC87t1SaG", + "number": 1362, + "title": "Api tests", + "user": { + "login": "akshajtiwari", + "id": 185712941, + "node_id": "U_kgDOCxHBLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/185712941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/akshajtiwari", + "html_url": "https://github.com/akshajtiwari", + "followers_url": "https://api.github.com/users/akshajtiwari/followers", + "following_url": "https://api.github.com/users/akshajtiwari/following{/other_user}", + "gists_url": "https://api.github.com/users/akshajtiwari/gists{/gist_id}", + "starred_url": "https://api.github.com/users/akshajtiwari/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/akshajtiwari/subscriptions", + "organizations_url": "https://api.github.com/users/akshajtiwari/orgs", + "repos_url": "https://api.github.com/users/akshajtiwari/repos", + "events_url": "https://api.github.com/users/akshajtiwari/events{/privacy}", + "received_events_url": "https://api.github.com/users/akshajtiwari/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 10854485877, + "node_id": "LA_kwDOJpiIC88AAAAChvpPdQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/PR%20has%20merge%20conflicts", + "name": "PR has merge conflicts", + "color": "cc3a19", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-07-04T09:46:35Z", + "updated_at": "2026-07-05T10:44:14Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1362", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1362", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1362.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1362.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\r\n\r\nFixes #(TODO:issue number)\r\n\r\n\r\n### Screenshots/Recordings:\r\n\r\nTODO: If applicable, add screenshots or recordings that demonstrate the interface **before** and **after** the changes.\r\n\r\n\r\n### Additional Notes:\r\n\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [ ] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: TODO\r\n\r\n\r\n## Checklist\r\n\r\n- [ ] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [ ] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [ ] My changes generate no new warnings or errors\r\n- [ ] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [ ] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [ ] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [ ] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added coverage for more backend capabilities, including albums, folders, images, face clustering, models, memories, user preferences, health checks, and shutdown flows.\n\n* **Tests**\n * Added many new API test scenarios covering success, validation, and error cases across the collection.\n * Expanded automated checks for model status, hardware recommendations, downloads, and progress updates.\n\n* **Documentation**\n * Added setup guidance for running the Bruno test collection and a local development environment configuration.\n * Refreshed API reference formatting for easier reading.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1362/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1362/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1361", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1361/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1361/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1361/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1361", + "id": 4808182955, + "node_id": "PR_kwDOJpiIC87t0ZfA", + "number": 1361, + "title": "chore: release 1.2.0", + "user": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 0, + "created_at": "2026-07-04T07:59:18Z", + "updated_at": "2026-07-04T07:59:19Z", + "closed_at": null, + "assignee": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1361", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1361", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1361.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1361.patch", + "merged_at": null + }, + "body": "## Release Prep: `1.2.0`\n\nAuto-generated by the release prep workflow.\n\n### What's included\n- Version bumped to `1.2.0` across all manifest files\n- CHANGELOG.md updated with a draft `[1.2.0]` entry\n\n### Before merging\n- [ ] Review and clean up the CHANGELOG entry\n- [ ] Verify version strings in `package.json`, `frontend/package.json`, and `frontend/src-tauri/Cargo.toml`\n- [ ] Run `cargo check` in `frontend/src-tauri/` to regenerate `Cargo.lock`\n\nAfter merging, create the GitHub Release with tag `v1.2.0` to trigger the build pipeline.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1361/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1361/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1360", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1360/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1360/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1360/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1360", + "id": 4807501698, + "node_id": "I_kwDOJpiIC88AAAABHoyngg", + "number": 1360, + "title": "BUG:Wildcard CORS + credentials + no auth allows any webpage to read/delete the photo library", + "user": { + "login": "akshajtiwari", + "id": 185712941, + "node_id": "U_kgDOCxHBLQ", + "avatar_url": "https://avatars.githubusercontent.com/u/185712941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/akshajtiwari", + "html_url": "https://github.com/akshajtiwari", + "followers_url": "https://api.github.com/users/akshajtiwari/followers", + "following_url": "https://api.github.com/users/akshajtiwari/following{/other_user}", + "gists_url": "https://api.github.com/users/akshajtiwari/gists{/gist_id}", + "starred_url": "https://api.github.com/users/akshajtiwari/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/akshajtiwari/subscriptions", + "organizations_url": "https://api.github.com/users/akshajtiwari/orgs", + "repos_url": "https://api.github.com/users/akshajtiwari/repos", + "events_url": "https://api.github.com/users/akshajtiwari/events{/privacy}", + "received_events_url": "https://api.github.com/users/akshajtiwari/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-07-04T03:40:54Z", + "updated_at": "2026-07-04T16:03:08Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n### Summary\nBoth local FastAPI servers (`backend` on `:52123` and `sync-microservice` on `:52124`) are configured with:\n\n```python\nallow_origins=[\"*\"]\nallow_credentials=True\nallow_methods=[\"*\"]\nallow_headers=[\"*\"]\n```\n\nThis combination means the browser will expose credentialed cross-origin responses to *any* origin. Since there's no authentication on top of it, any webpage the user has open in a normal browser tab — while PictoPy is running in the background — can talk directly to these servers.\n\n### Affected files\n- `backend/main.py:124-130`\n- `sync-microservice/main.py:36-42`\n\n### Impact\nWith the app simply running, a malicious or compromised webpage can, without any user interaction:\n- Enumerate the entire photo library via `GET /images/`, including file paths, GPS/EXIF data, and timestamps\n- Delete folders and cascade-delete images/faces/albums via `DELETE /folders/delete-folders`\n- Delete ML models via `DELETE /models/facenet`\n- Shut down the backend via `POST /shutdown`\n- Leak absolute local folder paths (OS username, directory layout) via the sync-microservice's status endpoints\n- Disrupt sync or kill the sync-microservice via unauthenticated POSTs (`/watcher/stop`, `/shutdown`)\n\nThis also compounds other findings — e.g. the unrestricted `folder_path` in `POST /folders/add-folder` becomes remotely triggerable once this is fixed to require auth, it's no longer exploitable from an arbitrary webpage.\n\n### Steps to reproduce\n1. Run PictoPy normally.\n2. In a separate, unrelated browser tab, open a page containing:\n ```js\n fetch('http://localhost:52123/images/').then(r => r.json()).then(console.log)\n ```\n3. Observe the full image index (including GPS data) returned to a page with no relation to PictoPy.\n\n### Proposed fix\n1. **Restrict CORS to the actual app origin(s)** instead of `*`:\n ```python\n allow_origins=[\"tauri://localhost\", \"http://localhost:1420\"]\n ```\n2. **Drop `allow_credentials=True`** unless cookies/sessions are actually required — this alone prevents cross-origin scripts from reading responses even if an origin match occurs.\n3. **Add a local shared-secret token**, generated at process startup, written to a file only the Tauri process can read, and required on every request via a header (e.g. `X-PictoPy-Token`). This protects against DNS-rebinding-style attacks that could still spoof an allowed origin.\n4. Apply the same fix to `sync-microservice/main.py`.\n\n### Acceptance criteria\n- [ ] `allow_origins` set to an explicit list, not `*`\n- [ ] `allow_credentials` set to `False` unless a concrete need is documented\n- [ ] All state-changing and data-reading endpoints require a valid local auth token\n- [ ] Token is generated per-process-start and stored with restrictive file permissions (`0600`)\n- [ ] Fix applied to both `backend` and `sync-microservice`\n- [ ] Manual test: a `fetch()` from an arbitrary origin (not the app's own) is rejected with `401`\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1360/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1360/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1359", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1359/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1359/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1359/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1359", + "id": 4805760508, + "node_id": "I_kwDOJpiIC88AAAABHnIV_A", + "number": 1359, + "title": "Docs: Interactive/clickable architecture diagram on the Architecture page", + "user": { + "login": "Mansi2007275", + "id": 186802781, + "node_id": "U_kgDOCyJiXQ", + "avatar_url": "https://avatars.githubusercontent.com/u/186802781?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Mansi2007275", + "html_url": "https://github.com/Mansi2007275", + "followers_url": "https://api.github.com/users/Mansi2007275/followers", + "following_url": "https://api.github.com/users/Mansi2007275/following{/other_user}", + "gists_url": "https://api.github.com/users/Mansi2007275/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mansi2007275/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mansi2007275/subscriptions", + "organizations_url": "https://api.github.com/users/Mansi2007275/orgs", + "repos_url": "https://api.github.com/users/Mansi2007275/repos", + "events_url": "https://api.github.com/users/Mansi2007275/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mansi2007275/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257246, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/documentation", + "name": "documentation", + "color": "0075ca", + "default": true, + "description": "Improvements or additions to documentation" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-07-03T19:01:44Z", + "updated_at": "2026-07-07T16:32:48Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "parent_issue_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1257", + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### Is this related to a problem?\nNot a bug — this is a documentation/UX enhancement request.\n\n### Describe the feature\nPictoPy has a genuinely non-trivial multi-service architecture: a Tauri/React frontend, a Rust backend layer, a Python (FastAPI) backend for AI/image processing, and a separate sync-microservice. Currently, the Architecture page on the docs site (https://aossie-org.github.io/PictoPy/overview/architecture/) explains this as static text/description.\n\nI'd like to propose replacing (or supplementing) this with an **interactive, clickable architecture diagram** where each major component is a clickable node:\n\n- Frontend (Tauri/React)\n- Rust Backend\n- Python Backend (FastAPI)\n- Sync-Microservice\n\nClicking a node would either:\n- Expand an inline summary of that component's responsibilities directly on the diagram, or\n- Jump/link to that component's dedicated docs section (e.g. clicking \"Python Backend\" navigates to the Python Backend API page)\n\n### Why this is useful\n- New contributors (like myself) currently have to read through several separate doc pages to piece together how the services communicate. A single interactive diagram gives an at-a-glance mental model before diving into details.\n- Material for MkDocs supports Mermaid diagrams natively, so this can likely be done with minimal tooling overhead — no need for custom JS frameworks.\n- Makes the docs site feel more like an onboarding tool and less like a flat reference.\n\n### Proposed implementation approach\n1. Enable Mermaid diagram support in `mkdocs.yml` (via `pymdownx.superfences` custom fence for Mermaid), if not already enabled.\n2. Build a flowchart/graph diagram representing the 4 components and their communication paths (e.g. Frontend ↔ Rust Backend ↔ Python Backend ↔ Sync-Microservice).\n3. Use Mermaid's clickable node syntax (`click NodeName \"url\" \"tooltip\"`) to link each node to its corresponding docs page.\n4. Fallback: if click-to-expand inline is preferred over navigation, this could instead be built as a small custom HTML/JS component embedded in the page.\n\n### Scope\nThis is a documentation-site-only change — no impact on the actual application code, frontend, or backend.\n\n### Additional context\nI'm happy to work on this if the general direction (Mermaid diagram with clickable nodes linking to existing doc pages) sounds good to maintainers. Open to adjusting the approach based on feedback — e.g., if a more custom interactive component is preferred over Mermaid.\n\n### Add ScreenShots\n\n@rohan-pandeyy i would like to woork on this feture please confirm it so that i can raise PR\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1359/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1359/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1358", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1358/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1358/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1358/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1358", + "id": 4805586389, + "node_id": "I_kwDOJpiIC88AAAABHm9t1Q", + "number": 1358, + "title": "BUG:Broken image link in Manual Setup Guide (serverRunning.png returns 404)", + "user": { + "login": "Mansi2007275", + "id": 186802781, + "node_id": "U_kgDOCyJiXQ", + "avatar_url": "https://avatars.githubusercontent.com/u/186802781?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Mansi2007275", + "html_url": "https://github.com/Mansi2007275", + "followers_url": "https://api.github.com/users/Mansi2007275/followers", + "following_url": "https://api.github.com/users/Mansi2007275/following{/other_user}", + "gists_url": "https://api.github.com/users/Mansi2007275/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mansi2007275/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mansi2007275/subscriptions", + "organizations_url": "https://api.github.com/users/Mansi2007275/orgs", + "repos_url": "https://api.github.com/users/Mansi2007275/repos", + "events_url": "https://api.github.com/users/Mansi2007275/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mansi2007275/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 5564257246, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/documentation", + "name": "documentation", + "color": "0075ca", + "default": true, + "description": "Improvements or additions to documentation" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-07-03T18:25:39Z", + "updated_at": "2026-07-07T16:45:23Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n### Description\nThe screenshot showing the FastAPI dev server running is broken on the Manual Setup Guide page of the documentation site.\n\n**Page:** https://aossie-org.github.io/PictoPy/Manual_Setup_Guide/\n\n### Root Cause\nThe image file exists in the repo at `docs/assets/screenshots/serverRunning.png`, but the markdown source references it with this URL: https://aossie-org.github.io/docs/assets/screenshots/serverRunning.png \nSince GitHub Pages publishes the `/docs` folder as the site root, the `docs/` segment should not appear in the published URL, and the repo name (`PictoPy`) needs to be the path prefix instead. The correct URL should be:\n\n\n### Steps to Reproduce\n1. Visit https://aossie-org.github.io/PictoPy/Manual_Setup_Guide/\n2. Scroll to the \"Python (FastAPI) Backend Setup Steps\" section\n3. The \"server running\" screenshot fails to load (404)\n\n### Suggested Fix\nUpdate the image URL in the source markdown file (likely `docs/Manual_Setup_Guide.md`) to either:\n- The corrected absolute URL above, or\n- A relative path (e.g. `../assets/screenshots/serverRunning.png`), which is more robust against future domain/path changes\n\n### Additional Context\nI'd like to work on this fix if it's confirmed — happy to open a PR.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1358/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1358/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1357", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1357/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1357/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1357/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1357", + "id": 4801442796, + "node_id": "PR_kwDOJpiIC87tewJG", + "number": 1357, + "title": "Feat: Model Manager", + "user": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + }, + { + "id": 10847001552, + "node_id": "LA_kwDOJpiIC88AAAAChogb0A", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/GSoC%202026", + "name": "GSoC 2026", + "color": "c5563c", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-07-03T07:42:02Z", + "updated_at": "2026-07-05T10:42:03Z", + "closed_at": "2026-07-05T10:42:03Z", + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1357", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1357", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1357.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1357.patch", + "merged_at": "2026-07-05T10:42:03Z" + }, + "body": "Closes #1356 \r\n\r\n## Summary\r\n\r\nThis PR introduces a complete **Model Manager** for PictoPy, allowing users to manage AI models after onboarding. Previously, users could only choose a model tier during the initial setup process, with no way to install additional variants, switch between installed tiers, or remove unused models afterward.\r\n\r\nThe Model Manager provides a dedicated interface for managing installed and available AI models while reusing the existing download pipeline, preferences system, and onboarding infrastructure.\r\n\r\n---\r\n\r\n## Features\r\n\r\n### Model Manager Window\r\n\r\n* Added a dedicated Model Manager window.\r\n* Integrated the Model Manager into the existing **YOLO Model Size** setting through an **\"Install more sizes…\"** option.\r\n* Configured the window as a singleton so repeated launches focus the existing instance instead of creating duplicates.\r\n* Ensured closing the Model Manager does not terminate the application or backend services.\r\n\r\n---\r\n\r\n### Installed Tab\r\n\r\n* Displays all installed model tiers.\r\n* Groups object detection and face detection models into a single tier card.\r\n* Displays the combined size for each tier.\r\n* Highlights the currently active model tier.\r\n* Allows switching the active tier directly from the Model Manager.\r\n* Supports uninstalling installed tiers with a confirmation dialog.\r\n* Separates required models into an \"Always Installed\" section.\r\n* Prevents uninstalling:\r\n\r\n * the currently active tier.\r\n * required models.\r\n\r\n---\r\n\r\n### Available Tab\r\n\r\n* Displays all tiers that are not fully installed.\r\n* Detects partially installed tiers and exposes a repair workflow.\r\n* Highlights the hardware-recommended tier using the same design language as onboarding.\r\n* Allows installing additional model tiers directly from the Model Manager.\r\n* Shows inline download progress on each model card during installation.\r\n* Preserves the completed progress state before automatically moving the tier to the Installed tab.\r\n* Displays a polished completion state when all available tiers have already been installed.\r\n\r\n---\r\n\r\n## Download Progress\r\n\r\n* Extracted the onboarding EventSource implementation into a reusable `useModelDownloadProgress` hook.\r\n* Reused the same download progress logic across onboarding and the Model Manager.\r\n* Preserved existing onboarding behaviour after the refactor.\r\n* Resolved race conditions between download completion events and status polling to ensure downloads always visibly complete before leaving the Available tab.\r\n\r\n---\r\n\r\n## Shared Improvements\r\n\r\n* Added reusable frontend API helpers for hardware recommendations and model installation.\r\n* Unified model status management so Installed and Available tabs share a single source of truth.\r\n* Continued polling model status while downloads are active, even when switching between tabs.\r\n* Improved frontend architecture by centralizing download state management.\r\n\r\n---\r\n\r\n## Error Handling\r\n\r\n* Improved shared frontend error parsing to consistently handle different FastAPI response formats.\r\n* Added regression tests covering the updated error handling logic.\r\n* Continued surfacing backend error messages through the existing global alert system.\r\n\r\n---\r\n\r\n## Testing\r\n\r\nThe following scenarios were manually verified:\r\n\r\n* Opening and focusing the Model Manager window.\r\n* Installing new model tiers.\r\n* Repairing partially installed tiers.\r\n* Switching the active model tier.\r\n* Uninstalling installed tiers.\r\n* Preventing removal of active and required models.\r\n* Inline download progress during installation.\r\n* Automatic movement of completed installations to the Installed tab.\r\n* Hardware recommendation highlighting.\r\n* Empty Available tab state.\r\n* Existing onboarding download flow after the shared download hook refactor.\r\n\r\n---\r\n\r\n## Screenshots\r\n\r\n### Installed tab\r\n\"image\"\r\n\r\n### Available tab\r\n\"image\"\r\n\r\n\r\n---\r\n\r\n## \r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: Claude, Gemini\r\n\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added a Model Manager page with Installed and Available views, plus an “Available Tiers” UI.\n * Added model download progress via SSE, and a confirm dialog for uninstall actions.\n * Added a “Configure…” settings shortcut to open Model Manager.\n* **Bug Fixes**\n * Prevented deletion of required and currently active models.\n * Improved model download/task handling and search error/empty-state behavior.\n * Enhanced preference updates with safer rollback and clearer error extraction.\n* **Tests**\n * Added API and UI tests for model deletion, Model Manager, and Search Results.\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1357/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1357/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1356", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1356/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1356/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1356/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1356", + "id": 4792132284, + "node_id": "I_kwDOJpiIC88AAAABHaIivA", + "number": 1356, + "title": "Feat: Post-onboarding Model Manager for AI models", + "user": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + }, + { + "id": 10847001552, + "node_id": "LA_kwDOJpiIC88AAAAChogb0A", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/GSoC%202026", + "name": "GSoC 2026", + "color": "c5563c", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [ + { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 0, + "created_at": "2026-07-02T07:13:09Z", + "updated_at": "2026-07-05T10:42:04Z", + "closed_at": "2026-07-05T10:42:04Z", + "assignee": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "MEMBER", + "issue_field_values": [], + "type": { + "id": 7631876, + "node_id": "IT_kwDOAlFKy84AdHQE", + "name": "Feature", + "description": "A request, idea, or new functionality", + "color": "blue", + "created_at": "2024-01-31T14:49:14Z", + "updated_at": "2024-10-08T13:33:40Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## Problem\n\nCurrently, PictoPy's onboarding flow downloads the initial AI models, but users have no way to manage them afterward.\n\nOnce onboarding is complete, users cannot:\n\n* Install additional YOLO model sizes.\n* Switch between installed model tiers.\n* Uninstall model variants they no longer need.\n* Recover from partially installed model tiers.\n\nThis means users must rely on whatever model was chosen during onboarding, even if their needs or hardware change later.\n\n## Proposed Solution\n\nIntroduce a dedicated **Model Manager** that allows users to manage AI models after onboarding.\n\nThe Model Manager should be accessible from the existing **YOLO Model Size** setting via an **\"Install more sizes…\"** option and open in a separate utility window.\n\n### Installed Models\n\nProvide an **Installed** tab that:\n\n* Lists all installed YOLO tiers.\n* Groups object detection and face detection models by tier.\n* Displays combined storage usage.\n* Highlights the currently active tier.\n* Allows switching the active tier.\n* Allows uninstalling installed tiers.\n* Prevents removal of required models and the currently active tier.\n\n### Available Models\n\nProvide an **Available** tab that:\n\n* Lists model tiers that are not fully installed.\n* Detects partially installed tiers and offers a repair flow.\n* Highlights the hardware-recommended tier.\n* Allows installing additional tiers with a single action.\n* Displays inline download progress while installation is in progress.\n* Automatically moves completed installations to the Installed tab.\n\n### Additional Requirements\n\n* Reuse the existing onboarding download pipeline and progress infrastructure where possible.\n* Reuse existing UI patterns for confirmations, error handling, and hardware recommendations.\n* Ensure the Model Manager works independently of the main application window without affecting normal application shutdown behavior.\n* Keep the architecture extensible for future additions (such as storage management).\n\n## Expected Outcome\n\nUsers will be able to install, switch, repair, and remove AI model tiers at any time after onboarding without rerunning setup, making AI model management significantly more flexible while keeping the experience consistent with the rest of PictoPy.", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1356/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1356/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1355", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1355/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1355/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1355/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1355", + "id": 4792015209, + "node_id": "I_kwDOJpiIC88AAAABHaBZaQ", + "number": 1355, + "title": "BUG: No rate limiting on the FastAPI backend", + "user": { + "login": "aliviahossain", + "id": 211632522, + "node_id": "U_kgDODJ1Big", + "avatar_url": "https://avatars.githubusercontent.com/u/211632522?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aliviahossain", + "html_url": "https://github.com/aliviahossain", + "followers_url": "https://api.github.com/users/aliviahossain/followers", + "following_url": "https://api.github.com/users/aliviahossain/following{/other_user}", + "gists_url": "https://api.github.com/users/aliviahossain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aliviahossain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aliviahossain/subscriptions", + "organizations_url": "https://api.github.com/users/aliviahossain/orgs", + "repos_url": "https://api.github.com/users/aliviahossain/repos", + "events_url": "https://api.github.com/users/aliviahossain/events{/privacy}", + "received_events_url": "https://api.github.com/users/aliviahossain/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 6, + "created_at": "2026-07-02T06:55:29Z", + "updated_at": "2026-07-07T16:36:59Z", + "closed_at": "2026-07-07T16:28:27Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nAny process on localhost can spam the API endpoints by reclustering, memory generation, face search thereby potentially freezing the app.\nProposal to add slowapi rate limiting on expensive endpoints.care about.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1355/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1355/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1354", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1354/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1354/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1354/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1354", + "id": 4778452019, + "node_id": "PR_kwDOJpiIC87sTxQX", + "number": 1354, + "title": "fix(tauri): rename misleading `ci` feature and fail loudly without it…", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-06-30T16:06:52Z", + "updated_at": "2026-06-30T16:23:29Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1354", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1354", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1354.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1354.patch", + "merged_at": null + }, + "body": "Fixes #1347\r\n\r\n### Screenshots/Recordings:\r\n\r\nN/A — this is a backend/build-config fix (Rust feature flag rename + CI workflow args), no UI changes.\r\n\r\n### Additional Notes:\r\n\r\nThe `prod()` function that spawns the bundled backend/sync sidecars was gated behind a Cargo feature named `ci`, which reads as \"only needed for continuous integration.\" In reality it's required for every working release build — both `pr-check-build.yml` and `build-and-release.yml` already pass `--features ci` to all of them. A release build compiled without that flag still launched normally, but silently never started its backend, with no error.\r\n\r\nChanges:\r\n- Renamed the feature from `ci` to `bundled-sidecars` everywhere it's referenced (`Cargo.toml`, `main.rs` cfg attributes, both workflow files) so its purpose is clear from the name.\r\n- Made the no-feature `prod()` variant fail loudly (return an `Err` that aborts startup) when built in release mode, while still no-op'ing in debug builds so `cargo tauri dev` is unaffected.\r\n- Verified with `cargo check` against both feature combinations (with/without `bundled-sidecars`, debug and release) and `cargo fmt --check` — all clean.\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: Codex\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [x] If applicable, I have made corresponding changes or additions to the documentation\r\n- [x] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Release builds now use bundled sidecars for the app’s backend and sync processes on macOS, Linux, and Windows.\n * Added clearer runtime feedback when bundled sidecars are enabled.\n\n* **Bug Fixes**\n * Release builds now report an error if bundled sidecars are missing, instead of failing silently.\n * Updated build checks to match the new release configuration.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1354/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1354/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1353", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1353/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1353/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1353/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1353", + "id": 4778351023, + "node_id": "PR_kwDOJpiIC87sTb19", + "number": 1353, + "title": "fix(database): remove dead case_sensitive_like pragma (#1346)", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-06-30T15:53:53Z", + "updated_at": "2026-06-30T16:12:16Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1353", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1353", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1353.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1353.patch", + "merged_at": null + }, + "body": "PRAGMA case_sensitive_like = ON in get_db_connection() affected zero queries: the only LIKE query (db_get_folder_ids_by_path_prefix) uses a raw sqlite3.connect() that never ran the pragma. Removing it keeps LIKE case-insensitive (SQLite default) and avoids a latent footgun where migrating a LIKE query onto the shared helper would silently turn subfolder prefix matching case-sensitive on macOS/Windows.\r\n\r\nAdd regression tests asserting case-insensitive folder prefix matching.\r\n\r\n### Addressed Issues:\r\n\r\nFixes #1346 \r\n\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: Codex\r\n\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [x] If applicable, I have made corresponding changes or additions to the documentation\r\n- [x] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Improved database integrity by enforcing stricter constraint checks during SQLite connections.\n * Removed case-sensitive `LIKE` behavior from connection setup, which may affect path and text matching consistency.\n\n* **Tests**\n * Added regression coverage for folder path prefix matching.\n * Verified matching works regardless of letter case and excludes folders outside the requested prefix.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1353/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1353/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1352", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1352/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1352/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1352/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1352", + "id": 4765512943, + "node_id": "I_kwDOJpiIC88AAAABHAv07w", + "number": 1352, + "title": "DOC: Add dev-setup and launch script for windows, linux and macOS.", + "user": { + "login": "aliviahossain", + "id": 211632522, + "node_id": "U_kgDODJ1Big", + "avatar_url": "https://avatars.githubusercontent.com/u/211632522?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aliviahossain", + "html_url": "https://github.com/aliviahossain", + "followers_url": "https://api.github.com/users/aliviahossain/followers", + "following_url": "https://api.github.com/users/aliviahossain/following{/other_user}", + "gists_url": "https://api.github.com/users/aliviahossain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aliviahossain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aliviahossain/subscriptions", + "organizations_url": "https://api.github.com/users/aliviahossain/orgs", + "repos_url": "https://api.github.com/users/aliviahossain/repos", + "events_url": "https://api.github.com/users/aliviahossain/events{/privacy}", + "received_events_url": "https://api.github.com/users/aliviahossain/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 9784612883, + "node_id": "LA_kwDOJpiIC88AAAACRzVYEw", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/needs-triage", + "name": "needs-triage", + "color": "75a495", + "default": false, + "description": "The maintainer needs time to review this issue. Please do not begin working on it." + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-06-29T06:12:45Z", + "updated_at": "2026-07-03T04:46:26Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### What's wrong with the existing documentation\n\nIssue is already solved in PR #1351 , need it to be assigned. Thanks !\n\n### Add ScreenShots\n\n_No response_\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1352/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1352/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1351", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1351/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1351/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1351/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1351", + "id": 4765348687, + "node_id": "PR_kwDOJpiIC87rom92", + "number": 1351, + "title": "added dev-setup and launch script for windows, linux and MacOS", + "user": { + "login": "aliviahossain", + "id": 211632522, + "node_id": "U_kgDODJ1Big", + "avatar_url": "https://avatars.githubusercontent.com/u/211632522?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aliviahossain", + "html_url": "https://github.com/aliviahossain", + "followers_url": "https://api.github.com/users/aliviahossain/followers", + "following_url": "https://api.github.com/users/aliviahossain/following{/other_user}", + "gists_url": "https://api.github.com/users/aliviahossain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aliviahossain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aliviahossain/subscriptions", + "organizations_url": "https://api.github.com/users/aliviahossain/orgs", + "repos_url": "https://api.github.com/users/aliviahossain/repos", + "events_url": "https://api.github.com/users/aliviahossain/events{/privacy}", + "received_events_url": "https://api.github.com/users/aliviahossain/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 9, + "created_at": "2026-06-29T05:39:51Z", + "updated_at": "2026-06-29T07:38:08Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1351", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1351", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1351.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1351.patch", + "merged_at": null + }, + "body": "### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [ yes] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: TODO\r\n\r\n\r\n## Checklist\r\n\r\n- [yes ] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [yes ] My code follows the project's code style and conventions\r\n- [yes ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [yes ] My changes generate no new warnings or errors\r\n- [yes ] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [yes ] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [yes ] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [yes ] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\r\n## Summary\r\n\r\nSetting up PictoPy for development currently requires manually running 3 separate terminals, installing multiple prerequisites in the right order, and knowing which conda env belongs to which service. Many contributors give up during this step.\r\n\r\nThis PR adds two scripts that automate the entire process — from a fresh machine to all 3 services running — with a single command.\r\n\r\n## Scripts Added\r\n\r\n- `dev-setup.sh` — Linux and macOS (Bash)\r\n- `dev-setup.ps1` — Windows (PowerShell)\r\n\r\n## What Each Script Does\r\n\r\n**Phase 1 — Prerequisites:** Checks for Node.js, Rust/Cargo, Miniconda, and platform-specific Tauri dependencies (webkit2gtk on Linux, VS C++ Build Tools + WebView2 on Windows). Installs anything missing, skips anything already present.\r\n\r\n**Phase 2 — Service Setup:** Creates conda environments for backend and sync-microservice if they don't exist, installs pip dependencies if not already installed, and runs npm install for the frontend if node_modules is absent. All steps are idempotent.\r\n\r\n**Phase 3 — Launch:** Starts all 3 services (backend :52123, sync-microservice :52124, Tauri frontend) in a single terminal with\r\ncolor-coded log prefixes [BACKEND], [SYNC], [FRONTEND]. Ctrl+C stops all 3 cleanly.\r\n\r\n**Phase 4 — Health Check:** Pings both Python servers after 10 seconds to confirm they came up successfully.\r\n\r\n## On Re-runs\r\n\r\nEvery check is idempotent. Running the script a second time on an already-configured machine skips all installation steps and goes straight to launching services.\r\n\r\n## Tested On\r\n\r\n- [ ] Ubuntu 22.04 / 24.04\r\n- [yes ] Windows 11 (PowerShell 5+)\n\n\n## Summary by CodeRabbit\n\n- **Documentation**\n - Added/updated a development setup guide with quick-start, manual setup, service ports overview, and troubleshooting for Windows, Linux, and macOS.\n\n- **New Features**\n - Added platform-specific setup scripts that bootstrap prerequisites, install dependencies, and launch all development services together.\n - Added readiness checks for the backend and sync service, plus live, tagged log streaming for backend, sync service, and frontend.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1351/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1351/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1350", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1350/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1350/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1350/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1350", + "id": 4763030524, + "node_id": "I_kwDOJpiIC88AAAABG-YT_A", + "number": 1350, + "title": "Feat:Add configurable duration for Slideshow", + "user": { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 4, + "created_at": "2026-06-28T17:24:16Z", + "updated_at": "2026-07-02T08:43:41Z", + "closed_at": null, + "assignee": { + "login": "siddharthsai218", + "id": 232212931, + "node_id": "U_kgDODddJww", + "avatar_url": "https://avatars.githubusercontent.com/u/232212931?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/siddharthsai218", + "html_url": "https://github.com/siddharthsai218", + "followers_url": "https://api.github.com/users/siddharthsai218/followers", + "following_url": "https://api.github.com/users/siddharthsai218/following{/other_user}", + "gists_url": "https://api.github.com/users/siddharthsai218/gists{/gist_id}", + "starred_url": "https://api.github.com/users/siddharthsai218/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/siddharthsai218/subscriptions", + "organizations_url": "https://api.github.com/users/siddharthsai218/orgs", + "repos_url": "https://api.github.com/users/siddharthsai218/repos", + "events_url": "https://api.github.com/users/siddharthsai218/events{/privacy}", + "received_events_url": "https://api.github.com/users/siddharthsai218/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "NONE", + "issue_field_values": [], + "type": { + "id": 7631876, + "node_id": "IT_kwDOAlFKy84AdHQE", + "name": "Feature", + "description": "A request, idea, or new functionality", + "color": "blue", + "created_at": "2024-01-31T14:49:14Z", + "updated_at": "2024-10-08T13:33:40Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### Problem\n\nThe slideshow feature currently auto-advances at a fixed **3s interval**, with no way to control the pace.\n\n### What I checked\n\n- No hidden setting/option exists in the current UI for this\n- Searched open and closed issues for \"slideshow\" — found related ones (looping, story mode, etc.) but none covering configurable duration\n\n### Proposed Change\n\nAdd a duration picker (`2s` / `5s` / `10s`) that appears when the user clicks **Slideshow**. User selects a duration, then clicks **Start** to begin the slideshow at that pace.\n\n### Tech Notes\n\nFrontend-only change — touches `useSlideshow.ts` and `MediaViewControls.tsx`.\n\nI've already built and tested a working version locally — confirmed all three durations work correctly. Would like to work on this, happy to open a PR once approved.\n\n### Add ScreenShots\n\n\"Image\"\n\n\"Image\"\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1350/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1350/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1349", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1349/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1349/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1349/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1349", + "id": 4761992345, + "node_id": "PR_kwDOJpiIC87reQC5", + "number": 1349, + "title": "fix(face-clusters): run global reclustering as async job; remove 10s axios timeout cap (#1345)", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-06-28T10:55:38Z", + "updated_at": "2026-06-28T16:10:31Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1349", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1349", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1349.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1349.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\n\nFixes #1345\n\n\n### Screenshots/Recordings:\n\nNo visual UI change. The fix is behavioural: previously the **Recluster Faces** action in Settings (and other long calls) failed in the UI after about 10s on a large library while the backend kept running to completion. Now reclustering runs as a background job and the UI waits for it via polling, showing the existing loader and a success/failure toast on completion.\n\n\n### Additional Notes:\n\nThe shared axios client applied a hard **10s timeout to every backend request** (`frontend/src/api/axiosConfig.ts`) with no per-call override. Synchronous endpoints that scale with library size, most notably global face reclustering, run past 10s on a realistic library, so the client aborted with a timeout error while the backend kept running to completion, leaving the UI and DB inconsistent.\n\n**Backend**\n- `POST /face-clusters/global-recluster` now starts the full DBSCAN pass as a background task and returns a `task_id` immediately (`202 Accepted`), running the blocking work via `asyncio.to_thread` so the event loop is not blocked.\n- New `GET /face-clusters/global-recluster/{task_id}` to poll job status (`running`, `complete`, or `error`).\n- Concurrency guard: a second trigger while a job is running rejoins the in-flight `task_id` instead of starting a second pass that would race on the cluster tables (a full recluster deletes and rebuilds every cluster).\n- Cleanup loop reaps finished task results after a TTL, measured from completion time so a long job's result is not reaped right after it finishes (registered in the app lifespan, mirroring the model-download cleanup in `models.py`). Running tasks are never reaped, and terminal results are not deleted on first poll, so repeated polls (multiple tabs or retries) stay consistent.\n\n**Frontend**\n- Raise the default axios timeout from 10s to 30s, and add `LONG_REQUEST_TIMEOUT_MS` (120s) applied per-call to the face-search and multi-person-search endpoints.\n- Replace the one-shot reclustering mutation with a `useGlobalRecluster` polling hook, wired into the Settings recluster button (same loader/toast UX as before). The hook polls with a self-scheduling timeout and a run-id guard so overlapping requests and stale runs cannot update state or leak timers.\n\n**Scope and deliberate deferrals**\n- Polling, not SSE. The issue suggested SSE; the clustering call emits no progress to stream, so SSE would carry the same running-then-done information as polling with more machinery. A real progress bar (which also needs progress reporting added inside the clustering function) is left for a separate issue.\n- Memories endpoints are intentionally left untouched because that work is owned by a GSoC project. `memories/generate`, `timeline` and `locations` are not modified in this PR; they still benefit from the global 10s to 30s default change, and any deeper async/persistence work on them is left to the GSoC effort.\n- Known follow-up: the background-job machinery added here (`ReclusterTask`, `recluster_tasks`, `_cleanup_stale_recluster_tasks`) duplicates the structure already in `models.py`. It works correctly with no runtime cost, but could be unified into a shared utility in a later refactor; it is deferred here to avoid touching the working model-download code.\n\n**Testing**\n- Frontend: `tsc --noEmit`, ESLint, Prettier, and the full Jest suite (133/133) pass.\n- Backend: `black` (24.4.2) and `ruff` (0.4.10) clean on changed files; the concurrency-guard, cleanup, and repeat-poll logic verified with a standalone asyncio simulation. No new unit tests were added. The backend `pytest` suite was not run locally (Python version mismatch with the project's pinned deps), so please confirm via CI.\n\n### AI Usage Disclosure:\n\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\n\nCheck one of the checkboxes below:\n\n- [ ] This PR does not contain AI-generated code at all.\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\n\nI have used the following AI models and tools: Codex\n\n\n## Checklist\n\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\n- [x] My code follows the project's code style and conventions\n- [x] If applicable, I have made corresponding changes or additions to the documentation\n- [x] If applicable, I have made corresponding changes or additions to tests\n- [x] My changes generate no new warnings or errors\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Global face reclustering now starts as a background job and returns a `task_id`.\n * Added a status endpoint/UI flow to poll reclustering progress and completion (running/complete/error), including clusters created and faces skipped.\n* **Bug Fixes**\n * Improved reliability for long-running face operations with longer request timeouts.\n * Prevented overlapping reclustering runs and ensured completed/failed results remain available briefly for polling.\n* **Tests**\n * Added coverage for the global reclustering React hook, including success, error, cancellation, and rapid re-triggers.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1349/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1349/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1348", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1348/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1348/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1348/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1348", + "id": 4759370813, + "node_id": "I_kwDOJpiIC88AAAABG648PQ", + "number": 1348, + "title": "BUG: Memories routes define Pydantic response models (Memory, GenerateMemoriesResponse, ...) that are never used; responses are unvalidated and inconsistent with other routers ```", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-27T17:56:42Z", + "updated_at": "2026-06-27T18:09:42Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n`backend/app/routes/memories.py:39-112` defines `MemoryImage`, `Memory`, `GenerateMemoriesResponse`, `TimelineResponse`, `OnThisDayResponse`, `LocationCluster`, `LocationsResponse` — but none of the endpoints set `response_model=`, and they instead return raw `{\"data\": {...}, \"success\": ..., \"message\": ...}` dicts whose shape doesn't match those models. Result: dead code, no response validation, and an envelope inconsistent with every other router (which uses typed `response_model`s).\n\n**Fix:** either wire the models in via `response_model=` (and align the `{data, success, message}` envelope), or delete the unused models.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1348/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1348/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1347", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1347/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1347/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1347", + "id": 4759368970, + "node_id": "I_kwDOJpiIC88AAAABG641Cg", + "number": 1347, + "title": "BUG: Production backend/sync sidecars only spawn under the `ci` Cargo feature - misnamed flag is a silent footgun", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-27T17:56:09Z", + "updated_at": "2026-06-27T18:09:55Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nIn `frontend/src-tauri/src/main.rs`, the `prod()` function that spawns the bundled Python sidecars (`PictoPy_Server`, `PictoPy_Sync`) is gated behind `#[cfg(feature = \"ci\")]` (line 105); the `#[cfg(not(feature = \"ci\"))]` variant (line 186) is a **no-op**. Release builds work today because the workflows pass `--features ci` - but the name implies \"continuous integration\", so anyone building a release without that flag gets an app that launches and **silently never starts its backend**, with no error.\n\n**Fix:** rename the feature to something descriptive (e.g. `bundled-sidecars`) and/or make a release build without it fail loudly. Feature defined at `frontend/src-tauri/Cargo.toml:44`.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1347/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1347/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1346", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1346/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1346/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1346/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1346", + "id": 4759366865, + "node_id": "I_kwDOJpiIC88AAAABG64s0Q", + "number": 1346, + "title": "BUG: Dead/inconsistent PRAGMA case_sensitive_like in get_db_connection (affects no queries today, latent footgun)", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-27T17:55:21Z", + "updated_at": "2026-06-27T18:10:25Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n`backend/app/database/connection.py:23` sets `PRAGMA case_sensitive_like = ON` inside `get_db_connection()`. But that helper is only used in ~4 call sites (all in `albums.py`), and the **only `LIKE` query in the codebase** - `db_get_folder_ids_by_path_prefix` (`backend/app/database/folders.py:344`, `WHERE folder_path LIKE ? || '%'`) — uses a **raw `sqlite3.connect()`** that never runs the pragma.\n\nSo today the pragma changes the behaviour of **zero** queries (dead config). It becomes a latent footgun the moment any `LIKE` query is migrated onto `get_db_connection()`: subfolder prefix matching would silently turn case-sensitive and miss subfolders on case-insensitive filesystems (macOS/Windows).\n\n**Fix:** remove the pragma (LIKE is case-insensitive by default), or - if case-sensitive LIKE is actually intended - apply it consistently and migrate the folder-prefix query onto the shared helper.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1346/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1346/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1345", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1345/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1345/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1345/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1345", + "id": 4759364012, + "node_id": "I_kwDOJpiIC88AAAABG64hrA", + "number": 1345, + "title": "BUG: Frontend aborts long operations after 10s (global axios timeout) - reclustering, memory generation & search fail on large libraries", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 4, + "created_at": "2026-06-27T17:54:15Z", + "updated_at": "2026-07-03T17:52:06Z", + "closed_at": null, + "assignee": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": { + "id": 7631873, + "node_id": "IT_kwDOAlFKy84AdHQB", + "name": "Bug", + "description": "An unexpected problem or behavior", + "color": "red", + "created_at": "2024-01-31T14:49:13Z", + "updated_at": "2024-07-26T12:01:58Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nThe shared axios client applies a hard **10-second timeout to every backend request** (`frontend/src/api/axiosConfig.ts:7` → `timeout: 10000`; the sync client at `:15` too), with no per-request override anywhere in `frontend/src` (verified by grep).\n\nSeveral backend endpoints are **synchronous and scale with library size**, so on a realistic library they run past 10s. The client aborts with a timeout/network error and shows a failure to the user — **even though the backend keeps running to completion** — which can leave the UI and DB inconsistent.\n\n**Affected calls (all use the 10s `apiClient`):**\n- `triggerGlobalReclustering` → `POST /face-clusters/global-recluster` (`frontend/src/api/api-functions/face_clusters.ts:78`). Backend runs full DBSCAN over all embeddings + regenerates a face image per cluster.\n- `generateMemories` → `POST /api/memories/generate` (`frontend/src/api/api-functions/memories.ts:73`). Clusters every image with location data.\n- `getTimeline` / `getLocations`, `fetchSearchedFaces`, `fetchMultiPersonSearch` — same client, can exceed 10s on large libraries.\n\n**Steps to reproduce:**\n1. Add folders with a few thousand photos; enable AI tagging and let faces populate.\n2. Trigger **Recluster faces** (or **Memories → Generate**).\n3. Request fails after ~10s in the UI; backend logs show it still working.\n\n**Expected:** long operations either run without an artificial 10s cap, or run asynchronously with progress.\n\n**Proposed fix:**\n- *Short term:* remove the global 10s default (or raise it substantially) and set conservative per-call timeouts only where they make sense.\n- *Better:* convert `global-recluster` and `memories/generate` to an async job + polling/SSE, reusing the existing model-download SSE pattern in `backend/app/routes/models.py`.\n\n**Not a duplicate:** searched all issues (title + body) and all PRs for `timeout`/`axios`; only matches are SQLite `busy_timeout` work (PR #866/#982), unrelated to the HTTP client.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1345/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1345/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1344", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1344/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1344/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1344/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1344", + "id": 4751294643, + "node_id": "PR_kwDOJpiIC87q8HUB", + "number": 1344, + "title": "fix: add metadata JSON parsing with error handling in get_cluster_images", + "user": { + "login": "Manasvibansal1", + "id": 155736346, + "node_id": "U_kgDOCUhZGg", + "avatar_url": "https://avatars.githubusercontent.com/u/155736346?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Manasvibansal1", + "html_url": "https://github.com/Manasvibansal1", + "followers_url": "https://api.github.com/users/Manasvibansal1/followers", + "following_url": "https://api.github.com/users/Manasvibansal1/following{/other_user}", + "gists_url": "https://api.github.com/users/Manasvibansal1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Manasvibansal1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Manasvibansal1/subscriptions", + "organizations_url": "https://api.github.com/users/Manasvibansal1/orgs", + "repos_url": "https://api.github.com/users/Manasvibansal1/repos", + "events_url": "https://api.github.com/users/Manasvibansal1/events{/privacy}", + "received_events_url": "https://api.github.com/users/Manasvibansal1/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 5564257251, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4w", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-06-26T10:35:11Z", + "updated_at": "2026-06-26T10:49:29Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1344", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1344", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1344.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1344.patch", + "merged_at": null + }, + "body": "Fixes #705\r\n\r\n## Problem\r\nThe GET /face-clusters/{id}/images endpoint was crashing with 500 error \r\nwhen metadata was stored as a JSON string instead of a dict. Invalid JSON \r\nmetadata also caused unhandled crashes.\r\n\r\n## Changes Made\r\n- Added `parse_metadata()` helper in `app/routes/face_clusters.py` to \r\n safely parse metadata strings into dicts\r\n- Handles invalid JSON gracefully by returning None instead of crashing\r\n- Added error handling in `app/database/face_clusters.py`\r\n\r\n## Tests Added\r\n4 new tests in `tests/test_face_clusters.py`:\r\n- `test_metadata_string_is_parsed` : string metadata parsed to dict\r\n- `test_metadata_dict_passes_through` : dict metadata stays unchanged \r\n- `test_invalid_metadata_returns_none` : broken JSON returns None safely\r\n- `test_null_metadata_handled` — None metadata handled safely\r\n\r\n## Test Results\r\nAll 30 tests passing \n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Improved handling of cluster image metadata so invalid JSON or unexpected values no longer cause errors.\n * Cluster image results now return `null` for metadata when it can’t be decoded or isn’t a valid object.\n\n* **Tests**\n * Added/expanded coverage for metadata parsing: JSON strings, already-parsed objects, invalid JSON, and missing metadata.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1344/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1344/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1343", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1343/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1343/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1343/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1343", + "id": 4747346926, + "node_id": "PR_kwDOJpiIC87qvUNT", + "number": 1343, + "title": "test: add database metadata and YOLO mapping coverage", + "user": { + "login": "priyanshunitr", + "id": 224602597, + "node_id": "U_kgDODWMp5Q", + "avatar_url": "https://avatars.githubusercontent.com/u/224602597?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/priyanshunitr", + "html_url": "https://github.com/priyanshunitr", + "followers_url": "https://api.github.com/users/priyanshunitr/followers", + "following_url": "https://api.github.com/users/priyanshunitr/following{/other_user}", + "gists_url": "https://api.github.com/users/priyanshunitr/gists{/gist_id}", + "starred_url": "https://api.github.com/users/priyanshunitr/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/priyanshunitr/subscriptions", + "organizations_url": "https://api.github.com/users/priyanshunitr/orgs", + "repos_url": "https://api.github.com/users/priyanshunitr/repos", + "events_url": "https://api.github.com/users/priyanshunitr/events{/privacy}", + "received_events_url": "https://api.github.com/users/priyanshunitr/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 8908371305, + "node_id": "LA_kwDOJpiIC88AAAACEvr1aQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/CI/CD", + "name": "CI/CD", + "color": "6a737d", + "default": false, + "description": "" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9906331533, + "node_id": "LA_kwDOJpiIC88AAAACTnafjQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/tests", + "name": "tests", + "color": "03e9d5", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-06-25T20:58:05Z", + "updated_at": "2026-06-25T21:01:17Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1343", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1343", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1343.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1343.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\r\n\r\nFixes #1238 \r\n\r\n### Screenshots/Recordings: \r\n\"Screenshot\r\n\r\n\r\nTODO: If applicable, add screenshots or recordings that demonstrate the interface **before** and **after** the changes.\r\n\r\n\r\n### Additional Notes:\r\n\r\nAdds focused backend test coverage for:\r\n\r\n- `backend/app/database/metadata.py`\r\n- `backend/app/database/yolo_mapping.py`\r\n\r\nThe tests cover metadata table creation, default/empty/invalid metadata states, metadata updates with own and existing cursors, rollback behavior, YOLO class mapping insertion, idempotency, replacement behavior, empty class lists, and duplicate class names.\r\n\r\nThis PR keeps the scope limited to the metadata and YOLO mapping database modules discussed in #1238.\r\n\r\n```text\r\n14 passed in 0.55s\r\n118 passed in 18.58s\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: ChatGPT\r\n\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [x] If applicable, I have made corresponding changes or additions to the documentation\r\n- [x] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1343/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1343/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1342", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1342/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1342/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1342/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1342", + "id": 4743789918, + "node_id": "PR_kwDOJpiIC87qjd0j", + "number": 1342, + "title": " add database tests for albums and faces (#1238)", + "user": { + "login": "Mansi2007275", + "id": 186802781, + "node_id": "U_kgDOCyJiXQ", + "avatar_url": "https://avatars.githubusercontent.com/u/186802781?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Mansi2007275", + "html_url": "https://github.com/Mansi2007275", + "followers_url": "https://api.github.com/users/Mansi2007275/followers", + "following_url": "https://api.github.com/users/Mansi2007275/following{/other_user}", + "gists_url": "https://api.github.com/users/Mansi2007275/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Mansi2007275/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Mansi2007275/subscriptions", + "organizations_url": "https://api.github.com/users/Mansi2007275/orgs", + "repos_url": "https://api.github.com/users/Mansi2007275/repos", + "events_url": "https://api.github.com/users/Mansi2007275/events{/privacy}", + "received_events_url": "https://api.github.com/users/Mansi2007275/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 8908371305, + "node_id": "LA_kwDOJpiIC88AAAACEvr1aQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/CI/CD", + "name": "CI/CD", + "color": "6a737d", + "default": false, + "description": "" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9906331533, + "node_id": "LA_kwDOJpiIC88AAAACTnafjQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/tests", + "name": "tests", + "color": "03e9d5", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-25T12:29:45Z", + "updated_at": "2026-06-25T13:52:24Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1342", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1342", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1342.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1342.patch", + "merged_at": null + }, + "body": "## Summary\r\nCloses #1238\r\n\r\nAdds unit tests for the database layer for:\r\n- `backend/app/database/albums.py`\r\n- `backend/app/database/faces.py`\r\n\r\n## Test files added\r\n- `backend/tests/test_albums_db.py` — 18 tests\r\n- `backend/tests/test_faces_db.py` — 14 tests\r\n\r\n## What is covered\r\n- Table creation functions\r\n- Insert, update, delete operations\r\n- Password hashing and verification\r\n- Edge cases: empty results, missing records, None values\r\n- Batch operations\r\n- Cluster mean embedding calculations\r\n\r\n## Notes\r\n- All tests use `unittest.mock` to avoid real DB calls\r\n- Follows existing project test style from `test_albums.py`\r\n- One-line comments above each test describing the scenario\n\n\n## Summary by CodeRabbit\n\n* **Tests**\n * Added comprehensive database test coverage for album and face data layers.\n * Verified create, read, update, delete, and batch operations, including missing-record handling and empty-result edge cases.\n * Confirmed sensitive values are securely stored (no plaintext password persistence) and correctly validated.\n * Checked robustness features like proper error handling, connection cleanup, and expected SQL execution behavior.\n * Covered face embedding insertion/retrieval, clustering/mean embedding computation, and metadata serialization.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1342/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1342/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1341", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1341/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1341/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1341/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1341", + "id": 4741335164, + "node_id": "PR_kwDOJpiIC87qbpBH", + "number": 1341, + "title": "add test", + "user": { + "login": "NancyWei123", + "id": 225888569, + "node_id": "U_kgDODXbJOQ", + "avatar_url": "https://avatars.githubusercontent.com/u/225888569?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NancyWei123", + "html_url": "https://github.com/NancyWei123", + "followers_url": "https://api.github.com/users/NancyWei123/followers", + "following_url": "https://api.github.com/users/NancyWei123/following{/other_user}", + "gists_url": "https://api.github.com/users/NancyWei123/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NancyWei123/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NancyWei123/subscriptions", + "organizations_url": "https://api.github.com/users/NancyWei123/orgs", + "repos_url": "https://api.github.com/users/NancyWei123/repos", + "events_url": "https://api.github.com/users/NancyWei123/events{/privacy}", + "received_events_url": "https://api.github.com/users/NancyWei123/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 8908371305, + "node_id": "LA_kwDOJpiIC88AAAACEvr1aQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/CI/CD", + "name": "CI/CD", + "color": "6a737d", + "default": false, + "description": "" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9906331533, + "node_id": "LA_kwDOJpiIC88AAAACTnafjQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/tests", + "name": "tests", + "color": "03e9d5", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-25T06:38:19Z", + "updated_at": "2026-06-25T13:37:35Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1341", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1341", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1341.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1341.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\r\n\r\nFixes #(TODO:issue number)\r\n#1238 \r\n\r\n### Screenshots/Recordings:\r\nBefore:\r\nI forget to take sceenshot.\r\nAfter:\r\n\"image\"\r\n\"image\"\r\n\r\nTODO: If applicable, add screenshots or recordings that demonstrate the interface **before** and **after** the changes.\r\n\r\n\r\n### Additional Notes:\r\n\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [✓] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: chatgpt\r\n\r\n\r\n## Checklist\r\n\r\n- [✓] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [✓] My code follows the project's code style and conventions\r\n- [✓] If applicable, I have made corresponding changes or additions to the documentation\r\n- [✓] If applicable, I have made corresponding changes or additions to tests\r\n- [✓] My changes generate no new warnings or errors\r\n- [✓] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [✓] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [✓] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [✓] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n## Summary by CodeRabbit\n\n* **Tests**\n * Added database connection unit tests covering transaction commit/rollback behavior and required SQLite settings.\n * Expanded folder database unit tests for inserts, queries, updates, deletes, path-based lookups, and hierarchy operations.\n * Improved test isolation by switching to per-test temporary SQLite databases for more reliable, repeatable results.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1341/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1341/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1340", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1340/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1340/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1340/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1340", + "id": 4736653389, + "node_id": "I_kwDOJpiIC88AAAABGlOYTQ", + "number": 1340, + "title": "Refactor: Improve SQLite error handling and integrate logger in albums database layer", + "user": { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-06-24T16:32:09Z", + "updated_at": "2026-06-27T17:27:59Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the bug or improvement\nThe database module `backend/app/database/albums.py` currently executes SQLite operations directly without wrapping them in `try...except sqlite3.Error` blocks. When database queries fail, the errors are raised silently to the API layer without being logged locally. This is inconsistent with the rest of the database modules (like `images.py`, `folders.py`, `faces.py`, and `metadata.py`), which have been updated to capture, log, and handle SQLite exceptions using the project's standard logger.\n\nAdditionally, the route file `backend/app/routes/albums.py` should catch these database errors and log them, and use `except HTTPException: raise` to prevent catching and hiding explicit HTTP exceptions within `except Exception` blocks.\n\n### Proposed Solution\n1. In `backend/app/database/albums.py`:\n - Import `get_logger` from `app.logging.setup_logging` and initialize the logger.\n - Wrap SQL execution blocks (like `cursor.execute`) in `try...except sqlite3.Error as e:` blocks.\n - Log the database errors with `logger.error(...)` before re-raising.\n2. In `backend/app/routes/albums.py`:\n - Add `except HTTPException: raise` to prevent wrapping HTTP status codes in standard 500 errors.\n - Log any unexpected errors.\n\nThis is a good first issue for backend cleanup!", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1340/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1340/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1339", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1339/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1339/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1339/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1339", + "id": 4719749197, + "node_id": "PR_kwDOJpiIC87pVJ8Q", + "number": 1339, + "title": "Fix/videoplayer bugs", + "user": { + "login": "MayankSharma-ops", + "id": 199877936, + "node_id": "U_kgDOC-nlMA", + "avatar_url": "https://avatars.githubusercontent.com/u/199877936?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MayankSharma-ops", + "html_url": "https://github.com/MayankSharma-ops", + "followers_url": "https://api.github.com/users/MayankSharma-ops/followers", + "following_url": "https://api.github.com/users/MayankSharma-ops/following{/other_user}", + "gists_url": "https://api.github.com/users/MayankSharma-ops/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MayankSharma-ops/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MayankSharma-ops/subscriptions", + "organizations_url": "https://api.github.com/users/MayankSharma-ops/orgs", + "repos_url": "https://api.github.com/users/MayankSharma-ops/repos", + "events_url": "https://api.github.com/users/MayankSharma-ops/events{/privacy}", + "received_events_url": "https://api.github.com/users/MayankSharma-ops/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-22T19:03:26Z", + "updated_at": "2026-07-07T16:47:05Z", + "closed_at": "2026-07-07T16:47:05Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1339", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1339", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1339.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1339.patch", + "merged_at": "2026-07-07T16:47:05Z" + }, + "body": "### Addressed Issues:\r\n\r\nFixes #1329\r\n\r\n\r\n### Screenshots/Recordings:\r\n\r\n*No changes were made to the overall UI layout or styling. However, functional interface fixes are visible to the user:*\r\n- Time display now correctly renders `0:00 / 0:00` (and updates on load) instead of `NaN:NaN`.\r\n- Play/Pause toggle now correctly resets to \"Play\" when the video ends.\r\n- Volume slider now correctly toggles the mute icon/state when dragging.\r\n- Fullscreen toggle now correctly updates between Maximize/Minimize icons when exiting.\r\n\r\n\r\n\r\n### Additional Notes:\r\n\r\nThis PR resolves all five desync/rendering bugs in the `NetflixStylePlayer` component:\r\n1. **Local File Loading:** Configured the video element's source to use `convertFileSrc` for Tauri compatibility.\r\n2. **Fullscreen Desync:** Listened to the `fullscreenchange` event on the document level, syncing `isFullscreen` status correctly when exited via `Esc`.\r\n3. **NaN Display:** Added state hooks for `currentTime` and `duration` and formatted the output using `formatTime` which falls back to `0:00` for non-finite values before video metadata loads. Added `onLoadedMetadata` and `onDurationChange` to update these states reactively.\r\n4. **Muted State Desync:** Adjusted `handleVolumeChange` to correctly unmute the video state and reference (`videoRef.current.muted = false`) when the volume slider is moved to a value greater than `0`.\r\n5. **Playback State Desync:** Registered `onEnded` to automatically reset the playing state back to `false` when video playback ends.\r\n\r\nAlso added a complete Jest unit test suite covering all 5 scenarios to prevent regressions.\r\n\r\n\r\n### AI Usage Disclosure:\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: Gemini 3.5 Flash (via Antigravity IDE)\r\n\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [x] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [ ] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] My read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Improved Netflix-style video player timing with consistent elapsed/total display during playback and seeking\n * Volume slider, mute button, and mute icon now stay fully synchronized\n * More reliable fullscreen UI updates and keyboard shortcut support for playback, mute, seeking, and fullscreen\n* **Bug Fixes**\n * Safer time formatting for missing/invalid durations (shows `0:00 / 0:00` until ready)\n * Seeking and play/pause state now follow media timing/events more accurately\n* **Tests**\n * Expanded player tests for media behavior, fullscreen, timing, volume/mute, seeking, and keyboard shortcuts\n* **Security**\n * Updated CSP `media-src` formatting to fix directive parsing\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1339/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1339/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1338", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1338/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1338/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1338/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1338", + "id": 4719092814, + "node_id": "PR_kwDOJpiIC87pS-gG", + "number": 1338, + "title": "Feat: Global Search Support for Face Collections and AI Tags", + "user": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + }, + { + "id": 10847001552, + "node_id": "LA_kwDOJpiIC88AAAAChogb0A", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/GSoC%202026", + "name": "GSoC 2026", + "color": "c5563c", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-06-22T17:35:25Z", + "updated_at": "2026-07-05T10:50:43Z", + "closed_at": "2026-07-03T11:06:56Z", + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1338", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1338", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1338.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1338.patch", + "merged_at": "2026-07-03T11:06:56Z" + }, + "body": "Fixes #1337\r\n\r\n## Summary\r\n\r\nThis PR introduces global search support for face collections and AI-generated tags through the Navbar search workflow.\r\n\r\nUsers can now submit a search query from the navigation bar and either:\r\n\r\n* Navigate directly to a matching face collection when the query matches a face cluster name.\r\n* View matching AI-tagged images in a dedicated Search Results page when the query matches an object tag.\r\n\r\nThe implementation adds a backend-powered image tag search endpoint and a new Search Results page, providing a unified search experience across the photo library.\r\n\r\n---\r\n\r\n## Changes\r\n\r\n### Backend\r\n\r\n* Added a database-backed image tag search query.\r\n* Added a new image search API endpoint.\r\n* Updated OpenAPI documentation.\r\n\r\n### Frontend API Layer\r\n\r\n* Added API endpoint definitions for image tag search.\r\n* Added frontend API functions for querying search results.\r\n\r\n### Search Results Page\r\n\r\n* Added a dedicated `SearchResults` page for displaying search matches.\r\n* Added routing support for search results.\r\n* Reused the existing image viewing experience and gallery components for displaying matched images.\r\n\r\n### Navbar Integration\r\n\r\n* Added search submission support from the Navbar.\r\n* Added query handling via both keyboard submission and search button interaction.\r\n* Added face-cluster resolution so searches matching a face collection navigate directly to the existing collection view.\r\n* Added navigation to the dedicated Search Results page for tag-based searches.\r\n\r\n---\r\n\r\n## User Experience\r\n\r\n### Face Collection Search\r\n\r\nSearching for a face collection name:\r\n\r\n```text\r\nJohn\r\n```\r\n\r\nnavigates directly to the existing face collection view for that cluster.\r\n\r\n### AI Tag Search\r\n\r\nSearching for an AI-generated object tag:\r\n\r\n```text\r\nchair\r\ndog\r\ncar\r\n```\r\n\r\nopens a dedicated Search Results page displaying all matching images.\r\n\r\n---\r\n\r\n## Why a Dedicated Search Results Page?\r\n\r\nRather than filtering the currently visible gallery, search results are displayed in a dedicated view similar to the search experience found in modern photo management applications.\r\n\r\nThis provides:\r\n\r\n* A consistent search workflow across the application.\r\n* A clear separation between browsing and searching.\r\n* Library-wide search behavior independent of the current page.\r\n\r\n---\r\n\r\n## Future Scope\r\n\r\nThis PR focuses exclusively on search result retrieval and display.\r\n\r\nThe following are intentionally out of scope:\r\n\r\n* Search recommendations\r\n* Autocomplete\r\n* Fuzzy matching\r\n* Search-as-you-type suggestions\r\n* Ranking/relevance systems\r\n* Advanced search filters\r\n\r\n### Screenshots/Recordings:\r\n\r\n\"image\"\r\n\r\n\"image\"\r\n\r\n### AI Usage Disclosure:\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.\r\n\r\nCheck one of the checkboxes below:\r\n\r\n- [ ] This PR does not contain AI-generated code at all.\r\n- [x] This PR contains AI-generated code. I have read the [AI Usage Policy](https://github.com/AOSSIE-Org/Info/blob/main/AI-UsagePolicy.md) and this PR complies with this policy. I have tested the code locally and I am responsible for it.\r\n\r\nI have used the following AI models and tools: Claude, Gemini\r\n\r\n\r\n## Checklist\r\n\r\n- [x ] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [x] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [x] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n- [x] I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.\r\n\n\n\n## Summary by CodeRabbit\n\n## Release Notes\n\n* **New Features**\n * Added image search by tag functionality. Use the navigation bar search to find images by tag (case-insensitive matching).\n * Introduced a new Search Results page that displays matching images in a responsive grid and opens the media viewer when selecting an image.\n * Added a backend search endpoint to power tag-based image retrieval, including associated tag information in the results.\n\n* **Documentation**\n * Updated the published OpenAPI spec formatting (no endpoint/behavior changes).\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1338/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1338/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1337", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1337/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1337/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1337/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1337", + "id": 4718660636, + "node_id": "I_kwDOJpiIC88AAAABGUEMHA", + "number": 1337, + "title": "Global Search Support for Face Collections and AI Tags", + "user": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + }, + { + "id": 10847001552, + "node_id": "LA_kwDOJpiIC88AAAAChogb0A", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/GSoC%202026", + "name": "GSoC 2026", + "color": "c5563c", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [ + { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 0, + "created_at": "2026-06-22T16:37:05Z", + "updated_at": "2026-07-03T11:06:57Z", + "closed_at": "2026-07-03T11:06:57Z", + "assignee": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "MEMBER", + "issue_field_values": [], + "type": { + "id": 7631876, + "node_id": "IT_kwDOAlFKy84AdHQE", + "name": "Feature", + "description": "A request, idea, or new functionality", + "color": "blue", + "created_at": "2024-01-31T14:49:14Z", + "updated_at": "2024-10-08T13:33:40Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "parent_issue_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1312", + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## Description\n\nPictoPy currently provides multiple ways of organizing and discovering photos, including face collections and AI-generated object tags. However, there is no unified search experience that allows users to quickly locate photos by entering a search term from the navigation bar.\n\nUsers should be able to search for content across their library and be presented with a dedicated results view, similar to the experience provided by modern photo management applications.\n\n## Expected Behavior\n\nWhen a user enters a search query and submits it:\n\n* Searches related to named face collections should allow users to quickly navigate to the corresponding face collection.\n* Searches related to AI-generated object tags (e.g. \"chair\", \"dog\", \"car\") should display all matching images in a dedicated search results view.\n* Search results should be presented on their own page rather than acting as an in-place filter of the current gallery.\n* The experience should remain consistent regardless of where the user initiates the search from within the application.\n\n## Considerations\n\n* Search should operate against the complete photo library.\n* Search behavior should remain accurate as the application evolves to support larger collections and future gallery performance optimizations.\n* The feature should focus only on returning and displaying search results.\n* Autocomplete, recommendations, search suggestions, fuzzy matching, and other advanced search-assistance features are outside the scope of this issue.\n\n## Acceptance Criteria\n\n* Users can submit a search query from the navigation bar.\n* Matching face collections can be accessed through the search workflow.\n* Matching AI-tagged images can be viewed through a dedicated search results page.\n* Search results represent matches from the user's library rather than only the content currently visible on screen.\n* The feature integrates cleanly with existing face collection and image viewing workflows.\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1337/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1337/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1336", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1336/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1336/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1336/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1336", + "id": 4711841122, + "node_id": "PR_kwDOJpiIC87o7G7R", + "number": 1336, + "title": "perf: add lazy loading and dynamic alt text to ImageCard", + "user": { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-21T20:20:19Z", + "updated_at": "2026-07-04T00:09:54Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1336", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1336", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1336.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1336.patch", + "merged_at": null + }, + "body": "### Description\nThis PR addresses two performance and accessibility issues in the `ImageCard` component of the frontend gallery (`frontend/src/components/Media/ImageCard.tsx`):\n\n1. **Lazy Loading**: Adds `loading=\"lazy\"` to the main `` tag inside `ImageCard` to defer the loading of off-screen media. This prevents the browser from aggressively downloading all image files on mounting large grids, significantly saving initial network bandwidth and memory overhead.\n2. **Dynamic Alt Text**: Replaces the hardcoded `'Sample Title'` alt text with a dynamic value using the image metadata name (`image.metadata?.name`), falling back to the filename extracted from its path (`image.path`), and defaulting to `'Image'`.\n\nCloses #1326\n\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Improved image accessibility by using dynamic alternative text based on image metadata and filename, providing better descriptions for screen readers.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1336/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1336/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1335", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1335/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1335/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1335/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1335", + "id": 4711820250, + "node_id": "PR_kwDOJpiIC87o7C1T", + "number": 1335, + "title": "refactor: replace broad except blocks with specific exceptions and logger", + "user": { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257251, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4w", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9394956625, + "node_id": "LA_kwDOJpiIC88AAAACL_upUQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/cleanup", + "name": "cleanup", + "color": "1ba861", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-06-21T20:12:21Z", + "updated_at": "2026-07-03T11:13:08Z", + "closed_at": "2026-07-03T11:13:08Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1335", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1335", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1335.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1335.patch", + "merged_at": "2026-07-03T11:13:08Z" + }, + "body": "### Description\nThis PR refactors the exception handling in the database modules under `backend/app/database/` (specifically `connection.py`, `metadata.py`, `faces.py`, and `face_clusters.py`). Broad `except Exception` blocks have been replaced with specific database exceptions (`sqlite3.Error`), and standard logger logging has been introduced instead of print statements to improve error reporting and maintainability.\n\n### Changes\n- **`connection.py`**:\n - Imported `get_logger` to capture and log transaction rollback occurrences.\n - Retained catching general exceptions in `get_db_connection` since it yields control to client blocks which can raise any standard Python error, but captured the error, logged the event, and re-raised it.\n- **`metadata.py`**:\n - Replaced broad `except Exception` in `db_update_metadata` with `except sqlite3.Error`.\n - Logged errors using the project's standard logger instead of `print()`.\n- **`faces.py`**:\n - Replaced broad `except Exception` in `db_update_face_cluster_ids_batch` with `except sqlite3.Error`.\n - Logged error messages to the standard logger instead of `print()`.\n- **`face_clusters.py`**:\n - Replaced broad `except Exception` in `db_delete_all_clusters` and `db_insert_clusters_batch` with `except sqlite3.Error`.\n - Replaced `print()` with standard logger messages.\n\nCloses #1334\n\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Improved database reliability with clearer, structured logging for transaction and batch-operation failures.\n * Updated error handling to distinguish SQLite errors from other failure types and perform more accurate rollback behavior.\n * Improved diagnostics by logging the underlying error details and handling JSON serialization failures before database writes.\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1335/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1335/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1334", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1334/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1334/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1334/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1334", + "id": 4711498504, + "node_id": "I_kwDOJpiIC88AAAABGNPDCA", + "number": 1334, + "title": "Refactor: Replace broad `except Exception` blocks with specific exceptions", + "user": { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257251, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4w", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9394956625, + "node_id": "LA_kwDOJpiIC88AAAACL_upUQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/cleanup", + "name": "cleanup", + "color": "1ba861", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [ + { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 4, + "created_at": "2026-06-21T18:22:34Z", + "updated_at": "2026-07-03T11:13:09Z", + "closed_at": "2026-07-03T11:13:09Z", + "assignee": { + "login": "Dotify71", + "id": 222976357, + "node_id": "U_kgDODUpZZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/222976357?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Dotify71", + "html_url": "https://github.com/Dotify71", + "followers_url": "https://api.github.com/users/Dotify71/followers", + "following_url": "https://api.github.com/users/Dotify71/following{/other_user}", + "gists_url": "https://api.github.com/users/Dotify71/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Dotify71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Dotify71/subscriptions", + "organizations_url": "https://api.github.com/users/Dotify71/orgs", + "repos_url": "https://api.github.com/users/Dotify71/repos", + "events_url": "https://api.github.com/users/Dotify71/events{/privacy}", + "received_events_url": "https://api.github.com/users/Dotify71/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": { + "id": 7631871, + "node_id": "IT_kwDOAlFKy84AdHP_", + "name": "Task", + "description": "A specific piece of work", + "color": "yellow", + "created_at": "2024-01-31T14:49:13Z", + "updated_at": "2024-07-26T12:01:58Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "While reviewing PR #1316, it was pointed out that several other files across the codebase still use broad `except Exception:` blocks, similar to what was recently cleaned up in `images.py` and `folders.py`.\n\nCatching broad exceptions can sometimes mask underlying bugs and make debugging harder. To improve the overall error handling and maintainability of the project, I'd like to go through the remaining files and:\n- Replace broad `except Exception:` blocks with more specific exceptions (e.g., `sqlite3.Error` where appropriate).\n- Ensure that errors are being properly logged rather than just printed or suppressed.\n\nI can take this up and create a follow-up PR to handle the remaining files. Could I get this assigned to me?\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1334/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1334/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1333", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1333/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1333/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1333/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1333", + "id": 4710672883, + "node_id": "I_kwDOJpiIC88AAAABGMcp8w", + "number": 1333, + "title": "BUG: NetflixStylePlayer - render title/description, accessible seek bar, and controls-visibility UX (follow-up to #1329)", + "user": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 8, + "created_at": "2026-06-21T13:41:31Z", + "updated_at": "2026-07-07T16:49:03Z", + "closed_at": null, + "assignee": { + "login": "VanshajPoonia", + "id": 74147463, + "node_id": "MDQ6VXNlcjc0MTQ3NDYz", + "avatar_url": "https://avatars.githubusercontent.com/u/74147463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VanshajPoonia", + "html_url": "https://github.com/VanshajPoonia", + "followers_url": "https://api.github.com/users/VanshajPoonia/followers", + "following_url": "https://api.github.com/users/VanshajPoonia/following{/other_user}", + "gists_url": "https://api.github.com/users/VanshajPoonia/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VanshajPoonia/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VanshajPoonia/subscriptions", + "organizations_url": "https://api.github.com/users/VanshajPoonia/orgs", + "repos_url": "https://api.github.com/users/VanshajPoonia/repos", + "events_url": "https://api.github.com/users/VanshajPoonia/events{/privacy}", + "received_events_url": "https://api.github.com/users/VanshajPoonia/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n**Describe the bug**\n\nFollow-up to #1329 in the same component (`NetflixStylePlayer`). Beyond the five playback/state desync bugs, a few accessibility and UX gaps remain:\n\n1. **Unused props - title/description not rendered.** `title` and `description` are declared on `NetflixStylePlayerProps` but never displayed. A Netflix-style player should surface them.\n2. **Progress bar is not accessible.** It's a bare `
` - no `role=\"slider\"`, no `aria-value*`, and no keyboard support, so it can't be operated by keyboard or announced by assistive tech.\n3. **Control buttons have no accessible labels.** The rewind, play/pause, fast-forward, mute, volume, and fullscreen controls are icon-only `\n ```\n\n - `API Route:` Added `DELETE /face-clusters/delete-cluster/${clusterId}` in `apiEndpoint.ts`\n - `Response Handling:` The message from the backend is displayed regardless of the success status, ensuring the user sees the specific feedback provided by the server.\n - `Lint Fix:` Ensured the mutation call is type-safe by passing `undefined` for operations requiring no payload.\n\n### Add ScreenShots\n\n## Screenshots\n### Delete Endpoint working properly.\n\n\"Image\"\n\n### Delete Button not available (Before)\n\n\"Image\"\n\n### Delete Button now available (After)\n\n\"Image\"\n\n### Demo video (After)\n\nhttps://github.com/user-attachments/assets/9a20c731-71eb-4f40-b6c0-6cc99cd5ccc4\n\n## Tests Performed\n### test_face_clusters.py\n\n\"Image\"\n\n### test_albums.py\n\n\"Image\"\n\n### test_folders.py\n\n\"Image\"\n\n### test_user_preferences.py\n\n\"Image\"\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1177/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1177/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1176", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1176/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1176/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1176/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1176", + "id": 3943750563, + "node_id": "I_kwDOJpiIC87rENuj", + "number": 1176, + "title": "Feat:initialize-automated-issue-ownership-and-inactivity-reassignment-workflow.yaml", + "user": { + "login": "aniket866", + "id": 200447751, + "node_id": "U_kgDOC_KXBw", + "avatar_url": "https://avatars.githubusercontent.com/u/200447751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aniket866", + "html_url": "https://github.com/aniket866", + "followers_url": "https://api.github.com/users/aniket866/followers", + "following_url": "https://api.github.com/users/aniket866/following{/other_user}", + "gists_url": "https://api.github.com/users/aniket866/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aniket866/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aniket866/subscriptions", + "organizations_url": "https://api.github.com/users/aniket866/orgs", + "repos_url": "https://api.github.com/users/aniket866/repos", + "events_url": "https://api.github.com/users/aniket866/events{/privacy}", + "received_events_url": "https://api.github.com/users/aniket866/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-15T10:35:25Z", + "updated_at": "2026-02-15T11:12:59Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n- **Auto-assigns issues raised by maintainer / knight / member**\n\n- **Monitors linked PR**\n\n**- If no PR linked for 2 weeks( adjustable as per choice of maintainer) → reassigns to next eligible contributor**\n\n**- Intelligent rotation logic**\n\n- **Efficient governance automation**\n\n### Add ScreenShots\n\nN/A\n\nThis will help maintainer , and if maintainer is busy then contributors can work on maintainer's raised issue and if maintianer is busy to assign or confused to assign whom , who asked first...etc\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1176/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1176/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1175", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1175/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1175/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1175/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1175", + "id": 3943729529, + "node_id": "PR_kwDOJpiIC87D5TB1", + "number": 1175, + "title": "initialize-semantic-issue-similarity-analysis-and-duplicate-detection-automation-workflow", + "user": { + "login": "aniket866", + "id": 200447751, + "node_id": "U_kgDOC_KXBw", + "avatar_url": "https://avatars.githubusercontent.com/u/200447751?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aniket866", + "html_url": "https://github.com/aniket866", + "followers_url": "https://api.github.com/users/aniket866/followers", + "following_url": "https://api.github.com/users/aniket866/following{/other_user}", + "gists_url": "https://api.github.com/users/aniket866/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aniket866/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aniket866/subscriptions", + "organizations_url": "https://api.github.com/users/aniket866/orgs", + "repos_url": "https://api.github.com/users/aniket866/repos", + "events_url": "https://api.github.com/users/aniket866/events{/privacy}", + "received_events_url": "https://api.github.com/users/aniket866/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 8908371305, + "node_id": "LA_kwDOJpiIC88AAAACEvr1aQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/CI/CD", + "name": "CI/CD", + "color": "6a737d", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-15T10:23:19Z", + "updated_at": "2026-05-22T03:53:30Z", + "closed_at": "2026-05-22T03:53:30Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1175", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1175", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1175.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1175.patch", + "merged_at": "2026-05-22T03:53:30Z" + }, + "body": "### Addressed Issues:\r\nCloses #1110 \r\n\r\nsee issue #1110 for more details\r\n\r\n\r\n## Checklist\r\n\r\n- [x] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [x] My code follows the project's code style and conventions\r\n- [x] If applicable, I have made corresponding changes or additions to the documentation\r\n- [x] If applicable, I have made corresponding changes or additions to tests\r\n- [x] My changes generate no new warnings or errors\r\n- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [ ] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [ ] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n\r\n## ⚠️ AI Notice - Important!\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact.\r\n\r\n\r\n@rahulharpal1603 Please check this out,\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Automated duplicate issue detection: when a new issue is opened, the system compares it to existing issues, posts a non-blocking comment listing top potential duplicates with confidence scores and links, and automatically applies a \"duplicate\" label. Operations degrade gracefully if comment or labeling permissions are restricted.\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1175/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1175/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1174", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1174/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1174/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1174/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1174", + "id": 3943347423, + "node_id": "PR_kwDOJpiIC87D4DQn", + "number": 1174, + "title": "Fix: Application controls in settings page (#817)", + "user": { + "login": "aurthitaacharya-afk", + "id": 232553150, + "node_id": "U_kgDODdx6vg", + "avatar_url": "https://avatars.githubusercontent.com/u/232553150?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/aurthitaacharya-afk", + "html_url": "https://github.com/aurthitaacharya-afk", + "followers_url": "https://api.github.com/users/aurthitaacharya-afk/followers", + "following_url": "https://api.github.com/users/aurthitaacharya-afk/following{/other_user}", + "gists_url": "https://api.github.com/users/aurthitaacharya-afk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/aurthitaacharya-afk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/aurthitaacharya-afk/subscriptions", + "organizations_url": "https://api.github.com/users/aurthitaacharya-afk/orgs", + "repos_url": "https://api.github.com/users/aurthitaacharya-afk/repos", + "events_url": "https://api.github.com/users/aurthitaacharya-afk/events{/privacy}", + "received_events_url": "https://api.github.com/users/aurthitaacharya-afk/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257250, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/enhancement", + "name": "enhancement", + "color": "0e8a16", + "default": true, + "description": "New feature or request" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + }, + { + "id": 10854485877, + "node_id": "LA_kwDOJpiIC88AAAAChvpPdQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/PR%20has%20merge%20conflicts", + "name": "PR has merge conflicts", + "color": "cc3a19", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-15T07:11:44Z", + "updated_at": "2026-05-30T09:14:21Z", + "closed_at": "2026-05-30T09:14:21Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1174", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1174", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1174.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1174.patch", + "merged_at": null + }, + "body": "🔧 What this PR does\r\n\r\n- Fixed application controls component in Settings page\r\n- Improved UI structure and imports\r\n- Resolved errors related to settings controls\r\n\r\n🐛 Issue Fixed\r\n#817 \r\n\r\n🧪 Changes Made\r\n\r\n- Updated ApplicationControlsCard component\r\n- Cleaned imports and code structure\r\n- Ensured proper rendering in Settings page\r\n\r\n✅ Checklist\r\n\r\n- [x] Code compiles without errors\r\n- [x] Followed project structure\r\n- [x] Tested locally\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Updated Discord Server text formatting in README for better visibility and consistency\n\n* **Style**\n * Enhanced styling for form controls (buttons, inputs, selects, textareas) and typography elements with adjusted line-height and vertical padding for improved visual appearance\n\n", + "closed_by": { + "login": "rahulharpal1603", + "id": 51887323, + "node_id": "MDQ6VXNlcjUxODg3MzIz", + "avatar_url": "https://avatars.githubusercontent.com/u/51887323?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahulharpal1603", + "html_url": "https://github.com/rahulharpal1603", + "followers_url": "https://api.github.com/users/rahulharpal1603/followers", + "following_url": "https://api.github.com/users/rahulharpal1603/following{/other_user}", + "gists_url": "https://api.github.com/users/rahulharpal1603/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahulharpal1603/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahulharpal1603/subscriptions", + "organizations_url": "https://api.github.com/users/rahulharpal1603/orgs", + "repos_url": "https://api.github.com/users/rahulharpal1603/repos", + "events_url": "https://api.github.com/users/rahulharpal1603/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahulharpal1603/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1174/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1174/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1173", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1173/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1173/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1173/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1173", + "id": 3943123470, + "node_id": "I_kwDOJpiIC87rB0oO", + "number": 1173, + "title": "🐳 Enhancement: Add Dockerized Development Setup for PictoPy", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-15T04:58:19Z", + "updated_at": "2026-02-15T09:33:56Z", + "closed_at": "2026-02-15T09:33:56Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## 🚀 Problem Statement\n\nCurrently, setting up the PictoPy development environment requires:\n\n- Installing Python and managing virtual environments\n- Installing Node.js and frontend dependencies\n- Configuring environment variables manually\n- Ensuring correct versions of ONNX Runtime, SQLite, etc.\n- Running backend and frontend separately\n\nThis makes onboarding difficult for new contributors and increases the chances of environment-related issues.\n\n---\n\n## 💡 Proposed Solution\n\nCreate a Dockerized development environment using:\n\n- `Dockerfile` for:\n - Python backend\n - Frontend (Node + Tauri)\n- `docker-compose.yml` to orchestrate:\n - Backend service (FastAPI)\n - Frontend service\n - Optional: SQLite volume mapping\n- Environment configuration via `.env` file\n\n---\n\n## 📦 Proposed Architecture\n\ndocker-compose\n│\n├── backend (Python + FastAPI + ML models)\n│\n├── frontend (React + Tauri)\n│\n└── volumes:\n├── database\n└── uploaded images\n\n\n---\n\n\n---\n\n## 🎯 Goals\n\n- One command setup:\n\n```bash\ndocker-compose up --build\n```\n---\n\nConsistent development environment across:\n\nWindows\nmacOS\nLinux\n\n- Simplify contributor onboarding\n- Reduce environment-specific bugs\n\n---\n\n##🛠️ Implementation Plan\n### 1️⃣ Backend Dockerfile\n\n - Use official Python image\n - Install dependencies from requirements.txt\n -Expose FastAPI port\n - Set working directory\n - Handle ONNX runtime dependencies\n\n### 2️⃣ Frontend Dockerfile\n\n - Use Node base image\n - Install dependencies\n - Run development server\n - Map required ports\n\n### 3️⃣ docker-compose.yml\n\n - Define services\n- Add volume mounts\n- Add environment variables\n- Configure networking\n\n### 4️⃣ Documentation\n\n - Update README.md with:\n - Docker setup instructions\n - Development workflow\n - Troubleshooting tips\n\n## ✅ Acceptance Criteria\n\n- Project can run with a single Docker command\n- No manual dependency installation required\n- Backend and frontend communicate successfully\n- SQLite data persists via Docker volume\n- Documentation is clear and complete\n\n## 🧪 Testing Plan\n\n- Test on Windows\n- Test on macOS\n- Test on Linux\n- Verify image indexing works inside container\n- Verify database persistence", + "closed_by": { + "login": "rahulharpal1603", + "id": 51887323, + "node_id": "MDQ6VXNlcjUxODg3MzIz", + "avatar_url": "https://avatars.githubusercontent.com/u/51887323?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahulharpal1603", + "html_url": "https://github.com/rahulharpal1603", + "followers_url": "https://api.github.com/users/rahulharpal1603/followers", + "following_url": "https://api.github.com/users/rahulharpal1603/following{/other_user}", + "gists_url": "https://api.github.com/users/rahulharpal1603/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahulharpal1603/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahulharpal1603/subscriptions", + "organizations_url": "https://api.github.com/users/rahulharpal1603/orgs", + "repos_url": "https://api.github.com/users/rahulharpal1603/repos", + "events_url": "https://api.github.com/users/rahulharpal1603/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahulharpal1603/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1173/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1173/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1172", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1172/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1172/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1172/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1172", + "id": 3941229440, + "node_id": "I_kwDOJpiIC87q6mOA", + "number": 1172, + "title": "BUG: Uvicorn startup logs confusingly labeled as [error]", + "user": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 5564257251, + "node_id": "LA_kwDOJpiIC88AAAABS6fT4w", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-14T11:50:05Z", + "updated_at": "2026-05-29T12:38:02Z", + "closed_at": "2026-05-29T12:38:02Z", + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": { + "id": 7631873, + "node_id": "IT_kwDOAlFKy84AdHQB", + "name": "Bug", + "description": "An unexpected problem or behavior", + "color": "red", + "created_at": "2024-01-31T14:49:13Z", + "updated_at": "2024-07-26T12:01:58Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nWhen starting the `backend` and `sync-microservices` services using `fastapi dev` commands, the startup logs from Uvicorn (e.g., \"Started server process\") are prefixed with `[error]`. This is misleading as these are standard informational logs, not errors.\n\n\"Image\"\n\n## Steps to Reproduce\n1. Start the backend service: `fastapi dev --port 52123`.\n2. Observe the console output during startup.\n3. Start the sync-microservices service: `fastapi dev --port 52124`.\n4. Observe the console output during startup.\n\n## Expected Behavior\nThe logs should be labeled with `[uvicorn]` or a similar neutral tag, indicating the source of the log without implying an error severity.\n\nExample:\n```python\n[BACKEND] | [uvicorn] | INFO | Started server process [12345]\n```\n\nThis issue appears to be a regression introduced in PR #940. Previously, the `InterceptHandler` explicitly prepended `[uvicorn]` to the log messages:\n```python\nlogger.log(record.levelno, f\"[uvicorn] {msg}\")\n```\n\nThe refactoring to avoid recursion changed this logic to derive the tag from the logger name (`uvicorn.error` -> `error`), causing the misleading `[error]` tag.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1172/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1172/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1171", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1171/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1171/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1171/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1171", + "id": 3941171253, + "node_id": "PR_kwDOJpiIC87DxAKK", + "number": 1171, + "title": "chore: add run-pictopy script", + "user": { + "login": "gurusatsangi", + "id": 243969571, + "node_id": "U_kgDODoquIw", + "avatar_url": "https://avatars.githubusercontent.com/u/243969571?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gurusatsangi", + "html_url": "https://github.com/gurusatsangi", + "followers_url": "https://api.github.com/users/gurusatsangi/followers", + "following_url": "https://api.github.com/users/gurusatsangi/following{/other_user}", + "gists_url": "https://api.github.com/users/gurusatsangi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gurusatsangi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gurusatsangi/subscriptions", + "organizations_url": "https://api.github.com/users/gurusatsangi/orgs", + "repos_url": "https://api.github.com/users/gurusatsangi/repos", + "events_url": "https://api.github.com/users/gurusatsangi/events{/privacy}", + "received_events_url": "https://api.github.com/users/gurusatsangi/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-14T11:26:42Z", + "updated_at": "2026-02-14T11:27:52Z", + "closed_at": "2026-02-14T11:27:14Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1171", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1171", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1171.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1171.patch", + "merged_at": null + }, + "body": "### Addressed Issues:\r\n\r\nFixes #(issue number)\r\n\r\n\r\n### Screenshots/Recordings:\r\n\r\n\r\n\r\n### Additional Notes:\r\n\r\n\r\n\r\n## Checklist\r\n\r\n- [ ] My PR addresses a single issue, fixes a single bug or makes a single improvement.\r\n- [ ] My code follows the project's code style and conventions\r\n- [ ] If applicable, I have made corresponding changes or additions to the documentation\r\n- [ ] If applicable, I have made corresponding changes or additions to tests\r\n- [ ] My changes generate no new warnings or errors\r\n- [ ] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and I will share a link to this PR with the project maintainers there\r\n- [ ] I have read the [Contribution Guidelines](../CONTRIBUTING.md)\r\n- [ ] Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.\r\n\r\n## ⚠️ AI Notice - Important!\r\n\r\nWe encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Added a PowerShell orchestrator script that automates the startup and management of frontend and backend services with integrated logging and cleanup functionality.\n\n", + "closed_by": { + "login": "gurusatsangi", + "id": 243969571, + "node_id": "U_kgDODoquIw", + "avatar_url": "https://avatars.githubusercontent.com/u/243969571?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gurusatsangi", + "html_url": "https://github.com/gurusatsangi", + "followers_url": "https://api.github.com/users/gurusatsangi/followers", + "following_url": "https://api.github.com/users/gurusatsangi/following{/other_user}", + "gists_url": "https://api.github.com/users/gurusatsangi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gurusatsangi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gurusatsangi/subscriptions", + "organizations_url": "https://api.github.com/users/gurusatsangi/orgs", + "repos_url": "https://api.github.com/users/gurusatsangi/repos", + "events_url": "https://api.github.com/users/gurusatsangi/events{/privacy}", + "received_events_url": "https://api.github.com/users/gurusatsangi/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1171/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1171/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1170", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1170/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1170/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1170/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1170", + "id": 3937453196, + "node_id": "I_kwDOJpiIC87qsMSM", + "number": 1170, + "title": "Feat: Display the time of each activity while logging.", + "user": { + "login": "codex-yv", + "id": 176281445, + "node_id": "U_kgDOCoHXZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/176281445?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/codex-yv", + "html_url": "https://github.com/codex-yv", + "followers_url": "https://api.github.com/users/codex-yv/followers", + "following_url": "https://api.github.com/users/codex-yv/following{/other_user}", + "gists_url": "https://api.github.com/users/codex-yv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codex-yv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codex-yv/subscriptions", + "organizations_url": "https://api.github.com/users/codex-yv/orgs", + "repos_url": "https://api.github.com/users/codex-yv/repos", + "events_url": "https://api.github.com/users/codex-yv/events{/privacy}", + "received_events_url": "https://api.github.com/users/codex-yv/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-13T14:29:09Z", + "updated_at": "2026-02-13T14:30:45Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### Description\nThis feature will display the exact time at which each action or execution occurs while logging.\n- Example \n - **`[BACKEND] | INFO | 19:28:03 | [access] 127.0.0.1:58132 - \"GET /images/?tagged=true HTTP/1.1\" 200`**\n - **`[SYNC-MICROSERVICE] | INFO | 19:28:18 | [access] 127.0.0.1:59097 - \"GET /folders/status HTTP/1.1\" 200`**\nMost hosting platforms also provide this feature.\n\n### Files affected\n- `modified:` backend/app/logging/**setup_logging.py**\n- `modified:` sync-microservice/app/logging/**setup_logging.py**\n- `modified:` utils/logging/**logging_config.json**\n\n\n### Add ScreenShots\n\n## Screeenshots (Before)\n### No timestamp for logging activity.\n- **`Backend`**\n\"Image\"\n\n- **`Sync-microservices`**\n\n\"Image\"\n\n## After Screenshots(After)\n### Timestamp is now available for logging activity.\n- **`Backend`**\n\n\"Image\"\n\n- **`Sync-microservices`**\n\n\"Image\"\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1170/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1170/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1169", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1169/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1169/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1169/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1169", + "id": 3935703238, + "node_id": "I_kwDOJpiIC87qlhDG", + "number": 1169, + "title": "BUG/PERF: Critical CPU Thrashing & UI Lag due to Unconstrained ONNX Threading", + "user": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-13T07:00:54Z", + "updated_at": "2026-02-13T07:01:33Z", + "closed_at": null, + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "**Is there an existing issue for this?**\n- [x] I have searched the existing issues\n\nNone of the currently open issues directly address the \"Thread Explosion\" (CPU Thrashing) caused by ONNX Runtime. Though a few of them do sound like _cousins_ to the problem like #1034 and #1033\n\n---\n\n### **What happened?**\n\nThe application currently experiences significant performance degradation (high Load Average, UI stutters, system unresponsiveness) during the image syncing/indexing process.\n\nAfter some investigation, I found out that the backend initializes `onnxruntime.InferenceSession` using the default constructor without specifying thread limits. When combined with the existing `ProcessPoolExecutor` architecture, this causes a \"thread explosion\" that thrashes the CPU and performance.\n\n---\n\n### **Cause**\n\nThe backend handles parallelism by spawning multiple worker processes. Inside each worker, the ONNX models (YOLO.py, FaceNet.py) are initialized with default settings. [By default, ONNX Runtime attempts to use all available CPU cores](https://onnxruntime.ai/docs/performance/tune-performance/threading.html#numa-support-and-performance-tuning).\n\nIf the host machine has 8 cores and the `ProcessPool` spawns 4 workers:\n- 4 Workers × 8 Threads per Worker = **32 Heavy Compute Threads** fighting for 8 physical cores.\n\n**Result:** The OS scheduler spends more time context-switching than processing, causing the UI thread to starve and the indexing speed to effectively decrease.\n\n---\n\n### **Proposed Solution**\n\nSince we are achieving parallelism at the **Process Level** (multiple images processed at once), we must disable parallelism at the **Model Level**.\n\nWe need to explicitly configure the `SessionOptions` to limit each model instance to a single thread.\n\n---\n\n**Record**\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1169/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1169/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1168", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1168/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1168/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1168/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1168", + "id": 3928328719, + "node_id": "I_kwDOJpiIC87qJYoP", + "number": 1168, + "title": "Feat: Option to remove wrong AI image tagging.", + "user": { + "login": "codex-yv", + "id": 176281445, + "node_id": "U_kgDOCoHXZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/176281445?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/codex-yv", + "html_url": "https://github.com/codex-yv", + "followers_url": "https://api.github.com/users/codex-yv/followers", + "following_url": "https://api.github.com/users/codex-yv/following{/other_user}", + "gists_url": "https://api.github.com/users/codex-yv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codex-yv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codex-yv/subscriptions", + "organizations_url": "https://api.github.com/users/codex-yv/orgs", + "repos_url": "https://api.github.com/users/codex-yv/repos", + "events_url": "https://api.github.com/users/codex-yv/events{/privacy}", + "received_events_url": "https://api.github.com/users/codex-yv/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-11T19:37:26Z", + "updated_at": "2026-02-11T19:39:41Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### Description \nThe AI tagging of the images in PictoPy are sometimes wrong. There should be a feature to remove the wrong AI tagging so that user have an option to remove that tag.\n\n### Current Feature\n- Image show AI tags but they don't have option to remove it.\n\n### Expected Feature \n- Tags should have option to remove it. This option should be visible when we hover on it.\n\n### Implementation\n- **`Backend`** : \n - Created a delete route with parameters for `tag name` and `image id.` \n - Get `class_id` from **mapping** (Database) with the help of `tag name`.\n - With the help of `image_id` and `class_id` we can remove the tagging from **image_classes**.\n- **`Frontend`** : \n - Added the delete endpoint to `apiEndpoints.ts` and created an asynchronous function using `Axios` to handle the `DELETE` request to the backend.\n - Implemented a reducer in `imageSlice.ts` that filters out the deleted tag from the `Redux` store, ensuring the UI reflects the change immediately without a page refresh.\n - Linked the tag removal logic to the `ImageTags` (home gallery) and `MediaInfoPanel` (image details) components, passing necessary imageId props to trigger deletions.\n - Added an \"X\" button to each tag that stops click propagation to prevent opening the image and includes a loading state to disable multiple clicks during the deletion process.\n \n\n\n\n### Add ScreenShots\n\n### Screenshots\n- API working properly.\n\n\"Image\"\n\n- Wrong AI tagging. ( no frisbee in image ) and there is not any option to remove the tagging.\n\n![Image](https://github.com/user-attachments/assets/704b0e07-9a67-4ef0-a9c3-d559d44c7257)\n\n- Added an option to remove the tags.\n\n![Image](https://github.com/user-attachments/assets/901b65ce-c2ba-4adc-ad0f-a5e63b4ebd37)\n\n- Tag removed on clicking the \"X\" icon.\n\n![Image](https://github.com/user-attachments/assets/1acc5918-fea3-4aa2-a8f3-7b71fd9da998)\n\n- Tags with option to remove is also visible in Media Info.\n\n![Image](https://github.com/user-attachments/assets/ab80a35b-2983-4652-86ca-0d7313ddb8c7)\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1168/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1168/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1167", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1167/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1167/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1167/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1167", + "id": 3925744240, + "node_id": "PR_kwDOJpiIC87C9mfY", + "number": 1167, + "title": "Add failing test to ensure OpenAPI does not execute lifespan", + "user": { + "login": "Riddhi8077", + "id": 198537967, + "node_id": "U_kgDOC9Vy7w", + "avatar_url": "https://avatars.githubusercontent.com/u/198537967?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Riddhi8077", + "html_url": "https://github.com/Riddhi8077", + "followers_url": "https://api.github.com/users/Riddhi8077/followers", + "following_url": "https://api.github.com/users/Riddhi8077/following{/other_user}", + "gists_url": "https://api.github.com/users/Riddhi8077/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Riddhi8077/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Riddhi8077/subscriptions", + "organizations_url": "https://api.github.com/users/Riddhi8077/orgs", + "repos_url": "https://api.github.com/users/Riddhi8077/repos", + "events_url": "https://api.github.com/users/Riddhi8077/events{/privacy}", + "received_events_url": "https://api.github.com/users/Riddhi8077/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 8, + "created_at": "2026-02-11T10:15:04Z", + "updated_at": "2026-03-17T16:08:44Z", + "closed_at": "2026-03-17T16:08:43Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1167", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1167", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1167.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1167.patch", + "merged_at": null + }, + "body": "This PR adds a focused failing test to verify that generating OpenAPI schema does not trigger application lifespan events.\r\n\r\nNo functional changes are included yet - this is only the initial test as per contribution workflow.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Tests**\n * Added test coverage to verify application stability when OpenAPI generation encounters errors.\n\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1167/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1167/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1166", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1166/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1166/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1166/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1166", + "id": 3925347168, + "node_id": "I_kwDOJpiIC87p-Atg", + "number": 1166, + "title": "BUG: Critical Race Condition in Sync Microservice Watcher Initialization", + "user": { + "login": "faizavk", + "id": 190169992, + "node_id": "U_kgDOC1XDiA", + "avatar_url": "https://avatars.githubusercontent.com/u/190169992?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/faizavk", + "html_url": "https://github.com/faizavk", + "followers_url": "https://api.github.com/users/faizavk/followers", + "following_url": "https://api.github.com/users/faizavk/following{/other_user}", + "gists_url": "https://api.github.com/users/faizavk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/faizavk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/faizavk/subscriptions", + "organizations_url": "https://api.github.com/users/faizavk/orgs", + "repos_url": "https://api.github.com/users/faizavk/repos", + "events_url": "https://api.github.com/users/faizavk/events{/privacy}", + "received_events_url": "https://api.github.com/users/faizavk/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "faizavk", + "id": 190169992, + "node_id": "U_kgDOC1XDiA", + "avatar_url": "https://avatars.githubusercontent.com/u/190169992?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/faizavk", + "html_url": "https://github.com/faizavk", + "followers_url": "https://api.github.com/users/faizavk/followers", + "following_url": "https://api.github.com/users/faizavk/following{/other_user}", + "gists_url": "https://api.github.com/users/faizavk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/faizavk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/faizavk/subscriptions", + "organizations_url": "https://api.github.com/users/faizavk/orgs", + "repos_url": "https://api.github.com/users/faizavk/repos", + "events_url": "https://api.github.com/users/faizavk/events{/privacy}", + "received_events_url": "https://api.github.com/users/faizavk/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 5, + "created_at": "2026-02-11T08:31:44Z", + "updated_at": "2026-05-21T18:20:09Z", + "closed_at": null, + "assignee": { + "login": "faizavk", + "id": 190169992, + "node_id": "U_kgDOC1XDiA", + "avatar_url": "https://avatars.githubusercontent.com/u/190169992?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/faizavk", + "html_url": "https://github.com/faizavk", + "followers_url": "https://api.github.com/users/faizavk/followers", + "following_url": "https://api.github.com/users/faizavk/following{/other_user}", + "gists_url": "https://api.github.com/users/faizavk/gists{/gist_id}", + "starred_url": "https://api.github.com/users/faizavk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/faizavk/subscriptions", + "organizations_url": "https://api.github.com/users/faizavk/orgs", + "repos_url": "https://api.github.com/users/faizavk/repos", + "events_url": "https://api.github.com/users/faizavk/events{/privacy}", + "received_events_url": "https://api.github.com/users/faizavk/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n**Bug Description:** \nA Time-of-Check to Time-of-Use (TOCTOU) race condition exists in sync-microservice/app/utils/watcher.py. This vulnerability allows multiple background watcher threads to be spawned simultaneously, which can lead to duplicated sync events, corrupted global state, and memory leaks.\n\n**Root Cause:** The global variables tracking the watcher state (watcher_thread, watched_folders, folder_id_map) are mutated across asynchronous API requests without thread synchronization (e.g., no threading.Lock()).\n\nBecause the startup process involves I/O operations (database and filesystem checks) that yield the Python GIL, if the /start endpoint receives concurrent requests, both requests can bypass the watcher_util_is_watcher_running() check before the first request has a chance to assign the watcher_thread variable. This results in multiple watchfiles processes being initialized and running concurrently over the same directories.\n\n**Proposed Fix**\nTo enforce thread safety, I propose introducing a global threading.Lock() (e.g., state_lock = threading.Lock()). We can then wrap the critical sections inside watcher_util_start_folder_watcher, watcher_util_stop_folder_watcher, and watcher_util_restart_folder_watcher using a with state_lock: context manager. This will guarantee atomic operations on the global watcher state and completely prevent duplicate thread creation.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1166/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1166/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1165", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1165/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1165/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1165/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1165", + "id": 3921745500, + "node_id": "I_kwDOJpiIC87pwRZc", + "number": 1165, + "title": "BUG: \"Open Original File\" button in Media Info Panel shows no action", + "user": { + "login": "codex-yv", + "id": 176281445, + "node_id": "U_kgDOCoHXZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/176281445?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/codex-yv", + "html_url": "https://github.com/codex-yv", + "followers_url": "https://api.github.com/users/codex-yv/followers", + "following_url": "https://api.github.com/users/codex-yv/following{/other_user}", + "gists_url": "https://api.github.com/users/codex-yv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codex-yv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codex-yv/subscriptions", + "organizations_url": "https://api.github.com/users/codex-yv/orgs", + "repos_url": "https://api.github.com/users/codex-yv/repos", + "events_url": "https://api.github.com/users/codex-yv/events{/privacy}", + "received_events_url": "https://api.github.com/users/codex-yv/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-10T14:21:27Z", + "updated_at": "2026-02-10T14:25:35Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n### Description\nThe **`Open Original File`** button in the `Image Details` panel fails to open images in the system's default viewer. Even though the backend provides the correct absolute path, the frontend action is either silent or blocked by security errors.\n\n### How to reproduce \n- Launch PictoPy and go to the Home gallery.\n- Select an image and click the **`Show Info (Info icon) button`**.\n- Click the **`Open Original File`** button at the bottom of the panel.\n- Observation: No external application opens, or a `Failed to open file` error appears in the console.\n\n![Image](https://github.com/user-attachments/assets/ff88d5aa-7f34-4fcb-a596-8fe10ee55e71)\n\n### Root Cause\n- **Migration Gap**: The code uses `open() from @tauri-apps/plugin-shell`, which is deprecated/restricted in Tauri v2 for opening local file system paths.\n- **Missing Permissions**: The Tauri capabilities configuration lacks the explicit `opener:allow-open-path` permission.\n- **Missing Scope**: Tauri v2 requires an explicit scope `(**)` to authorize the opener plugin to access local file paths.\n\n### Potential Fix\n- **Frontend** : Migrate from `plugin-shell` to `@tauri-apps/plugin-opener` and use `openPath(currentImage.path)`\n- **Configuration** : Update the app's capability file `migrated.json` to include the scoped permission:\n\n ```JSON \n {\n \"identifier\": \"opener:allow-open-path\",\n \"allow\": [{ \"path\": \"**\" }]\n}\n```\n\n### Before Screenshot\n\n![Image](https://github.com/user-attachments/assets/4f4becbf-1170-4b1e-b042-91d3dd227f61)\n\n### After Screenshot\n\n![Image](https://github.com/user-attachments/assets/a7d8c994-8d04-4eed-addf-f41368f1e45e)\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1165/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1165/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1164", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1164/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1164/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1164/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1164", + "id": 3918104152, + "node_id": "I_kwDOJpiIC87piYZY", + "number": 1164, + "title": "BUG: Face clusters show fewer photos than face search for the same person", + "user": { + "login": "varsharaodevaraj", + "id": 211978854, + "node_id": "U_kgDODKKKZg", + "avatar_url": "https://avatars.githubusercontent.com/u/211978854?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/varsharaodevaraj", + "html_url": "https://github.com/varsharaodevaraj", + "followers_url": "https://api.github.com/users/varsharaodevaraj/followers", + "following_url": "https://api.github.com/users/varsharaodevaraj/following{/other_user}", + "gists_url": "https://api.github.com/users/varsharaodevaraj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/varsharaodevaraj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/varsharaodevaraj/subscriptions", + "organizations_url": "https://api.github.com/users/varsharaodevaraj/orgs", + "repos_url": "https://api.github.com/users/varsharaodevaraj/repos", + "events_url": "https://api.github.com/users/varsharaodevaraj/events{/privacy}", + "received_events_url": "https://api.github.com/users/varsharaodevaraj/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-09T20:52:54Z", + "updated_at": "2026-03-01T10:28:23Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n## What happened?\nAfter AI tagging completes, Face Collections (People view) show very few photos for a person,\nwhile face search returns many more photos for the same person.\n\nExample from my local setup:\n- AI Tagging → Face Collections → Person 5eb9 shows **3 photos**\n- Home → Face search using the same person returns **13 photos**\n\nThis is confusing from a user perspective since both features appear to answer the same question:\n\"Show me all photos of this person.\"\n\n---\n\n## How to reproduce\n1. Add a folder with many photos of the same person\n2. Enable AI tagging and wait for it to complete\n3. Go to AI Tagging → Face Collections\n4. Click a person cluster and note the photo count\n5. Use Home search with a photo of the same person\n6. Observe that search returns significantly more photos than the cluster view\n\n---\n\n## Expected behaviour\nFace Collections and face search should be consistent, or the UI should clearly explain\nwhy results differ.\n\n---\n\n## Actual behaviour\nFace Collections show only a small subset of photos, while face search returns many more\nfor the same person.\n\n---\n\n## Technical analysis (initial one)\nFrom tracing the backend pipeline:\n- Face clustering uses DBSCAN with stricter similarity thresholds and may exclude faces as noise\n- Face search compares raw embeddings with a looser threshold and ignores clusters entirely\n- Some faces remain unclustered but still appear in search results\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1164/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1164/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1163", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1163/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1163/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1163/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1163", + "id": 3916328512, + "node_id": "PR_kwDOJpiIC87CetlQ", + "number": 1163, + "title": "Refactor album route tests to reduce implementation coupling and cent…", + "user": { + "login": "g-k-s-03", + "id": 226368649, + "node_id": "U_kgDODX4ciQ", + "avatar_url": "https://avatars.githubusercontent.com/u/226368649?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/g-k-s-03", + "html_url": "https://github.com/g-k-s-03", + "followers_url": "https://api.github.com/users/g-k-s-03/followers", + "following_url": "https://api.github.com/users/g-k-s-03/following{/other_user}", + "gists_url": "https://api.github.com/users/g-k-s-03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/g-k-s-03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/g-k-s-03/subscriptions", + "organizations_url": "https://api.github.com/users/g-k-s-03/orgs", + "repos_url": "https://api.github.com/users/g-k-s-03/repos", + "events_url": "https://api.github.com/users/g-k-s-03/events{/privacy}", + "received_events_url": "https://api.github.com/users/g-k-s-03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-02-09T13:14:09Z", + "updated_at": "2026-03-17T16:09:13Z", + "closed_at": "2026-03-17T16:09:12Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1163", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1163", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1163.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1163.patch", + "merged_at": null + }, + "body": "closes #1007 \r\n**Summary**\r\nThis PR refactors the album route tests to reduce tight coupling with internal database helper functions and improve long-term test maintainability.\r\n\r\n**Changes Made**\r\n\r\nCentralized database mocking using fixtures instead of patching DB helpers inside individual tests\r\nReduced repetitive per-test patch logic\r\nImproved focus on API contract validation:\r\n - HTTP status codes\r\n - Response JSON structure\r\n - Observable behavior through API responses\r\n\r\n**Motivation**\r\nPreviously, tests directly patched internal database helper functions (e.g., db_get_album, db_insert_album, etc.), which tightly coupled tests to implementation details.\r\nThis made tests fragile and harder to maintain during internal refactors.\r\nThis refactor improves test resilience while keeping full API flow coverage.\r\n\r\nTechnical Notes\r\n - Mocking is now handled at a centralized boundary in test fixtures\r\n - Tests continue to verify full request → route → response flow\r\n - Password verification logic is still patched separately since it represents isolated business logic rather than persistence behavior\r\n\r\n**Impact**\r\n - Improves maintainability of test suite\r\n - Reduces test fragility during internal refactors\r\n - Makes it easier for contributors to modify database logic without breaking unrelated tests\r\n\r\n**Scope**\r\n - Tests only\r\n - No production code changes\r\n - No API behavior changes\n\n\n## Summary by CodeRabbit\n\n* **Tests**\n * Refactored album test infrastructure to use an in-memory test database and a centralized test client, improving reliability.\n * Expanded API-level test coverage for album workflows: create, duplicate create, list (public/hidden/empty), get by id, update, delete, and image management (add/get/remove/bulk remove).\n * Tests now validate API responses and behaviors end-to-end rather than internal helpers.\n\n*Note: No changes to end-user functionality.*\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1163/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1163/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1161", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1161/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1161/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1161/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1161", + "id": 3912933356, + "node_id": "I_kwDOJpiIC87pOp_s", + "number": 1161, + "title": "Feat:Add automation to manage stale issues and PRs", + "user": { + "login": "Abhinandankaushik", + "id": 158504394, + "node_id": "U_kgDOCXKVyg", + "avatar_url": "https://avatars.githubusercontent.com/u/158504394?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhinandankaushik", + "html_url": "https://github.com/Abhinandankaushik", + "followers_url": "https://api.github.com/users/Abhinandankaushik/followers", + "following_url": "https://api.github.com/users/Abhinandankaushik/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhinandankaushik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhinandankaushik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhinandankaushik/subscriptions", + "organizations_url": "https://api.github.com/users/Abhinandankaushik/orgs", + "repos_url": "https://api.github.com/users/Abhinandankaushik/repos", + "events_url": "https://api.github.com/users/Abhinandankaushik/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhinandankaushik/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-02-08T15:19:59Z", + "updated_at": "2026-02-11T15:11:15Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### Description:\n\nCurrently, the repository does not have any automated mechanism to manage inactive (stale) issues and pull requests. As a result, many old issues and PRs remain open indefinitely, even when they are no longer relevant or actively being worked on. This leads to:\n\n- Cluttered issue tracker\n- Increased maintenance overhead\n- Difficulty in identifying active vs inactive work\n- Slower triaging process for maintainers\n\nTo improve repository hygiene and reduce manual effort, we propose adding an automated Stale Issue Bot using GitHub Actions.\n\n\n### Proposed Solution:\n\nWe propose implementing a Stale Issue Bot using the actions/stale GitHub Action. The bot will automatically monitor issues and pull requests and take the following actions:\n\n✅ Behavior of the bot\n\n1. If an issue or PR has been inactive for 60 days:\n - The bot will post a comment notifying that it has become stale.\n - The bot will add a stale label to the issue/PR.\n2. If there is no activity for 7 more days after marking it stale:\n - The bot will automatically close the issue or PR.\n\n**Proposed Implementation :**\nA new workflow file should be added:\n```\n.github/workflows/stale-bot.yml\n```\n\n**Expected Benefits:**\n\nThis automation will:\n\n- Keep the repository clean and organized\n- Reduce manual effort for maintainers\n- Help prioritize active issues and PRs\n- Prevent outdated discussions from lingering indefinitely\n\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1161/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1161/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1160", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1160/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1160/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1160/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1160", + "id": 3912840965, + "node_id": "I_kwDOJpiIC87pOTcF", + "number": 1160, + "title": "BUG: Resource leak on partial failure in image_util_classify_and_face_detect_images", + "user": { + "login": "Yug210705", + "id": 164662767, + "node_id": "U_kgDOCdCN7w", + "avatar_url": "https://avatars.githubusercontent.com/u/164662767?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Yug210705", + "html_url": "https://github.com/Yug210705", + "followers_url": "https://api.github.com/users/Yug210705/followers", + "following_url": "https://api.github.com/users/Yug210705/following{/other_user}", + "gists_url": "https://api.github.com/users/Yug210705/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Yug210705/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Yug210705/subscriptions", + "organizations_url": "https://api.github.com/users/Yug210705/orgs", + "repos_url": "https://api.github.com/users/Yug210705/repos", + "events_url": "https://api.github.com/users/Yug210705/events{/privacy}", + "received_events_url": "https://api.github.com/users/Yug210705/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-02-08T14:24:50Z", + "updated_at": "2026-02-09T04:06:41Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nObjectClassifier and FaceDetector are initialized outside the try...finally block in\nbackend/app/utils/images.py. This can lead to resource leaks when initialization or cleanup fails.\n\n**Details**\n\n**Current pattern:**\n```\nobject_classifier = ObjectClassifier()\nface_detector = FaceDetector()\ntry:\n ...\nfinally:\n object_classifier.close()\n face_detector.close()\n\n```\n\n**Problems:**\n\nIf FaceDetector() raises during init, finally is never executed → ObjectClassifier is not closed.\nIf object_classifier.close() raises, face_detector.close() is skipped.\n\n**Impact:**\n\n- ONNX session / memory leaks\n- Potential file handle leaks\n- Increased risk of backend instability during AI Tagging\n\n\n**Proposed Fix**\n\nRefactor to:\n- Initialize both objects as None\n- Move initialization inside try (or use nested try...finally)\n- Guard each close() call (e.g. if obj is not None)\n- Optionally isolate close() calls to avoid cascading failures\n\n\n**Testing**\nManual: verify AI Tagging still works; simulate model load failure\nAutomated (optional): mock init failure and assert close() is called\n\n\n**Request:**\nHappy to submit a PR with the fix + test if this approach is acceptable.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1160/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1160/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1159", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1159/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1159/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1159/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1159", + "id": 3911273286, + "node_id": "I_kwDOJpiIC87pIUtG", + "number": 1159, + "title": "BUG: Orphan thumbnail files permanently leak disk space when folders are deleted", + "user": { + "login": "Nakshatra480", + "id": 219866800, + "node_id": "U_kgDODRrmsA", + "avatar_url": "https://avatars.githubusercontent.com/u/219866800?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Nakshatra480", + "html_url": "https://github.com/Nakshatra480", + "followers_url": "https://api.github.com/users/Nakshatra480/followers", + "following_url": "https://api.github.com/users/Nakshatra480/following{/other_user}", + "gists_url": "https://api.github.com/users/Nakshatra480/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Nakshatra480/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Nakshatra480/subscriptions", + "organizations_url": "https://api.github.com/users/Nakshatra480/orgs", + "repos_url": "https://api.github.com/users/Nakshatra480/repos", + "events_url": "https://api.github.com/users/Nakshatra480/events{/privacy}", + "received_events_url": "https://api.github.com/users/Nakshatra480/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-02-07T21:20:51Z", + "updated_at": "2026-02-08T18:33:14Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nWhen a user deletes a folder through **Settings → Folder Management**, the thumbnail image files on disk are never cleaned up. The SQL `ON DELETE CASCADE` removes the image records from the database, but the physical `thumbnail_*.jpg` files in the app's thumbnail directory remain on disk permanently. This causes a silent disk space leak that grows every time a folder is removed.\n\n## Expected Behavior\n\nWhen a folder is deleted, all associated thumbnail files on disk should also be removed. The `delete_folders` route should query all thumbnail paths for images belonging to the folders being deleted **before** removing the DB records, and then delete those files from disk.\n\n## Root Cause\n\nThe `delete_folders` route in `backend/app/routes/folders.py` only calls the database batch delete function which performs a SQL DELETE — it never touches the filesystem to remove the corresponding thumbnail files.\n\nInterestingly, the sync/obsolete flow in `backend/app/utils/images.py` (`image_util_remove_obsolete_images`) **does** correctly clean up thumbnails when images are found to be missing from the filesystem — but this function is never called during the folder deletion flow.\n\nThe same problem also exists in `folder_util_delete_obsolete_folders` in `backend/app/utils/folders.py` — it deletes folder records from the database without any thumbnail cleanup.\n\n## Steps to Reproduce\n\n1. Open PictoPy and add a folder containing images (e.g., 50 photos).\n2. Wait for processing to complete (thumbnails generated).\n3. Note the files in the thumbnails directory (`~/.local/share/PictoPy/thumbnails/`).\n4. Go to **Settings → Folder Management** and delete the folder.\n5. Check the thumbnails directory again — **all thumbnail files from step 3 are still present**.\n6. Repeat steps 1–5 — orphan files keep accumulating.\n\n## Notes\n\n- Each thumbnail is a JPEG up to 600×600px (typically 20–100 KB each).\n- A user adding/removing 10 folders of 500 photos = ~5,000 orphaned thumbnails = ~100–500 MB leaked.\n- Users have no way to identify or clean these orphaned files without manually inspecting the directory.\n- This is related to but distinct from #569 (face data persistence) and #843 (thumbnail generation failure). Neither of those issues covers orphan thumbnail cleanup on folder deletion.\n\n## Files Involved\n\n- `backend/app/routes/folders.py` — `delete_folders()` (primary fix needed)\n- `backend/app/utils/folders.py` — `folder_util_delete_obsolete_folders()` (also needs fix)\n- `backend/app/database/images.py` — `db_get_images_by_folder_ids()` (needed to query thumbnails before deletion)\n- `backend/app/utils/images.py` — `image_util_remove_obsolete_images()` (reference for correct thumbnail cleanup)\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1159/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1159/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1158", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1158/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1158/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1158/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1158", + "id": 3910874222, + "node_id": "PR_kwDOJpiIC87CNExx", + "number": 1158, + "title": "Fix: Show \"Folder is empty\" message for empty folders in AI tagging #592", + "user": { + "login": "codex-yv", + "id": 176281445, + "node_id": "U_kgDOCoHXZQ", + "avatar_url": "https://avatars.githubusercontent.com/u/176281445?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/codex-yv", + "html_url": "https://github.com/codex-yv", + "followers_url": "https://api.github.com/users/codex-yv/followers", + "following_url": "https://api.github.com/users/codex-yv/following{/other_user}", + "gists_url": "https://api.github.com/users/codex-yv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codex-yv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codex-yv/subscriptions", + "organizations_url": "https://api.github.com/users/codex-yv/orgs", + "repos_url": "https://api.github.com/users/codex-yv/repos", + "events_url": "https://api.github.com/users/codex-yv/events{/privacy}", + "received_events_url": "https://api.github.com/users/codex-yv/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 5564257245, + "node_id": "LA_kwDOJpiIC88AAAABS6fT3Q", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/bug", + "name": "bug", + "color": "b60205", + "default": true, + "description": "Something isn't working" + }, + { + "id": 9239305202, + "node_id": "LA_kwDOJpiIC88AAAACJrSb8g", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/backend", + "name": "backend", + "color": "0052cc", + "default": false, + "description": "" + }, + { + "id": 9334668620, + "node_id": "LA_kwDOJpiIC88AAAACLGO9TA", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/frontend", + "name": "frontend", + "color": "f66a0a", + "default": false, + "description": "" + }, + { + "id": 10854485877, + "node_id": "LA_kwDOJpiIC88AAAAChvpPdQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/PR%20has%20merge%20conflicts", + "name": "PR has merge conflicts", + "color": "cc3a19", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-07T18:10:00Z", + "updated_at": "2026-05-26T06:30:07Z", + "closed_at": "2026-05-26T06:30:06Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1158", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1158", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1158.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1158.patch", + "merged_at": null + }, + "body": "## Description\r\nThis PR addresses an issue where enabling AI tagging on a folder with no images would display a stagnant 0% progress bar. The updated logic checks for the image count and provides a clear \"Folder is empty\" message instead. #592 \r\n\r\n## Changes in Backend\r\n- **Backend**\r\n`backend/app/database/folders.py` Updated `db_get_all_folder_details` to include a `LEFT JOIN` with the images table, allowing each folder to return its respective `image_count`.\r\n\r\n- **Schemas**\r\n`backend/app/schemas/folders.py` Added the `image_count` field to the **`FolderDetails`** Pydantic model to ensure the data is passed to the frontend.\r\n\r\n- **Routes**\r\n`backend/app/routes/folders.py` Updated the `get_all_folders` endpoint to unpack the new `image_count` value and include it in the API response.\r\n\r\n## Changes in Frontend\r\n- **Types** \r\n`frontend/src/types/Folder.ts` Updated the `FolderDetails` interface to include the `image_count` property.\r\n\r\n- **Components**\r\n`frontend/src/pages/SettingsPage/components/FolderManagementCard.tsx`\r\n - Implemented a conditional check within the AI Tagging section.\r\n - If a folder is empty `(image_count === 0)`, it now displays an italicized \"Folder is empty\" message.\r\n - If the folder contains images, it continues to show the AI Tagging progress bar as usual.\r\n\r\n## Final Result\r\nUsers will now see a much clearer state when attempting to enable AI tagging on empty folders. Instead of a misleading progress bar, they are explicitly informed that the folder is empty, improving the overall UX of the Folder Management section.\r\n\r\n\r\n\"Screenshot\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Folders now track and display the count of contained images.\n * Empty folders display a dedicated message instead of progress indicators, improving user experience.\n\n* **Chores**\n * Updated development environment with new browser compatibility dependency.\n * Cleaned up unused code references in the application.\n\n", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1158/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1158/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1157", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1157/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1157/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1157/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1157", + "id": 3908620076, + "node_id": "I_kwDOJpiIC87o-M8s", + "number": 1157, + "title": "Feat: Make PictoPy More Accessible – Keyboard Navigation & High Contrast Mode", + "user": { + "login": "Nakshatra480", + "id": 219866800, + "node_id": "U_kgDODRrmsA", + "avatar_url": "https://avatars.githubusercontent.com/u/219866800?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Nakshatra480", + "html_url": "https://github.com/Nakshatra480", + "followers_url": "https://api.github.com/users/Nakshatra480/followers", + "following_url": "https://api.github.com/users/Nakshatra480/following{/other_user}", + "gists_url": "https://api.github.com/users/Nakshatra480/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Nakshatra480/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Nakshatra480/subscriptions", + "organizations_url": "https://api.github.com/users/Nakshatra480/orgs", + "repos_url": "https://api.github.com/users/Nakshatra480/repos", + "events_url": "https://api.github.com/users/Nakshatra480/events{/privacy}", + "received_events_url": "https://api.github.com/users/Nakshatra480/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-02-06T22:13:29Z", + "updated_at": "2026-02-07T16:35:31Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n### Problem\n\nCurrently, PictoPy's main interface and controls are difficult to use for people who rely on keyboard navigation or need higher contrast for visibility. Key areas affected include:\n\n- Sidebar navigation has no visible focus indicator (keyboard users can't tell which section is active).\n- Icon-only buttons (e.g., Face Search, Search) have no visible or screen-reader-friendly labels.\n- The theme menu lacks a \"High Contrast\" option, making it hard for some users to comfortably view content.\n\nThese issues make PictoPy less inclusive and harder to use for anyone with visual impairments or those who depend on assistive technology.\n\n### Suggested Solution\n\n- Add strong visible focus rings to sidebar/menu items and inputs, so keyboard users can see what's focused (see \"Recommended Fixes\" mockup below).\n- Add accessible labels (aria-label/alt text) for all icon-only buttons. Show tooltip on hover and ensure screen readers announce the action.\n- Add a \"High Contrast\" option to the theme selector, supporting strong color contrast for all UI elements.\n- Update internal documentation to include new accessibility improvements.\n\n_Left: current state with missing focus, missing labels, and no high contrast.
\nRight: strong focus ring, labeled icons, and new theme option._\n\n### Why this is needed\n\nThis improves usability for everyone – not just users with disabilities – and aligns PictoPy with accessibility standards (WCAG, ADA). It will also make the project more appealing for broader community adoption.\n\n### Add ScreenShots\n\n\"Image\"\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1157/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1157/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1156", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1156/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1156/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1156/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1156", + "id": 3907537873, + "node_id": "I_kwDOJpiIC87o6EvR", + "number": 1156, + "title": "BUG:Title bar moves when scrolling content", + "user": { + "login": "gurusatsangi", + "id": 243969571, + "node_id": "U_kgDODoquIw", + "avatar_url": "https://avatars.githubusercontent.com/u/243969571?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/gurusatsangi", + "html_url": "https://github.com/gurusatsangi", + "followers_url": "https://api.github.com/users/gurusatsangi/followers", + "following_url": "https://api.github.com/users/gurusatsangi/following{/other_user}", + "gists_url": "https://api.github.com/users/gurusatsangi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/gurusatsangi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gurusatsangi/subscriptions", + "organizations_url": "https://api.github.com/users/gurusatsangi/orgs", + "repos_url": "https://api.github.com/users/gurusatsangi/repos", + "events_url": "https://api.github.com/users/gurusatsangi/events{/privacy}", + "received_events_url": "https://api.github.com/users/gurusatsangi/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-02-06T16:36:03Z", + "updated_at": "2026-02-07T16:26:10Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nDescription:\nWhile scrolling the content in the PictoPy desktop application, the window title bar also moves along with the content. This happens when scrolling both upward and downward.\n\nSteps to Reproduce:\n1. Launch the PictoPy desktop application\n2. Open any view that contains scrollable content\n3. Scroll up or down\n4. Observe that the title bar moves together with the content\n\nExpected Behavior:\nThe title bar should remain fixed at the top of the window, while only the content area scrolls.\n\nActual Behavior:\nThe title bar scrolls along with the content, which affects usability and feels incorrect for a desktop application.\n\nEnvironment:\nOS: Windows 11\nApp: PictoPy (Desktop)\nBuild: Development / latest\n\nAdditional Context:\nI have attached a screen recording that clearly demonstrates the issue.\n\nhttps://github.com/user-attachments/assets/5eeeb7f4-8c9e-44e8-ace9-7941c229d43c\n\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1156/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1156/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1155", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1155/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1155/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1155/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1155", + "id": 3907339098, + "node_id": "I_kwDOJpiIC87o5UNa", + "number": 1155, + "title": "BUG: Persistent mobile responsiveness gaps in PictoPy documentation (follow-up to #734, #763)", + "user": { + "login": "Abhinandankaushik", + "id": 158504394, + "node_id": "U_kgDOCXKVyg", + "avatar_url": "https://avatars.githubusercontent.com/u/158504394?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhinandankaushik", + "html_url": "https://github.com/Abhinandankaushik", + "followers_url": "https://api.github.com/users/Abhinandankaushik/followers", + "following_url": "https://api.github.com/users/Abhinandankaushik/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhinandankaushik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhinandankaushik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhinandankaushik/subscriptions", + "organizations_url": "https://api.github.com/users/Abhinandankaushik/orgs", + "repos_url": "https://api.github.com/users/Abhinandankaushik/repos", + "events_url": "https://api.github.com/users/Abhinandankaushik/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhinandankaushik/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-02-06T15:47:04Z", + "updated_at": "2026-03-20T15:48:19Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nAlthough mobile responsiveness improvements were previously implemented in PR #763 (addressing issue #734), the PictoPy documentation website still exhibits responsiveness problems in several sections when viewed on smaller screen sizes.\n\nWhile the earlier fix resolved many major layout issues, some components and pages continue to break or render sub-optimally on mobile and narrow viewports, indicating that the responsiveness work is not yet fully complete.\n\nThis issue is being raised as a follow-up to track and resolve the remaining gaps in mobile responsiveness.\n\nThis issue is only happen with this section of website : \nhttps://aossie-org.github.io/PictoPy/backend/backend_python/api/\n\n**Related References :**\nPrevious issue: #734\nPrevious merged PR: #763\n\nCurrent Behaviour : \n\n\"Image\"\n\nif this issue is actionable i would like to make a PR for this please assign it to me \n\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1155/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1155/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1154", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1154/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1154/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1154/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1154", + "id": 3905186737, + "node_id": "I_kwDOJpiIC87oxGux", + "number": 1154, + "title": "BUG:window controls overlap the navbar when app is maximized.", + "user": { + "login": "puneeth-92", + "id": 233440187, + "node_id": "U_kgDODeoDuw", + "avatar_url": "https://avatars.githubusercontent.com/u/233440187?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/puneeth-92", + "html_url": "https://github.com/puneeth-92", + "followers_url": "https://api.github.com/users/puneeth-92/followers", + "following_url": "https://api.github.com/users/puneeth-92/following{/other_user}", + "gists_url": "https://api.github.com/users/puneeth-92/gists{/gist_id}", + "starred_url": "https://api.github.com/users/puneeth-92/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/puneeth-92/subscriptions", + "organizations_url": "https://api.github.com/users/puneeth-92/orgs", + "repos_url": "https://api.github.com/users/puneeth-92/repos", + "events_url": "https://api.github.com/users/puneeth-92/events{/privacy}", + "received_events_url": "https://api.github.com/users/puneeth-92/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-02-06T06:34:03Z", + "updated_at": "2026-02-06T15:11:30Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nOn macOS when i tried using PictoPy app in a maximized window(full screen), the system window controls (red/yellow/green buttons) overlap with the application's top navigation panel.\nThis makes the navbar partially hidden, affecting usability.\n\nExpected Behaviour\nThe navbar should have enough top padding/safe-area spacing so it does not get covered by macOS window controls.\n\nActual Behaviour\nThe macOS window controls overlap the navbar area in full screen mode.\n\n\"Image\"\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1154/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1154/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1153", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1153/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1153/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1153/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1153", + "id": 3904821482, + "node_id": "PR_kwDOJpiIC87B5XIS", + "number": 1153, + "title": "Feat: Implement Landing Page Design System (#1146)", + "user": { + "login": "pranitaurlam", + "id": 227409059, + "node_id": "U_kgDODY38ow", + "avatar_url": "https://avatars.githubusercontent.com/u/227409059?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pranitaurlam", + "html_url": "https://github.com/pranitaurlam", + "followers_url": "https://api.github.com/users/pranitaurlam/followers", + "following_url": "https://api.github.com/users/pranitaurlam/following{/other_user}", + "gists_url": "https://api.github.com/users/pranitaurlam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pranitaurlam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pranitaurlam/subscriptions", + "organizations_url": "https://api.github.com/users/pranitaurlam/orgs", + "repos_url": "https://api.github.com/users/pranitaurlam/repos", + "events_url": "https://api.github.com/users/pranitaurlam/events{/privacy}", + "received_events_url": "https://api.github.com/users/pranitaurlam/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-06T04:36:30Z", + "updated_at": "2026-03-17T16:09:51Z", + "closed_at": "2026-03-17T16:09:51Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1153", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1153", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1153.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1153.patch", + "merged_at": null + }, + "body": "## Overview\r\nResolves #1146\r\n\r\nThis PR implements a comprehensive design system for the PictoPy landing page, establishing a cohesive visual language with improved typography, accessible colors, and standardized components.\r\n\r\n## Changes Made\r\n\r\nDesign System\r\n- **Typography**: Defined a scalable type system using `Inter` with semantic hierarchy\r\n- **Colors**: Replaced hardcoded neon colors with an accessible, WCAG-compliant palette derived from the brand's green/yellow identity\r\n- **Spacing**: Implemented consistent spacing tokens for better rhythm\r\n\r\n Component Refactor\r\n- **Landing Page**: Refactored [pictopy-landing.tsx](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/landing-page/src/Pages/pictopy-landing.tsx:0:0-0:0) to use the new design tokens\r\n- **Buttons**: Standardized button styles with unified hover/active states and smooth transitions\r\n- **Visuals**: Modernized the background wave animation with CSS gradients\r\n\r\n Accessibility\r\n- Improved color contrast ratios for text and UI elements\r\n- Added proper focus states for interactive elements\r\n- Ensured semantic HTML structure\r\n\r\nFixes\r\n- Fixed build errors by removing unused imports in [App.tsx](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/landing-page/src/App.tsx:0:0-0:0) and [theme-provider.tsx](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/landing-page/src/context/theme-provider.tsx:0:0-0:0)\r\n\r\n## Verification #1146\r\n- **Build**: `npm run build` passes successfully\r\n- **Visuals**: Verified consistent typography and spacing\r\n- **Responsive**: Tested on mobile and desktop breakpoints\r\n\r\n## Screenshots\r\n(The reviewer can verify the visual improvements locally)\n\n\n\n## Summary by CodeRabbit\n\n## Release Notes\n\n* **Style**\n * Updated landing page visual design with gradient effects on the header wave\n * Redesigned download buttons with new green gradient styling and refined hover interactions\n * Refreshed heading and subheading color schemes for improved visual hierarchy\n\n* **Chores**\n * Code cleanup and optimization\n\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1153/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1153/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1152", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1152/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1152/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1152/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1152", + "id": 3904748383, + "node_id": "PR_kwDOJpiIC87B5IUY", + "number": 1152, + "title": "Fix: Resolve Tauri Error 1412 (Chrome_WidgetWin_0) on Windows 11", + "user": { + "login": "pranitaurlam", + "id": 227409059, + "node_id": "U_kgDODY38ow", + "avatar_url": "https://avatars.githubusercontent.com/u/227409059?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pranitaurlam", + "html_url": "https://github.com/pranitaurlam", + "followers_url": "https://api.github.com/users/pranitaurlam/followers", + "following_url": "https://api.github.com/users/pranitaurlam/following{/other_user}", + "gists_url": "https://api.github.com/users/pranitaurlam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pranitaurlam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pranitaurlam/subscriptions", + "organizations_url": "https://api.github.com/users/pranitaurlam/orgs", + "repos_url": "https://api.github.com/users/pranitaurlam/repos", + "events_url": "https://api.github.com/users/pranitaurlam/events{/privacy}", + "received_events_url": "https://api.github.com/users/pranitaurlam/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-06T04:00:30Z", + "updated_at": "2026-02-06T09:00:36Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1152", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1152", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1152.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1152.patch", + "merged_at": null + }, + "body": "## Overview\r\n\r\nFixes #1147 \r\n\r\nThis PR resolves the issue where the Tauri frontend exits shortly after startup with `Error 1412: Failed to unregister class Chrome_WidgetWin_0` on Windows 11.\r\n\r\n## Root Cause\r\n\r\nError 1412 (`ERROR_CLASS_ALREADY_EXISTS`) is a Windows 11 WebView2/Chromium issue that occurs when multiple WebView2 instances attempt to register the same window class name. This causes the window to close prematurely before connecting to backend services.\r\n\r\n## Changes\r\n\r\n### 1. Added Single-Instance Plugin\r\n- **File**: [frontend/src-tauri/Cargo.toml](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/frontend/src-tauri/Cargo.toml:0:0-0:0)\r\n- **Change**: Added `tauri-plugin-single-instance = \"2.3.1\"`\r\n- **Purpose**: Prevents multiple WebView2 instances from running simultaneously\r\n\r\n### 2. Registered Single-Instance Behavior\r\n- **File**: [frontend/src-tauri/src/main.rs](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/frontend/src-tauri/src/main.rs:0:0-0:0)\r\n- **Change**: Configured plugin to focus existing window when second instance is launched\r\n- **Purpose**: Ensures only one WebView2 instance exists, preventing window class conflicts\r\n\r\n### 3. Enhanced Window Configuration\r\n- **File**: [frontend/src-tauri/tauri.conf.json](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/frontend/src-tauri/tauri.conf.json:0:0-0:0)\r\n- **Changes**: \r\n - Added `\"label\": \"main\"` for explicit window identification\r\n - Added `\"skipTaskbar\": false\"` for proper Windows 11 taskbar registration\r\n- **Purpose**: Improves window lifecycle management\r\n\r\n## Testing\r\n\r\n- [ ] Tested on Windows 11\r\n- [ ] Window stays open and doesn't auto-close\r\n- [ ] No Error 1412 in terminal\r\n- [ ] Successfully connects to backend services\r\n- [ ] Launching second instance focuses first window (no new window created)\r\n\r\n## Checklist\r\n\r\n- [x] My code follows the style guidelines of this project\r\n- [x] I have performed a self-review of my code\r\n- [x] I have made minimal, necessary changes only\r\n- [x] My changes generate no new warnings\r\n- [x] I have added comments explaining the fix where necessary\r\n\r\n## Additional Notes\r\n\r\nThis is a minimal, non-intrusive fix that:\r\n- Doesn't modify existing application logic\r\n- Uses a standard, well-maintained Tauri plugin\r\n- Addresses the root cause rather than suppressing symptoms\r\n- Won't negatively impact macOS/Linux builds\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added single-instance behavior: launching the app while already running will focus the existing window instead of opening a duplicate.\n * Window metadata updated so the main window is explicitly identified and appears in the taskbar.\n\n* **Documentation**\n * Updated contributing guide with Jest diagnostic steps to help investigate common test-run warnings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1152/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1152/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1151", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1151/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1151/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1151/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1151", + "id": 3901564166, + "node_id": "PR_kwDOJpiIC87Bug8w", + "number": 1151, + "title": "fix: improve exception handling in database connection", + "user": { + "login": "riyagoyal01", + "id": 224391589, + "node_id": "U_kgDODV_xpQ", + "avatar_url": "https://avatars.githubusercontent.com/u/224391589?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/riyagoyal01", + "html_url": "https://github.com/riyagoyal01", + "followers_url": "https://api.github.com/users/riyagoyal01/followers", + "following_url": "https://api.github.com/users/riyagoyal01/following{/other_user}", + "gists_url": "https://api.github.com/users/riyagoyal01/gists{/gist_id}", + "starred_url": "https://api.github.com/users/riyagoyal01/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/riyagoyal01/subscriptions", + "organizations_url": "https://api.github.com/users/riyagoyal01/orgs", + "repos_url": "https://api.github.com/users/riyagoyal01/repos", + "events_url": "https://api.github.com/users/riyagoyal01/events{/privacy}", + "received_events_url": "https://api.github.com/users/riyagoyal01/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-05T13:23:14Z", + "updated_at": "2026-03-17T16:17:50Z", + "closed_at": "2026-03-17T16:17:50Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1151", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1151", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1151.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1151.patch", + "merged_at": null + }, + "body": "Fixes #1102 \r\n\r\n### What this PR does\r\n\r\nThis PR improves error handling in the `get_db_connection` context manager by catching database-specific exceptions and adding structured logging.\r\n\r\n### Changes made\r\n\r\n- Replaced generic `except Exception` with `except sqlite3.Error` to handle database-related errors explicitly \r\n- Added logging using `logger.exception()` for better debugging and traceability \r\n- Ensured transactions are rolled back safely on database failures \r\n- Preserved existing behavior of re-raising the exception after rollback \r\n- No change to connection lifecycle (commit, rollback, close logic remains intact)\r\n\r\n### Why this change is needed\r\n\r\nPreviously, the code used a generic `except Exception` block, which:\r\n- Could hide the nature of database-related failures \r\n- Made debugging harder due to lack of logging \r\n- Did not distinguish SQLite errors from other runtime issues \r\n\r\nUsing `sqlite3.Error` with logging makes error handling:\r\n- More precise \r\n- Easier to debug \r\n- More aligned with best practices\r\n\r\n### Tested\r\n\r\n- Verified that database connection still commits on success \r\n- Verified rollback and logging on simulated database errors \r\n- No breaking changes introduced\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Enhanced database connection error handling with improved exception detection, error logging, and connection cleanup to ensure more reliable database operations.\n\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1151/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1151/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1150", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1150/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1150/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1150/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1150", + "id": 3900947058, + "node_id": "I_kwDOJpiIC87og7py", + "number": 1150, + "title": "BUG: Deleted/missing folders still appear in Settings folder list", + "user": { + "login": "alishair7071", + "id": 181624967, + "node_id": "U_kgDOCtNghw", + "avatar_url": "https://avatars.githubusercontent.com/u/181624967?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alishair7071", + "html_url": "https://github.com/alishair7071", + "followers_url": "https://api.github.com/users/alishair7071/followers", + "following_url": "https://api.github.com/users/alishair7071/following{/other_user}", + "gists_url": "https://api.github.com/users/alishair7071/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alishair7071/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alishair7071/subscriptions", + "organizations_url": "https://api.github.com/users/alishair7071/orgs", + "repos_url": "https://api.github.com/users/alishair7071/repos", + "events_url": "https://api.github.com/users/alishair7071/events{/privacy}", + "received_events_url": "https://api.github.com/users/alishair7071/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-02-05T10:54:24Z", + "updated_at": "2026-02-06T14:00:45Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\n## Summary\nFolders that are deleted from the filesystem still appear in **Settings → Folder Management** in PictoPy.\n\n## Steps to reproduce\n1. Add a folder in PictoPy (Settings → Folder Management → add folder).\n2. Close PictoPy (optional).\n3. Delete that folder from the local filesystem (Explorer/Finder).\n4. Reopen PictoPy and go to Settings → Folder Management.\n\n## Actual result\nThe deleted folder is still listed with its old path.\n\nHere the first folder is deleted but it still showing in folder management\n\"Image\"\n\n## Expected result\nPictoPy should detect missing folders and either:\n- show them as **Missing** and let the user remove them from the library, or\n- provide a **Clean up missing folders** / **Rescan** action.\n\n\"Image\"\n\n## Notes\nThis is especially confusing because the folder path is shown as valid even when it no longer exists on disk.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1150/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1150/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1149", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1149/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1149/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1149/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1149", + "id": 3898110454, + "node_id": "PR_kwDOJpiIC87BjB0d", + "number": 1149, + "title": "chore: remove unused files and cache management code", + "user": { + "login": "rahulharpal1603", + "id": 51887323, + "node_id": "MDQ6VXNlcjUxODg3MzIz", + "avatar_url": "https://avatars.githubusercontent.com/u/51887323?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahulharpal1603", + "html_url": "https://github.com/rahulharpal1603", + "followers_url": "https://api.github.com/users/rahulharpal1603/followers", + "following_url": "https://api.github.com/users/rahulharpal1603/following{/other_user}", + "gists_url": "https://api.github.com/users/rahulharpal1603/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahulharpal1603/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahulharpal1603/subscriptions", + "organizations_url": "https://api.github.com/users/rahulharpal1603/orgs", + "repos_url": "https://api.github.com/users/rahulharpal1603/repos", + "events_url": "https://api.github.com/users/rahulharpal1603/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahulharpal1603/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-04T19:35:37Z", + "updated_at": "2026-02-04T19:38:02Z", + "closed_at": "2026-02-04T19:36:04Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1149", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1149", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1149.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1149.patch", + "merged_at": "2026-02-04T19:36:04Z" + }, + "body": "\n\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Removed caching system and related utilities\n * Removed development environment startup scripts for Linux and Windows\n * Cleaned up sample environment configuration\n\n", + "closed_by": { + "login": "rahulharpal1603", + "id": 51887323, + "node_id": "MDQ6VXNlcjUxODg3MzIz", + "avatar_url": "https://avatars.githubusercontent.com/u/51887323?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahulharpal1603", + "html_url": "https://github.com/rahulharpal1603", + "followers_url": "https://api.github.com/users/rahulharpal1603/followers", + "following_url": "https://api.github.com/users/rahulharpal1603/following{/other_user}", + "gists_url": "https://api.github.com/users/rahulharpal1603/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahulharpal1603/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahulharpal1603/subscriptions", + "organizations_url": "https://api.github.com/users/rahulharpal1603/orgs", + "repos_url": "https://api.github.com/users/rahulharpal1603/repos", + "events_url": "https://api.github.com/users/rahulharpal1603/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahulharpal1603/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1149/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1149/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1148", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1148/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1148/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1148/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1148", + "id": 3897118866, + "node_id": "PR_kwDOJpiIC87BfwQL", + "number": 1148, + "title": "Docs/jest warning frontend tests", + "user": { + "login": "JITENDRAGAHERWAR03", + "id": 187638927, + "node_id": "U_kgDOCy8kjw", + "avatar_url": "https://avatars.githubusercontent.com/u/187638927?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JITENDRAGAHERWAR03", + "html_url": "https://github.com/JITENDRAGAHERWAR03", + "followers_url": "https://api.github.com/users/JITENDRAGAHERWAR03/followers", + "following_url": "https://api.github.com/users/JITENDRAGAHERWAR03/following{/other_user}", + "gists_url": "https://api.github.com/users/JITENDRAGAHERWAR03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JITENDRAGAHERWAR03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JITENDRAGAHERWAR03/subscriptions", + "organizations_url": "https://api.github.com/users/JITENDRAGAHERWAR03/orgs", + "repos_url": "https://api.github.com/users/JITENDRAGAHERWAR03/repos", + "events_url": "https://api.github.com/users/JITENDRAGAHERWAR03/events{/privacy}", + "received_events_url": "https://api.github.com/users/JITENDRAGAHERWAR03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-04T15:31:18Z", + "updated_at": "2026-03-31T09:17:26Z", + "closed_at": "2026-03-17T16:24:29Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1148", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1148", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1148.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1148.patch", + "merged_at": null + }, + "body": "### Summary\r\nAdds documentation clarifying a common Jest warning that appears after successful frontend test runs.\r\n\r\n### Details\r\nWhen running frontend tests, Jest may print the warning:\r\n\r\n> “Jest did not exit one second after the test run has completed.”\r\n\r\nAll tests still pass successfully, and the application functions as expected. This warning is typically caused by open async handles such as timers, watchers, or dev-server related processes and does **not** indicate a test failure.\r\n\r\nWithout clarification, this message can confuse new contributors into thinking the test suite or setup is broken.\r\n\r\nThis PR adds a short troubleshooting note explaining:\r\n- Why the warning appears\r\n- When it is safe to ignore\r\n- How contributors can optionally debug it using `--detectOpenHandles`\r\n\r\n### Scope\r\n- 📄 Documentation only \r\n- ❌ No code changes\r\n\r\n### Testing\r\n- Frontend tests executed successfully on Windows 11\r\n\r\n### Related Issue\r\nCloses #1137\r\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Clarified that ONNX Runtime warnings on Windows 11 are harmless and do not indicate compatibility issues; guidance added to safely ignore the message.\n * Documented Jest’s non-fatal “did not exit” warning after frontend tests, described possible causes, and added debugging guidance (e.g., running tests with --detectOpenHandles).\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1148/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1148/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1147", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1147/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1147/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1147/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1147", + "id": 3897035909, + "node_id": "I_kwDOJpiIC87oSAyF", + "number": 1147, + "title": "BUG: Tauri frontend exits after startup with Error 1412 (Chrome_WidgetWin_0)", + "user": { + "login": "JITENDRAGAHERWAR03", + "id": 187638927, + "node_id": "U_kgDOCy8kjw", + "avatar_url": "https://avatars.githubusercontent.com/u/187638927?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JITENDRAGAHERWAR03", + "html_url": "https://github.com/JITENDRAGAHERWAR03", + "followers_url": "https://api.github.com/users/JITENDRAGAHERWAR03/followers", + "following_url": "https://api.github.com/users/JITENDRAGAHERWAR03/following{/other_user}", + "gists_url": "https://api.github.com/users/JITENDRAGAHERWAR03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JITENDRAGAHERWAR03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JITENDRAGAHERWAR03/subscriptions", + "organizations_url": "https://api.github.com/users/JITENDRAGAHERWAR03/orgs", + "repos_url": "https://api.github.com/users/JITENDRAGAHERWAR03/repos", + "events_url": "https://api.github.com/users/JITENDRAGAHERWAR03/events{/privacy}", + "received_events_url": "https://api.github.com/users/JITENDRAGAHERWAR03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-04T15:13:27Z", + "updated_at": "2026-02-06T09:01:00Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is there an existing issue for this?\n\n- [x] I have searched the existing issues\n\n### What happened?\n\nDescription\n\nWhile running PictoPy locally on Windows 11, the Tauri frontend starts successfully but exits shortly after showing “Waiting for servers to start”.\nThe backend and sync microservice continue to run correctly, but the desktop app window closes.\n\nThe terminal consistently logs the following error:\n\nERROR: Failed to unregister class Chrome_WidgetWin_0. Error = 1412\n\n\nThis appears to be a Windows 11–specific WebView / Tauri issue, not a frontend or backend crash.\n\nEnvironment\n\nOS: Windows 11\n\nNode.js: (installed, used by Vite)\n\nFrontend: Vite + Tauri\n\nBackend: FastAPI (Uvicorn)\n\nSync Microservice: FastAPI\n\nBrowser engine: Tauri WebView (Chromium)\n\nSteps to Reproduce\n\nStart backend:\n\nuvicorn main:app --host 127.0.0.1 --port 52123\n\n\nStart sync microservice:\n\nfastapi dev --port 52124\n\n\nStart frontend:\n\nnpm run tauri dev\n\n\nPictoPy window opens and shows:\n\nWaiting for servers to start\n\n\nAfter a few seconds, the window closes and the terminal logs Error 1412.\n\nExpected Behavior\n\nThe Tauri frontend should remain open and connect to the local backend services once they are running.\n\nActual Behavior\n\nBackend and sync microservice stay healthy\n\nFrontend exits automatically\n\nError 1412 logged from Chromium WebView\n\nAdditional Notes\n\nA similar warning exists for ONNX Runtime on Windows 11, which is documented as harmless.\n\nThis issue seems related to Tauri / WebView lifecycle handling on Windows 11 rather than PictoPy logic.\n\nDocumenting this behavior may help avoid confusion for Windows contributors.\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1147/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1147/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1146", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1146/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1146/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1146/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1146", + "id": 3896312300, + "node_id": "I_kwDOJpiIC87oPQHs", + "number": 1146, + "title": "Suggestion: Improved landing page with new design", + "user": { + "login": "AyushhhCR7", + "id": 218067325, + "node_id": "U_kgDODP9xfQ", + "avatar_url": "https://avatars.githubusercontent.com/u/218067325?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AyushhhCR7", + "html_url": "https://github.com/AyushhhCR7", + "followers_url": "https://api.github.com/users/AyushhhCR7/followers", + "following_url": "https://api.github.com/users/AyushhhCR7/following{/other_user}", + "gists_url": "https://api.github.com/users/AyushhhCR7/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AyushhhCR7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AyushhhCR7/subscriptions", + "organizations_url": "https://api.github.com/users/AyushhhCR7/orgs", + "repos_url": "https://api.github.com/users/AyushhhCR7/repos", + "events_url": "https://api.github.com/users/AyushhhCR7/events{/privacy}", + "received_events_url": "https://api.github.com/users/AyushhhCR7/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 10, + "created_at": "2026-02-04T12:30:07Z", + "updated_at": "2026-05-06T05:48:08Z", + "closed_at": "2026-05-05T07:27:07Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\nThis issue proposes defining and implementing a cohesive design system and visual language for the PictoPy as part of the overall visual overhaul.\n\n\nFigma File: https://www.figma.com/design/loFMxcum8P539ulceCDfAM/PictoPy?m=auto&t=88meYIGPxgKegEoI-6\n\nThis will establish the foundation for all subsequent UI updates, ensuring visual consistency, accessibility, and minimal performance overhead across the site.\n\n\n**Scope**\n- Typography and font usage\n- Colour palette and contrast-safe colour tokens\n- Iconography style and usage\n- Spacing, layout, and visual rhythm\n- Base UI components (buttons, links, cards, etc)\n- Accessibility and performance considerations\n\n**Current Design Issues**\n- Inconsistent typography hierarchy across sections\n- Colour contrast issues affecting readability and accessibility\n- No clearly defined visual tokens (colours, spacing, components)\n- UI elements (buttons, links, badges) lack consistency\n- Design decisions are repeated instead of reused\n\n**Proposed Solution**\n- Define a clear typography (headings, body, captions) with consistent usage\n- Introduce a colour system using accessible contrast ratios\n- Standardise iconography style and sizing\n- Create reusable base components (buttons, links, cards) to be used across the site\n- This implementation should support responsive layouts and be compatible with the existing light/dark colour system defined in the Design System.\n- Use lightweight Tailwind CSS to avoid unnecessary runtime or bundle overhead\n- Document design decisions to make future contributions easier\n\n\n\n### Add ScreenShots\n\n\"Image\"\n\n\"Image\"\n\n\"Image\"\n\n**Design Considerations**\n- [x] Accessibility\n- [x] Visual consistency\n- [x] User flow/navigation\n- [x] Responsive design\n\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1146/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1146/timeline", + "performed_via_github_app": null, + "state_reason": "duplicate", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1145", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1145/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1145/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1145/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1145", + "id": 3895623727, + "node_id": "PR_kwDOJpiIC87BazHc", + "number": 1145, + "title": "docs: mention recommended Python version for local setup", + "user": { + "login": "ankit-gupta-git", + "id": 151037638, + "node_id": "U_kgDOCQCmxg", + "avatar_url": "https://avatars.githubusercontent.com/u/151037638?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankit-gupta-git", + "html_url": "https://github.com/ankit-gupta-git", + "followers_url": "https://api.github.com/users/ankit-gupta-git/followers", + "following_url": "https://api.github.com/users/ankit-gupta-git/following{/other_user}", + "gists_url": "https://api.github.com/users/ankit-gupta-git/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankit-gupta-git/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankit-gupta-git/subscriptions", + "organizations_url": "https://api.github.com/users/ankit-gupta-git/orgs", + "repos_url": "https://api.github.com/users/ankit-gupta-git/repos", + "events_url": "https://api.github.com/users/ankit-gupta-git/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankit-gupta-git/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 10854485877, + "node_id": "LA_kwDOJpiIC88AAAAChvpPdQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/PR%20has%20merge%20conflicts", + "name": "PR has merge conflicts", + "color": "cc3a19", + "default": false, + "description": "" + }, + { + "id": 11128968521, + "node_id": "LA_kwDOJpiIC88AAAACl1aVSQ", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/stale%20merge%20conflict", + "name": "stale merge conflict", + "color": "ededed", + "default": false, + "description": null + }, + { + "id": 11191523284, + "node_id": "LA_kwDOJpiIC88AAAACmxEX1A", + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/labels/closed%20stale%20merge%20conflict", + "name": "closed stale merge conflict", + "color": "ededed", + "default": false, + "description": null + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 7, + "created_at": "2026-02-04T09:45:06Z", + "updated_at": "2026-06-11T16:41:59Z", + "closed_at": "2026-06-11T16:41:59Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1145", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1145", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1145.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1145.patch", + "merged_at": null + }, + "body": "While setting up PictoPy locally, I noticed some confusion around Python versions.\r\nThis came up in the AOSSIE Discord discussion as well.\r\n\r\nThis PR documents a recommended Python version in the README to help new contributors avoid setup issues.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Added recommended Python version guidance for local development, specifying Python 3.10 or 3.11 as optimal versions.\n * Included notes about potential compatibility issues with newer Python versions.\n\n", + "closed_by": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1145/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1145/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1144", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1144/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1144/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1144/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1144", + "id": 3894423195, + "node_id": "PR_kwDOJpiIC87BW2g-", + "number": 1144, + "title": "Docs: clarify ONNX Runtime warning on Windows 11", + "user": { + "login": "JITENDRAGAHERWAR03", + "id": 187638927, + "node_id": "U_kgDOCy8kjw", + "avatar_url": "https://avatars.githubusercontent.com/u/187638927?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JITENDRAGAHERWAR03", + "html_url": "https://github.com/JITENDRAGAHERWAR03", + "followers_url": "https://api.github.com/users/JITENDRAGAHERWAR03/followers", + "following_url": "https://api.github.com/users/JITENDRAGAHERWAR03/following{/other_user}", + "gists_url": "https://api.github.com/users/JITENDRAGAHERWAR03/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JITENDRAGAHERWAR03/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JITENDRAGAHERWAR03/subscriptions", + "organizations_url": "https://api.github.com/users/JITENDRAGAHERWAR03/orgs", + "repos_url": "https://api.github.com/users/JITENDRAGAHERWAR03/repos", + "events_url": "https://api.github.com/users/JITENDRAGAHERWAR03/events{/privacy}", + "received_events_url": "https://api.github.com/users/JITENDRAGAHERWAR03/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-04T03:51:42Z", + "updated_at": "2026-03-17T16:26:13Z", + "closed_at": "2026-03-17T16:26:12Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1144", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1144", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1144.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1144.patch", + "merged_at": null + }, + "body": "### Summary\r\nClarifies the ONNX Runtime warning seen on Windows 11 during backend tests and local runs.\r\n\r\n### Details\r\nWindows 11 users may see an ONNX Runtime warning even though the backend works correctly and tests pass. This PR documents that the warning is harmless and does not indicate a compatibility issue.\r\n\r\n### Related Issue\r\nCloses #1136\r\n\r\n### Testing\r\n- Backend tests executed successfully on Windows 11\r\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Added a troubleshooting note explaining that ONNX Runtime warnings seen on Windows 11 are harmless, originate from an OS-version check, and do not indicate a compatibility issue with the application.\n * Clarifies expected behavior for Windows 11 users; no functional or compatibility changes were made.\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1144/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1144/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1143", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1143/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1143/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1143/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1143", + "id": 3892708913, + "node_id": "PR_kwDOJpiIC87BRJ6z", + "number": 1143, + "title": "docs: Add note about Jest warning after frontend tests #1137", + "user": { + "login": "pranitaurlam", + "id": 227409059, + "node_id": "U_kgDODY38ow", + "avatar_url": "https://avatars.githubusercontent.com/u/227409059?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pranitaurlam", + "html_url": "https://github.com/pranitaurlam", + "followers_url": "https://api.github.com/users/pranitaurlam/followers", + "following_url": "https://api.github.com/users/pranitaurlam/following{/other_user}", + "gists_url": "https://api.github.com/users/pranitaurlam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pranitaurlam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pranitaurlam/subscriptions", + "organizations_url": "https://api.github.com/users/pranitaurlam/orgs", + "repos_url": "https://api.github.com/users/pranitaurlam/repos", + "events_url": "https://api.github.com/users/pranitaurlam/events{/privacy}", + "received_events_url": "https://api.github.com/users/pranitaurlam/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-03T18:57:08Z", + "updated_at": "2026-03-17T16:24:40Z", + "closed_at": "2026-03-17T16:24:40Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1143", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1143", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1143.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1143.patch", + "merged_at": null + }, + "body": "## Description\r\nAdded documentation explaining that the \"Jest did not exit one second after the test run\" warning is harmless when all tests pass.\r\n\r\nThis helps new contributors understand the warning is expected behavior and not an indication of a problem.\r\n\r\n## Changes Made\r\n- Added a note in the Testing > Frontend section of CONTRIBUTING.md\r\n\r\n## Files Affected\r\n- `CONTRIBUTING.md`\r\n\r\nFixes #1137\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Clarified contributor guidelines (Frontend Testing): notes that the “Jest did not exit…” warning can be expected when tests pass and added troubleshooting guidance to detect open handles and ensure proper test teardown.\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1143/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1143/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1142", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1142/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1142/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1142/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1142", + "id": 3892481379, + "node_id": "PR_kwDOJpiIC87BQaWd", + "number": 1142, + "title": "feat: Add scroll-to-top behavior on navbar logo click #1139", + "user": { + "login": "pranitaurlam", + "id": 227409059, + "node_id": "U_kgDODY38ow", + "avatar_url": "https://avatars.githubusercontent.com/u/227409059?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pranitaurlam", + "html_url": "https://github.com/pranitaurlam", + "followers_url": "https://api.github.com/users/pranitaurlam/followers", + "following_url": "https://api.github.com/users/pranitaurlam/following{/other_user}", + "gists_url": "https://api.github.com/users/pranitaurlam/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pranitaurlam/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pranitaurlam/subscriptions", + "organizations_url": "https://api.github.com/users/pranitaurlam/orgs", + "repos_url": "https://api.github.com/users/pranitaurlam/repos", + "events_url": "https://api.github.com/users/pranitaurlam/events{/privacy}", + "received_events_url": "https://api.github.com/users/pranitaurlam/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-03T17:58:51Z", + "updated_at": "2026-03-17T16:30:28Z", + "closed_at": "2026-03-17T16:30:28Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1142", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1142", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1142.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1142.patch", + "merged_at": null + }, + "body": "## Description\r\nClicking the AOSSIE/PictoPy logo in the navbar now smoothly scrolls the page back to the top instead of only acting as a route link.\r\n\r\nThis improves navigation UX, especially on long landing pages.\r\n\r\n## Changes Made\r\n- Added `onClick` handler to the logo image [Link](cci:1://file:///Users/urlampranita/PictoPy/PictoPy/landing-page/src/Pages/Landing%20page/Navbar.tsx:13:0-57:2) component\r\n- Added `onClick` handler to the PictoPy text [Link](cci:1://file:///Users/urlampranita/PictoPy/PictoPy/landing-page/src/Pages/Landing%20page/Navbar.tsx:13:0-57:2) component\r\n- Uses `window.scrollTo({ top: 0, behavior: 'smooth' })`\r\n\r\n## Expected Behavior\r\n- Clicking the navbar logo scrolls smoothly to the top of the page\r\n- Works consistently on desktop and mobile\r\n- Does not reload the page\r\n\r\n## Files Affected\r\n- [landing-page/src/Pages/Landing page/Navbar.tsx](cci:7://file:///Users/urlampranita/PictoPy/PictoPy/landing-page/src/Pages/Landing%20page/Navbar.tsx:0:0-0:0)\r\n\r\nFixes #1139\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Navbar logo and brand text now smoothly scroll to the top of the page when clicked, providing a more responsive navigation experience.\n\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1142/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1142/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1141", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1141/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1141/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1141/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1141", + "id": 3890719784, + "node_id": "I_kwDOJpiIC87n56wo", + "number": 1141, + "title": "Feat: Automated Duplicate Issue Detection", + "user": { + "login": "Abhinandankaushik", + "id": 158504394, + "node_id": "U_kgDOCXKVyg", + "avatar_url": "https://avatars.githubusercontent.com/u/158504394?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhinandankaushik", + "html_url": "https://github.com/Abhinandankaushik", + "followers_url": "https://api.github.com/users/Abhinandankaushik/followers", + "following_url": "https://api.github.com/users/Abhinandankaushik/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhinandankaushik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhinandankaushik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhinandankaushik/subscriptions", + "organizations_url": "https://api.github.com/users/Abhinandankaushik/orgs", + "repos_url": "https://api.github.com/users/Abhinandankaushik/repos", + "events_url": "https://api.github.com/users/Abhinandankaushik/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhinandankaushik/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-02-03T11:14:20Z", + "updated_at": "2026-02-03T11:39:29Z", + "closed_at": "2026-02-03T11:38:55Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Overview\n\nThis proposal outlines a feature to automatically detect and flag potential duplicate issues in the repository. The system will analyze newly created issues and compare them with existing ones to reduce redundancy, improve maintainability, and streamline issue management.\n\n### Problem Statement\n\nCurrently, contributors may unknowingly create duplicate issues due to:\n\n- Lack of prior search\n- Similar but differently worded issue titles\n- Large issue backlog\n\n**This leads to:**\n\n- Increased maintainer workload\n- Fragmented discussions\n- Wasted developer effort\n- Slower triaging process\n\nA structured, automated duplicate detection mechanism is required to mitigate these inefficiencies.\n\n### Proposed Solution\n\nThe system will perform the following steps when a new issue is created:\n\n **Issue Ingestion**\n\nCapture new issue title and description.\n\n **Similarity Analysis**\n\n- Compare the new issue against:\n - Open issues\n - Recently closed issues\n\nUsing:\n\n- Text similarity algorithms (Cosine Similarity / TF-IDF / embeddings)\n- Fuzzy matching (Levenshtein / Fuse.js)\n- Keyword matching\n\n**Duplicate Detection Mechanism**\n\nIf a potential duplicate is detected:\n\n- Automatically comment on the issue with:\n - “Possible duplicate of #XX”\n\n- Tag issue with label: potential-duplicate\n- Provide list of top 3 similar issues\n\n\n### Technical Approach\n **GitHub Actions**\n```text\nTrigger:\n\non:\n issues:\n types: [opened]\n```\nWorkflow:\n1. Fetch existing issues via GitHub API\n2. Compute similarity score\n3. If similarity > threshold (e.g., 0.75), comment and label issue\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": { + "login": "Abhinandankaushik", + "id": 158504394, + "node_id": "U_kgDOCXKVyg", + "avatar_url": "https://avatars.githubusercontent.com/u/158504394?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhinandankaushik", + "html_url": "https://github.com/Abhinandankaushik", + "followers_url": "https://api.github.com/users/Abhinandankaushik/followers", + "following_url": "https://api.github.com/users/Abhinandankaushik/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhinandankaushik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhinandankaushik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhinandankaushik/subscriptions", + "organizations_url": "https://api.github.com/users/Abhinandankaushik/orgs", + "repos_url": "https://api.github.com/users/Abhinandankaushik/repos", + "events_url": "https://api.github.com/users/Abhinandankaushik/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhinandankaushik/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1141/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1141/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1140", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1140/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1140/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1140/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1140", + "id": 3889884343, + "node_id": "PR_kwDOJpiIC87BHtuj", + "number": 1140, + "title": "Scroll to top using Navbar Aossie logo", + "user": { + "login": "JaYRaNa213", + "id": 172463082, + "node_id": "U_kgDOCkeT6g", + "avatar_url": "https://avatars.githubusercontent.com/u/172463082?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaYRaNa213", + "html_url": "https://github.com/JaYRaNa213", + "followers_url": "https://api.github.com/users/JaYRaNa213/followers", + "following_url": "https://api.github.com/users/JaYRaNa213/following{/other_user}", + "gists_url": "https://api.github.com/users/JaYRaNa213/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaYRaNa213/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaYRaNa213/subscriptions", + "organizations_url": "https://api.github.com/users/JaYRaNa213/orgs", + "repos_url": "https://api.github.com/users/JaYRaNa213/repos", + "events_url": "https://api.github.com/users/JaYRaNa213/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaYRaNa213/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-03T08:20:43Z", + "updated_at": "2026-03-17T16:30:44Z", + "closed_at": "2026-03-17T16:30:43Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1140", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1140", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1140.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1140.patch", + "merged_at": null + }, + "body": "\r\nFixes #1139\r\n\r\n### Description\r\n\r\nClicking the AOSSIE / PictoPy logo in the navbar should smoothly scroll the page back to the top instead of only acting as a route link.\r\n\r\nThis improves navigation UX, especially on long landing pages.\r\n\r\n### Expected Behavior\r\n\r\n- Clicking the navbar logo scrolls smoothly to the top of the page\r\n- Works consistently on desktop and mobile\r\n- Does not reload the page\r\n\r\n\r\n### Proposed Implementation\r\n\r\nHandle logo click in Navbar.tsx using window.scrollTo with smooth behavior.\r\n\r\n```\r\nwindow.scrollTo({ top: 0, behavior: \"smooth\" });\r\n\r\n```\r\n\r\n### Files Affected\r\n```\r\nNavbar.tsx\r\n\r\n```\r\n\r\n### video demo :\r\nhttps://github.com/user-attachments/assets/578ad9b9-7e21-422a-a054-0091e1ebcb02\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Clicking the logo or navigation title now smoothly scrolls you to the top of the page.\n\n* **Style**\n * Added cursor pointer feedback to the logo to indicate it's interactive.\n\n", + "closed_by": { + "login": "SIDDHANTCOOKIE", + "id": 171014636, + "node_id": "U_kgDOCjF57A", + "avatar_url": "https://avatars.githubusercontent.com/u/171014636?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SIDDHANTCOOKIE", + "html_url": "https://github.com/SIDDHANTCOOKIE", + "followers_url": "https://api.github.com/users/SIDDHANTCOOKIE/followers", + "following_url": "https://api.github.com/users/SIDDHANTCOOKIE/following{/other_user}", + "gists_url": "https://api.github.com/users/SIDDHANTCOOKIE/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SIDDHANTCOOKIE/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SIDDHANTCOOKIE/subscriptions", + "organizations_url": "https://api.github.com/users/SIDDHANTCOOKIE/orgs", + "repos_url": "https://api.github.com/users/SIDDHANTCOOKIE/repos", + "events_url": "https://api.github.com/users/SIDDHANTCOOKIE/events{/privacy}", + "received_events_url": "https://api.github.com/users/SIDDHANTCOOKIE/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1140/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1140/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1139", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1139/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1139/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1139/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/issues/1139", + "id": 3889873233, + "node_id": "I_kwDOJpiIC87n2sFR", + "number": 1139, + "title": "Feat:Add scroll-to-top behavior on navbar logo click", + "user": { + "login": "JaYRaNa213", + "id": 172463082, + "node_id": "U_kgDOCkeT6g", + "avatar_url": "https://avatars.githubusercontent.com/u/172463082?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaYRaNa213", + "html_url": "https://github.com/JaYRaNa213", + "followers_url": "https://api.github.com/users/JaYRaNa213/followers", + "following_url": "https://api.github.com/users/JaYRaNa213/following{/other_user}", + "gists_url": "https://api.github.com/users/JaYRaNa213/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaYRaNa213/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaYRaNa213/subscriptions", + "organizations_url": "https://api.github.com/users/JaYRaNa213/orgs", + "repos_url": "https://api.github.com/users/JaYRaNa213/repos", + "events_url": "https://api.github.com/users/JaYRaNa213/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaYRaNa213/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-02-03T08:18:03Z", + "updated_at": "2026-05-05T07:23:00Z", + "closed_at": "2026-05-05T07:20:59Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the feature\n\n\n### Description\n\nClicking the AOSSIE / PictoPy logo in the navbar should smoothly scroll the page back to the top instead of only acting as a route link.\n\nThis improves navigation UX, especially on long landing pages.\n\n### Expected Behavior\n\n- Clicking the navbar logo scrolls smoothly to the top of the page\n- Works consistently on desktop and mobile\n- Does not reload the page\n\n\n### Proposed Implementation\n\nHandle logo click in Navbar.tsx using window.scrollTo with smooth behavior.\n\n```\nwindow.scrollTo({ top: 0, behavior: \"smooth\" });\n\n```\n\n### Files Affected\n```\nNavbar.tsx\n\n```\n\n\n\n### Add ScreenShots\n\nhttps://github.com/user-attachments/assets/578ad9b9-7e21-422a-a054-0091e1ebcb02\n\n### Record\n\n- [x] I agree to follow this project's Code of Conduct\n- [x] I want to work on this issue", + "closed_by": { + "login": "rohan-pandeyy", + "id": 95585299, + "node_id": "U_kgDOBbKEEw", + "avatar_url": "https://avatars.githubusercontent.com/u/95585299?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rohan-pandeyy", + "html_url": "https://github.com/rohan-pandeyy", + "followers_url": "https://api.github.com/users/rohan-pandeyy/followers", + "following_url": "https://api.github.com/users/rohan-pandeyy/following{/other_user}", + "gists_url": "https://api.github.com/users/rohan-pandeyy/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rohan-pandeyy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rohan-pandeyy/subscriptions", + "organizations_url": "https://api.github.com/users/rohan-pandeyy/orgs", + "repos_url": "https://api.github.com/users/rohan-pandeyy/repos", + "events_url": "https://api.github.com/users/rohan-pandeyy/events{/privacy}", + "received_events_url": "https://api.github.com/users/rohan-pandeyy/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1139/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1139/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1138", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1138/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1138/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/issues/1138/events", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1138", + "id": 3889835407, + "node_id": "PR_kwDOJpiIC87BHjNh", + "number": 1138, + "title": "fix footer's dark and light mode toggle", + "user": { + "login": "JaYRaNa213", + "id": 172463082, + "node_id": "U_kgDOCkeT6g", + "avatar_url": "https://avatars.githubusercontent.com/u/172463082?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaYRaNa213", + "html_url": "https://github.com/JaYRaNa213", + "followers_url": "https://api.github.com/users/JaYRaNa213/followers", + "following_url": "https://api.github.com/users/JaYRaNa213/following{/other_user}", + "gists_url": "https://api.github.com/users/JaYRaNa213/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaYRaNa213/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaYRaNa213/subscriptions", + "organizations_url": "https://api.github.com/users/JaYRaNa213/orgs", + "repos_url": "https://api.github.com/users/JaYRaNa213/repos", + "events_url": "https://api.github.com/users/JaYRaNa213/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaYRaNa213/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-02-03T08:08:15Z", + "updated_at": "2026-03-17T16:31:25Z", + "closed_at": "2026-03-17T16:31:25Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/PictoPy/pulls/1138", + "html_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1138", + "diff_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1138.diff", + "patch_url": "https://github.com/AOSSIE-Org/PictoPy/pull/1138.patch", + "merged_at": null + }, + "body": "\r\nFixes #1122\r\n\r\n### Description\r\n\r\nThe footer currently stays in dark mode for both light and dark theme toggles, which causes an inconsistent UI experience compared to the rest of the landing page.\r\n\r\nThe footer should properly switch styles based on the active theme (light or dark).\r\n\r\n### Current Behavior\r\n\r\n- Footer background is always dark\r\n- Text colors do not adapt to light mode\r\n- Theme toggle has no effect on the footer\r\n\r\n### Expected Behavior\r\n\r\n- Footer should be light in light mode\r\n- Footer should be dark in dark mode\r\n- Colors should smoothly transition with theme toggle\r\n\r\n-------------------------\r\n### Proposed Fix\r\n\r\nUpdate Footer.jsx to support Tailwind dark: classes.\r\n\r\n**Files Affected**\r\n\r\nFooter.jsx\r\n\r\n\r\n#### Before:\r\n```\r\n
\n```\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/276/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/276/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/275", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/275/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/275/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/275/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/275", + "id": 3865905495, + "node_id": "I_kwDONYLDD87mbQlX", + "number": 275, + "title": "Bug : Avatar Modal not responsive on mobile devices", + "user": { + "login": "ProthamD", + "id": 155388736, + "node_id": "U_kgDOCUMLQA", + "avatar_url": "https://avatars.githubusercontent.com/u/155388736?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ProthamD", + "html_url": "https://github.com/ProthamD", + "followers_url": "https://api.github.com/users/ProthamD/followers", + "following_url": "https://api.github.com/users/ProthamD/following{/other_user}", + "gists_url": "https://api.github.com/users/ProthamD/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ProthamD/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ProthamD/subscriptions", + "organizations_url": "https://api.github.com/users/ProthamD/orgs", + "repos_url": "https://api.github.com/users/ProthamD/repos", + "events_url": "https://api.github.com/users/ProthamD/events{/privacy}", + "received_events_url": "https://api.github.com/users/ProthamD/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-01-28T15:08:06Z", + "updated_at": "2026-03-03T18:14:02Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "# Avatar Modal Responsiveness Issue\n\n\"Image\"\n\n## Bug Description\n\nThe Avatar customization modal (`AvatarModal.tsx`) is not responsive on smaller screens. The UI elements overflow and become unusable on mobile devices and narrow browser windows.\n\n## Location\n\n**File:** `frontend/src/components/AvatarModal.tsx`\n\n## Root Cause\n\nThe modal uses a fixed 5-column grid layout (`grid-cols-5`) throughout the component without responsive breakpoints:\n\n```tsx\n// Line 443 - Character selection\n
\n\n// Line 470 - Background Color selection\n
\n\n// Line 490 - Ear Style selection\n
\n\n// ... and ~7 more instances for Eyes, Cheek, Face, Hair styles, etc.\n```\n\n## Expected Behavior\n\nThe avatar selection grids should adapt to screen size:\n- **Mobile (< 640px):** 3 columns\n- **Tablet (640px - 768px):** 4 columns \n- **Desktop (> 768px):** 5 columns\n\n## Suggested Fix\n\nReplace all instances of:\n```tsx\nclassName='grid grid-cols-5 gap-4 mt-2'\n```\n\nWith responsive classes:\n```tsx\nclassName='grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2 sm:gap-4 mt-2'\n```\n\nAlso consider reducing button sizes on mobile:\n```tsx\n// Current\nclassName='w-16 h-16 rounded-full ...'\n\n// Suggested\nclassName='w-12 h-12 sm:w-14 sm:h-14 md:w-16 md:h-16 rounded-full ...'\n```\n\n## Affected Lines\n\n| Line | Section |\n|------|---------|\n| 443 | Character selection grid |\n| 470 | Background Color grid |\n| 490 | Ear Style grid |\n| 515 | Eyes Style grid |\n| 540 | Cheek Style grid |\n| 565 | Face Style grid |\n| 590 | Front Hair Style grid |\n| 615 | Hair Style grid |\n| 640 | Mouth Style grid |\n| 665 | Sideburn Style grid |\n| 690 | Skin Color grid |\n\n## Steps to Reproduce\n\n1. Open the app on a mobile device or resize browser to < 640px width\n2. Navigate to Profile page\n3. Click on the avatar to open the customization modal\n4. Observe that the avatar selection buttons overflow the container\n\n\n### hey @bhavik-mangla, I found an issue on the responsiveness, Can you assign it to me please? \n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/275/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/275/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/274", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/274/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/274/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/274/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/274", + "id": 3864831288, + "node_id": "PR_kwDONYLDD86_0u8H", + "number": 274, + "title": "fix(frontend): safely handle empty or invalid auth JSON responses", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-28T10:56:07Z", + "updated_at": "2026-01-31T12:32:33Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/274", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/274", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/274.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/274.patch", + "merged_at": null + }, + "body": "Fixes #244\r\n\r\nThis PR fixes a frontend crash caused by auth endpoints occasionally\r\nreturning empty, non-JSON, or malformed responses, which previously\r\ncaused the application to crash during authentication flows.\r\n\r\nWhy this change was necessary:\r\n\r\nThe frontend auth layer assumed that all auth endpoints always return\r\nvalid JSON and accessed response bodies directly via response.json()\r\nand unchecked property reads (e.g. data.message, data.accessToken).\r\n\r\nIn real-world error paths (validation failure, auth failure, early\r\nreturns), the backend may return:\r\n- an empty response body\r\n- a non-JSON response\r\n- a JSON response missing expected fields\r\n\r\nThis caused runtime crashes such as:\r\n\"Unexpected end of JSON input\"\r\n\r\nWhat changed (with code-level reasoning):\r\n\r\n- Introduced safe JSON parsing using a guarded helper (safeJson)\r\n → Prevents crashes when response.json() fails due to empty or\r\n invalid response bodies.\r\n\r\n- Removed unsafe double-reading of response bodies\r\n → Ensures each response body is consumed exactly once, avoiding\r\n stream consumption errors caused by calling json() and text()\r\n on the same response.\r\n\r\n- Replaced unsafe property access on unknown data\r\n → All error fields (message / error) are now accessed only after\r\n locally casting the response payload, preventing runtime and\r\n TypeScript errors.\r\n\r\n- Added explicit null and shape checks before accessing auth fields\r\n → Prevents undefined access when accessToken or user objects are\r\n missing from error responses.\r\n\r\n- Standardized auth method return values\r\n → All public auth methods now return a predictable\r\n `{ success: boolean }` result instead of relying on thrown\r\n exceptions for control flow.\r\n\r\n- Preserved existing UI behavior and API contracts\r\n → No changes to backend APIs, UI logic, routing, or response formats.\r\n Only defensive handling was added.\r\n\r\nScope:\r\n\r\n- Frontend only\r\n- Limited to frontend/src/context/authContext.tsx\r\n- No backend changes\r\n- No UI or routing changes\r\n- No unrelated refactors\r\n\r\nResult:\r\n- Authentication flows fail safely and predictably\r\n- Improved resilience against backend edge cases\r\n\n\n\n## Summary by CodeRabbit\n\n* **Refactor**\n * Improved authentication error handling and response validation across login, signup, password recovery, and email verification.\n\n* **Bug Fixes**\n * More reliable parsing of API responses to reduce unexpected errors during auth flows.\n\n* **New Features**\n * Client-side form validation, submission states, and disabled inputs during operations for clearer UX.\n * OTP and password-reset flows now show user-friendly error messages and proceed only on successful steps.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/274/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/274/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/273", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/273/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/273/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/273/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/273", + "id": 3861721223, + "node_id": "PR_kwDONYLDD86_qemp", + "number": 273, + "title": "fix(auth): ensure auth endpoints return JSON when config load fails", + "user": { + "login": "rushikesh249", + "id": 221011297, + "node_id": "U_kgDODSxdYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/221011297?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rushikesh249", + "html_url": "https://github.com/rushikesh249", + "followers_url": "https://api.github.com/users/rushikesh249/followers", + "following_url": "https://api.github.com/users/rushikesh249/following{/other_user}", + "gists_url": "https://api.github.com/users/rushikesh249/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rushikesh249/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rushikesh249/subscriptions", + "organizations_url": "https://api.github.com/users/rushikesh249/orgs", + "repos_url": "https://api.github.com/users/rushikesh249/repos", + "events_url": "https://api.github.com/users/rushikesh249/events{/privacy}", + "received_events_url": "https://api.github.com/users/rushikesh249/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-27T17:45:16Z", + "updated_at": "2026-01-27T18:20:49Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/273", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/273", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/273.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/273.patch", + "merged_at": null + }, + "body": "Fixes #243\r\n\r\n## Problem\r\nWhen configuration loading failed, authentication endpoints could return empty or malformed responses due to improper error handling. \r\nAdditionally, duplicate response writes caused runtime warnings like: \r\n\"http: superfluous response.WriteHeader call\"\r\n\r\n## Resolution\r\n- Removed a duplicate `SignUp` function that caused compilation errors \r\n- Ensured handlers do not write an extra JSON response when `loadConfig()` fails, since it already sends an error response \r\n- Updated `SignUp` and `Login` to simply return when configuration loading fails \r\n\r\nThis prevents double response writes and ensures consistent, valid JSON error handling across authentication endpoints.\r\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/273/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/273/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/272", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/272/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/272/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/272/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/272", + "id": 3861387308, + "node_id": "PR_kwDONYLDD86_pVy-", + "number": 272, + "title": "Debate module does not respect global dark/light theme", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-27T16:27:35Z", + "updated_at": "2026-01-27T16:52:29Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/272", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/272", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/272.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/272.patch", + "merged_at": null + }, + "body": "This PR fixes an issue where all debate rooms (bot mode and matchmaking chatroom) always rendered in light mode, even when global dark mode was enabled.\r\nThe rest of the application already correctly consumes the global ThemeProvider, but the debate module was overriding it with hard-coded light styles.\r\nclose #271 \n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Elo rating changes now tracked and shown per recent debate in your profile/history.\n\n* **Bug Fixes**\n * Prevented duplicate judgment submissions with a concurrency guard.\n * Improved judgment parsing/error handling for clearer results.\n * Matchmaking UI now resets reliably on page refresh.\n\n* **UI/UX**\n * Dark-mode and high-contrast styling improvements; updated theme tokens.\n * Navigation/routes reorganized for more consistent protected/layout behavior.\n * Minor dialog and header styling tweaks; judgment popup shows bot descriptions correctly.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/272/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/272/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/271", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/271/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/271/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/271/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/271", + "id": 3859220864, + "node_id": "I_kwDONYLDD87mBwmA", + "number": 271, + "title": "Debate module ignores global dark/light theme in both bot and matchmaking modes", + "user": { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-27T07:27:49Z", + "updated_at": "2026-03-06T09:05:44Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "Hi, I noticed that when the application is in dark mode, most pages correctly follow the selected theme, but the entire debate module always renders in light mode regardless of the global theme setting.\nI tested this across multiple sessions and devices:\nBot debate room always appears in light mode\nMatchmaking chatroom (tested by joining from two devices with dark mode enabled on both accounts) also always appears in light mode\nThis seems inconsistent with the rest of the application and may indicate that the debate routes / layouts are not consuming the global theme context or are overriding styles locally.\n\nScreenshots\nDebate room in matchmaking mode with dark mode enabled (UI still light):**\n\n![Debate room always renders in light mode](https://github.com/user-attachments/assets/2748acab-fc08-43ae-af25-a95ab86e4575)\n\nCould you please confirm if this behavior is intentional?\nIf this is unintended, I’d be happy to help work on: Applying the global Theme Provider to the debate layouts\nRemoving any hard-coded light styles\nEnsuring consistent theming across all debate modes\n\nSteps to reproduce:\nEnable dark mode\nJoin a debate with a bot OR via matchmaking\nObserve that the UI remains in light mode\n\nExpected behavior:\nAll debate rooms should respect the global dark/light theme setting.\n\nThanks, I am willing to submit a PR.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/271/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/271/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/270", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/270/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/270/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/270/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/270", + "id": 3858957315, + "node_id": "PR_kwDONYLDD86_hPm9", + "number": 270, + "title": "Fail fast on missing critical backend configuration", + "user": { + "login": "prempalhade3-code", + "id": 241294412, + "node_id": "U_kgDODmHcTA", + "avatar_url": "https://avatars.githubusercontent.com/u/241294412?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prempalhade3-code", + "html_url": "https://github.com/prempalhade3-code", + "followers_url": "https://api.github.com/users/prempalhade3-code/followers", + "following_url": "https://api.github.com/users/prempalhade3-code/following{/other_user}", + "gists_url": "https://api.github.com/users/prempalhade3-code/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prempalhade3-code/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prempalhade3-code/subscriptions", + "organizations_url": "https://api.github.com/users/prempalhade3-code/orgs", + "repos_url": "https://api.github.com/users/prempalhade3-code/repos", + "events_url": "https://api.github.com/users/prempalhade3-code/events{/privacy}", + "received_events_url": "https://api.github.com/users/prempalhade3-code/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-27T05:54:14Z", + "updated_at": "2026-07-07T05:22:02Z", + "closed_at": "2026-07-07T05:22:02Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/270", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/270", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/270.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/270.patch", + "merged_at": null + }, + "body": "What does this PR do?\r\n\r\nThis PR adds validation for critical backend configuration values during application startup.\r\n\r\nIf required configuration (such as JWT secret, database URI, Gemini API key, or Google OAuth client ID) is missing, the server now exits early with a clear error message instead of starting in an invalid or unsafe state.\r\n\r\n---\r\n\r\nWhy is this needed?\r\n\r\nPreviously, the backend could start even when essential configuration values were missing, which could lead to security issues or runtime failures later.\r\n\r\nFailing fast at startup improves reliability, security, and developer experience.\r\n\r\n---\r\n\r\nScope & Safety\r\n\r\n- No runtime logic changes\r\n- No API changes\r\n- No new dependencies\r\n- Only affects startup behavior when configuration is invalid\r\n\r\n---\r\n\r\nHow was this tested?\r\n\r\n- Verified server fails to start when required config values are missing\r\n- Verified server starts and functions normally when configuration is valid\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Improved error handling for configuration loading with clearer error messages.\n * Added validation to ensure all required configuration fields are present at startup.\n\n* **Performance**\n * Removed redundant processing loops.\n\n* **Chores**\n * Streamlined server initialization and removed obsolete startup code.\n * Updated gitignore patterns for environment and system files.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "prempalhade3-code", + "id": 241294412, + "node_id": "U_kgDODmHcTA", + "avatar_url": "https://avatars.githubusercontent.com/u/241294412?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prempalhade3-code", + "html_url": "https://github.com/prempalhade3-code", + "followers_url": "https://api.github.com/users/prempalhade3-code/followers", + "following_url": "https://api.github.com/users/prempalhade3-code/following{/other_user}", + "gists_url": "https://api.github.com/users/prempalhade3-code/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prempalhade3-code/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prempalhade3-code/subscriptions", + "organizations_url": "https://api.github.com/users/prempalhade3-code/orgs", + "repos_url": "https://api.github.com/users/prempalhade3-code/repos", + "events_url": "https://api.github.com/users/prempalhade3-code/events{/privacy}", + "received_events_url": "https://api.github.com/users/prempalhade3-code/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/270/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/270/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/269", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/269/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/269/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/269/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/269", + "id": 3857107300, + "node_id": "PR_kwDONYLDD86_bKW0", + "number": 269, + "title": "Update Profile page responsiveness for all screens", + "user": { + "login": "vinayak302004", + "id": 156412563, + "node_id": "U_kgDOCVKqkw", + "avatar_url": "https://avatars.githubusercontent.com/u/156412563?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vinayak302004", + "html_url": "https://github.com/vinayak302004", + "followers_url": "https://api.github.com/users/vinayak302004/followers", + "following_url": "https://api.github.com/users/vinayak302004/following{/other_user}", + "gists_url": "https://api.github.com/users/vinayak302004/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vinayak302004/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vinayak302004/subscriptions", + "organizations_url": "https://api.github.com/users/vinayak302004/orgs", + "repos_url": "https://api.github.com/users/vinayak302004/repos", + "events_url": "https://api.github.com/users/vinayak302004/events{/privacy}", + "received_events_url": "https://api.github.com/users/vinayak302004/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-26T18:21:28Z", + "updated_at": "2026-01-31T09:22:52Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/269", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/269", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/269.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/269.patch", + "merged_at": null + }, + "body": "Closes #216 \r\n\r\nI have updated \"Profile\" page responsiveness for all screens\r\n\r\n1. Mobile View\r\n\r\n\"Screenshot\r\n\r\n\"Screenshot\r\n\r\n2. Tablet View\r\n\"Screenshot\r\n\r\n3. Desktop View\r\n\r\n\"Screenshot\r\n\r\n\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n* **Style**\r\n * Improved responsive layout on the Profile page for better alignment across screen sizes\r\n * Profile card adjusts width dynamically on larger screens\r\n * Cards now use flexible heights to accommodate content while maintaining visual consistency\r\n\r\n✏️ Tip: You can customize this high-level summary in your review settings.\r\n\r\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/269/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/269/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/268", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/268/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/268/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/268/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/268", + "id": 3856366089, + "node_id": "PR_kwDONYLDD86_Yuis", + "number": 268, + "title": "fix: ensure auth endpoints always return valid JSON responses", + "user": { + "login": "Shantanu675", + "id": 156588003, + "node_id": "U_kgDOCVVX4w", + "avatar_url": "https://avatars.githubusercontent.com/u/156588003?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shantanu675", + "html_url": "https://github.com/Shantanu675", + "followers_url": "https://api.github.com/users/Shantanu675/followers", + "following_url": "https://api.github.com/users/Shantanu675/following{/other_user}", + "gists_url": "https://api.github.com/users/Shantanu675/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shantanu675/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shantanu675/subscriptions", + "organizations_url": "https://api.github.com/users/Shantanu675/orgs", + "repos_url": "https://api.github.com/users/Shantanu675/repos", + "events_url": "https://api.github.com/users/Shantanu675/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shantanu675/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-26T15:08:47Z", + "updated_at": "2026-01-26T15:12:28Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/268", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/268", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/268.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/268.patch", + "merged_at": null + }, + "body": "## Description\r\nFixes #244 - Auth endpoints sometimes return empty response body\r\n\r\n### Changes Made:\r\n- [x] Updated `/signup` endpoint to always return JSON on error\r\n- [x] Updated `/login` endpoint to always return JSON on error \r\n- [x] Added consistent error response format\r\n- [x] Fixed frontend crash \"Unexpected end of JSON input\"\r\n\r\n### Root Cause:\r\nCertain error paths (validation failure, user exists, password mismatch) were exiting without calling `c.JSON()`, resulting in empty responses.\r\n\r\n### Testing:\r\n1. Tested signup with duplicate email → Returns `{error: \"user already exists\"}`\r\n2. Tested login with wrong password → Returns `{error: \"invalid credentials\"}`\r\n3. Tested validation errors → Returns proper JSON error\r\n4. Frontend no longer crashes with \"Unexpected end of JSON input\"\r\n\r\n### Impact:\r\n- ✅ Frontend can handle auth errors properly\r\n- ✅ Better developer experience\r\n- ✅ Consistent API response format\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added email verification functionality for account signup\n * Added password recovery feature with verification codes\n * Enhanced Google login integration\n\n* **Bug Fixes**\n * Improved email handling with consistent normalization across authentication flows\n * Strengthened password verification security by reordering verification checks\n\n* **Style**\n * Adjusted Google Sign-In button layout\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/268/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/268/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/267", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/267/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/267/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/267/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/267", + "id": 3851656219, + "node_id": "PR_kwDONYLDD86_JzyI", + "number": 267, + "title": "fix: track and persist elo rating changes history", + "user": { + "login": "VishalPainjane", + "id": 138028102, + "node_id": "U_kgDOCDokRg", + "avatar_url": "https://avatars.githubusercontent.com/u/138028102?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VishalPainjane", + "html_url": "https://github.com/VishalPainjane", + "followers_url": "https://api.github.com/users/VishalPainjane/followers", + "following_url": "https://api.github.com/users/VishalPainjane/following{/other_user}", + "gists_url": "https://api.github.com/users/VishalPainjane/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VishalPainjane/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VishalPainjane/subscriptions", + "organizations_url": "https://api.github.com/users/VishalPainjane/orgs", + "repos_url": "https://api.github.com/users/VishalPainjane/repos", + "events_url": "https://api.github.com/users/VishalPainjane/events{/privacy}", + "received_events_url": "https://api.github.com/users/VishalPainjane/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-24T17:26:57Z", + "updated_at": "2026-01-25T15:36:16Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/267", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/267", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/267.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/267.patch", + "merged_at": null + }, + "body": "## Description \r\nThis PR implements the missing functionality for storing and retrieving Elo rating changes for each debate match. Previously, the \"Recent Debates\" section in user profiles displayed a \"0\" change for all matches because the rating delta was not being persisted.\r\n\r\n## Changes\r\n- **Data Model**: Added `EloChange` (float64) field to the `SavedDebateTranscript` struct in `backend/models/transcript.go`.\r\n- **Service Logic**: Refactored `transcriptservice.go` to calculate ratings *before* saving the transcript. This ensures the rating delta is captured and saved with the debate record.\r\n- **Controllers**: Updated `profile_controller.go` to return the actual stored Elo change instead of a hardcoded placeholder. Updated `debatevsbot_controller.go` and `transcript_controller.go` to support the new function signature.\r\n\r\n## Fixes\r\n- Fixes the issue where users could not see the impact of individual matches on their rating.\r\n- Replaces the `TODO: Add actual Elo change tracking` placeholder in the profile controller.\r\n\r\n## Testing\r\n- Verified that the `EloChange` field is correctly marshaled and stored using a model verification script.\r\n- Verified that the backend compiles successfully with the new changes.\r\n\r\n\r\ncloses #265 \n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Debate transcripts now track and display Elo rating changes for participants.\n * User profiles now show actual rating changes from recent debates instead of placeholder values.\n * Both participants' rating changes are properly recorded and persisted.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/267/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/267/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/266", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/266/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/266/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/266/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/266", + "id": 3851491438, + "node_id": "PR_kwDONYLDD86_JP9h", + "number": 266, + "title": "Fix: Persist Elo rating change in debate history", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-24T16:06:03Z", + "updated_at": "2026-01-24T16:11:56Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/266", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/266", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/266.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/266.patch", + "merged_at": null + }, + "body": "Problem\r\nDebate history always displayed an Elo change of 0 because the rating delta\r\nwas never persisted. The transcript was saved before rating updates were\r\ncalculated, causing the value to be lost.\r\n\r\nSolution\r\nThis PR implements full Elo change tracking for debate transcripts.\r\n\r\nChanges\r\n- Added `EloChange` field to `SavedDebateTranscript`\r\n- Updated transcript service to persist Elo rating delta\r\n- Refactored debate workflow to calculate ratings before saving transcripts\r\n- Updated profile controller to return stored Elo change instead of a placeholder\r\n\r\nResult\r\n- Users now see accurate Elo rating changes in their debate history\r\n- Rating progression analytics are complete and reliable\r\n\r\nCloses #265 \r\n\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Debate profile now displays actual Elo rating changes from recent debates instead of placeholder values.\n * UI theme system updated with improved color tokens across header, navigation, and components.\n\n* **Bug Fixes**\n * Improved debate room stability by preventing concurrent judging operations.\n * Enhanced error recovery when processing debate results.\n * Matchmaking state now properly resets on component load.\n\n* **Style**\n * Added high-contrast styling support for improved accessibility.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/266/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/266/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/265", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/265/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/265/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/265/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/265", + "id": 3851297867, + "node_id": "I_kwDONYLDD87ljiRL", + "number": 265, + "title": "[BUG]: Elo rating changes are not tracked in debate history", + "user": { + "login": "VishalPainjane", + "id": 138028102, + "node_id": "U_kgDOCDokRg", + "avatar_url": "https://avatars.githubusercontent.com/u/138028102?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/VishalPainjane", + "html_url": "https://github.com/VishalPainjane", + "followers_url": "https://api.github.com/users/VishalPainjane/followers", + "following_url": "https://api.github.com/users/VishalPainjane/following{/other_user}", + "gists_url": "https://api.github.com/users/VishalPainjane/gists{/gist_id}", + "starred_url": "https://api.github.com/users/VishalPainjane/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/VishalPainjane/subscriptions", + "organizations_url": "https://api.github.com/users/VishalPainjane/orgs", + "repos_url": "https://api.github.com/users/VishalPainjane/repos", + "events_url": "https://api.github.com/users/VishalPainjane/events{/privacy}", + "received_events_url": "https://api.github.com/users/VishalPainjane/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-24T14:15:54Z", + "updated_at": "2026-01-24T14:15:54Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "**Description**\nThis issue addresses a missing feature in the debate history tracking where the Elo rating change is not recorded or displayed for past matches.\n\n**Problem**\nIn `backend/controllers/profile_controller.go`, the code attempts to display the rating change but currently uses a placeholder:\n```go\n\"eloChange\": 0, // TODO: Add actual Elo change tracking\n```\n\nThe SavedDebateTranscript model lacks a field to store this specific data point. Additionally, the service logic currently saves the transcript before the rating calculation is performed, meaning the rating delta is lost effectively immediately after the match concludes.\n\n**Root Cause**\nThe functionality was marked as a TODO but never implemented. The database model and the service workflow do not support persisting the EloChange value.\n\n**Impact**\n* Users see a \"+0\" or \"0\" change for all matches in their \"Recent Debates\" list.\n* There is no historical record of how individual matches affected a user's ranking.\n* Profile analytics regarding rating progression are incomplete.\n\n**Suggested Fix**\n1. **Model Update**: Add an `EloChange` (float64) field to the `SavedDebateTranscript` struct in `backend/models/transcript.go`.\n2. **Service Update**: Modify `SaveDebateTranscript` in `backend/services/transcriptservice.go` to accept the `eloChange` as a parameter.\n3. **Logic Refactor**: In `JudgeDebate` workflows, reorder operations so that `UpdateRatings` is called *before* `SaveDebateTranscript`. Pass the calculated rating delta (from `debateRecord.RatingChange`) to the save function.\n4. **Controller Update**: Update `backend/controllers/profile_controller.go` to read and return the stored `transcript.EloChange` instead of the hardcoded `0`.\n\n@bhavik-mangla, I would like to work on this issue. I've reviewed the backend code and have a plan to implement the missing Elo change tracking. Please assign it to me.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/265/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/265/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/264", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/264/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/264/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/264/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/264", + "id": 3847456964, + "node_id": "I_kwDONYLDD87lU4jE", + "number": 264, + "title": "Improve authentication security by hashing passwords with bcrypt", + "user": { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-23T13:29:05Z", + "updated_at": "2026-01-24T13:14:55Z", + "closed_at": "2026-01-24T13:14:55Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "Hello, maintainers \nI discovered that user passwords are currently kept in plain text while investigating the database schema and authentication process. I would like to suggest enhancing this by utilizing bcrypt for password hashing.\n\nThis would\nAvoid keeping passwords in plain text.\nIf the database is compromised, safeguard user credentials.\nBring the authentication system closer to security procedures used in production.\n\nProposed method:\nWhen registering, use bcrypt to hash passwords.\nWhen logging in, use bcrypt.compare() to verify\nI would be pleased to work on this and submit a PR if it sounds good.\nI appreciate your time.", + "closed_by": { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/264/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/264/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/263", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/263/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/263/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/263/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/263", + "id": 3843611314, + "node_id": "PR_kwDONYLDD86-u3xZ", + "number": 263, + "title": "Fix duplicate Coach routes and improve routing structure", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-22T16:04:14Z", + "updated_at": "2026-01-22T16:30:11Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/263", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/263", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/263.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/263.patch", + "merged_at": null + }, + "body": "What does this PR do?\r\nThis PR resolves duplicate and inconsistent route definitions related to the Coach feature in `App.jsx`.\r\n\r\nProblem\r\n- Duplicate `/coach` and `coach/strengthen-argument` routes were defined multiple times\r\n- Mixed absolute and relative paths inside nested routes\r\n- An orphan route without a `path` prop\r\n- Reduced readability and maintainability of routing configuration\r\n\r\nSolution\r\n- Removed duplicate Coach route definitions\r\n- Refactored Coach routes using nested routing\r\n- Converted absolute paths to relative paths under Layout\r\n- Removed invalid route without a path\r\n- Grouped Coach-related routes for better scalability\r\n\r\nResult\r\n- Clean, DRY, and predictable routing\r\n- Improved maintainability\r\n- No routing ambiguity\r\n\r\nScreenshots / Testing\r\n- Verified navigation to `/coach`\r\n- Verified navigation to `/coach/strengthen-argument`\r\n- Verified navigation to `/coach/pros-cons`\r\n\r\nRelated Issue\r\nFixes: Duplicate Routes in App.jsx Causing Redundant Routing Definitions\r\n\r\nclose #261 \r\n\n\n\n## Summary by CodeRabbit\n\n* **Refactor**\n * Reorganized routing into clear public vs. protected sections and added a catch-all redirect for unknown paths.\n\n* **Bug Fixes**\n * Prevented duplicate judgment submissions and improved judgment error handling and messaging.\n * Matchmaking UI reliably resets on page refresh.\n\n* **New Features**\n * Closing judgment results now returns users to home.\n * Judgment popup can display bot descriptions.\n\n* **Style**\n * Updated header/nav theming and select menu styling; added high-contrast support.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/263/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/263/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/262", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/262/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/262/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/262/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/262", + "id": 3843589602, + "node_id": "PR_kwDONYLDD86-uzKS", + "number": 262, + "title": "Fix duplicate coach routes and ignore Go SDK archive", + "user": { + "login": "Shantanu675", + "id": 156588003, + "node_id": "U_kgDOCVVX4w", + "avatar_url": "https://avatars.githubusercontent.com/u/156588003?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shantanu675", + "html_url": "https://github.com/Shantanu675", + "followers_url": "https://api.github.com/users/Shantanu675/followers", + "following_url": "https://api.github.com/users/Shantanu675/following{/other_user}", + "gists_url": "https://api.github.com/users/Shantanu675/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shantanu675/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shantanu675/subscriptions", + "organizations_url": "https://api.github.com/users/Shantanu675/orgs", + "repos_url": "https://api.github.com/users/Shantanu675/repos", + "events_url": "https://api.github.com/users/Shantanu675/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shantanu675/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 4, + "created_at": "2026-01-22T15:59:22Z", + "updated_at": "2026-01-23T13:42:27Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/262", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/262", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/262.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/262.patch", + "merged_at": null + }, + "body": "### Summary\r\nRemoves duplicate Coach route definitions in `App.jsx` and updates `.gitignore` to prevent committing local Go SDK archives.\r\n\r\n### Changes\r\n- Removed duplicate `/coach` route\r\n- Removed duplicate `coach/strengthen-argument` route\r\n- Updated `.gitignore` to ignore Go SDK archive files\r\n\r\n### Issue\r\nFixes #261\r\n\n\n\n\n## Summary by CodeRabbit\n\n# Release Notes\n\n* **New Features**\n * Added a pros-cons analysis tool to the coach section for enhanced decision-making support.\n\n* **Refactor**\n * Streamlined coach section navigation structure and removed redundant routes for improved user experience.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Shantanu675", + "id": 156588003, + "node_id": "U_kgDOCVVX4w", + "avatar_url": "https://avatars.githubusercontent.com/u/156588003?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shantanu675", + "html_url": "https://github.com/Shantanu675", + "followers_url": "https://api.github.com/users/Shantanu675/followers", + "following_url": "https://api.github.com/users/Shantanu675/following{/other_user}", + "gists_url": "https://api.github.com/users/Shantanu675/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shantanu675/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shantanu675/subscriptions", + "organizations_url": "https://api.github.com/users/Shantanu675/orgs", + "repos_url": "https://api.github.com/users/Shantanu675/repos", + "events_url": "https://api.github.com/users/Shantanu675/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shantanu675/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/262/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/262/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/261", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/261/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/261/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/261/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/261", + "id": 3843358610, + "node_id": "I_kwDONYLDD87lFP-S", + "number": 261, + "title": "Issue: Duplicate Routes in App.jsx Causing Redundant Routing Definitions", + "user": { + "login": "Shantanu675", + "id": 156588003, + "node_id": "U_kgDOCVVX4w", + "avatar_url": "https://avatars.githubusercontent.com/u/156588003?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shantanu675", + "html_url": "https://github.com/Shantanu675", + "followers_url": "https://api.github.com/users/Shantanu675/followers", + "following_url": "https://api.github.com/users/Shantanu675/following{/other_user}", + "gists_url": "https://api.github.com/users/Shantanu675/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shantanu675/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shantanu675/subscriptions", + "organizations_url": "https://api.github.com/users/Shantanu675/orgs", + "repos_url": "https://api.github.com/users/Shantanu675/repos", + "events_url": "https://api.github.com/users/Shantanu675/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shantanu675/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-22T15:04:19Z", + "updated_at": "2026-01-22T15:04:19Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "

🐞 Duplicate Routes in App.jsx Causing Redundant Routing Definitions

\n\n

Description

\n

\nThere are duplicate route definitions in App.jsx, specifically related to the\nCoach routes. These duplicates can lead to routing ambiguity, unexpected behavior,\nand reduced maintainability of the routing configuration.\n

\n\n

Affected File

\n
src/App.jsx
\n\n

Problematic Code

\n
\n<Route path='/coach' element={<CoachPage />} />\n<Route path='coach/strengthen-argument' element={<StrengthenArgument />} />\n\n<Route path='/coach' element={<CoachPage />} />\n<Route path='coach/strengthen-argument' element={<StrengthenArgument />} />\n
\n\n

Why This Is an Issue

\n
    \n
  • Duplicate route declarations violate the DRY (Don’t Repeat Yourself) principle
  • \n
  • Can cause unexpected routing resolution behavior
  • \n
  • Makes future refactoring more error-prone
  • \n
  • Reduces overall readability and maintainability
  • \n
\n\n

Expected Behavior

\n

\nEach route should be defined only once, with a clear and consistent routing structure.\n

\n\n

Suggested Fix

\n

\nRemove the duplicate route entries and keep a single, well-defined Coach route configuration.\n

\n\n
\n<Route path='coach' element={<CoachPage />} />\n<Route path='coach/strengthen-argument' element={<StrengthenArgument />} />\n
\n\n

Additional Notes

\n

\nThis change improves code clarity and prevents potential routing conflicts without altering existing functionality.\n

\n\n

Contribution

\n

\nI would be happy to work on this issue and submit a pull request to address it.\n

\n\n\"Image\"", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/261/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/261/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/260", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/260/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/260/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/260/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/260", + "id": 3841263426, + "node_id": "PR_kwDONYLDD86-nEc7", + "number": 260, + "title": "Remove dead code and ignore system files", + "user": { + "login": "prempalhade3-code", + "id": 241294412, + "node_id": "U_kgDODmHcTA", + "avatar_url": "https://avatars.githubusercontent.com/u/241294412?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prempalhade3-code", + "html_url": "https://github.com/prempalhade3-code", + "followers_url": "https://api.github.com/users/prempalhade3-code/followers", + "following_url": "https://api.github.com/users/prempalhade3-code/following{/other_user}", + "gists_url": "https://api.github.com/users/prempalhade3-code/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prempalhade3-code/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prempalhade3-code/subscriptions", + "organizations_url": "https://api.github.com/users/prempalhade3-code/orgs", + "repos_url": "https://api.github.com/users/prempalhade3-code/repos", + "events_url": "https://api.github.com/users/prempalhade3-code/events{/privacy}", + "received_events_url": "https://api.github.com/users/prempalhade3-code/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-22T05:09:53Z", + "updated_at": "2026-07-07T05:22:02Z", + "closed_at": "2026-07-07T05:22:02Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/260", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/260", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/260.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/260.patch", + "merged_at": null + }, + "body": "What does this PR do?\r\n- Removes two empty `for` loops in `test_server.go` that were iterating over the matchmaking pool without performing any operations.\r\n- Adds `.DS_Store` and `*.zip` to `.gitignore` to prevent committing system and archive files.\r\n\r\nWhy is this change needed?\r\nThe empty loops were dead code and could confuse future contributors. System-generated and archive files should not be tracked in version control.\r\n\r\nType of change\r\n- Code cleanup\r\n- Dead code removal\r\n- Repository hygiene improvement\r\n\r\n Impact\r\nNo functional behavior is changed. This improves clarity and maintainability.\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Updated version control ignore patterns for environment and archive files.\n\n* **Tests**\n * Removed unused code from test utilities.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "prempalhade3-code", + "id": 241294412, + "node_id": "U_kgDODmHcTA", + "avatar_url": "https://avatars.githubusercontent.com/u/241294412?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/prempalhade3-code", + "html_url": "https://github.com/prempalhade3-code", + "followers_url": "https://api.github.com/users/prempalhade3-code/followers", + "following_url": "https://api.github.com/users/prempalhade3-code/following{/other_user}", + "gists_url": "https://api.github.com/users/prempalhade3-code/gists{/gist_id}", + "starred_url": "https://api.github.com/users/prempalhade3-code/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/prempalhade3-code/subscriptions", + "organizations_url": "https://api.github.com/users/prempalhade3-code/orgs", + "repos_url": "https://api.github.com/users/prempalhade3-code/repos", + "events_url": "https://api.github.com/users/prempalhade3-code/events{/privacy}", + "received_events_url": "https://api.github.com/users/prempalhade3-code/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/260/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/260/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/259", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/259/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/259/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/259/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/259", + "id": 3836934772, + "node_id": "PR_kwDONYLDD86-Yec8", + "number": 259, + "title": "Fix CORS preflight handling for OPTIONS requests", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-21T07:20:57Z", + "updated_at": "2026-03-18T11:26:49Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/259", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/259", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/259.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/259.patch", + "merged_at": null + }, + "body": "Fixes #258\r\n\r\nThis PR adds a global CORS middleware to ensure all OPTIONS preflight\r\nrequests return HTTP 200 with proper CORS headers and a JSON response.\r\n\r\nThis prevents silent browser failures where requests are blocked before\r\nreaching the actual route.\r\n\r\nChanges are infra-level only and do not affect business logic.\r\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added a health check endpoint for service status monitoring.\n * Replaced per-route CORS with a global CORS middleware for consistent cross-origin handling.\n\n* **Improvements**\n * Server startup now continues gracefully if the database is unreachable.\n * Data seeding and test user creation are skipped when the database is unavailable, with clear logging.\n", + "closed_by": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/259/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/259/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/258", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/258/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/258/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/258/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/258", + "id": 3836356820, + "node_id": "I_kwDONYLDD87kqijU", + "number": 258, + "title": "Fix CORS preflight: Always return 200 JSON + correct headers for OPTIONS requests", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-21T02:59:39Z", + "updated_at": "2026-01-21T02:59:39Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Problem\nSome frontend requests fail silently due to CORS preflight (OPTIONS) requests not returning CORS-safe JSON & headers.\n\nWhen the browser sends an OPTIONS preflight, the backend does not respond with:\n- 200 OK\n- correct `Access-Control-*` headers\n- JSON response\n\nAs a result, the browser blocks the real request before it hits the route.\n\n### Reproduction\n\n1. Make a cross-origin POST request from the frontend with Authorization header\n2. Observe OPTIONS preflight request\n3. Browser blocks request due to missing CORS-safe response\n\n### Proposed Fix\n\nAdd a CORS middleware so that:\n1. OPTIONS requests always respond with `200 OK`, JSON content, and required CORS headers\n2. All routes include `Access-Control-Allow-Origin`, `Access-Control-Allow-Methods`, and `Access-Control-Allow-Headers` in responses\n\n### Acceptance Criteria\n\n- OPTIONS requests return HTTP 200\n- Response includes valid CORS headers\n- Response body is valid JSON\n- Frontend requests no longer fail at preflight stage\n\n### Benefits\n\n- avoids silent CORS failures in browsers\n- improves developer experience\n- infra-level fix with no feature logic changes\n\n\nHappy to submit a PR for this if the approach looks good.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/258/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/258/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/257", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/257/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/257/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/257/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/257", + "id": 3835197941, + "node_id": "PR_kwDONYLDD86-Sr0l", + "number": 257, + "title": "#256- UI update to auth page", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-20T19:51:32Z", + "updated_at": "2026-01-20T19:53:07Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/257", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/257", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/257.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/257.patch", + "merged_at": null + }, + "body": "Fixes #256 \r\n\r\nUpdated Authentication.tsx to make the background of left section slightly darker in dark theme so as to ensure that the podium colors don't get merged into the background. \r\n\r\n## Before : \r\n\"image\"\r\n\r\n## After: \r\n\"image\"\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Style**\n * Improved dark mode appearance on the authentication page with enhanced background styling for better visibility and contrast.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/257/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/257/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/256", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/256/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/256/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/256/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/256", + "id": 3835178554, + "node_id": "I_kwDONYLDD87kmC46", + "number": 256, + "title": "Fix: Dark Mode Background Contrast in Auth Page", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-20T19:45:08Z", + "updated_at": "2026-01-20T19:45:08Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## Problem\nIn Dark Mode, the background of the left-side section (Authentication.tsx) is too light (bg-muted). This causes the \"podium\" illustration to merge with the background, losing visual definition.\n\n## Proposed Change\nUpdate the background utility class to explicitly use a darker shade (gray-950) when in dark mode, while keeping the original color for light mode.\n\n## Before\n\n\"Image\"\n\n## After \n\n\"Image\"\n\nFile: src/components/Authentication.tsx\n\nChange:\n\n```bash\n\n// LeftSection component div\n
\n\n```\n\n## Goal\nEnsure the illustration stands out clearly against the background in both Light and Dark themes.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/256/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/256/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/255", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/255/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/255/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/255/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/255", + "id": 3833953303, + "node_id": "PR_kwDONYLDD86-Ofu3", + "number": 255, + "title": "Fixes #254 authentication form validation and incorrect error handling", + "user": { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-20T14:21:56Z", + "updated_at": "2026-03-22T13:12:33Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/255", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/255", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/255.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/255.patch", + "merged_at": null + }, + "body": "What this PR does\r\nThis PR improves the login and signup authentication forms by fixing validation logic, error handling, and UX issues.\r\n\r\nIssues Fixed\r\n- Removed generic \"Failed to fetch\" and \"Unexpected error occurred\" messages for client-side validation cases.\r\n- Added clear client-side error messages for:\r\n - Missing email\r\n - Missing password\r\n - Short passwords\r\n - Password mismatch (signup)\r\n- Properly separated client-side validation errors from backend/network errors.\r\n\r\nFixes #254\r\n\r\n**Before:\r\n\r\nhttps://github.com/user-attachments/assets/a1d69761-2a66-4bec-bfa3-79e4dc3984dc\r\n\r\n\r\n\r\n\r\n\r\n\r\n**After:\r\n\r\nhttps://github.com/user-attachments/assets/caad38dd-9fa8-4b27-aa4f-45d0ccd7bf3e\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n* **New Features**\r\n * Added email autocomplete suggestions with keyboard navigation support\r\n * Introduced \"Mark all as read\" action for notifications\r\n * Added mobile drawer navigation\r\n\r\n* **Bug Fixes**\r\n * Implemented input validation for email format and password requirements\r\n\r\n* **Style**\r\n * Refreshed header color scheme and styling\r\n * Enhanced notification visuals with unread indicators\r\n * Updated profile popover and navigation item styling with smoother transitions\r\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/255/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/255/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/254", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/254/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/254/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/254/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/254", + "id": 3833788560, + "node_id": "I_kwDONYLDD87kgviQ", + "number": 254, + "title": "Fix authentication form validation and incorrect error handling", + "user": { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-20T13:39:01Z", + "updated_at": "2026-01-20T14:13:33Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "Problem:\nThe authentication forms (login & signup) currently show incorrect and confusing error behavior:\n- Generic \"Failed to fetch\" / \"Unexpected error occurred\" messages appear for client-side validation cases.\n- Duplicate error messages are rendered in some cases.\n- Password input becomes blocked or unresponsive when email validation fails.\n- Backend/network errors and client-side validation errors are mixed together.\n- Some validations trigger too early and prevent normal typing.\n\nThis results in poor UX and makes it difficult for users to understand what went wrong.\n\nExpected Behavior\n- Users should always be able to freely type email and password.\n- Validation should only occur on form submission.\n- Clear, specific client-side error messages should be shown for:\n - Empty email\n - Empty password\n - Short password\n - Password mismatch (signup)\n- Backend errors should be displayed separately.\n- No duplicate or stale error messages should persist.\n\nProposed Fix\n- Separate client-side validation errors from backend errors.\n- Run validation only on submit (not on change).\n- Remove blocking validations that prevent typing.\n- Show only one error message at a time.\n- Clean unused variables and lint issues.\n\nI’m working on a fix and would like to submit a PR for this.\n\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/254/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/254/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/253", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/253/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/253/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/253/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/253", + "id": 3833494237, + "node_id": "PR_kwDONYLDD86-M9pZ", + "number": 253, + "title": "Refactor Backend Architecture for Service Layer Isolation & Comprehensive Test Coverage", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-20T12:21:05Z", + "updated_at": "2026-06-08T10:37:47Z", + "closed_at": "2026-06-08T10:37:47Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/253", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/253", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/253.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/253.patch", + "merged_at": null + }, + "body": "# Issue #230 \r\nThis PR executes a major architectural refactor of the backend to enable strict dependency injection, resolving circular dependencies and allowing for robust automated testing. It isolates business logic from the controller layer into dedicated Services ([AuthService](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/services/auth_service.go:17:0-21:1), `VotingService`) and implements a multi-layered testing strategy covering unit, integration, and concurrency vectors.\r\n\r\n## Technical Changes\r\n\r\n### Architecture & Refactoring\r\n\r\n- **Service Layer Extraction**: Decoupled [AuthService](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/services/auth_service.go:17:0-21:1) and `VotingService` from `controllers`, moving core business logic into `services/` package.\r\n- **Dependency Injection**: Introduced `repositories` interfaces ([UserRepository](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/services/auth_service_test.go:27:0-29:1), `DebateRepository`) and [EmailSender](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/services/email_service.go:5:0-7:1) interface to abstract external dependencies (MongoDB, SMTP) for mocking.\r\n- **Controller Wiring**: Refactored [controllers/auth.go](cci:7://file:///home/bashar-khan/openSource/DebateAI/backend/controllers/auth.go:0:0-0:0) to consume a global [AuthService](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/services/auth_service.go:17:0-21:1) singleton (initialized in [services/init.go](cci:7://file:///home/bashar-khan/openSource/DebateAI/backend/services/init.go:0:0-0:0)), removing direct DB dependencies from the controller.\r\n- **Circular Dependency Fix**: Extracted test data seeding logic from `utils/` to a standalone `cmd/seeder` binary, resolving the `utils` <-> `services` import cycle.\r\n- **Route Setup**: Moved router initialization to `routes.SetupRouter` to facilitate `httptest` integration.\r\n\r\n### Testing Infrastructure\r\n\r\n- **Unit Testing**: Implemented table-driven tests for [AuthService](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/services/auth_service.go:17:0-21:1) (SignUp, Login, VerifyEmail) and `VotingService` (JudgeDebate, result parsing) using `testify/mock`.\r\n- **Concurrency Testing**: Added specific tests for WebSocket [Room](cci:2://file:///home/bashar-khan/openSource/DebateAI/backend/websocket/websocket.go:31:0-34:1) locking mechanisms ensuring thread safety during concurrent client broadcasts.\r\n- **Integration Testing**: Created [tests/integration_test.go](cci:7://file:///home/bashar-khan/openSource/DebateAI/backend/tests/integration_test.go:0:0-0:0) utilizing `httptest` to verify HTTP route registration, middleware binding, and status codes (403 vs 404).\r\n- **Test Utils**: Added `utils/test_utils.go` for test-specific configuration loading and mock generation.\r\n\r\n### Bug Fixes\r\n\r\n- Fixed `fmt.Sprintf` argument mismatch in [debatevsbot.go](cci:7://file:///home/bashar-khan/openSource/DebateAI/backend/routes/debatevsbot.go:0:0-0:0).\r\n- Resolved `config` vs `testConfig` struct mismatches in test files.\r\n\r\n## Testing Strategy\r\n\r\nAll tests pass with race detection enabled:\r\n\r\n```bash\r\ngo test -v ./... -race\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * AI-powered debate outcome evaluation (automated judging)\n * Centralized authentication service for signup, login, and email verification\n\n* **Improvements**\n * Consolidated router for more consistent HTTP and WebSocket endpoints\n * Sensitive fields hidden from API responses (improved user data privacy)\n * Stronger startup logging and clearer seeding outcomes\n\n* **Bug Fixes**\n * Safer seeding to prevent duplicate test users and surface failures\n\n* **Tests**\n * Added unit and integration tests plus test utilities for auth, voting, and websockets\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/253/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/253/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/252", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/252/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/252/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/252/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/252", + "id": 3832838271, + "node_id": "PR_kwDONYLDD86-KwWY", + "number": 252, + "title": "feat: add lightweight /health endpoint", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-20T09:26:00Z", + "updated_at": "2026-03-12T19:26:50Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/252", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/252", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/252.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/252.patch", + "merged_at": null + }, + "body": "### Summary\r\nAdds a lightweight `/health` endpoint to verify backend availability during local development and CI.\r\n\r\n### Details\r\n- Returns HTTP 200 with a simple JSON response\r\n- No authentication required\r\n- No dependency on DB, Redis, or external services\r\n- Reachable even if optional services fail\r\n\r\n### Motivation\r\nThis improves local debugging and onboarding by providing a clear backend availability signal.\r\n\r\nCloses #249 \r\n\r\n(Any issue please communicate)\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added a health endpoint (GET /health) reporting service status.\n\n* **Bug Fixes / Reliability**\n * Server stays up if the database is unreachable; connection failures now log a warning instead of stopping the service.\n * Data seeding for debates and test users only occurs when the database is available.\n\n* **Refactor**\n * Centralized router initialization for clearer route setup.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/252/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/252/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/251", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/251/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/251/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/251/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/251", + "id": 3828205125, + "node_id": "PR_kwDONYLDD8697glO", + "number": 251, + "title": "Bug/ai bot reponse correctly", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-19T06:28:21Z", + "updated_at": "2026-03-12T05:15:29Z", + "closed_at": "2026-03-12T05:15:29Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/251", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/251", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/251.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/251.patch", + "merged_at": null + }, + "body": "## Fix: Enforce Debate Constraints for AI Debater Responses\r\n\r\n### Motivation\r\nDuring User-vs-Bot debates, the AI debater occasionally produced casual or irrelevant filler responses, particularly in the *Opening Statements* phase. This behavior undermines DebateAI’s core objective of facilitating structured, competitive debates.\r\n\r\nRoot cause analysis showed that debate rules (topic, stance, phase) and persona flair were combined in a single prompt, allowing persona tone to override debate constraints.\r\n\r\n---\r\n\r\n### What This PR Does\r\nThis PR introduces a clear separation between **system-level debate rules** and **user-level context**, ensuring the AI debater remains on-topic and argumentative across all debate phases.\r\n\r\n---\r\n\r\n### Technical Changes\r\n\r\n#### 1. Gemini Service Enhancement\r\n**Files:** `gemini.go`\r\n\r\n- Updated `generateModelText` and `generateDefaultModelText` to accept an optional `systemInstruction`.\r\n- Configured `genai.GenerateContentConfig.SystemInstruction` to enforce debate rules at the system level.\r\n\r\nThis ensures debate constraints always take precedence over persona styling.\r\n\r\n---\r\n\r\n#### 2. Prompt Construction Refactor\r\n**Files:** `debatevsbot.go`\r\n\r\n- Refactored `constructPrompt` to return two distinct prompts:\r\n - **System Prompt**\r\n - Debate topic, stance, and phase rules\r\n - Persona constraints (limited strictly to tone)\r\n - **User Prompt**\r\n - Opponent’s message\r\n - Debate transcript / context\r\n\r\nThis aligns prompt structure with Gemini’s intended system-instruction design and improves response consistency.\r\n\r\n---\r\n\r\n#### 3. Output Validation and Retry Logic\r\n**Files:** `debatevsbot.go`\r\n\r\n- Added `validateResponse` to detect:\r\n - Extremely short outputs\r\n - Generic or non-argumentative filler\r\n- If validation fails, the system retries once with a stricter fallback system instruction.\r\n\r\nThis prevents low-quality responses from reaching the UI.\r\n\r\n---\r\n\r\n#### 4. Signature Alignment Across Services\r\n**Files:**\r\n- `transcriptservice.go`\r\n- `pros_cons.go`\r\n- `coach.go`\r\n\r\n- Updated all AI generation calls to match the revised Gemini function signatures.\r\n- Ensured no regressions across other AI-powered features.\r\n\r\n---\r\n\r\n### Verification\r\n\r\n#### Tests\r\n- Added `TestConstructPrompt` (services package) to verify:\r\n - Mandatory topic and stance rules are present in the system prompt\r\n - Persona flair is applied without overriding debate constraints\r\n - Opening statements are correctly requested when transcript history is empty\r\n\r\n**Result:** ✅ Pass\r\n\r\n#### Build\r\n```bash\r\ngo build ./...\r\n```\r\n\r\nResult: ✅ Success\r\n\r\n#### Outcome\r\n\r\n- AI debaters now consistently generate:\r\n- Topic-relevant\r\n- Structured\r\n- Argumentative responses\r\n- Persona influences tone only, never debate quality.\r\n- Resolves a core functional issue affecting user trust and debate integrity.\r\n\r\n#### Scope & Impact\r\n\r\n- Fixes a high-impact bug in User-vs-Bot debates\r\n- Improves reliability for demos, evaluations, and future scoring logic\r\n- Changes are minimal, backward-compatible, and isolated to AI services\r\n\r\n#### Checklist\r\n\r\n- Backward compatible\r\n- No frontend changes\r\n- Tests added\r\n- Build passing\r\n- Scoped to AI debate logic only\r\n\r\ncloses #250 \n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Reduced minimum password length requirement from 8 to 6 characters for sign-up, login, and password reset.\n\n* **Improvements**\n * Enhanced AI response validation and generation for improved conversation quality.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/251/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/251/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/250", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/250/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/250/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/250/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/250", + "id": 3828064142, + "node_id": "I_kwDONYLDD87kK5-O", + "number": 250, + "title": "[Bug] AI Bot Produces Irrelevant / Non-Debate Responses During Opening Statements", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-19T05:30:40Z", + "updated_at": "2026-01-19T05:30:40Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Description\nDuring a **User vs Bot debate**, the AI bot generates responses that are **off-topic, unserious, and not aligned with debate rules**, especially during the **Opening Statements** phase.\n\nInstead of presenting a structured argument relevant to the debate topic, the bot outputs casual filler text (e.g., surfer-style or idle chatter), which breaks the core functionality and credibility of the debate system.\n\n---\n\n### Steps to Reproduce\n1. Start the backend and frontend locally.\n2. Log in successfully.\n3. Create or join a **User vs Bot** debate.\n4. Select any topic (e.g., *“Should AI rule the world?”*).\n5. Reach the **Opening Statements** phase.\n6. Wait for the bot to generate its opening statement.\n\n---\n\n### Expected Behavior\n- The AI bot should:\n - Respect the debate **topic**, **phase**, and **assigned stance**.\n - Produce a **clear, structured argumentative response**.\n - Present logical reasoning suitable for a competitive debate.\n - Maintain relevance even if the persona tone is casual.\n\n**Example (Expected):**\n> “AI governance could reduce human bias, improve efficiency, and make data-driven decisions at scale, which is why…”\n\n---\n\n### Actual Behavior\n- The bot responds with **irrelevant, casual, or nonsensical text** that:\n - Does not address the topic.\n - Lacks an argument or stance.\n - Sounds like general chatbot chatter.\n\n**Example (Actual):**\n> “No way, man! Dude, I’m spaced out, man! Chill, I’ll catch the next wave at the beach diner.”\n\n---\n\n### Screenshots / Evidence\n\n\"Image\"\n\n---\n\n### Root Cause (Analysis)\n- The AI prompt sent from the backend:\n - Does **not enforce debate constraints** (topic, phase, stance).\n - Allows persona prompts to override debate rules.\n - Lacks system-level instructions for argumentative structure.\n- No output validation exists to reject low-quality or irrelevant AI responses.\n\n---\n\n### Impact\n- Breaks the core purpose of DebateAI.\n- Reduces user trust in AI debates.\n- Makes bot debates unusable for serious discussion, demos, or evaluation.\n- Affects judging, scoring, and learning outcomes.\n\n---\n\n### Suggested Fix\n1. Strengthen the **system prompt** for AI debaters:\n - Explicitly include:\n - Debate topic\n - Phase (Opening / Rebuttal / Closing)\n - Assigned stance\n - Requirement for structured arguments\n2. Ensure persona affects **tone only**, not content quality.\n3. Add backend validation to reject:\n - Off-topic responses\n - Extremely short or non-argumentative outputs\n4. Provide a fallback regeneration if validation fails.\n\n---\n\n### Environment\n- OS: Windows 10\n- Backend: Go (Gin)\n- Frontend: React + Vite\n- MongoDB: Local instance\n- Debate Mode: User vs Bot\n- Phase: Opening Statements\n\n---\n\n### Additional Context\nThis issue is **not related to authentication, WebSockets, or UI rendering**. \nThe debate state and frontend display are correct; the failure originates from AI prompt design and response handling.\n\n---\n\n### Priority\n**High** – Core feature malfunction\n\n---\n\n### Willingness to Contribute\nI am willing to:\n- Improve the AI system prompt\n- Add validation logic\n- Submit a PR with fixes if guided on preferred design direction\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/250/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/250/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/249", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/249/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/249/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/249/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/249", + "id": 3825493172, + "node_id": "I_kwDONYLDD87kBGS0", + "number": 249, + "title": "Backend missing a /health endpoint for basic service status checks", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-17T16:22:48Z", + "updated_at": "2026-01-19T16:01:24Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Problem\nCurrently, the backend does not expose a simple `/health` (or similar) endpoint to verify whether the server is running correctly.\n\nDuring local development, contributors have no easy way to distinguish between:\n- backend not running\n- backend running but DB connection failed\n- backend running but routes not reachable\n\nThis caused confusion when trying to access the frontend, which resulted in \"localhost refused to connect\" errors without a clear backend signal.\n\n### Expected Behavior\nThe backend should expose a lightweight health check endpoint (e.g. `GET /health`) that:\n- returns HTTP 200 when the server is running\n- returns a small JSON response such as `{ \"status\": \"ok\" }`\n\nThis endpoint should not require authentication and should not depend on optional services like Gemini or Redis.\n\n### Actual Behavior\nThere is no simple endpoint to verify backend availability, making debugging and onboarding harder for new contributors.\n\n### Impact\n- Harder local setup and debugging\n- Poor contributor experience\n- No simple way to verify backend status from browser or scripts\n\n### Suggested Fix\nAdd a basic health check route that:\n- returns a static JSON response\n- does not perform heavy checks\n- is safe for local development and CI usage\n\nThis would significantly improve developer experience.\n\nCould you please assign this issue to me so I can work on it?", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/249/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/249/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/248", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/248/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/248/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/248/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/248", + "id": 3825454996, + "node_id": "PR_kwDONYLDD869y_kS", + "number": 248, + "title": "Fix judgment popup crash and prevent duplicate judge API calls", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-17T15:56:35Z", + "updated_at": "2026-01-17T16:04:20Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/248", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/248", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/248.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/248.patch", + "merged_at": null + }, + "body": "Problem\r\nAfter completing a bot debate, users faced two critical issues:\r\n\r\n1. Judgment popup crash\r\n App crashed with `ReferenceError: botDesc is not defined`\r\n Users were left on a blank screen with no navigation\r\n\r\n2. Duplicate judge API calls\r\n /vsbot/judge` endpoint was triggered twice per debate\r\nCaused unnecessary API quota usage and race conditions\r\n\r\n✅ Solution\r\nThis PR fixes both issues:\r\n\r\n1️⃣ Judgment Popup Crash\r\nProperly destructured `botDesc` from `JudgmentPopupProps`\r\nPrevents runtime reference errors\r\nJudgment popup now renders reliably\r\n\r\n### 2️⃣ Duplicate Judge Calls\r\n- Added `useRef` guard (`judgingRef`) to prevent concurrent calls\r\n- Ensures the judge API is called **exactly once per debate**\r\n\r\n3️⃣ Improved User Flow\r\nClosing the judgment popup now navigates the user back to the home page\r\nPrevents users from getting stuck on a blank screen\r\n\r\nFiles Changed\r\nfrontend/src/components/JudgementPopup.tsx\r\nfrontend/src/Pages/DebateRoom.tsx\r\n\r\nVerification Steps\r\n- Complete a bot debate (any difficulty)\r\n- Judgment popup displays correctly with scores and analysis\r\n- No console errors in DevTools\r\n- Only one POST request to `/vsbot/judge`\r\n- Clicking Close navigates back to the home page\r\n\r\nImpact\r\n- Improved reliability and UX\r\n- Prevents API quota waste\r\n- Eliminates crash after debate completion\r\n\r\nclose #215 \n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * High-contrast theming for improved accessibility\n * Judgment display now supports optional bot descriptions\n\n* **Bug Fixes**\n * Prevented race conditions in judgment processing and ensured cleanup\n * Improved judgment error handling with consistent messaging and recovery\n * Matchmaking UI resets state correctly on page refresh\n * Judgment popup now navigates to home after closing\n\n* **Style**\n * Updated UI tokens and visual states across header, navigation, and select components\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/248/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/248/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/247", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/247/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/247/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/247/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/247", + "id": 3825374316, + "node_id": "PR_kwDONYLDD869yujK", + "number": 247, + "title": "Bug/silent failures caused by swallowed errors", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-17T15:11:51Z", + "updated_at": "2026-03-12T05:15:29Z", + "closed_at": "2026-03-12T05:15:29Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/247", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/247", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/247.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/247.patch", + "merged_at": null + }, + "body": "closes #239 \r\n\r\n### Summary\r\nThis PR fixes multiple silent failures in the DebateAI backend where errors were ignored or swallowed in critical execution paths. The changes improve system reliability and debuggability by ensuring failures in database writes, matchmaking, and real-time communication are logged.\r\n\r\n---\r\n\r\n### Changes\r\n\r\n#### Debate Persistence & Outcomes\r\n**File:** `backend/controllers/debatevsbot_controller.go`\r\n- Added logging for failures in `db.SaveDebateVsBot`\r\n- Added logging for failures in `db.UpdateDebateVsBotOutcome`\r\n- Added logging for `services.SaveDebateTranscript` failures in win/loss and concession flows\r\n\r\n#### Profile & Elo Updates\r\n**File:** `backend/controllers/profile_controller.go`\r\n- Added logging for default rating initialization failures\r\n- Added proper error handling and logging for user lookup failures during Elo updates\r\n- Added logging for Elo update failures and debate history insertion failures\r\n\r\n#### Matchmaking & Room Watchers\r\n**File:** `backend/services/matchmaking.go`\r\n- Added logging for unexpected WebSocket close errors\r\n- Added logging for JSON marshaling failures during pool status broadcasts\r\n- Added logging for MongoDB change stream initialization and decoding failures\r\n\r\n#### Auth & Real-Time Communication\r\n**File:** `backend/controllers/auth.go`\r\n- Added logging for `persistUserStats` failures during login and token verification\r\n\r\n**File:** `backend/websocket.go`\r\n- Added logging for WebSocket write failures (participant updates, typing indicators, phase changes, broadcasts)\r\n\r\n---\r\n\r\n### Why\r\nPreviously, several critical errors were silently ignored, making production issues difficult to detect and debug. These silent failures could lead to unnoticed data loss, incomplete updates, or inconsistent real-time state.\r\n\r\n---\r\n\r\n### Impact\r\n- Improves observability and debuggability\r\n- Prevents silent data loss in critical flows\r\n- No behavior changes beyond improved error visibility\r\n- No new dependencies introduced\r\n\r\n---\r\n\r\n### Verification\r\n- Backend code reviewed for correctness and logging coverage\r\n- `go build ./...` run; build failures observed only in pre-existing `test_server.go` (unrelated to this PR)\r\n\r\n---\r\n\r\n### Notes\r\n- Uses Go’s standard `log` package, consistent with existing server-side logging practices\r\n- Changes are intentionally scoped to high-impact paths only\r\n\r\n\r\n\n## Summary by CodeRabbit\n\n* **User Experience Updates**\n * Minimum password length reduced from 8 to 6 across login, signup, and reset.\n\n* **New Features**\n * Multi-factor authentication (MFA): enable MFA, receive QR/secret, finalize setup, and verify TOTP during login.\n * Per-route rate limiting on auth endpoints to curb excessive attempts (may return HTTP 429).\n\n* **System Improvements**\n * Stronger encryption key management for stored secrets, improved error logging, and transactional integrity for rating updates.\n\n* **Chores**\n * Removed sample production config and trimmed example environment placeholders.\n\n* **Tests**\n * Added tests covering user MFA secret generation, encryption, and decryption.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/247/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/247/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/246", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/246/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/246/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/246/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/246", + "id": 3824758607, + "node_id": "PR_kwDONYLDD869wqeJ", + "number": 246, + "title": "#214- UI fix", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-17T09:31:27Z", + "updated_at": "2026-01-17T09:32:51Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/246", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/246", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/246.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/246.patch", + "merged_at": null + }, + "body": "fixed #214 \r\n\r\n**Description**\r\nThis PR resolves a UI bug where authentication error messages (e.g., \"Login failed\") would persist even after the user navigated to a different screen (e.g., switching from Login to Sign Up or Forgot Password). This created a confusing user experience where error states from previous attempts were visible on unrelated forms.\r\n\r\nChanges Implemented\r\nComponent Logic (Authentication.tsx)\r\nAdded Context Consumption: Imported useContext and AuthContext to access the global authentication state.\r\n\r\nImplemented Error Clearing: Updated all navigation handlers (toggleAuthMode, startOtpVerification, startForgotPassword, etc.) to invoke the clearError() function immediately before changing views.\r\n\r\nEffect: This ensures the UI always starts with a clean slate when the user transitions between authentication modes.\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Fixed stale error messages persisting during authentication transitions. Error messages are now properly cleared when switching between login/signup modes, initiating OTP/password reset flows, and completing authentication actions.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/246/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/246/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/245", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/245/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/245/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/245/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/245", + "id": 3824733222, + "node_id": "PR_kwDONYLDD869wlbh", + "number": 245, + "title": "#58 issue fix signup not smooth", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-17T09:08:41Z", + "updated_at": "2026-01-17T09:11:50Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/245", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/245", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/245.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/245.patch", + "merged_at": null + }, + "body": "fixed #213 \r\n\r\n**Description**\r\nThis PR streamlines the signup process and polishes the authentication UI. It improves network reliability for local development by standardizing CORS configurations and enhances user feedback by exposing specific validation messages (e.g., \"User already exists\"). Additionally, it refines the UI state management to ensure error messages are automatically cleared when users navigate between login, signup, and verification forms.\r\n\r\nKey Improvements\r\n1. Backend Connectivity (main.go)\r\nStandardized CORS: Expanded AllowOrigins to support 127.0.0.1 and added standard browser headers (Accept, X-Requested-With). This improves connectivity robustness across different local environments.\r\n\r\nStreamlined Routing: Removed redundant manual route handlers to let the middleware manage preflight requests more efficiently.\r\n\r\n2. Frontend Feedback (authContext.tsx)\r\nDetailed Validation: Updated the signup logic to prioritize specific backend validation errors (data.error) over generic messages. This ensures users receive actionable feedback during registration.\r\n\r\nState Control: Introduced a clearError action to the Auth Context, enabling better control over UI error states.\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Improved network connectivity and compatibility across different environments\n * Enhanced cross-origin access configuration for better application functionality\n * Better error messages during account creation to help troubleshoot signup issues\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/245/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/245/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/244", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/244/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/244/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/244/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/244", + "id": 3824539573, + "node_id": "I_kwDONYLDD87j9de1", + "number": 244, + "title": "Frontend crashes when backend returns non-JSON or empty responses", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-17T06:35:17Z", + "updated_at": "2026-01-17T06:39:02Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### **_Problem_**\nThe frontend assumes that all API responses are valid JSON and directly calls `response.json()` without validation.\n\nWhen the backend returns an empty response body or a non-JSON response (for example during authentication failures or server-side errors), the frontend crashes with the following error:\n\n### **_Expected Behavior_**\n\nThe frontend should handle error responses gracefully and avoid crashing when the response body is empty or not valid JSON.\nInstead, it should:\n\n- Safely parse responses\n- Display a user-friendly error message\n- Allow the application to continue running\n\n### **_Actual Behavior_**\n\nThe frontend crashes immediately when response.json() is called on an empty or invalid response body, making the application unusable.\n\n### **_Impact:_**\n\nPoor user experience\n\nApplication crashes instead of showing meaningful errors\n\nBackend issues are masked by frontend runtime errors\n\nNew users and contributors cannot proceed when an API error occurs\n\n### **_Steps to Reproduce:_**\n\nRun the backend and frontend locally\n\nTrigger an API error (e.g. auth failure or backend returning an empty response)\n\nObserve the frontend crash with Unexpected end of JSON input\n\n### **_Suggested Fix_**\n\nBefore calling response.json(), the frontend should:\n\n_- Check response.ok_\n_- Gracefully fall back to response.text() when JSON parsing fails_\n_- Handle empty responses safely_\n_- This would make the frontend more robust even when backend errors occur.__\n\nRelated Issues\n\nThis issue is exposed by backend auth failures (see issue #243), but frontend error handling should be improved independently to prevent crashes.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/244/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/244/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/243", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/243/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/243/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/243/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/243", + "id": 3824211609, + "node_id": "I_kwDONYLDD87j8NaZ", + "number": 243, + "title": "Auth endpoints (/signup, /login) return empty responses instead of JSON on error", + "user": { + "login": "SoorejS", + "id": 143519771, + "node_id": "U_kgDOCI3wGw", + "avatar_url": "https://avatars.githubusercontent.com/u/143519771?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SoorejS", + "html_url": "https://github.com/SoorejS", + "followers_url": "https://api.github.com/users/SoorejS/followers", + "following_url": "https://api.github.com/users/SoorejS/following{/other_user}", + "gists_url": "https://api.github.com/users/SoorejS/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SoorejS/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SoorejS/subscriptions", + "organizations_url": "https://api.github.com/users/SoorejS/orgs", + "repos_url": "https://api.github.com/users/SoorejS/repos", + "events_url": "https://api.github.com/users/SoorejS/events{/privacy}", + "received_events_url": "https://api.github.com/users/SoorejS/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-17T01:46:54Z", + "updated_at": "2026-01-27T16:57:40Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "🐞 Problem\nBoth `/signup` and `/login` endpoints sometimes return an empty response body instead of a JSON response when an error occurs.\n\nThis causes the frontend to fail with the following error:\n\nFailed to execute 'json' on 'Response': Unexpected end of JSON input\n\n\"Image\"\n\nExpected Behavior\n\nThe backend should always return a valid JSON response (success or error) for auth endpoints, \n\nActual Behavior\n\nOn certain error paths (e.g. validation failure, user already exists, password mismatch, JWT/bcrypt error), the handler exits without calling c.JSON(...), resulting in an empty response body.\n\nImpact\n\nFrontend crashes during signup/login\n\nNew users cannot complete authentication\n\nPoor developer onboarding experience for local setup\n\nSteps to Reproduce\n\nRun backend and frontend locally as per README\n\nAttempt signup or login\n\nObserve frontend error: Unexpected end of JSON input\n\nI have reproduced this issue locally and would like to work on fixing it. Please let me know if I can proceed and submit a PR.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/243/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/243/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/242", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/242/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/242/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/242/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/242", + "id": 3823034920, + "node_id": "PR_kwDONYLDD869q9nO", + "number": 242, + "title": "Fix/high contrast select hover", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-16T17:58:34Z", + "updated_at": "2026-01-17T15:05:23Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/242", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/242", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/242.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/242.patch", + "merged_at": null + }, + "body": "This PR resolves theme inconsistency issues in the Select component by improving hover and text contrast for High Contrast mode.\r\n\r\n What was fixed\r\nAdded high-contrast–specific hover background and text colors for SelectItem\r\nEnsured hover and focus states remain readable across light, dark, and high-contrast themes\r\nImproved accessibility (a11y) for keyboard and screen-reader users\r\nMaintained visual consistency with existing design tokens\r\n\r\nChanges Made\r\nUpdated SelectItem styles to support high-contrast theme variables\r\nPrevented low-contrast hover states that caused readability issues\r\nNo functional or API changes — pure UI/a11y improvement\r\n\r\nImpact\r\nBetter accessibility compliance\r\nConsistent UX across all supported themes\r\nSafer theme switching without visual regressions\r\n\r\nTesting\r\nVerified in Light, Dark, and High Contrast themes\r\nTested keyboard navigation and hover behavior\r\n\r\nclose #236 \n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Matchmaking UI now reliably resets when the page is refreshed.\n\n* **New Features**\n * Added a high-contrast theme hook for improved accessibility.\n\n* **Style**\n * Header and drawer visuals updated to the new design palette and spacing.\n * Navigation, menu/close controls, and avatar/badge styling refined for better contrast and hover states.\n * Select component styling enhanced with richer highlighted/focus and high-contrast states.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/242/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/242/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/241", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/241/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/241/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/241/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/241", + "id": 3822960699, + "node_id": "PR_kwDONYLDD869qtkP", + "number": 241, + "title": "Fix/theme consistency header sidebar", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-16T17:36:14Z", + "updated_at": "2026-01-17T15:09:14Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/241", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/241", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/241.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/241.patch", + "merged_at": null + }, + "body": "1. This change fixes a theme inconsistency where the header, mobile sidebar (hamburger menu), and navigation items were not respecting the user’s selected theme.\r\n2. Previously, these components relied on hardcoded Tailwind color utilities, causing them to render with light backgrounds and low-contrast text in Dark Mode and High Contrast Mode. This resulted in visual inconsistency and accessibility issues.\r\n3. The fix replaces all hardcoded color classes with semantic, theme-aware tokens (bg-background, text-foreground, border-border, etc.), ensuring that all affected components dynamically adapt to the active theme.\r\n4. As a result, the UI now remains visually consistent and accessible across Light, Dark, and High Contrast modes, while also being future-proof for additional themes.\r\n\r\nclose #231 \n\n\n## Summary by CodeRabbit\n\n* **Style**\n * Aligned header, navigation and drawer styling with the design system for improved typography, colors, icon states, and hover/active behavior.\n * Updated drawer overlay and panel visuals for clearer contrast and consistency.\n\n* **Bug Fixes**\n * Reset matchmaking pool state on page refresh so UI no longer retains prior matchmaking status.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/241/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/241/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/240", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/240/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/240/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/240/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/240", + "id": 3822845022, + "node_id": "PR_kwDONYLDD869qUcL", + "number": 240, + "title": "fix(docker): stabilize frontend npm install in dev builds", + "user": { + "login": "iamdwaseem", + "id": 170373284, + "node_id": "U_kgDOCiewpA", + "avatar_url": "https://avatars.githubusercontent.com/u/170373284?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/iamdwaseem", + "html_url": "https://github.com/iamdwaseem", + "followers_url": "https://api.github.com/users/iamdwaseem/followers", + "following_url": "https://api.github.com/users/iamdwaseem/following{/other_user}", + "gists_url": "https://api.github.com/users/iamdwaseem/gists{/gist_id}", + "starred_url": "https://api.github.com/users/iamdwaseem/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/iamdwaseem/subscriptions", + "organizations_url": "https://api.github.com/users/iamdwaseem/orgs", + "repos_url": "https://api.github.com/users/iamdwaseem/repos", + "events_url": "https://api.github.com/users/iamdwaseem/events{/privacy}", + "received_events_url": "https://api.github.com/users/iamdwaseem/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-16T17:02:37Z", + "updated_at": "2026-02-28T07:35:08Z", + "closed_at": "2026-02-28T07:35:08Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/240", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/240", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/240.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/240.patch", + "merged_at": null + }, + "body": "

Fix: Stabilize Frontend Docker Build with npm Retry Configuration

\r\n\r\n

\r\nThis PR fixes intermittent frontend Docker build failures that were occurring during\r\nnpm install. The issue mainly affected clean setups and new contributors, where builds\r\nwould randomly fail despite no code changes.\r\n

\r\n\r\n
\r\n\r\n

🐛 What was broken

\r\n\r\n

\r\nFrontend Docker builds were failing randomly (about 40–60% of the time) during the\r\ndependency installation step.\r\n

\r\n\r\n

Typical errors looked like:

\r\n\r\n
npm ERR! ECONNRESET\r\nnpm ERR! network aborted\r\nnpm ERR! network This is a problem related to network connectivity\r\n
\r\n\r\n

This resulted in:

\r\n
    \r\n
  • Unreliable local setup for new contributors
  • \r\n
  • Developers having to retry builds multiple times
  • \r\n
  • Flaky Docker-based workflows
  • \r\n
\r\n\r\n

Why this kept happening:

\r\n
    \r\n
  • Docker does not retry npm network requests by default
  • \r\n
  • React 18 / React 19 peer dependency warnings triggered extra resolution attempts
  • \r\n
  • A large dependency graph (~2.6MB package-lock.json) increased the chance of transient failures
  • \r\n
\r\n\r\n
\r\n\r\n

✅ The fix

\r\n\r\n

\r\nThis PR updates frontend/Dockerfile.dev with two focused, build-time changes.\r\nNo application code or dependency versions were modified.\r\n

\r\n\r\n

1️⃣ Make npm more tolerant of network issues

\r\n\r\n
RUN npm config set fetch-retries 5 \\\r\n && npm config set fetch-retry-mintimeout 20000 \\\r\n && npm config set fetch-retry-maxtimeout 120000\r\n
\r\n\r\n

\r\nInstead of failing immediately on a transient network issue, npm now retries requests\r\nwith reasonable backoff.\r\n

\r\n\r\n

2️⃣ Stop npm from over-resolving React peer dependencies

\r\n\r\n
npm install --legacy-peer-deps\r\n
\r\n\r\n

\r\nThis skips strict peer dependency validation that was causing unnecessary extra network calls.\r\nThe existing dependency setup works correctly and remains locked via\r\npackage-lock.json.\r\n

\r\n\r\n
\r\n\r\n

📊 Results

\r\n\r\n

\r\nThe fix was validated by running 5 clean Docker builds using --no-cache.\r\n

\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
MetricBeforeAfter
Build success rate40–60%100%
Network-related npm errorsFrequentNone observed
Developer experienceRetry builds manuallyWorks first time
\r\n\r\n

\r\nAfter the fix, the frontend starts reliably and is accessible at:\r\n
\r\nhttp://localhost:5173\r\n

\r\n\r\n
\r\n\r\n

🔒 Safety & scope

\r\n\r\n
    \r\n
  • No application code changes
  • \r\n
  • No dependency version changes (package-lock.json unchanged)
  • \r\n
  • Build-time configuration only
  • \r\n
  • No runtime or production impact
  • \r\n
\r\n\r\n

\r\nReact 18 remains the active runtime environment and is stable and production-ready.\r\n

\r\n\r\n
\r\n\r\n

🧪 How to verify locally

\r\n\r\n
docker compose down\r\ndocker system prune -f\r\ndocker compose build frontend --no-cache\r\ndocker compose up -d\r\n
\r\n\r\n

\r\nThen open:\r\n
\r\nhttp://localhost:5173\r\n

\r\n\r\n
\r\n\r\n

📝 What’s next

\r\n\r\n

\r\nOnce upstream libraries (such as @react-three/fiber and react-konva)\r\nofficially support React 19, we can revisit and remove\r\n--legacy-peer-deps.\r\n

\r\n\r\n

\r\nSuggested revisit window: mid-2026.\r\n

\r\n\r\n
\r\n\r\n

📁 Files changed

\r\n\r\n
    \r\n
  • frontend/Dockerfile.dev — added npm retry configuration and --legacy-peer-deps
  • \r\n
\r\n\r\n
\r\n\r\n

\r\nType: Build Infrastructure Fix
\r\nRisk: Low
\r\nTesting: Manual (5/5 clean builds passed)
\r\nStatus: Ready to merge ✅\r\n

\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Improved development environment reliability with enhanced dependency installation and network resilience settings for more stable builds.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/240/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/240/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/239", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/239/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/239/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/239/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/239", + "id": 3821586631, + "node_id": "I_kwDONYLDD87jyMjH", + "number": 239, + "title": "[Bug] Silent Failures Due to Swallowed Errors in Critical Backend Paths", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-16T11:13:07Z", + "updated_at": "2026-01-16T15:47:35Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## 📌 Summary\nMultiple critical execution paths in the DebateAI backend silently ignore errors returned from database operations and core services. These swallowed errors are neither logged nor propagated, leading to hidden failures, potential data loss, and significant difficulty debugging production issues.\n\n---\n\n## 🧩 Affected Components\nSilent failures have been observed in (but may not be limited to):\n\n- Database operations (`backend/db/db.go`)\n- Debate vs Bot controllers (`backend/controllers/debatevsbot_controller.go`)\n- Matchmaking and room creation logic\n- Profile and authentication-related database writes\n\n---\n\n## 🔍 Problem Description\nSeveral code paths contain patterns such as:\n\nIn these cases:\n\n- Errors are completely ignored\n- Execution continues as if the operation succeeded\n- Failures remain invisible to developers and operators\n- This is especially problematic for database writes, matchmaking logic, and debate outcome persistence.\n\n---\n\n## ❌ Expected Behavior\n\n- Errors occurring in critical paths should be:\n- Logged with meaningful contextual information, and/or\n- Returned or propagated to the caller for proper handling\n- Silent failures should be avoided, particularly where data integrity or user-facing correctness is involved\n\n---\n\n## ✅ Actual Behavior\n\n- Errors are swallowed without logging or propagation \n- Failures are silent and difficult to detect\n- System state may become inconsistent without any indication\n\n---\n\n## 💥 Impact\n\n- Potential silent data loss (e.g., failed DB writes)\n- Increased difficulty diagnosing production incidents\n- educed observability and reliability\n- Higher maintenance and debugging cost over time", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/239/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/239/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/238", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/238/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/238/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/238/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/238", + "id": 3821531802, + "node_id": "PR_kwDONYLDD869l6I3", + "number": 238, + "title": "Fix/password reset and verification codes stored in plaintext", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-16T10:59:55Z", + "updated_at": "2026-02-28T07:46:19Z", + "closed_at": "2026-02-28T07:46:18Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/238", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/238", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/238.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/238.patch", + "merged_at": null + }, + "body": "## Summary\r\nThis PR fixes a **high-severity security vulnerability** where email verification and password reset codes were stored in plaintext in the database. All authentication codes are now **securely hashed before persistence**, preventing account takeover in the event of a database compromise.\r\n\r\n---\r\n\r\n## Changes\r\n- Added a hashing utility using **HMAC-SHA256** with the server JWT secret\r\n- Updated all authentication flows to store and compare **hashed codes only**:\r\n - SignUp (email verification)\r\n - VerifyEmail\r\n - ForgotPassword\r\n - VerifyForgotPassword\r\n- Ensured raw codes are:\r\n - Never logged\r\n - Never stored\r\n - Still sent to users via email prior to hashing\r\n\r\n---\r\n\r\n## Why\r\n\r\nVerification and reset codes function as authentication secrets. Storing them in plaintext enables immediate account takeover if the database is leaked. Hashing aligns with standard security best practices and reduces breach impact.\r\n\r\n---\r\n\r\n## Impact\r\n\r\n- Eliminates plaintext credential storage\r\n- Hardens authentication against database compromise\r\n- Preserves existing API behavior (no frontend changes)\r\n\r\n--- \r\n\r\n⚠️ Note: Existing plaintext codes in the database are now invalidated. This is intentional and improves overall security posture.\r\n\r\n---\r\n\r\n## Validation\r\n\r\n- Email verification and password reset flows continue to work\r\n- Correct codes validate successfully\r\n-Invalid codes fail securely due to hash mismatch\r\n\r\n## Files Changed\r\n\r\n- backend/controllers/auth.go\r\n\r\n## Checklist\r\n\r\n- Plaintext codes removed\r\n- Secure hashing implemented\r\n- No API breaking changes\r\n- Production-safe, scoped fix\r\n\r\nfixes #235 \n\n\n\n## Summary by CodeRabbit\n\n* **Security Enhancements**\n * Email verification and password reset codes now benefit from enhanced security measures.\n\n* **Authentication Changes**\n * Minimum password length requirement reduced from 8 to 6 characters for improved usability.\n\n* **Question System Improvements**\n * Question data structure enhanced with type categorization for better organization and management.\n\n* **Maintenance**\n * Configuration files simplified and cleaned up.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/238/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/238/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/237", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/237/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/237/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/237/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/237", + "id": 3818322251, + "node_id": "PR_kwDONYLDD869bL0r", + "number": 237, + "title": "Added [fix]: Improve dropdown hover text visibility in High Contrast …", + "user": { + "login": "Ayushdas1904", + "id": 143927004, + "node_id": "U_kgDOCJQm3A", + "avatar_url": "https://avatars.githubusercontent.com/u/143927004?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ayushdas1904", + "html_url": "https://github.com/Ayushdas1904", + "followers_url": "https://api.github.com/users/Ayushdas1904/followers", + "following_url": "https://api.github.com/users/Ayushdas1904/following{/other_user}", + "gists_url": "https://api.github.com/users/Ayushdas1904/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ayushdas1904/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ayushdas1904/subscriptions", + "organizations_url": "https://api.github.com/users/Ayushdas1904/orgs", + "repos_url": "https://api.github.com/users/Ayushdas1904/repos", + "events_url": "https://api.github.com/users/Ayushdas1904/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ayushdas1904/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-15T16:43:50Z", + "updated_at": "2026-02-28T07:47:30Z", + "closed_at": "2026-02-28T07:47:30Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/237", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/237", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/237.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/237.patch", + "merged_at": "2026-02-28T07:47:30Z" + }, + "body": "Fixes #236 \r\n\r\n### Description\r\nThis PR fixes a UI accessibility issue in the **Select** component when using the **High Contrast theme**.\r\n\r\nPreviously, dropdown item text remained white on hover, causing poor readability against the hover background. \r\nThis change updates the hover state styling so that text switches to a dark color, ensuring proper contrast and visibility.\r\n\r\n---\r\n\r\n### Screen Recording \r\nhttps://github.com/user-attachments/assets/de914f2e-bca2-4a2b-b400-6278ad0ca26b\r\n\r\n---\r\n\r\n### Changes Made\r\n- Updated dropdown hover styles for High Contrast theme\r\n- Ensured text color changes on hover for better readability\r\n- Improved accessibility and user experience\r\n\r\n---\r\n\r\n### Checklist\r\n- [x] UI tested locally\r\n- [x] No breaking changes\r\n- [x] Accessibility considered\r\n- [x] Code follows existing style guidelines\r\n\r\n---\r\n\r\n### Notes for Reviewers\r\nThis is a small CSS/theme-level change focused on improving accessibility. \r\n\n\n\n\n## Summary by CodeRabbit\n\n## Release Notes\n\n* **Style**\n * Modified accent text color in contrast theme mode.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/237/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/237/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/236", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/236/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/236/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/236/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/236", + "id": 3818283459, + "node_id": "I_kwDONYLDD87jlmHD", + "number": 236, + "title": "Dropdown hover text not readable in High Contrast theme", + "user": { + "login": "Ayushdas1904", + "id": 143927004, + "node_id": "U_kgDOCJQm3A", + "avatar_url": "https://avatars.githubusercontent.com/u/143927004?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ayushdas1904", + "html_url": "https://github.com/Ayushdas1904", + "followers_url": "https://api.github.com/users/Ayushdas1904/followers", + "following_url": "https://api.github.com/users/Ayushdas1904/following{/other_user}", + "gists_url": "https://api.github.com/users/Ayushdas1904/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ayushdas1904/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ayushdas1904/subscriptions", + "organizations_url": "https://api.github.com/users/Ayushdas1904/orgs", + "repos_url": "https://api.github.com/users/Ayushdas1904/repos", + "events_url": "https://api.github.com/users/Ayushdas1904/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ayushdas1904/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-15T16:33:41Z", + "updated_at": "2026-02-28T07:47:30Z", + "closed_at": "2026-02-28T07:47:30Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Description\nIn the **High Contrast theme**, dropdown items in the **Select** component have a visibility issue. \nWhen hovering over a dropdown option, the text color remains **white** with a **yellow** background, making it difficult or impossible to read against the hover background.\n\nThis negatively impacts usability and accessibility for users relying on high contrast mode.\n\n---\n\n### Video Proof\nhttps://github.com/user-attachments/assets/6cbb8232-5a27-46cd-96a0-421198e6e6ae\n\n---\n\n### Steps to Reproduce\n1. Enable **High Contrast theme**\n2. Navigate to the **Debate Setup** component\n3. Open any dropdown (e.g. Debate topic)\n4. Hover over any dropdown item\n\n---\n\n### Expected Behavior\n- On hover, dropdown item text should change to a **dark/black color**\n- Text should remain clearly readable in high contrast mode\n\n---\n\n### Actual Behavior\n- Dropdown item text remains **white** on hover\n- Results in **low contrast and poor readability**\n\n---\n\n### My Environment\n- Browser: Firefox/Zen\n- OS: macOS\n- Theme: High Contrast\n\n---\n\n### Additional Notes\nThis appears to be a styling issue related to the hover state of dropdown items under the High Contrast theme. \nI’d be happy to work on fixing this issue if assigned.\n\n---\n\n### Willing to Fix\n✅ Yes\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/236/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/236/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/235", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/235/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/235/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/235/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/235", + "id": 3817662705, + "node_id": "I_kwDONYLDD87jjOjx", + "number": 235, + "title": "🔐 [Security Bug] Password Reset & Verification Codes Stored in Plaintext", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-15T13:50:04Z", + "updated_at": "2026-01-15T13:56:03Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Summary\nPassword reset codes and account verification codes are currently stored **in plaintext** in the database. \nIf the database is ever compromised, an attacker could immediately verify accounts or reset passwords without user interaction.\n\n---\n\n### Affected Area\n- **File:** `backend/controllers/auth.go`\n- **Feature:** Account verification & password reset flows\n\n---\n\n### Description\nThe application generates verification and password reset codes and stores them directly in the database without hashing or encryption.\n\nThis creates a security risk because:\n- Codes function as authentication secrets\n- Plaintext storage allows direct reuse by an attacker\n- No additional protection (hashing / expiry enforcement) exists\n\n---\n\n### Expected Behavior\n- Verification and reset codes should be treated as secrets\n- Codes should be **hashed before storage**\n- Incoming codes should be verified using secure hash comparison\n- Raw codes should never be persisted\n\n---\n\n### Actual Behavior\n- Codes are stored in plaintext\n- Any database read access exposes valid authentication tokens\n\n---\n\n### Security Impact\n- Database compromise leads to **immediate account takeover**\n- Violates standard authentication security practices\n- Increases blast radius of any data breach\n\n---\n\n### Steps to Reproduce\n1. Trigger account verification or password reset\n2. Inspect the user record in the database\n3. Observe the verification/reset code stored in plaintext\n\n---\n\n### Recommended Fix\n- Hash verification and reset codes before storing them \n (e.g., SHA-256 or HMAC with a server secret)\n- Compare hashes when validating codes\n- Optionally add:\n - Expiration timestamps\n - Single-use enforcement\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/235/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/235/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/234", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/234/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/234/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/234/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/234", + "id": 3817422154, + "node_id": "PR_kwDONYLDD869YIef", + "number": 234, + "title": "Fix: Matchmaking UI stuck in searching state ", + "user": { + "login": "Kalpana-chavhan", + "id": 218618262, + "node_id": "U_kgDODQfZlg", + "avatar_url": "https://avatars.githubusercontent.com/u/218618262?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Kalpana-chavhan", + "html_url": "https://github.com/Kalpana-chavhan", + "followers_url": "https://api.github.com/users/Kalpana-chavhan/followers", + "following_url": "https://api.github.com/users/Kalpana-chavhan/following{/other_user}", + "gists_url": "https://api.github.com/users/Kalpana-chavhan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Kalpana-chavhan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kalpana-chavhan/subscriptions", + "organizations_url": "https://api.github.com/users/Kalpana-chavhan/orgs", + "repos_url": "https://api.github.com/users/Kalpana-chavhan/repos", + "events_url": "https://api.github.com/users/Kalpana-chavhan/events{/privacy}", + "received_events_url": "https://api.github.com/users/Kalpana-chavhan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-15T12:52:16Z", + "updated_at": "2026-02-28T07:48:18Z", + "closed_at": "2026-02-28T07:48:18Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/234", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/234", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/234.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/234.patch", + "merged_at": null + }, + "body": "\r\n#### closes #224 \r\n\r\n### PR description\r\nIf a user refreshes the matchmaking page while searching for a debate partner, the UI incorrectly continues to show the searching state and prevents the user from starting matchmaking again. solution for this is, Reset matchmaking state (isInPool, waitTime) on component mount, Ensure UI state is consistent after page refresh and Allow users to safely rejoin matchmaking\r\n\r\nThis PR Fixes a frontend issue where the matchmaking UI remains stuck in the \"Searching...\" state after a page refresh.\r\n\r\n---\r\n\r\n### Changes made\r\n\r\nFrontend-only fix in the Matchmaking page\r\nNo backend changes included\r\n\r\n---\r\n\r\n### Testing\r\n- Joined matchmaking\r\n- Refreshed the page\r\n- Verified searching state resets correctly\r\n- Confirmed user can start matchmaking again\r\n\r\n---\r\n\r\n### Impact\r\n\r\n- Improves user experience\r\n- Prevents users from being stuck indefinitely\r\n- Safe, minimal change\r\n\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Fixed matchmaking interface state not resetting properly on page refresh. Queue status and wait timer are now cleared when the page reloads, providing a clean starting state and preventing stale data display.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/234/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/234/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/233", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/233/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/233/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/233/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/233", + "id": 3817394087, + "node_id": "PR_kwDONYLDD869YCSa", + "number": 233, + "title": "Fix: Persist Debate vs Bot Outcomes Using Debate ID", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-15T12:45:35Z", + "updated_at": "2026-03-12T05:15:29Z", + "closed_at": "2026-03-12T05:15:29Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/233", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/233", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/233.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/233.patch", + "merged_at": null + }, + "body": "### What\r\nFixes a critical bug where Debate vs Bot outcomes were never persisted in MongoDB.\r\n\r\n### Why\r\n`UpdateDebateVsBotOutcome` attempted to update records using a non-existent `userId` field. \r\nAs a result, MongoDB updates silently matched zero documents, breaking outcome persistence, Elo updates, and analytics.\r\n\r\n### How\r\n- Refactored `UpdateDebateVsBotOutcome` to update by `debateId` (`_id`) instead of `userId`\r\n- Added ObjectID validation and error handling to prevent silent failures\r\n- Updated `JudgeRequest` and `JudgeDebate` to require and use `debateId`\r\n\r\n### Breaking Change ⚠️\r\nThe `/judge` endpoint now **requires `debateId`** in the request payload. \r\nFrontend must include this field or requests will fail with `400 Bad Request`.\r\n\r\n### Impact\r\n- Restores correct persistence of Debate vs Bot outcomes\r\n- Ensures deterministic and concurrency-safe updates\r\n- Fixes downstream Elo and analytics integrity issues\r\n\r\n### Files Changed\r\n- `backend/db/db.go`\r\n- `backend/controllers/debatevsbot_controller.go`\r\n\r\ncloses #228 \n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added implicit assumptions extraction that analyzes debates to identify hidden assumptions\n * New Assumptions view displays extracted assumptions grouped by debate sides with participant attribution\n\n* **Changes**\n * Updated password validation requirements from 8 to 6 characters minimum across signup, login, and password reset flows\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/233/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/233/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/232", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/232/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/232/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/232/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/232", + "id": 3817257066, + "node_id": "PR_kwDONYLDD869Xk61", + "number": 232, + "title": "Feat/assumption extraction and exposure", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-15T12:04:36Z", + "updated_at": "2026-03-12T05:15:28Z", + "closed_at": "2026-03-12T05:15:28Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/232", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/232", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/232.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/232.patch", + "merged_at": null + }, + "body": "## ✨ Assumption Extraction & Exposure + Transcript Aggregation Fix\r\n\r\n### Summary\r\nAdds a **post-debate Assumption Extraction** feature using **Gemini AI** to surface implicit assumptions made by debaters. \r\nAlso fixes a backend bug that prevented assumption loading for **saved transcripts**.\r\n\r\n---\r\n\r\n### What’s Included\r\n**Backend**\r\n- New `DebateAssumption` MongoDB model\r\n- AI service to extract & cache assumptions (generated once per debate)\r\n- New endpoint: `GET /debates/:debateId/assumptions`\r\n- Fixed transcript aggregation to support both:\r\n - Room IDs (string)\r\n - Saved transcript IDs (MongoDB ObjectID)\r\n\r\n**Frontend**\r\n- New `Assumptions` component with loading/error/empty states\r\n- Clear “AI-Generated Insights” labeling\r\n- Integrated into saved transcript view\r\n\r\n---\r\n\r\n### Bug Fix\r\n**Issue:** \r\nSaved transcripts failed with `failed to aggregate transcript: no transcript found`\r\n\r\n**Fix:** \r\nDetect ObjectID debate IDs and query `SavedDebateTranscript` before falling back to room ID lookup.\r\n\r\n---\r\n\r\n### Scope\r\n- ✅ Post-debate only\r\n- ✅ Text-only, read-only UI\r\n- ❌ No real-time processing\r\n- ❌ No debate or matchmaking changes\r\n\r\n---\r\n\r\n### Testing\r\n1. View any saved transcript \r\n2. Scroll to **Implicit Assumptions** \r\n3. Verify assumptions load correctly and errors are handled gracefully\r\n\r\n---\r\n\r\n**PR Type:** Feature\r\n**Status:** Ready for review ✅\r\ncloses #227 \n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added assumption analysis display in debate transcript views, showing implicit assumptions identified for both debate sides.\n\n* **Changes**\n * Reduced minimum password length requirement from 8 to 6 characters for sign-up, login, and password reset flows.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/232/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/232/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/231", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/231/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/231/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/231/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/231", + "id": 3814230570, + "node_id": "PR_kwDONYLDD869Nd2_", + "number": 231, + "title": "fix: Add dark mode and high contrast theme support to header components", + "user": { + "login": "kr1shnac", + "id": 215154755, + "node_id": "U_kgDODNMAQw", + "avatar_url": "https://avatars.githubusercontent.com/u/215154755?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kr1shnac", + "html_url": "https://github.com/kr1shnac", + "followers_url": "https://api.github.com/users/kr1shnac/followers", + "following_url": "https://api.github.com/users/kr1shnac/following{/other_user}", + "gists_url": "https://api.github.com/users/kr1shnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kr1shnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kr1shnac/subscriptions", + "organizations_url": "https://api.github.com/users/kr1shnac/orgs", + "repos_url": "https://api.github.com/users/kr1shnac/repos", + "events_url": "https://api.github.com/users/kr1shnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/kr1shnac/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-14T17:49:01Z", + "updated_at": "2026-02-25T14:49:20Z", + "closed_at": "2026-02-25T14:49:20Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/231", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/231", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/231.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/231.patch", + "merged_at": null + }, + "body": "## Problem\r\n\r\nThe mobile sidebar (hamburger menu), notification popover, and profile popover were not respecting the user's selected theme. When users switched to**Dark mode** or**High Contrast mode**, these components remained white/light, creating visual inconsistency and accessibility issues.\r\n\r\n### Before (Bug)\r\n- Mobile sidebar: Always white background regardless of theme\r\n- Notification popover: White background in dark mode\r\n- Profile popover: White background in dark mode\r\n\r\n## Solution\r\n\r\n### Demo Video: \r\nhttps://drive.google.com/file/d/1cij7AQ_JKWPeK-KLRPpkOAYctJJFjeGt/view?usp=sharing\r\n---\r\n\r\nReplaced all hardcoded Tailwind color classes with theme-aware CSS variable classes that automatically adapt to the current theme:\r\n\r\n| Hardcoded Class | Theme-Aware Class |\r\n|-----------------|-------------------|\r\n|`bg-white` |`bg-background` |\r\n|`border-gray-200` |`border-border` |\r\n|`text-gray-900` |`text-foreground` |\r\n|`text-gray-500/600` |`text-muted-foreground` |\r\n|`text-blue-600` |`text-primary` |\r\n|`text-red-600` |`text-destructive` |\r\n|`bg-gray-100` |`bg-muted` |\r\n|`hover:bg-gray-50` |`hover:bg-muted` |\r\n\r\n## Files Changed\r\n\r\n-**`frontend/src/components/Header.tsx`**\r\n- Mobile drawer/sidebar styling\r\n- Notification popover styling\r\n- Profile popover styling\r\n- Hamburger menu button\r\n- NavItem component\r\n\r\n-**`frontend/src/components/Sidebar.tsx`**\r\n- Desktop sidebar borders\r\n\r\n## Testing\r\n\r\nManually tested all three themes:\r\n- [x] Light mode - Components display correctly\r\n- [x] Dark mode - Components use dark backgrounds with light text\r\n- [x] High Contrast mode - Components use pure black background with high contrast text\r\n\r\n## Screenshots\r\n\r\n### Dark Mode - Mobile Sidebar\r\n| Before | After |\r\n|--------|-------|\r\n| \"beforeimg\" | \"updated\" |\r\n\r\n### High Contrast Mode - Mobile Sidebar\r\n| Before | After |\r\n|--------|-------|\r\n| \"beforeimg\" | \"updated\" |\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Notifications now refresh automatically every 60 seconds for real-time updates.\n\n* **Style**\n * Updated header and sidebar visual styling with new color scheme and improved UI components.\n * Enhanced notification badges, status indicators, and user panel appearance for better clarity.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "kr1shnac", + "id": 215154755, + "node_id": "U_kgDODNMAQw", + "avatar_url": "https://avatars.githubusercontent.com/u/215154755?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kr1shnac", + "html_url": "https://github.com/kr1shnac", + "followers_url": "https://api.github.com/users/kr1shnac/followers", + "following_url": "https://api.github.com/users/kr1shnac/following{/other_user}", + "gists_url": "https://api.github.com/users/kr1shnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kr1shnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kr1shnac/subscriptions", + "organizations_url": "https://api.github.com/users/kr1shnac/orgs", + "repos_url": "https://api.github.com/users/kr1shnac/repos", + "events_url": "https://api.github.com/users/kr1shnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/kr1shnac/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/231/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/231/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/230", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/230/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/230/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/230/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/230", + "id": 3813987343, + "node_id": "I_kwDONYLDD87jVNQP", + "number": 230, + "title": "Build Comprehensive Test Suite for Go Backend (Routes, WebSockets, & Core Functionality)", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-14T16:44:10Z", + "updated_at": "2026-01-25T10:26:10Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "The backend infrastructure currently relies partially on manual verification. To ensure architectural stability, regression prevention, and type safety across refactors, we require a formal automated testing strategy. This task involves implementing a multi-layered test suite covering strict unit testing for business logic, integration testing for HTTP endpoints, and concurrency testing for WebSocket streams.\n\n### Technical Implementation Plan\n\n#### 1. Test Environment & Infrastructure\n\n- **Isolation Strategy**: Implement specific test configuration loading that overrides production settings. Tests must execute against a dedicated, ephemeral database instance (e.g., Dockerized Postgres or an in-memory variant if applicable) to prevent data pollution.\n- **Database Fixtures**: specific utility functions are needed to seed the database with deterministic state before test suites run and perform `defer` cleanup or transaction rollbacks to maintain atomicity.\n- **Execution Tooling**: The suite should be fully executable via `go test ./... -v -race` to catch race conditions in concurrent goroutines, particularly within the WebSocket hub.\n\n#### 2. Service Layer Unit Testing\n\n- **Mocking Dependencies**: Adopt interface-based dependency injection for repositories. Use `testify/mock` or `gomock` to generate mocks for database interaction layers, decoupling service logic from the physical database.\n- **Table-Driven Tests**: Utilize Go's table-driven testing pattern for `AuthService` and `VotingService` to efficiently cover permutations of input validators, edge cases (boundary values), and error handling branches.\n- **Key Logic Coverage**:\n - **Elo Algorithm**: Verify mathematical correctness of rating adjustments in `MatchmakingService`.\n - **Token Claims**: Validate JWT payload generation and varying expiration scenarios in `AuthService`.\n\n#### 3. HTTP Integration Testing\n\n- **Testing Methodology**: Utilize `httptest.NewRecorder` and `httptest.NewRequest` to simulate incoming HTTP traffic against the `gin` router. Tests must assert against strict HTTP status codes (200, 201, 400, 401, 403, 500) and validate the structural integrity of JSON response bodies.\n- **Middleware Verification**: Assert that the Authentication Middleware correctly blocks unauthorized context propagation and returns 401/403 for invalid or expired tokens.\n- **Route Coverage**:\n - **Auth**: Validate payload validation rules for Login/Register payloads.\n - **Debate**: ensure proper state transitions (e.g., creating a debate returns the correct ID and initial status).\n - **Profile**: Confirm `PATCH` requests strictly adhere to partial update semantics.\n\n#### 4. WebSocket & Concurrency Testing\n\n- **Server Lifecycle**: Spin up a `httptest.NewServer` to permit real TCP connections for the WebSocket upgrades during tests.\n- **Client Simulation**: Use `gorilla/websocket` client dialer to establish connections. Assert the handshake upgrade process (101 Switching Protocols).\n- **Event Propagation**:\n - **Broadcast Accuracy**: Verify that a message sent by Client A is received by Client B in the same room via Go channels or `WaitGroup` synchronization.\n - **Race Detection**: Heavily stress test the `Hub` explicitly to identify deadlocks or race conditions during concurrent `Register` and `Unregister` events.\n\n--- \nI would genuinely like to work on this issue and like contributing with others also, from the reference of past few issues in this project, it should have a better testing mechanism to validate that backend work flawlessly. I appreciate if you assign me this issue. \n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/230/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/230/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/229", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/229/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/229/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/229/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/229", + "id": 3813201229, + "node_id": "PR_kwDONYLDD869J_RG", + "number": 229, + "title": "Bug/online matchmaking gets stuck in searching state", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-14T13:22:21Z", + "updated_at": "2026-03-12T05:15:28Z", + "closed_at": "2026-03-12T05:15:28Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/229", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/229", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/229.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/229.patch", + "merged_at": null + }, + "body": "## Summary\r\nFixes an issue where users could join online matchmaking but were never matched, leaving them stuck in the “Searching…” state even when compatible players were available.\r\n\r\n## Problem\r\n- Users successfully join the matchmaking queue\r\n- Multiple compatible users can be present\r\n- No debate room is created\r\n- No `room_created` / `match_found` WebSocket event is emitted\r\n- Users remain in the queue indefinitely\r\n\r\n## Root Cause\r\nMatchmaking logic spawned multiple concurrent goroutines (`findMatch`) for users in the queue. \r\nWhen compatible users joined simultaneously, these goroutines raced to remove the same users from the pool, causing matches to fail or never complete.\r\n\r\n## Solution\r\nReplaced per-user concurrent matching with a deterministic, single-pass global matchmaking algorithm:\r\n- Removed all concurrent `findMatch` goroutines\r\n- Added a periodic matchmaking worker (runs every 1s)\r\n- Matched users are removed atomically under a single mutex lock\r\n- Debate room creation and WebSocket events occur outside the critical section\r\n\r\n## Changes\r\n- Refactored `StartMatchmaking()` to stop spawning matchmaking goroutines\r\n- Rewrote `periodicMatchmaking()` to run a global matching pass\r\n- Added `processMatchingPairs()` for race-free pair selection\r\n- Removed unsafe `findMatch()` implementation\r\n\r\n## Screenshot\r\n\r\n\"Screenshot\r\n\"Screenshot\r\n\r\n## Result\r\n- Matches are created reliably within 1–2 seconds\r\n- Users are redirected automatically on match creation\r\n- No more stuck “Searching…” state\r\n- No breaking API changes\r\n\r\n## Files Changed\r\n- `services/matchmaking.go`\r\n\r\ncloses #203 \r\n\r\n\r\n\n## Summary by CodeRabbit\n\n* **Refactor**\n * Optimized matchmaking for faster, global matching cycles.\n\n* **Authentication**\n * Increased server-side minimum password length; client sign-up and reset flows now enforce and show password-length validation (login no minimum).\n\n* **Real-time / UI**\n * Questions include type and timestamps; added WebSocket status, last-event tracking, and spectator count for real-time UI updates.\n\n* **Chores**\n * Removed sample config files and cleared secret placeholders from example env.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/229/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/229/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/228", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/228/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/228/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/228/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/228", + "id": 3813049127, + "node_id": "I_kwDONYLDD87jRoMn", + "number": 228, + "title": "[Bug Report] Debate Outcome Not Persisted for Debate vs Bot", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-14T12:40:04Z", + "updated_at": "2026-02-28T08:02:51Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## 📌 Summary\nDebate outcomes for **Debate vs Bot** sessions are not being persisted in the database due to an identifier mismatch between the database schema and the update query. This causes silent failures where debate results (win/loss/draw) are never saved, breaking downstream logic such as Elo updates, analytics, and user performance tracking.\n\n---\n\n## 🧩 Affected Components\n- **Database Layer:** `backend/db/db.go`\n- **Controller:** `backend/controllers/debatevsbot_controller.go`\n- **Feature Area:** Debate vs Bot → Judging & Outcome Persistence\n\n---\n\n## 🔍 Root Cause Analysis\nThe database update function filters by `userId`, while the underlying MongoDB model stores `email`. The controller passes an email string to the update function, resulting in zero documents matched and no errors surfaced.\n\n---\n\nHowever:\n\n- The DebateVsBot MongoDB model does not store userId\n- It stores the user's email instead\n- The controller passes an email string to this function\n\n- This results in:\n\n - MongoDB update query matching zero documents\n - No error returned\n - Silent failure\n\n---\n\n## ❌ Expected Behavior\n\n- When a Debate vs Bot session is judged:\n- The corresponding debate record should be updated with the correct outcome\n- The update should target the correct debate document\n\n---\n\n## ✅ Actual Behavior\n\n- No document is matched\n- Debate outcome is never updated\n- Application behaves as if the update succeeded\n\n---\n\n## 🧪 Steps to Reproduce\n\n- Start a Debate vs Bot session\n- Complete the debate and trigger judging\n- Check the debate_vs_bot collection in MongoDB\n- Observe that the outcome field remains unchanged or missing\n\n---\n\n## 💥 Impact\n\n- Breaks debate result persistence\n- Corrupts user statistics\n- Makes Elo calculation and performance analytics inaccurate\n- Silent failure makes debugging difficult\n\nI am willing to submit a PR.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/228/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/228/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/227", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/227/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/227/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/227/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/227", + "id": 3812856071, + "node_id": "I_kwDONYLDD87jQ5EH", + "number": 227, + "title": "[Feature Request] Assumption Extraction & Exposure in Debates", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-14T11:46:04Z", + "updated_at": "2026-02-28T08:03:50Z", + "closed_at": "2026-02-28T08:03:50Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 📌 Summary\nIntroduce an **AI-powered Assumption Extraction** feature that automatically identifies and exposes **implicit assumptions** made by debaters during or after a debate.\n\nThis feature aims to promote **deeper critical thinking**, helping users recognize unstated premises that often shape arguments without being explicitly acknowledged.\n\n---\n\n### 🎯 Motivation\nIn many debates, arguments rely on **hidden or implicit assumptions** (e.g., value judgments, causal beliefs, generalizations). Making these assumptions visible would:\n\n- Improve users’ critical thinking skills\n- Encourage epistemic clarity and fairness\n- Align strongly with DebateAI’s educational and analytical goals\n- Differentiate DebateAI from standard chat-based debate platforms\n\n---\n\n### 🧠 Feature Description\nAfter a debate (or per debate round), the system should:\n\n1. Analyze the debate transcript using an AI model\n2. Extract **implicit assumptions** for each side\n3. Present them in a clear, neutral, and structured manner\n\nExample output:\n- *“This argument assumes that economic growth always leads to social well-being.”*\n- *“This claim assumes that short-term effects are more important than long-term consequences.”*\n\n---\n\n### ✅ Expected Behavior\n- Assumptions are:\n - Clearly phrased\n - Non-judgmental\n - Attributed to a specific debater or side\n- Displayed in a dedicated **“Assumptions”** section in the debate summary or analysis view\n- Accessible after the debate concludes\n\n---\n\n### ❌ Current Behavior\n- Users can view debate transcripts and messages\n- Implicit assumptions are not identified or surfaced\n- Users must manually infer hidden premises\n\n---\n\n### 💡 Suggested Implementation (High-Level)\n- **Backend**\n - Aggregate debate transcript\n - Send transcript to an LLM with a structured prompt to extract assumptions\n - Store extracted assumptions linked to the debate ID\n\n- **Frontend**\n - Add an “Assumptions” panel or tab in the post-debate view\n - Group assumptions by debater or side\n\nI am willing to submit a PR.", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/227/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/227/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/226", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/226/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/226/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/226/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/226", + "id": 3810445289, + "node_id": "PR_kwDONYLDD869A7Dt", + "number": 226, + "title": "fix: responsive layout overflow on StartDebate & enhance Button component flexibility", + "user": { + "login": "kr1shnac", + "id": 215154755, + "node_id": "U_kgDODNMAQw", + "avatar_url": "https://avatars.githubusercontent.com/u/215154755?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kr1shnac", + "html_url": "https://github.com/kr1shnac", + "followers_url": "https://api.github.com/users/kr1shnac/followers", + "following_url": "https://api.github.com/users/kr1shnac/following{/other_user}", + "gists_url": "https://api.github.com/users/kr1shnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kr1shnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kr1shnac/subscriptions", + "organizations_url": "https://api.github.com/users/kr1shnac/orgs", + "repos_url": "https://api.github.com/users/kr1shnac/repos", + "events_url": "https://api.github.com/users/kr1shnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/kr1shnac/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-13T20:17:42Z", + "updated_at": "2026-02-25T14:49:20Z", + "closed_at": "2026-02-25T14:49:20Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/226", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/226", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/226.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/226.patch", + "merged_at": null + }, + "body": "## 🎥 Demo Video\r\nhttps://drive.google.com/drive/folders/1QxEfNqkPAfecDoA6-fF_DuXZWTeAdVy4?usp=sharing\r\n\r\n---\r\n\r\n## Problem Overview\r\nThis PR fixes responsive layout issues that caused content overflow and unwanted scrolling on both:\r\n\r\n- Login (Home) page\r\n- Authenticated StartDebate page\r\n\r\nThe goal was to ensure all content fits within the viewport height across devices, without breaking layouts or cutting off UI elements.\r\n\r\n---\r\n### 1️⃣ Home Page (Login Page)\r\n\r\n\"image\"\r\n\r\n**Before**\r\n- Layout overflowed at tablet width (768px range)\r\n- Image and buttons required vertical scrolling\r\n- Text was cut off on smaller screens\r\n\r\n\r\n**After**\r\n- Content fits fully within the viewport height\r\n- Image constrained using `max-h-[45vh]`\r\n- Layout stacks on mobile/tablet and switches to side-by-side on desktop\r\n\r\n---\r\n\r\n### 2️⃣ StartDebate Page (Authenticated Home)\r\n\r\n**Before**\r\n- Example : On iPad Mini (768×1024) with sidebar visible:\r\n - Buttons overflowed off the right edge\r\n - Background was cut off\r\n - Layout broke due to limited horizontal space\r\n\r\n**After**\r\n- Layout remains stacked at tablet sizes to accommodate the 256px sidebar\r\n- Uses `xl:` breakpoint for desktop layouts\r\n- Content fits within the viewport without scrolling\r\n\r\n---\r\n\r\n### 3️⃣ Button Component\r\n\r\n**Before**\r\n- Fixed heights (`h-9`, `h-10`) caused text overflow when wrapping\r\n\r\n**After**\r\n- Replaced fixed heights with minimum heights:\r\n - `min-h-9`\r\n - `min-h-10`\r\n- Buttons now expand dynamically based on content\r\n\r\n---\r\n\r\n## Files Changed\r\n\r\n```text\r\nfrontend/src/Pages/Home.tsx\r\n - Viewport-constrained layout using h-screen\r\n - Responsive flexbox structure\r\n - Compact, responsive button styling\r\n\r\nfrontend/src/Pages/StartDebate.tsx\r\n - Viewport-constrained layout\r\n - Uses xl: breakpoint to account for sidebar width\r\n\r\nfrontend/src/components/ui/button.tsx\r\n - Replaced fixed heights with minimum heights\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Style**\n * Redesigned Home and StartDebate page layouts with responsive two-column designs that adapt to different screen sizes, optimizing image placement and content arrangement.\n * Improved image display with better aspect ratio preservation and height management.\n * Refined button sizing and styling for consistency across the application.\n * Enhanced typography hierarchy and spacing for improved readability on all devices.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "kr1shnac", + "id": 215154755, + "node_id": "U_kgDODNMAQw", + "avatar_url": "https://avatars.githubusercontent.com/u/215154755?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kr1shnac", + "html_url": "https://github.com/kr1shnac", + "followers_url": "https://api.github.com/users/kr1shnac/followers", + "following_url": "https://api.github.com/users/kr1shnac/following{/other_user}", + "gists_url": "https://api.github.com/users/kr1shnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kr1shnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kr1shnac/subscriptions", + "organizations_url": "https://api.github.com/users/kr1shnac/orgs", + "repos_url": "https://api.github.com/users/kr1shnac/repos", + "events_url": "https://api.github.com/users/kr1shnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/kr1shnac/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/226/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/226/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/225", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/225/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/225/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/225/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/225", + "id": 3810224125, + "node_id": "PR_kwDONYLDD869AKP-", + "number": 225, + "title": "Fix matchmaking UI stuck in searching state after page refresh", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-13T19:20:39Z", + "updated_at": "2026-02-28T08:02:16Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/225", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/225", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/225.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/225.patch", + "merged_at": null + }, + "body": "Summary\r\nFixes a frontend issue where the matchmaking UI remains stuck in the\r\n\"Searching...\" state after a page refresh.\r\n\r\nProblem\r\nIf a user refreshes the matchmaking page while searching for a debate partner,\r\nthe UI incorrectly continues to show the searching state and prevents the user\r\nfrom starting matchmaking again.\r\n\r\n Solution\r\n Reset matchmaking state (`isInPool`, `waitTime`) on component mount\r\n Ensure UI state is consistent after page refresh\r\n Allow users to safely rejoin matchmaking\r\n\r\nChanges\r\nFrontend-only fix in the Matchmaking page\r\nNo backend changes included\r\n\r\n Testing\r\nJoined matchmaking\r\nRefreshed the page\r\nVerified searching state resets correctly\r\nConfirmed user can start matchmaking again\r\n\r\nImpact\r\nImproves user experience\r\nPrevents users from being stuck indefinitely\r\nSafe, minimal change\r\n\r\nclose #224 \r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Fixed matchmaking interface state to properly reset on page load, ensuring a clean UI experience after browser refresh.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/225/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/225/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/224", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/224/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/224/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/224/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/224", + "id": 3810193518, + "node_id": "I_kwDONYLDD87jGvBu", + "number": 224, + "title": "Matchmaking UI remains stuck in “Searching…” state after page refresh", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-13T19:13:49Z", + "updated_at": "2026-01-13T19:13:49Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "When a user joins online matchmaking, the UI correctly enters the “Searching…” state.\nHowever, if the user refreshes the page while searching, the UI remains stuck in the “Searching…” state even though the session has been refreshed.\nThis prevents the user from rejoining matchmaking unless they navigate away or reload multiple times.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/224/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/224/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/223", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/223/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/223/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/223/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/223", + "id": 3810138340, + "node_id": "PR_kwDONYLDD868_31W", + "number": 223, + "title": "Fix: Sign Up link redirects to login page", + "user": { + "login": "anshika-ux", + "id": 183587908, + "node_id": "U_kgDOCvFURA", + "avatar_url": "https://avatars.githubusercontent.com/u/183587908?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/anshika-ux", + "html_url": "https://github.com/anshika-ux", + "followers_url": "https://api.github.com/users/anshika-ux/followers", + "following_url": "https://api.github.com/users/anshika-ux/following{/other_user}", + "gists_url": "https://api.github.com/users/anshika-ux/gists{/gist_id}", + "starred_url": "https://api.github.com/users/anshika-ux/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/anshika-ux/subscriptions", + "organizations_url": "https://api.github.com/users/anshika-ux/orgs", + "repos_url": "https://api.github.com/users/anshika-ux/repos", + "events_url": "https://api.github.com/users/anshika-ux/events{/privacy}", + "received_events_url": "https://api.github.com/users/anshika-ux/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-13T18:59:54Z", + "updated_at": "2026-01-14T04:31:16Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/223", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/223", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/223.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/223.patch", + "merged_at": null + }, + "body": "Fixes #221 \r\n\r\n## Description\r\nThis PR fixes a navigation bug where clicking the \"Sign Up\" button redirects users to the login page instead of displaying the signup form. Users had to click \"Sign Up\" again to see the signup form.\r\n\r\nThe issue was caused by the `authMode` state not respecting the `useLocation()` state passed during navigation.\r\n\r\n## Changes Made\r\n- Modified `Authentication.tsx` to initialize `authMode` with `location.state?.isSignUp` \r\n- This ensures the signup form displays immediately when navigated from the Sign Up button\r\n- No longer defaults to login mode on every auth page load\r\n\r\n## Video Proof\r\n\r\nhttps://github.com/user-attachments/assets/70a5be5d-84f8-4089-91b5-fd6a3110044b\r\n\r\n\r\n## How to Test\r\n1. Pull this branch locally\r\n2. Start the frontend: `npm run dev`\r\n3. Click the \"Sign Up\" button on the home page\r\n4. Verify the signup form displays immediately\r\n5. Try switching between Sign In and Sign Up using the top-right button\r\n6. Verify both forms load correctly without page redirects\r\n\r\n## Checklist\r\n- [x] My code follows the code style of this project\r\n- [x] I have performed a self-review of my own code\r\n- [x] I have tested this on desktop and mobile viewports\r\n- [x] The fix resolves the reported issue\r\n- [x] No breaking changes introduced\r\n\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n* **New Features**\r\n * The authentication page now intelligently routes users to either the signup or login view based on their navigation context, providing a more seamless onboarding experience.\r\n\r\n✏️ Tip: You can customize this high-level summary in your review settings.\r\n\r\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/223/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/223/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/222", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/222/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/222/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/222/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/222", + "id": 3810034772, + "node_id": "PR_kwDONYLDD868_h3P", + "number": 222, + "title": "docs: add OAuth and SMTP setup instructions", + "user": { + "login": "rushikesh249", + "id": 221011297, + "node_id": "U_kgDODSxdYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/221011297?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rushikesh249", + "html_url": "https://github.com/rushikesh249", + "followers_url": "https://api.github.com/users/rushikesh249/followers", + "following_url": "https://api.github.com/users/rushikesh249/following{/other_user}", + "gists_url": "https://api.github.com/users/rushikesh249/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rushikesh249/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rushikesh249/subscriptions", + "organizations_url": "https://api.github.com/users/rushikesh249/orgs", + "repos_url": "https://api.github.com/users/rushikesh249/repos", + "events_url": "https://api.github.com/users/rushikesh249/events{/privacy}", + "received_events_url": "https://api.github.com/users/rushikesh249/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-13T18:29:12Z", + "updated_at": "2026-01-19T15:39:04Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/222", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/222", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/222.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/222.patch", + "merged_at": null + }, + "body": "### Summary\r\nThis PR improves onboarding documentation by adding missing setup steps that were causing authentication and email verification issues.\r\n\r\n### Changes\r\n- Added **Google OAuth Setup (Local Development)** section:\r\n - OAuth Client ID creation steps\r\n - Correct Authorized JavaScript Origins\r\n - Troubleshooting guidance\r\n- Added **Email Verification Setup (Gmail SMTP App Password)** section:\r\n - App password steps\r\n - SMTP config snippet\r\n - Security note (do not commit credentials)\r\n- Fixed frontend `.env` documentation:\r\n - Removed quotes from `VITE_BASE_URL` and `VITE_GOOGLE_CLIENT_ID`\r\n - Added note to restart frontend after `.env` changes\r\n\r\n### Motivation\r\nReduces contributor onboarding friction and prevents recurring errors like:\r\n- `401 invalid_client`\r\n- `origin is not allowed`\r\n- `535 5.7.8 Username and Password not accepted`\r\n\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n* **Documentation**\r\n * Clarified frontend env var formatting (no quotes) and added restart reminder.\r\n * Consolidated env guidance into Frontend Configuration.\r\n * Added Google OAuth (local dev) setup with authorized origins/redirect guidance.\r\n * Added Gmail SMTP App Password workflow with a sample SMTP config for email verification.\r\n * Reinforced never committing credentials and expanded contribution/process guidance.\r\n * Fixed license encoding display (MIT ©).\r\n\r\n✏️ Tip: You can customize this high-level summary in your review settings.\r\n \r\n\r\nFixes #211\r\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/222/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/222/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/221", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/221/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/221/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/221/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/221", + "id": 3810015699, + "node_id": "I_kwDONYLDD87jGDnT", + "number": 221, + "title": "Bug: Sign Up Button Redirects to Login Page", + "user": { + "login": "anshika-ux", + "id": 183587908, + "node_id": "U_kgDOCvFURA", + "avatar_url": "https://avatars.githubusercontent.com/u/183587908?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/anshika-ux", + "html_url": "https://github.com/anshika-ux", + "followers_url": "https://api.github.com/users/anshika-ux/followers", + "following_url": "https://api.github.com/users/anshika-ux/following{/other_user}", + "gists_url": "https://api.github.com/users/anshika-ux/gists{/gist_id}", + "starred_url": "https://api.github.com/users/anshika-ux/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/anshika-ux/subscriptions", + "organizations_url": "https://api.github.com/users/anshika-ux/orgs", + "repos_url": "https://api.github.com/users/anshika-ux/repos", + "events_url": "https://api.github.com/users/anshika-ux/events{/privacy}", + "received_events_url": "https://api.github.com/users/anshika-ux/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-13T18:23:39Z", + "updated_at": "2026-01-13T18:23:39Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Description\nClicking the \"Sign Up\" button on the home page incorrectly redirects to the login page instead of showing the signup form. Users must manually click \"Sign Up\" again to access the signup form.\n\n### Steps to Reproduce\n1. Navigate to home page\n2. Click \"Sign Up\" button\n3. Observe result\n\n### Expected Behavior\nUser should be directed to the signup form immediately.\n\n### Actual Behavior\nUser is directed to the login page. Must click \"Sign Up\" button again to reach signup form.\n\n### Root Cause\n`Authentication.tsx` doesn't read the `isSignUp` navigation state passed from the home page. It always initializes in 'login' mode.\n\n### Video Proof\n\nhttps://github.com/user-attachments/assets/b483e0f2-6ab2-4cfa-b776-f24c90730549\n\n### Solution\nRead `location.state?.isSignUp` from React Router to initialize authMode correctly:\n```tsx\nconst location = useLocation();\nconst [authMode, setAuthMode] = useState(location.state?.isSignUp ? 'signup' : 'login');", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/221/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/221/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/220", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/220/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/220/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/220/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/220", + "id": 3809413206, + "node_id": "I_kwDONYLDD87jDwhW", + "number": 220, + "title": "[Feature Proposal] Explainable Score Analysis System", + "user": { + "login": "Kalpana-chavhan", + "id": 218618262, + "node_id": "U_kgDODQfZlg", + "avatar_url": "https://avatars.githubusercontent.com/u/218618262?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Kalpana-chavhan", + "html_url": "https://github.com/Kalpana-chavhan", + "followers_url": "https://api.github.com/users/Kalpana-chavhan/followers", + "following_url": "https://api.github.com/users/Kalpana-chavhan/following{/other_user}", + "gists_url": "https://api.github.com/users/Kalpana-chavhan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Kalpana-chavhan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kalpana-chavhan/subscriptions", + "organizations_url": "https://api.github.com/users/Kalpana-chavhan/orgs", + "repos_url": "https://api.github.com/users/Kalpana-chavhan/repos", + "events_url": "https://api.github.com/users/Kalpana-chavhan/events{/privacy}", + "received_events_url": "https://api.github.com/users/Kalpana-chavhan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-13T15:36:12Z", + "updated_at": "2026-01-15T14:10:02Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is your feature request related to a problem?\n\nYes. Currently, users receive a final score/rating at the conclusion of a debate, but there is a lack of transparency regarding the \"why\" behind the numbers. This \"Black Box\" scoring makes it difficult for debaters to identify specific areas for improvement, such as whether they struggled with logical consistency, oratorical delivery, or rebuttal effectiveness.\n\n---\n\n### Description of the Proposed Feature\n\nThe Explainable Score Analysis (ESA) system aims to decompose the aggregate score into granular, interpretable components. \nThis feature will provide users with a detailed post-match report that balances quantitative data with qualitative insights.\n\n---\n\n### Key Components:\n\n- Categorical Breakdown: Scores divided into specific pillars (e.g., Argument Strength, Evidence Quality, Rebuttal Efficiency, and Delivery).\n- Sentiment/Tone Analysis: Feedback on whether the user's tone was appropriate for the debate context.\n- Critical \"Turning Points\": Identifying specific exchanges in the transcript where the user gained or lost the lead.\n- Actionable Coaching: 2–3 specific \"Next Steps\" generated by the AI based on the weaknesses identified.\n\n---\n\n### User Impact\n\n- Educational Growth: Users can target specific skills (e.g., \"I need to work on my rebuttals\").\n- Trust & Transparency: Users are less likely to feel \"cheated\" by an AI judge if they can see the logic behind the deduction.\n- Engagement: Detailed feedback loops encourage users to return and try to improve specific sub-scores.\n\n---\n\n### Proposed Implementation Ideas\n\n- Backend: Update the LLM prompt instructions to return a structured JSON object containing both the total score and a breakdown by criteria.\n- Frontend: Introduce a \"Score Summary Card\" and a \"Deep Dive\" tab in the post-debate UI.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/220/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/220/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/219", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/219/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/219/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/219/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/219", + "id": 3809377665, + "node_id": "PR_kwDONYLDD8689WEK", + "number": 219, + "title": "Improve Frontend of Login Page", + "user": { + "login": "ankitkr104", + "id": 179861827, + "node_id": "U_kgDOCrh5Qw", + "avatar_url": "https://avatars.githubusercontent.com/u/179861827?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankitkr104", + "html_url": "https://github.com/ankitkr104", + "followers_url": "https://api.github.com/users/ankitkr104/followers", + "following_url": "https://api.github.com/users/ankitkr104/following{/other_user}", + "gists_url": "https://api.github.com/users/ankitkr104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankitkr104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankitkr104/subscriptions", + "organizations_url": "https://api.github.com/users/ankitkr104/orgs", + "repos_url": "https://api.github.com/users/ankitkr104/repos", + "events_url": "https://api.github.com/users/ankitkr104/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankitkr104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-13T15:28:17Z", + "updated_at": "2026-01-13T15:30:58Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/219", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/219", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/219.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/219.patch", + "merged_at": null + }, + "body": " **Description**\r\n\r\nThis PR improves the UI/UX of the Login page to provide a cleaner,\r\nmore readable, and modern first-time user experience, while keeping\r\nall existing authentication logic and functionality unchanged.\r\n\r\n **UI Improvements**\r\n- Increased text size and improved typography for better readability\r\n- Clear visual hierarchy (heading → input fields → CTA)\r\n- Improved spacing and alignment for a cleaner layout\r\n- More prominent login button with better hover states\r\n- Responsive adjustments for both mobile and desktop screens\r\n\r\n **Scope**\r\n✔ Frontend UI only \r\n✖ No backend or authentication changes \r\n✖ No new features added \r\n\r\n## **Screenshots**\r\n\"Screenshot\r\n\r\n\r\n## Related Issue\r\nFixes #210\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Style**\n * Redesigned authentication page with new branded \"Debate Ai\" left panel and cover image\n * Enhanced visual hierarchy with larger, shadowed headings for login and sign-up forms\n * Improved spacing, margins, and alignment throughout authentication interface\n * Increased text sizing for error messages and input labels for better readability\n * Adjusted default authentication mode to sign-up\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/219/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/219/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/218", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/218/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/218/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/218/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/218", + "id": 3808280777, + "node_id": "PR_kwDONYLDD8685oUA", + "number": 218, + "title": "feat: implement toast notifications for enhanced user feedback", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-13T10:48:26Z", + "updated_at": "2026-06-08T10:37:46Z", + "closed_at": "2026-06-08T10:37:46Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/218", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/218", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/218.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/218.patch", + "merged_at": null + }, + "body": "# Issue #206\r\n\r\n### Description\r\nThis PR integrates a robust toast notification system to enhance the user experience by providing clear, non-blocking feedback for user actions. Instead of failing silently or relying on intrusive browser alerts, the application now utilizes a standardized Toast component to display success, error, and informational messages.\r\n\r\n### Changes Made\r\n- **Global Integration:**\r\n - configured the global `` component in the root layout.\r\n - Implemented the `use-toast` hook for dispatching notifications.\r\n\r\n- **Authentication Flows (`forms.tsx`):**\r\n - **Login/Sign-up:** Users now receive immediate visual feedback upon successful authentication or failure.\r\n - **Password Reset:** Added confirmation toasts for reset email requests.\r\n\r\n- **Profile Management (`Profile.tsx`):**\r\n - **Updates:** Profile data updates and avatar changes now trigger success toasts.\r\n - **Error Handling:** Replaced silent console logs and basic error states with destructive toasts to ensure users are aware when data fetching or saving fails.\r\n\r\n### Type of Change\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [x] Refactor (changing code structure without changing functionality)\r\n\r\n### Checklist\r\n- [x] Toast notifications appear correctly for both success and error states.\r\n- [x] Toasts are accessible and do not block user interaction.\r\n- [x] My code follows the style guidelines of this project.\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Introduced toast notification system for consistent error messaging and user feedback across authentication and form submission flows.\n\n* **Improvements**\n * Added password length validation to the login form.\n * Migrated error handling in authentication and profile management to use toast-based notifications for improved user experience.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/218/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/218/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/217", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/217/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/217/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/217/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/217", + "id": 3807626301, + "node_id": "PR_kwDONYLDD8683ezp", + "number": 217, + "title": "Fix profile page responsiveness issue on smaller screens (#216)", + "user": { + "login": "Shrijan125", + "id": 123628230, + "node_id": "U_kgDOB15qxg", + "avatar_url": "https://avatars.githubusercontent.com/u/123628230?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shrijan125", + "html_url": "https://github.com/Shrijan125", + "followers_url": "https://api.github.com/users/Shrijan125/followers", + "following_url": "https://api.github.com/users/Shrijan125/following{/other_user}", + "gists_url": "https://api.github.com/users/Shrijan125/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shrijan125/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shrijan125/subscriptions", + "organizations_url": "https://api.github.com/users/Shrijan125/orgs", + "repos_url": "https://api.github.com/users/Shrijan125/repos", + "events_url": "https://api.github.com/users/Shrijan125/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shrijan125/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-13T07:59:09Z", + "updated_at": "2026-01-13T08:00:46Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/217", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/217", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/217.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/217.patch", + "merged_at": null + }, + "body": "### Description\r\nThis PR fixes responsiveness issues on the profile page where the user details portion was getting clipped making components inaccessible for small devices.\r\n\r\nThe changes ensure proper text truncation and responsiveness.\r\n\r\n### Related Issue\r\nCloses #216\r\n\r\n### Changes Made\r\n- Fixed header text truncation inside flex container\r\n- Prevented overflow on smaller screens\r\n- Improved responsive behavior using Tailwind utilities\r\n\r\n### Loom Demo Video\r\nhttps://www.loom.com/share/b375bc31bf924b43b748f35df5b78ffd\n\n\n\n## Summary by CodeRabbit\n\n* **Style**\n * Refined profile page responsive layout for improved viewing on different screen sizes\n * Adjusted sidebar width to scale better from medium to extra-large displays\n * Added automatic scrolling for profile sidebar content on medium screens and above\n * Optimized content grid layouts to display in two-column format on extra-large screens for better space utilization\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/217/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/217/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/216", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/216/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/216/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/216/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/216", + "id": 3807242510, + "node_id": "I_kwDONYLDD87i7ekO", + "number": 216, + "title": "Profile page is not responsive on smaller screen sizes", + "user": { + "login": "Shrijan125", + "id": 123628230, + "node_id": "U_kgDOB15qxg", + "avatar_url": "https://avatars.githubusercontent.com/u/123628230?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Shrijan125", + "html_url": "https://github.com/Shrijan125", + "followers_url": "https://api.github.com/users/Shrijan125/followers", + "following_url": "https://api.github.com/users/Shrijan125/following{/other_user}", + "gists_url": "https://api.github.com/users/Shrijan125/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Shrijan125/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shrijan125/subscriptions", + "organizations_url": "https://api.github.com/users/Shrijan125/orgs", + "repos_url": "https://api.github.com/users/Shrijan125/repos", + "events_url": "https://api.github.com/users/Shrijan125/events{/privacy}", + "received_events_url": "https://api.github.com/users/Shrijan125/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-13T05:53:53Z", + "updated_at": "2026-01-27T02:44:41Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Description\nThe profile page layout breaks on smaller screen sizes (mobile and tablet).\nSome components overflow the viewport and spacing does not adapt properly.\n\n### Affected Screen Sizes:\n- Mobile devices\n- Tablet view (e.g. iPad Mini – 768px width)\n\n### Expected Behavior\nThe profile page should be fully responsive across mobile, tablet, and desktop screens.\n\n### Current Behavior\n- Profile does not adapt according to devices\n- Making components inaccessible\n\n### Proposed Solution\nMake the profile page responsive by updating Tailwind CSS classnames using\nresponsive utilities (sm, md, lg breakpoints).\n\n### Screenshots\n\"Image\"\n\"Image\"", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/216/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/216/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/215", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/215/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/215/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/215/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/215", + "id": 3806583403, + "node_id": "I_kwDONYLDD87i49pr", + "number": 215, + "title": "Blank screen after bot debate completion and duplicate judge API calls", + "user": { + "login": "sawarn24", + "id": 150719088, + "node_id": "U_kgDOCPvKcA", + "avatar_url": "https://avatars.githubusercontent.com/u/150719088?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sawarn24", + "html_url": "https://github.com/sawarn24", + "followers_url": "https://api.github.com/users/sawarn24/followers", + "following_url": "https://api.github.com/users/sawarn24/following{/other_user}", + "gists_url": "https://api.github.com/users/sawarn24/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sawarn24/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sawarn24/subscriptions", + "organizations_url": "https://api.github.com/users/sawarn24/orgs", + "repos_url": "https://api.github.com/users/sawarn24/repos", + "events_url": "https://api.github.com/users/sawarn24/events{/privacy}", + "received_events_url": "https://api.github.com/users/sawarn24/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-13T00:46:12Z", + "updated_at": "2026-01-13T00:49:06Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": " **Description**\n After completing a debate against a bot, users experience two critical issues:\n The judgment popup crashes with a ReferenceError, leaving users on a blank screen\n The judge endpoint is called twice, wasting API quota and causing potential race conditions\n\n\n**Steps** **to** **Reproduce**\n\n**Issue 1: Blank Screen After Debate**\n : Start a bot debate (any difficulty level)\n : Complete all debate phases (opening statement, cross-examination, closing)\n : Wait for judgment to complete\n : Observe that the judgment popup crashes\n : User is left on a blank screen with no way to navigate back\n\n**Issue 2: Duplicate Judge Calls**\n : Start and complete a bot debate\n : Open browser DevTools → Network tab\n : Observe two POST requests to /vsbot/judge endpoint\n : Check backend logs - two separate judgment processes run\n\n\n**Expected Behavior**\n\nAfter debate completion:\n : Judgment popup displays with scores and analysis\n : User can view results\n : Clicking \"Close\" navigates back to home page\n\nJudge API calls:\n : Judge endpoint called exactly once per debate\n : No duplicate processing or API quota waste\n\n**Actual Behavior**\n\n**Blank screen issue:**\n : Browser console shows: Uncaught ReferenceError: botDesc is not defined at JudgementPopup.tsx:184\n : React error boundary triggered\n : User stuck on blank screen\n\n\n**Duplicate calls:**\n : Backend logs show two sequential judge calls ~10 seconds apart\n : Double API usage (problematic with rate-limited APIs like Gemini\n ```\n[GIN] 2026/01/12 - 03:32:58 | OPTIONS \"/vsbot/judge\"\n[GIN] 2026/01/12 - 03:32:59 | POST \"/vsbot/judge\" ← First call\n[GIN] 2026/01/12 - 03:33:09 | POST \"/vsbot/judge\" ← Duplicate! (10s later)\n ```\n**Root Cause Analysis**\n Issue 1: Missing Prop Destructuring\n File: frontend/src/components/JudgementPopup.tsx\n\n **Problem**\n\n- `botDesc` is defined in `JudgmentPopupProps` (line 77)\n- But **not destructured** in component parameters (line 107)\n- Line 184 tries to access an undefined variable\n\n\n Issue 2: No Guard Against Duplicate Calls\n File: frontend/src/Pages/DebateRoom.tsx\n\n **Problem**\n - judgeDebateResult function (line 577) has no guard against concurrent calls\n - React's re-render or state updates can trigger multiple executions\n - No ref to track if judging is already in progress\n\n**Proposed Solution**\n**Fix 1: Add Missing Prop Destructuring**\nFile: `frontend/src/components/JudgementPopup.tsx` \n ```\n const JudgmentPopup: React.FC = ({\n judgment,\n userAvatar,\n botAvatar,\n botName,\n userStance,\n botStance,\n botDesc, // ADD THIS\n forRole,\n againstRole,\n localRole = null,\n localDisplayName,\n localAvatarUrl,\n opponentDisplayName,\n opponentAvatarUrl,\n ratingSummary,\n onClose={() => {\n setShowJudgment(false);\n navigate('/'); // ← ADD THIS\n }}\n```\n**Fix 2: Add Navigation After Popup Close**\nFile: `frontend/src/Pages/DebateRoom.tsx`\n```\n JudgmentPopup\n judgment={judgmentData}\n userAvatar={userAvatar}\n botAvatar={bot.avatar}\n botName={debateData.botName}\n userStance={state.userStance}\n botStance={state.botStance}\n botDesc={bot.desc}\n onClose={() => {\n setShowJudgment(false);\n navigate('/'); // ← ADD THIS\n }}\n```\n\n**Fix 3: Prevent Duplicate Judge Calls**\nFile: `frontend/src/Pages/DebateRoom.tsx `\n**Add ref**\n```\nconst judgingRef = useRef(false);\n```\n\n**Wrap judgeDebateResult function**\n```\nconst judgeDebateResult = async (messages: Message[]) => {\n // Prevent duplicate calls\n if (judgingRef.current) {\n console.log(\" Judging already in progress, skipping duplicate call\");\n return;\n }\n \n judgingRef.current = true;\n \n try {\n console.log(\"Starting judgment with messages:\", messages);\n const { result } = await judgeDebate({\n history: messages,\n userId: debateData.userId,\n });\n // ... rest of existing code\n } catch (error) {\n // ... error handling\n } finally {\n judgingRef.current = false; // ← ADD THIS\n }\n};\n```\nAfter implementing fixes, verify:\n- [ ] Complete a bot debate successfully\n- [ ] Judgment popup displays without errors\n- [ ] All scores and analysis show correctly\n- [ ] Clicking \"Close\" navigates to home page\n- [ ] Only ONE POST to `/vsbot/judge` in Network tab\n- [ ] Backend logs show single judgment process\n- [ ] No console errors in browser DevTools\n- [ ] Works with different bot difficulty levels\n\n@bhavik-mangla \nI have identified and fixed the root causes for both issues, including the judgment popup crash and the duplicate judge API calls.\nI would like to raise a Pull Request with the implemented fixes for review.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/215/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/215/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/214", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/214/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/214/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/214/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/214", + "id": 3805807513, + "node_id": "I_kwDONYLDD87i2AOZ", + "number": 214, + "title": "Issue: Persistent Error Notification in Auth Flow", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-12T20:02:03Z", + "updated_at": "2026-01-17T09:32:30Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "**Description**\nThe authentication error notification (e.g., \"Login failed\") persists in the UI even after the user has switched context. For example, if a user fails to log in and then navigates to the Sign Up or OTP Verification screens, the red \"Login failed\" error message remains visible. This creates a confusing user experience, as the error state does not reflect the current active form.\n\n\"Image\"\n\n**Proposed Changes**\n\n#### 1. Global State Management (`authContext.tsx`)\n* **Expose Reset Action:** Add a `clearError` function to the `AuthContext` interface and provider.\n * *Goal:* Provide a centralized way for components to reset the global `error` string to `null` without triggering a full page reload or logout.\n\n#### 2. Component Logic (`Authentication.tsx`)\n* **Trigger Reset on Navigation:** Update the `toggleAuthMode`, `startOtpVerification`, and `startForgotPassword` handlers to invoke `clearError()` immediately before changing the `authMode` state.\n * *Goal:* Ensure that every time the user transitions to a new authentication phase (Login → Signup → OTP), the UI starts with a clean slate, automatically removing stale error messages from previous attempts.\n \n ", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/214/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/214/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/213", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/213/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/213/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/213/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/213", + "id": 3805771257, + "node_id": "I_kwDONYLDD87i13X5", + "number": 213, + "title": "Issue: Fix Signup Flow (CORS Configuration & Error Handling)", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-12T19:51:04Z", + "updated_at": "2026-01-17T08:50:06Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Proposal: Improve Signup Reliability & Error Feedback\n\n**Description**\nThe current signup flow experiences intermittent friction during local development due to strict network policies and opaque error handling. When requests fail validation (e.g., \"User already exists\"), the application currently suppresses the specific reason, leading to a generic \"Signup failed\" state. Additionally, the backend configuration can be overly restrictive regarding origin resolution (`localhost` vs `127.0.0.1`), potentially hindering seamless connectivity.\n\n**Proposed Changes**\n\n#### 1. Backend Improvements (`main.go`)\n* **Broaden CORS Origin Support:** Update the `AllowOrigins` list to include `http://127.0.0.1:5173` alongside `localhost`.\n * *Benefit:* This ensures more robust connectivity by accommodating browsers that resolve local addresses to the loopback IP, reducing the likelihood of `403 Forbidden` network rejections.\n* **Standardize Header Acceptance:** Add `Accept` and `X-Requested-With` to the `AllowHeaders` configuration.\n * *Benefit:* This aligns the backend with standard browser fetch behaviors, preventing preflight failures caused by strict header whitelisting.\n\n#### 2. Frontend Experience Enhancements (`authContext.tsx`)\n* **Refine Error Parsing Logic:** Update the `signup` function to prioritize reading `data.error` from the response before falling back to `data.message`.\n * *Benefit:* This exposes specific validation feedback (e.g., \"Password too short\", \"User already exists\") directly to the user, significantly improving the troubleshooting experience compared to the current generic error message.\n\nI have already made the required changes that will make onboarding for new developers easier, and am ready to create a PR.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/213/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/213/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/212", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/212/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/212/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/212/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/212", + "id": 3805691421, + "node_id": "PR_kwDONYLDD868xZPg", + "number": 212, + "title": "Fix Tailwind config ESM compatibility for Node.js v22", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T19:29:59Z", + "updated_at": "2026-01-12T19:36:50Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/212", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/212", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/212.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/212.patch", + "merged_at": null + }, + "body": "This PR resolves the `ReferenceError: require is not defined` error encountered\r\nwhen running the frontend on Node.js v22.\r\n\r\n Root Cause\r\nThe project is configured to use ES Modules (`\"type\": \"module\"`), but\r\n`tailwind.config.js` was still using CommonJS `require()` for plugins.\r\nNode.js v22 does not support `require()` in ES Module contexts, causing\r\nthe build to fail.\r\n\r\n Changes Made\r\n Converted Tailwind plugin imports from `require()` to ES Module `import`\r\n Ensured `tailwind.config.js` fully follows ESM syntax\r\n Maintained existing Tailwind configuration and functionality\r\n\r\nTesting\r\n-Verified the frontend runs successfully on Node.js v22\r\n-Confirmed Tailwind CSS, animations, and scrollbar plugins work as expected\r\n\r\n Notes\r\nAn alternative solution would be renaming the config file to\r\n`tailwind.config.cjs`, but using ES Modules aligns better with modern\r\nNode.js and the project’s existing configuration.\r\n\r\nCloses #208\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Added CONTRIBUTING.md with detailed contribution guidelines and development workflow\n * Introduced MIT License file with copyright information\n * Updated README with clearer license section and file reference\n\n* **Chores**\n * Refined frontend build configuration and styling dependencies\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/212/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/212/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/211", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/211/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/211/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/211/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/211", + "id": 3805386181, + "node_id": "I_kwDONYLDD87i0ZXF", + "number": 211, + "title": "Docs Update Needed: Clear Google OAuth & Email Setup Guide", + "user": { + "login": "Cubix33", + "id": 110415457, + "node_id": "U_kgDOBpTOYQ", + "avatar_url": "https://avatars.githubusercontent.com/u/110415457?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Cubix33", + "html_url": "https://github.com/Cubix33", + "followers_url": "https://api.github.com/users/Cubix33/followers", + "following_url": "https://api.github.com/users/Cubix33/following{/other_user}", + "gists_url": "https://api.github.com/users/Cubix33/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Cubix33/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Cubix33/subscriptions", + "organizations_url": "https://api.github.com/users/Cubix33/orgs", + "repos_url": "https://api.github.com/users/Cubix33/repos", + "events_url": "https://api.github.com/users/Cubix33/events{/privacy}", + "received_events_url": "https://api.github.com/users/Cubix33/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T18:02:02Z", + "updated_at": "2026-01-15T16:22:08Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "\n\n

🧩 Problem

\n

Several contributors face repeated authentication issues (Google Sign-In errors, invalid client, blocked origin, email verification failures) due to unclear or incomplete setup instructions in the current documentation.

\n

The existing docs assume prior OAuth knowledge and do not explain:

\n
    \n
  • \n

    How to create a Google OAuth Client ID

    \n
  • \n
  • \n

    How to correctly configure Authorized JavaScript Origins

    \n
  • \n
  • \n

    That the OAuth Client ID should be added to the frontend .env without quotes

    \n
  • \n
  • \n

    How to generate a Gmail App Password for SMTP email verification

    \n
  • \n
\n

This leads to errors such as:

\n
    \n
  • \n

    Error 401: invalid_client

    \n
  • \n
  • \n

    The given origin is not allowed for the given client ID

    \n
  • \n
  • \n

    535 5.7.8 Username and Password not accepted

    \n
  • \n
  • \n

    Email verification failures during sign-up

    \n
  • \n
\n
\n

✅ Proposed Documentation Improvements

\n

1️⃣ Add a Dedicated “Google OAuth Setup” Section

\n

Step-by-step guide to create OAuth Client ID:

\n
    \n
  1. \n

    Go to Google Cloud Console
    \nhttps://console.cloud.google.com/

    \n
  2. \n
  3. \n

    Create or select a project

    \n
  4. \n
  5. \n

    Navigate to:

    \n
    APIs & Services → Credentials\n
    \n
  6. \n
  7. \n

    Click Create Credentials → OAuth Client ID

    \n
  8. \n
  9. \n

    Configure the consent screen (if not already done):

    \n
      \n
    • \n

      User Type: External

      \n
    • \n
    • \n

      Add your email under Test users

      \n
    • \n
    \n
  10. \n
  11. \n

    Create OAuth Client:

    \n
      \n
    • \n

      Application type: Web application

      \n
    • \n
    • \n

      Name: DebateAI Local Dev

      \n
    • \n
    \n
  12. \n
  13. \n

    Add Authorized JavaScript Origins:

    \n
    http://localhost:5173\nhttp://127.0.0.1:5173\nhttp://localhost:1313\nhttp://127.0.0.1:1313\n
    \n

    ⚠️ These must match the exact frontend URL (protocol + host + port)

    \n
  14. \n
  15. \n

    Save and copy the Client ID

    \n
  16. \n
\n
\n

2️⃣ Clarify Frontend .env Configuration (Important!)

\n

Update frontend docs to explicitly state:

\n
VITE_BASE_URL=http://localhost:1313\nVITE_GOOGLE_CLIENT_ID=YOUR_GOOGLE_CLIENT_ID_HERE\n
\n

Do NOT wrap values in quotes
\n❗ Restart the frontend after changes

\n
\n

3️⃣ Add Gmail App Password Setup Guide (for Email Verification)

\n

Why this is needed

\n

Gmail does not allow normal account passwords for SMTP. An App Password is required.

\n

Steps:

\n
    \n
  1. \n

    Go to Google Account Security
    \nhttps://myaccount.google.com/security

    \n
  2. \n
  3. \n

    Enable 2-Step Verification

    \n
  4. \n
  5. \n

    Navigate to:

    \n
    App passwords\n
    \n
  6. \n
  7. \n

    Create a new app password:

    \n
      \n
    • \n

      App: Mail

      \n
    • \n
    • \n

      Device: Other (DebateAI)

      \n
    • \n
    \n
  8. \n
  9. \n

    Copy the 16-character password

    \n
  10. \n
  11. \n

    Update backend config.prod.yml:

    \n
  12. \n
\n
smtp:\n host: \"smtp.gmail.com\"\n port: 587\n username: \"your-email@gmail.com\"\n password: \"your-app-password-here\"\n senderEmail: \"your-email@gmail.com\"\n
\n

❗ Do NOT use your normal Gmail password
\n❗ Do NOT commit this file

\n
\n

Benefits:

\n
    \n
  • \n

    Reduces onboarding friction

    \n
  • \n
  • \n

    Prevents repeated OAuth-related issues

    \n
  • \n
  • \n

    Makes setup beginner-friendly

    \n
  • \n
  • \n

    Improves contributor experience for GSoC & OSS contributors

\n\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/211/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/211/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/210", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/210/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/210/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/210/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/210", + "id": 3805335378, + "node_id": "I_kwDONYLDD87i0M9S", + "number": 210, + "title": "Improve UI/UX of Frontend Login Page", + "user": { + "login": "ankitkr104", + "id": 179861827, + "node_id": "U_kgDOCrh5Qw", + "avatar_url": "https://avatars.githubusercontent.com/u/179861827?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankitkr104", + "html_url": "https://github.com/ankitkr104", + "followers_url": "https://api.github.com/users/ankitkr104/followers", + "following_url": "https://api.github.com/users/ankitkr104/following{/other_user}", + "gists_url": "https://api.github.com/users/ankitkr104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankitkr104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankitkr104/subscriptions", + "organizations_url": "https://api.github.com/users/ankitkr104/orgs", + "repos_url": "https://api.github.com/users/ankitkr104/repos", + "events_url": "https://api.github.com/users/ankitkr104/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankitkr104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T17:45:06Z", + "updated_at": "2026-01-13T16:30:07Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "**Description**\nThe current Login page is functional, but the UI/UX feels slightly outdated. Since the login screen is the first interaction for users, improving its design can significantly enhance usability and first-time user experience.\n\n **Issues Observed**\n- Text size feels small, affecting readability\n- Visual hierarchy between heading, inputs, and CTA is unclear\n- Layout can be more balanced and modern\n- Login button could be more prominent\n- Overall design can be simplified for a cleaner look\n\n **Proposed Solution**\nRedesign the **Login page UI only** while keeping:\n- Existing content and form fields\n- Authentication logic and backend unchanged\n- Same validations and functionality\n\n**Planned UI improvements:**\n- Increase text size and improve typography\n- Better spacing and alignment\n- Clear visual hierarchy (heading → fields → CTA)\n- Improved button styling and hover states\n- Responsive design for mobile and desktop\n\n **Scope**\n- ✅ Frontend UI only \n- ❌ No backend or authentication changes \n- ❌ No new features added \n\n**Contribution Intent**\nI’d like to work on this issue and first share a UI proposal (screenshots/mockups) for feedback before implementing the changes.\n\nPlease let me know if this aligns with the project goals.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/210/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/210/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/209", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/209/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/209/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/209/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/209", + "id": 3804401252, + "node_id": "PR_kwDONYLDD868tF48", + "number": 209, + "title": "feat: implement PWA manifest, SEO meta tags, and branding assets", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T13:47:21Z", + "updated_at": "2026-06-08T10:37:46Z", + "closed_at": "2026-06-08T10:37:46Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/209", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/209", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/209.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/209.patch", + "merged_at": null + }, + "body": "# Issue #205 \r\n\r\n### Description\r\nThis PR transforms the application into a **Progressive Web App (PWA)** and significantly improves its Search Engine Optimization (SEO) score. It adds the necessary configuration files, meta tags, and branding assets to ensure the app is installable on devices and discoverable on search engines.\r\n\r\n### Changes Made\r\n- **PWA Configuration:** Added `public/manifest.json` with standard fields (`name`, `short_name`, `theme_color`, `icons`).\r\n- **SEO Enhancements:** Updated `index.html` to include:\r\n - Dynamic `` and keywords.\r\n - **Open Graph (OG)** tags for better social media previews (Twitter/Facebook).\r\n - Apple touch icon links.\r\n- **Branding:** Added official DebateAI logo assets to the public directory and linked them as favicons.\r\n\r\n### How to Test\r\n1. Pull this branch locally and run the development server.\r\n2. Open **Chrome DevTools** -> **Application** tab -> **Manifest**.\r\n - Verify that no errors are shown and the \"Install\" button is visible (or the Install icon appears in the browser address bar).\r\n3. Run a **Lighthouse Audit** in DevTools.\r\n - Verify that the \"PWA\" and \"SEO\" categories score high.\r\n4. Share the localhost link on a platform (or use a meta tag preview tool) to verify the new logo and description appear.\r\n\r\n### Checklist\r\n- [x] My code follows the code style of this project.\r\n- [x] I have performed a self-review of my own code.\r\n- [x] `manifest.json` is valid and linked correctly in `index.html`.\r\n- [x] All branding assets (logos/icons) are optimized and loaded correctly.\r\n\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n* **New Features**\r\n * Added Progressive Web App (PWA) support with manifest configuration.\r\n * Enhanced search engine optimization with metadata and keywords.\r\n * Added social media preview metadata for improved sharing across platforms.\r\n * Updated app branding with new title and favicon.\r\n\n\n\n\n## Summary by CodeRabbit\n\n## Release Notes\n\n* **New Features**\n * Added Progressive Web App support, enabling app installation on mobile and desktop devices\n * Implemented social media optimization with enhanced metadata for improved content sharing\n\n* **Chores**\n * Updated application branding with new title and visual identity\n * Enhanced SEO with meta descriptions and keywords\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/209/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/209/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/208", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/208/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/208/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/208/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/208", + "id": 3803881076, + "node_id": "I_kwDONYLDD87iup50", + "number": 208, + "title": "ReferenceError: require is not defined in tailwind.config.js (Node.js v22)", + "user": { + "login": "vinay1359", + "id": 170711320, + "node_id": "U_kgDOCizZGA", + "avatar_url": "https://avatars.githubusercontent.com/u/170711320?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vinay1359", + "html_url": "https://github.com/vinay1359", + "followers_url": "https://api.github.com/users/vinay1359/followers", + "following_url": "https://api.github.com/users/vinay1359/following{/other_user}", + "gists_url": "https://api.github.com/users/vinay1359/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vinay1359/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vinay1359/subscriptions", + "organizations_url": "https://api.github.com/users/vinay1359/orgs", + "repos_url": "https://api.github.com/users/vinay1359/repos", + "events_url": "https://api.github.com/users/vinay1359/events{/privacy}", + "received_events_url": "https://api.github.com/users/vinay1359/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-12T11:21:39Z", + "updated_at": "2026-01-12T11:23:23Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "I am encountering a `ReferenceError: require is not defined` while running frontend.\n\nIt appears that `tailwind.config.js` is being interpreted as an **ES Module**, but the configuration file still uses **CommonJS syntax (`require()`)**, which leads to the error.\n\n### Error Output\n\n```\nReferenceError: require is not defined\n```\n### Expected Behavior\n\nTailwind CSS should either:\n\n* Correctly handle CommonJS syntax in `tailwind.config.js`, or\n* Clearly document that the configuration file must use ES Module syntax (`import` / `export`) when running on newer Node.js versions.\n\n\n### Actual Behavior\n\nThe build process fails immediately with a `ReferenceError`, preventing the application from running.\n\nThe issue is resolved by either:\nRenaming tailwind.config.js to tailwind.config.cjs, or\nConverting the config file to ES Module syntax.\n\nPlease let me know if this is the expected behavior or if there is a recommended solution, and assign to me\n@bhavik-mangla ", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/208/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/208/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/207", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/207/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/207/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/207/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/207", + "id": 3803343313, + "node_id": "I_kwDONYLDD87ismnR", + "number": 207, + "title": "## 🐞[Bug] `POST /rooms` endpoint missing – Room creation fails with 404", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T08:56:39Z", + "updated_at": "2026-01-13T12:19:57Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Description\nCreating a new debate room from the frontend fails consistently. \nThe frontend sends a `POST /rooms` request, but the backend responds with **404 Not Found**, indicating that the endpoint is not implemented or not registered.\n\nAs a result:\n- Room creation fails\n- WebSocket connections (`/ws`) repeatedly return `400`\n- Users cannot start a debate session\n\n---\n\n### Steps to Reproduce\n1. Run the backend server (Gin)\n2. Run the frontend (`npm run dev`)\n3. Log in successfully\n4. Navigate to **Start Debate**\n5. Click **Create Room**\n\n---\n\n### Expected Behavior\n- Backend should handle `POST /rooms`\n- A new room should be created and returned with a room ID\n- Frontend should navigate to the debate room\n- WebSocket connection should succeed\n\n\"Image\"\n\n---\n\n### Actual Behavior\n- Backend responds with `404 Not Found` for `POST /rooms`\n- Frontend shows error: **“Error creating room”**\n- WebSocket repeatedly retries and fails with `400`\n\n---\n\n### Backend Logs\n\n[GIN] | 200 | GET \"/rooms\"\n[GIN] | 404 | POST \"/rooms\"\n\nThis confirms:\n\n- GET /rooms is implemented and working\n- POST /rooms is missing or not registered\n\n--- \n\n### Impact\n\n- Core functionality (room creation) is blocked\n- Any features dependent on rooms (WebSocket, debate flow, AI features) cannot work\n- Prevents testing and further development\n\n--- \n\n### Suggested Fix\n\n- Implement and register a POST /rooms route in the backend\n- Validate request payload\n- Create and persist a room entity\n- Return the created room (or room ID) in the response\n\n---\n\n### Environment\n\n- Frontend: React + Vite\n- Backend: Go (Gin)\n- Authentication: JWT (working correctly)\n- Environment: Local development (localhost)\n\n---\n\nI am willing to submit a PR.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/207/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/207/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/206", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/206/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/206/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/206/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/206", + "id": 3803332655, + "node_id": "I_kwDONYLDD87iskAv", + "number": 206, + "title": "[Feature] Integrate 'Sonner' for standardized user notifications (Toast)", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T08:53:33Z", + "updated_at": "2026-01-13T10:07:10Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is your feature request related to a problem? Please describe.\nThe application currently lacks a consistent mechanism for feedback. We have a toast component defined at `./frontend/src/components/toast.tsx`, but it is not utilized in the main application flow. Instead, user feedback relies on disparate methods like `console.log` or native `window.alert`, resulting in a fragmented User Experience (UX).\n\n### Describe the solution you'd like\nI propose strictly integrating the existing `toast.tsx` component into the global application layout. This will standardize all success, error, and info notifications, ensuring they are non-blocking and visually consistent with the design system.\n\n### Technical Implementation Strategy\n1. **Context Injection:** Wrap the root application component (in `App.tsx` or `layout.tsx`) with the `` provider exported from the component file.\n2. **Global Availability:** Ensure the toast hook is accessible throughout the component tree without prop drilling.\n3. **Refactoring:** Audit existing API calls (login, registration, data fetching) and replace `catch(err => console.error(err))` blocks with `toast.error()`.\n\n### Acceptance Criteria\n- [ ] **Global Provider:** The application renders the Toast provider at the root level, ensuring notifications can appear on top of any route.\n- [ ] **Error Handling:** Network errors and failed form submissions trigger a red/error variant toast.\n- [ ] **Success Feedback:** Successful actions (e.g., \"Profile Updated\") trigger a green/success variant toast.\n- [ ] **Legacy Removal:** All instances of `window.alert()` are removed from the codebase.\n\n### Priority\nMedium - Impacts UX and error visibility.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/206/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/206/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/205", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/205/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/205/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/205/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/205", + "id": 3803313165, + "node_id": "I_kwDONYLDD87isfQN", + "number": 205, + "title": "[Feature] Implement PWA Manifest, SEO Enhancements, and Brand Logo", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-12T08:47:29Z", + "updated_at": "2026-01-12T08:47:29Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Is your feature request related to a problem? Please describe.\nCurrently, the application lacks standard PWA configuration (`manifest.json`), proper SEO meta tags, and consistent branding assets (Logo) in the frontend. \n- **SEO:** The lack of meta tags affects search engine discoverability and social media sharing previews.\n- **PWA:** Users cannot \"install\" the application on their Desktop or Mobile devices because the manifest is missing.\n- **Branding:** The official DebateAI logo is not consistently used as the favicon or app icon.\n\n### Describe the solution you'd like\nI propose implementing the following enhancements to the Frontend:\n\n1. **PWA Support:** Add a `manifest.json` file to define the app name, icons, theme colors, and display mode (standalone).\n2. **SEO Optimization:** Add standard `` tags (Description, Keywords, Open Graph, Twitter Cards) to the `index.html` or main layout.\n3. **Branding:** Add the official DebateAI logo assets and link them correctly as favicons and manifest icons.\n\n### Proposed Implementation\n- Create `public/manifest.json` with standard PWA fields (`short_name`, `icons`, `start_url`, `theme_color`).\n- Update the `` section in the entry file to include SEO scripts.\n- Ensure the specific `DebateAI` logo is added to the public assets folder.\n\n### Benefits\n- **Installability:** Enables \"Add to Home Screen\" functionality for mobile and desktop users.\n- **Discoverability:** Improves ranking on search engines and appearance on social platforms.\n- **Professionalism:** Provides a polished, branded experience for users.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/205/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/205/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/204", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/204/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/204/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/204/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/204", + "id": 3802995191, + "node_id": "I_kwDONYLDD87irRn3", + "number": 204, + "title": "[SECURITY]: The JWT token is stored in the local-storage.", + "user": { + "login": "ayush00git", + "id": 183527389, + "node_id": "U_kgDOCvBn3Q", + "avatar_url": "https://avatars.githubusercontent.com/u/183527389?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayush00git", + "html_url": "https://github.com/ayush00git", + "followers_url": "https://api.github.com/users/ayush00git/followers", + "following_url": "https://api.github.com/users/ayush00git/following{/other_user}", + "gists_url": "https://api.github.com/users/ayush00git/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayush00git/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayush00git/subscriptions", + "organizations_url": "https://api.github.com/users/ayush00git/orgs", + "repos_url": "https://api.github.com/users/ayush00git/repos", + "events_url": "https://api.github.com/users/ayush00git/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayush00git/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-12T06:50:21Z", + "updated_at": "2026-01-16T05:51:42Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "I just noticed that after logging in to the DebateAI, the jwt token is getting stored into the local storage, and i had heard from sources that storing the token in the local storage is not safe. But I got to know that the token's only payload is `email` but still it's not safe, I visited the auth0 official docs (https://auth0.com/docs/secure/security-guidance/data-security/token-storage#don-t-store-tokens-in-local-storage) and even they does not guide to store the tokens in local storage, due to a cross-site scripting (XSS) attack.\n\n\"Image\"\n\n\nChanges we need to get back to a secure auth - \n- set `credientials: true` in frontend and CORS.\n- Setting and reading HTTP-only cookies\n- Correcting the CORS config.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/204/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/204/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/203", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/203/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/203/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/203/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/203", + "id": 3802960238, + "node_id": "I_kwDONYLDD87irJFu", + "number": 203, + "title": "[Bug] Online Matchmaking Gets Stuck in “Searching” State", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T06:34:38Z", + "updated_at": "2026-01-14T12:41:20Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 📌 Description\nWhen a user joins **Online Matchmaking**, the UI correctly shows the user as being added to the queue and the search timer starts. However, **no match is ever created**, even when compatible players are present or when multiple users join the queue over time.\n\nThis results in users being stuck indefinitely in the **“Searching…”** state.\n\n---\n\n### 🔁 Steps to Reproduce\n1. Go to **Start Debate → Matchmaking**\n2. Click **Find a Debate Partner**\n3. Observe:\n - Timer starts (`Searching…`)\n - User appears under **Players in Queue**\n4. Open another browser or incognito window with a different account\n5. Join matchmaking again with a compatible Elo range\n6. ❌ No match is created; both users remain in the queue\n\n---\n\n### 📷 Screenshot\n\n\"Image\"\n\n### ✅ Expected Behavior\n- When two compatible users (with overlapping Elo ranges) are present in the queue:\n - A debate room should be created automatically\n - Both users should be removed from the queue\n - Both clients should receive a `match_found` WebSocket event\n - Users should be redirected to the debate room\n\n---\n\n### ❌ Actual Behavior\n- Users are successfully added to the matchmaking queue\n- The search timer continues indefinitely\n- No debate room is created\n- No `match_found` event is emitted\n- Users must manually cancel matchmaking\n\n---\n\n### 🧠 Possible Root Causes\n- Matchmaking logic runs **only once on join**, not periodically\n- No background worker or loop to continuously check the queue\n- Elo range matching condition may be too strict or incorrect\n- Matched users are not removed atomically from the queue\n- Match creation event is not emitted over WebSocket\n\n---\n\n### 💡 Suggested Fix\n- Add a **periodic matchmaking worker** (e.g., every 1 second) to process the queue\n- Use **overlapping Elo range matching logic**\n- Ensure matched users are removed atomically from the queue\n- Emit a `match_found` WebSocket event to both matched users\n\n---\n\n#### 🧪 Environment\n\n- OS: Any\n- Browser: Chrome / Firefox\n- Frontend: React (Vite)\n- Backend: Go\n- Matchmaking Mode: Online Matchmaking\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/203/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/203/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/202", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/202/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/202/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/202/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/202", + "id": 3802931221, + "node_id": "PR_kwDONYLDD868oKnU", + "number": 202, + "title": "Feat/devil advocate mode", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-12T06:21:25Z", + "updated_at": "2026-03-12T05:15:28Z", + "closed_at": "2026-03-12T05:15:28Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/202", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/202", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/202.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/202.patch", + "merged_at": null + }, + "body": "# ✨ Add AI Devil’s Advocate Mode to Enhance Debate Quality\r\n\r\n## Overview\r\nThis PR introduces an **AI Devil’s Advocate feature** that periodically interjects with **neutral, critical questions** during live debates. \r\nThe goal is to improve discussion quality by challenging assumptions and prompting deeper reasoning—without taking sides or disrupting debate flow.\r\n\r\nThe feature is **optional**, **configurable**, and fully integrated across backend and frontend.\r\n\r\n---\r\n\r\n## 🚀 What’s New\r\n\r\n### Backend\r\n- **Room Model Enhancements**\r\n - Added `DevilAdvocateEnabled` and `DevilAdvocateFrequency`\r\n - Persisted and loaded from MongoDB on room initialization\r\n\r\n- **DevilAdvocateService**\r\n - New service that uses **Gemini** to generate concise, impartial questions\r\n - Context-aware (topic + debate history)\r\n - Runs asynchronously to avoid blocking WebSocket handlers\r\n\r\n- **WebSocket Logic**\r\n - Loads Devil’s Advocate settings when a room is created\r\n - Tracks message count for **non-spectator** participants only\r\n - Triggers AI interjection when:\r\n - Minimum of 3 messages are reached\r\n - Message count matches the configured frequency\r\n - The trigger hasn’t already fired for that count\r\n - Broadcasts a new `\"devil\"` message type to all participants\r\n\r\n---\r\n\r\n### Frontend\r\n- **Room Creation UI**\r\n - Added toggle to enable/disable AI Devil’s Advocate\r\n - Added frequency input for customization\r\n\r\n- **Chat & Audience UI**\r\n - Added support for `\"devil\"` message type\r\n - Distinctive **amber styling**, **Brain icon**, and *italicized text*\r\n - Devil’s Advocate messages appear seamlessly within the chat / audience comments section\r\n\r\n- **Message Handling**\r\n - Updated WebSocket handlers to recognize and render Devil’s Advocate questions correctly\r\n\r\n---\r\n\r\n-**Screenshot**\r\n\r\n\"image\"\r\n\r\n---\r\n## ✅ Verification & Testing\r\n\r\n- **Settings Persistence**\r\n - Verified Devil’s Advocate settings are correctly stored in MongoDB and loaded into memory\r\n\r\n- **Trigger Logic**\r\n - AI interjects only after the configured number of messages\r\n - Enforces a minimum of 3 messages\r\n - Prevents duplicate triggers at the same message count\r\n\r\n- **AI Output Quality**\r\n - Generated questions are neutral, concise, and context-aware\r\n - No side-taking or argumentative responses observed\r\n\r\n- **UI / UX**\r\n - Devil’s Advocate messages are visually distinct and easy to identify\r\n - Styling feels premium without disrupting the conversation flow\r\n\r\n---\r\n\r\n## 🧹 Additional Fixes\r\n- Fixed a minor duplicate identifier issue during implementation\r\n- Component now correctly uses `botDesc` on both line 184 and line 370\r\n\r\n---\r\n\r\n## 📌 Notes\r\n- Feature is **disabled by default**\r\n- No breaking API changes\r\n- Fully backward compatible\r\n- Designed to be lightweight and non-intrusive\r\n\r\n---\r\n\r\nIf there’s anything you’d like adjusted—naming, trigger conditions, or UI placement—I’m happy to iterate.\r\n\r\ncloses #189 \n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Introduced Devil's Advocate AI feature that generates thought-provoking questions during debates at configurable intervals.\n * Added room settings to enable/disable Devil's Advocate and customize question frequency (3-20 messages).\n * Devil's Advocate questions appear in the debate chat with distinctive styling and badge.\n\n* **Refactor**\n * Reduced minimum password length requirement from 8 to 6 characters for signup, login, and password reset.\n\n* **Chores**\n * Removed example configuration placeholders from environment files.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/202/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/202/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/201", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/201/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/201/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/201/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/201", + "id": 3802802526, + "node_id": "PR_kwDONYLDD868nwhF", + "number": 201, + "title": "[Bug]:WebSocket Connection Stability & Reconnection Logic", + "user": { + "login": "Isha-upadhyay", + "id": 148354274, + "node_id": "U_kgDOCNe04g", + "avatar_url": "https://avatars.githubusercontent.com/u/148354274?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Isha-upadhyay", + "html_url": "https://github.com/Isha-upadhyay", + "followers_url": "https://api.github.com/users/Isha-upadhyay/followers", + "following_url": "https://api.github.com/users/Isha-upadhyay/following{/other_user}", + "gists_url": "https://api.github.com/users/Isha-upadhyay/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Isha-upadhyay/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Isha-upadhyay/subscriptions", + "organizations_url": "https://api.github.com/users/Isha-upadhyay/orgs", + "repos_url": "https://api.github.com/users/Isha-upadhyay/repos", + "events_url": "https://api.github.com/users/Isha-upadhyay/events{/privacy}", + "received_events_url": "https://api.github.com/users/Isha-upadhyay/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-12T05:17:11Z", + "updated_at": "2026-01-13T12:21:00Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/201", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/201", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/201.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/201.patch", + "merged_at": null + }, + "body": "This PR resolves the WebSocket connection stability issue in OnlineDebateRoom.\r\n\r\nResolve #192 \r\nIt adds:\r\n- WebSocket connection state tracking (connected / reconnecting / disconnected)\r\n- Proper onerror and onclose handling\r\n- Retry limit instead of infinite retries\r\n- Visual connection status indicator\r\n- User recovery options (retry / leave)\r\n- RTC state sync with WebSocket\r\n\r\nThis prevents silent freezes when network drops and allows users to recover without refreshing.\r\n\r\nVideo Demo \r\nhttps://drive.google.com/file/d/11zSy58asfaIkNIZh4Y76Jv3Xb98V6gzk/view?usp=sharing\r\n\r\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Real-time connection status indicator showing network and audio/video health, error details, and contextual actions.\n * Manual reconnect control to attempt restoring interrupted sessions.\n * Graceful \"Leave Debate\" flow with media/session cleanup and post-leave navigation.\n * Updated Start/Stop Speaking button visuals to reflect speaking state.\n\n* **Chores**\n * Production configuration file excluded from version control.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/201/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/201/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/200", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/200/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/200/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/200/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/200", + "id": 3801682384, + "node_id": "I_kwDONYLDD87imRHQ", + "number": 200, + "title": "[FEATURE] Role-Based Debate Mode (Historian / Scientist / Lawyer)", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-11T17:32:38Z", + "updated_at": "2026-01-11T17:32:38Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## 🚀 Feature Summary\n\nIntroduce a **Role-Based Debate Mode** where participants (human or AI) debate while assuming predefined intellectual roles such as **Historian**, **Scientist**, or **Lawyer**. Each role enforces a distinct argumentation style, improving educational value and debate structure.\n\n---\n\n## 🎯 Motivation & Problem Statement\n\nCurrently, debates in DebateAI follow a generic argumentation style regardless of context. This limits:\n- Educational depth\n- Argument diversity\n- Structured reasoning based on discipline-specific thinking\n\nRole-based debating encourages:\n- Evidence-driven arguments (Scientist)\n- Historical context and precedents (Historian)\n- Persuasive and logical framing (Lawyer)\n\nThis aligns strongly with DebateAI’s mission of improving critical thinking and structured discourse.\n\n---\n\n## 🧠 Proposed Roles (Initial Scope)\n\n| Role | Debate Characteristics |\n|-----|------------------------|\n| **Historian** | Uses historical examples, timelines, precedents |\n| **Scientist** | Focuses on data, experiments, empirical evidence |\n| **Lawyer** | Emphasizes persuasion, logic, rebuttals, rhetoric |\n\n> Future roles (Philosopher, Economist, Policy Analyst) can be added later.\n\n---\n\n## ⚙️ Proposed Implementation Plan\n\n### Backend (Go)\n- Add a `role` field to debate participants:\n ```go\n type DebateRole string\n const (\n Historian DebateRole = \"historian\"\n Scientist DebateRole = \"scientist\"\n Lawyer DebateRole = \"lawyer\"\n )\n\nI am willing to submit PR.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/200/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/200/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/199", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/199/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/199/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/199/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/199", + "id": 3801676738, + "node_id": "PR_kwDONYLDD868kGPv", + "number": 199, + "title": "Feat/role based dabate mode", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-11T17:29:03Z", + "updated_at": "2026-03-12T05:15:27Z", + "closed_at": "2026-03-12T05:15:27Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/199", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/199", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/199.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/199.patch", + "merged_at": null + }, + "body": "# 🎭 Role-Based Debate Mode (Historian / Scientist / Lawyer)\r\n\r\n## Summary\r\n\r\nThis PR introduces **Role-Based Debate Mode**, adding a layer of specialization to both **AI bot debates** and **online multiplayer rooms**. Participants can now adopt predefined personas that either:\r\n\r\n- Directly influence AI reasoning and argument style (bot debates), or \r\n- Provide clear contextual signals to other human participants (online debates)\r\n\r\nThis enhancement improves educational depth, argument diversity, and debate structure while remaining fully backward-compatible.\r\n\r\n---\r\n\r\n## 🎯 Core Concept\r\n\r\nParticipants can select one of four roles before a debate begins:\r\n\r\n| Role | Behavior |\r\n|---|---|\r\n| **Neutral (Default)** | Standard debate behavior |\r\n| **Historian** | Uses historical precedents, timelines, and past examples |\r\n| **Scientist** | Prioritizes empirical evidence, data, and peer-reviewed studies |\r\n| **Lawyer** | Employs structured logic, persuasive rhetoric, and technical rebuttals |\r\n\r\nIf no role is selected, the system safely defaults to **Neutral**.\r\n\r\n---\r\n\r\n## 🤖 Bot Debate Logic (AI Influence)\r\n\r\nIn single-player (User vs Bot) debates, the selected role is passed directly to the AI.\r\n\r\n### How it works\r\n\r\n- **Prompt Injection** \r\n The backend dynamically modifies the system prompt based on the selected role.\r\n\r\n- **Behavioral Adaptation**\r\n - *Scientist*: The AI responds with evidence-based counters and empirical framing.\r\n - *Lawyer*: The AI anticipates cross-examination and uses structured rebuttals.\r\n - *Historian*: The AI contextualizes arguments using historical precedents.\r\n\r\nThis allows the same AI model to exhibit different debate styles without introducing new models or breaking existing logic.\r\n\r\n---\r\n\r\n##Screenshot\r\n\r\n\"Screenshot\r\n\r\n---\r\n\r\n## 🎨 User Interface Integration\r\n\r\n### Role Selection\r\n\r\n- Available in **Bot Selection** and **Online Debate Setup** screens\r\n- Implemented using a dark-mode compatible dropdown\r\n- Clearly labeled as **“Your Role”**\r\n\r\n### Live Debate Room\r\n\r\nOnce the debate starts:\r\n\r\n- **Role Badges** \r\n A small, high-contrast badge (e.g., `HISTORIAN`, `SCIENTIST`) appears next to each participant’s name.\r\n\r\n- **Real-Time Synchronization** \r\n In online rooms, persona changes during setup are synchronized instantly via WebSockets.\r\n\r\n---\r\n\r\n## ⚙️ Technical Implementation\r\n\r\n### Backend (Go)\r\n\r\n#### Models\r\n- Extended persistent storage:\r\n - `Debate`\r\n - `DebateVsBot`\r\n- Added a `Role` field with safe defaults\r\n\r\n#### AI Prompt Logic\r\n- **File:** `services/debatevsbot.go`\r\n- Updated `constructPrompt` to:\r\n - Inject role-specific instructions into the system prompt\r\n - Preserve existing word-limit and personality logic\r\n\r\n#### WebSockets\r\n- **File:** `websocket/websocket.go`\r\n- Added a new `personaSelection` message type\r\n- Enables real-time role synchronization in online debates\r\n\r\n#### Controllers\r\n- **File:** `controllers/debatevsbot_controller.go`\r\n- Updated request/response structures to support the `Role` field\r\n\r\n---\r\n\r\n### Frontend (React + TypeScript)\r\n\r\n#### Services\r\n- **File:** `services/vsbot.ts`\r\n- Updated API payloads and types to include the selected role\r\n\r\n#### UI Changes\r\n\r\n- **BotSelection.tsx**\r\n - Added role selection dropdown during setup\r\n\r\n- **DebateRoom.tsx** (Bot Debate)\r\n - Displays role badge next to the user’s name\r\n - Confirms selected role is passed to the AI\r\n\r\n- **OnlineDebateRoom.tsx** (User vs User)\r\n - Added persona selection to setup modal\r\n - Implemented real-time role synchronization via WebSockets\r\n - Displays persona badges for both participants\r\n\r\n---\r\n\r\n## ✅ Verification & Testing\r\n\r\n### Backend Build\r\n\r\ngo build ./...\r\n# Exit code: 0\r\n\r\n\r\nMinor pre-existing lint issues in test_server.go were resolved to ensure successful compilation.\r\n\r\nPrompt Construction\r\n\r\nVerified that the AI receives correct role-specific instructions:\r\n\r\nHistorian → historical precedents\r\n\r\nScientist → empirical reasoning\r\n\r\nLawyer → structured rebuttals\r\n\r\nBackward Compatibility\r\n\r\nExisting debates without roles default to Neutral\r\n\r\nNo breaking API changes\r\n\r\nOld data remains fully functional\r\n\r\n### 🔁 How to Reproduce\r\n\r\n- Start backend and frontend locally\r\n- Create a bot debate or online debate\r\n- Select a role during setup\r\n- Start the debate\r\n\r\nObserve:\r\n\r\n - Role badges in the UI\r\n - AI behavior adapting to the selected role\r\n - Real-time role synchronization in online rooms\r\n\r\n### 📈 Impact\r\n\r\n- Enhances educational and analytical depth\r\n- Encourages discipline-specific reasoning\r\n- Improves AI-human interaction quality\r\n- Establishes groundwork for future roles (Philosopher, Economist, Policy Analyst)\r\n\r\n### 🧩 Notes\r\n\r\n- Default role: Neutral\r\n- Fully backward-compatible\r\n- Scoped to text-based debates only\r\n\r\ncloses #200\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Role-based debate experience: choose historian, scientist, lawyer, or neutral; role shown in UI and used by the bot.\n * Bot replies and debate prompts adapt to the selected role.\n * Persona selection for online debates with persona badges and real-time persona updates.\n\n* **Other Changes**\n * Relaxed password minimum length from 8 to 6 characters.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/199/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/199/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/198", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/198/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/198/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/198/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/198", + "id": 3801431105, + "node_id": "PR_kwDONYLDD868jSVE", + "number": 198, + "title": "Fix issue 156 gamification", + "user": { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-11T15:15:51Z", + "updated_at": "2026-02-28T07:33:32Z", + "closed_at": "2026-02-28T07:33:32Z", + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/198", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/198", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/198.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/198.patch", + "merged_at": null + }, + "body": "Fixes #156 \r\n\r\nChanges made\r\n- Added custom new badge celebration with confettis\r\n- Added celebration for when user moves in top 10 \r\n- No points or badges on conceding \r\n\r\nVideos\r\n\r\nhttps://github.com/user-attachments/assets/7be7580f-3ea5-45be-b066-6b27fcdcb0f3\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/b573d56e-dc23-4d19-8dad-2501ea6117de\r\n\r\n\r\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/198/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/198/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/197", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/197/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/197/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/197/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/197", + "id": 3801367482, + "node_id": "PR_kwDONYLDD868jE57", + "number": 197, + "title": "Fix issue 196 text to speech", + "user": { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-11T14:44:09Z", + "updated_at": "2026-02-28T07:31:14Z", + "closed_at": null, + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/197", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/197", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/197.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/197.patch", + "merged_at": null + }, + "body": "Closes #196 \r\n\r\nChanges made\r\n- Added a speaker icon in debate window, when clicked the application read out loud the opponent's statement\r\n- Implemented for both vs bot and vs player\r\n- Used SSML for natural speech with breaks, low pitch/high pitch\r\n- Automatically stops if user does concede\r\n\r\nVideo\r\n\r\nhttps://github.com/user-attachments/assets/012d650a-d36e-438c-80fd-85f7ddb92130\r\n\r\n\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Added text-to-speech (TTS) to debate rooms with a per-panel enable/disable toggle.\n * TTS automatically reads phase changes and opponent/bot messages when enabled; playback is cancelled when disabled, on debate end, or during turn transitions.\n * Replaced the browser confirm with a confirmation modal for conceding; conceding now cancels speech, finalizes the debate, and shows a confirmation before redirecting.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/197/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/197/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/196", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/196/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/196/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/196/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/196", + "id": 3801275629, + "node_id": "I_kwDONYLDD87iktzt", + "number": 196, + "title": "Feat: Add text to speech so the application reads out loud the opponent's statement", + "user": { + "login": "DeveloperAmrit", + "id": 105799602, + "node_id": "U_kgDOBk5fsg", + "avatar_url": "https://avatars.githubusercontent.com/u/105799602?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/DeveloperAmrit", + "html_url": "https://github.com/DeveloperAmrit", + "followers_url": "https://api.github.com/users/DeveloperAmrit/followers", + "following_url": "https://api.github.com/users/DeveloperAmrit/following{/other_user}", + "gists_url": "https://api.github.com/users/DeveloperAmrit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/DeveloperAmrit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/DeveloperAmrit/subscriptions", + "organizations_url": "https://api.github.com/users/DeveloperAmrit/orgs", + "repos_url": "https://api.github.com/users/DeveloperAmrit/repos", + "events_url": "https://api.github.com/users/DeveloperAmrit/events{/privacy}", + "received_events_url": "https://api.github.com/users/DeveloperAmrit/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-11T13:42:05Z", + "updated_at": "2026-01-11T13:42:05Z", + "closed_at": null, + "assignee": null, + "author_association": "MEMBER", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "[y] Check previous issues\n\nPresent\n- User has to read the opponent's message which is bad for UX\n- User gets very short time to give his statement, but most of time go in reading the opponent's statement which is frustrating\n- For bot opponent, although it writes with umm, uh and breaks, reading it is hard\n\nProposed changes\n- Add text to speech for both bot opponent and player opponent\n- Use SSML to have natural speech with breaks and low/high pitch\n\n\n[y] I read code of conduct.\n[y] I would like to work on this issue. ", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/196/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/196/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/195", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/195/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/195/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/195/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/195", + "id": 3801054515, + "node_id": "PR_kwDONYLDD868iHAa", + "number": 195, + "title": "Optimizing the current docker setup to allow both local and cloud mongodb", + "user": { + "login": "ayush00git", + "id": 183527389, + "node_id": "U_kgDOCvBn3Q", + "avatar_url": "https://avatars.githubusercontent.com/u/183527389?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayush00git", + "html_url": "https://github.com/ayush00git", + "followers_url": "https://api.github.com/users/ayush00git/followers", + "following_url": "https://api.github.com/users/ayush00git/following{/other_user}", + "gists_url": "https://api.github.com/users/ayush00git/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayush00git/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayush00git/subscriptions", + "organizations_url": "https://api.github.com/users/ayush00git/orgs", + "repos_url": "https://api.github.com/users/ayush00git/repos", + "events_url": "https://api.github.com/users/ayush00git/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayush00git/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 6, + "created_at": "2026-01-11T10:10:08Z", + "updated_at": "2026-04-07T04:27:47Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/195", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/195", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/195.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/195.patch", + "merged_at": null + }, + "body": "Closes #183 \r\nWhat is implemented so far in the PR-\r\n- During development the volume is mounted by the `docker-compose.yml`, so we do not need to copy the source code inside the `Dockerfile.dev`, it would just overwrite the things.\r\n\r\n- Removed the \r\n```\r\nCMD [\"go\", \"run\", \"cmd/server/main.go\"]\r\n```\r\nand added \r\n```\r\nCMD [\"air\"]\r\n```\r\nfor live reload if any changes are made in the backend.\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Improved Docker build caching for faster rebuilds.\n * Enabled live-reload for backend development.\n * Updated frontend dev container to install dependencies and simplified startup.\n * Removed local database service and dev volume from compose.\n * Adjusted container ignore patterns.\n\n* **Documentation**\n * Added comprehensive Docker and manual setup instructions to the README.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/195/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/195/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/194", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/194/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/194/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/194/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/194", + "id": 3800766460, + "node_id": "I_kwDONYLDD87iixf8", + "number": 194, + "title": "[BUG]: resolve Redis connection failure caused by config field mismatch", + "user": { + "login": "sach2004", + "id": 132289265, + "node_id": "U_kgDOB-KS8Q", + "avatar_url": "https://avatars.githubusercontent.com/u/132289265?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sach2004", + "html_url": "https://github.com/sach2004", + "followers_url": "https://api.github.com/users/sach2004/followers", + "following_url": "https://api.github.com/users/sach2004/following{/other_user}", + "gists_url": "https://api.github.com/users/sach2004/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sach2004/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sach2004/subscriptions", + "organizations_url": "https://api.github.com/users/sach2004/orgs", + "repos_url": "https://api.github.com/users/sach2004/repos", + "events_url": "https://api.github.com/users/sach2004/events{/privacy}", + "received_events_url": "https://api.github.com/users/sach2004/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-11T05:25:29Z", + "updated_at": "2026-01-23T15:40:27Z", + "closed_at": "2026-01-23T15:40:27Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "**Description**\nThis PR fixes a critical configuration mismatch that prevents Redis from connecting at startup, causing all Redis-dependent features to fail silently.\n\n**Problem**\nIn backend/cmd/server/main.go, the code attempts to read cfg.Redis.URL:\n`redisURL := cfg.Redis.URL`\n\nHowever, the configuration struct in backend/config/config.go defines the field as Addr, not URL:\n\n```\ntype RedisConfig struct {\n Addr string `mapstructure:\"REDIS_ADDR\"`\n Password string `mapstructure:\"REDIS_PASSWORD\"`\n DB int `mapstructure:\"REDIS_DB\"`\n}\n```\n\nThis mismatch causes Redis connection initialization to fail, breaking several core features:\n- Matchmaking queue management\n- Real-time poll voting\n- Like/reaction caching\n- Rate limiting\n- Session management\n\nThe issue is particularly problematic because it fails silently during startup - the server appears to run normally, but Redis-dependent features don't work.\n\n**Root Cause**\nThe field name mismatch (URL vs Addr) suggests this may have been introduced during a refactoring or config restructure where the struct field was renamed but not all references were updated.\n\n**Impact**\n- Redis connection always fails\n- Matchmaking doesn't work\n- Polls, likes, and reactions fail\n- Users experience degraded functionality\n- Production deployments affected\n\n@bhavik-mangla please assign this issue to me, i would love to contribute to this and fix the bug", + "closed_by": { + "login": "sach2004", + "id": 132289265, + "node_id": "U_kgDOB-KS8Q", + "avatar_url": "https://avatars.githubusercontent.com/u/132289265?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sach2004", + "html_url": "https://github.com/sach2004", + "followers_url": "https://api.github.com/users/sach2004/followers", + "following_url": "https://api.github.com/users/sach2004/following{/other_user}", + "gists_url": "https://api.github.com/users/sach2004/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sach2004/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sach2004/subscriptions", + "organizations_url": "https://api.github.com/users/sach2004/orgs", + "repos_url": "https://api.github.com/users/sach2004/repos", + "events_url": "https://api.github.com/users/sach2004/events{/privacy}", + "received_events_url": "https://api.github.com/users/sach2004/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/194/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/194/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/193", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/193/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/193/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/193/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/193", + "id": 3800252468, + "node_id": "I_kwDONYLDD87ig0A0", + "number": 193, + "title": "[FEATURE]: Debate Topic Library with Evidence Database", + "user": { + "login": "Riya-chandra", + "id": 136116667, + "node_id": "U_kgDOCBz5uw", + "avatar_url": "https://avatars.githubusercontent.com/u/136116667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Riya-chandra", + "html_url": "https://github.com/Riya-chandra", + "followers_url": "https://api.github.com/users/Riya-chandra/followers", + "following_url": "https://api.github.com/users/Riya-chandra/following{/other_user}", + "gists_url": "https://api.github.com/users/Riya-chandra/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Riya-chandra/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Riya-chandra/subscriptions", + "organizations_url": "https://api.github.com/users/Riya-chandra/orgs", + "repos_url": "https://api.github.com/users/Riya-chandra/repos", + "events_url": "https://api.github.com/users/Riya-chandra/events{/privacy}", + "received_events_url": "https://api.github.com/users/Riya-chandra/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-10T19:27:58Z", + "updated_at": "2026-01-10T19:33:38Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "Hi Team,\n\nDebateAI provides a strong platform for structured, real-time debates between users and AI.\n\nTo further strengthen its educational value, I would like to propose a new feature:\n\n### Debate Topic Library with Evidence Database\n\nCurrently, users debate without access to a structured research or evidence system. \nThis feature would provide a centralized knowledge base to support stronger, more informed debates.\n\n### Proposed Features:\n- Curated debate topics by category (Politics, Tech, Ethics, etc.)\n- Evidence cards with verified sources\n- Bookmark/save evidence for later use\n- AI-suggested evidence during debates\n- Community-contributed evidence with voting\n- Citation generator for academic debates\n\n### Why this matters:\n- Encourages research-based debating \n- Improves argument quality \n- Makes DebateAI more educational \n- Helps beginners learn faster \n- Builds a knowledge-driven community \n\n### Technical Approach (High-Level)\n\nThe feature will include:\n- MongoDB collections for Topics, Evidence, and User Saved Evidence \n- REST APIs in Go for topic and evidence management \n- AI-powered evidence suggestions using LLMs \n- React components for browsing topics, saving evidence, and viewing citations \n\nDatabase will store:\n- Debate topics with categories \n- Evidence cards with sources, URLs, and community votes \n- User bookmarks \n\nAPIs:\n- GET /api/topics \n- GET /api/evidence/:topicId \n- POST /api/evidence \n- POST /api/evidence/:id/vote \n- POST /api/users/save-evidence \n\nAI will suggest evidence during debates based on live argument context.\n\nThis approach is modular, scalable, and aligns with the current DebateAI architecture.\n\n@bhavik-mangla I would love to contribute to implementing this feature if it aligns with the project roadmap.\n\nBest regards, \nRiya Chandra\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/193/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/193/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/192", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/192/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/192/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/192/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/192", + "id": 3800198133, + "node_id": "I_kwDONYLDD87igmv1", + "number": 192, + "title": "[BUG] : WebSocket Connection Stability & Reconnection Logic", + "user": { + "login": "Isha-upadhyay", + "id": 148354274, + "node_id": "U_kgDOCNe04g", + "avatar_url": "https://avatars.githubusercontent.com/u/148354274?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Isha-upadhyay", + "html_url": "https://github.com/Isha-upadhyay", + "followers_url": "https://api.github.com/users/Isha-upadhyay/followers", + "following_url": "https://api.github.com/users/Isha-upadhyay/following{/other_user}", + "gists_url": "https://api.github.com/users/Isha-upadhyay/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Isha-upadhyay/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Isha-upadhyay/subscriptions", + "organizations_url": "https://api.github.com/users/Isha-upadhyay/orgs", + "repos_url": "https://api.github.com/users/Isha-upadhyay/repos", + "events_url": "https://api.github.com/users/Isha-upadhyay/events{/privacy}", + "received_events_url": "https://api.github.com/users/Isha-upadhyay/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-10T18:41:18Z", + "updated_at": "2026-01-10T18:41:52Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## Problem\nWhen the network drops during a live debate, `OnlineDebateRoom` does not show any connection status or recovery UI. \nThe screen freezes and users are forced to refresh, which often breaks the debate.\n\nThis makes real-time debates unreliable on unstable connections.\n\n---\n\n## What’s wrong\nThe WebSocket uses `ReconnectingWebSocket` but:\n- No `onerror` or `onclose` handling\n- No connection status in the UI\n- Infinite retries with no user feedback\n- RTC can fail while WebSocket looks connected\n\nUsers don’t know if the app is reconnecting or dead.\n\n---\n\n## Expected behavior\nWhen the connection is lost:\n- Show **Connected / Reconnecting / Disconnected**\n- Show retry count (e.g. “Reconnecting 2/5”)\n- Stop after a few retries\n- Give buttons: **Retry** or **Leave Debate**\n\nRTC state should also be reflected.\n\n---\n\n## Suggested fix\nIn `OnlineDebateRoom.tsx`:\n- Track WebSocket state\n- Add `onerror` and `onclose`\n- Limit retries instead of `Infinity`\n- Add a small connection status indicator\n\nSimilar logic already exists in `Matchmaking.tsx` and `ViewDebate.tsx`.\n\n---\n\n## Files\n- `frontend/src/Pages/OnlineDebateRoom.tsx`\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/192/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/192/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/191", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/191/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/191/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/191/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/191", + "id": 3800146507, + "node_id": "I_kwDONYLDD87igaJL", + "number": 191, + "title": "[Feature] : Debate Replay & Performance Analytics", + "user": { + "login": "Isha-upadhyay", + "id": 148354274, + "node_id": "U_kgDOCNe04g", + "avatar_url": "https://avatars.githubusercontent.com/u/148354274?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Isha-upadhyay", + "html_url": "https://github.com/Isha-upadhyay", + "followers_url": "https://api.github.com/users/Isha-upadhyay/followers", + "following_url": "https://api.github.com/users/Isha-upadhyay/following{/other_user}", + "gists_url": "https://api.github.com/users/Isha-upadhyay/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Isha-upadhyay/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Isha-upadhyay/subscriptions", + "organizations_url": "https://api.github.com/users/Isha-upadhyay/orgs", + "repos_url": "https://api.github.com/users/Isha-upadhyay/repos", + "events_url": "https://api.github.com/users/Isha-upadhyay/events{/privacy}", + "received_events_url": "https://api.github.com/users/Isha-upadhyay/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-10T18:00:28Z", + "updated_at": "2026-01-10T18:01:19Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## Problem\nAfter completing a debate, users currently have no way to review how they performed. They cannot replay the debate, analyze which arguments were strong or weak, or track their improvement over time. This makes debates feel like one-time interactions instead of a learning experience.\n\n---\n\n## Proposed Solution\nAdd a **Debate Replay & Performance Analytics** feature that allows users to revisit past debates and get simple, useful feedback on their performance.\n\n---\n\n## Core Features (MVP)\n\n### 1. Debate Replay\nUsers should be able to open a past debate and:\n- View the full transcript with timestamps\n- See which speaker is talking (user or opponent)\n- Jump to any part of the debate using timestamps\n\n### 2. Performance Metrics\nShow basic statistics for each phase (Opening, Cross-Exam, Closing):\n- Word count\n- Score (from existing AI judge or scoring logic)\n\nOverall metrics:\n- Total words spoken\n- Best performing phase\n\n### 3. Replay Page\nA new route: \n/debates/:debateId/replay\nThis page should show:\n- Transcript on one side\n- Performance metrics on the other\n\n---\n\n## Backend Changes\n- Add a new collection: `debate_replays`\n- Store:\n - debateId\n - transcript with timestamps\n - per-phase stats\n - overall stats\n\n### New API Endpoints\nGET /api/debates/:debateId/replay\nGET /api/users/replay-history\n\n---\n\n## Frontend Changes\nCreate:\n- `DebateReplay.tsx`\n- `ReplayPlayer.tsx`\n- `PerformanceMetrics.tsx`\n\nUpdate:\n- Add a **Replay** button on saved debates or profile page\n\n---\n\n## Why This Feature Is Important\n- Users can learn from their previous debates\n- Encourages repeated usage and improvement\n- Makes DebateAI feel more like a serious skill-building platform\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/191/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/191/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/190", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/190/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/190/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/190/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/190", + "id": 3799773318, + "node_id": "PR_kwDONYLDD868eY05", + "number": 190, + "title": "Improve Home page UI/UX and readability", + "user": { + "login": "ankitkr104", + "id": 179861827, + "node_id": "U_kgDOCrh5Qw", + "avatar_url": "https://avatars.githubusercontent.com/u/179861827?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankitkr104", + "html_url": "https://github.com/ankitkr104", + "followers_url": "https://api.github.com/users/ankitkr104/followers", + "following_url": "https://api.github.com/users/ankitkr104/following{/other_user}", + "gists_url": "https://api.github.com/users/ankitkr104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankitkr104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankitkr104/subscriptions", + "organizations_url": "https://api.github.com/users/ankitkr104/orgs", + "repos_url": "https://api.github.com/users/ankitkr104/repos", + "events_url": "https://api.github.com/users/ankitkr104/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankitkr104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-01-10T14:02:12Z", + "updated_at": "2026-02-28T07:22:20Z", + "closed_at": "2026-02-28T07:22:20Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/190", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/190", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/190.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/190.patch", + "merged_at": null + }, + "body": "## **Summary**\r\nThis PR improves the UI/UX of the Home / Start Debate page while keeping all existing content, theme, icons, and functionality unchanged.\r\n\r\n## **What changed**\r\n- Improved visual hierarchy, spacing, and alignment\r\n- Increased text size and readability (especially headings)\r\n- Clearer emphasis on primary call-to-action\r\n- More balanced and modern hero layout\r\n- Maintained responsiveness across screen sizes and browsers\r\n\r\n## **What did NOT change**\r\n- No new features added\r\n- No content changes\r\n- No logic or backend changes\r\n\r\n## **Screenshots**\r\n### **Before**\r\n\"Screenshot\r\n\r\n### **After**\r\n\"Screenshot\r\n\r\n## Related Issue\r\nCloses #185\r\n\n\n\n\n## Summary by CodeRabbit\n\n## Release Notes\n\n* **New Features**\n * Added dark/light theme toggle in user menu\n * Redesigned header with comprehensive navigation menu (Start Debate, Tournaments, Team Debates, Leaderboard, Community, About)\n * Improved user profile and notification controls in header\n\n* **UI/Styling**\n * Enhanced home and debate pages with larger, bolder typography and improved visual hierarchy\n * Redesigned buttons with improved shadows and hover effects\n * Added text shadow effects for better readability across the app\n * Streamlined app layout with updated navigation structure\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/190/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/190/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/189", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/189/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/189/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/189/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/189", + "id": 3799469573, + "node_id": "I_kwDONYLDD87id04F", + "number": 189, + "title": "🧠 Feature Request: AI Devil’s Advocate Mode", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-10T10:17:51Z", + "updated_at": "2026-01-12T11:38:04Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## 🧠 Feature Summary\nIntroduce an optional **AI Devil’s Advocate mode** that periodically injects neutral, critical questions during debates to challenge assumptions, uncover logical gaps, and promote deeper reasoning — without taking sides.\n\n---\n\n## 🎯 Motivation / Problem Statement\nCurrently, debates in DebateAI rely solely on participants (human or AI) to challenge each other’s arguments. This can result in:\n\n- Unchallenged assumptions \n- Superficial rebuttals \n- Missed opportunities for deeper critical thinking \n\nAn **impartial AI observer** acting as a Devil’s Advocate can significantly enhance the educational value of debates by encouraging reflection and stronger argumentation.\n\n---\n\n## 💡 Proposed Solution\nAdd a configurable **AI Devil’s Advocate** that:\n\n- Observes the debate passively \n- Periodically analyzes recent messages \n- Injects **one concise, neutral question** aimed at:\n - Exposing hidden assumptions\n - Highlighting logical gaps\n - Encouraging clarification or evidence \n\nThe AI **does not argue or take sides** — it only asks questions.\n\n---\n\n## ✨ Key Features (MVP Scope)\n- [x] Optional toggle when creating a debate room \n- [x] Configurable frequency (e.g., every N messages) \n- [x] AI-generated questions based on recent transcript \n- [x] Distinct message type (e.g., “Devil’s Advocate”) \n- [x] Safe rate limits to avoid disruption \n\n---\n\n## 🧩 Implementation Overview (High-Level)\n\n### Backend\n- Extend debate room model to enable/disable Devil’s Advocate mode \n- Track message count to trigger AI invocation \n- Use existing LLM integration to generate questions \n- Broadcast Devil’s Advocate messages via existing WebSocket flow \n\n### Frontend\n- UI toggle for enabling the mode \n- Visual distinction for Devil’s Advocate messages \n- No changes to core debate flow or controls \n\n---\n\n## 🧪 Non-Goals (Out of Scope)\n- ❌ Real-time analysis for every message \n- ❌ Argument scoring or moderation \n- ❌ Taking sides or debating participants \n- ❌ Interrupting structured debate phases (e.g., closing statements) \n\n---\n\n## 🎓 Educational Impact\nThis feature:\n- Encourages reflective and critical thinking \n- Improves argument quality \n- Aligns with DebateAI’s mission of AI-assisted learning \n- Serves as a foundation for future research and GSoC-scale features \n\n---\n\n## 🔮 Future Extensions (Optional)\n- Post-debate summary of unanswered Devil’s Advocate questions \n- Difficulty levels for question depth \n- Integration with debate feedback and analytics \n\n---\n\n## 🙋 Contribution Intent\nI am willing to implement this feature and submit a PR following the project’s contribution guidelines. \nFeedback on scope, design, or approach is very welcome.\n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/189/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/189/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/188", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/188/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/188/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/188/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/188", + "id": 3799296737, + "node_id": "PR_kwDONYLDD868c5Cb", + "number": 188, + "title": "Feat/add debate personality profiles for human and ai participants", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-10T07:47:11Z", + "updated_at": "2026-02-28T07:16:10Z", + "closed_at": "2026-02-28T07:13:37Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/188", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/188", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/188.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/188.patch", + "merged_at": null + }, + "body": "### 📝 Description\r\n\r\nThis PR introduces post-debate personality analysis for debate participants (human and AI), providing structured, AI-generated insights into how participants argue rather than what they argue.\r\n\r\nThe feature analyzes completed debate transcripts, generates personality profiles per participant, and displays the results in the UI to support reflection and learning.\r\n\r\n### 🎯 Motivation\r\n\r\nDebateAI focuses on improving debating and critical-thinking skills. While current debates capture arguments and outcomes, users lack post-debate feedback on their argumentation style, tone, clarity, and responsiveness.\r\n\r\nThis change adds a reflection layer by generating Debate Personality Profiles after debate completion, aligned with DebateAI’s educational and AI-assisted goals.\r\n\r\n### ⚙️ Proposed Changes\r\n#### Backend\r\n➕ New Files\r\n\r\n- personality.go\r\n- Defines PersonalityProfile model:\r\n - ID: primitive.ObjectID\r\n - DebateID: primitive.ObjectID (linked to saved_debate_transcripts)\r\n - ParticipantID: string (user email or bot name)\r\n - ArgumentStyle: string\r\n - Tone: string\r\n - EvidenceUsage: int (0–10)\r\n - Clarity: int (0–10)\r\n - Responsiveness: int (0–10)\r\n - Summary: string\r\n - CreatedAt: time.Time\r\n\r\n- personality_service.go\r\n\r\n - Implements GeneratePersonalityProfiles(debateID string):\r\n - Fetches debate transcript from saved_debate_transcripts\r\n - Ensures debate Result is not \"pending\"\r\n - Groups messages by sender (User / Bot / Opponent)\r\n - Constructs participant-specific transcript\r\n - Calls AI with a structured prompt\r\n - Parses JSON response into PersonalityProfile\r\n - Persists results to personality_profiles collection\r\n\r\npersonality_controller.go\r\n\r\n- API handler for generating personality profiles\r\n\r\nHandles:\r\n\r\n - Debate not found\r\n - Debate not completed\r\n - AI processing errors\r\n\r\n#### ✏️ Modified Files\r\n\r\ndebate.go\r\n\r\nAdds route:\r\n\r\nPOST /api/debates/:id/personality\r\n\r\n - Frontend\r\n➕ New Components\r\n\r\n - PersonalityProfile.tsx\r\n\r\n - Renders participant personality traits\r\n - Uses radar chart or bar indicators\r\n - Displays AI-generated disclaimer clearly\r\n\r\n\r\n### ✏️ Modified Components\r\n\r\nViewDebate.tsx\r\n\r\n- Fetches personality profiles for completed debates\r\n- Displays PersonalityProfile component for each participant\r\n\r\n\r\n### 🧪 Verification Plan\r\n#### Automated Testing\r\n\r\n- Unit tests for personality service:\r\n- go test ./services/personality_service_test.go\r\n- Verify API response structure using curl or Postman\r\n\r\nManual Testing\r\n\r\nComplete a debate (User vs User or User vs Bot)\r\n\r\nTrigger personality analysis\r\n\r\nOpen View Debate\r\n\r\nVerify:\r\n\r\n- Personality profiles appear correctly\r\n- Scores and summaries are rendered properly\r\n- AI disclaimer is visible\r\n- UI styling remains consistent\r\n\r\n### 📦 Scope & Design Notes\r\n\r\n- Analysis is post-debate only (no real-time inference)\r\n- One personality profile per participant per debate\r\n- AI output is presented as assistive feedback, not absolute judgment\r\n\r\nScreenshot:\r\n\r\n\"Screenshot\r\n\"Screenshot\r\n\r\n\r\n### 🚀 Future Extensions (Not Included)\r\n\r\n- Long-term personality trends per user\r\n- Comparative analysis across debates\r\n- Personalized debate improvement tips\r\n\r\n### 🤝 Contribution Note\r\n\r\nThis PR is intended as a minimal, reviewable MVP. I’m happy to iterate on:\r\n\r\n- Trait definitions\r\n- Prompt design\r\n- UI visualization\r\n- Data modeling\r\n\r\nFeedback is very welcome.\r\n\r\n\r\n## Summary by CodeRabbit\r\n\r\n## Release Notes\r\n\r\n* **New Features**\r\n * Added AI-powered personality analysis for debate participants, generating profiles with metrics including argument style, tone, evidence usage, clarity, and responsiveness\r\n * Personality profiles automatically display in debate views and saved transcript history with radar chart visualizations\r\n * Enhanced transcript metadata to include participant email and role information\r\n\r\ncloses #184 \r\n✏️ Tip: You can customize this high-level summary in your review settings.\r\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/188/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/188/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/187", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/187/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/187/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/187/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/187", + "id": 3798139297, + "node_id": "PR_kwDONYLDD868ZJIh", + "number": 187, + "title": "fix React Router v7 future flag console warnings", + "user": { + "login": "kr1shnac", + "id": 215154755, + "node_id": "U_kgDODNMAQw", + "avatar_url": "https://avatars.githubusercontent.com/u/215154755?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kr1shnac", + "html_url": "https://github.com/kr1shnac", + "followers_url": "https://api.github.com/users/kr1shnac/followers", + "following_url": "https://api.github.com/users/kr1shnac/following{/other_user}", + "gists_url": "https://api.github.com/users/kr1shnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kr1shnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kr1shnac/subscriptions", + "organizations_url": "https://api.github.com/users/kr1shnac/orgs", + "repos_url": "https://api.github.com/users/kr1shnac/repos", + "events_url": "https://api.github.com/users/kr1shnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/kr1shnac/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-09T19:38:42Z", + "updated_at": "2026-02-25T14:49:19Z", + "closed_at": "2026-02-25T14:49:19Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/187", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/187", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/187.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/187.patch", + "merged_at": null + }, + "body": "**Description**\r\nWhile setting up the development environment, I noticed deprecation warnings in the browser console related to upcoming React Router v7 changes\r\n\r\n**Changes**\r\n- Enabled `v7_startTransition` and `v7_relativeSplatPath` flags in the `BrowserRouter` configuration (`main.tsx`)\r\n- This opts-in to the future behavior early and clears the console warnings, improving the Developer Experience (DX)\r\n\r\n**Testing**\r\n- Verified locally that the **console warnings are gone**\r\n- Verified that navigation and page rendering still work correctly\n\n\n\n## Summary by CodeRabbit\n\n* **Chores**\n * Updated router initialization configuration to improve stability and prepare for future library updates.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "kr1shnac", + "id": 215154755, + "node_id": "U_kgDODNMAQw", + "avatar_url": "https://avatars.githubusercontent.com/u/215154755?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kr1shnac", + "html_url": "https://github.com/kr1shnac", + "followers_url": "https://api.github.com/users/kr1shnac/followers", + "following_url": "https://api.github.com/users/kr1shnac/following{/other_user}", + "gists_url": "https://api.github.com/users/kr1shnac/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kr1shnac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kr1shnac/subscriptions", + "organizations_url": "https://api.github.com/users/kr1shnac/orgs", + "repos_url": "https://api.github.com/users/kr1shnac/repos", + "events_url": "https://api.github.com/users/kr1shnac/events{/privacy}", + "received_events_url": "https://api.github.com/users/kr1shnac/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/187/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/187/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/186", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/186/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/186/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/186/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/186", + "id": 3797512397, + "node_id": "I_kwDONYLDD87iWXDN", + "number": 186, + "title": "Feature Proposal: Multi-LLM Support for Redundancy, Cost Optimization, and User Selection", + "user": { + "login": "Prateekiiitg56", + "id": 151940407, + "node_id": "U_kgDOCQ5tNw", + "avatar_url": "https://avatars.githubusercontent.com/u/151940407?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Prateekiiitg56", + "html_url": "https://github.com/Prateekiiitg56", + "followers_url": "https://api.github.com/users/Prateekiiitg56/followers", + "following_url": "https://api.github.com/users/Prateekiiitg56/following{/other_user}", + "gists_url": "https://api.github.com/users/Prateekiiitg56/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Prateekiiitg56/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Prateekiiitg56/subscriptions", + "organizations_url": "https://api.github.com/users/Prateekiiitg56/orgs", + "repos_url": "https://api.github.com/users/Prateekiiitg56/repos", + "events_url": "https://api.github.com/users/Prateekiiitg56/events{/privacy}", + "received_events_url": "https://api.github.com/users/Prateekiiitg56/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-09T16:11:47Z", + "updated_at": "2026-01-09T16:11:47Z", + "closed_at": null, + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "Description \n\nCurrently, DebateAI relies on a single LLM provider for AI-powered debates. This creates potential risks related to availability, rate limits, token constraints, and cost variability. A single-provider dependency may also limit future extensibility and experimentation.\n\nSolution\n\nI propose introducing a provider-agnostic Multi-LLM architecture that allows DebateAI to integrate and switch between multiple Large Language Model (LLM) providers.\n\nKey aspects of the proposed solution:\n\nAbstract the LLM logic behind a common interface\n\nSupport multiple providers (e.g., Gemini, OpenAI, Claude, open-source LLMs)\n\nAllow runtime selection of the LLM per debate room\n\nEnable fallback mechanisms if a provider becomes unavailable\n\nWhy this is useful\n\nRedundancy & Reliability: Ensures AI debate features remain available even if one provider fails or is rate-limited.\n\nCost Efficiency: Different models can be selected based on cost-per-token, reducing operational expenses.\n\nScalability: Enables usage of models with larger context windows for long-form debates.\n\nVendor Neutrality: Avoids lock-in and aligns with open-source sustainability principles.\n\nProposed High-Level Design\n\nIntroduce an LLM service layer/interface in the backend\n\nImplement provider-specific adapters (e.g., GeminiAdapter, OpenAIAdapter)\n\nSelect provider based on configuration or user preference\n\nMaintain graceful degradation to human-only debates if no LLM is configured\n\nUser Impact\n\nUsers can choose an LLM when creating or joining a debate room\n\nFlexibility to switch between faster/cheaper models and more powerful models\n\nNo disruption to existing human-vs-human debate workflows\n\nAdditional Context\n\nThis feature aligns well with GSoC-style contributions, as it involves:\n\nBackend architecture design\n\nClean abstractions\n\nExtensibility for future contributors\n\nReal-world scalability and cost considerations\n\nI would be happy to work on this feature and discuss the design further with maintainers.\n\n@Zahnentferner @keshav-nischal Assign this to me!!", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/186/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/186/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/185", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/185/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/185/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/185/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/185", + "id": 3797488286, + "node_id": "I_kwDONYLDD87iWRKe", + "number": 185, + "title": "UI/UX Home Page Redesign", + "user": { + "login": "ankitkr104", + "id": 179861827, + "node_id": "U_kgDOCrh5Qw", + "avatar_url": "https://avatars.githubusercontent.com/u/179861827?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankitkr104", + "html_url": "https://github.com/ankitkr104", + "followers_url": "https://api.github.com/users/ankitkr104/followers", + "following_url": "https://api.github.com/users/ankitkr104/following{/other_user}", + "gists_url": "https://api.github.com/users/ankitkr104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankitkr104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankitkr104/subscriptions", + "organizations_url": "https://api.github.com/users/ankitkr104/orgs", + "repos_url": "https://api.github.com/users/ankitkr104/repos", + "events_url": "https://api.github.com/users/ankitkr104/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankitkr104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-09T16:05:13Z", + "updated_at": "2026-01-11T12:48:36Z", + "closed_at": "2026-01-11T12:48:36Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "Hi everyone,\n\nI’d like to contribute to improving the Home / Start Debate page UI by modernizing the visual layout while keeping all existing content, theme, icons, and functionality unchanged.\n\n**The goal of this contribution would be purely UI/UX focused:**\n\n- Improve visual hierarchy, spacing, and alignment\n\n- Increase text size and readability, especially for headings and key descriptions\n\n- Make the primary call-to-action more prominent\n\n- Create a clearer and more engaging first-time user experience\n\n- Ensure better responsiveness across screen sizes, devices, and browsers\n\nCurrently, some of the text feels slightly small, which can impact readability and overall visual impact. I plan to address this by refining typography (font sizing, line-height, and contrast) without altering the actual content.\n\n**My plan is to:**\n\n- Propose a redesigned Home page layout (structure, spacing, typography, and CTA emphasis only)\n\n- Share screenshots/mockups for feedback before implementation\n\n- Implement the approved design incrementally, starting with the hero section and CTA area\n\nThis work will not introduce new features or alter existing logic — it will only refine the presentation to make the interface feel more modern, clean, and approachable.\n\nPlease let me know if this aligns with the project goals and if I may proceed with a UI proposal.\n\nThanks for your time and guidance. \n\nHere is the current design of the home page. \n\"Image\"", + "closed_by": { + "login": "ankitkr104", + "id": 179861827, + "node_id": "U_kgDOCrh5Qw", + "avatar_url": "https://avatars.githubusercontent.com/u/179861827?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ankitkr104", + "html_url": "https://github.com/ankitkr104", + "followers_url": "https://api.github.com/users/ankitkr104/followers", + "following_url": "https://api.github.com/users/ankitkr104/following{/other_user}", + "gists_url": "https://api.github.com/users/ankitkr104/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ankitkr104/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ankitkr104/subscriptions", + "organizations_url": "https://api.github.com/users/ankitkr104/orgs", + "repos_url": "https://api.github.com/users/ankitkr104/repos", + "events_url": "https://api.github.com/users/ankitkr104/events{/privacy}", + "received_events_url": "https://api.github.com/users/ankitkr104/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/185/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/185/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/184", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/184/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/184/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/184/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/184", + "id": 3796785831, + "node_id": "I_kwDONYLDD87iTlqn", + "number": 184, + "title": "[FEATURE] Add Debate Personality Profiles for Human and AI Participants", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-09T12:33:38Z", + "updated_at": "2026-02-28T07:20:37Z", + "closed_at": "2026-02-28T07:20:37Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 📝 Issue Description\n #### 🚀 Motivation\n\nDebateAI aims to improve users’ debating and critical thinking skills. While debates currently focus on content exchange, users lack post-debate self-reflection and insight into how they argue rather than what they argue.\n\nIntroducing Debate Personality Profiles would provide participants with structured, AI-assisted feedback on their debating style, enabling deeper learning and long-term improvement.\n\n### 🎯 Proposed Feature: Debate Personality Profiles\n\n - This feature generates a personality-style profile for both human and AI debaters based on debate transcripts.\n - Each profile may include metrics such as:\n - Argument Style (Analytical ↔ Emotional)\n - Tone (Aggressive ↔ Calm)\n - Evidence Usage (Low ↔ High)\n - Clarity & Structure\n - Responsiveness to Opponent’s Claims\n - These insights would be generated post-debate using AI analysis and presented visually to users.\n\n### 🧠 Key Benefits\n\n- Encourages self-reflection and skill development\n- Makes AI usage more educational and transparent\n- Adds a unique, research-oriented dimension to DebateAI\n- Works for human-vs-human, human-vs-AI, and AI-vs-AI debates\n-\n### ⚙️ High-Level Implementation Idea (Open for Discussion)\n\n#### Backend\n\n - Aggregate debate messages per participant\n - Send participant-specific transcripts to the AI for analysis\n - Return structured JSON output (e.g. scores or labels per trait)\n - Persist personality insights linked to debate or user\n\n#### Frontend\n\n - Display profiles after debate completion\n - Use visual representations (e.g. radar chart or bar indicators)\n - Clearly communicate that insights are AI-generated estimates\n\n### 📦 Scope (Initial MVP)\n\n- Post-debate analysis only (no real-time inference)\n- Limited, well-defined set of traits\n- One profile per participant per debate\n\n### 🤝 Contribution Intent\n\n- I would like to work on implementing this feature and am happy to:\n- Discuss design choices with maintainers\n- Start with a minimal, reviewable MVP\n- Iterate based on feedback and project goals\n\n### 🧩 Related Ideas / Future Extensions\n\n- Track personality trends across multiple debates\n- Compare human vs AI debating styles\n- Use profiles to recommend personalized debate tips\n- Thank you for considering this proposal! I’d appreciate feedback on feasibility, scope, or alignment with DebateAI’s roadmap.", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/184/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/184/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/183", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/183/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/183/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/183/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/183", + "id": 3796064142, + "node_id": "I_kwDONYLDD87iQ1eO", + "number": 183, + "title": "[QUES]: Do we need a docker setup for production.", + "user": { + "login": "ayush00git", + "id": 183527389, + "node_id": "U_kgDOCvBn3Q", + "avatar_url": "https://avatars.githubusercontent.com/u/183527389?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ayush00git", + "html_url": "https://github.com/ayush00git", + "followers_url": "https://api.github.com/users/ayush00git/followers", + "following_url": "https://api.github.com/users/ayush00git/following{/other_user}", + "gists_url": "https://api.github.com/users/ayush00git/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ayush00git/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ayush00git/subscriptions", + "organizations_url": "https://api.github.com/users/ayush00git/orgs", + "repos_url": "https://api.github.com/users/ayush00git/repos", + "events_url": "https://api.github.com/users/ayush00git/events{/privacy}", + "received_events_url": "https://api.github.com/users/ayush00git/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-09T08:57:57Z", + "updated_at": "2026-01-10T15:41:37Z", + "closed_at": null, + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "The current docker setup is for a development environment. I noticed some things, that the `docker-compose` is using a local database, like it is using `mongo-shell` for the database, most of us devs who are contributing, i think they are using the `Mongo-Atlas`, so removing the `mongo:latest` from the `docker-compose` would surely be helpful, as it would also decrease the disk size that the project was using by around `1.2 GB`. This can be implemented as - \n1. We can remove the mongodb service from the `docker-compose` and use it externally outside the docker container.\n2. We can configure the docker to use an external service by configuring its network services.\n\n- Also the size of images is too big \n\n\"Image\"\n\nThe whole project is using around `6.5GB` disk space, we can reduce this using `docker multi stage build`, that would be helpful in production more. In development, it would have a minor effect, but for contributors setting up the project and can't afford that much disk space, using the multi stage build would really be helpful. \n\nWe don't have to remove the current docker setup, we can just make files like `Dockerfile` in frontend and backend and `docker-compose.prod.yml` to help them. I can assure that this docker setup would nearly take around a `1 - 2GB` if we also moved from using `mongo-shell` to `MongoDB Atlas`.\n\nThis surely will help users will low end devices to setup and contribute to the project.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/183/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/183/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/182", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/182/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/182/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/182/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/182", + "id": 3793713703, + "node_id": "PR_kwDONYLDD868Kf-W", + "number": 182, + "title": "feat: enhance authentication security and user experience", + "user": { + "login": "Kalpana-chavhan", + "id": 218618262, + "node_id": "U_kgDODQfZlg", + "avatar_url": "https://avatars.githubusercontent.com/u/218618262?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Kalpana-chavhan", + "html_url": "https://github.com/Kalpana-chavhan", + "followers_url": "https://api.github.com/users/Kalpana-chavhan/followers", + "following_url": "https://api.github.com/users/Kalpana-chavhan/following{/other_user}", + "gists_url": "https://api.github.com/users/Kalpana-chavhan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Kalpana-chavhan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kalpana-chavhan/subscriptions", + "organizations_url": "https://api.github.com/users/Kalpana-chavhan/orgs", + "repos_url": "https://api.github.com/users/Kalpana-chavhan/repos", + "events_url": "https://api.github.com/users/Kalpana-chavhan/events{/privacy}", + "received_events_url": "https://api.github.com/users/Kalpana-chavhan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-08T17:16:26Z", + "updated_at": "2026-02-28T07:12:10Z", + "closed_at": "2026-02-28T07:12:10Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/182", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/182", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/182.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/182.patch", + "merged_at": null + }, + "body": "### Overview\r\n\r\nThis PR introduces a significant upgrade to the authentication flow for both users and administrators. The goal was to improve security by enforcing stronger passwords while simultaneously enhancing the user experience through modern UI patterns and real-time feedback.\r\n\r\n---\r\n\r\n### Changes Made\r\n\r\n#### 1. Smart Password Validation\r\nImplemented a PasswordStrengthMeter component that provides real-time feedback against 5 security criteria (length, casing, digits, and special characters).\r\n\r\nAdded a smooth, color-coded progress bar that animates as requirements are met, utilizing a custom cubic-bezier transition for a premium feel.\r\n\r\nSuccess Feedback: Added a \"Password Secure!\" success toast that triggers with a subtle bounce animation when all security requirements are satisfied.\r\n\r\n#### 2. UI/UX Modernization\r\nVisibility Toggle: Replaced the legacy \"Show Password\" checkbox with a sleek Eye/Eye-Off icon toggle integrated directly into the input fields across Login, Signup, and Reset forms.\r\n\r\nForm Consistency: Refactored the AdminSignup and user forms.tsx to ensure a unified design language across the entire platform.\r\n\r\nValidation Guard: The \"Sign Up\" and \"Update Password\" buttons are now intelligently disabled until the password meets the required security threshold, preventing unnecessary API errors.\r\n\r\n#### 3. Technical Improvements\r\nUtilized useMemo for validation logic to ensure high performance during real-time typing.\r\n\r\nLeveraged lucide-react for consistent, lightweight iconography.\r\n\r\nOptimized Tailwind classes for better maintainability and dark-mode compatibility.\r\n\r\n---\r\n\r\n### Visual Checks\r\n\r\n- Progress bar transitions smoothly.\r\n- Eye toggle works for both password and confirm-password fields.\r\n- Success toast disappears after 3 seconds.\r\n- Build passed successfully locally.\r\n\r\n---\r\n\r\n### issue(s)\r\n\r\ncloses #49 \n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Password visibility toggle added across admin and auth forms.\n * Real-time password strength meter with live validation and feedback.\n * Streamlined signup, reset, OTP and Google Sign-In flows for smoother UX.\n\n* **Bug Fixes / Improvements**\n * Inputs and submit buttons disabled during loading; prevents premature submissions.\n * Safer post-login handling and clearer, more descriptive error messages.\n * Prevents proceeding on weak or mismatched passwords.\n\n* **Style**\n * New transition utility for strength meter animations.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/182/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/182/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/181", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/181/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/181/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/181/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/181", + "id": 3793226567, + "node_id": "PR_kwDONYLDD868I3fK", + "number": 181, + "title": "feat: implementation of real-time translation engine for cross-lingual debates", + "user": { + "login": "Kalpana-chavhan", + "id": 218618262, + "node_id": "U_kgDODQfZlg", + "avatar_url": "https://avatars.githubusercontent.com/u/218618262?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Kalpana-chavhan", + "html_url": "https://github.com/Kalpana-chavhan", + "followers_url": "https://api.github.com/users/Kalpana-chavhan/followers", + "following_url": "https://api.github.com/users/Kalpana-chavhan/following{/other_user}", + "gists_url": "https://api.github.com/users/Kalpana-chavhan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Kalpana-chavhan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kalpana-chavhan/subscriptions", + "organizations_url": "https://api.github.com/users/Kalpana-chavhan/orgs", + "repos_url": "https://api.github.com/users/Kalpana-chavhan/repos", + "events_url": "https://api.github.com/users/Kalpana-chavhan/events{/privacy}", + "received_events_url": "https://api.github.com/users/Kalpana-chavhan/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-08T14:56:31Z", + "updated_at": "2026-02-28T07:11:52Z", + "closed_at": "2026-02-28T07:11:52Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/181", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/181", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/181.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/181.patch", + "merged_at": null + }, + "body": "### Overview\r\n\r\nCommunication shouldn't have a language barrier. This PR introduces a robust, real-time translation layer that allows users to participate in debates using their preferred language,regardless of whether they are facing a human opponent in a WebSocket room or training against our AI bots.\r\n\r\nBy leveraging Google’s Gemini AI, we now translate incoming and outgoing arguments on the fly, ensuring that the core of the debate, the logic and the rhetoric remains intact across different languages.\r\n\r\n---\r\n\r\n### Core Enhancements\r\n\r\n1. The Translation Engine (backend/services)\r\nDeveloped a centralized TranslateContent service that interfaces with Gemini.\r\nImplemented smart caching/initialization to ensure the API is only called when a language mismatch is detected.\r\n\r\n2. Seamless PvP Experience (backend/websocket)\r\nIntegrated the translation logic directly into the WebSocket broadcast cycle.\r\nThe Result: If Player A speaks English and Player B speaks Spanish, the system translates the payload mid-transit, allowing both users to see the argument in their native tongue instantly.\r\n\r\n3. Bot Mode Intelligence (backend/main.go & frontend)\r\nExposed a new /api/translate REST endpoint to bridge the Gap for the Bot Room.\r\nUpdated the DebateRoom logic to intercept bot-generated English responses and translate them before they hit the state, providing a localized experience for solo practice.\r\n\r\n---\r\n\r\n### Technical Implementation Details\r\n\r\n- Backend: Built with Go and Gin. I've added a custom CORS configuration to handle the cross-origin requests between the React frontend and the new translation API.\r\n- Frontend: Refactored the handleBotTurn function in React to utilize an async translation bridge, complete with error boundaries to fallback to English if the translation service is unreachable.\r\n- Efficiency: Added checks to skip translation calls if the target_lang matches the source, saving API quota and reducing latency.\r\n\r\n---\r\n\r\n### issue(s)\r\ncloses #171 \r\n\r\n---\r\n\r\n### How to Test\r\n\r\n- Environment: Ensure GEMINI_API_KEY is set in your .env.\r\n- User Settings: Set your profile language to something other than English (e.g., \"Spanish\" or \"French\").\r\n- Bot Debate: Start a \"Bot Mode\" debate. The bot's arguments should appear in your selected language.\r\n- PvP Debate: Open two browser windows with users set to different languages. Send a message from one; it should arrive translated in the other.\r\n\r\n---\r\n\r\n### Closing Note\r\nThis feature significantly increases the accessibility of ArgueHub, opening the doors for a global user base to practice their debating skills without language constraints.\n\n\n## Summary by CodeRabbit\n\n* **New Features**\n * Real-time debate rooms with media capture, transcription, and live broadcasting.\n * Translation service integrated for on-demand and in-stream translations (API + WebSocket).\n * Chat UI: toggle between translated and original text; messages include translation metadata.\n* **Refactor**\n * Bot turn flow and state updates simplified for more reliable turn progression.\n* **Chores**\n * Environment config loading at startup and translation service initialization.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/181/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/181/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/180", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/180/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/180/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/180/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/180", + "id": 3782589505, + "node_id": "PR_kwDONYLDD867lwUs", + "number": 180, + "title": "Add MIT license and contribution guidelines", + "user": { + "login": "Abhishek2005-ard", + "id": 176069631, + "node_id": "U_kgDOCn6b_w", + "avatar_url": "https://avatars.githubusercontent.com/u/176069631?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhishek2005-ard", + "html_url": "https://github.com/Abhishek2005-ard", + "followers_url": "https://api.github.com/users/Abhishek2005-ard/followers", + "following_url": "https://api.github.com/users/Abhishek2005-ard/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhishek2005-ard/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhishek2005-ard/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhishek2005-ard/subscriptions", + "organizations_url": "https://api.github.com/users/Abhishek2005-ard/orgs", + "repos_url": "https://api.github.com/users/Abhishek2005-ard/repos", + "events_url": "https://api.github.com/users/Abhishek2005-ard/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhishek2005-ard/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-05T19:12:44Z", + "updated_at": "2026-01-08T12:50:24Z", + "closed_at": "2026-01-08T12:50:24Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/180", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/180", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/180.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/180.patch", + "merged_at": null + }, + "body": "Summary\r\nThis pull request improves the project’s open-source readiness by adding a clear MIT license and contribution guidelines. These additions help define usage rights and make it easier for new contributors to understand how to get started with the project.\r\n\r\nChanges Made\r\n- Added an MIT LICENSE file to clarify legal usage and distribution\r\n- Added CONTRIBUTING.md with clear steps for contributors\r\n- Updated README to reference licensing and contribution information\r\n\r\nWhy This Change\r\nClear licensing and contribution documentation are essential for open-source collaboration. This change improves project transparency, encourages community contributions, and aligns the repository with open-source best practices.\r\n\r\nChecklist\r\nNo breaking changes\r\nFrontend/backend logic unchanged\r\nDocumentation only changes\r\n\r\nCloses #22 \r\n\r\n\n\n\n\n## Summary by CodeRabbit\n\n* **Documentation**\n * Added CONTRIBUTING.md with contribution guidelines and repository setup instructions\n * Added MIT License file with AOSSIE copyright notice\n * Updated README.md license section with streamlined formatting\n\n* **Style**\n * Integrated Outfit font family throughout the application\n * Added Google Fonts preconnection hints to HTML\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/180/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/180/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/179", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/179/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/179/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/179/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/179", + "id": 3780553328, + "node_id": "PR_kwDONYLDD867fCUy", + "number": 179, + "title": "Dockerize application for local development environment", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-05T08:06:44Z", + "updated_at": "2026-01-08T14:35:06Z", + "closed_at": "2026-01-08T14:35:06Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/179", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/179", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/179.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/179.patch", + "merged_at": "2026-01-08T14:35:06Z" + }, + "body": "Fixes #141\r\n\r\nThis PR introduces a containerized development environment using Docker and Docker Compose. This simplifies the setup process for new contributors and ensures a consistent environment across different machines by orchestrating the Frontend, Backend, and MongoDB services.\r\n\r\n### Changes Made\r\n* **Backend**:\r\n * Added [backend/Dockerfile.dev](cci:7://file:///home/bashar-khan/openSource/DebateAI/backend/Dockerfile.dev:0:0-0:0) using `golang:1.24-alpine`.\r\n * Updated [config/config.go](cci:7://file:///home/bashar-khan/openSource/DebateAI/backend/config/config.go:0:0-0:0) to allow overriding configuration values (Database URI, API keys) via environment variables.\r\n * Configured to run directly via `go run`.\r\n* **Frontend**:\r\n * Added [frontend/Dockerfile.dev](cci:7://file:///home/bashar-khan/openSource/DebateAI/frontend/Dockerfile.dev:0:0-0:0) using `node:20-alpine`.\r\n * Configured Vite to bind to `0.0.0.0` for container accessibility.\r\n* **Orchestration**:\r\n * Added [docker-compose.yml](cci:7://file:///home/bashar-khan/openSource/DebateAI/docker-compose.yml:0:0-0:0) to run all services (Backend, Frontend, MongoDB) internally connected via a shared network.\r\n * Added [.dockerignore](cci:7://file:///home/bashar-khan/openSource/DebateAI/.dockerignore:0:0-0:0) files to optimize build context.\r\n * Added `.env.example` template.\r\n\r\n### How to Run Locally\r\n\r\n1. **Clone the branch**:\r\n ```bash\r\n git checkout -b feature/dockerization\r\n ```\r\n\r\n2. **Setup Environment Variables**:\r\n * Create a `.env` file in `frontend/` (see [.env.example](cci:7://file:///home/bashar-khan/openSource/DebateAI/.env.example:0:0-0:0)).\r\n * Create a `.env` file in `backend/` containing your secrets (`GEMINI_API_KEY`, `GOOGLE_CLIENT_ID`, etc.).\r\n\r\n3. **Start the App**:\r\n ```bash\r\n docker compose up --build\r\n ```\r\n\r\n * **Frontend**: http://localhost:5173\r\n * **Backend**: http://localhost:1313\r\n * **MongoDB**: exposed on port 27017\r\n\r\n### Verification\r\n- [x] Verified backend starts successfully and connects to MongoDB container.\r\n- [x] Verified frontend runs and is accessible from the browser.\r\n- [x] Verified API connectivity between frontend and backend containers.\n\n\n\n## Summary by CodeRabbit\n\n## Release Notes\n\n* **New Features**\n * Added Docker support for local development with containerized backend and frontend services.\n * Introduced Docker Compose configuration for easy multi-service orchestration and development workflow.\n * Added environment configuration template for setup guidance.\n\n* **Chores**\n * Updated ignore patterns for cleaner repository and Docker contexts.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/179/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/179/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/178", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/178/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/178/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/178/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/178", + "id": 3779382901, + "node_id": "PR_kwDONYLDD867bdhV", + "number": 178, + "title": "fix: resolve sidebar overflow and layout scrolling behavior #176", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2026-01-04T15:57:28Z", + "updated_at": "2026-01-08T12:54:40Z", + "closed_at": "2026-01-08T12:54:40Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/178", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/178", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/178.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/178.patch", + "merged_at": "2026-01-08T12:54:40Z" + }, + "body": "# Closes #176\r\n\r\n### Description\r\nThis PR addresses a UI/UX bug where the sidebar navigation was scrolling along with the page content, causing it to disappear from the viewport on long pages (like the \"About\" page). \r\n\r\nThe layout has been updated to ensure:\r\n1. The **Sidebar** remains fixed (sticky) on the left side of the screen.\r\n2. The **Main Content** area has its own independent scrollbar (`overflow-y: auto`).\r\n3. The main layout wrapper occupies the full viewport height (`100vh`) to prevent body-level scrolling.\r\n\r\n### Changes Made\r\n- Modified the main layout container to use a fixed height of `100vh`.\r\n- Applied `overflow-hidden` to the parent wrapper to stop the entire page from scrolling.\r\n- Added `overflow-y: auto` specifically to the main content area so users can scroll content while keeping navigation accessible.\r\n\r\n### 📸 Screenshots / Video\r\n\"image\"\r\n\r\n### 🧪 How to Test\r\n1. Pull this branch locally.\r\n2. Navigate to the **About** page (or any page with significant text).\r\n3. Scroll down the page.\r\n4. Verify that the Sidebar remains visible on the left while the text content scrolls.\r\n\r\n### ✅ Checklist\r\n- [x] My code follows the code style of this project.\r\n- [x] I have performed a self-review of my own code.\r\n- [x] I have verified the fix on different screen sizes (Laptop/Desktop).\r\n- [x] Vital features and changes captured in unit and/or integration tests (Verified visually).\n\n\n\n## Summary by CodeRabbit\n\n* **Style**\n * Improved vertical scrolling behavior in the main content area to accommodate overflow content\n * Enhanced sidebar navigation with scrolling support when items exceed available height\n * Refined overall layout structure with improved sizing and constraints for better content management\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/178/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/178/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/177", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/177/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/177/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/177/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/177", + "id": 3779108209, + "node_id": "PR_kwDONYLDD867arIm", + "number": 177, + "title": "#158 BUG fix(auth): add client-side password length validation", + "user": { + "login": "compiler041", + "id": 209431292, + "node_id": "U_kgDODHuq_A", + "avatar_url": "https://avatars.githubusercontent.com/u/209431292?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/compiler041", + "html_url": "https://github.com/compiler041", + "followers_url": "https://api.github.com/users/compiler041/followers", + "following_url": "https://api.github.com/users/compiler041/following{/other_user}", + "gists_url": "https://api.github.com/users/compiler041/gists{/gist_id}", + "starred_url": "https://api.github.com/users/compiler041/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/compiler041/subscriptions", + "organizations_url": "https://api.github.com/users/compiler041/orgs", + "repos_url": "https://api.github.com/users/compiler041/repos", + "events_url": "https://api.github.com/users/compiler041/events{/privacy}", + "received_events_url": "https://api.github.com/users/compiler041/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-04T10:45:22Z", + "updated_at": "2026-01-08T14:06:09Z", + "closed_at": "2026-01-08T14:06:09Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/pulls/177", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/pull/177", + "diff_url": "https://github.com/AOSSIE-Org/DebateAI/pull/177.diff", + "patch_url": "https://github.com/AOSSIE-Org/DebateAI/pull/177.patch", + "merged_at": "2026-01-08T14:06:09Z" + }, + "body": " Summary\r\nThe frontend login form allowed passwords shorter than the backend minimum length, resulting in avoidable 400 errors.\r\n\r\n Changes\r\nAdded client-side password length validation (minimum 8 characters)\r\nDisplayed a clear inline validation message\r\nPrevented invalid authentication requests from reaching the backend\r\n\r\nImpact\r\nImproved login UX\r\nReduced unnecessary backend errors\r\nAligned frontend validation with backend constraints\r\n\r\nFixes #158\r\n\n\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n * Added client-side password length validation and clearer inline error messaging on login.\n * Improved Google Sign-In handling for more reliable sign-in flows across the app.\n * Minor UI and initialization tweaks to ensure the third-party sign-in button and related flows behave consistently.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "bhavik-mangla", + "id": 92915999, + "node_id": "U_kgDOBYnJHw", + "avatar_url": "https://avatars.githubusercontent.com/u/92915999?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bhavik-mangla", + "html_url": "https://github.com/bhavik-mangla", + "followers_url": "https://api.github.com/users/bhavik-mangla/followers", + "following_url": "https://api.github.com/users/bhavik-mangla/following{/other_user}", + "gists_url": "https://api.github.com/users/bhavik-mangla/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bhavik-mangla/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bhavik-mangla/subscriptions", + "organizations_url": "https://api.github.com/users/bhavik-mangla/orgs", + "repos_url": "https://api.github.com/users/bhavik-mangla/repos", + "events_url": "https://api.github.com/users/bhavik-mangla/events{/privacy}", + "received_events_url": "https://api.github.com/users/bhavik-mangla/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/177/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/177/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/176", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/176/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/176/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/DebateAI/issues/176/events", + "html_url": "https://github.com/AOSSIE-Org/DebateAI/issues/176", + "id": 3779085743, + "node_id": "I_kwDONYLDD87hQEWv", + "number": 176, + "title": "[UI/UX] Sidebar navigation scrolls away with page content (Layout Overflow)", + "user": { + "login": "Basharkhan7776", + "id": 146465667, + "node_id": "U_kgDOCLrjgw", + "avatar_url": "https://avatars.githubusercontent.com/u/146465667?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Basharkhan7776", + "html_url": "https://github.com/Basharkhan7776", + "followers_url": "https://api.github.com/users/Basharkhan7776/followers", + "following_url": "https://api.github.com/users/Basharkhan7776/following{/other_user}", + "gists_url": "https://api.github.com/users/Basharkhan7776/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Basharkhan7776/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Basharkhan7776/subscriptions", + "organizations_url": "https://api.github.com/users/Basharkhan7776/orgs", + "repos_url": "https://api.github.com/users/Basharkhan7776/repos", + "events_url": "https://api.github.com/users/Basharkhan7776/events{/privacy}", + "received_events_url": "https://api.github.com/users/Basharkhan7776/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2026-01-04T10:19:08Z", + "updated_at": "2026-01-08T12:54:41Z", + "closed_at": "2026-01-08T12:54:41Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Describe the bug\nThe application layout does not separate the sidebar navigation from the main content scroll area. As a result, when a user scrolls down on long pages (like the \"About\" page), the sidebar navigation scrolls up and disappears from the viewport.\n\nThis breaks standard dashboard UX patterns where the navigation rail should remain fixed/sticky to allow users to switch contexts without scrolling back to the top.\n\n### To Reproduce\n1. Navigate to the **About** page (or any page with scrollable content).\n2. Scroll down to read the bottom of the content.\n3. Observe that the left sidebar navigation moves up and exits the screen along with the content.\n\n### Expected behavior\nThe application layout should be split into a fixed sidebar and a scrollable content area.\n- **Sidebar:** Should remain fixed (sticky) on the left side of the viewport.\n- **Main Content:** Should have its own scroll container (`overflow-y: auto`) so users can read content while keeping navigation accessible.\n\n### Screenshots / Video\nhttps://github.com/user-attachments/assets/c62d3132-8333-4ba5-bf8d-47f5b9bbce09\n\n### Desktop (please complete the following information):\n - **OS:** Linux / Windows / Mac\n - **Browser:** Chrome / Firefox\n - **Resolution:** Standard Laptop/Desktop viewport\n\n### Possible Solution\nThe main layout wrapper likely needs a CSS adjustment.\n- Ensure the parent container has a fixed height (e.g., `h-screen` or `100vh`).\n- Apply `overflow-hidden` to the parent.\n- Apply `overflow-y-auto` specifically to the `
` or content wrapper div, while keeping the `
\r\n))}\r\n```\r\n\r\nFeatures.css\r\n\r\n```css\r\n.feature-item:hover .icon-wrapper {\r\n transform: scale(1.05) rotate(5deg);\r\n box-shadow:\r\n 0 30px 60px rgba(0, 0, 0, 0.12),\r\n 0 0 20px var(--icon-color);\r\n border-color: var(--icon-color);\r\n}\r\n```\r\n\r\n## 🧪 Verification\r\n\r\nResponsiveness\r\n- The Features section stacks correctly on mobile and tablet breakpoints.\r\n\r\nBuild\r\n- No compilation errors expected; react-icons is already a standard dependency.\r\n\r\nVisual Quality\r\n- Each feature now has a distinct icon and color, improving clarity and perceived quality.\r\n\r\n\r\n## 📍 Files Changed\r\n\r\nsrc/components/Features/Features.js\r\nsrc/components/Features/Features.css\r\n\r\n## 🎯 Impact\r\n\r\n- Improves first impressions and usability of the landing page\r\n- Enhances accessibility and keyboard navigation\r\n- Makes the Features section easier to maintain and extend\r\n- Aligns the UI with modern landing page design standards\r\n\r\n\n## Summary by CodeRabbit\n\n* **Improvements**\n * Redesigned Features section to use icon-driven visuals with decorative glow, larger spacing, refined typography, rounded visual containers, and smooth hover/focus animations.\n * Adjusted overall layout and padding with responsive behavior for tablet and mobile (stacking, scaled visuals, reduced gaps).\n\n* **Accessibility**\n * Feature items are keyboard-focusable with clearer semantic structure and improved focus indicators for better navigation.\n\n✏️ Tip: You can customize this high-level summary in your review settings.\n", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/131/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/131/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/130", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/130/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/130/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/130/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/130", + "id": 3835237487, + "node_id": "PR_kwDOKgeNAM6-S0gm", + "number": 130, + "title": "UI/UX: Auto-hide header on scroll for improved content visibility", + "user": { + "login": "kunal-bunkar", + "id": 183866603, + "node_id": "U_kgDOCvWU6w", + "avatar_url": "https://avatars.githubusercontent.com/u/183866603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/kunal-bunkar", + "html_url": "https://github.com/kunal-bunkar", + "followers_url": "https://api.github.com/users/kunal-bunkar/followers", + "following_url": "https://api.github.com/users/kunal-bunkar/following{/other_user}", + "gists_url": "https://api.github.com/users/kunal-bunkar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/kunal-bunkar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kunal-bunkar/subscriptions", + "organizations_url": "https://api.github.com/users/kunal-bunkar/orgs", + "repos_url": "https://api.github.com/users/kunal-bunkar/repos", + "events_url": "https://api.github.com/users/kunal-bunkar/events{/privacy}", + "received_events_url": "https://api.github.com/users/kunal-bunkar/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2026-01-20T20:03:15Z", + "updated_at": "2026-02-05T18:55:30Z", + "closed_at": "2026-01-27T21:42:43Z", + "assignee": null, + "author_association": "CONTRIBUTOR", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/pulls/130", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/130", + "diff_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/130.diff", + "patch_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/130.patch", + "merged_at": null + }, + "body": "Description\r\n\r\nThis PR improves the header UX by introducing an auto-hide behavior based on scroll direction.\r\n\r\nCurrently, the header is always fixed and occupies a significant portion of the viewport, especially on smaller screens. This change makes the interface cleaner and more user-friendly by dynamically showing or hiding the header depending on user interaction.\r\n\r\nWhat’s changed\r\n\r\nHeader hides when the user scrolls up\r\n\r\nHeader reappears when the user scrolls down\r\n\r\nImproves content visibility without removing header accessibility\r\n\r\nEnhances UX on mobile and smaller screens\r\n\r\nMotivation & Context\r\n\r\nThe fixed header reduced usable screen space and made the UI feel crowded.\r\nThis behavior aligns with modern UI patterns used in popular websites and applications, providing a smoother and more intuitive browsing experience.\r\n\r\nFixes #117 \r\n\r\n## Type of change\r\n\r\n- [ ] UI/UX update (design changes, interface improvements)\r\n\r\n## How Has This Been Tested?\r\n\r\n- Tested locally on desktop and mobile screen sizes\r\n- Verified header hides when scrolling up\r\n- Verified header reappears when scrolling down\r\n- Ensured no layout shift or overlap with main content\r\n\r\nhttps://github.com/user-attachments/assets/77a04f19-7ef5-48bd-afb9-4ce6bb30b6d3\r\n\r\n## Checklist:\r\n\r\n- [ ] My code follows the style guidelines of this project\r\n- [ ] I have performed a self-review of my own code\r\n- [ ] I have commented my code, particularly in hard-to-understand areas\r\n- [ ] I have made corresponding changes to the documentation\r\n- [ ] My changes generate no new warnings\r\n- [ ] I have added tests that prove my fix is effective or that my feature works\r\n- [ ] New and existing unit tests pass locally with my changes\r\n- [ ] Any dependent changes have been merged and published in downstream modules\r\n- [ ] I have checked my code and corrected any misspellings\r\n", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/130/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/130/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/129", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/129/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/129/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/129/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/129", + "id": 3834406950, + "node_id": "PR_kwDOKgeNAM6-QBDa", + "number": 129, + "title": "Improve AOSSIE navbar link styling", + "user": { + "login": "PriyankaVerma2307", + "id": 197739033, + "node_id": "U_kgDOC8lCGQ", + "avatar_url": "https://avatars.githubusercontent.com/u/197739033?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PriyankaVerma2307", + "html_url": "https://github.com/PriyankaVerma2307", + "followers_url": "https://api.github.com/users/PriyankaVerma2307/followers", + "following_url": "https://api.github.com/users/PriyankaVerma2307/following{/other_user}", + "gists_url": "https://api.github.com/users/PriyankaVerma2307/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PriyankaVerma2307/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PriyankaVerma2307/subscriptions", + "organizations_url": "https://api.github.com/users/PriyankaVerma2307/orgs", + "repos_url": "https://api.github.com/users/PriyankaVerma2307/repos", + "events_url": "https://api.github.com/users/PriyankaVerma2307/events{/privacy}", + "received_events_url": "https://api.github.com/users/PriyankaVerma2307/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-20T16:09:29Z", + "updated_at": "2026-01-27T21:43:04Z", + "closed_at": "2026-01-27T21:43:04Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/pulls/129", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/129", + "diff_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/129.diff", + "patch_url": "https://github.com/AOSSIE-Org/Resonate-Website/pull/129.patch", + "merged_at": null + }, + "body": "## Description\r\n\r\nThis PR removes the external link icon from the AOSSIE navbar link and styles it as a clean pill-shaped button.\r\n\r\n\r\nFixes # 128\r\n\r\n## Type of change\r\n\r\n- Removed FaExternalLinkAlt icon from AOSSIE link\r\n- Added dedicated button styling for better UI consistency\r\n\r\n- [ ] Bug fix (non-breaking CHANGE which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)\r\n- [ ] Refactor (does not change functionality, e.g. code style improvements, linting)\r\n- [ ] Documentation update\r\n- [ ] New release (version bump, release preparation)\r\n- [x] UI/UX update (design changes, interface improvements)\r\n- [ ] CI/CD & Tooling (workflow, build, or dev tool changes)\r\n- [ ] Dependency update (package upgrades or deprecation fixes)\r\n\r\n##Screen Recording\r\n\r\n[nav.webm](https://github.com/user-attachments/assets/5a57a6c1-276e-4c6a-baa8-7a99447a7159)\r\n\r\n\r\n## Checklist:\r\n\r\n- [x] My code follows the style guidelines of this project\r\n- [x] I have performed a self-review of my own code\r\n- [ ] I have commented my code, particularly in hard-to-understand areas\r\n- [ ] I have made corresponding changes to the documentation\r\n- [x] My changes generate no new warnings\r\n- [ ] I have added tests that prove my fix is effective or that my feature works\r\n- [x] New and existing unit tests pass locally with my changes\r\n- [ ] Any dependent changes have been merged and published in downstream modules\r\n- [x] I have checked my code and corrected any misspellings\r\n\r\n## Maintainer Checklist\r\n\r\n- [x] closes #128 \r\n- [x] Tag the PR with the appropriate labels", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/129/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/129/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/128", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/128/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/128/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/128/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/128", + "id": 3834399659, + "node_id": "I_kwDOKgeNAM7kjEur", + "number": 128, + "title": "UI/UX: Improve AOSSIE link styling in navbar by removing external link icon", + "user": { + "login": "PriyankaVerma2307", + "id": 197739033, + "node_id": "U_kgDOC8lCGQ", + "avatar_url": "https://avatars.githubusercontent.com/u/197739033?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PriyankaVerma2307", + "html_url": "https://github.com/PriyankaVerma2307", + "followers_url": "https://api.github.com/users/PriyankaVerma2307/followers", + "following_url": "https://api.github.com/users/PriyankaVerma2307/following{/other_user}", + "gists_url": "https://api.github.com/users/PriyankaVerma2307/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PriyankaVerma2307/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PriyankaVerma2307/subscriptions", + "organizations_url": "https://api.github.com/users/PriyankaVerma2307/orgs", + "repos_url": "https://api.github.com/users/PriyankaVerma2307/repos", + "events_url": "https://api.github.com/users/PriyankaVerma2307/events{/privacy}", + "received_events_url": "https://api.github.com/users/PriyankaVerma2307/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 8, + "created_at": "2026-01-20T16:07:24Z", + "updated_at": "2026-01-27T20:30:19Z", + "closed_at": "2026-01-27T20:30:19Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 🎨 The UI/UX Update\n\nThis issue proposes removing the external link icon and styling the AOSSIE link as a proper pill-style button for better visual consistency with the navbar.\n\n\n\n\n### Current Design Issues\n\nCurrently, the AOSSIE link in the navbar includes an external link icon, which makes it look less like a clean button.\n\n### Proposed Solution\n\n- Remove external link icon from AOSSIE navbar link\n- Style AOSSIE link as a clean button\n- Keep functionality unchanged\n\n### Design Considerations\n\n- [ ] Accessibility\n- [ ] Visual consistency\n- [ ] User flow/navigation\n- [x] Responsive design\n- [ ] Dark mode support\n- [ ] Other", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/128/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/128/timeline", + "performed_via_github_app": null, + "state_reason": "duplicate", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/127", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/127/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/127/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/127/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/127", + "id": 3834387837, + "node_id": "I_kwDOKgeNAM7kjB19", + "number": 127, + "title": "🐳 Feature Request: Add Docker-Based Development Setup for New Contributors", + "user": { + "login": "Abhinandankaushik", + "id": 158504394, + "node_id": "U_kgDOCXKVyg", + "avatar_url": "https://avatars.githubusercontent.com/u/158504394?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Abhinandankaushik", + "html_url": "https://github.com/Abhinandankaushik", + "followers_url": "https://api.github.com/users/Abhinandankaushik/followers", + "following_url": "https://api.github.com/users/Abhinandankaushik/following{/other_user}", + "gists_url": "https://api.github.com/users/Abhinandankaushik/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Abhinandankaushik/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Abhinandankaushik/subscriptions", + "organizations_url": "https://api.github.com/users/Abhinandankaushik/orgs", + "repos_url": "https://api.github.com/users/Abhinandankaushik/repos", + "events_url": "https://api.github.com/users/Abhinandankaushik/events{/privacy}", + "received_events_url": "https://api.github.com/users/Abhinandankaushik/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 6085586546, + "node_id": "LA_kwDOKgeNAM8AAAABarqucg", + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/labels/wontfix", + "name": "wontfix", + "color": "ffffff", + "default": true, + "description": "This will not be worked on" + } + ], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2026-01-20T16:04:06Z", + "updated_at": "2026-01-27T20:31:33Z", + "closed_at": "2026-01-27T20:31:30Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 🚀 The feature\n\nCurrently, setting up the project locally requires contributors to manually install multiple dependencies, configure environment variables, and match specific versions of tools.\nFor new contributors, this creates a steep onboarding curve and often leads to:\nEnvironment mismatch issues\nSetup failures across different operating systems\nIncreased time before first contribution\nThis can discourage first-time contributors from getting started quickly.\n\nMy Solution : \nIntroduce a Docker-based development environment that allows contributors to set up and run the project using a single command.\nThe Docker setup would:\nEncapsulate all required dependencies\nProvide a consistent development environment across OS (Windows / Linux / macOS)\nReduce onboarding time significantly \n\n\nExpected Implementation\nAdd a Dockerfile for building the application environment\nAdd a docker-compose.yml \nUpdate README.md with:\nPrerequisites (Docker & Docker Compose)\ngit clone \ncd \ndocker build -t -f Dockerfile.yml .\ndocker compose up --build\n", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/127/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/127/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/126", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/126/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/126/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/126/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/126", + "id": 3834175559, + "node_id": "I_kwDOKgeNAM7kiOBH", + "number": 126, + "title": "🎨 UI/UX: Features Section Visual Refinement & Interaction Enhancement", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-20T15:14:38Z", + "updated_at": "2026-01-27T20:32:30Z", + "closed_at": "2026-01-27T20:32:30Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 🎨 The UI/UX Update\n\nThis proposal focuses on improving the **Features section on the home page** by enhancing visual clarity and interactivity.\n\nThe goal is to:\n- Make each feature visually distinct\n- Improve visual hierarchy and scannability\n- Add subtle interaction feedback to increase engagement\n\nThe update targets the **Features component**, which currently presents multiple core features with identical visuals and static cards.\n\n\n### Current Design Issues\n\n- All feature cards use the same image asset, making it difficult for users to distinguish between different features.\n- The lack of unique visuals weakens the visual hierarchy and reduces clarity.\n- Feature cards are static and provide no hover or interaction feedback.\n- Overall, the section feels less engaging and less aligned with modern UI/UX expectations.\n\n\n### Proposed Solution\n\n- Replace the shared image with **unique, feature-specific visual assets**, such as:\n - SVG icons\n - Lightweight 3D illustrations\n- Ensure each visual clearly represents its corresponding feature (e.g., audio, rooms, chat).\n- Add subtle hover effects to feature cards:\n - Slight lift effect (e.g., translateY)\n - Soft shadow or border glow\n - Smooth transitions for a polished experience\n- Optionally refactor the component to use a data-driven structure for better scalability and maintainability.\n\n\n## 🎯 Design Considerations\n\n- **Accessibility**\n - Maintain sufficient contrast and ensure hover effects do not reduce readability.\n\n- **Visual Consistency**\n - Align icons, spacing, and hover effects with the existing design system.\n\n- **User Flow & Clarity**\n - Improve quick understanding of features through distinct visuals.\n\n- **Responsive Design**\n - Ensure the Features section remains visually consistent across mobile, tablet, and desktop breakpoints.\n\n\n## 🙌 Closing Note\n\nThis refinement improves first impressions, enhances usability, and strengthens the overall polish of the Resonate landing page without introducing breaking changes.\n\n\n### Design Considerations\n\n- [x] Accessibility\n- [x] Visual consistency\n- [x] User flow/navigation\n- [x] Responsive design\n- [x] Dark mode support\n- [x] Other", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/126/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/126/timeline", + "performed_via_github_app": null, + "state_reason": "duplicate", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/125", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/125/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/125/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/125/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/125", + "id": 3833963597, + "node_id": "I_kwDOKgeNAM7khaRN", + "number": 125, + "title": "DOC: updating README file to work on dev branch and updating CONTRIBUTING.md file URL in README file", + "user": { + "login": "rahul-vyas-dev", + "id": 194380849, + "node_id": "U_kgDOC5YEMQ", + "avatar_url": "https://avatars.githubusercontent.com/u/194380849?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahul-vyas-dev", + "html_url": "https://github.com/rahul-vyas-dev", + "followers_url": "https://api.github.com/users/rahul-vyas-dev/followers", + "following_url": "https://api.github.com/users/rahul-vyas-dev/following{/other_user}", + "gists_url": "https://api.github.com/users/rahul-vyas-dev/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahul-vyas-dev/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahul-vyas-dev/subscriptions", + "organizations_url": "https://api.github.com/users/rahul-vyas-dev/orgs", + "repos_url": "https://api.github.com/users/rahul-vyas-dev/repos", + "events_url": "https://api.github.com/users/rahul-vyas-dev/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahul-vyas-dev/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 6085586533, + "node_id": "LA_kwDOKgeNAM8AAAABarquZQ", + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/labels/documentation", + "name": "documentation", + "color": "0075ca", + "default": true, + "description": "Improvements or additions to documentation" + }, + { + "id": 6085586538, + "node_id": "LA_kwDOKgeNAM8AAAABarquag", + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "rahul-vyas-dev", + "id": 194380849, + "node_id": "U_kgDOC5YEMQ", + "avatar_url": "https://avatars.githubusercontent.com/u/194380849?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahul-vyas-dev", + "html_url": "https://github.com/rahul-vyas-dev", + "followers_url": "https://api.github.com/users/rahul-vyas-dev/followers", + "following_url": "https://api.github.com/users/rahul-vyas-dev/following{/other_user}", + "gists_url": "https://api.github.com/users/rahul-vyas-dev/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahul-vyas-dev/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahul-vyas-dev/subscriptions", + "organizations_url": "https://api.github.com/users/rahul-vyas-dev/orgs", + "repos_url": "https://api.github.com/users/rahul-vyas-dev/repos", + "events_url": "https://api.github.com/users/rahul-vyas-dev/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahul-vyas-dev/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 5, + "created_at": "2026-01-20T14:24:33Z", + "updated_at": "2026-01-27T20:58:17Z", + "closed_at": null, + "assignee": { + "login": "rahul-vyas-dev", + "id": 194380849, + "node_id": "U_kgDOC5YEMQ", + "avatar_url": "https://avatars.githubusercontent.com/u/194380849?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rahul-vyas-dev", + "html_url": "https://github.com/rahul-vyas-dev", + "followers_url": "https://api.github.com/users/rahul-vyas-dev/followers", + "following_url": "https://api.github.com/users/rahul-vyas-dev/following{/other_user}", + "gists_url": "https://api.github.com/users/rahul-vyas-dev/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rahul-vyas-dev/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rahul-vyas-dev/subscriptions", + "organizations_url": "https://api.github.com/users/rahul-vyas-dev/orgs", + "repos_url": "https://api.github.com/users/rahul-vyas-dev/repos", + "events_url": "https://api.github.com/users/rahul-vyas-dev/events{/privacy}", + "received_events_url": "https://api.github.com/users/rahul-vyas-dev/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "NONE", + "issue_field_values": [], + "type": { + "id": 7631871, + "node_id": "IT_kwDOAlFKy84AdHP_", + "name": "Task", + "description": "A specific piece of work", + "color": "yellow", + "created_at": "2024-01-31T14:49:13Z", + "updated_at": "2024-07-26T12:01:58Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### Issue with current documentation:\n\nThe README does not clearly state that contributors should work from the dev branch. As a result, many newcomers are creating branches from main, working on outdated code, and opening issues or PRs for changes that are already implemented in dev.\n\nImages: -\n\n\"Image\"\n
\n

these are the issues created that are already fixed

\n\"Image\"\n\nSolution\n\n- Update README.md to clearly mention:\n- All contributions must be based on the dev branch\n- PRs should target dev, not main\n\n### Why This Matters\n\n#### This will reduce duplicate issues, prevent work on outdated code, and improve the contributor onboarding experience.", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/125/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/125/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/124", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/124/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/124/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/124/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/124", + "id": 3833833634, + "node_id": "I_kwDOKgeNAM7kg6ii", + "number": 124, + "title": "Security Vulnerability & Accessibility: External links missing rel=\"noopener\" and aria-labels", + "user": { + "login": "JaiswalShivang", + "id": 186441382, + "node_id": "U_kgDOCxzepg", + "avatar_url": "https://avatars.githubusercontent.com/u/186441382?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaiswalShivang", + "html_url": "https://github.com/JaiswalShivang", + "followers_url": "https://api.github.com/users/JaiswalShivang/followers", + "following_url": "https://api.github.com/users/JaiswalShivang/following{/other_user}", + "gists_url": "https://api.github.com/users/JaiswalShivang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaiswalShivang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaiswalShivang/subscriptions", + "organizations_url": "https://api.github.com/users/JaiswalShivang/orgs", + "repos_url": "https://api.github.com/users/JaiswalShivang/repos", + "events_url": "https://api.github.com/users/JaiswalShivang/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaiswalShivang/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [ + { + "id": 6085586536, + "node_id": "LA_kwDOKgeNAM8AAAABarquaA", + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "New feature or request" + }, + { + "id": 6085586538, + "node_id": "LA_kwDOKgeNAM8AAAABarquag", + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/labels/good%20first%20issue", + "name": "good first issue", + "color": "7057ff", + "default": true, + "description": "Good for newcomers" + } + ], + "state": "open", + "locked": false, + "assignees": [ + { + "login": "JaiswalShivang", + "id": 186441382, + "node_id": "U_kgDOCxzepg", + "avatar_url": "https://avatars.githubusercontent.com/u/186441382?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaiswalShivang", + "html_url": "https://github.com/JaiswalShivang", + "followers_url": "https://api.github.com/users/JaiswalShivang/followers", + "following_url": "https://api.github.com/users/JaiswalShivang/following{/other_user}", + "gists_url": "https://api.github.com/users/JaiswalShivang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaiswalShivang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaiswalShivang/subscriptions", + "organizations_url": "https://api.github.com/users/JaiswalShivang/orgs", + "repos_url": "https://api.github.com/users/JaiswalShivang/repos", + "events_url": "https://api.github.com/users/JaiswalShivang/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaiswalShivang/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + } + ], + "milestone": null, + "comments": 6, + "created_at": "2026-01-20T13:51:14Z", + "updated_at": "2026-05-01T10:19:50Z", + "closed_at": null, + "assignee": { + "login": "JaiswalShivang", + "id": 186441382, + "node_id": "U_kgDOCxzepg", + "avatar_url": "https://avatars.githubusercontent.com/u/186441382?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaiswalShivang", + "html_url": "https://github.com/JaiswalShivang", + "followers_url": "https://api.github.com/users/JaiswalShivang/followers", + "following_url": "https://api.github.com/users/JaiswalShivang/following{/other_user}", + "gists_url": "https://api.github.com/users/JaiswalShivang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaiswalShivang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaiswalShivang/subscriptions", + "organizations_url": "https://api.github.com/users/JaiswalShivang/orgs", + "repos_url": "https://api.github.com/users/JaiswalShivang/repos", + "events_url": "https://api.github.com/users/JaiswalShivang/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaiswalShivang/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "author_association": "NONE", + "issue_field_values": [], + "type": { + "id": 7631876, + "node_id": "IT_kwDOAlFKy84AdHQE", + "name": "Feature", + "description": "A request, idea, or new functionality", + "color": "blue", + "created_at": "2024-01-31T14:49:14Z", + "updated_at": "2024-10-08T13:33:40Z", + "is_enabled": true + }, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 🐛 Describe the bug\n\n## Description\nSeveral external links in [Footer.js](cci:7://file:///c:/Users/jaisw/OneDrive/Desktop/gsoc/Resonate-Website/src/components/Footer/Footer.js:0:0-0:0) and [About.js](cci:7://file:///c:/Users/jaisw/OneDrive/Desktop/gsoc/Resonate-Website/src/components/About/About.js:0:0-0:0) leverage `target=\"_blank\"` without the accompanying `rel=\"noopener noreferrer\"` attribute. Additionally, icon-only links (using React Icons) lack descriptive labels for screen readers.\n\n## Vulnerability (Security)\nWhen using `target=\"_blank\"` without `rel=\"noopener noreferrer\"`, the destination page receives partial access to the linking page via the `window.opener` object. This exposes the application to **reverse tabnabbing** attacks, where a malicious destination page could redirect the user's original tab to a phishing site.\n\n## Accessibility Issue\nThe social media links contain only SVG icons (e.g., ``) with no text content. Screen readers will effectively be silent or announce them as \"link\" or \"unlabeled graphic,\" making navigation impossible for visually impaired users.\n\n## Locations\n- [src/components/Footer/Footer.js](cci:7://file:///c:/Users/jaisw/OneDrive/Desktop/gsoc/Resonate-Website/src/components/Footer/Footer.js:0:0-0:0)\n- [src/components/About/About.js](cci:7://file:///c:/Users/jaisw/OneDrive/Desktop/gsoc/Resonate-Website/src/components/About/About.js:0:0-0:0)\n\n## Suggested Fix\n1. Add `rel=\"noopener noreferrer\"` to all external links.\n2. Add `aria-label=\"Description\"` to all icon-only anchor tags.\n\n**Example:**\n```jsx\n
\n \n", + "closed_by": null, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/124/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/124/timeline", + "performed_via_github_app": null, + "state_reason": null, + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/123", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/123/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/123/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/123/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/123", + "id": 3833575833, + "node_id": "I_kwDOKgeNAM7kf7mZ", + "number": 123, + "title": "Bug: Placeholder Social and Community Links", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2026-01-20T12:41:52Z", + "updated_at": "2026-01-24T18:11:58Z", + "closed_at": "2026-01-20T15:06:59Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 🐛 Describe the bug\n\n### 📌 Description\nSeveral social and community links across the Resonate Website are still using placeholder URLs. This prevents users from joining the community, following project updates, or engaging with the project outside the website.\n\n---\n\n### 🎯 Impact\n**Medium**\n\n- Users cannot join the official Discord community\n- Social media icons lead nowhere or redirect to `#`\n- Reduces credibility and limits community growth for an open-source project\n\n---\n\n### 📍 Affected Components\n- **About Section**\n - Discord link points to a placeholder URL:\n ```\n https://discord.gg/yourlink\n ```\n- **Footer**\n - All social media links use empty or placeholder values (`href=\"#\"`)\n\n---\n\n### 🔍 Steps to Reproduce\n1. Open the Resonate Website\n2. Navigate to the **About** section\n3. Click on the Discord link\n4. Scroll to the **Footer**\n5. Click any social media icon\n\n---\n\n### ❌ Actual Behavior\n- Discord link redirects to an invalid placeholder\n- Footer social icons do not navigate to any external platform\n\n---\n\n### ✅ Expected Behavior\n- Discord link should redirect to the official Resonate/AOSSIE Discord server\n- Footer social icons should:\n - Redirect to valid social media pages **or**\n - Be conditionally hidden if no official link is available\n\n---\n\n### 🛠️ Proposed Fix\n- Replace placeholder Discord link with the official invite URL\n- Update footer social links with valid URLs\n- Alternatively, conditionally render social icons only when valid links are provided\n\n---\n\n### ♿ Accessibility Considerations\n- Ensure all social icons include appropriate `aria-label` attributes for screen readers\n\n---\n\n### 📎 Additional Context\nFixing this improves:\n- Community engagement\n- User trust\n- Alignment with open-source collaboration goals\n\n---\n\n### 🏷️ Labels\n`bug` `frontend` `ux` `good first issue`", + "closed_by": { + "login": "M4dhav", + "id": 114633095, + "node_id": "U_kgDOBtUphw", + "avatar_url": "https://avatars.githubusercontent.com/u/114633095?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/M4dhav", + "html_url": "https://github.com/M4dhav", + "followers_url": "https://api.github.com/users/M4dhav/followers", + "following_url": "https://api.github.com/users/M4dhav/following{/other_user}", + "gists_url": "https://api.github.com/users/M4dhav/gists{/gist_id}", + "starred_url": "https://api.github.com/users/M4dhav/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/M4dhav/subscriptions", + "organizations_url": "https://api.github.com/users/M4dhav/orgs", + "repos_url": "https://api.github.com/users/M4dhav/repos", + "events_url": "https://api.github.com/users/M4dhav/events{/privacy}", + "received_events_url": "https://api.github.com/users/M4dhav/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/123/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/123/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/122", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/122/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/122/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/122/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/122", + "id": 3832959504, + "node_id": "I_kwDOKgeNAM7kdlIQ", + "number": 122, + "title": "[BUG] Memory Leak: requestAnimationFrame not cancelled on component unmount in App.js", + "user": { + "login": "JaiswalShivang", + "id": 186441382, + "node_id": "U_kgDOCxzepg", + "avatar_url": "https://avatars.githubusercontent.com/u/186441382?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaiswalShivang", + "html_url": "https://github.com/JaiswalShivang", + "followers_url": "https://api.github.com/users/JaiswalShivang/followers", + "following_url": "https://api.github.com/users/JaiswalShivang/following{/other_user}", + "gists_url": "https://api.github.com/users/JaiswalShivang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaiswalShivang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaiswalShivang/subscriptions", + "organizations_url": "https://api.github.com/users/JaiswalShivang/orgs", + "repos_url": "https://api.github.com/users/JaiswalShivang/repos", + "events_url": "https://api.github.com/users/JaiswalShivang/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaiswalShivang/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 6, + "created_at": "2026-01-20T09:57:43Z", + "updated_at": "2026-01-20T14:15:04Z", + "closed_at": "2026-01-20T13:34:19Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "## Description\n\nIn `src/App.js`, the `requestAnimationFrame` loop for Lenis smooth scrolling is never properly cancelled when the component unmounts, causing a memory leak.\n\n## Current Behavior\nThe `raf` function continues executing indefinitely even after the component unmounts because `requestAnimationFrame` is not cancelled in the cleanup function.\n\n**Current Code (Lines 30-35, 170-173):**\n\n```javascript\n\nfunction raf(time) {\n lenis.raf(time);\n requestAnimationFrame(raf);\n}\nrequestAnimationFrame(raf);\n// Cleanup function - MISSING cancelAnimationFrame!\nreturn () => {\n lenis.destroy();\n ScrollTrigger.getAll().forEach(t => t.kill());\n};\n\n## Excepted Behaviour\n\nuseEffect(() => {\n const lenis = new Lenis({...});\n \n let animationFrameId;\n \n function raf(time) {\n lenis.raf(time);\n animationFrameId = requestAnimationFrame(raf);\n }\n animationFrameId = requestAnimationFrame(raf);\n return () => {\n cancelAnimationFrame(animationFrameId);\n lenis.destroy();\n ScrollTrigger.getAll().forEach(t => t.kill());\n };\n}, []);", + "closed_by": { + "login": "JaiswalShivang", + "id": 186441382, + "node_id": "U_kgDOCxzepg", + "avatar_url": "https://avatars.githubusercontent.com/u/186441382?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JaiswalShivang", + "html_url": "https://github.com/JaiswalShivang", + "followers_url": "https://api.github.com/users/JaiswalShivang/followers", + "following_url": "https://api.github.com/users/JaiswalShivang/following{/other_user}", + "gists_url": "https://api.github.com/users/JaiswalShivang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JaiswalShivang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JaiswalShivang/subscriptions", + "organizations_url": "https://api.github.com/users/JaiswalShivang/orgs", + "repos_url": "https://api.github.com/users/JaiswalShivang/repos", + "events_url": "https://api.github.com/users/JaiswalShivang/events{/privacy}", + "received_events_url": "https://api.github.com/users/JaiswalShivang/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "reactions": { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/122/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/122/timeline", + "performed_via_github_app": null, + "state_reason": "completed", + "pinned_comment": null + }, + { + "url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/121", + "repository_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website", + "labels_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/121/labels{/name}", + "comments_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/121/comments", + "events_url": "https://api.github.com/repos/AOSSIE-Org/Resonate-Website/issues/121/events", + "html_url": "https://github.com/AOSSIE-Org/Resonate-Website/issues/121", + "id": 3831945727, + "node_id": "I_kwDOKgeNAM7kZtn_", + "number": 121, + "title": "Bug: Non-functional CTA and Navigation Buttons", + "user": { + "login": "Devnil434", + "id": 162623650, + "node_id": "U_kgDOCbFwog", + "avatar_url": "https://avatars.githubusercontent.com/u/162623650?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Devnil434", + "html_url": "https://github.com/Devnil434", + "followers_url": "https://api.github.com/users/Devnil434/followers", + "following_url": "https://api.github.com/users/Devnil434/following{/other_user}", + "gists_url": "https://api.github.com/users/Devnil434/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Devnil434/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Devnil434/subscriptions", + "organizations_url": "https://api.github.com/users/Devnil434/orgs", + "repos_url": "https://api.github.com/users/Devnil434/repos", + "events_url": "https://api.github.com/users/Devnil434/events{/privacy}", + "received_events_url": "https://api.github.com/users/Devnil434/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "labels": [], + "state": "closed", + "locked": false, + "assignees": [], + "milestone": null, + "comments": 7, + "created_at": "2026-01-20T03:58:23Z", + "updated_at": "2026-01-24T18:11:17Z", + "closed_at": "2026-01-20T10:40:04Z", + "assignee": null, + "author_association": "NONE", + "issue_field_values": [], + "type": null, + "active_lock_reason": null, + "sub_issues_summary": { + "total": 0, + "completed": 0, + "percent_completed": 0 + }, + "issue_dependencies_summary": { + "blocked_by": 0, + "total_blocked_by": 0, + "blocking": 0, + "total_blocking": 0 + }, + "body": "### 🐛 Describe the bug\n\n]### Impact\n**High** — Critical user actions such as downloading the app, joining rooms, and contributing to the project are currently blocked due to non-functional buttons and links. This significantly reduces usability and conversion on the landing page.\n\n---\n\n### 📍 Affected Components & Details\n\n- **Navbar**\n - The **\"Download Now\"** button has no action attached (no `onClick`, `href`, or scroll target).\n\n- **Hero Section**\n - **\"Create / Join Room\"** button is rendered as a `