Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
864184a
[SDK] Rewrite as modern .NET 7/9 async-first client
ilyazub Jun 27, 2026
2383173
[SDK] Add per-scenario examples following Stripe/Azure pattern
ilyazub Jun 27, 2026
b943592
[SDK] Improve examples, fix security and correctness issues
ilyazub Jun 28, 2026
c980366
[Tests] Add gap tests and integration test suite
ilyazub Jun 28, 2026
2198212
[SDK] Document retry and proxy patterns from cross-SDK issue research
ilyazub Jun 28, 2026
0a4d8d1
[Examples] Replace feature-focused examples with GTM use-case scenarios
ilyazub Jun 29, 2026
f2913fc
[SDK] Add netstandard2.0 support (addresses #2, #3)
ilyazub Jun 29, 2026
1bbfb66
[Tests] Speed up integration tests via connection reuse and parallelism
ilyazub Jun 29, 2026
693154e
[SDK] Fix netstandard2.0 runtime compat, sync deadlocks, and CI release
ilyazub Jun 29, 2026
2ec9075
[Examples] Remove double dollar sign
zyc9012 Jul 28, 2026
4f5915e
[Examples] Fix non-existent example
zyc9012 Jul 28, 2026
bdb23a1
[Examples] Fix concurrent response cleanup
zyc9012 Jul 28, 2026
c7dec38
[SDK] Fix response disposal in README examples
zyc9012 Jul 28, 2026
dee6b59
[SDK] Validate external client options
zyc9012 Jul 28, 2026
b89bd13
[SDK] Map invalid key errors consistently
zyc9012 Jul 28, 2026
7c4acda
[Examples] Target .NET 8
zyc9012 Jul 28, 2026
44dc097
[SDK] Modernize HTTP resilience example
zyc9012 Jul 28, 2026
d778416
[SDK] Report effective HTTP timeout
zyc9012 Jul 28, 2026
5a1acf2
[SDK] Validate pagination limits eagerly
zyc9012 Jul 28, 2026
b5eee74
[SDK] Wrap malformed JSON responses
zyc9012 Jul 28, 2026
2cddaf0
[SDK] Validate pagination response
zyc9012 Jul 28, 2026
3896915
[SDK] Add null check for parameters
zyc9012 Jul 28, 2026
fdc3546
[SDK] Remove dead config
zyc9012 Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: CI

on:
push:
branches: [master]
pull_request:
branches: [master]

jobs:
build:
runs-on: ubuntu-latest
name: Build & Test
steps:
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
7.0.x
8.0.x
9.0.x
10.0.x

- name: Restore
run: dotnet restore

- name: Build
run: dotnet build --no-restore --configuration Release

- name: Test
run: dotnet test --no-build --configuration Release
env:
API_KEY: ${{ secrets.API_KEY }}

- name: Run examples
env:
API_KEY: ${{ secrets.API_KEY }}
run: |
for proj in examples/*/; do
name=$(basename "$proj")
echo "::group::$name"
dotnet run --project "$proj" --configuration Release -- "$API_KEY"
echo "::endgroup::"
done

pack:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.x'

- name: Pack
run: dotnet pack serpapi/serpapi.csproj --configuration Release

- name: Upload package
uses: actions/upload-artifact@v7
with:
name: nuget-package
path: serpapi/bin/Release/*.nupkg
23 changes: 0 additions & 23 deletions .github/workflows/dotnet-core.yml

This file was deleted.

40 changes: 40 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Release

on:
push:
tags: ['v*']

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.x'

- name: Restore
run: dotnet restore

- name: Build
run: dotnet build --configuration Release --no-restore

- name: Test
run: dotnet test --configuration Release --no-build
env:
API_KEY: ${{ secrets.API_KEY }}

- name: Pack
run: dotnet pack serpapi/serpapi.csproj --configuration Release --no-build

- name: Publish to NuGet
run: dotnet nuget push serpapi/bin/Release/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate

- name: Create GitHub Release
env:
GH_TOKEN: ${{ github.token }}
run: gh release create "${{ github.ref_name }}" --generate-notes
21 changes: 16 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
serpapi/obj/
test/obj/
test/bin/
serpapi/bin
## .NET
bin/
obj/
*.nupkg
*.snupkg

## IDE
.vs/
.vscode/
*.user
*.suo

## OS
.DS_Store
Thumbs.db

## Build artifacts
newtonsoft.json/
derive.rb
14 changes: 6 additions & 8 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
<Project>
<PropertyGroup>
<TargetFrameworks>$(TargetFramework);net7.0</TargetFrameworks>
<!-- <Nullable>enable</Nullable> -->
<ImplicitUsings>disable</ImplicitUsings>
<LangVersion>preview</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<RollForward>LatestMajor</RollForward>
</PropertyGroup>
</Project>
16 changes: 11 additions & 5 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="MSTest.TestAdapter" Version="1.3.2" />
<PackageVersion Include="MSTest.TestFramework" Version="1.3.2" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
<PackageVersion Include="xunit" Version="2.9.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.0" />
<PackageVersion Include="Xunit.SkippableFact" Version="1.5.61" />
</ItemGroup>
</Project>
</Project>
56 changes: 0 additions & 56 deletions Makefile

This file was deleted.

Loading