shadiakiki1986 / git-data-repo
管理从PHP到git数据仓库的保存/加载数据
Requires
- coyl/git: *
- monolog/monolog: ^1.19
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- jakub-onderka/php-parallel-lint: ^0.9
- phpmd/phpmd: ^2.4
- phpunit/phpunit: *
- squizlabs/php_codesniffer: ^2.6
This package is auto-updated.
Last update: 2024-09-27 02:31:34 UTC
README
PHP库,用于管理在git仓库中存储键值对。
已弃用
我经常注意到,当我在使用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,它被以下服务器-客户端架构替代
- 服务器: https://github.com/shadiakiki1986/docker-node-git-rest-api
- 客户端: https://github.com/shadiakiki1986/git-rest-api-client-php
- flysystem-git 适配器: https://github.com/shadiakiki1986/flysystem-git
查看 flysystem-git 适配器仓库的使用说明
安装
composer install
使用方法
使用 SSH 密钥进行测试
- 在 github/bitbucket 等处创建一个仓库
- 初始化它
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
- 创建第一个提交 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
- 运行测试
export GITDATAREPO_REMOTE=git@github.com:shadiakiki1986/git-data-repo-testDataRepo composer run-script test
使用 github 凭据进行测试
- 在 github 上创建一个仓库
- 运行测试
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 密钥
- 按照上述
使用 SSH 密钥进行测试部分执行 - 使用 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
参考资料
- https://docs.travis-ci.com/user/encrypting-files/
- https://grosser.it/2014/03/01/allowing-travis-to-git-clone-by-adding-a-public-ssh-key/
- https://gist.github.com/lukewpatterson/4242707
- https://docs.travis-ci.com/user/private-dependencies/
phpmd
phpmd 对静态访问类提出了警告。我为相关函数禁用了这些警告。要查看它们,请运行 grep SuppressWarnings * -r --exclude-dir=vendor
phpcs
如果 phpcs 报告了可以自动修复的错误,请运行 vendor/bin/phpcbf src/ 然后提交更改
徽章
来自 badge poser 的徽章