code: func blame(c context.Context, b *buildbot.Build) error {
  	if err := fetchChangesCached(c, b); err != nil {
  		return err
  	}
  	blame := stringset.New(len(b.Sourcestamp.Changes))
  	b.Blame = make([]string, 0, len(b.Sourcestamp.Changes))
  	for _, c := range b.Sourcestamp.Changes {
  		if blame.Add(c.Who) {
  			b.Blame = append(b.Blame, c.Who)
  		}
  	}
  	return nil
  }
docs: // blame loads changes from gitiles and computes b.Blame and
  // b.SourceStamp.Changes from b.SourceStamp.Repository,
  // b.SourceStamp.Revision and builds previous to b.
  //
  // Memcaches results.