Skip to content

Conversation

malancas
Copy link
Contributor

@malancas malancas commented Jun 6, 2024

Part of https://github.com/github/package-security/issues/1732

Update GetTrustedRoot to sync the TUF cache every 24 hours. I will look into threading the new trustroot-resync-period flag down to this function to the resync period is no longer hardcoded in a follow up.

malancas added 4 commits June 6, 2024 13:06
Signed-off-by: Meredith Lancaster <malancas@github.com>
Signed-off-by: Meredith Lancaster <malancas@github.com>
Signed-off-by: Meredith Lancaster <malancas@github.com>
Signed-off-by: Meredith Lancaster <malancas@github.com>
@malancas malancas changed the title Sync tuf cache used for sigstore bundle verification Sync TUF cache used for sigstore bundle verification Jun 14, 2024
@malancas malancas marked this pull request as ready for review June 14, 2024 13:38
@malancas malancas requested review from steiza and a team as code owners June 14, 2024 13:38
Copy link
Member

@phillmv phillmv left a comment

Choose a reason for hiding this comment

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

Looks good, suggested minor change.

pkg/tuf/repo.go Outdated
)

// GetTrustedRoot returns the trusted root for the TUF repository.
func GetTrustedRoot() (*root.TrustedRoot, error) {
once.Do(func() {
now := time.Now().UTC()
if timestamp.IsZero() || timestamp.Before(now.Add(-24*time.Hour)) {
Copy link
Member

Choose a reason for hiding this comment

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

🤔 Before(now.Add(-24*Hour) doesn't quite roll off the tongue. What about,

is now 24hrs after the last time we checked?
now.After(timestamp.Add(24*time.Hour))

(assuming I didn't mess up the math, time math is notoriously tricky)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That seems easier to understand to me

Signed-off-by: Meredith Lancaster <malancas@github.com>
Copy link
Contributor

@codysoyland codysoyland left a comment

Choose a reason for hiding this comment

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

Nice, looks good!

@malancas malancas merged commit e2bccf2 into release Jun 19, 2024
@malancas malancas deleted the tuf-cache-sync branch June 19, 2024 14:31
codysoyland pushed a commit that referenced this pull request Jun 24, 2024
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Jul 9, 2024
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Sep 16, 2024
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Oct 10, 2024
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Nov 18, 2024
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Jan 7, 2025
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Mar 27, 2025
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
codysoyland pushed a commit that referenced this pull request Apr 10, 2025
* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>
jkylekelly pushed a commit that referenced this pull request Jul 24, 2025
Signed-off-by: Cody Soyland <codysoyland@github.com>

Sync TUF cache used for sigstore bundle verification (#166)

* sync tuf cache used for sigstore bundle verification

Signed-off-by: Meredith Lancaster <malancas@github.com>

* remove singleton err

Signed-off-by: Meredith Lancaster <malancas@github.com>

* start adding lock

Signed-off-by: Meredith Lancaster <malancas@github.com>

* Use RWMutex

Signed-off-by: Meredith Lancaster <malancas@github.com>

* pr feedback

Signed-off-by: Meredith Lancaster <malancas@github.com>

---------

Signed-off-by: Meredith Lancaster <malancas@github.com>

Fix shadowed trustedroot (#178)

* Fix shadowed variable bug

This code caused the singleton `trustedRoot` to be returned as nil on subsequent calls. The singleton was shadowed when the variable was redeclared in the `if` block.

Signed-off-by: Cody Soyland <codysoyland@github.com>

* Remove unused singleton

`singletonRootError` was never returned without being overwritten, so it was essentially unused. I think it's wise to always retry the TUF call on future invocations in case of network errors.

Signed-off-by: Cody Soyland <codysoyland@github.com>

---------

Signed-off-by: Cody Soyland <codysoyland@github.com>

Update go.mod

Signed-off-by: Cody Soyland <codysoyland@github.com>
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