|
1 | | -# github-profile-analyzer |
2 | | - |
| 1 | +# GitHub Action |
3 | 2 | [](https://github.com/sergeycherkasovv/github-profile-analyzer/actions/workflows/main.yml) |
4 | | - |
| 3 | +# SonarQube |
5 | 4 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_github-profile-analyzer) |
6 | 5 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_github-profile-analyzer) |
7 | 6 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_github-profile-analyzer) |
|
12 | 11 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_github-profile-analyzer) |
13 | 12 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_github-profile-analyzer) |
14 | 13 | [](https://sonarcloud.io/summary/new_code?id=sergeycherkasovv_github-profile-analyzer) |
| 14 | + |
| 15 | +**GitHub Analyze Profiles is a Telegram bot that analyzes the activity of a GitHub profile by _username_. It is built with Spring Boot and uses GraphQL to perform requests to the GitHub API. |
| 16 | + |
| 17 | +## Metrics |
| 18 | +- Public Repositories |
| 19 | +- Commits |
| 20 | +- Forks |
| 21 | +- Issues |
| 22 | +- Pull Requests |
| 23 | +- Code Reviews |
| 24 | +- Followers |
| 25 | +- Following |
| 26 | +- Stars (Starred repositories) |
| 27 | +- Stargazers (number of users who starred public repositories) |
| 28 | +## Technology stack |
| 29 | +- **Java 21** |
| 30 | +- **[GraphQL](https://graphql.org/)** |
| 31 | +- **[GitHub GraphQL API](https://docs.github.com/en/graphql)** |
| 32 | +- **[Spring Boot](https://spring.io/projects/spring-boot)** |
| 33 | +- **[WebClient](https://docs.spring.io/spring-framework/reference/web/webflux-webclient.html)** |
| 34 | +- **Testing:** |
| 35 | + - [JUnit5](https://junit.org/) |
| 36 | + - [MockWebServer](https://github.com/square/okhttp/tree/master/mockwebserver) |
| 37 | + - [Instansio](https://www.instancio.org/articles/using-instancio-with-junit-jupiter/) |
| 38 | + - [JsonUnit](https://github.com/lukas-krecan/JsonUnit) |
| 39 | +- **CI/CD & Tools**: |
| 40 | + - [Gradle](https://gradle.org/) |
| 41 | + - [GitHub Actions](https://github.com/features/actions) |
| 42 | + - [SonarQube](https://www.sonarsource.com/) |
| 43 | + |
| 44 | +## π Project structure |
| 45 | + java-project-99 |
| 46 | + βββ .github/ # CI configs (GitHub Actions, SonarQube) |
| 47 | + βββ src/ |
| 48 | + β βββ main/ |
| 49 | + β β βββ java/telegram/bot/ |
| 50 | + β β β βββ component/ # Application properties (Telegram, GitHub) |
| 51 | + β β β βββ config/ # WebClient config |
| 52 | + β β β βββ enums/ # Constants |
| 53 | + β β β βββ exception/ # Custom exceptions |
| 54 | + β β β βββ handler/ # Global Exception Handler |
| 55 | + β β β βββ dto/ # DTO classes for data transmission |
| 56 | + β β β βββ service/ # Business logic |
| 57 | + β β β βββ telegram/ # Telegram bot entry point |
| 58 | + β β β βββ util/ # Utility classes |
| 59 | + β β β βββ AppApplication.java # Spring Boot application entry point |
| 60 | + β β βββ resources/ |
| 61 | + β β βββ application # Spring config files |
| 62 | + β βββ test/ |
| 63 | + β βββ java/telegram/bot/ |
| 64 | + β βββ service/ # Integration tests |
| 65 | + β βββ util/ # |
| 66 | + βββ build.gradle.kts # Gradle assembly (Kotlin DSL) |
| 67 | + βββ Makefile # Build, run and test commands |
| 68 | + βββ README.md |
| 69 | + |
| 70 | +## π€ Author |
| 71 | +Developed as part of our own pet project |
| 72 | + |
| 73 | +**Author:** [sergeycherkasovv](https://github.com/sergeycherkasovv) |
| 74 | + |
| 75 | + |
0 commit comments