如何以编程方式将资源添加到GitHub Page?

时间:2018-10-25 20:05:17

标签: github github-pages github-api

我有一个GitHub App,它可以提取一些数据,使用安装令牌进行身份验证,然后每天将其提交到关联的存储库中。我希望可以在需要GitHub Pages构建的仓库的GitHub Pages站点上获得这些新数据。 GitHub App已在“存储库内容”和“页面”上分配了读写权限。

在我看到每日提交之后,似乎每日提交正在尝试按照存储库的GitHub Pages设置中的方式重建页面。

Your site is having problems building: Page build failed.

构建失败后,使用我的主帐户(而不是GitHub App)的空提交会触发成功的重建,如下所示。

2018年10月23日至25日: https://github.com/btouellette/HHHFreshBotRedux/commits/master

在GitHub文档中,关于这些通用构建失败(https://help.github.com/articles/generic-jekyll-build-failures/)的内容均不相关,因为我没有使用部署密钥,安装了GitHub App的主帐户具有经过验证的电子邮件地址,并且我只推送静态文件,根本不使用Jekyll。

由于我已经通过GitHub API进行身份验证以提交文件,因此我尝试利用API端点手动请求页面构建(https://developer.github.com/v3/repos/pages/#request-a-page-build)。该文档说该端点已为GitHub Apps启用,但是当我尝试调用它时,得到的响应为“ 无法通过集成访问的资源”。

是否有某种方法可以解决构建失败,使页面构建API端点与GitHub App一起工作,或者找到另一种方法以编程方式在GitHub Pages站点上提供新文件?

1 个答案:

答案 0 :(得分:1)

通过在octokit中使用“基本”身份验证并提供明确的用户名和密码,我可以成功请求页面构建。可以为GitHub Apps启用构建终结点,但仅当应用程序充当具有用户凭据的用户时,才对用户到服务器的请求启用。

或者,我发现我可以直接引用GitHub存储库中的原始内容,而不是使用GitHub Pages站点内的相对链接。可以,但是通过CDN提供文件时,将文件包含在页面构建中会更好。

因此,请使用完整的网址,例如: https://raw.githubusercontent.com/btouellette/HHHFreshBotRedux/master/docs/daily/20181025.json

代替GitHub Pages站点的相对URL,例如: “ daily / 20181025.json”

我能够使用Javascript抓取尚未添加到GitHub Pages构建中但已在存储库中提供的文件,并使用它们动态地构建站点。