Skip to content

Add repository browser to fetch and select repositories from a user #12

@Philipp0205

Description

@Philipp0205

Summary

Implement a repository browser view that allows users to fetch all repositories for a GitHub/Bitbucket user or organization and select a repository to work with.

User Story

As a developer, I want to browse and select from all my accessible repositories, so that I can easily switch between different projects without manually entering repository URLs.

Proposed Solution

  • Create new "Repository Browser" view or wizard
  • Fetch repositories using GitHub/Bitbucket user/org APIs
  • Display repositories in searchable/filterable tree or list
  • Show repository metadata (name, description, last updated, visibility)
  • Double-click or "Open" action to configure plugin for selected repository
  • Cache repository list with refresh capability
  • Support both personal and organization repositories

Acceptance Criteria

  • New view or wizard for browsing repositories
  • Fetches all accessible repositories for authenticated user
  • Displays repository name, description, and metadata
  • Search/filter functionality for large repository lists
  • Select repository to configure pull request plugin
  • Works for GitHub repositories
  • Works for Bitbucket repositories
  • Handles pagination for users with many repositories
  • Repository list can be refreshed
  • Shows loading state during fetch

Technical Considerations

  • GitHub: Use /user/repos and /orgs/{org}/repos endpoints
  • Bitbucket: Use /repositories/{workspace} endpoints
  • Implement pagination handling (GitHub returns 30 per page)
  • Use Eclipse Jobs API for async repository fetching
  • Create SWT TreeViewer or TableViewer for repository display
  • Add text filter using ViewerFilter
  • Cache repository metadata in preference store
  • Consider lazy loading for organization repositories
  • Handle authentication and scopes/permissions
  • Sort repositories by last updated or name

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions