Featured image of post 用 access key 免登入拉取與推送 GitLab 的專案

用 access key 免登入拉取與推送 GitLab 的專案

📌 Introduction

希望可以將 Quip 備份下來的檔案自動、定期上傳到 GitLab 上。但是遇到公司的 GitLab 需要兩階段登入驗證,經過上網尋找解法後,得到用 “access token” 的方法,其實也可以使用 SSH Key,但是公司的 GitLab 好像沒有開放這個功能。

作法

A. 設定 “access tokens“

1. 前往 “access tokens” 的設定頁面

網址:https://gitlab.com/-/user_settings/personal_access_tokens

2. 新增 token

image.png

3. 允許讀取與寫入專案的權限

image.png

4. 複製 token

image.png

B. 拉取 GitLab 上的專案

git clone https://oauth2:<YOUR_ACCESS_TOKEN>@gitlab.com/your_username/your_project.git

範例:

git clone https://oauth2:[email protected]/your_username/your_project.git

C. 推送到 GitLab 上

git push origin <branch_name>

補充

這邊補充說明由 ChatGPT 產生的自動備份腳本:

#!/bin/bash

# 設定要備份的資料夾的路徑
PROJECT_DIR="folder"
cd $PROJECT_DIR || { echo "資料夾不存在!"; exit 1; }

# 取得當前的時間作為推送的描述
DATE=$(date +"%Y-%m-%d %H:%M:%S")

# 切换到 'test-branch' 分支(如果不存在則创建立)
git checkout test-branch 2>/dev/null || git checkout -b test-branch

# 下載最新程式碼,防止版本內容衝突
git pull origin test-branch --rebase

# 新增所有內容
git add .

# 上傳更改
if git diff --staged --quiet; then
    echo "没有要上傳的更改。"
else
    git commit -m "Auto-backup: $DATE"
    git push origin test-branch
    echo "備份成功上傳到 'test-branch' 分支,時間: $DATE"
fi

結論

學到如何用 Access Token 來拉取及推送專案到 GitLab 上。

 

Licensed under CC BY-NC-SA 4.0
Last updated on Jan 20, 2025 15:30 CST