aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mirror-to-github/mirror-to-github.sh17
-rw-r--r--mirror-to-github/mirror-to-github.yaml12
2 files changed, 29 insertions, 0 deletions
diff --git a/mirror-to-github/mirror-to-github.sh b/mirror-to-github/mirror-to-github.sh
new file mode 100644
index 0000000..f831f0c
--- /dev/null
+++ b/mirror-to-github/mirror-to-github.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# Input environment:
+# - REPO: The repository path part of the url to mirror, for example: adyxax/www
+# Requires a github identity!
+
+WORKDIR="/tmp/$(basename ${REPO})"
+
+cleanup() {
+ rm -rf "${WORKDIR}"
+}
+
+trap cleanup EXIT
+
+git clone -q "https://git.adyxax.org/${REPO}" "${WORKDIR}"
+(cd ${WORKDIR}; git remote add github https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/${REPO}; git push github --mirror)
diff --git a/mirror-to-github/mirror-to-github.yaml b/mirror-to-github/mirror-to-github.yaml
new file mode 100644
index 0000000..d84ed98
--- /dev/null
+++ b/mirror-to-github/mirror-to-github.yaml
@@ -0,0 +1,12 @@
+name: "mirror-to-github"
+steps:
+ - label: mirror
+ script:
+ path: "mirror-to-github.sh"
+identities:
+ - github-mirror
+parameters:
+- name: repo
+ type: string
+ environment: REPO
+ default: "adyxax/non-existent"