如何运营Github Org

目录

前言

正文

关于分支保护

特别说明

如何在Windows环境下配置GitHub Desktop GPG签名?

推荐分支保护选择

关于good first issue

如何设置good first issue?

关于Project

尾声


 

  • 🔭 Hi,I’m Pleasure1234
  • 🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.
  • 👯 I’m studying in University of Nottingham Ningbo China
  • 📫 You can reach me by url below:
  • My Blog Website: https://blog.yiming1234.cn 
  • My CSDN Blog: https://yiming1234.blog.csdn.net
  • My Email:Pleasure@yiming1234.cn
  • My Github:Pleasurecruise (自由的世界人) · GitHub
  • It's my pleasure to see you follow me!

原文地址:如何运营Github Org - Pleasure的博客

下面是正文内容:


前言

分享近期的收获

对于这个号,尽量做到月更吧

推广一下最近在写的开源项目,求star

GitHub - CompPsyUnion/NottinghamWall: 宁诺校园墙/宁波诺丁汉大学/计算机爱好者协会

正文

建立一个Github Org并没有想象的那么困难

只需要将新注册一个Github账号然后前往Sign in to GitHub · GitHubTransform account

建立Github Org有多种目的,比如:

1.公司,社区,部门,组织,社团等具有官方性质的,用于和自由开发者进行交流

2.用于统一储存管理具有某一相同目的的仓库

这篇文章仅谈谈以下几点

关于分支保护

用于在协同工作中保护源代码的安全

以下是每个分支保护规则的简要解释:

  1. Restrict creations:限制分支的创建权限。仅允许具有绕过权限的用户创建符合规则的引用(refs),防止未授权的分支创建。
  2. Restrict updates:限制分支的更新权限。只有具有绕过权限的用户才能更新符合规则的引用,防止未经批准的更改。
  3. Restrict deletions:限制分支的删除权限。仅允许具有绕过权限的用户删除符合规则的引用,以防止分支意外或未经授权的删除。
  4. Require linear history:要求线性历史记录。阻止将带有合并提交的更改推送到符合规则的引用,确保分支历史保持线性(没有合并提交)。
  5. Require merge queue:要求合并队列。所有合并操作都必须通过合并队列进行,以确保变更按序进行。
  6. Require deployments to succeed:要求成功的部署。在推送符合规则的引用前,必须先成功部署到指定的环境,确保生产环境的稳定性。
  7. Require signed commits:要求签名的提交。所有推送到符合规则的引用的提交必须具备经过验证的签名,确保提交来源可信。
  8. Require a pull request before merging:合并前需要提交拉取请求。所有更改必须通过拉取请求合并,确保分支上的直接推送受到控制。
  9. Required approvals:要求批准数。拉取请求在合并前必须获得指定数量的批准,确保变更经过充分的审查。
  10. Dismiss stale pull request approvals when new commits are pushed:在推送新提交时撤销已过时的批准。新提交会撤销之前的批准,确保最新更改得到重新审查。
  11. Require review from Code Owners:需要代码所有者的审查。拉取请求中的文件变更若涉及代码所有者指定的文件,则需要代码所有者的批准。
  12. Require approval of the most recent reviewable push:要求最新的推送获得批准。最新的可审查推送必须由他人批准,防止提交者自行批准更改。
  13. Require conversation resolution before merging:要求对话解决。所有代码对话需在拉取请求合并前解决,确保沟通到位。
  14. Request pull request review from CopilotPreview:自动请求Copilot的审查。在新拉取请求创建时自动请求Copilot审查(若作者具备Copilot代码审查访问权限)。
  15. Require status checks to pass:要求状态检查通过。配置后,推送前需通过指定状态检查,确保代码符合质量标准。
  16. Block force pushes:禁止强制推送。防止具有推送权限的用户强制推送更改,以维护分支历史的完整性。
  17. Require code scanning results:要求代码扫描结果。指定工具必须提供代码扫描结果,确保推送的代码没有安全或质量问题。

对于个别规则我想进行

特别说明

Restrict updates是只允许拥有Bypass权限的用户才允许对Pull Request进行Merge,在实际操作中显示如下

只有点击Merge without waiting for requirements to be met (bypass branch protections)才能进行合并

建议不要勾选该项

Require signed commits是为了防止在本地被伪造的git被提交,需要进行签名,即这里绿色的verified!

如何在Windows环境下配置GitHub Desktop GPG签名?

首先安装GPG,下载地址:https://www.gnupg.org/download/index.html

检查环境变量是否生效,终端中输入

gpg --version

输出如下则环境变量生效

生成密钥 设置密钥的姓名,邮箱,描述,建议设置为GitHub用户名,GitHub绑定的邮箱

gpg --full-generate-key

查看密钥

gpg --list-secret-keys --keyid-format=long

gpg --armor --export 你的密钥ID

然后在你的Github账户中添加刚生成的密钥

Sign in to GitHub · GitHub

在Github Desktop的文件夹中进行配置,路径大致如下

C:\Users\31968\AppData\Local\GitHubDesktop\app-3.4.9\resources\app\git\cmd

git config --global user.signingkey Your_Secret_Key
git config --global commit.gpgsign true
git config --global gpg.program "Path\To\Your\GnuPG\bin\gpg.exe"

这样每次在push的时候都会对提交进行验证了

推荐分支保护选择

这里是我推荐的对于组织中开源仓库的分支保护的选择

{
  "id": 1578177,
  "name": "Protect Main",
  "target": "branch",
  "source_type": "Repository",
  "source": "CompPsyUnion/NottinghamWall",
  "enforcement": "active",
  "conditions": {
    "ref_name": {
      "exclude": [],
      "include": [
        "~DEFAULT_BRANCH"
      ]
    }
  },
  "rules": [
    {
      "type": "deletion"
    },
    {
      "type": "non_fast_forward"
    },
    {
      "type": "creation"
    },
    {
      "type": "pull_request",
      "parameters": {
        "required_approving_review_count": 1,
        "dismiss_stale_reviews_on_push": true,
        "require_code_owner_review": false,
        "require_last_push_approval": true,
        "required_review_thread_resolution": true,
        "automatic_copilot_code_review_enabled": false
      }
    },
    {
      "type": "required_signatures"
    }
  ],
  "bypass_actors": [
    {
      "actor_id": 5,
      "actor_type": "RepositoryRole",
      "bypass_mode": "always"
    },
    {
      "actor_id": 1,
      "actor_type": "OrganizationAdmin",
      "bypass_mode": "always"
    }
  ]
}

关于good first issue

在开源项目中,“good first issue” 是一种标签,用来标记适合新手或首次参与该项目的贡献者解决的任务。这些任务通常具有以下特点:

  1. 简单明了:问题通常是相对简单的,不需要深入了解项目的复杂细节。
  2. 难度适中:任务的难度适合初学者解决,不涉及特别复杂的逻辑或大型代码改动。
  3. 明确的指引:问题描述清晰,包含解决方案的方向、相关文件路径,或必要的背景信息,帮助新人快速上手。
  4. 低风险:通常是对项目核心功能影响较小的任务,比如小的bug修复、文档更新、代码清理等。

通过“good first issue”,项目维护者希望吸引更多新手加入贡献,熟悉项目结构和开发流程,同时为新手提供一个学习和成长的机会。

如何设置good first issue?

常见的good first issue格式如上

会在这个issue中罗列已完成和待完成的任务,并关联issue和pull request

number of number tasks 的形式在头部显示,已达到比在仓库README中列TODO更好的效果

同时还可以关联 Project ,Tags ,并通过issue的Assign进行task/issue的分发

关于Project

在开源合作中非常常见,比如公司 社区等等

GitHub Project 是一种项目管理工具,帮助团队在 GitHub 上进行任务和项目的规划、组织和跟踪。它结合了看板、任务列表等功能,使开发和管理团队可以更高效地协作。GitHub Project 的主要作用如下:

  1. 任务跟踪:项目中的问题(Issues)和拉取请求(Pull Requests)可以直接添加到项目中,方便团队跟踪任务进展。
  2. 优先级和进度管理:可以通过分配优先级、截止日期、里程碑等信息,帮助团队合理安排任务,确保项目按计划进行。
  3. 任务分配和角色分工:支持分配任务给团队成员,清晰地展示各自的职责和进展,增强协作效果。
  4. 自定义工作流程:支持创建自定义列(如“待办”、“进行中”、“已完成”),并支持自动化规则来改变任务状态,提升工作效率。
  5. 进度可视化:使用看板视图和列表视图,项目进度一目了然,便于管理者监控整个项目的实时状态。
  6. 整合与自动化:可以通过 GitHub Actions 或 Webhooks 自动更新任务状态。例如,某个拉取请求被合并后,任务可以自动标记为完成。
  7. 提升透明度:所有项目成员都可以实时看到项目状态和进度,保持信息透明,减少沟通成本。

GitHub Project 是 GitHub 项目管理的核心工具,特别适用于开源项目、团队开发项目等,使得代码开发和项目管理无缝衔接,提高整体协作效率。

尾声

如果可以的话,麻烦给我们的组织点个关注,谢谢

Computer Psycho Union · GitHub

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

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

相关文章

odrive代码阅读笔记

电机参数 电流环带宽 atan2 #include "float.h" #define MACRO_MAX(x, y) (((x) > (y)) ? (x) : (y)) #define MACRO_MIN(x, y) (((x) < (y)) ? (x) : (y)) #define f_abs(x) ((x > 0) ? x : -x) // based on https://math.stackexchange.com/a/11050…

笔记本怎么开启TPM2.0_笔记本开启TPM2.0教程(不同笔记本开启tpm2.0方法)

在win11最低要求是提示&#xff0c;电脑必须满足 TPM 2.0&#xff0c;并开需要开启TPM 才能正常安装windows11系统&#xff0c;有很多笔记本的用户问我&#xff0c;笔记本怎么开启tpm功能呢&#xff1f;下面小编就给大家详细介绍一下笔记本开启tpm功能的方法。 如何确认你笔记本…

ModuleNotFoundError: No module named ‘_ssl‘ centos7中的Python报错

报错 ModuleNotFoundError: No module named ‘_ssl’ 解决步骤&#xff1a; 1.下载openssl wget https://www.openssl.org/source/openssl-3.0.7.tar.gz tar -zxvf openssl-3.0.7.tar.gz cd openssl-3.0.72.编译安装 ./config --prefix/usr/local/openssl make make install3…

迁移学习相关基础

迁移学习 目标 将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中。 主要思想 从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。 概述 Target data&#xff1a;和你的任务有直接关系的数据&#xff0c;但数据量少&#xff…

ReactPress系列—Next.js 的动态路由使用介绍

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架&#xff0c;支持服务端渲染、静态站点生成和动态路由等功能&#xff0c;极大地简化…

一文熟悉新版llama.cpp使用并本地部署LLAMA

0. 简介 最近是快到双十一了再给大家上点干货。去年我们写了一个大模型的系列&#xff0c;经过一年&#xff0c;大模型的发展已经日新月异。这一次我们来看一下使用llama.cpp这个项目&#xff0c;其主要解决的是推理过程中的性能问题。主要有两点优化&#xff1a; llama.cpp …

yolov8涨点系列之轻量化主干网络替换

文章目录 YOLOv8 替换成efficientvit轻量级主干网络的好处计算效率提升模型部署更便捷方便模型移植 模型可扩展性增强便于集成其他模块支持模型压缩技术 主干网络替换1.创建yolov8_efficeintVit.py2.修改task.py(1)引入创建的efficientViT文件(2)修改_predict_once函数(3)修改p…

python代码打包exe文件(可执行文件)

一、exe打包 1、构建虚拟环境 conda create -n env_name python3.8 #env_name,python根据自己需求修改2、保存和安装项目所需的所有库 pip freeze > requirements.txt3、虚拟环境安装项目包、库 pip install -r requirements.txt4、安装pyinstaller pip install pyinst…

scala学习记录,Set,Map

set&#xff1a;集合&#xff0c;表示没有重复元素的集合&#xff0c;特点&#xff1a;唯一 语法格式&#xff1a;val 变量名 Set [类型]&#xff08;元素1&#xff0c;元素2...&#xff09; 可变不可变 可变&#xff08;mutable&#xff09;可对元素进行添加&#xff0c;删…

ai外呼机器人的作用有哪些?

ai外呼机器人具有极高的工作效率。日拨打成千上万通不是问题&#xff0c;同时&#xff0c;机器人还可以快速筛选潜在客户&#xff0c;将更多精力集中在有价值的客户身上&#xff0c;进一步提升营销效果。183-3601-7550 ai外呼机器人的作用&#xff1a; 1、搭建系统&#xff0c…

Matlab实现鲸鱼优化算法优化随机森林算法模型 (WOA-RF)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 鲸鱼优化算法&#xff08;Whale Optimization Algorithm, WOA&#xff09;是受座头鲸捕食行为启发而提出的一种新型元启发式优化算法。该算法通过模拟座头鲸围绕猎物的螺旋游动和缩小包围圈的方式&#xff0c;在…

Linux基础4-进程5(程序地址空间详解)

上篇文章:Linux基础4-进程4&#xff08;环境变量&#xff0c;命令行参数详解&#xff09;-CSDN博客 本章重点&#xff1a; 1 重新理解c/c地址空间 2 虚拟地址空间 一. c/c地址空间 地址空间布局图: 运行下列代码&#xff0c;进行观察 #include <stdio.h> #include <…

本地连接IP地址的自主设置指南‌

在数字化时代&#xff0c;网络连接已成为我们日常生活和工作中不可或缺的一部分。无论是家庭网络还是企业网络&#xff0c;正确配置IP地址是确保网络畅通无阻的基础。IP地址&#xff0c;即互联网协议地址&#xff0c;是网络中每个设备的唯一标识。掌握如何自主设置本地连接的IP…

对 fn.apply(this, arguments) 的使用还在疑惑?快进来看看它的设计含义及常见使用场景吧~

&#x1f64c; 如文章有误&#xff0c;恳请评论区指正&#xff0c;谢谢&#xff01; ❤ 写作不易&#xff0c;「点赞」「收藏」「转发」 谢谢支持&#xff01; 背景 近期在研究高阶函数封装的过程中&#xff0c;看到 fn.apply(this, arguments) 的出镜率非常高&#xff0c;而如…

【ReactPress】React + antd + NestJS + NextJS + MySQL 的简洁兼时尚的博客网站

ReactPress 是使用React开发的开源发布平台&#xff0c;用户可以在支持React和MySQL数据库的服务器上架设属于自己的博客、网站。也可以把 ReactPress 当作一个内容管理系统&#xff08;CMS&#xff09;来使用。 前言 此项目是用于构建博客网站的&#xff0c;包含前台展示、管理…

Pycharm远程调试deepspeed!可用!

本人写代码的习惯就是一定是要从别人优秀的代码中调试学习的&#xff0c;直接运行看的话&#xff0c;可能知道了大概的逻辑但是缺无法知道细节的话&#xff08;参数的含义或者某某数据格式类型&#xff09;&#xff0c;可能对整体代码逻辑的把控不是狠好&#xff0c;所以还是从…

Redis 中 Bitmap 原理和应用

Bitmap Redis中的Bitmap&#xff08;位图&#xff09;是一种较为特殊数据类型&#xff0c;它以最小单位bit来存储数据&#xff0c;我们知道一个字节由 8个 bit 组成&#xff0c;和传统数据结构用字节存储相比&#xff0c;这使得它在处理大量二值状态&#xff08;true、false 或…

基于 STM32 的天气时钟项目中添加天气数据的网络获取功能

基于 STM32 的天气时钟项目中添加天气数据的网络获取功能&#xff0c;您需要确保您的开发环境具备网络连接能力。这里以 ESP8266 Wi-Fi 模块为例&#xff0c;详细说明如何实现网络获取天气数据的功能。 1. 硬件连接 连接 ESP8266 模块 请参考以下连接方式&#xff0c;将 ESP82…

mysql-springboot netty-flink-kafka-spark(paimon)-minio

1、下载spark源码并编译 mkdir -p /home/bigdata && cd /home/bigdata wget https://archive.apache.org/dist/spark/spark-3.4.3/spark-3.4.3.tgz 解压文件 tar -zxf spark-3.4.3.tgz cd spark-3.4.3 wget https://raw.githubusercontent.com/apache/incubator-celeb…

【Spring】体系结构

Spring框架至今集成了多个模块&#xff0c;这些模块分布在数据访问/集成&#xff08;Data Access/Integration&#xff09;、Web层、面向切面的编程&#xff08;Aspect Oriented Programming&#xff0c;AOP&#xff09;模块、植入&#xff08;Instrumentation&#xff09;模块…