2

GitHub からテーブルを読み取る光沢のあるアプリがあります。私の目的は、アプリを使用してテーブルを編集するときに、リポジトリにアクセスできる場合、変更を保存して、アクション ボタンを使用して GitHub にプッシュできるようにすることです。RプログラミングでGitHub APIを使用してオンラインで情報があまりないため、GitHub APIを統合するにはどうすればよいですか。現時点でのアプリのサーバー側は次のとおりです。

  server = function(input, output, session) {
  # Constructs the table. Contains design and size code. 
  output$x1 = renderDT(x, selection = 'single', editable = TRUE,
                       class = 'cell-border stripe',
                       extensions =c('FixedColumns'),
                       options = list(scrollX = TRUE,
                                      fixedColumns = TRUE,
                                      fixedHeader = TRUE,
                                      fixedHeader = TRUE,
                                      deferRender = TRUE,
                                      scrollY = 400,
                                      scroller = TRUE
                       ))
  
  #Creates a proxy of the table visible 
  proxy = dataTableProxy('x1')
  
  #Replaces the old table with the edited data however does not save it. Need to click save
  observeEvent(input$x1_cell_edit, {
    info = input$x1_cell_edit
    str(info)
    i = info$row
    j = info$col
    v = info$value
    x[i, j] <<- v
    #To enforce the same target type as the old value use the below code and delete above
    #x[i, j] <<- DT::coerceValue(v, x[i, j])
    replaceData(proxy, x, resetPaging = FALSE) })  

  #Saves the edited table
  observeEvent(input$save,
               {write.csv(x, "...", row.names=FALSE)
                shinyalert(title = "Saved!", type = "success")
               })
  
  #Pushes the edited changes onto github. Takes a little longer than saving 
  observeEvent(input$push,
               {repo <- repository()
               status()
               add(repo,"*")
               commit(repo,"commiting through R and using system2 to push")
               #system2() allows git command to be directly run in r code 
               system2("git", "push origin master", stdout = TRUE, stderr = TRUE)
               shinyalert(title = "Pushed to Github", type = "success")
               })
}
)

現時点では、これは私の Rstudio で機能します。ただし、目的はこれを Rstudio connect で公開することなので、GitHub API を使用して他のユーザーも保存できるようにする必要があります。関連するコード、洞察、またはドキュメントへの指示は素晴らしいものです。

4

0 に答える 0