Lewati ke konten utama

Credential Examples

Credential Examples

Stable

Setup GitHub atau GitLab tanpa menyalin secrets ke proyek.

Commandcusty configure credentials

Category

Configuration

Quick Command

custy configure credentials COMMAND [OPTIONS]

File-backed GitHub token​

Terminal
bash
custy configure credentials set --provider github --source file

Hidden prompt menyimpan token di external credential root. Mount directory itu secara read-only ke container:

Buat File dari Windows CMD melalui Docker

Credential mount harus writable saat set membuat atau mengganti external file:

CMD
bash
docker run --rm -it -v "%cd%:/workspace" -v "%LOCALAPPDATA%Custycredentials:/run/secrets/custy" -w /workspace custy-prod:latest --no-banner configure credentials set --provider github

Host file yang dihasilkan adalah %LOCALAPPDATA%\Custy\credentials\github.token. Di dalam running container, file yang sama adalah /run/secrets/custy/github.token.

Setelah setup, mount directory secara read-only untuk status, test, dan push:

PowerShell
bash
docker run --rm -it -v "${PWD}:/workspace" -v "$env:LOCALAPPDATA/Custy/credentials:/run/secrets/custy:ro" -w /workspace custy-prod:latest push
CMD
bash
docker run --rm -it -v "%cd%:/workspace" -v "%LOCALAPPDATA%Custycredentials:/run/secrets/custy:ro" -w /workspace custy-prod:latest push

Periksa Mounted Source dari Windows CMD

CMD
bash
docker run --rm -it -v "%cd%:/workspace" -v "%LOCALAPPDATA%Custycredentials:/run/secrets/custy:ro" -w /workspace custy-prod:latest --no-banner configure credentials status

docker run --rm -it -v "%cd%:/workspace" -v "%LOCALAPPDATA%Custycredentials:/run/secrets/custy:ro" -w /workspace custy-prod:latest --no-banner configure credentials test --remote origin

Token file: valid sudah cukup. Environment: missing adalah expected ketika file source digunakan dan CUSTY_GITHUB_TOKEN tidak diberikan.

Environment-backed GitLab token

Terminal
bash
custy configure credentials set --provider gitlab --source environment --token-env CUSTY_GITLAB_TOKEN

docker run --rm -it -e CUSTY_GITLAB_TOKEN -v "${PWD}:/workspace" -w /workspace custy-prod:latest push

Set variable melalui calling shell atau secret-aware CI/Docker runtime. Hindari literal token value dalam committed Compose file atau reusable shell history.

Periksa dan uji

Terminal
bash
custy configure credentials status
custy configure credentials test --remote origin

Gunakan Helper Make

Dari source checkout Custy, keluarga target d-, c-, dan r-custy- dapat membuat, memeriksa, menguji, dan menggunakan external credential directory yang sama:

Local Docker image
bash
# Setup menggunakan writable mount
make d-credentials-set-github
make d-credentials-set-gitlab

# Pemeriksaan dan access test menggunakan read-only mount

make d-credentials-status
make d-credentials-test CUSTY_CREDENTIALS_REMOTE=origin

# Runtime mount harus diaktifkan secara eksplisit dan bersifat read-only

make d-run-push CUSTY_CREDENTIALS_MOUNT=true

Target Compose dan published image yang setara tersedia sebagai c-credentials-* / c-run-push dan r-custy-credentials-* / r-custy-run-push.

SettingHasil
CUSTY_CREDENTIALS_MOUNT=falseDefault. Jangan mount external file; native Git, SSH, atau interactive username/PAT prompt tetap menangani authentication.
CUSTY_CREDENTIALS_MOUNT=trueMount external directory secara read-only untuk runtime command seperti d-run-push.
make d-credentials-set-githubMount directory secara writable hanya saat Custy membuat atau mengganti github.token.
make d-credentials-status atau make d-credentials-testMount directory secara read-only tanpa menampilkan token value.

Di Windows, default CUSTY_CREDENTIALS_HOST_DIR adalah %LOCALAPPDATA%/Custy/credentials. Di Linux dan macOS, nilainya adalah $XDG_DATA_HOME/custy/credentials, atau $HOME/.local/share/custy/credentials saat XDG_DATA_HOME tidak diatur. Override lokasi secara eksplisit jika diperlukan:

Terminal
bash
make d-run-push CUSTY_CREDENTIALS_MOUNT=true CUSTY_CREDENTIALS_HOST_DIR=/approved/secret/directory

Token tidak pernah diberikan sebagai Make variable atau ditulis ke Makefile.

Nonaktifkan atau hapus

Terminal
bash
# Nonaktifkan tetapi pertahankan external file
custy configure credentials remove --provider github

# Nonaktifkan dan hapus external file secara eksplisit

custy configure credentials remove --provider github --delete-file

Manual Docker Fallback

CMD
bash
docker run --rm -it -v "%cd%:/workspace" -w /workspace custy-prod:latest --no-banner push

Command ini sengaja tidak memakai credential mount atau token environment variable. Git dapat meminta username dan PAT untuk setiap HTTPS provider. Nilai tersebut tidak disimpan oleh disposable --rm container.