Prompt
Follow consistent naming conventions throughout the codebase to improve readability and maintainability:
- Client property names should be singular, not plural:
// Good IObservableOrganizationHooksClient Hook { get; } // Not IObservableOrganizationHooksClient Hooks { get; } - Method names should include appropriate verbs and be concise:
// Good Task<string> GetSha1(string owner, string name, string reference); // Not Task<string> Sha1(string owner, string name, string reference); - Always use nameof() for parameter validation instead of string literals:
// Good Ensure.ArgumentNotNull(client, nameof(client)); // Not Ensure.ArgumentNotNull(client, "client"); - Use descriptive parameter names that clearly communicate purpose:
```csharp
// Good - clear distinction between concepts
IObservable
Delete(string owner, string name, int number, int reactionId); // Not - ambiguous IObservable Delete(string owner, string name, int number, int reaction);
// Good - clearly identifies repository ID
Task
5. **For pull request operations, use 'number'** instead of 'id' to avoid confusion with the internal ID:
```csharp
// Good
IObservable<PullRequest> Get(string owner, string name, int number);
// Not
IObservable<PullRequest> Get(string owner, string name, int pullRequestId);
These conventions help maintain a consistent codebase, reduce confusion, and make the API more intuitive for consumers.