gpt4 book ai didi

github - 使用 Travis 调用 GitHub API 构建 Tag

转载 作者:行者123 更新时间:2023-12-02 03:17:46 25 4
gpt4 key购买 nike

我在 GitHub 存储库中创建了一个 TravisCI Hook,它在推送到存储库后自动运行构建。我想补充的是,如果构建成功,则会自动创建一个标签。

我发现有一种方法可以使用 GitHub API 创建标签 http://developer.github.com/v3/git/tags/#create-a-tag-object

但是我如何控制对我的存储库的访问?我无法在 travis.yml 中公开我的登录 github 凭据,因为每个人都可以阅读它,因为它是在存储库中创建的。\

我对自动化部署还很陌生,所以如果有任何其他解决方案可以在没有 travis 的情况下完成此任务,请也告诉我。我想要实现的是在成功构建后为用户创建一个可下载的版本。

解决方案

好吧,我终于找到了正确的 travis.yaml 配置。

它是如何工作的:推送到存储库后,travis 将运行我的应用程序的测试。如果测试成功,travis 将构建当前版本的预编译版本,并将其上传到我在 GitHub 存储库上创建的特殊版本。

    language: scala
env:
global:
- PLAY_VERSION=2.2.1
- secure: "HD1x0S9ad/3+G9YUkyT/uTw9lEr+tUQEV4QO+M2Ro1JFSVOzLNZiNoh6FrNb06a0TbencTkftyHYmYjp1/CCyTpF9CMCQ4ddB7TVF9hibH1y9ONVrPJIm5BCEpjGDa4fND8bkcChrpcZDQKIO0ZwArEsl2+IRocnbBT+oYqIFNo="
before_script:
- wget http://downloads.typesafe.com/play/${PLAY_VERSION}/play-${PLAY_VERSION}.zip
- unzip -q play-${PLAY_VERSION}.zip
- sudo apt-get install jq
script: play-${PLAY_VERSION}/play test
notifications:
email: false
after_success:
- play-${PLAY_VERSION}/play dist
- cd target/universal/
- 'ASSETID=$(curl -s -H "Authorization: token ${BUILD_KEY}" "https://api.github.com/repos/meisign/fillable/releases/204198/assets" | jq ".[0].id")'
- 'curl -XDELETE -s -H "Authorization: token ${BUILD_KEY}" "https://api.github.com/repos/meisign/fillable/releases/assets/$ASSETID"'
- 'curl -XPOST -s -H "Authorization: token ${BUILD_KEY}" -H "Content-Type: application/zip" --data-binary @./Fillable-1.0-SNAPSHOT.zip "https://uploads.github.com/repos/meisign/fillable/releases/204198/assets?name=Fillable.zip"'

最佳答案

您可以创建 GitHub Personal API Token这将授予对您的存储库的访问权限。 public_repo 范围应该是公共(public)存储库所需的全部内容。

使用此 token 对 GitHub API 进行身份验证。要将 token 与API include it in the Authorization header一起使用.

curl -H "Authorization: token <YOUR_TOKEN>" https://api.github.com/user

您还可以使用此 token 推送到您的存储库。

git push -q https://<token>@github.com/<user>/<repo>

现在有趣的部分是,您需要对该 token 保密。公开它相当于公开您的用户名和密码。

<小时/>

您需要确保通读所引用的文档并密切关注您的 Travis-CI 日志。这些命令在 bash 中运行,并且根据您的编写方式或是否存在任何错误,您可能会意外泄露您的 token

为了保持该 token 的 secret ,Travis-CI 有一个用于生成公钥和私钥的系统。 encryption keys特定于您的存储库。

link拥有所有相关文件;您需要安装 Travis 命令行界面工具,它以 Ruby Gem 形式提供。

gem install travis

加密变量(例如您的个人 token )-

travis encrypt SOMEVAR=secretvalue --add

Travis 假设该命令正在项目目录中运行,并将根据您的存储库提供唯一的公钥来加密您的数据。 --add 标志会自动将 protected 数据放入您的 .travis.yml 文件中。

这就是保守 secret 的方法。使用 Git 或 GitHub API 创建标签的实现由您决定。一旦你弄清楚了,请分享。

关于github - 使用 Travis 调用 GitHub API 构建 Tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com