MCPcopy Index your code
hub / github.com/git-bug/git-bug / TestGithubPushPull

Function TestGithubPushPull

bridge/github/export_test.go:132–289  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

130}
131
132func TestGithubPushPull(t *testing.T) {
133 // repo owner
134 envUser := os.Getenv("GITHUB_USER")
135 if envUser == "" {
136 t.Skip("missing required environment variable: GITHUB_USER")
137 }
138
139 // token must have 'repo' and 'delete_repo' scopes
140 envToken := os.Getenv("GITHUB_TOKEN")
141 if envToken == "" {
142 t.Skip("missing required environment variable: GITHUB_TOKEN")
143 }
144
145 // create repo backend
146 repo := repository.CreateGoGitTestRepo(t, false)
147
148 backend, err := cache.NewRepoCacheNoEvents(repo)
149 require.NoError(t, err)
150
151 // set author identity
152 login := "identity-test"
153 author, err := backend.Identities().New("test identity", "test@test.org")
154 require.NoError(t, err)
155 author.SetMetadata(metaKeyGithubLogin, login)
156 err = author.Commit()
157 require.NoError(t, err)
158
159 err = backend.SetUserIdentity(author)
160 require.NoError(t, err)
161
162 defer backend.Close()
163 interrupt.RegisterCleaner(backend.Close)
164
165 // Setup token + cleanup
166 token := auth.NewToken(target, envToken)
167 token.SetMetadata(auth.MetaKeyLogin, login)
168 err = auth.Store(repo, token)
169 require.NoError(t, err)
170
171 cleanToken := func() error {
172 return auth.Remove(repo, token.ID())
173 }
174 defer cleanToken()
175 interrupt.RegisterCleaner(cleanToken)
176
177 tests := testCases(t, backend)
178
179 // generate project name
180 projectName := generateRepoName()
181
182 // create target Github repository
183 err = createRepository(projectName, envToken)
184 require.NoError(t, err)
185
186 slog.Info("created github repository", "name", projectName)
187
188 // Let Github handle the repo creation and update all their internal caches.
189 // Avoid HTTP error 404 retrieving repository node id

Callers

nothing calls this directly

Calls 15

IDMethod · 0.95
InitMethod · 0.95
ExportAllMethod · 0.95
InitMethod · 0.95
ImportAllMethod · 0.95
CreateGoGitTestRepoFunction · 0.92
NewRepoCacheNoEventsFunction · 0.92
RegisterCleanerFunction · 0.92
NewTokenFunction · 0.92
StoreFunction · 0.92
RemoveFunction · 0.92
IdentitiesMethod · 0.80

Tested by

no test coverage detected