远程仓库.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 tokenuses: some-action-that-needs-token@v1with:token: ${{ secrets.GITHUB_TOKEN }}  # 使用自动生成的 GITHUB_TOKEN

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

steps:- uses: actions/checkout@v2- name: Some step that uses a custom PATuses: some-action-that-needs-token@v1with: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_TOKENuses: some-actionwith: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 PATuses: some-actionwith: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:# 任务IDbuild-and-deploy:# 运行环境runs-on: ubuntu-latest# 步骤steps:# 官方action,将代码拉取到虚拟机- name: Checkout  ️ uses: actions/checkout@v2with:persist-credentials: false  # 这个设置很重要,尤其是在部署到 public repository 时- name: Setup SSH keysuses: webfactory/ssh-agent@v0.5.3with:ssh-private-key: ${{ secrets.DEPLOY_KEY }}- name: Setup Node.jsuses: actions/setup-node@v2with:node-version: '18'# cache: 'pnpm'- name: Install pnpmrun: |npm install -g pnpm@6.32.11echo "Verify pnpm version"pnpm -v- name: Add pnpm to PATHrun: echo "$(npm prefix -g)/bin" >> $GITHUB_PATH- name: Cache pnpm modulesuses: actions/cache@v2with:path: |~/.pnpm-storekey: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}restore-keys: |${{ runner.os }}-pnpm-- name: Install dependenciesrun: pnpm install- name: Buildrun: pnpm run docs:build- name: Deploy   # 部署uses: peaceiris/actions-gh-pages@v4with:# 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.mzph.cn/diannao/2953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入探索CSS3多列布局:重构文本流与网页排版的艺术

在网页设计领域&#xff0c;CSS3的多列布局&#xff08;Multicolumn Layout&#xff09;是一项革命性的改进&#xff0c;它赋予了设计师们创作类似报纸或杂志般的多栏布局的能力。本文将全面解析CSS3中与多列布局相关的属性&#xff0c;深入探讨其工作原理&#xff0c;并结合实…

Mybatis入门,day2,动态SQL

Mybatis入门&#xff0c;day2&#xff0c;动态SQL 文章目录 Mybatis入门&#xff0c;day2&#xff0c;动态SQL前言一、为什么要实现动态SQL二、使用步骤1.where和if2.set和if3.foreach方法 前言 动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中&#xff0c;开…

《R语言与农业数据统计分析及建模》学习——描述性统计分析

一、描述性统计概念和方法 1、概念和作用 描述性统计是对数据进行概括和描述&#xff0c;便于理解数据的特征、趋势和分布&#xff0c;帮助我们了解数据基本情况和总体特征&#xff0c;为后续更深入的数据分析和建模提供基础。 2、基础方法 &#xff08;1&#xff09;中心趋…

npm、yarn与pnpm详解

&#x1f525; npm、yarn与pnpm详解 &#x1f516; 一、npm &#x1f50d; 简介&#xff1a; npm是随Node.js一起安装的官方包管理工具&#xff0c;它为开发者搭建了一个庞大的资源库&#xff0c;允许他们在这个平台上搜索、安装和管理项目所必需的各种代码库或模块。 &#…

CountDownLatch源码分析

1.创建 CountDownLatch latch new CountDownLatch(5); 2.latch.countDown(); 将count执行减一操作&#xff0c;当count为0时&#xff0c;等待中的线程会被唤醒 SIGNAL (值为-1)&#xff1a; 表示后继节点需要被唤醒。当一个节点释放锁的时候&#xff0c;会唤醒它的后继节点…

openjudge_2.5基本算法之搜索_1998:寻找Nemo

题目 1998:寻找Nemo 总时间限制: 2000ms 内存限制: 65536kB 描述 Nemo 是个顽皮的小孩. 一天他一个人跑到深海里去玩. 可是他迷路了. 于是他向父亲 Marlin 发送了求救信号.通过查找地图 Marlin 发现那片海像一个有着墙和门的迷宫.所有的墙都是平行于 X 轴或 Y 轴的. 墙的厚度可…

C++笔记之C++、C语言、PISIX、拿到线程函数的返回值的所有方法

C++笔记之C++、C语言、PISIX、拿到线程函数的返回值的所有方法 —— 2024-04-21 杭州 文章目录 C++笔记之C++、C语言、PISIX、拿到线程函数的返回值的所有方法1.C++ 使用 std::thread 和 std::promise/std::future2.C++ 使用 std::async3.C/POSIX 使用 pthread在 C++ 和 C 语言…

2010-2023年“国家级大数据综合试验区”试点城市DID匹配数据

2010-2023年国家级大数据综合试验区试点城市DID匹配数据 1、时间&#xff1a;2010-2023年 2、来源&#xff1a;国家发展改革委、工业和信息化部、ZY网信办发函批复的试验区 3、指标&#xff1a;行政区划代码、年份、所属省份、地区、国家级大数据综合试验区、最早设立年份 …

Python基础:【习题系列】判断题(二)

Python中单行注释以#符号开始。 答案&#xff1a;对 Python中可以使用操作符来增加变量的值。 答案&#xff1a;对 在Python中&#xff0c;元组一旦创建就不能被修改。 答案&#xff1a;对 Python中的函数可以没有参数。 答案&#xff1a;对 在Python中&#xff0c;可以用{…

ELK创建仪表盘

创建仪表盘步骤&#xff1a; 一、保存search二、生成饼图三、创建仪表盘 一、保存search 首先保存一段时间内的search&#xff0c;可以添加想要的字段&#xff0c;并保存这个search方便下次直接打开该search&#xff0c;并方便在可视化和仪表盘中使用该search. 二、生成饼图…

c++中的函数

一、函数概述 作用&#xff1a;将一段经常使用的代码封装起来&#xff0c;减少重复代码 一个较大的程序&#xff0c;一般分为若干个程序块&#xff0c;每个程序块实现特定功能。 二、函数的定义 函数定义主要有5个步骤&#xff1a; 返回值类型函数名参数列表函数体语句ret…

Node.js安装与配置:从零开始构建高效的开发环境

在当今互联网时代&#xff0c;Node.js已经成为了许多开发者心目中的首选技术栈之一。它的轻量级、高效性以及广泛的生态系统&#xff0c;使得它在构建Web应用、后端服务以及大规模数据处理等方面表现出色。然而&#xff0c;要充分利用Node.js的潜力&#xff0c;首先需要正确地安…

上海计算机学会 2024年4月月赛 丙组T1 最大公约数

第一题&#xff1a;T1最大公约数 标签&#xff1a; g c d gcd gcd题意&#xff1a;求 a a a和 b b b的最大公约数&#xff08; 1 ≤ a , b ≤ 1 , 000 , 000 , 000 1≤a,b≤1,000,000,000 1≤a,b≤1,000,000,000&#xff09;题解&#xff1a;辗转相除法 g c d ( a , b ) g c …

Laravel 6 - 第十二章 控制器

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

QService 服务 指令引用的“0x00000000”内存。该内存不能为“read“

QtServiceBase类在Qt框架中是设计用来简化Windows服务或类Unix守护进程创建的。这个类提供了一组方法和属性&#xff0c;使得开发者能够专注于服务逻辑&#xff0c;而不必担心操作系统层面的细节。下面是一些QtServiceBase类中常用的属性和方法&#xff1a; 常用方法 start():…

【Linux】Linux权限管理详解

&#x1f331;博客主页&#xff1a;青竹雾色间 &#x1f331;系列专栏&#xff1a;Linux &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 1. Linux权限概念2. 文件访问者分类a) 文件和目录的访问者&#xff1a;b) 文件类型和访问权限 3. 文件权限值的表…

安装VCenter 7 对硬件资源的需求

安装VMware vCenter Server 7.x 对硬件资源的需求主要包括以下方面&#xff1a; 服务器硬件&#xff1a; 处理器&#xff1a;64位 x86架构&#xff0c;推荐采用多核CPU以支持高并发管理和运行多个虚拟机。具体数量取决于vCenter Server将管理的虚拟机规模及复杂度。内存&#x…

第四百七十七回

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"Get包简介"相关的内容&#xff0c;本章回中将介绍GetMaterialApp组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经…

K-近邻算法的 sklearn 实现

实验目的与要求 掌握基于 K-近邻分类算法的编程方法通过编程理解 K-近邻分类算法和该算法的基本步骤 实验器材 硬件&#xff1a;PC 机&#xff08;参与实验的学生每人一台&#xff09;软件环境&#xff1a;Python3.7 Pycharm 实验内容 使用 sklearn 库中的 neighbors 模块实…

idrac管理界面报错:RAC0508: 发生意外错误。

在idrac服务器-服务模块&#xff0c;看到如下报错信息&#xff1a; RAC0508: 发生意外错误。 等待几分钟然后刷新页面。 如果问题仍然存在&#xff0c;请联系服务提供商。 经查询&#xff0c;还是不知道是啥问题。 经查询&#xff0c;发现可能是数据库方面的报错&#xff0c;不…