diff --git a/.github/workflows/post-integration.yml b/.github/workflows/post-integration.yml
new file mode 100644
index 0000000..8f3fc00
--- /dev/null
+++ b/.github/workflows/post-integration.yml
@@ -0,0 +1,82 @@
+name: "Post-Integration"
+
+on:
+ push:
+ branches:
+ - main
+ - '!stable'
+ - '!release'
+
+env:
+ ATC_EMAIL: 'atcnet.org@gmail.com'
+ ATC_NAME: 'Atc-Net'
+ NUGET_REPO_URL: 'https://nuget.pkg.github.com/atc-net/index.json'
+
+jobs:
+ merge-to-stable:
+ runs-on: ubuntu-latest
+ steps:
+ - name: ๐ Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ token: ${{ secrets.PAT_WORKFLOWS }}
+
+ - name: โ๏ธ Sets environment variables - branch-name
+ uses: nelonoel/branch-name@v1.0.1
+
+ - name: โ๏ธ Sets environment variables - Nerdbank.GitVersioning
+ uses: dotnet/nbgv@master
+ with:
+ setAllVars: true
+
+ - name: โ๏ธ Setup dotnet 8.0.x
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '8.0.x'
+
+ - name: โ๏ธ Set up JDK 17
+ uses: actions/setup-java@v3
+ with:
+ java-version: 17
+ distribution: 'zulu'
+
+ - name: ๐งน Clean
+ run: dotnet clean -c Release && dotnet nuget locals all --clear
+
+ - name: ๐ Restore packages
+ run: dotnet restore
+
+ - name: ๐ ๏ธ Build
+ run: dotnet build -c Release --no-restore /p:UseSourceLink=true
+
+ - name: ๐งช Run unit tests
+ run: dotnet test -c Release --no-build --filter "Category!=Integration"
+
+ - name: ๐ฉ๏ธ SonarCloud install scanner
+ run: dotnet tool install --global dotnet-sonarscanner
+
+ - name: ๐ฉ๏ธ SonarCloud analyze
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+ shell: pwsh
+ run: |
+ dotnet sonarscanner begin /k:"atc-net_atc-microsoft-graph-client" /o:"atc-net" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io"
+ dotnet build -c Release /p:UseSourceLink=true --no-restore
+ dotnet sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}"
+
+ - name: โฉ Merge to stable-branch
+ run: |
+ git config --local user.email ${{ env.ATC_EMAIL }}
+ git config --local user.name ${{ env.ATC_NAME }}
+ git checkout stable
+ git merge --ff-only main
+ git push origin stable
+
+ - name: ๐ณ๏ธ Creating library package for pre-release
+ run: dotnet pack -c Release --no-restore -o ${GITHUB_WORKSPACE}/packages -p:RepositoryBranch=$BRANCH_NAME
+
+ - name: ๐ฆ Push packages to GitHub Package Registry
+ run: |
+ dotnet nuget push ${GITHUB_WORKSPACE}/packages/'Atc.Microsoft.Graph.Client.'${NBGV_NuGetPackageVersion}'.nupkg' -k ${{ secrets.GITHUB_TOKEN }} -s ${{ env.NUGET_REPO_URL }} --skip-duplicate
\ No newline at end of file
diff --git a/.github/workflows/pre-integration.yml b/.github/workflows/pre-integration.yml
new file mode 100644
index 0000000..2536549
--- /dev/null
+++ b/.github/workflows/pre-integration.yml
@@ -0,0 +1,58 @@
+name: "Pre-Integration"
+
+on:
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ - reopened
+
+jobs:
+ dotnet-build:
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - name: ๐ Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: โ๏ธ Setup dotnet 8.0.x
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '8.0.x'
+
+ - name: ๐งน Clean
+ run: dotnet clean -c Release && dotnet nuget locals all --clear
+
+ - name: ๐ Restore packages
+ run: dotnet restore
+
+ - name: ๐ ๏ธ Building library in release mode
+ run: dotnet build -c Release --no-restore
+
+ dotnet-test:
+ runs-on: ubuntu-latest
+ needs:
+ - dotnet-build
+ steps:
+ - name: ๐ Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: โ๏ธ Setup dotnet 8.0.x
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '8.0.x'
+
+ - name: ๐ Restore packages
+ run: dotnet restore
+
+ - name: ๐ ๏ธ Build
+ run: dotnet build -c Release --no-restore /p:UseSourceLink=true
+
+ - name: ๐งช Run unit tests
+ run: dotnet test -c Release --no-build --filter "Category!=Integration"
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..a17367c
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,57 @@
+name: "Release"
+
+on:
+ workflow_dispatch:
+
+env:
+ ATC_EMAIL: 'atcnet.org@gmail.com'
+ ATC_NAME: 'Atc-Net'
+ NUGET_REPO_URL: 'https://api.nuget.org/v3/index.json'
+
+jobs:
+ release:
+ if: github.ref == 'refs/heads/stable'
+ runs-on: ubuntu-latest
+ steps:
+ - name: ๐ Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ token: ${{ secrets.PAT_WORKFLOWS }}
+
+ - name: โ๏ธ Sets environment variables - branch-name
+ uses: nelonoel/branch-name@v1.0.1
+
+ - name: โ๏ธ Sets environment variables - Nerdbank.GitVersioning
+ uses: dotnet/nbgv@master
+ with:
+ setAllVars: true
+
+ - name: โ๏ธ Setup dotnet 8.0.x
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '8.0.x'
+
+ - name: ๐งน Clean
+ run: dotnet clean -c Release && dotnet nuget locals all --clear
+
+ - name: ๐ Restore packages
+ run: dotnet restore
+
+ - name: ๐ ๏ธ Building library in release mode
+ run: dotnet build -c Release --no-restore /p:UseSourceLink=true
+
+ - name: โฉ Merge to release-branch
+ run: |
+ git config --local user.email ${{ env.ATC_EMAIL }}
+ git config --local user.name ${{ env.ATC_NAME }}
+ git checkout release
+ git merge --ff-only stable
+ git push origin release
+
+ - name: ๐ณ๏ธ Creating library package for release
+ run: dotnet pack -c Release --no-restore -o ${GITHUB_WORKSPACE}/packages -p:RepositoryBranch=$BRANCH_NAME /p:PublicRelease=true
+
+ - name: ๐ฆ Push packages to NuGet
+ run: |
+ dotnet nuget push ${GITHUB_WORKSPACE}/packages/'Atc.Microsoft.Graph.Client.'${NBGV_NuGetPackageVersion}'.nupkg' -k ${{ secrets.NUGET_KEY }} -s ${{ env.NUGET_REPO_URL }} --skip-duplicate --no-symbols
\ No newline at end of file
diff --git a/Atc.Microsoft.Graph.Client.sln b/Atc.Microsoft.Graph.Client.sln
index c789319..70b1a3f 100644
--- a/Atc.Microsoft.Graph.Client.sln
+++ b/Atc.Microsoft.Graph.Client.sln
@@ -14,10 +14,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{58BC6728-1
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sample", "sample", "{67FE0C20-D944-47C5-A64E-AC05F7438940}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Atc.Microsoft.Graph.Client", "src\Atc.Microsoft.Graph.Client\Atc.Microsoft.Graph.Client.csproj", "{E0C8319E-49CC-4A55-B356-986320EBF055}"
+EndProject
Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E0C8319E-49CC-4A55-B356-986320EBF055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E0C8319E-49CC-4A55-B356-986320EBF055}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0C8319E-49CC-4A55-B356-986320EBF055}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E0C8319E-49CC-4A55-B356-986320EBF055}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {E0C8319E-49CC-4A55-B356-986320EBF055} = {69C84246-AA75-43E8-94B2-66FD555B18B0}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {04120463-05C5-417B-8D7A-2D7D35B71A07}
EndGlobalSection
diff --git a/src/Atc.Microsoft.Graph.Client/Atc.Microsoft.Graph.Client.csproj b/src/Atc.Microsoft.Graph.Client/Atc.Microsoft.Graph.Client.csproj
new file mode 100644
index 0000000..483e0bd
--- /dev/null
+++ b/src/Atc.Microsoft.Graph.Client/Atc.Microsoft.Graph.Client.csproj
@@ -0,0 +1,15 @@
+
+
+
+ net8.0
+ Atc.Microsoft.Graph.Client
+ microsoft-graph;microsoft-graph-api;microsoft-graph-client
+ Atc.Microsoft.Graph.Client provides a convenient abstraction layer over the Microsoft Graph SDK, simplifying interactions with Microsoft Graph APIs. By wrapping the Microsoft Graph SDK, the library offers a consistent and simplified interface, handling complexities like paging and error handling for you.
+ README.md
+
+
+
+
+
+
+
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 35519da..93e4ae2 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -6,6 +6,20 @@
-->
+
+
+ https://github.com/$(OrganizationName)/$(RepositoryName)
+ git
+ true
+ MIT
+ https://github.com/$(OrganizationName)/$(RepositoryName)
+ icon.png
+
+
+
+
+
+
Library
@@ -19,5 +33,28 @@
true
embedded
+
+ false
+
+ true
-
+
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file