shadiakiki1986/git-data-repo

该软件包最新版本(0.1.1)没有提供许可证信息。

管理从PHP到git数据仓库的保存/加载数据

0.1.1 2016-10-26 09:55 UTC

This package is auto-updated.

Last update: 2024-09-27 02:31:34 UTC


README

PHP库,用于管理在git仓库中存储键值对。

Packagist: 最新稳定版本 总下载量 最新不稳定版本 许可证 每月下载量 每日下载量 composer.lock可用

Travis CI: 构建状态

Code Climate: 代码气候 测试覆盖率 问题计数

已弃用

我经常注意到,当我在使用www-data用户从Web上使用代码或在docker中使用root用户从shell中时,composer.json中post-install的chown是一个问题。这引发了对运行在自己的“稳定”文件系统和文件权限上的独立服务器的需求。这些至少将与git-data-repo库的发展、composer install或composer update或任何其他操作独立。

这篇 SO 答案提出了 Orion Git API,遗憾的是它不是开源的。同一 SO 问题下的另一个答案指出,korya/node-git-rest-api 不完整,但它满足了我在服务器端的全部需求

  • 可以通过接受凭证克隆私有仓库
  • 可以获取特定文件的 内容
  • 可以暂存新文件,提交并推送提交
  • 可以暂存现有文件的修改,提交并推送
  • 应该是可以 Docker 化的(这有什么不可以的)

关于类 TempFolder,我发现它可以被 https://github.com/php-cache/filesystem-adapter 替换

关于类 GitDataRepo,它被以下服务器-客户端架构替代

查看 flysystem-git 适配器仓库的使用说明

安装

composer install

使用方法

查看 tests/GitDataRepoTest.php

使用 SSH 密钥进行测试

  1. 在 github/bitbucket 等处创建一个仓库
  2. 初始化它
mkdir /path/to/your/project
cd /path/to/your/project
git init
git remote add origin https://shadiakiki1986@bitbucket.org/shadiakiki1986/ffa-bdlreports-maps.git
  1. 创建第一个提交 echo "shadiakiki1986" >> contributors.txt git add contributors.txt git commit -m 'Initial commit with contributors' git push -u origin master
2. Generate ssh keys: `ssh-keygen -t rsa -b 4096 -C "shadiakiki1986@gmail.com"`
6. Copy public key to deploy keys setting of repository on github
5. Configure ssh keys
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
  1. 运行测试
export GITDATAREPO_REMOTE=git@github.com:shadiakiki1986/git-data-repo-testDataRepo
composer run-script test

使用 github 凭据进行测试

  1. 在 github 上创建一个仓库
  2. 运行测试
export GITDATAREPO_REMOTE=https://shadiakiki1986:veggiepizza@github.com/shadiakiki1986/git-data-repo-testDataRepo
composer run-script test

关于 bitbucket 的说明

对于 bitbucket 仓库,需要

git config --global user.email "you@example.com"
git config --global user.name "Your Name"
# Omit --global to set the identity only in this repository

开发人员笔记

travis 和 ssh 密钥

  1. 按照上述 使用 SSH 密钥进行测试 部分执行
  2. 使用 travis CLI 加密 ~/.ssh/id_rsa~/.ssh/id_rsa.pub
  • 注意需要将公钥和私钥打包成 tar 文件,因为 travis encrypt-file 无法加密超过一个文件
travis login # enter github credentials
tar cvf ssh_keys.tar -C ~/.ssh id_rsa id_rsa.pub
travis encrypt-file ssh_keys.tar --add
git add ssh_keys.tar.enc

参考资料

phpmd

phpmd 对静态访问类提出了警告。我为相关函数禁用了这些警告。要查看它们,请运行 grep SuppressWarnings * -r --exclude-dir=vendor

phpcs

如果 phpcs 报告了可以自动修复的错误,请运行 vendor/bin/phpcbf src/ 然后提交更改

徽章

来自 badge poser 的徽章