`
dcj3sjt126com
  • 浏览: 1857906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己实践了github的webhooks, linux上面的权限需要注意

阅读更多

环境, 阿里云服务器

 

1. 本地创建项目, push到github服务器上面

 

2. 生成www用户的密钥

sudo -u www ssh-keygen -t rsa -C "xxx@xx.com"

 

 

3. 将密钥添加到github帐号的SSH_KEYS里面

 

3. 用www用户执行克隆, 源使用ssh的克隆方式, 不要用https

sudo -u www git clone git@github.com:xxx/xxx.git

 

 

4. 创建更新的php脚本,放到网站的根目录, 外网可以正常访问到这个脚本即可

cat update_hook.php

<?php
$www_folder = "/alidata/www/default/movie";

//在这里获取到了用户提交的内容, 以及提交者等等, 可以记录到数据库中供以后使用
$raw_json = file_get_contents('php://input');
print_r(json_decode($raw_json, true));

echo shell_exec(" cd $www_folder ; git pull 2>&1");

 

 

5. 将脚本地址填写到项目的webhooks

http://x.x.x.x/update_hook.php

 

 

提示: 

注意不要在服务器上用root用户git pull, 这样一些文件的权限会变为root, 就混乱了, 下次 www用户push后就无法通过webhook部署了

sudo -u www git push

 

 

服务器上面配置全局的用户和邮箱

git config --global user.name “xxx”
git config --global user.email “xxx@xxx.com"

 

 

将项目根目录权限设置为www用户

chown -R www:www /alidata/www/default/movie

 

 

 

分享到:
评论

相关推荐

    linux-使用CodeBuild和CodeDeploy的GitHub到EC2CICD模板

    【标题】:“Linux环境下利用CodeBuild与CodeDeploy实现GitHub到EC2的CI/CD流程” 在现代软件开发中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已经成为不可或缺的实践,...

    giteaForBT to Linux gitea-1.12-linux

    首先,你需要确保你的Linux系统已经安装了必要的依赖,例如curl、git和一个支持的数据库。对于树莓派,可能还需要安装ARM架构对应的二进制文件,如gitea-1.12-linux-amd64或gitea-1.12-linux-386。 安装步骤如下: ...

    GitHub-Demo-Lesson:GitHub示范课程thingy

    9. **Webhooks 和自动化**:GitHub 的 Webhooks 功能允许你配置触发器,当仓库发生特定事件时,自动执行某些操作,如构建、测试或部署代码。 10. **GitHub Actions**:GitHub Actions 是一个强大的自动化工具,可以...

    linux-MySQLChatOps脚本的一个小集合

    【标题】:“Linux-MySQLChatOps脚本的一个小集合”是指在Linux环境下,结合MySQL数据库管理和ChatOps实践的一系列自动化脚本。ChatOps是一种通过实时通信工具(如Slack或HipChat)进行团队协作和运营的方法,使得...

    GitHub

    开发者可以在GitHub上托管自己的代码仓库(repository),查看他人的代码,发起或参与代码的Pull Request(PR)进行代码审查,以及通过Issue系统追踪项目中的问题。 3. **Git基本操作**:包括`clone`(克隆远程仓库...

    PicGo:自用GitHub图床

    3. **设置访问令牌**:在GitHub个人设置中创建一个新的访问令牌,赋予适当的权限(如读写私有库),并将令牌值输入到PicGo的配置中。 4. **设置上传路径**:可以选择图片上传到仓库的特定路径,便于管理和查找。 5. ...

    howtolearngit:这是一个练习git和github的sintax的简单存储库

    5. **协作与权限**: GitHub支持多人协作,可以通过设置读写权限控制团队成员对仓库的访问。 6. **Issue与讨论**: 项目中的"Issues"功能用于报告问题或发起讨论,"Wiki"可以创建项目文档。 7. **GitHub Pages**: ...

    Jira管理员手册(v8.8英文完整版)

    管理员需要按照特定的步骤和需求来安装Jira应用,这包括评估安装、在不同操作系统上安装(如Windows和Linux),以及无人值守安装。 #### 连接数据库 连接数据库是Jira配置的关键部分。管理员需要按照文档指导,将...

    gerrit总结

    4. GitHub/GitLab集成:虽然Gerrit本身就是一个代码审查系统,但也可以与GitHub或GitLab通过Webhooks进行交互,将Gerrit作为代码审查的补充。 总结,Gerrit作为一个强大的代码审查工具,为团队协作提供了有效保障,...

    GitLab企业实战.pdf

    在GitLab中,管理员可以创建新的项目(即远程仓库),设定访问权限,邀请团队成员,定义分支策略,以及设置Webhooks等。 5. **IDEA操作GitLab远程仓库** 使用IDEA这样的集成开发环境与GitLab集成,可以方便地进行...

    go-webhook-server:一个简单的服务器,用于接收webhook和执行命令

    $ go get -u github.com/miguelmota/go-webhook-server/cmd/gws 安装预编译的二进制文件: $ wget https://github.com/miguelmota/go-webhook-server/releases/download/v0.0.9/gws_0.0.9_Linux_x86_64.tar.gz...

    rw-git-deployment:快速Web Git部署系统

    与GitHub和GitLab集成可推动Webhooks 在与部署目录同步之前,在临时位置完成依赖项安装 使用composer安装/更新后端组件 使用npm安装/更新前端模块 自动执行gulp任务 更改* nix文件和目录权限 要求 您希望部署到的...

    giteeMirror

    不过,需要注意的是,镜像并不意味着实时同步,可能存在一定的延迟,所以及时更新和管理镜像是非常重要的。 在提供的压缩包文件“giteeMirror-master”中,很可能是包含了用于实现上述功能的代码示例、配置文件或者...

    Git学习手册

    - **Webhooks:** 使用Webhooks监听GitHub事件,并触发外部服务的动作。 #### 七、Git工具 - **选择修订版本:** - **查找修订版本:** 使用`git log`查看提交历史,找到需要的修订版本。 - **检出特定版本:**...

    ASP.NET Web应用程序开发

    11. **持续集成与持续部署(CI/CD)**:对于现代Web开发,CI/CD是必不可少的实践,如使用Jenkins、GitHub Actions或Azure DevOps来自动化构建、测试和部署过程,确保代码质量并加快交付速度。 综上所述,ASP.NET Web...

    Auto_GH_Project_Public:已创建

    2. **Webhooks**:配置GitHub webhook,当特定事件(如push、pull request)发生时,通知服务器执行相应操作。 3. **Token管理**:安全地存储和使用GitHub个人访问令牌,以便于脚本的身份验证和权限管理。 4. **CI/...

    git-lab

    GitLab 是一个开源的版本控制系统,它提供了与GitHub相似的功能,但同时也支持更多的自托管选项,使得团队在自己的服务器上管理代码仓库成为可能。GitLab 不仅是一个代码存储库,它还包含了项目管理、代码审查、持续...

    CentralGit

    5. Webhooks:配置Webhooks以在代码变动时自动触发持续集成/持续部署(CI/CD)流程。 6. 数据备份和恢复:如何定期备份Git服务器的数据,并在需要时恢复。 7. 安全性:确保服务器安全,防止未授权访问,包括SSL/TLS...

    slack-alert-script:用于向 Slack 抛出警报的脚本

    2. **Webhooks**:在 Slack 中,通常使用 Incoming Webhooks 来发送自定义消息。这是一个简单的 HTTP POST 请求,将消息结构化数据发送到预先配置的 URL,Slack 将其转化为可读的消息。 3. **Shell 脚本基础**:...

Global site tag (gtag.js) - Google Analytics