永久链接到Github私有存储库中的原始文件

xuo3flqw  于 2023-02-07  发布在  Git
关注(0)|答案(2)|浏览(656)

好的,我在这里的其他几个地方也看到了类似的问题,但其中许多问题已经存在多年,没有看到任何令人满意的答案。Github Raw File - Can I get a permanent link?Read Raw Contents of File in Private Repo on Github via access_token
首先,让我提供我的用例,因为我对替代解决方案持开放态度。
我需要能够链接/显示减价文件(.md),它们是confluence中的一个私有github repo的一部分,当给它一个像raw/repo/readme.md?token=XXXXXXX这样的原始url时,使用confluence插件Markdown from url在技术上是可以工作的。问题是通过查看原始链接生成的令牌仅在7天内有效,因此这将不会真正用于文档,因为很明显,一周后文档的一部分将不再可见。正如上面的一个链接和其他几个地方通过谷歌搜索在线引用的,我看到声称应该可以生成个人访问令牌并替换令牌IE X1 M2 N1 X,但我没有发现情况是这样的。即使在github中授予PAT所有权限,在浏览器中或通过confluence插件访问url时,仍然会导致404。
此外,我还看到了一个用户名为raw/repo/readme.md?login=USERNAME&token=PERSONAL_ACCESS_TOKEN的示例,但遗憾的是,这与收到404的结果相同。
所以问题是有没有人知道如何使用PAT或类似的安全替代方案成功地使这个工作?我是不是错过了一个url选项,这将使它高兴?
请注意,我不是在寻找替代的融合插件,使这种情况发生,我知道有几个,但由于组织的安全问题,这些都不是真正的选择在我的情况下。
谢谢你的建议

f0brbegy

f0brbegy1#

从专用存储库下载文件

    • 1.您需要生成个人访问令牌。**

根据this GitHub help page
1.在任何页面的右上角,点按"您的个人资料照片",然后点按"设置"。
1.在左侧栏中,单击开发人员设置
1.在左侧栏中,单击个人访问令牌
1.选择范围。要使用令牌从命令行访问存储库,请选择repo
1.单击G生成新令牌
1.为令牌指定描述性名称

  • 假设您的实际令牌为1234567abcdefg *
    • 2.将令牌嵌入链接。**

1.在GitHub网页中打开文件,然后点击"原始"
1.复制这个原始文件的链接,可能是这样的: 网址:raw.githubusercontent.com/GITHUB_ACCOUNT/REPOSITORY_NAME/BRANCH_NAME/FILE_NAME.EXTENTION_NAME?token=SOME_NUMBERS_LETTERS
1.将链接重新设置为https://www.example.com 1234567abcdefg@raw.githubusercontent.com/GITHUB_ACCOUNT/REPOSITORY_NAME/BRANCH_NAME/FILE_NAME.EXTENTION_NAME
如你所见,"?token =SOME_NUMBERS_LETTERS"被移除。在"https://"后面插入你从GitHub +@生成的令牌。

curl -s -O https://1234567abcdefg@raw.githubusercontent.com/GITHUB_ACCOUNT/REPOSITORY_NAME/BRANCH_NAME/FILE_NAME.EXTENTION_NAME
  • 希望能有所帮助 *
okxuctiv

okxuctiv2#

正如你所看到的,所有到GitHub私有仓库的原始链接都需要一个令牌,这个令牌会在一段时间后过期。这是因为如果一个URL被暴露,暴露的影响是有限的。你正在使用的URL中的令牌是特定于你的用户的,如果它是永久的,那么即使有人离开了组织,他也可以在未来使用这个令牌访问那个文件。我相信,IIRC,令牌也特定于所讨论的URL。
所以在URL中使用令牌是没有办法做到这一点的。但是,如果你的插件支持基本身份验证,你可以在Authorization头中使用个人访问令牌。我已经测试过了,这确实有效,当然它不会向每个用户暴露你的令牌。但是,它确实需要你正在使用的网站代理请求并支持这一点。
您可能希望使用与您的组织关联的计算机或机器人帐户的PAT,以便在您离开时链接仍能继续工作。

相关问题