shadiakiki1986/git-data-repo 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

shadiakiki1986/git-data-repo

Composer 安装命令:

composer require shadiakiki1986/git-data-repo

包简介

Manage saving/loading data from php to a git data repository

README 文档

README

PHP library to manage the storage of key-value pairs in a git repository.

Packagist: Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock available

Travis CI: Build Status

Code Climate: Code Climate Test Coverage Issue Count

DEPRECATED

I notice often that the chown in composer.json post-install is a problem when I use the code from web with www-data user or from shell in docker with root user. This brings up the need for a separate server that is running with its own "stable" filesystem and file permissions. These would at least be independent of developments in the git-data-repo library, as well as composer install or composer update or whatever.

This SO answer proposes Orion Git API, which unfortunately is not open-source. Another answer on the same SO question noted that korya/node-git-rest-api was incomplete, but it met all my requirements for the server-side:

  • can clone private repositories by accepting credentials
  • can fetch the contents of a particular file
  • can stage a new file, commit it, and push the commit
  • can stage modifications to an existing file, commit, and push
  • should be dockerifiable (what isnt)

About the class TempFolder, I found that it is replaceable by https://github.com/php-cache/filesystem-adapter

About the class GitDataRepo, it is replaced by the following server-client architecture

Check the flysystem-git adapter repo for usage

Installing

composer install

Usage

Check tests/GitDataRepoTest.php

Testing Using SSH keys

  1. Create a repository on github/bitbucket/etc.
  2. initialize it
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. make first commit 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. Run tests
export GITDATAREPO_REMOTE=git@github.com:shadiakiki1986/git-data-repo-testDataRepo
composer run-script test

Testing Using github credentials

  1. Create a repository on github
  2. Run tests
export GITDATAREPO_REMOTE=https://shadiakiki1986:veggiepizza@github.com/shadiakiki1986/git-data-repo-testDataRepo
composer run-script test

Note on bitbucket

For bitbucket repos, one needs

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

Developer notes

travis with ssh keys

  1. Follow section above on testing using ssh keys
  2. Encrypt ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub using travis CLI
  • Note the need to tar the public and private keys because travis encrypt-file cannot encrypt more than one 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

References

phpmd

phpmd issued warnings about static access to classes. I disabled these warnings for the functions in subject. To see them, check grep SuppressWarnings * -r --exclude-dir=vendor

phpcs

If phpcs reports errors that can be fixed automatically, run vendor/bin/phpcbf src/ and then commit the changes

badges

Badges from badge poser

统计信息

  • 总下载量: 267
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2016-06-30

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固