Skip to content

feat: display repo license info IN-1099#1906

Merged
gaspergrom merged 5 commits into
mainfrom
feat/IN-1099-display-repo-license-info
May 16, 2026
Merged

feat: display repo license info IN-1099#1906
gaspergrom merged 5 commits into
mainfrom
feat/IN-1099-display-repo-license-info

Conversation

@gaspergrom
Copy link
Copy Markdown
Collaborator

Summary

  • Map repoLicenses tuples from Tinybird into per-repository licenses arrays in the project API endpoint
  • Add new LfxProjectLicenses component to the project about section displaying license chips with tooltip/popover interactions
  • Filter out NONE licenses, display NOASSERTION as "Other", sort "Other" last
  • Show tooltip ("License shared by all repositories") for universal licenses; show popover with repo list for partial licenses
  • Suppress tooltip/popover when a single repository is selected
  • "Show more / Show less" toggle for > 5 licenses, 12px below chips, left-aligned
  • Format repo names in popover using normalizeRepoName (same as repository selector)

Changes

  • frontend/types/project.ts — added licenses: string[] to ProjectRepository, repoLicenses: [string, string][] to ProjectTinybird
  • frontend/server/api/project/[slug]/index.ts — map repo licenses from Tinybird response onto each repository object
  • frontend/app/components/modules/project/components/overview/about-section/licenses.vue — new licenses display component
  • frontend/app/components/modules/project/components/overview/about-section.vue — mount <lfx-licenses /> in the about section

Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
@gaspergrom gaspergrom requested a review from joanagmaia May 14, 2026 09:27
@gaspergrom gaspergrom self-assigned this May 14, 2026
Copilot AI review requested due to automatic review settings May 14, 2026 09:27
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds repository license information to the project detail flow, mapping Tinybird license tuples into repository data and rendering license chips in the project about section.

Changes:

  • Extends project/repository types with license data.
  • Maps repoLicenses from Tinybird onto each repository in the project API.
  • Adds and mounts a new licenses UI component with chips, tooltips/popovers, and show more/less behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
frontend/types/project.ts Adds license-related fields to project repository and Tinybird types.
frontend/server/api/project/[slug]/index.ts Builds a license lookup and attaches license arrays to returned repositories.
frontend/app/components/modules/project/components/overview/about-section/licenses.vue New UI for displaying project/repository licenses and repo-filter popovers.
frontend/app/components/modules/project/components/overview/about-section.vue Mounts the licenses component in the project about section.
Comments suppressed due to low confidence (1)

frontend/app/components/modules/project/components/overview/about-section/licenses.vue:66

  • These repository options are clickable <div> elements without keyboard semantics. Even when the popover is open, they are not focusable and do not expose button/listbox behavior to assistive technologies; render them as buttons/links or add the necessary role, tabindex, and key handlers.
                <div
                  v-for="repo of getReposForLicense(license)"
                  :key="repo.url"
                  class="flex items-center pl-2 py-2 gap-3 w-full rounded-lg cursor-pointer hover:bg-neutral-50"
                  @click="filterByRepo(repo.slug)"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +110 to +112
const isRepoSelected = computed(() => selectedRepositories.value.length > 0);

const activeRepos = computed(() => (isRepoSelected.value ? selectedRepositories.value : projectRepos.value));
slug,
score: details.score || 0,
rank: details.rank || 0,
licenses: licensesByUrl[repoUrl] || [],
Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
@gaspergrom gaspergrom requested a review from joanagmaia May 15, 2026 07:31
Copy link
Copy Markdown
Collaborator

@joanagmaia joanagmaia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gaspergrom gaspergrom merged commit 9a63a75 into main May 16, 2026
10 checks passed
@gaspergrom gaspergrom deleted the feat/IN-1099-display-repo-license-info branch May 16, 2026 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants