Github与Coding的双向同步
s
使用 GitHub Actions 将代码自动同步到 CODING
GitHub Actions 有一个特别好的功能是:有一个 GitHub Marketplace,目前有 7000 多个 Action,开发者可以从中挑选适合自己的 Action。
开发者也可以定义自己的 Action,也可以将自己的 Action 发布到 GitHub Marketplace。
这里定制了一个 Action 用于同步代码到 CODING: https://github.com/marketplace/actions/sync-repo-to-coding
每个仓库可以配置多个 workflow,在 GitHub 仓库的 .github/workflows 下添加用来定义 workflow 的 YAML 文件即可。
同步代码到 CODING 的 workflow 的 YAML 文件内容如下:
name: Sync Repo to CODING
on:
push:
schedule:
# 每天北京时间0点同步
- cron: '0 16 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Sync Repo to CODING
uses: serverlesslife-cn/sync-repo-to-coding@master
env:
# 在 GitHub Settings->Secrets 配置 CODING_PRIVATE_KEY
SSH_PRIVATE_KEY: ${{ secrets.CODING_PRIVATE_KEY }}
with:
# 注意替换为你的 GitHub 源仓库地址git@github.com:dragoncqh/PaaS.Device.Portal.Plugins.git
github-repo: "git@github.com:dragoncqh/PaaS.Device.Portal.Plugins.git"
# 注意替换为你的 CODING 目标仓库地址
coding-repo: "git@e.coding.net:sdjq/paas_hardware/paasplugins.gitt"
生成新SSH密钥
生成新 SSH 密钥
打开 Git Bash。
粘贴下面的文本(替换为您的GitHub 电子邮件地址)。
ssh-keygen -t rsa -C "dragoncqh@live.com"
如果使用新的Ed25519 算法:$ ssh-keygen -t ed25519 -C dragoncqh@live.com,不能PUSH进CODING
这将创建以所提供的电子邮件地址为标签的新 SSH 密钥。
Generating public/private ed25519 key pair.
提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 键。 这将接受默认文件位置。
Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519):[Press enter]
在提示时输入安全密码。 如不想使用密码可以连按回车两次。
实际命令如下:
Administrator@John-PC MINGW64 ~/.ssh
$ ssh-keygen -t rsa -C "dragoncqh@live.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:MBSPMFM8Dk3zOSgX0iJpEPQHKY1fWi8Egnqa0h5rvC0 dragoncqh@live.com
The key's randomart image is:
+---[RSA 3072]----+
|==o+B*B. |
|.o*o+X=B . |
|..oo*=B.= |
|. .o.+.+ . |
| = . S |
|+ o |
|.o o |
| E. |
| ..o. |
+----[SHA256]-----+
Administrator@John-PC MINGW64 ~/.ssh
$
TotoriseGit使用SSH_KEY
GitHub2Coding脚本启用Token认证连结github仓库
github仓库开始启用Token认证,用户名密码模式将在2021年8月停止使用,所以要尽快停止使用用户名密码模式=>github仓库开始启用Token认证。
pipeline {
agent any
stages {
stage('检出 GitHub') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: env.GIT_BUILD_REF]],
userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]
])
}
}
stage('推送到 CODING') {
steps {
sh "git push https://${PROJECT_TOKEN_GK}:${PROJECT_TOKEN}@e.coding.net/sdjq/paas_hardware/paasplugins.git HEAD:master"
}
}
}
}
改为:
pipeline {
agent any
stages {
stage('检出 GitHub') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: env.GIT_BUILD_REF]],
userRemoteConfigs: [[url: 'https://dragoncqh:4a55c870d8c451204c7092d5bc2123e0d108505d@github.com/dragoncqh/PaaS.Device.Portal.Plugins.git']]
])
}
}
stage('推送到 CODING') {
steps {
sh "git push https://${PROJECT_TOKEN_GK}:${PROJECT_TOKEN}@e.coding.net/sdjq/paas_hardware/paasplugins.git HEAD:master"
}
}
}
}