Skip to content

Add profiling, fix login flow, and improve analytics - #14

Merged
MalakHisham121 merged 7 commits into
SH-code12:Backendfrom
MalakHisham121:Backend
May 19, 2026
Merged

Add profiling, fix login flow, and improve analytics#14
MalakHisham121 merged 7 commits into
SH-code12:Backendfrom
MalakHisham121:Backend

Conversation

@MalakHisham121

Copy link
Copy Markdown
Collaborator

This pull request introduces new analytics and profiling services, expands GitHub authentication and repository integration capabilities, and refactors several interfaces and services for improved clarity and extensibility. The main changes include the addition of analytics and profiling abstractions and implementations, enhancements to GitHub authentication (including OAuth flow), and new methods for fetching pull requests at the repository level. Minor refactoring and code cleanup were also performed.

New Services and Interfaces:

  • Added IAnalyticsService and its implementation AnalyticsService, which provides user analytics (such as assigned, reviewed, and created pull requests) by integrating with GitHub data. (Backend/Core/Abstraction/IAnalyticsService.cs, Backend/Core/Services/AnalyticsService.cs) [1] [2]
  • Introduced IProfilingService for retrieving GitHub user profile information. (Backend/Core/Abstraction/IProfilingService.cs)

GitHub Integration Enhancements:

  • Added GetPullRequestsAsync(long? repositoryId) to IGitHubAppService and implemented it in GitHubAppService to fetch pull requests for a specific repository using the GitHub API. (Backend/Core/Abstraction/IGitHubAppService.cs, Backend/Core/Services/GitHubAppService.cs) [1] [2]
  • Expanded IGithubAuthService and GitHubAuthService to support OAuth web flow, including methods for generating the GitHub authorization URL and exchanging a code for an access token. (Backend/Core/Abstraction/IGithubAuthService.cs, Backend/Core/Services/GitHubAuthService.cs) [1] [2]

Refactoring and Code Quality:

  • Cleaned up redundant whitespace and improved formatting in GitHubAuthService. [1] [2] [3] [4] [5] [6] [7] [8] [9]
  • Updated global usings files to remove the unnecessary global:: prefix. (Backend/API/obj/Debug/net9.0/Codience.API.GlobalUsings.g.cs, Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.GlobalUsings.g.cs, Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.GlobalUsings.g.cs) [1] [2]

Build and Project Metadata:

  • Updated Rider project restore and model info files to reflect the latest build state. (Backend/API/obj/rider.project.model.nuget.info, Backend/API/obj/rider.project.restore.info, Backend/Core/Abstraction/obj/rider.project.model.nuget.info, Backend/Core/Abstraction/obj/rider.project.restore.info, Backend/Core/Domain/obj/rider.project.model.nuget.info, Backend/Core/Domain/obj/rider.project.restore.info) [1] [2]

These changes collectively provide a foundation for analytics and profiling features, improve GitHub integration, and enhance maintainability.

…into Backend

# Conflicts:
#	Backend/API/Program.cs
#	Backend/API/bin/Debug/net9.0/Codience.API.dll
#	Backend/API/bin/Debug/net9.0/Codience.API.pdb
#	Backend/API/bin/Debug/net9.0/Core.Abstraction.dll
#	Backend/API/bin/Debug/net9.0/Core.Abstraction.pdb
#	Backend/API/bin/Debug/net9.0/Core.Domain.dll
#	Backend/API/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/API/bin/Debug/net9.0/Core.Services.dll
#	Backend/API/bin/Debug/net9.0/Core.Services.pdb
#	Backend/API/bin/Debug/net9.0/Infrastructure.Persistence.dll
#	Backend/API/bin/Debug/net9.0/Infrastructure.Persistence.pdb
#	Backend/API/bin/Debug/net9.0/Infrastructure.Presentation.dll
#	Backend/API/bin/Debug/net9.0/Infrastructure.Presentation.pdb
#	Backend/API/bin/Debug/net9.0/Share.dll
#	Backend/API/bin/Debug/net9.0/Share.pdb
#	Backend/API/obj/Codience.API.csproj.nuget.dgspec.json
#	Backend/API/obj/Codience.API.csproj.nuget.g.props
#	Backend/API/obj/Debug/net9.0/Codience.API.AssemblyInfo.cs
#	Backend/API/obj/Debug/net9.0/Codience.API.AssemblyInfoInputs.cache
#	Backend/API/obj/Debug/net9.0/Codience.API.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/API/obj/Debug/net9.0/Codience.API.assets.cache
#	Backend/API/obj/Debug/net9.0/Codience.API.csproj.AssemblyReference.cache
#	Backend/API/obj/Debug/net9.0/Codience.API.csproj.CoreCompileInputs.cache
#	Backend/API/obj/Debug/net9.0/Codience.API.dll
#	Backend/API/obj/Debug/net9.0/Codience.API.genruntimeconfig.cache
#	Backend/API/obj/Debug/net9.0/Codience.API.pdb
#	Backend/API/obj/Debug/net9.0/Codience.API.sourcelink.json
#	Backend/API/obj/Debug/net9.0/ref/Codience.API.dll
#	Backend/API/obj/Debug/net9.0/refint/Codience.API.dll
#	Backend/API/obj/Debug/net9.0/rjsmcshtml.dswa.cache.json
#	Backend/API/obj/Debug/net9.0/rjsmrazor.dswa.cache.json
#	Backend/API/obj/project.assets.json
#	Backend/API/obj/project.nuget.cache
#	Backend/Core/Abstraction/bin/Debug/net9.0/Core.Abstraction.dll
#	Backend/Core/Abstraction/bin/Debug/net9.0/Core.Abstraction.pdb
#	Backend/Core/Abstraction/bin/Debug/net9.0/Core.Domain.dll
#	Backend/Core/Abstraction/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/Core/Abstraction/bin/Debug/net9.0/Share.dll
#	Backend/Core/Abstraction/bin/Debug/net9.0/Share.pdb
#	Backend/Core/Abstraction/obj/Core.Abstraction.csproj.nuget.dgspec.json
#	Backend/Core/Abstraction/obj/Core.Abstraction.csproj.nuget.g.props
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.AssemblyInfo.cs
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.AssemblyInfoInputs.cache
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.assets.cache
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.csproj.AssemblyReference.cache
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.csproj.CoreCompileInputs.cache
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.dll
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.pdb
#	Backend/Core/Abstraction/obj/Debug/net9.0/Core.Abstraction.sourcelink.json
#	Backend/Core/Abstraction/obj/Debug/net9.0/ref/Core.Abstraction.dll
#	Backend/Core/Abstraction/obj/Debug/net9.0/refint/Core.Abstraction.dll
#	Backend/Core/Abstraction/obj/project.assets.json
#	Backend/Core/Abstraction/obj/project.nuget.cache
#	Backend/Core/Domain/bin/Debug/net9.0/Core.Domain.dll
#	Backend/Core/Domain/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/Core/Domain/obj/Core.Domain.csproj.nuget.dgspec.json
#	Backend/Core/Domain/obj/Core.Domain.csproj.nuget.g.props
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.AssemblyInfo.cs
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.AssemblyInfoInputs.cache
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.assets.cache
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.csproj.CoreCompileInputs.cache
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.dll
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.pdb
#	Backend/Core/Domain/obj/Debug/net9.0/Core.Domain.sourcelink.json
#	Backend/Core/Domain/obj/Debug/net9.0/ref/Core.Domain.dll
#	Backend/Core/Domain/obj/Debug/net9.0/refint/Core.Domain.dll
#	Backend/Core/Domain/obj/project.assets.json
#	Backend/Core/Domain/obj/project.nuget.cache
#	Backend/Core/Services/bin/Debug/net9.0/Core.Abstraction.dll
#	Backend/Core/Services/bin/Debug/net9.0/Core.Abstraction.pdb
#	Backend/Core/Services/bin/Debug/net9.0/Core.Domain.dll
#	Backend/Core/Services/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/Core/Services/bin/Debug/net9.0/Core.Services.dll
#	Backend/Core/Services/bin/Debug/net9.0/Core.Services.pdb
#	Backend/Core/Services/bin/Debug/net9.0/Share.dll
#	Backend/Core/Services/bin/Debug/net9.0/Share.pdb
#	Backend/Core/Services/obj/Core.Services.csproj.nuget.dgspec.json
#	Backend/Core/Services/obj/Core.Services.csproj.nuget.g.props
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.AssemblyInfo.cs
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.AssemblyInfoInputs.cache
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.assets.cache
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.csproj.AssemblyReference.cache
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.csproj.CoreCompileInputs.cache
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.dll
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.pdb
#	Backend/Core/Services/obj/Debug/net9.0/Core.Services.sourcelink.json
#	Backend/Core/Services/obj/Debug/net9.0/ref/Core.Services.dll
#	Backend/Core/Services/obj/Debug/net9.0/refint/Core.Services.dll
#	Backend/Core/Services/obj/project.assets.json
#	Backend/Core/Services/obj/project.nuget.cache
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Core.Abstraction.dll
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Core.Abstraction.pdb
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Core.Domain.dll
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Core.Services.dll
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Core.Services.pdb
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Infrastructure.Persistence.dll
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Infrastructure.Persistence.pdb
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Share.dll
#	Backend/Infrastructure/Persistence/bin/Debug/net9.0/Share.pdb
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.AssemblyInfo.cs
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.AssemblyInfoInputs.cache
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.assets.cache
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.csproj.AssemblyReference.cache
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.csproj.CoreCompileInputs.cache
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.dll
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.genruntimeconfig.cache
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.pdb
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/Infrastructure.Persistence.sourcelink.json
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/ref/Infrastructure.Persistence.dll
#	Backend/Infrastructure/Persistence/obj/Debug/net9.0/refint/Infrastructure.Persistence.dll
#	Backend/Infrastructure/Persistence/obj/Infrastructure.Persistence.csproj.nuget.dgspec.json
#	Backend/Infrastructure/Persistence/obj/Infrastructure.Persistence.csproj.nuget.g.props
#	Backend/Infrastructure/Persistence/obj/project.assets.json
#	Backend/Infrastructure/Persistence/obj/project.nuget.cache
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Core.Abstraction.dll
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Core.Abstraction.pdb
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Core.Domain.dll
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Core.Services.dll
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Core.Services.pdb
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Infrastructure.Presentation.dll
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Infrastructure.Presentation.pdb
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Share.dll
#	Backend/Infrastructure/Presentation/bin/Debug/net9.0/Share.pdb
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.AssemblyInfo.cs
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.AssemblyInfoInputs.cache
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.assets.cache
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.csproj.AssemblyReference.cache
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.csproj.CoreCompileInputs.cache
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.dll
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.pdb
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/Infrastructure.Presentation.sourcelink.json
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/ref/Infrastructure.Presentation.dll
#	Backend/Infrastructure/Presentation/obj/Debug/net9.0/refint/Infrastructure.Presentation.dll
#	Backend/Infrastructure/Presentation/obj/Infrastructure.Presentation.csproj.nuget.dgspec.json
#	Backend/Infrastructure/Presentation/obj/Infrastructure.Presentation.csproj.nuget.g.props
#	Backend/Infrastructure/Presentation/obj/project.assets.json
#	Backend/Infrastructure/Presentation/obj/project.nuget.cache
#	Backend/Share/bin/Debug/net9.0/Share.dll
#	Backend/Share/bin/Debug/net9.0/Share.pdb
#	Backend/Share/obj/Debug/net9.0/Share.AssemblyInfo.cs
#	Backend/Share/obj/Debug/net9.0/Share.AssemblyInfoInputs.cache
#	Backend/Share/obj/Debug/net9.0/Share.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Share/obj/Debug/net9.0/Share.assets.cache
#	Backend/Share/obj/Debug/net9.0/Share.csproj.CoreCompileInputs.cache
#	Backend/Share/obj/Debug/net9.0/Share.dll
#	Backend/Share/obj/Debug/net9.0/Share.pdb
#	Backend/Share/obj/Debug/net9.0/Share.sourcelink.json
#	Backend/Share/obj/Debug/net9.0/ref/Share.dll
#	Backend/Share/obj/Debug/net9.0/refint/Share.dll
#	Backend/Share/obj/Share.csproj.nuget.dgspec.json
#	Backend/Share/obj/Share.csproj.nuget.g.props
#	Backend/Share/obj/project.assets.json
#	Backend/Share/obj/project.nuget.cache
#	Backend/Tests/bin/Debug/net9.0/Core.Abstraction.dll
#	Backend/Tests/bin/Debug/net9.0/Core.Abstraction.pdb
#	Backend/Tests/bin/Debug/net9.0/Core.Domain.dll
#	Backend/Tests/bin/Debug/net9.0/Core.Domain.pdb
#	Backend/Tests/bin/Debug/net9.0/Core.Services.dll
#	Backend/Tests/bin/Debug/net9.0/Core.Services.pdb
#	Backend/Tests/bin/Debug/net9.0/Infrastructure.Presentation.dll
#	Backend/Tests/bin/Debug/net9.0/Infrastructure.Presentation.pdb
#	Backend/Tests/bin/Debug/net9.0/Share.dll
#	Backend/Tests/bin/Debug/net9.0/Share.pdb
#	Backend/Tests/bin/Debug/net9.0/Tests.deps.json
#	Backend/Tests/bin/Debug/net9.0/Tests.dll
#	Backend/Tests/bin/Debug/net9.0/Tests.pdb
#	Backend/Tests/obj/Debug/net9.0/Tests.AssemblyInfo.cs
#	Backend/Tests/obj/Debug/net9.0/Tests.AssemblyInfoInputs.cache
#	Backend/Tests/obj/Debug/net9.0/Tests.GeneratedMSBuildEditorConfig.editorconfig
#	Backend/Tests/obj/Debug/net9.0/Tests.assets.cache
#	Backend/Tests/obj/Debug/net9.0/Tests.csproj.AssemblyReference.cache
#	Backend/Tests/obj/Debug/net9.0/Tests.csproj.CoreCompileInputs.cache
#	Backend/Tests/obj/Debug/net9.0/Tests.csproj.FileListAbsolute.txt
#	Backend/Tests/obj/Debug/net9.0/Tests.dll
#	Backend/Tests/obj/Debug/net9.0/Tests.pdb
#	Backend/Tests/obj/Debug/net9.0/Tests.sourcelink.json
#	Backend/Tests/obj/Debug/net9.0/ref/Tests.dll
#	Backend/Tests/obj/Debug/net9.0/refint/Tests.dll
@MalakHisham121
MalakHisham121 merged commit 1b0d68e into SH-code12:Backend May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant