Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
a972d1a
rev commit
Keugon Jul 3, 2025
f8372b9
Merge branch 'main' into main
Keugon Apr 8, 2026
5c620af
⬆️ Bump files with dotnet-file sync
devlooped-bot Apr 15, 2026
11ce350
⬆️ Bump files with dotnet-file sync
kzu Apr 16, 2026
d0a0c5a
Bump the extensions group with 1 update
dependabot[bot] Jun 11, 2026
204d3e9
Bump the tests group with 2 updates
dependabot[bot] May 27, 2026
ac7582e
Bump the system group with 1 update
dependabot[bot] Apr 16, 2026
abcf6eb
⬆️ Bump files with dotnet-file sync
devlooped-bot Jun 21, 2026
17060fa
Enable nullable warnings in Moq.csproj.
andrewimcclement Feb 25, 2025
fd236f7
Fix up nullability of ExpressionComparer.cs.
andrewimcclement Feb 25, 2025
d02042f
Fix up nullability in ActionObserver.cs.
andrewimcclement Feb 25, 2025
23e2b02
Fix up nullability in Match.cs.
andrewimcclement Feb 25, 2025
b559c66
Fix up nullability in IProtectedAsMock.cs.
andrewimcclement Feb 25, 2025
42b5480
Fix up nullability in MethodExpectation.cs.
andrewimcclement Feb 25, 2025
7d483dc
Fix up some nullable issues in ProtectedAsMock.cs.
andrewimcclement Feb 25, 2025
7a1e325
Fix up nullability in AwaitableFactory*.cs.
andrewimcclement Feb 25, 2025
ddfb7f5
Fix up nullability in Awaitable.cs.
andrewimcclement Feb 25, 2025
bbabf7a
Fix up nullability in TypeMatcherAttribute.cs.
andrewimcclement Feb 25, 2025
9f78519
Fix up nullability in Extensions.cs. A new symbol has been defined fo…
andrewimcclement Feb 25, 2025
c235c02
Fix up nullability in RaiseEvent.cs.
andrewimcclement Feb 25, 2025
13148f4
Fix up nullability in Expectation.cs and MethodExpectation.cs.
andrewimcclement Feb 25, 2025
94bf593
Fix up AwaitableFactory`2.CreateCompleted(object?) to correctly assum…
andrewimcclement Feb 25, 2025
d6e54e4
Simplify TaskFactory.CreateCompleted.
andrewimcclement Feb 25, 2025
f2070f4
Fix nullability for AsInterface.cs.
andrewimcclement Feb 25, 2025
d8fdcc6
Fix up nullability in EventHandlerCollection.cs.
andrewimcclement Feb 25, 2025
938d136
Fix up nullable types in ExpressionReconstructor.cs.
andrewimcclement Feb 25, 2025
b6da9bf
Fix nullability in Condition.cs. Add guard clause in Mock.When as not…
andrewimcclement Feb 25, 2025
7390711
Fix up nullability in StubbedPropertySetup.cs.
andrewimcclement Feb 25, 2025
0daa748
Fix up nullability in StubbedPropertiesSetup.cs.
andrewimcclement Feb 25, 2025
32d2bec
Fix up nullability in Invocation.cs.
andrewimcclement Feb 25, 2025
803f82d
Fix up nullability in Extensions.cs.
andrewimcclement Feb 25, 2025
9abda35
Fix nullability in InnerMockSetup.cs.
andrewimcclement Feb 25, 2025
2dc102a
Fix up nullability in StubbedPropertySetup.cs.
andrewimcclement Feb 25, 2025
07e5b93
Fix nullability in Setup.cs.
andrewimcclement Feb 25, 2025
d23e9ed
Fix nullability in SetupCollection.cs.
andrewimcclement Feb 25, 2025
2497965
Fix up nullability in StringBuilderExtensions.cs.
andrewimcclement Feb 25, 2025
65afe8d
Fix up nullability in AwaitableFactory.cs.
andrewimcclement Feb 25, 2025
b5bd0cf
Fix up nullability in Times.cs.
andrewimcclement Feb 25, 2025
0e7aeeb
Fix up nullability in EmptyDefaultValueProvider.cs.
andrewimcclement Feb 25, 2025
61a53f7
Fix up TaskFactory`1.cs nullability.
andrewimcclement Feb 25, 2025
6262129
Fix up nullability in ActionObserver.cs.
andrewimcclement Feb 25, 2025
8243619
Fix up nullability in ValueTaskFactory`1.cs.
andrewimcclement Feb 25, 2025
f436d62
Fix up nullability for Invocation.cs.
andrewimcclement Feb 25, 2025
a9d31ba
Tidy nullability in UpgradePropertyAccessorMethods.cs.
andrewimcclement Feb 25, 2025
41f0a1e
Fix up nullability in Extensions.cs.
andrewimcclement Feb 25, 2025
421becf
Tidy nullability in AwaitableFactory`2.cs.
andrewimcclement Feb 25, 2025
aa00325
Fix up nullability in DefaultValueProvider.cs.
andrewimcclement Feb 25, 2025
ff66f01
Fix up nullability in LookupOrFallbackDefaultValueProvider.cs.
andrewimcclement Feb 25, 2025
98b7d5f
Fix up nullability in Match.cs.
andrewimcclement Feb 25, 2025
237a7bf
Tidy nullability in ReturnBaseOrDefaultValue.cs.
andrewimcclement Feb 25, 2025
176292a
Fix up nullability in InvocationCollection.cs.
andrewimcclement Feb 25, 2025
72ce159
Tidy nullability in Guard.cs.
andrewimcclement Feb 25, 2025
94950b0
Fix up nullability in RaiseEvent.cs.
andrewimcclement Feb 25, 2025
9f481dd
Fix up nullability in EmptyDefaultValueProvider.cs.
andrewimcclement Feb 25, 2025
d7e0cd4
Fix up nullability in Pair.cs
andrewimcclement Feb 25, 2025
d1977fe
Fix up nullability in SetupWithOutParameterSupport.cs.
andrewimcclement Feb 25, 2025
840beef
Fix up nullability in CastleProxyFactory.cs.
andrewimcclement Feb 25, 2025
38f7db8
Fix up a couple more Setup classes.
andrewimcclement Feb 25, 2025
7849d94
Tidy nullability in Match.cs.
andrewimcclement Feb 25, 2025
0414da0
Tidy nullability in InterfaceProxy.cs.
andrewimcclement Feb 25, 2025
4eee5c8
Fix up nullability in ReturnValue.cs.
andrewimcclement Feb 25, 2025
58f7d95
FIx up nullability in EvaluateCaptures.cs.
andrewimcclement Feb 25, 2025
5199177
Tidy nullability in RefMatcher.cs.
andrewimcclement Feb 25, 2025
2e867ea
Fix up nullability in IMatcher.cs and derived types.
andrewimcclement Feb 25, 2025
14686a1
Tidy nullability in Match.cs.
andrewimcclement Feb 25, 2025
d3bba16
Tidy nullability in MatcherFactory.cs.
andrewimcclement Feb 25, 2025
18ec358
Tidy nullability in MatcherObserver.cs.
andrewimcclement Feb 25, 2025
cfae694
Fix up nullability in MockException.cs.
andrewimcclement Feb 25, 2025
ec3ec8d
Fix up nullability in ParamArrayMatcher.cs.
andrewimcclement Feb 25, 2025
cee34ff
Fix up nullability in ReturnComputedValue.cs.
andrewimcclement Feb 25, 2025
a93d8d5
Tidy nullability in SetupPhrase.cs.
andrewimcclement Feb 25, 2025
9453835
Make best guess at how ThrowComputedException.cs should work.
andrewimcclement Feb 25, 2025
b567d9e
Tidy nullability in Mock.cs.
andrewimcclement Feb 25, 2025
18ba7cb
Tidy nullability in ActionObserver.cs.
andrewimcclement Feb 25, 2025
6b76d11
Tidy nullability in StubbedPropertiesSetup.cs.
andrewimcclement Feb 25, 2025
f2ce793
Tidy nulability in Capture.cs.
andrewimcclement Feb 25, 2025
8549aac
Tidy nullability in ProtectedAsMock.cs and ProtectedMock.cs.
andrewimcclement Feb 25, 2025
b06cb1a
Tidy nullability in MockDefaultValueProvider.cs.
andrewimcclement Feb 26, 2025
5173693
Improve nullability in MethodCall.cs - still some strangeness left over.
andrewimcclement Feb 26, 2025
4b113f6
Tidy nullability in Guard.cs.
andrewimcclement Feb 26, 2025
2795f4d
Tidy nullability in CastleProxyFactory.cs, InterceptionAspects.cs and…
andrewimcclement Feb 26, 2025
2aa360f
Fix up nullability in MatcherAttributeMatcher.cs.
andrewimcclement Feb 26, 2025
1e9981d
Tidy nullability in ActionObserver.cs.
andrewimcclement Feb 26, 2025
bedf16d
Tidy nullability in MockSetupsBuilder.cs.
andrewimcclement Feb 26, 2025
980443b
Tidy nullability in StringBuilderExtensions.AppendExpression.cs.
andrewimcclement Feb 26, 2025
bb10b05
Tidy nullability in ExpressionReconstructor.cs.
andrewimcclement Feb 26, 2025
d2e23c9
Tidy nullability of Evaluator.cs.
andrewimcclement Feb 26, 2025
24c1b2e
Tidy nullability in ItExpr.cs.
andrewimcclement Feb 26, 2025
5b84b67
Tidy nullability in MockFactory.cs.
andrewimcclement Feb 26, 2025
a8ad355
Tidy AsInterface.cs.
andrewimcclement Feb 26, 2025
1cd1d7a
Tidy ConstructorCallVisitor.cs. Fields `constructor` and `arguments` …
andrewimcclement Feb 26, 2025
acc0102
Tidy ReturnsExtensions.cs nullability.
andrewimcclement Feb 26, 2025
6b48764
Tidy nullability in Mock`1.cs.
andrewimcclement Feb 26, 2025
2c13231
Tidy nullability in MockException.cs.
andrewimcclement Feb 26, 2025
d483fd2
Partially fix up nullability in ProtectedMock.cs.
andrewimcclement Feb 26, 2025
89eed98
Tidy nullability in Mock.cs.
andrewimcclement Feb 26, 2025
0b233d2
Some nullability improvements to ExpressionExtensions.cs. It seems li…
andrewimcclement Feb 26, 2025
fc2a0a8
Tidy nullability in It.cs.
andrewimcclement Feb 26, 2025
505f3d9
Revert change to Recorder.invocationTimestamp.
andrewimcclement Feb 26, 2025
196b529
Dotnet format.
andrewimcclement May 28, 2025
175db7d
Simplify StringBuilder.AppendValueOf handling of collections by testi…
andrewimcclement Jul 20, 2025
d433315
Bump EntityFramework from 6.5.1 to 6.5.2
dependabot[bot] Apr 28, 2026
e4a2f27
Fix #1648: defer ValueTask in AwaitableFactory cctor to prevent FileL…
kzu Jun 24, 2026
bee6a60
test: simplify Issue1648 regression after adding standalone verifier …
kzu Jun 24, 2026
10684dc
fix: reliably address #1648 FileLoadException for Tasks.Extensions on…
kzu Jun 24, 2026
b8b33f8
style: apply dotnet format for #1648 PR
kzu Jun 24, 2026
e320230
build: reference harness project from tests so CI builds the exe for …
kzu Jun 24, 2026
b687432
style: apply dotnet format after csproj/test updates for #1648
kzu Jun 24, 2026
8d37b96
test: make #1648 regression robust for CI (ProjectRef + fallback comp…
kzu Jun 24, 2026
d18e4cf
Bump the tests group with 1 update
dependabot[bot] Jun 23, 2026
f329bdd
Bump concurrent-ruby from 1.1.9 to 1.3.7 in /docs
dependabot[bot] Jun 22, 2026
d5514a8
Apply dotnet format
kzu Jun 24, 2026
ecdbe4b
chore: update LangVersion to Latest and bump NuGetizer to 1.4.8
kzu Jun 24, 2026
241c809
Bump NuGetizer to 1.4.9
Copilot Jul 1, 2026
8543a03
Fix windows harness DLL path resolution
Copilot Jul 1, 2026
e24779f
Use GeneratePathProperty for System.Threading.Tasks.Extensions reference
Copilot Jul 1, 2026
020befe
Add System.CodeDom reference for net8 tests
Copilot Jul 1, 2026
e5cd9ab
Update dotnet versions
kzu Jul 1, 2026
f67b586
Bump rexml from 3.2.5 to 3.3.9 in /docs
dependabot[bot] Oct 28, 2024
e23d066
⬆️ Bump files with dotnet-file sync
devlooped-bot Jun 25, 2026
89a5be6
Bump addressable from 2.8.0 to 2.9.0 in /docs
dependabot[bot] Apr 8, 2026
41415bc
rebase for merge
Keugon Jul 3, 2025
4d31d7e
rebase
Aug 30, 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
5 changes: 5 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ indent_size = 2

# Dotnet code style settings:
[*.{cs,vb}]
tab_width = 4

# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true
# Avoid "this." and "Me." if not necessary
Expand Down Expand Up @@ -57,6 +59,9 @@ dotnet_style_require_accessibility_modifiers = omit_if_default:error
# IDE0040: Add accessibility modifiers
dotnet_diagnostic.IDE0040.severity = error

# IDE1100: Error reading content of source file 'Project.TargetFrameworkMoniker' (i.e. from ThisAssembly)
dotnet_diagnostic.IDE1100.severity = none

[*.cs]
# Top-level files are definitely OK
csharp_using_directive_placement = outside_namespace:silent
Expand Down
94 changes: 94 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# .NET Repository

**Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.**

## Working Effectively

### Essential Build Commands
- **Restore dependencies**: `dotnet restore`

- **Build the entire solution**: `dotnet build`

- **Run tests**: `dnx --yes retest`
- Runs all unit tests across the solution
- If tests fail due to Azure Storage, run the following commands and retry: `npm install azurite` and `npx azurite &`

### Build Validation and CI Requirements
- **Always run before committing**:
* `dnx --yes retest`
* `dotnet format whitespace -v:diag --exclude ~/.nuget`
* `dotnet format style -v:diag --exclude ~/.nuget`

### Project Structure and Navigation

| Directory | Description |
|-----------|-------------|
| `src/` | Contains the repo source code. |
| `bin/` | Contains built packages (if any) |

### Code Style and Formatting

#### EditorConfig Rules
The repository uses `.editorconfig` at the repo root for consistent code style.

- **Indentation**: 4 spaces for C# files, 2 spaces for XML/YAML/JSON
- **Line endings**: LF (Unix-style)
- **Sort using directives**: System.* namespaces first (`dotnet_sort_system_directives_first = true`)
- **Type references**: Prefer language keywords over framework type names (`int` vs `Int32`)
- **Modern C# features**: Use object/collection initializers, coalesce expressions when possible, use var when the type is apparent from the right-hand side of the assignment
- **Visibility modifiers**: only explicitly specify visibility when different from the default (e.g. `public` for classes, no `internal` for classes or `private` for fields, etc.)

#### Formatting Validation
- CI enforces formatting with `dotnet format whitespace` and `dotnet format style`
- Run locally: `dotnet format whitespace --verify-no-changes -v:diag --exclude ~/.nuget`
- Fix formatting: `dotnet format` (without `--verify-no-changes`)

### Testing Practices

#### Test Framework
- **xUnit** for all unit and integration tests
- **Moq** for mocking dependencies
- Located in `src/*.Tests/`

#### Test Attributes
Custom xUnit attributes are sometimes used for conditional test execution:
- `[SecretsFact("XAI_API_KEY")]` - Skips test if required secrets are missing from user secrets or environment variables
- `[LocalFact("SECRET")]` - Runs only locally (skips in CI), requires specified secrets
- `[CIFact]` - Runs only in CI environment

### Dependency Management

#### Adding Dependencies
- Add to appropriate `.csproj` file
- Run `dotnet restore` to update dependencies
- Ensure version consistency across projects where applicable

#### CI/CD Pipeline
- **Build workflow**: `.github/workflows/build.yml` - runs on PR and push to main/rel/feature branches
- **Publish workflow**: Publishes to Sleet feed when `SLEET_CONNECTION` secret is available
- **OS matrix**: Configured in `.github/workflows/os-matrix.json` (defaults to ubuntu-latest)

### Special Files and Tools

#### dnx Command
- **Purpose**: built-in tool for running arbitrary dotnet tools that are published on nuget.org. `--yes` auto-confirms install before run.
- **Example**: `dnx --yes retest` - runs tests with automatic retry on transient failures (retest being a tool package published at https://www.nuget.org/packages/retest)
- **In CI**: `dnx --yes retest -- --no-build` (skips build, runs tests only)

#### Directory.Build.rsp
- MSBuild response file with default build arguments
- `-nr:false` - disables node reuse
- `-m:1` - single-threaded build (for stability)
- `-v:m` - minimal verbosity

#### Code Quality
- All PRs must pass format validation
- Tests must pass on all target frameworks
- Follow existing patterns and conventions in the codebase

## Documenting Work

Project implemention details, design and key decisions should be documented in a top-level AGENTS.md file at the repo root.
Keep this file updated whenever you make change significant changes for future reference.

User-facing features and APIs should be documented to highlight (not extensively, as an overview) key project features and capabilities, in the readme.md file at the repo root.
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,17 @@ updates:
Extensions:
patterns:
- "Microsoft.Extensions*"
exclude-patterns:
- "Microsoft.Extensions.AI*"
ExtensionsAI:
patterns:
- "Microsoft.Extensions.AI*"
Web:
patterns:
- "Microsoft.AspNetCore*"
OpenTelemetry:
patterns:
- "OpenTelemetry*"
Tests:
patterns:
- "Microsoft.NET.Test*"
Expand Down
4 changes: 4 additions & 0 deletions .github/dotnet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[
"6.x",
"8.x"
]
16 changes: 5 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
- Release
- Debug
push:
branches: [ main, dev, 'dev/*', 'feature/*', 'rel/*' ]
branches: [ main, 'feature/*', 'rel/*' ]
paths-ignore:
- changelog.md
- readme.md
Expand Down Expand Up @@ -66,15 +66,14 @@ jobs:
fetch-depth: 0

- name: ⚙ dotnet
uses: ./.github/actions/dotnet
uses: devlooped/actions-dotnet-env@v1

- name: 🙏 build
run: dotnet build -m:1 -bl:build.binlog

- name: 🧪 test
run: |
dotnet tool update -g dotnet-retest
dotnet retest -- --no-build
shell: pwsh
run: dnx --yes retest -- --no-build

- name: 🐛 logs
uses: actions/upload-artifact@v4
Expand All @@ -101,12 +100,7 @@ jobs:
fetch-depth: 0

- name: ⚙ dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
6.x
8.x
9.x
uses: devlooped/actions-dotnet-env@v1

- name: ✓ ensure format
run: |
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/dotnet-env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: dotnet-env
on:
workflow_dispatch:
push:
branches:
- main
paths:
- '**/*.*proj'

jobs:
which-dotnet:
runs-on: ubuntu-latest
env:
PR_TOKEN: ${{ secrets.DEVLOOPED_TOKEN || secrets.GH_TOKEN }}
permissions:
contents: write
pull-requests: write

steps:
- name: 🤖 defaults
uses: devlooped/actions-bot@v1
with:
name: ${{ secrets.BOT_NAME }}
email: ${{ secrets.BOT_EMAIL }}
gh_token: ${{ env.PR_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: 🤘 checkout
uses: actions/checkout@v4
with:
token: ${{ env.PR_TOKEN || github.token }}

- name: 🤌 dotnet
uses: devlooped/actions-which-dotnet@v1

- name: ✍ pull request
if: env.PR_TOKEN != ''
uses: peter-evans/create-pull-request@v7
with:
base: main
branch: which-dotnet
delete-branch: true
labels: dependencies
title: "⚙ Update dotnet versions"
body: "Update dotnet versions"
commit-message: "Update dotnet versions"
token: ${{ env.PR_TOKEN }}

- name: ⚠️ skip pull request
if: env.PR_TOKEN == ''
shell: bash
run: echo "::warning::Skipping PR creation because neither DEVLOOPED_TOKEN nor GH_TOKEN is configured. GITHUB_TOKEN cannot create pull requests in this repository."
42 changes: 35 additions & 7 deletions .github/workflows/includes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ on:
branches:
- 'main'
paths:
- '**.md'
- '**.md'
- '!changelog.md'
- 'osmfeula.txt'

jobs:
includes:
runs-on: ubuntu-latest
env:
PR_TOKEN: ${{ secrets.DEVLOOPED_TOKEN || secrets.GH_TOKEN }}
permissions:
contents: write
pull-requests: write
Expand All @@ -20,28 +23,53 @@ jobs:
with:
name: ${{ secrets.BOT_NAME }}
email: ${{ secrets.BOT_EMAIL }}
gh_token: ${{ secrets.GH_TOKEN }}
gh_token: ${{ env.PR_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: 🤘 checkout
uses: actions/checkout@v4
with:
token: ${{ env.GH_TOKEN }}
token: ${{ env.PR_TOKEN || github.token }}

- name: +Mᐁ includes
uses: devlooped/actions-includes@v1

- name: 📝 OSMF EULA
shell: pwsh
run: |
$file = "osmfeula.txt"
$props = "src/Directory.Build.props"
if (-not (test-path $file) -or -not (test-path $props)) {
exit 0
}

$product = dotnet msbuild $props -getproperty:Product
if (-not $product) {
write-error 'To use OSMF EULA, ensure the $(Product) property is set in Directory.props'
exit 1
}

((get-content -raw $file) -replace '\$product\$',$product).trim() | set-content $file

- name: ✍ pull request
uses: peter-evans/create-pull-request@v6
if: env.PR_TOKEN != ''
uses: peter-evans/create-pull-request@v8
with:
add-paths: '**.md'
add-paths: |
**.md
*.txt
base: main
branch: markdown-includes
delete-branch: true
labels: docs
labels: dependencies
author: ${{ env.BOT_AUTHOR }}
committer: ${{ env.BOT_AUTHOR }}
commit-message: +Mᐁ includes
title: +Mᐁ includes
body: +Mᐁ includes
token: ${{ env.GH_TOKEN }}
token: ${{ env.PR_TOKEN }}

- name: ⚠️ skip pull request
if: env.PR_TOKEN == ''
shell: bash
run: echo "::warning::Skipping PR creation because neither DEVLOOPED_TOKEN nor GH_TOKEN is configured. GITHUB_TOKEN cannot create pull requests in this repository."
7 changes: 3 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,14 @@ jobs:
fetch-depth: 0

- name: ⚙ dotnet
uses: ./.github/actions/dotnet
uses: devlooped/actions-dotnet-env@v1

- name: 🙏 build
run: dotnet build -m:1 -bl:build.binlog

- name: 🧪 test
run: |
dotnet tool update -g dotnet-retest
dotnet retest -- --no-build
shell: pwsh
run: dnx --yes retest -- --no-build

- name: 🐛 logs
uses: actions/upload-artifact@v4
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ jobs:
# if we don't have at least 100 requests left, wait until reset
if ($rate.remaining -lt 100) {
$wait = ($rate.reset - (Get-Date (Get-Date).ToUniversalTime() -UFormat %s))
echo "Rate limit remaining is $($rate.remaining), waiting for $($wait / 1000) seconds to reset"
if ($wait -gt 300) {
echo "Rate limit remaining is $($rate.remaining), reset in $wait seconds (more than 5'). Aborting."
exit 1
}
echo "Rate limit remaining is $($rate.remaining), waiting $wait seconds to reset"
sleep $wait
$rate = gh api rate_limit | convertfrom-json | select -expandproperty rate
echo "Rate limit has reset to $($rate.remaining) requests"
Expand Down
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
bin
obj
out
artifacts
pack
agent-tools
terminals
TestResults
results
BenchmarkDotNet.Artifacts
mcps
/app
/temp
.vs
.vscode
.genaiscript
.idea
local.settings.json
.env
.next
*.local

*.suo
*.sdf
Expand All @@ -24,6 +32,7 @@ local.settings.json
*.binlog
*.zip
__azurite*.*
AzuriteConfig
__*__

.nuget
Expand Down
Loading
Loading