Skip to content

🚀 OctokitGitHubClient Implementation #183

@Strypper

Description

@Strypper

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

  • Task GetRepository(string owner, string repository);
  • Task GetAuthor(string owner);
  • Task<IEnumerable> GetGitHubIssues(string owner, string repository);
  • Task<IEnumerable> GetGitHubIssuesByLabels(string owner, string repository, IEnumerable labels);
  • Task GetGitHubIssueById(string owner, string repository, string issueNumber);

Metadata

Metadata

Assignees

Labels

effort/mediumMedium amount of work, 4h to 16h actionlevel/normal 🙂In comfort zone, little research and may require using built-in features, but no RnDnew feature 🚀New feature addition

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions