ai didi

使用访问 token 下载bitBucket私有(private)存储库的powershell脚本

转载 作者:行者123 更新时间:2023-12-02 23:24:45 24 4
gpt4 key购买 nike

我正在尝试通过首先从 bitbucket 获取代码来自动化构建过程,如下所示。

$output = "E:\FileName.xyz"
$url = 'https://bitbucket.org/WhatEver/WhatEverBranchName/get/master.zip'
$wc = New-Object -TypeName System.Net.WebClient
$wc.Headers.Add('Authorization','token oinksdilikncl--MyAccessToken--ioiwcnoisif89kfg9')
$wc.DownloadFile($url, $output)

当我执行此操作时,我在 FileName.xyz 收到的文件是一个 html 文件,它将我重定向到 bitbucket 的登录页面,本质上它要求凭据,即使我提供了访问 token 。

我哪里错了?有没有其他方法可以做到这一点,Invoke-Webrequest?或者有人请指导我查看代码示例吗?

最佳答案

我在 powershell 方面的经验绝对为零,但我尝试在节点中执行类似的任务,这是我的发现。

  • 首先,您在 bitbucket 帐户设置的访问管理部分创建一个“Oauth”。这给了你一个“ key ”和一个“ secret ”。
  • 现在使用这些 Key 和 Secret,您可以向 Bitbucket 索要一个 token 。就我而言,我向 https://bitbucket.org/site/oauth2/access_token 发出了 http 请求。 .在您的情况下,您应该使用等效的 CURL(可能是 Invoke-RestMethod?)。 CURL 命令是这样的:
    $ curl -X POST -u "yourKeyHere:yourSecretHere" https://bitbucket.org/site/oauth2/access_token -d grant_type=client_credentials

    我的 http 请求是这样的(在节点中使用 super 代理)和我的 Content-Type设置为 application/x-www-form-urlencoded :
    request.post("https://yourKeyHere:yourSecretHere@bitbucket.org/site/oauth2/access_token").send('grant_type=client_credentials');
  • 现在您有了 token ,您的程序或命令可以使用它克隆一个私有(private)存储库。但是你的 repo 的 url 应该是这样的(在 token 周围保留括号):
    https://x-token-auth:{tokenHere}@bitbucket.org/youRepoOwnerHere/RepoNameHere.git
  • 现在你的机器上有了整个代码库。但是你想要一个文件而不是整个 repo,我推荐你这个 Retrieve a single file from a repository但请记住将上面的 repo url 与 token 一起使用,而不是普通的 repo url。
  • 关于使用访问 token 下载bitBucket私有(private)存储库的powershell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827692/

    24 4 0
    文章推荐: sql-server - CONTAINSTABLE 如何处理多个搜索词
    文章推荐: azure - 无法通过 Databricks 笔记本从 Azure 存储容器中删除目录
    文章推荐: Azure API 管理提供 200 [未完整发送(请参阅异常遥测)]
    文章推荐: cassandra - 分区键仅在 Cassandra 中
    行者123
    个人简介

    我是一名优秀的程序员,十分优秀!

    滴滴打车优惠券免费领取
    滴滴打车优惠券
    全站热门文章
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com