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

Rhi*_*neb 10 git authentication github

好吧,我在这里的其他几个地方都看到了类似的问题,但其中许多已经存在多年了,而且还没有看到令人满意的答案。Github 原始文件 - 我可以获得永久链接吗?通过 access_token 读取 Github 上私人仓库中文件的原始内容

首先让我提供我的用例,因为我对替代解决方案持开放态度。

我需要能够链接/显示属于 Confluence 私有 github 存储库一部分的 Markdown 文件 (.md)。从技术上讲,Markdown from url当给它一个像raw/repo/readme.md?token=XXXXXXX. 问题是通过查看原始链接生成的令牌仅在 7 天内有效,因此这对于文档实际上不起作用,因为显然一周后文档的一部分将不再可见。正如上面的链接之一和通过谷歌搜索在线的其他几个地方所引用的,我看到这样的说法:应该可以生成个人访问令牌并替换该令牌,raw/repo/readme.md?token=PERSONAL_ACCESS_TOKEN但我还没有发现这种情况。即使在 github 中授予 PAT 所有权限,当尝试在浏览器中或通过 confluence 插件访问 url 时,仍然会导致 404 错误。

此外,我还看到过一个用户名类似的示例raw/repo/readme.md?login=USERNAME&token=PERSONAL_ACCESS_TOKEN,但可惜这与接收 404 的结果相同。

所以问题是有人知道如何使用 PAT 或类似的安全替代方案成功地完成这项工作吗?我是否缺少一个能让它满意的 url 选项?

请注意,我并不是在寻找替代的融合插件来实现这一点,我知道有几个,但由于组织安全问题,这些在我的情况下并不是真正的选择。

感谢您的任何想法

小智 5

从私有存储库下载文件

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

根据这个 GitHub 帮助页面

  1. 在任意页面的右上角,点击您的个人资料照片,然后点击“设置”
  2. 在左侧边栏中,点击开发者设置
  3. 在左侧边栏中,单击个人访问令牌
  4. 选择范围。要使用您的令牌从命令行访问存储库,请选择repo
  5. 单击 G生成新令牌
  6. 为您的令牌指定一个描述性名称

假设您的实际令牌是 1234567abcdefg

2. 将Token嵌入到链接中。

  1. 在GitHub网页中打开文件并单击“Raw”
  2. 复制此原始文件的链接,可能是这样的: https://raw.githubusercontent.com/ GITHUB_ACCOUNT / REPOSITORY_NAME / BRANCH_NAME / FILE_NAME.EXTENTION_NAME ?token= SOME_NUMBERS_LETTERS
  3. 将链接修改为 https://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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 这适用于curl,但不适用于浏览器。你知道如何让它在那里工作吗?我正在使用的插件无法正确获取文件,否则@CookiesKush420 (4认同)

bk2*_*204 2

正如您所看到的,所有指向私有 GitHub 存储库的原始链接都需要一个令牌,该令牌会在一段时间后过期。这是因为如果 URL 被暴露,暴露的影响是有限的。您使用的 URL 中的令牌是特定于您的用户的,如果它是永久的,那么即使有人离开了组织,将来也可以获取该令牌并访问该文件。IIRC,我相信该令牌也是特定于相关 URL 的。

因此,没有办法使用 URL 中的令牌来执行此操作。Authorization但是,如果您的插件支持,您可以使用基本身份验证在标头中使用个人访问令牌。我已经测试过,这确实有效,当然它不会将您的令牌暴露给每个用户。但是,它确实要求您正在使用的站点代理请求并支持该请求。

您可能需要使用与您的组织关联的计算机或机器人帐户的 PAT,以便在您离开时链接仍然有效。