远程仓库.github/workflow的 yml如何配置

git 远程仓库.github/workflow的 yml如何配置

关于远程仓库

GitHub 的协作开发方法取决于将本地存储库中的提交发布到 GitHub 以便其他人查看、获取和更新。

远程 URL 是 Git 表达“代码存储位置”的奇特方式。该 URL 可以是您在 GitHub 上的存储库,也可以是其他用户的分支,甚至是完全不同的服务器上的存储库。

  • HTTPS URL,例如 https://github.com/user/repo.git
  • SSH URL,例如 git@github.com:user/repo.git

Git 将远程 URL 与名称关联起来,默认远程通常称为 origin 。

创建远程仓库

您可以使用 git remote add 命令将远程 URL 与名称进行匹配。例如,您可以在命令行中键入以下内容:

 git remote add origin <REMOTE_URL>
 

这会将名称 origin 与 REMOTE_URL 相关联。

您可以使用命令 git remote set-url 更改远程 URL。

选择远程仓库的url

举例

$ git remote add origin https://github.com/OWNER/REPOSITORY.git
# Set a new remote

$ git remote -v
# Verify new remote
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

使用HTTPS URLs 克隆

https:// 克隆 URL 在所有存储库上都可用,无论可见性如何。 https:// 即使您位于防火墙或代理后面,克隆 URL 也能正常工作。
当您在命令行上使用 HTTPS URL git clone 、 git fetch 、 git pull 或 git push 到远程存储库时,Git 会要求您的 GitHub 用户名和密码。当 Git 提示您输入密码时,请输入您的个人访问令牌。或者,您可以使用凭证助手,例如 Git Credential Manager。 Git 的基于密码的身份验证已被删除,取而代之的是更安全的身份验证方法。有关详细信息,请参阅“管理您的个人访问令牌”。

如果您要访问使用 SAML SSO 的组织并且使用个人访问令牌(经典),则还必须在进行身份验证之前授权您的个人访问令牌才能访问该组织。有关详细信息,请参阅“关于使用 SAML 单点登录进行身份验证”和“授权个人访问令牌以用于 SAML 单点登录”。

  1. 您可以使用凭证助手,以便 Git 每次与 GitHub 对话时都会记住您的 GitHub 凭证。有关更多信息,请参阅“在 Git 中缓存 GitHub 凭证”。

Git Credential Manager (GCM) 是安全存储凭据并通过 HTTPS 连接到 GitHub 的另一种方法。使用 GCM,您无需手动创建和存储个人访问令牌,因为 GCM 代表您管理身份验证,包括 2FA(双因素身份验证)。

下次您克隆需要身份验证的 HTTPS URL 时,Git 将提示您使用浏览器窗口登录。可能首先会要求您授权 OAuth 应用程序。如果您的帐户或组织需要双因素身份验证,您还需要完成 2FA 挑战。
成功进行身份验证后,您的凭据将存储在 macOS 钥匙串中,并在您每次克隆 HTTPS URL 时使用。 Git 不会要求您再次在命令行中输入凭据,除非您更改凭据。

使用 Homebrew 安装 Git:

brew install git

使用 Homebrew 安装 GCM:

brew install --cask git-credential-manager

  1. 要克隆存储库而不在命令行上向 GitHub 进行身份验证,您可以使用 GitHub Desktop 进行克隆。有关更多信息,请参阅“将存储库从 GitHub 克隆到 GitHub Desktop”。

使用SSH URLs

SSH URL 提供通过 SSH(一种安全协议)对 Git 存储库的访问。要使用这些 URL,您必须在计算机上生成 SSH 密钥对,并将公钥添加到您在 GitHub.com 上的帐户。有关详细信息,请参阅“使用 SSH 连接到 GitHub”。

当您使用 SSH URL git clone 、 git fetch 、 git pull 或 git push 访问远程存储库时,系统会提示您输入密码并且必须提供您的 SSH 密钥密码。有关详细信息,请参阅“使用 SSH 密钥密码”。

如果您要访问使用 SAML 单点登录 (SSO) 的组织,则必须先授权 SSH 密钥才能访问该组织,然后再进行身份验证。有关更多信息,请参阅 GitHub Enterprise Cloud 文档中的“关于使用 SAML 单点登录进行身份验证”和“授权 SSH 密钥与 SAML 单点登录一起使用”。

提示:您可以使用 SSH URL 将存储库克隆到您的计算机,或者作为将代码部署到生产服务器的安全方法。您还可以将 SSH 代理转发与部署脚本结合使用,以避免管理服务器上的密钥。有关详细信息,请参阅“使用 SSH 代理转发”。

GitHub Actions 的工作流配置

在 GitHub Actions 的工作流配置中使用的 github_token 字段是用来提供访问 GitHub API 的认证信息。它代表了一个特定的权限令牌(Token),通常用于在 GitHub Actions 自动化过程中授权对 GitHub 仓库进行操作,比如推送代码、访问仓库数据等。

GitHub Token 的类型

  • GITHUB_TOKEN: 这是由 GitHub 自动创建并提供给运行中的 GitHub Actions 工作流的一个特殊令牌。这个令牌具有与触发工作流的 GitHub 用户或 GitHub App 关联的权限。它主要用于权限验证,让工作流可以安全地与 GitHub 仓库交互。GITHUB_TOKEN 的权限默认受限于与它关联的仓库,并且在工作流结束时失效,确保安全性。

  • 个人访问令牌(PAT): 这是用户手动在 GitHub 账户设置中生成的令牌,可以具有更广泛的权限,并可以跨多个仓库使用。与 GITHUB_TOKEN 不同,PAT 的使用不限于单个工作流会话,而是直到它被用户撤销或过期。使用 PAT 可以在工作流中执行更多操作,如在不同的仓库之间推送代码等。

在 GitHub Actions 中使用 Token

在 GitHub Actions 的 YAML 配置文件中,你可以这样使用 Token:

steps:
  - uses: actions/checkout@v2

  - name: Some step that uses the GitHub token
    uses: some-action-that-needs-token@v1
    with:
      token: ${{ secrets.GITHUB_TOKEN }}  # 使用自动生成的 GITHUB_TOKEN

如果你需要使用 PAT 或自定义命名的密钥,你可以将其存储在 GitHub 仓库的 Secrets 中,并在工作流中引用它:

steps:
  - uses: actions/checkout@v2

  - name: Some step that uses a custom PAT
    uses: some-action-that-needs-token@v1
    with:
      token: ${{ secrets.PAT }}  # 使用存储在 Secrets 中的个人访问令牌

重要事项

  • 使用 GITHUB_TOKEN 时,要注意它的权限可能受限,可能不足以执行一些跨仓库的操作。
  • 使用 PAT 时,要格外小心,因为它通常权限较高,泄露后可能导致安全风险。
  • 确保在 GitHub 的 Secrets 设置中正确配置和保护你的 Token,避免将 Token 硬编码在工作流文件中。

通过正确使用这些 Token,你的 GitHub Actions 工作流可以安全地与 GitHub 交互,执行各种自动化任务。如果还有疑问或需要进一步的帮助,请随时联系。

在github操作步骤

在 GitHub 中,GITHUB_TOKEN 和个人访问令牌(PAT)是两种用于身份验证和授权的令牌,它们的生成和使用方式有所不同。以下是详细的生成方法和相关注意事项:

1. GITHUB_TOKEN

GITHUB_TOKEN 是自动由 GitHub 在每次 GitHub Actions 工作流运行时生成的。你不需要手动创建这个令牌。它会自动注入到工作流环境中,并且仅在当前工作流运行期间有效。

使用方法

  • 在你的 GitHub Actions 工作流文件中,你可以直接引用 GITHUB_TOKEN,如下所示:

    steps:
      - name: Example using GITHUB_TOKEN
        uses: some-action
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
    
  • 这个令牌的权限通常受限于关联的仓库,并且具有足够的权限执行大多数与仓库相关的操作,如克隆、推送、拉取等。

2. 个人访问令牌(PAT)

个人访问令牌(PAT)需要你手动在 GitHub 账户设置中生成。它可以具有广泛的权限,并可以跨仓库使用。由于它的权限较广,因此需要更谨慎地处理。

生成步骤

  1. 登录到 GitHub:打开你的浏览器,访问 GitHub 并登录。
  2. 访问设置:在页面右上角,点击你的头像,然后选择“Settings”(设置)。
  3. 开发者设置:在设置页面的侧边栏中,找到“Developer settings”(开发者设置)并点击。
  4. 访问令牌:在开发者设置页面中,选择“Personal access tokens”(个人访问令牌),然后点击“Generate new token”(生成新令牌)。
  5. 选择权限:给你的令牌命名,并选择适当的权限。对于大多数用于 CI/CD 的操作,你可能需要选择 repo 权限。确保选择的权限符合你的需求,并尽量遵循最小权限原则。
  6. 生成令牌:完成后,点击页面底部的“Generate token”(生成令牌)按钮。
  7. 复制并保存令牌:生成后,你将看到一次性显示的令牌。确保复制并安全地保存这个令牌,因为它不会再次显示。

存储和使用

  • 将生成的 PAT 添加到 GitHub 仓库的 Secrets 中,方法与之前类似,然后在 GitHub Actions 中引用该 Secret,如下所示:

    steps:
      - name: Example using PAT
        uses: some-action
        with:
          token: ${{ secrets.YOUR_PAT_SECRET_NAME }}
    

安全注意事项

  • 保密性:永远不要将令牌硬编码在代码中或公开令牌。始终使用 GitHub Secrets 来管理敏感数据。
  • 权限:为 PAT 选择尽可能低的权限级别,以减少安全风险。

通过以上步骤,你可以正确生成和使用 GITHUB_TOKEN 和 PAT,以安全地实现自动化操作和其他需要 GitHub API 授权的任务。如果有任何疑问或需要进一步的帮助,请随时联系。

下面展示一下我的yml 例子

name: SSH CI Github Pages
on:
  #监听push操作
  push:
    branches:
      - main # 这里只配置了main分支,所以只有推送main分支才会触发以下任务
jobs:
  # 任务ID
  build-and-deploy:
    # 运行环境
    runs-on: ubuntu-latest
    # 步骤
    steps:
      # 官方action,将代码拉取到虚拟机
      - name: Checkout  ️ 
        uses: actions/checkout@v2
        with:
          persist-credentials: false  # 这个设置很重要,尤其是在部署到 public repository 时

      - name: Setup SSH keys
        uses: webfactory/ssh-agent@v0.5.3
        with:
          ssh-private-key: ${{ secrets.DEPLOY_KEY }}

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '18'
          # cache: 'pnpm'

      - name: Install pnpm
        run: |
          npm install -g pnpm@6.32.11
          echo "Verify pnpm version"
          pnpm -v



      - name: Add pnpm to PATH
        run: echo "$(npm prefix -g)/bin" >> $GITHUB_PATH


      - name: Cache pnpm modules
        uses: actions/cache@v2
        with:
          path: |
            ~/.pnpm-store
          key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-

      - name: Install dependencies
        run: pnpm install

      - name: Build
        run: pnpm run docs:build

      - name: Deploy   # 部署
        uses: peaceiris/actions-gh-pages@v4
        with:
          # branch: gh-pages # 部署后提交到那个分支
          # github_token: ${{ secrets.PAT }}
          deploy_key: ${{ secrets.DEPLOY_KEY }} #公钥
          publish_dir: ./site/docs/.vitepress/dist # 这里填打包好的目录名称
          publish_branch: gh-pages


  • GitHub Actions 自动部署前端 Vue 项目
  • 使用Github Actions自动部署vue项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/571478.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

应用在防蓝光显示器中的LED防蓝光灯珠

相比抗蓝光眼镜、防蓝光覆膜、软体降低蓝光强度这些“软”净蓝手段&#xff0c;通过对LED的发光磷粉进行LED背光进行技术革新&#xff0c;可实现硬件“净蓝”。其能够将90%以上的有害蓝光转换为450nm以上的长波低能光线&#xff0c;从硬件的角度解决了蓝光危害眼睛的问题&#…

python+django校园社交高校交友网站2x7r5.

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行&#xff0c;将系统所使用到的表以及数据存储到MySQL数据库中&#xff0c;方便对数据进行操作本课题基于WEB的开发平台&#xff0c;设计的基本思路是&#xff1a; 前端&#xff1a;vue.jselementui 框架&#…

【机器学习】深度神经网络(DNN):原理、应用与代码实践

深度神经网络&#xff08;DNN&#xff09;&#xff1a;原理、应用与代码实践 一、深度神经网络&#xff08;DNN&#xff09;的基本原理二、DNN的优缺点分析三、DNN的代码实践四、总结与展望 在人工智能与机器学习的浪潮中&#xff0c;深度神经网络&#xff08;Deep Neural Netw…

Spring Boot 集成 EasyExcel 3.x

Spring Boot 集成 EasyExcel 3.x Spring Boot 集成 EasyExcel 3.x 本章节将介绍 Spring Boot 集成 EasyExcel&#xff08;优雅实现Excel导入导出&#xff09;。 &#x1f916; Spring Boot 2.x 实践案例&#xff08;代码仓库&#xff09; 介绍 EasyExcel 是一个基于 Java 的、…

【注解和反射】什么时候类会和不会被初始化?

继上一篇博客【注释和反射】类加载的过程-CSDN博客 目录 四、什么时候类会被初始化&#xff08;主动引用&#xff09;&#xff1f; 测试 五、什么情况下不会发生类的初始化&#xff08;被动引用&#xff09;&#xff1f; 测试 四、什么时候类会被初始化&#xff08;主动引用…

<网络> HTTP

目录 前言&#xff1a; 一、再谈协议 &#xff08;一&#xff09;认识URL &#xff08;二&#xff09;Encode 和 Decode 二、HTTP 协议 &#xff08;一&#xff09;协议格式 &#xff08;二&#xff09;见一见请求 &#xff08;三&#xff09;见一见响应 三、模拟实现响…

模块化 DeFi L2 “Mode” 整合 Covalent Network(CQT),以获 Web3 最大数据集的支持

Covalent Network&#xff08;CQT&#xff09;&#xff0c;作为 Web3 领先的数据层&#xff0c;宣布其统一 API 将与 Mode 集成&#xff0c;以加快其基于以太坊构建的专注于 DeFi 的模块化 Layer2 方案的数据访问速度。这一战略合作将通过为开发者提供更强大的工具和能力&#…

论文浅尝 | LoRA: 大模型的低秩适配

笔记整理&#xff1a;陈一林&#xff0c;东南大学硕士&#xff0c;研究方向为不确定知识图谱规则学习 链接&#xff1a;https://arxiv.org/abs/2106.09685 1、动机 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练&#xff0c;然后对特定任务或领域进行适应性…

`THREE.AudioAnalyser` 音频分析

demo案例 THREE.AudioAnalyser 音频分析 入参 (Input Parameters): audio: 一个 THREE.Audio 实例&#xff0c;代表要分析的音频。fftSize: 快速傅里叶变换&#xff08;FFT&#xff09;的大小&#xff0c;用于确定分析的精度和频率分辨率。smoothingTimeConstant: 平滑时间…

[lesson58]类模板的概念和意义

类模板的概念和意义 类模板 一些类主要用于存储和组织数据元素 类中数据组织的方式和数据元素的具体类型无关 如&#xff1a;数组类、链表类、Stack类、Queue类等 C中将模板的思想应用于类,使得类的实现不关注数据元素的具体类型,而只关注类所需要实现的功能。 C中的类模板…

如何通过cURL库实现远程控制插座

如何通过cURL库实现远程控制插座呢&#xff1f; 本文描述了使用cURL库调用HTTP接口&#xff0c;实现控制插座&#xff0c;即插即用&#xff0c;先插入插座&#xff0c;再接电器&#xff0c;实现远程控制。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格…

开源文本嵌入模型M3E

进入正文前&#xff0c;先扯点题外话 这两天遇到一个棘手的问题&#xff0c;在用 docker pull 拉取镜像时&#xff0c;会报错&#xff1a; x509: certificate has expired or is not yet valid 具体是下面&#x1f447;这样的 rootDS918:/volume2/docker/xiaoya# docker pul…

油猴脚本:bing 搜索结果居中

文章目录 效果预览脚本使用步骤安装油猴脚本添加脚本 效果预览 脚本 // UserScript // name bing居中 // namespace http://tampermonkey.net/ // version 2024-04-24 // description try to take over the world! // author You // match http…

牛客 题解

文章目录 day4_17**BC149** **简写单词**思路&#xff1a;模拟代码&#xff1a; dd爱框框思路&#xff1a;滑动窗口&#xff08;同向双指针&#xff09;代码&#xff1a; 除2&#xff01;思路&#xff1a;模拟贪心堆代码&#xff1a; day4_17 BC149 简写单词 https://www.now…

缓存神器-JetCache

序言 今天和大家聊聊阿里的一款缓存神器 JetCache。 一、缓存在开发实践中的问题 1.1 缓存方案的可扩展性问题 谈及缓存&#xff0c;其实有许多方案可供选择。例如&#xff1a;Guava Cache、Caffine、Encache、Redis 等。 这些缓存技术都能满足我们的需求&#xff0c;但现…

CPDA|0到1突破:构建高效数据分析体系的秘密武器

在现今信息爆炸的时代&#xff0c;数据已经渗透到了我们生活的方方面面&#xff0c;成为了决策、创新和竞争优势的关键。因此&#xff0c;构建一套高效的数据分析体系&#xff0c;对于企业和个人而言&#xff0c;都是至关重要的。那么&#xff0c;如何在众多的数据海洋中脱颖而…

自动化立体库安全使用管理制度

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料&#xff0c;请球友到知识星球 【智能仓储物流技术研习社】自行下载 关于自动化立体库安…

Visual Studio导入libtorch(Cuda版)

Visual Studio导入libtorch&#xff08;Cuda版&#xff09; 一、安装 官网&#xff1a;https://pytorch.org/get-started/locally/ 相应地选择并下载 二、环境变量配置 解压zip&#xff0c;得到libtorch文件夹&#xff0c;将libtorch\lib和libtorch\bin对应路径添加到系统环…

如何把视频中的画面保存为图片?免费的工具不用白不用

在数字化时代&#xff0c;截取视频中的珍贵瞬间成为了人们创作、分享和保存回忆的重要方式。 那么&#xff0c;如何迅速捕捉视频中的精彩画面&#xff0c;留存美好瞬间呢&#xff1f;有人说直接截图就可以&#xff0c;如果直接截图就可以&#xff0c;小编就不用写这篇文章了&a…

Redis 安装及配置教程(Windows)【安装】

文章目录 一、简介一、 下载1. GitHub 下载2. 其它渠道 二、 安装1. ZIP2. MSI 软件 / 环境安装及配置目录 一、简介 Redis 官网地址&#xff1a;https://redis.io/   Redis 源码地址&#xff1a;https://github.com/redis/redis   Redis 官网安装地址&#xff08;无Windo…
最新文章