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

Method ensureTimelineItem

bridge/github/import.go:239–399  ·  view source on GitHub ↗
(ctx context.Context, repo *cache.RepoCache, b *cache.BugCache, item *timelineItem)

Source from the content-addressed store, hash-verified

237}
238
239func (gi *githubImporter) ensureTimelineItem(ctx context.Context, repo *cache.RepoCache, b *cache.BugCache, item *timelineItem) error {
240
241 switch item.Typename {
242 case "IssueComment":
243 err := gi.ensureComment(ctx, repo, b, &item.IssueComment, nil)
244 if err != nil {
245 return fmt.Errorf("timeline comment creation: %v", err)
246 }
247 return nil
248
249 case "LabeledEvent":
250 id := parseId(item.LabeledEvent.Id)
251 _, err := b.ResolveOperationWithMetadata(metaKeyGithubId, id)
252 if err == nil {
253 return nil
254 }
255
256 if err != cache.ErrNoMatchingOp {
257 return err
258 }
259 author, err := gi.ensurePerson(ctx, repo, item.LabeledEvent.Actor)
260 if err != nil {
261 return err
262 }
263 op, err := b.ForceChangeLabelsRaw(
264 author,
265 item.LabeledEvent.CreatedAt.Unix(),
266 []string{
267 text.CleanupOneLine(string(item.LabeledEvent.Label.Name)),
268 },
269 nil,
270 map[string]string{metaKeyGithubId: id},
271 )
272 if err != nil {
273 return err
274 }
275
276 gi.out <- core.NewImportLabelChange(b.Id(), op.Id())
277 return nil
278
279 case "UnlabeledEvent":
280 id := parseId(item.UnlabeledEvent.Id)
281 _, err := b.ResolveOperationWithMetadata(metaKeyGithubId, id)
282 if err == nil {
283 return nil
284 }
285 if err != cache.ErrNoMatchingOp {
286 return err
287 }
288 author, err := gi.ensurePerson(ctx, repo, item.UnlabeledEvent.Actor)
289 if err != nil {
290 return err
291 }
292
293 op, err := b.ForceChangeLabelsRaw(
294 author,
295 item.UnlabeledEvent.CreatedAt.Unix(),
296 nil,

Callers 1

ImportAllMethod · 0.95

Calls 15

ensureCommentMethod · 0.95
ensurePersonMethod · 0.95
CleanupOneLineFunction · 0.92
NewImportLabelChangeFunction · 0.92
NewImportStatusChangeFunction · 0.92
EmptyFunction · 0.92
NewImportTitleEditionFunction · 0.92
parseIdFunction · 0.85
ErrorfMethod · 0.80
ForceChangeLabelsRawMethod · 0.80
CloseRawMethod · 0.80

Tested by

no test coverage detected