## ADDED Requirements ### Requirement: GitHub adapter implements provider interface The system SHALL provide a GitHub adapter that implements the GitProvider interface. #### Scenario: List repositories - **WHEN** the adapter lists repositories for an authenticated user - **THEN** it returns a list of repository objects with name, url, and default_branch #### Scenario: Create deploy key - **WHEN** the adapter creates a deploy key for a repository - **THEN** it registers the SSH public key with GitHub - **AND** returns the key ID #### Scenario: Validate connection - **WHEN** the adapter validates a token - **THEN** it verifies the token with GitHub API - **AND** returns user information ### Requirement: GitLab adapter implements provider interface The system SHALL provide a GitLab adapter that implements the GitProvider interface. #### Scenario: List repositories - **WHEN** the adapter lists repositories for an authenticated user - **THEN** it returns a list of repository objects with name, url, and default_branch #### Scenario: Create deploy key - **WHEN** the adapter creates a deploy key for a repository - **THEN** it registers the SSH public key with GitLab - **AND** returns the key ID #### Scenario: Validate connection - **WHEN** the adapter validates a token - **THEN** it verifies the token with GitLab API - **AND** returns user information