Git Proxy: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (Новая страница: «Категория:Git Категория:Linux Категория:CICD =Простое зеркало для GIT= Простой скрипт для…») |
Sirmax (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
[[Категория:Linux]] |
[[Категория:Linux]] |
||
[[Категория:CICD]] |
[[Категория:CICD]] |
||
+ | [[Категория:GOGS]] |
||
=Простое зеркало для GIT= |
=Простое зеркало для GIT= |
||
Простой скрипт для того что б держать локальную копию - нужен когда, например, плохая связь с гитхабом. |
Простой скрипт для того что б держать локальную копию - нужен когда, например, плохая связь с гитхабом. |
Версия 09:05, 7 октября 2020
Простое зеркало для GIT
Простой скрипт для того что б держать локальную копию - нужен когда, например, плохая связь с гитхабом.
[Unit] Description=Git Cloner After=syslog.target After=network.target After=mariadb.service mysqld.service postgresql.service memcached.service redis.service [Service] #LimitNOFILE=65535 Type=simple User=git Group=git WorkingDirectory=/home/git-clones ExecStart=/home/git-clones/update_repos.sh Restart=always Environment=USER=git HOME=/home/git ProtectSystem=full PrivateDevices=yes PrivateTmp=yes NoNewPrivileges=true [Install] WantedBy=multi-user.target
#!/bin/bash set -x REPOS="repo1.git repo2 git repo3.git" WORKDIR="/home/git-clones" update_repo() { SOURCE_REPO="https://github.com/${REPO_NAME}" DESTINATIOIN_REPO="git@localhost:gogs/$(basename ${REPO_NAME} )" if [ -d ${WORKDIR} ]; then pushd ${WORKDIR} else mkdir -p ${WORKDIR} pushd ${WORKDIR} fi if [ -d $(basename ${REPO_NAME}) ]; then pushd $(basename ${REPO_NAME}) git \ remote \ set-url \ --push \ origin ${DESTINATIOIN_REPO} git \ fetch \ --all git \ push --mirror popd else git clone --mirror ${SOURCE_REPO} fi popd } update_all_repos() { for REPO_NAME in ${REPOS}; do echo ${REPO_NAME} update_repo done } echo "Start" while true; do update_all_repos done