Develop a GitLabIssueTracker class that implements the AbstractIssueTracker interface within the corpora_pm module. This will parallel the existing GitHubIssueTracker implementation.
Objective
Enable corpora_pm to integrate with GitLab by creating a new issue tracker provider. This will allow tracking and managing issues on GitLab repositories, similar to existing capabilities for GitHub.
Requirements
Implement all methods defined in AbstractIssueTracker: list_issues, get_issue, create_issue, update_issue, and add_comment.
Follow the structure and approach of GitHubIssueTracker, adapt to GitLab's API.
Test thoroughly with appropriate unit tests, using mocks to simulate API responses where direct API interaction isn't viable.
Considerations
Ensure authentication handling aligns with GitLab's access tokens.
Use Python requests or a similar library to manage HTTP interactions with GitLab's API.
Structure the code to fit within the existing modular design of corpora_pm and maintain scalability for future integrations.
This feature will extend the utility of corpora_pm to a wider range of users who utilize GitLab for project management, enhancing the adaptability and reach of the tools developed in this project. Ensure that your implementation adheres to the repository's guidelines for contributing and integrates smoothly into the existing codebase. Avoid introducing breaking changes unless absolutely necessary, providing fallbacks or configurations as needed.
Develop a GitLabIssueTracker class that implements the AbstractIssueTracker interface within the corpora_pm module. This will parallel the existing GitHubIssueTracker implementation.
Objective
Enable corpora_pm to integrate with GitLab by creating a new issue tracker provider. This will allow tracking and managing issues on GitLab repositories, similar to existing capabilities for GitHub.
Requirements
Considerations
This feature will extend the utility of corpora_pm to a wider range of users who utilize GitLab for project management, enhancing the adaptability and reach of the tools developed in this project. Ensure that your implementation adheres to the repository's guidelines for contributing and integrates smoothly into the existing codebase. Avoid introducing breaking changes unless absolutely necessary, providing fallbacks or configurations as needed.