googleCloudRunner icon indicating copy to clipboard operation
googleCloudRunner copied to clipboard

ENH: Triggers with source code

Open muschellij2 opened this issue 2 years ago • 1 comments

Is there use to have this in the package:

cr_buildtrigger_list_full = function(projectId = googleCloudRunner::cr_project_get()) {
  triggers = googleCloudRunner::cr_buildtrigger_list(projectId = projectId)
  if (NROW(triggers) == 0 || length(triggers) == 0) return(NULL)
  triggers$id = triggers$buildTriggerId
  trigger_data = lapply(triggers$buildTriggerId, function(triggerId) {
    x = googleCloudRunner::cr_buildtrigger_get(triggerId = triggerId, 
                                           projectId = projectId)
    tibble::tibble(buildTriggerId = triggerId, build = list(x))
  })
  trigger_data = dplyr::bind_rows(trigger_data)
  data = dplyr::full_join(triggers, trigger_data)
  return(data)  
}

(non-dplyr version)

cr_buildtrigger_list_full = function(projectId = googleCloudRunner::cr_project_get()) {
  triggers = googleCloudRunner::cr_buildtrigger_list(projectId = projectId)
  if (NROW(triggers) == 0 || length(triggers) == 0) return(NULL)
  triggers$id = triggers$buildTriggerId
  trigger_data = lapply(triggers$buildTriggerId, function(triggerId) {
    x = googleCloudRunner::cr_buildtrigger_get(triggerId = triggerId, 
                                           projectId = projectId)
    tibble::tibble(buildTriggerId = triggerId, build = list(x))
  })
  trigger_data = do.call(rbind, trigger_data)
  data = merge(triggers, trigger_data, all = TRUE, by = "buildTriggerId")
  return(data)  
}

muschellij2 avatar Jan 10 '22 15:01 muschellij2

Sure would be cool - I'd prefer it as an option flag on cr_buildtrigger_list() so something like cr_buildtrigger_list(full=TRUE) to opt-in. Yes needs to not pull in any extra dependencies.

MarkEdmondson1234 avatar Jan 10 '22 15:01 MarkEdmondson1234