-
Notifications
You must be signed in to change notification settings - Fork 505
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding new fields to RevInfo (#1812)
* Allow unknown fields in RevInfo * Revert "Allow unknown fields in RevInfo" This reverts commit 902d791. * Adding new fields to rev_info.go * fixed tests
- Loading branch information
Showing
2 changed files
with
43 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,47 @@ | ||
package storage | ||
|
||
import ( | ||
"time" | ||
) | ||
import "time" | ||
|
||
// From https://pkg.go.dev/cmd/go/internal/modfetch/codehost#Origin | ||
type Origin struct { | ||
VCS string `json:",omitempty"` // "git" etc | ||
URL string `json:",omitempty"` // URL of repository | ||
Subdir string `json:",omitempty"` // subdirectory in repo | ||
|
||
// If TagSum is non-empty, then the resolution of this module version | ||
// depends on the set of tags present in the repo, specifically the tags | ||
// of the form TagPrefix + a valid semver version. | ||
// If the matching repo tags and their commit hashes still hash to TagSum, | ||
// the Origin is still valid (at least as far as the tags are concerned). | ||
// The exact checksum is up to the Repo implementation; see (*gitRepo).Tags. | ||
TagPrefix string `json:",omitempty"` | ||
TagSum string `json:",omitempty"` | ||
|
||
// If Ref is non-empty, then the resolution of this module version | ||
// depends on Ref resolving to the revision identified by Hash. | ||
// If Ref still resolves to Hash, the Origin is still valid (at least as far as Ref is concerned). | ||
// For Git, the Ref is a full ref like "refs/heads/main" or "refs/tags/v1.2.3", | ||
// and the Hash is the Git object hash the ref maps to. | ||
// Other VCS might choose differently, but the idea is that Ref is the name | ||
// with a mutable meaning while Hash is a name with an immutable meaning. | ||
Ref string `json:",omitempty"` | ||
Hash string `json:",omitempty"` | ||
|
||
// If RepoSum is non-empty, then the resolution of this module version | ||
// failed due to the repo being available but the version not being present. | ||
// This depends on the entire state of the repo, which RepoSum summarizes. | ||
// For Git, this is a hash of all the refs and their hashes. | ||
RepoSum string `json:",omitempty"` | ||
} | ||
|
||
// RevInfo is json-encodable into the response body for | ||
// GET baseURL/module/@v/version.info | ||
// | ||
// This struct is taken directly from https://research.swtch.com/vgo-module | ||
// (see "Download Protocol" header) | ||
// From https://pkg.go.dev/cmd/go/internal/modfetch/codehost#RevInfo | ||
type RevInfo struct { | ||
Version string `json:"Version"` // version string | ||
Time time.Time `json:"Time"` // commit time | ||
Origin *Origin | ||
Name string // complete ID in underlying repository | ||
Short string // shortened ID, for use in pseudo-version | ||
Version string // version used in lookup | ||
Time time.Time // commit time | ||
Tags []string // known tags for commit | ||
} |