-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
200 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
name: 'Mirror' | ||
|
||
on: | ||
- push | ||
|
||
env: | ||
OWNER: '${{ github.repository_owner }}' | ||
USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0' | ||
|
||
jobs: | ||
|
||
# ------------------------------------------------------------------------------------------------------------------ # | ||
# GitLab. | ||
# ------------------------------------------------------------------------------------------------------------------ # | ||
|
||
mirror_gitlab: | ||
runs-on: ubuntu-latest | ||
name: 'GitLab' | ||
env: | ||
DOMAIN: 'https://gitlab.com' | ||
VERSION: 'v4' | ||
NSID: '69852292' | ||
steps: | ||
- name: 'Get repository name' | ||
shell: bash | ||
run: | | ||
echo "REPO_NAME=$( echo '${{ github.repository }}' | awk -F '/' '{ print $2 }' )" >> $GITHUB_ENV | ||
- name: 'Create repository' | ||
shell: bash | ||
run: | | ||
http="$( curl -s -o '/dev/null' -I -w '%{http_code}' -A '${{ env.USER_AGENT }}' '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}' )" | ||
if [[ "${http}" -ne 200 ]]; then | ||
curl -X POST \ | ||
-H 'Authorization: Bearer ${{ secrets.BOT_MIRROR_TOKEN_GITLAB }}' \ | ||
-H 'Content-Type: application/json' \ | ||
-A '${{ env.USER_AGENT }}' \ | ||
'${{ env.DOMAIN }}/api/${{ env.VERSION }}/projects/' \ | ||
-d '{"name":"${{ env.REPO_NAME }}","path":"${{ env.REPO_NAME }}","namespace_id":"${{ env.NSID }}","visibility":"public"}' | ||
fi | ||
- name: 'Mirror repository' | ||
uses: ghastore/github-mirror@main | ||
with: | ||
src_repo: '${{ github.server_url }}/${{ github.repository }}.git' | ||
src_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
src_token: '${{ secrets.BOT_MIRROR_TOKEN_GITHUB }}' | ||
dst_repo: '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}.git' | ||
dst_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
dst_token: '${{ secrets.BOT_MIRROR_TOKEN_GITLAB }}' | ||
|
||
# ------------------------------------------------------------------------------------------------------------------ # | ||
# Codeberg. | ||
# ------------------------------------------------------------------------------------------------------------------ # | ||
|
||
mirror_codeberg: | ||
runs-on: ubuntu-latest | ||
name: 'Codeberg' | ||
env: | ||
DOMAIN: 'https://codeberg.org' | ||
VERSION: 'v1' | ||
steps: | ||
- name: 'Get repository name' | ||
shell: bash | ||
run: | | ||
echo "REPO_NAME=$( echo '${{ github.repository }}' | awk -F '/' '{ print $2 }' )" >> $GITHUB_ENV | ||
- name: 'Create repository' | ||
shell: bash | ||
run: | | ||
http="$( curl -s -o '/dev/null' -I -w '%{http_code}' -A '${{ env.USER_AGENT }}' '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}' )" | ||
if [[ "${http}" -ne 200 ]]; then | ||
curl -X POST \ | ||
-H 'Authorization: token ${{ secrets.BOT_MIRROR_TOKEN_CODEBERG }}' \ | ||
-H 'Accept: application/json' \ | ||
-H 'Content-Type: application/json' \ | ||
-A '${{ env.USER_AGENT }}' \ | ||
'${{ env.DOMAIN }}/api/${{ env.VERSION }}/orgs/${{ env.OWNER }}/repos' \ | ||
-d '{"name":"${{ env.REPO_NAME }}"}' | ||
fi | ||
- name: 'Mirror repository' | ||
uses: ghastore/github-mirror@main | ||
with: | ||
src_repo: '${{ github.server_url }}/${{ github.repository }}.git' | ||
src_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
src_token: '${{ secrets.BOT_MIRROR_TOKEN_GITHUB }}' | ||
dst_repo: '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}.git' | ||
dst_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
dst_token: '${{ secrets.BOT_MIRROR_TOKEN_CODEBERG }}' | ||
|
||
# ------------------------------------------------------------------------------------------------------------------ # | ||
# MosHub. | ||
# ------------------------------------------------------------------------------------------------------------------ # | ||
|
||
mirror_moshub: | ||
runs-on: ubuntu-latest | ||
name: 'MosHub' | ||
env: | ||
DOMAIN: 'https://hub.mos.ru' | ||
VERSION: 'v4' | ||
NSID: '38795' | ||
steps: | ||
- name: 'Get repository name' | ||
shell: bash | ||
run: | | ||
echo "REPO_NAME=$( echo '${{ github.repository }}' | awk -F '/' '{ print $2 }' )" >> $GITHUB_ENV | ||
- name: 'Create repository' | ||
shell: bash | ||
run: | | ||
http="$( curl -s -o '/dev/null' -I -w '%{http_code}' -A '${{ env.USER_AGENT }}' '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}' )" | ||
if [[ "${http}" -ne 200 ]]; then | ||
curl -X POST \ | ||
-H 'Authorization: Bearer ${{ secrets.BOT_MIRROR_TOKEN_MOSHUB }}' \ | ||
-H 'Content-Type: application/json' \ | ||
-A '${{ env.USER_AGENT }}' \ | ||
'${{ env.DOMAIN }}/api/${{ env.VERSION }}/projects/' \ | ||
-d '{"name":"${{ env.REPO_NAME }}","path":"${{ env.REPO_NAME }}","namespace_id":"${{ env.NSID }}","visibility":"public"}' | ||
fi | ||
- name: 'Mirror repository' | ||
uses: ghastore/github-mirror@main | ||
with: | ||
src_repo: '${{ github.server_url }}/${{ github.repository }}.git' | ||
src_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
src_token: '${{ secrets.BOT_MIRROR_TOKEN_GITHUB }}' | ||
dst_repo: '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}.git' | ||
dst_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
dst_token: '${{ secrets.BOT_MIRROR_TOKEN_MOSHUB }}' | ||
|
||
# ------------------------------------------------------------------------------------------------------------------ # | ||
# GIT.ORG.RU. | ||
# ------------------------------------------------------------------------------------------------------------------ # | ||
|
||
mirror_gitorgru: | ||
runs-on: ubuntu-latest | ||
name: 'GIT.ORG.RU' | ||
env: | ||
DOMAIN: 'https://git.org.ru' | ||
VERSION: 'v1' | ||
steps: | ||
- name: 'Get repository name' | ||
shell: bash | ||
run: | | ||
echo "REPO_NAME=$( echo '${{ github.repository }}' | awk -F '/' '{ print $2 }' )" >> $GITHUB_ENV | ||
- name: 'Create repository' | ||
shell: bash | ||
run: | | ||
http="$( curl -s -o '/dev/null' -I -w '%{http_code}' -A '${{ env.USER_AGENT }}' '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}' )" | ||
if [[ "${http}" -ne 200 ]]; then | ||
curl -X POST \ | ||
-H 'Authorization: token ${{ secrets.BOT_MIRROR_TOKEN_GITORGRU }}' \ | ||
-H 'Accept: application/json' \ | ||
-H 'Content-Type: application/json' \ | ||
-A '${{ env.USER_AGENT }}' \ | ||
'${{ env.DOMAIN }}/api/${{ env.VERSION }}/orgs/${{ env.OWNER }}/repos' \ | ||
-d '{"name":"${{ env.REPO_NAME }}"}' | ||
fi | ||
- name: 'Mirror repository' | ||
uses: ghastore/github-mirror@main | ||
with: | ||
src_repo: '${{ github.server_url }}/${{ github.repository }}.git' | ||
src_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
src_token: '${{ secrets.BOT_MIRROR_TOKEN_GITHUB }}' | ||
dst_repo: '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}.git' | ||
dst_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
dst_token: '${{ secrets.BOT_MIRROR_TOKEN_GITORGRU }}' | ||
|
||
# ------------------------------------------------------------------------------------------------------------------ # | ||
# Disroot. | ||
# ------------------------------------------------------------------------------------------------------------------ # | ||
|
||
mirror_disroot: | ||
runs-on: ubuntu-latest | ||
name: 'Disroot' | ||
env: | ||
DOMAIN: 'https://git.disroot.org' | ||
VERSION: 'v1' | ||
steps: | ||
- name: 'Get repository name' | ||
shell: bash | ||
run: | | ||
echo "REPO_NAME=$( echo '${{ github.repository }}' | awk -F '/' '{ print $2 }' )" >> $GITHUB_ENV | ||
- name: 'Create repository' | ||
shell: bash | ||
run: | | ||
http="$( curl -s -o '/dev/null' -I -w '%{http_code}' -A '${{ env.USER_AGENT }}' '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}' )" | ||
if [[ "${http}" -ne 200 ]]; then | ||
curl -X POST \ | ||
-H 'Authorization: token ${{ secrets.BOT_MIRROR_TOKEN_DISROOT }}' \ | ||
-H 'Accept: application/json' \ | ||
-H 'Content-Type: application/json' \ | ||
-A '${{ env.USER_AGENT }}' \ | ||
'${{ env.DOMAIN }}/api/${{ env.VERSION }}/orgs/${{ env.OWNER }}/repos' \ | ||
-d '{"name":"${{ env.REPO_NAME }}"}' | ||
fi | ||
- name: 'Mirror repository' | ||
uses: ghastore/github-mirror@main | ||
with: | ||
src_repo: '${{ github.server_url }}/${{ github.repository }}.git' | ||
src_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
src_token: '${{ secrets.BOT_MIRROR_TOKEN_GITHUB }}' | ||
dst_repo: '${{ env.DOMAIN }}/${{ env.OWNER }}/${{ env.REPO_NAME }}.git' | ||
dst_user: '${{ secrets.BOT_MIRROR_NAME }}' | ||
dst_token: '${{ secrets.BOT_MIRROR_TOKEN_DISROOT }}' |