Download the PHP package shadiakiki1986/git-data-repo without Composer
On this page you can find all versions of the php package shadiakiki1986/git-data-repo. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download shadiakiki1986/git-data-repo
More information about shadiakiki1986/git-data-repo
Files in shadiakiki1986/git-data-repo
Package git-data-repo
Short Description Manage saving/loading data from php to a git data repository
License
Informations about the package git-data-repo
git-data-repo
PHP library to manage the storage of key-value pairs in a git repository.
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
- server: https://github.com/shadiakiki1986/docker-node-git-rest-api
- client: https://github.com/shadiakiki1986/git-rest-api-client-php
- flysystem-git adapter: https://github.com/shadiakiki1986/flysystem-git
Check the flysystem-git adapter repo for usage
Installing
composer install
Usage
Check tests/GitDataRepoTest.php
Testing Using SSH keys
- Create a repository on github/bitbucket/etc.
-
initialize it
- make first commit
echo "shadiakiki1986" >> contributors.txt
git add contributors.txt
git commit -m 'Initial commit with contributors'
git push -u origin master
bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
bash
export [email protected]:shadiakiki1986/git-data-repo-testDataRepo
composer run-script test
bash
export GITDATAREPO_REMOTE=https://shadiakiki1986:[email protected]/shadiakiki1986/git-data-repo-testDataRepo
composer run-script test
bash
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
Omit --global to set the identity only in this repository
bash 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 * 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
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