私信  •  关注

jessehouwing

jessehouwing 最近创建的主题
jessehouwing 最近回复了
2 年前
回复了 jessehouwing 创建的主题 » 如何在push上的github页面中执行多行curl命令?

替换:

- run: >

与:

- run: |

并将脚本缩进2个空格:

name: restartServer
on: [push]
jobs:
 check-bats-version:
   runs-on: ubuntu-latest
   steps:
     - run: |
         curl --location --request POST 'https://panel.discordbothosting.com/api/client/servers/fd21d417/power' \
           --header 'Accept: application/json' \
           --header 'Content-Type: application/json' \
           --header 'Authorization: Bearer APIKEY' \
           --data-raw '{
             "signal": "restart"
           }'

大多数git服务器都会捕获一个“推送”操作,该操作由进行推送的经过身份验证的用户执行,其中包括哪些提交。这很难伪造,除非你对服务器有管理员权限或访问服务器的存储。

在客户机上,当进行提交时,会捕获提交元数据,但不能保证数据是正确的。即使用户在提交上签名,签名也可能在错误的日期进行。GPG/PGP没有使用外部时间服务器权限将时间签名到签名中。 但这将防止用户更改其他用户的提交(及其时间)。

满足所有需求的解决方案是对时间服务器使用SMIME签名。要做到这一点,您的每个开发人员都需要一个代码签名证书,并为他们配置它和一个时间服务器来验证签名者和签名时间。

客户机上的预提交钩子可以防止时间设置不正确时出现意外提交问题,但由于钩子需要在每个克隆之后安装(并且可以轻松删除),因此它对对手的安全性很低。

服务器上的预接收钩子可以防止意外推送到包含“旧”提交的中央服务器,但在从其他位置(fork、mirror等)导入存储库时可能会导致问题。

如果本地回购已将时间更改为服务器的安全时间窗口内,则两者都不会阻止推送。

在这里,最好的方法是信任服务器上的“推送”元数据,以便准确地确定数据何时进入组织以及旧数据何时被强制推送。可能与使用SMIME证书和时间服务器的注销提交相结合。

见: https://www.glennwatson.net/posts/code-signing-github

GitHub设置

我假设您希望对所有存储库使用S/MIME签名。GitHub指南中还有其他选项。由于时间戳权限存在问题,我们将生成一个批处理文件来运行smimesign。

  1. 安装S/MIME标志。
  2. 创建一个位于smimesign路径中的批处理文件。对于windows,批处理文件示例(您可以将其命名为sign.cmd)
Copy to clipboard@echo off
smimesign.exe --timestamp-authority http://timestamp.digicert.com %*
  1. 告诉git使用smimesign。从命令行运行:
git config --global gpg.x509.program c:/path/to/sign.cmd
git config --global gpg.format x509
git config --global commit.gpgsign true
  1. 找到你想要签名的钥匙。跑 smimesign --list-keys 然后找到你想要签名的钥匙的序列号。复制密钥的序列号,以便将其粘贴到下一个命令中。确保使用的是序列号,而不是ID。
  2. 从命令行设置要使用的键 git config --global user.signingkey a2dfa7e8c9c4d1616f1009c988bb70f

现在,每次提交时,它都会要求您输入之前设置的密码。

另见: Sign git commit with x509 certificate in corporate environment

4 年前
回复了 jessehouwing 创建的主题 » 无法使用git bash将文件添加到github

Git add 是让Git知道文件的第一步。

你的下一步是 git commit 创建文件的快照(提交可以包含多个更改 add 编辑)

最后一步是 git push 对github的更改。

这个 添加 使git知道您的更改。 commit 将一个或多个更改捆绑到快照中。 push 将一个或多个提交推送到另一个git存储库。

我强烈建议您阅读入门教程:

4 年前
回复了 jessehouwing 创建的主题 » 如何复制TFVC 2015上托管的Git存储库

步骤相对简单:

  • 在TFS服务器上创建新的空存储库确保 检查“Create default readme and.gitignore”。
  • 创建要使用镜像的存储库的本地克隆 git clone --mirror https://tfs/clone/url .
  • 将新存储库克隆url添加到本地克隆: git remote add target https://tfs/clone/new/repo/url
  • 全部推至目标回购: git push target --mirror