跳至主要內容

環境變數

skillshare 所辨識的所有環境變數。

設定

SKILLSHARE_CONFIG

覆寫設定檔路徑。

SKILLSHARE_CONFIG=~/custom-config.yaml skillshare status

預設值: ~/.config/skillshare/config.yaml


XDG_CONFIG_HOME

依照 XDG Base Directory Specification 覆寫基礎設定目錄。

export XDG_CONFIG_HOME=~/my-config
# skillshare 將會使用 ~/my-config/skillshare/

預設行為:

PlatformDefault
Linux~/.config/skillshare/
macOS~/.config/skillshare/
Windows%AppData%\skillshare\

優先順序: SKILLSHARE_CONFIG > XDG_CONFIG_HOME > 平台預設值。

備註

如果你是在初次設定完成後才設定 XDG_CONFIG_HOME,請手動將現有的 ~/.config/skillshare/ 目錄搬移到新位置。


XDG_DATA_HOME

覆寫資料目錄(backups、trash)。

export XDG_DATA_HOME=~/my-data
# skillshare 將會使用 ~/my-data/skillshare/backups/ 與 ~/my-data/skillshare/trash/

預設值: ~/.local/share/skillshare/


XDG_STATE_HOME

覆寫 state 目錄(操作記錄)。

export XDG_STATE_HOME=~/my-state
# skillshare 將會使用 ~/my-state/skillshare/logs/

預設值: ~/.local/state/skillshare/


XDG_CACHE_HOME

覆寫快取目錄(版本檢查快取、UI dist 快取)。

export XDG_CACHE_HOME=~/my-cache
# skillshare 將會使用 ~/my-cache/skillshare/

預設值: ~/.cache/skillshare/

自動遷移

從 v0.13.0 開始,skillshare 針對 backups、trash 與 logs 遵循 XDG Base Directory Specification。如果你是從舊版本升級,這些目錄會在第一次執行時自動從 ~/.config/skillshare/ 遷移到正確的 XDG 位置。


SKILLSHARE_GITLAB_HOSTS

以逗號分隔的自管 GitLab 主機名稱清單,這些主機會以支援巢狀 subgroup 的方式處理。適合用在沒有設定檔的 CI/CD 環境。

SKILLSHARE_GITLAB_HOSTS=git.company.com,code.internal.io skillshare install git.company.com/team/frontend/ui

當環境變數與設定檔中的 gitlab_hosts 同時設定時,兩者的值會被合併(並去除重複)。無效的項目(包含 scheme、路徑、port,或空白)會被靜默略過。

預設值: 無(只會使用設定檔中的值)


SKILLSHARE_AZURE_HOSTS

以逗號分隔的自架 Azure DevOps Server 主機名稱清單。

SKILLSHARE_AZURE_HOSTS=azuredevops.mycompany.com,tfs.internal.io

當環境變數與設定檔中的 azure_hosts 同時設定時,兩者的值會被合併(並去除重複)。環境變數中的無效項目會被靜默略過。

預設值: (無)

SKILLSHARE_GITEA_HOSTS

以逗號分隔的自架 Gitea 主機名稱清單。名稱中含有 gitea 的主機不需要額外設定即可被偵測到。

SKILLSHARE_GITEA_HOSTS=git.company.com,code.internal.io

會與設定檔中的 gitea_hosts 合併。

預設值: (無)

SKILLSHARE_CNB_HOSTS

以逗號分隔的自架 CNB 主機名稱清單。cnb.cool 不需要額外設定即可被偵測到。

SKILLSHARE_CNB_HOSTS=cnb.company.com

會與設定檔中的 cnb_hosts 合併。

預設值: (無)


Web UI

SKILLSHARE_UI_BASE_PATH

設定在 reverse proxy 後方提供 web dashboard 服務時所使用的 URL 子路徑。

SKILLSHARE_UI_BASE_PATH=/skillshare skillshare ui --host 0.0.0.0 --no-open

等同於 --base-path /skillshare。若兩者同時設定,以 flag 為準。

預設值: 無(dashboard 會在根路徑 / 提供服務)

參見 Reverse Proxy,取得 Nginx 與 Caddy 的範例。


GitHub API

GITHUB_TOKEN

GitHub 個人存取權杖(personal access token)。

用途:

  • GitHub API 請求(skillshare searchskillshare upgrade、版本檢查)
  • Git clone 驗證 — 透過 HTTPS 安裝私有 repo 時會自動注入

建立權杖:

  1. 前往 https://github.com/settings/tokens
  2. 產生新的 token(classic)
  3. 範圍:私有 repo 選 repo,公開 repo 不需要
  4. 複製該 token

官方文件:Managing your personal access tokens

用法:

export GITHUB_TOKEN=ghp_your_token_here
skillshare install https://github.com/org/private-skills.git --track

Windows:

# 目前的 session
$env:GITHUB_TOKEN = "ghp_your_token"

# 永久設定
[Environment]::SetEnvironmentVariable("GITHUB_TOKEN", "ghp_your_token", "User")

GH_TOKEN

另一個 GitHub token 變數。由 GitHub CLI(gh 使用,skillshare 也會將它視為備援來源辨識。

Token 解析順序: GITHUB_TOKENGH_TOKENgh auth token

如果你已經在使用 gh,並透過 gh auth login 完成驗證,skillshare 會自動取得該 token — 不需要額外設定環境變數。

export GH_TOKEN=ghp_your_token_here
skillshare search "react patterns"

Git 驗證

這些變數可讓私有 repo 啟用 HTTPS 驗證。設定後,skillshare 會在 installupdate 期間自動注入 token — 不需要修改 URL。

參見 Private Repositories,取得細節與 CI/CD 範例。

GITLAB_TOKEN

GitLab 個人存取權杖或 CI job token。用於以 HTTPS 方式 clone GitLab 上的私有 repo。

建立權杖:

  1. 前往 https://gitlab.com/-/user_settings/personal_access_tokens
  2. 新增權杖
  3. 範圍:read_repository(僅 pull)或 read_repository + write_repository(push 與 pull)
  4. 複製該 token(前綴 glpat-

官方文件:Token overview

Token 類型

只有 Personal Access Tokenglpat-)與 Project/Group Access Token 能用於 git 操作。Feed Token(glft-沒有 git 存取權限。

export GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx
skillshare install https://gitlab.com/org/skills.git --track

Windows:

$env:GITLAB_TOKEN = "glpat-xxxxxxxxxxxxxxxxxxxx"

BITBUCKET_TOKEN

Bitbucket repository access token,或 app password。用於以 HTTPS 方式 clone Bitbucket 上的私有 repo。

建立權杖(repository access token):

  1. 前往 Repository → Settings → Access tokens
  2. 建立權杖,權限選 Read(僅 pull)或 Read + Write(push 與 pull)
  3. 複製該 token — 會自動使用 x-token-auth(不需要使用者名稱)

建立權杖(app password):

  1. 前往 https://bitbucket.org/account/settings/app-passwords/
  2. 建立 app password,權限選 Repositories: Read(僅 pull)或 Repositories: Read + Write(push 與 pull)
  3. 同時設定 BITBUCKET_USERNAME(或將它包含在 URL 中,例如 https://<username>@bitbucket.org/...

官方文件:Access tokens

export BITBUCKET_USERNAME=your_bitbucket_username
export BITBUCKET_TOKEN=your_app_password
skillshare install https://bitbucket.org/team/skills.git --track

Windows:

$env:BITBUCKET_USERNAME = "your_bitbucket_username"
$env:BITBUCKET_TOKEN = "your_app_password"

BITBUCKET_USERNAME

BITBUCKET_TOKEN 是 app password 時,搭配使用的 Bitbucket 使用者名稱。

export BITBUCKET_USERNAME=your_bitbucket_username
export BITBUCKET_TOKEN=your_app_password
skillshare install https://bitbucket.org/team/skills.git --track

AZURE_DEVOPS_TOKEN

Azure DevOps Personal Access Token(PAT)。用於以 HTTPS 方式 clone Azure DevOps 上的私有 repo。

建立權杖:

  1. 前往 https://dev.azure.com/{org}/_usersSettings/tokens
  2. 選擇「+ New Token」
  3. 範圍:Code → Read(僅 pull)或 Code → Read & Write(push 與 pull)
  4. 複製該 token(84 字元、帶有 AZDO 簽章的字串)

官方文件:Use Personal Access Tokens

export AZURE_DEVOPS_TOKEN=your_pat_here
skillshare install https://dev.azure.com/org/project/_git/repo --track

Windows:

$env:AZURE_DEVOPS_TOKEN = "your_pat_here"

GITEA_TOKEN

Gitea 存取權杖。用於以 HTTPS 方式 clone gitea.com 與自架 Gitea 上的私有 repo,以及在安裝子目錄而不進行完整 clone 時使用 Gitea Contents API。

建立權杖:

  1. 在 Gitea 中,前往 Settings → Applications
  2. 產生新的 token
  3. 權限:repository: Read(僅 pull)或 repository: Read and Write(push 與 pull)
export GITEA_TOKEN=your_token
skillshare install https://gitea.com/org/skills.git --track

Windows:

$env:GITEA_TOKEN = "your_token"

此 token 只會傳送給你安裝來源的主機。若自架的執行個體位於名稱中不含 gitea 的網域,需要設定 gitea_hosts,否則會改用 SKILLSHARE_GIT_TOKEN

CNB_TOKEN

對 repository 具有讀取權限的 CNB 存取權杖。用於以 HTTPS 方式 clone cnb.cool 與自架 CNB 上的私有 repo。

export CNB_TOKEN=your_token
skillshare install https://cnb.cool/org/skills --track

Windows:

$env:CNB_TOKEN = "your_token"

部署在其他網域的私有實例需要設定 cnb_hosts

SKILLSHARE_GIT_TOKEN

適用於任何 HTTPS git 主機的通用備援 token。當沒有設定特定平台的 token 時使用。

export SKILLSHARE_GIT_TOKEN=your_token
skillshare install https://git.example.com/org/skills.git --track

Windows:

$env:SKILLSHARE_GIT_TOKEN = "your_token"

Token 優先順序: 特定平台的 token(GITHUB_TOKENGITLAB_TOKENBITBUCKET_TOKENAZURE_DEVOPS_TOKENGITEA_TOKENCNB_TOKEN)> SKILLSHARE_GIT_TOKEN


Git SSL / TLS

這些標準 Git 環境變數會被傳遞給所有 git 操作。對於使用自簽憑證或內部 CA 的自架 Git 伺服器(GitLab、Gitea 等)非常實用。

GIT_SSL_CAINFO

自訂 CA 憑證組合檔的路徑。當你的自架 Git 伺服器使用由內部 CA 簽署的憑證時使用此變數。

export GIT_SSL_CAINFO=/path/to/ca-bundle.crt
skillshare install https://gitlab.internal.company.com/team/skills.git --track

GIT_SSL_NO_VERIFY

完全停用 SSL 憑證驗證。僅在無法設定 CA 憑證時作為最後手段使用。

安全風險

停用 SSL 驗證會讓連線容易受到中間人攻擊(man-in-the-middle)。建議改用搭配正確 CA 憑證組合檔的 GIT_SSL_CAINFO,或改用 SSH。

GIT_SSL_NO_VERIFY=true skillshare install https://gitlab.internal.company.com/team/skills.git --track

替代方案:改用 SSH 以完全避開 SSL:

skillshare install [email protected]:team/skills.git --track

測試

SKILLSHARE_TEST_BINARY

覆寫 integration tests 使用的 CLI 執行檔路徑。

SKILLSHARE_TEST_BINARY=/path/to/skillshare go test ./tests/integration

預設值: 專案根目錄下的 bin/skillshare


使用範例

暫時覆寫

# 單一指令
SKILLSHARE_CONFIG=/tmp/test-config.yaml skillshare status

# 多個指令
export SKILLSHARE_CONFIG=/tmp/test-config.yaml
skillshare status
skillshare list
unset SKILLSHARE_CONFIG

永久設定(macOS/Linux)

加入 ~/.bashrc~/.zshrc

export GITHUB_TOKEN="ghp_your_token_here"

永久設定(Windows)

[Environment]::SetEnvironmentVariable("GITHUB_TOKEN", "ghp_your_token", "User")

摘要

VariablePurposeDefault
SKILLSHARE_CONFIG設定檔路徑~/.config/skillshare/config.yaml
SKILLSHARE_UI_BASE_PATHReverse proxy 用的 Web UI 子路徑
SKILLSHARE_GITLAB_HOSTS自訂 GitLab 主機名稱(逗號分隔)
SKILLSHARE_AZURE_HOSTS自訂 Azure DevOps Server 主機名稱(逗號分隔)
SKILLSHARE_GITEA_HOSTS自訂 Gitea 主機名稱(逗號分隔)
SKILLSHARE_CNB_HOSTS自訂 CNB 主機名稱(逗號分隔)
XDG_CONFIG_HOME基礎設定目錄~/.config(Linux/macOS)、%AppData%(Windows)
XDG_DATA_HOME資料目錄(backups、trash)~/.local/share
XDG_STATE_HOMEState 目錄(logs)~/.local/state
XDG_CACHE_HOME快取目錄(版本檢查、UI)~/.cache
GITHUB_TOKENGitHub API + git clone 驗證
GH_TOKENGitHub API(GITHUB_TOKEN 的備援)
GITLAB_TOKENGitLab git clone 驗證
BITBUCKET_TOKENBitbucket git clone 驗證
BITBUCKET_USERNAMEapp password 驗證用的 Bitbucket 使用者名稱
AZURE_DEVOPS_TOKENAzure DevOps git clone 驗證
GITEA_TOKENGitea git clone + Contents API 驗證
CNB_TOKENCNB git clone + contents API 驗證
SKILLSHARE_GIT_TOKEN通用 git clone 驗證(備援)
GIT_SSL_CAINFO自訂 CA 憑證組合檔路徑系統預設值
GIT_SSL_NO_VERIFY停用 SSL 憑證驗證false
SKILLSHARE_TEST_BINARY測試執行檔路徑bin/skillshare

相關文件