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 を使用して他のユーザーも保存できるようにする必要があります。関連するコード、洞察、またはドキュメントへの指示は素晴らしいものです。