Skip to content

feat: Refreshed UI#1507

Open
andypols wants to merge 25 commits intofinos:mainfrom
qube-rt:new-ui
Open

feat: Refreshed UI#1507
andypols wants to merge 25 commits intofinos:mainfrom
qube-rt:new-ui

Conversation

@andypols
Copy link
Copy Markdown
Contributor

@andypols andypols commented Apr 20, 2026

Summary

This PR modernises the git-proxy UI while keeping backend changes to a minimum.

resolves #1106
resolves #1123
resolves #1176
resolves #1258
resolves #1297
resolves #1420
resolves #1495

UI L&F

  • Upgraded to the latest React version
  • Replaced legacy @material-ui with GitHub’s component library (@primer/react) and Tailwind CSS (fixes Replace MUI v4 styling with Tailwind #1106).
  • Replaced legacy moment with luxon for UI date/time handling.
  • Removed the left-hand navigation and replaced it with a responsive top navigation bar.
  • Updated pages to use query parameters to preserve state, so browser back/forward navigation works as expected.

Standard top navigation:

CleanShot 2026-04-20 at 10 47 40@2x

Mobile (responsive) navigation:

CleanShot 2026-04-20 at 10 52 03@2x

Repositories

Repository list view

CleanShot 2026-04-20 at 11 12 58@2x

Repository

  • Added activity summary for the repository
  • Replaced the add-user modal with proper autocomplete. User lookup now matches on typed characters instead of showing all users. It also supports pasting a username directly

Repository view

CleanShot 2026-04-20 at 11 51 35@2x

Activities (previously Dashboard)

Activity list view

CleanShot 2026-04-20 at 11 32 52@2x

Users

User list view

CleanShot 2026-04-20 at 11 40 41@2x

User

  • Added activity summary for the user

User view

CleanShot 2026-04-20 at 11 43 41@2x

Backend APIs & Services

This branch adds the backend APIs and service-layer support needed for the new UI:

  • A new GET /api/v1/repo/:id/scm-metadata endpoint fetches and caches GitHub/GitLab repository metadata using new provider-specific logic in src/service/gitProviders. The github api endpoint is currently unauthenticated, but the implementation is structured so future PRs can add bearer-token auth and provider-specific operations such as forking or syncing.
  • A new GET /api/v1/user/:id/activity endpoint returns all pushes attributed to a user.
  • The existing GET /api/v1/user response now includes activity tab counts.
  • The existing GET /api/v1/repo response now includes activity tab counts.

@andypols andypols requested a review from a team as a code owner April 20, 2026 11:15
@netlify
Copy link
Copy Markdown

netlify bot commented Apr 20, 2026

Deploy Preview for endearing-brigadeiros-63f9d0 canceled.

Name Link
🔨 Latest commit d07c2f0
🔍 Latest deploy log https://app.netlify.com/projects/endearing-brigadeiros-63f9d0/deploys/69e65b4aca75bd0007aec881

Comment thread src/ui/views/RepoDetails/RepoDetails.tsx Fixed
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 20, 2026

Codecov Report

❌ Patch coverage is 44.12651% with 371 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.19%. Comparing base (2019faf) to head (d07c2f0).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
src/db/file/pushes.ts 26.92% 76 Missing ⚠️
src/db/mongo/pushes.ts 36.52% 73 Missing ⚠️
src/db/index.ts 27.14% 51 Missing ⚠️
src/service/gitProviders/GitLabProvider.ts 12.24% 43 Missing ⚠️
src/service/scmMetadata.ts 63.63% 40 Missing ⚠️
src/service/gitProviders/GitHubProvider.ts 29.26% 29 Missing ⚠️
src/activity/activityPrimaryStatus.ts 4.76% 20 Missing ⚠️
src/db/userProfilePushQuery.ts 51.72% 14 Missing ⚠️
src/activity/canonicalRemoteUrl.ts 64.51% 9 Missing and 2 partials ⚠️
src/db/repoActivityMerge.ts 70.00% 6 Missing ⚠️
... and 3 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1507      +/-   ##
==========================================
- Coverage   90.21%   85.19%   -5.03%     
==========================================
  Files          69       79      +10     
  Lines        5511     6148     +637     
  Branches      944      980      +36     
==========================================
+ Hits         4972     5238     +266     
- Misses        521      890     +369     
- Partials       18       20       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@kriswest kriswest added this to the 2.2.0 milestone Apr 20, 2026
@kriswest
Copy link
Copy Markdown
Contributor

Hey @andypols, we discussed this PR at #1506 and are (as a group) excited to see this get done. We debated whether to put this PR in scope for 2.1.0 or whether to go for 2.2.0... There are at least 2 PRs also scoped for 2.1.0 that will need UI additions:

SSH has been waiting for a long time so consensus at the meeting was (reluctantly) to do that first and then ask you to update #1507 to add the additional UI panels (or to collab with you on doing so). Hence, we've marked this for 2.2.0 (and as the only issue in that milestone currently). Does that work for you?

Also, please see the below notes from the meeting agenda:

  • there was a question about some additional issues you may or may not be taking care of with the PR (no worries if not, just needed to check and add them to the resolves list if they are getting done):
  • We need to know if feat: add server-side pagination to API endpoints #1464 is redundant and can be closed (sounds like a yes, but wanted to be 100% sure)

Agenda except from #1506

On the final question, we're expecting it to close a few renovate PRs as we drop some dependencies in favour of new ones?

@andypols
Copy link
Copy Markdown
Contributor Author

andypols commented Apr 20, 2026

Hey @kriswest

SSH has been waiting for a long time so consensus at the meeting was (reluctantly) to do that first and then ask you to update #1507 to add the additional UI panels (or to collab with you on doing so). Hence, we've marked this for 2.2.0 (and as the only issue in that milestone currently). Does that work for you?

I think the bigger issue is that planning has started to block releases rather than guide them. We used to release regularly; now worthwhile contributions sit for long periods and get pushed back further and further. SSH is a good example, and I’m concerned the UI work may end up the same way.

I’d prefer a simpler approach: merge bug fixes and useful enhancements when they’re ready. Then make release review a standing agenda item at each meeting by asking, “Is there any reason not to release the latest changes?”

I did not implement the paging in the database - we tried to leave the db layer alone and just focus on the UI. #1464 is not redundant, although its not really needed yet and can wait until the ui changes have been made.

Yes, the caching has addressed this. It will not include any project metadata

It has probably improved but will still need to be done.

No this still needs doing. Cypress is hard for us as its blocked internally for security reasons. The existing cypress tests are working locally, no idea why they are failing in the pr tests.

@kriswest
Copy link
Copy Markdown
Contributor

I think the bigger issue is that planning has started to block releases rather than guide them. We used to release regularly; now worthwhile contributions sit for long periods and get pushed back further and further. SSH is a good example, and I’m concerned the UI work may end up the same way.

The delay on the SSH feature was a decision we made collectively because the wholesale refactor of the code conflicted with everything making it very hard to merge. For 2.1.0 we've picked that and a number of other (pretty much) dev complete PRs to get merged to try and get to release relatively quickly to start clearing our backlog, with the goal of getting back to quicker releases as soon as we've got that done.

Nothing we've picked needs much new work apart from resolving conflicts and review/testing - we just had to deal with the expected conflict between your UI rebuild and a couple of the PRs that will add to the UI. There's not an easy solution to that other than one or the other going first. As per the meeting minutes, I offered to check-in with you as the meeting was keen to get both the UI and SSH etc. in ASAP.

We also have some issues with Cypress testing here - but I've got a machine I can run them on. Perhaps we can get some collab going on resolving those so that the coverage doesn't dip. It might be worth merging this into a FINOS repo branch to do that?

@kriswest
Copy link
Copy Markdown
Contributor

I think the bigger issue is that planning has started to block releases rather than guide them.

I think we switched from making smaller changes to great big ones which caused this. SSH and a new UI are not small, but not quite as massive as the whole codebase refactor. Hopefully after these we'll have a run of smaller changes.

@kriswest
Copy link
Copy Markdown
Contributor

kriswest commented Apr 21, 2026

@kriswest
Copy link
Copy Markdown
Contributor

The dependency review check may be having trouble because its a PR from a fork?? Perhaps setting
comment-summary-in-pr: on-failure at:

comment-summary-in-pr: always

will help?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants