Strypper / mauisland

MAUIsland 🏝️ is the number 1 controls gallery for .NET MAUI
MIT License
198 stars 14 forks source link

πŸš€ OctokitGitHubClient Implementation #183

Closed Strypper closed 5 months ago

Strypper commented 8 months ago

Description

Implement logic that follows this interface


namespace MAUIsland.GitHubProvider;

public interface IGitHubService
{
    Task<GitHubRepositoryModel> GetRepository(string owner, string repository);

    Task<GitHubAuthorModel> GetAuthor(string owner);

    Task<IEnumerable<GitHubIssueModel>> GetGitHubIssues(string owner, string repository);

    Task<IEnumerable<GitHubIssueModel>> GetGitHubIssuesByLabels(string owner, string repository, IEnumerable<string> labels);

    Task<GitHubIssueModel> GetGitHubIssueById(string owner, string repository, string issueNumber);
}

Testing Your Implementation

To test your implementation:

  1. Open GitHubServiceIntegrationTest.cs where all test cases are provided to interact with your logic.
  2. Choose the test you want to execute.
  3. Select "Debug Test".
  4. Set breakpoints within your implementation methods to inspect the code flow and ensure correct behavior.

Public API Changes


    Task<GitHubRepositoryModel> GetRepository(string owner, string repository);

    Task<GitHubAuthorModel> GetAuthor(string owner);

    Task<IEnumerable<GitHubIssueModel>> GetGitHubIssues(string owner, string repository);

    Task<IEnumerable<GitHubIssueModel>> GetGitHubIssuesByLabels(string owner, string repository, IEnumerable<string> labels);

    Task<GitHubIssueModel> GetGitHubIssueById(string owner, string repository, string issueNumber);

Intended Use-Case

Get information:

  1. GitHub repository
  2. GitHub repository issues
  3. GitHub Author

Tasks

Strypper commented 5 months ago

Implemented