{"id":29016547,"url":"https://github.com/memgraph/github-code-analysis","last_synced_at":"2025-08-12T06:12:45.837Z","repository":{"id":103094666,"uuid":"515131740","full_name":"memgraph/github-code-analysis","owner":"memgraph","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-07T17:39:33.000Z","size":2177,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-25T22:38:11.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memgraph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-07-18T10:11:57.000Z","updated_at":"2022-12-07T17:39:41.000Z","dependencies_parsed_at":"2023-04-12T10:24:28.890Z","dependency_job_id":null,"html_url":"https://github.com/memgraph/github-code-analysis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/memgraph/github-code-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fgithub-code-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fgithub-code-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fgithub-code-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fgithub-code-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memgraph","download_url":"https://codeload.github.com/memgraph/github-code-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fgithub-code-analysis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270011187,"owners_count":24511901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-25T22:30:37.481Z","updated_at":"2025-08-12T06:12:45.815Z","avatar_url":"https://github.com/memgraph.png","language":"TypeScript","readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e\n    \u003cimg src=\"readmedata/images/logo.svg\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eGitHub Code Analyser\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    The go-to place for fast and accurate analysis of your GitHub repositories!\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#available-graphs\"\u003eAvailable graphs\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#step1\"\u003eStep #1 - download repository\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#step2\"\u003eStep #2 - environment variables\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#step3\"\u003eStep #3 - setup GitHub App\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n\u003ca id=\"about-the-project\"\u003e\u003c/a\u003e\n\n[![Index Page][index-page-screenshot]]()\n\nThe GitHub Code Analyser is the perfect place for fast and accurate analysis of your GitHub repositories. \nThe project was made during my Memgraph summer internship, and my main motive was to create a graph where users could see how each file interacts with other files in a GitHub repository. \nMy side motives were to show that Memgraph can handle large quantities of dynamically generated data, and to show that with Memgraph you can model user oriented data including user authentication.\n\n\u003cbr /\u003e\n\nThe application offers the following features:\n* Users can use their GitHub account to log in to the application\n* Users can see the repositories they have access to or search specific repositories\n* File Tree graph\n* Dependency graph\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n### Available graphs\n\n\u003ca id=\"available-graphs\"\u003e\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"File Tree graph\" src=\"readmedata/images/filetree.png\" width=\"45%\"\u003e\n\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;\n  \u003cimg alt=\"Dependency graph\" src=\"readmedata/images/dependencies.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\nThe graph on the left is the File Tree graph. \nThe graph on the right is the Dependency graph. \nWith the dependency graph, you can see how each file interacts with other files in the repository. \nThe size of the node is proportional to the number of files that depend on it. \nThe color of the node represents a group the file should be a part of.\n\n\n### Built With\n\u003ca id=\"built-with\"\u003e\u003c/a\u003e\n\n* [![Next][Next.js]][Next-url]\n* [![React][React.js]][React-url]\n* [![Python][Python.org]][Python-url]\n* [![Memgraph][Memgraph]][Memgraph-url]\n* [![TypeScript][TypeScript]][TypeScript-url]\n* [![Material-UI][Material-UI]][Material-UI-url]\n* [![Docker][Docker]][Docker-url]\n* [![Kafka][Kafka]][Kafka-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\n\u003ca id=\"getting-started\"\u003e\u003c/a\u003e\n\nTo get a local copy up and running follow these simple example steps.\n\n### Step #1 - download repository\n\n\u003ca id=\"step1\"\u003e\u003c/a\u003e\n    \n```sh\ngit clone https://github.com/memgraph/github-code-analysis\n```\n\n### Step #2 - environment variables\n\n\u003ca id=\"step2\"\u003e\u003c/a\u003e\n\nYou'll need to create a `.env` file in `./backend`. It should look like this:\n    \n```\nSECRET_REGISTRATION_KEY=\u003cyour secret registration key\u003e\n  ```\nYou will also need to create a `.env.local` file in `./frontend`. It should look like this:\n    \n```\nAUTH_SECRET=\u003cauth key for github autorization - used for jwt token\u003e\nNEXTAUTH_URL=http://localhost:3001\nNEXTAUTH_BACKEND_URL=http://backend:5000\nBACKEND_URL=http://localhost:5001\nGITHUB_PERMS=repo read:org read:packages read:project read:repo_hook read:user\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nSECRET_REGISTRATION_KEY=\u003csame secret registration key from backend .env\u003e\n  ```\n\n\n### Step #3 - setup GitHub App\n\n\u003ca id=\"step3\"\u003e\u003c/a\u003e\n\nGo to `https://github.com/settings/apps` and create a new App.\n\nThe name can be anything you want, but the Homepage URL should be `http://localhost:3001` and the callback URL should be `http://localhost:3001/api/auth/callback/github`. Please select Expire user authorization tokens and Request user authorization (OAuth) during installation.\nYou don't have to enable Device Flow and you can skip post installation setup. You can also ignore the webhooks.\n\n#### The permissions you need to select\n\nRepository permissions:\n* Administration: Read-only\n* Checks: Read-only\n* Commit statuses: Read-only\n* Contents: Read-only\n* Metadata: Read-only\n* Pull requests: Read-only\n\nOrganization permissions:\n* Administration: Read-only\n\nUser permissions:\n* Statuses: Read-only\n\nEverything else set to no access.\n\nCopy and paste the Client ID and Client Secret from the App settings to the `.env.local` file in `./frontend`.\n\n### Installation\n\n\u003ca id=\"installation\"\u003e\u003c/a\u003e\n\nPosition yourself in the root directory of the project and run the following commands:\n```sh\nchmod +x ./setup.sh\n./setup.sh\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\n\u003ca id=\"license\"\u003e\u003c/a\u003e\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n[index-page-screenshot]: readmedata/images/index_page.png\n[filetree-screenshot]: readmedata/images/filetree.png\n[dependency-screenshot]: readmedata/images/dependencies.png\n[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge\u0026logo=nextdotjs\u0026logoColor=white\n[Next-url]: https://nextjs.org/\n[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://reactjs.org/\n[Python.org]: https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white\n[Python-url]: https://www.python.org\n[Material-UI]: https://img.shields.io/badge/Material--UI-0081CB?style=for-the-badge\u0026logo=material-ui\u0026logoColor=white\n[Material-UI-url]: https://material-ui.com/\n[Memgraph]: https://img.shields.io/badge/Memgraph-FB6E00?style=for-the-badge\u0026logo=memgraph\u0026logoColor=white\n[Memgraph-url]: https://memgraph.com/\n[Kafka]: https://img.shields.io/badge/Apache%20Kafka-231F20?style=for-the-badge\u0026logo=apachekafka\u0026logoColor=white\n[Kafka-url]: https://kafka.apache.org/\n[Typescript]: https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[Typescript-url]: https://www.typescriptlang.org/\n[Docker]: https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white\n[Docker-url]: https://www.docker.com/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Fgithub-code-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemgraph%2Fgithub-code-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Fgithub-code-analysis/lists"}