microsoft / microsoft/winget-pkgs

[New Feature]: Throw Validation-Domain when Github URLS don't strongly correlate to the PackageIdentifier

Open
#204,673 1 comment 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Validation-Pipeline Issue-Feature
Dominant language
No language data
Stars
11.1k
Forks
9.7k
Avg merge
1h 32m
Merged PRs (30d)
376

Description

Description of the new feature/enhancement

For most packages that are hosted on GitHub, the PackageIdentifier is of the form Organization.RepoName where both the organization and the repo name have been normalized. For example, https://github.com/Example-Desktop/ExampleOne may end up as Example.ExampleOne while https://github.com/Example-Two/Package may end up as ExampleTwo.Package.

In the current state of the pipelines, any GitHub URL seems to pass validation without Validation-Domain, regardless of if they correlate to the package identifier. This means that a fork like https://github.com/denelon/Package could be submitted to the identifier Trenly.Package without ever throwing Validation-Domain. Given the standards already set in the repository, and the need for correct attribution, this should not be allowed.

Proposed technical implementation details (optional)

A new type of domain validation should be applied to GitHub URLs to ensure they point to a heuristically similar fork that the package identifier is claiming. Since it is possible for GitHub organizations to be renamed, or for there to be a genuine need for an identifier to not match the organization, there should be a way to apply a waiver.

It would be best if all GitHub URLs had to have a waiver which correlated the package identifier to a specific repository

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by locating the pipeline handling Validation-Domain for GitHub URLs, then review existing identifier checks and waiver mechanisms. Done should include a decided correlation rule, an explicit waiver path, and coverage for matching, mismatching, renamed, and waived repositories.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.