@@ -2,6 +2,7 @@ package gobookmarks
22
33import (
44 "context"
5+ "errors"
56 "strings"
67 "sync"
78 "time"
@@ -91,23 +92,35 @@ func GetTags(ctx context.Context, user string, token *oauth2.Token) ([]*Tag, err
9192 if p == nil {
9293 return nil , ErrNoProvider
9394 }
94- return p .GetTags (ctx , user , token )
95+ tags , err := p .GetTags (ctx , user , token )
96+ if errors .Is (err , ErrRepoNotFound ) && p .Name () == "git" {
97+ return nil , ErrSignedOut
98+ }
99+ return tags , err
95100}
96101
97102func GetBranches (ctx context.Context , user string , token * oauth2.Token ) ([]* Branch , error ) {
98103 p := providerFromContext (ctx )
99104 if p == nil {
100105 return nil , ErrNoProvider
101106 }
102- return p .GetBranches (ctx , user , token )
107+ bs , err := p .GetBranches (ctx , user , token )
108+ if errors .Is (err , ErrRepoNotFound ) && p .Name () == "git" {
109+ return nil , ErrSignedOut
110+ }
111+ return bs , err
103112}
104113
105114func GetCommits (ctx context.Context , user string , token * oauth2.Token ) ([]* Commit , error ) {
106115 p := providerFromContext (ctx )
107116 if p == nil {
108117 return nil , ErrNoProvider
109118 }
110- return p .GetCommits (ctx , user , token )
119+ cs , err := p .GetCommits (ctx , user , token )
120+ if errors .Is (err , ErrRepoNotFound ) && p .Name () == "git" {
121+ return nil , ErrSignedOut
122+ }
123+ return cs , err
111124}
112125
113126func GetBookmarks (ctx context.Context , user , ref string , token * oauth2.Token ) (string , string , error ) {
@@ -118,7 +131,11 @@ func GetBookmarks(ctx context.Context, user, ref string, token *oauth2.Token) (s
118131 if p == nil {
119132 return "" , "" , ErrNoProvider
120133 }
121- return p .GetBookmarks (ctx , user , ref , token )
134+ b , sha , err := p .GetBookmarks (ctx , user , ref , token )
135+ if errors .Is (err , ErrRepoNotFound ) && p .Name () == "git" {
136+ return "" , "" , ErrSignedOut
137+ }
138+ return b , sha , err
122139}
123140
124141func UpdateBookmarks (ctx context.Context , user string , token * oauth2.Token , sourceRef , branch , text , expectSHA string ) error {
@@ -129,6 +146,8 @@ func UpdateBookmarks(ctx context.Context, user string, token *oauth2.Token, sour
129146 err := p .UpdateBookmarks (ctx , user , token , sourceRef , branch , text , expectSHA )
130147 if err == nil {
131148 invalidateBookmarkCache (user )
149+ } else if errors .Is (err , ErrRepoNotFound ) && p .Name () == "git" {
150+ return ErrSignedOut
132151 }
133152 return err
134153}
@@ -141,6 +160,8 @@ func CreateBookmarks(ctx context.Context, user string, token *oauth2.Token, bran
141160 err := p .CreateBookmarks (ctx , user , token , branch , text )
142161 if err == nil {
143162 invalidateBookmarkCache (user )
163+ } else if errors .Is (err , ErrRepoNotFound ) && p .Name () == "git" {
164+ return ErrSignedOut
144165 }
145166 return err
146167}
0 commit comments