aboutsummaryrefslogtreecommitdiff
path: root/blog/2021-03-19-clone-github-repos.org
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2024-01-08 20:11:17 -0600
committerChristian Cleberg <hello@cleberg.net>2024-01-08 20:11:17 -0600
commit25945b8fead989cca09a23983623b63ce36dcc0c (patch)
tree0dfc869ce8b028e04ce9da196af08779780915ce /blog/2021-03-19-clone-github-repos.org
parent22b526be60bf4257c2a1d58a5fad59cf6b044375 (diff)
downloadcleberg.net-25945b8fead989cca09a23983623b63ce36dcc0c.tar.gz
cleberg.net-25945b8fead989cca09a23983623b63ce36dcc0c.tar.bz2
cleberg.net-25945b8fead989cca09a23983623b63ce36dcc0c.zip
feat: total re-write from Emacs org-mode to Zola markdown
Diffstat (limited to 'blog/2021-03-19-clone-github-repos.org')
-rw-r--r--blog/2021-03-19-clone-github-repos.org155
1 files changed, 0 insertions, 155 deletions
diff --git a/blog/2021-03-19-clone-github-repos.org b/blog/2021-03-19-clone-github-repos.org
deleted file mode 100644
index edd8fda..0000000
--- a/blog/2021-03-19-clone-github-repos.org
+++ /dev/null
@@ -1,155 +0,0 @@
-#+title: How to Clone All Repositories from a GitHub or Sourcehut Account
-#+date: 2021-03-19
-
-** Cloning from GitHub
-:PROPERTIES:
-:CUSTOM_ID: cloning-from-github
-:END:
-If you're like me and use a lot of different devices (and sometimes
-decide to just wipe your device and start with a new OS), you probably
-know the pain of cloning all your old code repositories down to your
-local file system.
-
-If you're using GitHub, you can easily clone all of your code back down
-in just seconds. First, create a bash script. I do so by opening a new
-file in =nano=, but you can use =gedit=, =vim=, or something else:
-
-#+begin_src sh
-nano clone_github_repos.sh
-#+end_src
-
-Next, paste in the following information. Note that you can replace the
-word =users= in the first line with =orgs= and type an organization's
-name instead of a user's name.
-
-#+begin_src sh
-CNTX=users; NAME=YOUR-USERNAME; PAGE=1
-curl "https://api.github.com/$CNTX/$NAME/repos?page=$PAGE&per_page=100" |
- grep -e 'git_url*' |
- cut -d \" -f 4 |
- xargs -L1 git clone
-#+end_src
-
-Finally, save the bash script and make it executable.
-
-#+begin_src sh
-chmod a+x clone_github_repos.sh
-#+end_src
-
-Now you can run the script and should see the cloning process begin.
-
-#+begin_src sh
-./clone_github_repos.sh
-#+end_src
-
-** Cloning from Sourcehut
-:PROPERTIES:
-:CUSTOM_ID: cloning-from-sourcehut
-:END:
-I haven't fully figured out how to directly incorporate Sourcehut's
-GraphQL API into a bash script yet, so this one will take two steps.
-
-First, log-in to Sourcehut and go to their
-[[https://git.sr.ht/graphql][GraphQL playground for Git]]. Next, paste
-the following query into the left box:
-
-#+begin_src sh
-query {
- me {
- canonicalName
- repositories() {
- cursor
- results {
- name
- }
- }
- }
-}
-#+end_src
-
-The output on the right side will give you an object of all your
-repositories. Just grab that text and remove all the characters such as
-quotation marks and curly brackets. You will need a single-line list of
-space-separated values for the next step.
-
-Now let's create the bash script:
-
-#+begin_src sh
-nano clone_sourcehut_repos.sh
-#+end_src
-
-Next, paste the following bash script in with the list of repositories
-you obtained above and replace =your-username= with your username.
-
-Note that this uses the SSH-based Git cloning method
-(e.g. =git@git...=), so you'll need to ensure you have set up Sourcehut
-with your SSH key.
-
-#+begin_src sh
-repos=(repo1 repo2 repo3)
-
-# List all sub-directories in the current directory
-for repo in "${repos[@]}"
-do
- # Clone
- git clone git@git.sr.ht:~your-username/$repo
-done
-#+end_src
-
-Finally, save the bash script and make it executable.
-
-#+begin_src sh
-chmod a+x clone_sourcehut_repos.sh
-#+end_src
-
-Now you can run the script and should see the cloning process begin.
-
-#+begin_src sh
-./clone_sourcehut_repos.sh
-#+end_src
-
-** Moving Repositories to a New Host
-:PROPERTIES:
-:CUSTOM_ID: moving-repositories-to-a-new-host
-:END:
-Now that you have all of your code repositories cloned to your local
-computer, you may want to change the remote host (e.g., moving from
-GitHub to GitLab). To do this, let's create another bash script:
-
-#+begin_src sh
-nano change_remote_urls.sh
-#+end_src
-
-Past the following information and be sure to change the URL information
-to whichever host you are moving to. For this example, I am looping
-through all of my cloned GitHub directories and changing them to
-Sourcehut (e.g. =<YOUR_NEW_REMOTE_URL>= -> =git@git.sr.ht:~myusername=).
-
-#+begin_src sh
-# List all sub-directories in the current directory
-for dir in */
-do
- # Remove the trailing "/"
- dir=${dir%*/}
- # Enter sub-directory
- cd $dir
- # Change remote Git URL
- git remote set-url origin <YOUR_NEW_REMOTE_URL>/"${dir##*/}"
- # Push code to new remote
- git push
- # Go back to main directory
- cd ..
-done
-#+end_src
-
-Finally, save the bash script and make it executable.
-
-#+begin_src sh
-chmod a+x change_remote_urls.sh
-#+end_src
-
-Now you can run the script and should see the cloning process begin.
-
-#+begin_src sh
-./change_remote_urls.sh
-#+end_src