code: func GetDashboardVersions(c *m.ReqContext) Response {
  	dashID := c.ParamsInt64(":dashboardId")
  
  	guardian := guardian.New(dashID, c.OrgId, c.SignedInUser)
  	if canSave, err := guardian.CanSave(); err != nil || !canSave {
  		return dashboardGuardianResponse(err)
  	}
  
  	query := m.GetDashboardVersionsQuery{
  		OrgId:       c.OrgId,
  		DashboardId: dashID,
  		Limit:       c.QueryInt("limit"),
  		Start:       c.QueryInt("start"),
  	}
  
  	if err := bus.Dispatch(&query); err != nil {
  		return Error(404, fmt.Sprintf("No versions found for dashboardId %d", dashID), err)
  	}
  
  	for _, version := range query.Result {
  		if version.RestoredFrom == version.Version {
  			version.Message = "Initial save (created by migration)"
  			continue
  		}
  
  		if version.RestoredFrom > 0 {
  			version.Message = fmt.Sprintf("Restored from version %d", version.RestoredFrom)
  			continue
  		}
  
  		if version.ParentVersion == 0 {
  			version.Message = "Initial save"
  		}
  	}
  
  	return JSON(200, query.Result)
  }
docs: // GetDashboardVersions returns all dashboard versions as JSON