CI/CD에서 사용
GitHub Actions, GitLab CI, Jenkins 등에서 logi를 자동화합니다.
CLI 정식 출시 전
logi CLI 는 아직 출시 준비 중 입니다. 이 페이지의 예제는 정식 출시 후 그대로 사용할 수 있도록 패키지 매니저 / install 스크립트 기준으로 작성되어 있으나, 지금 시점에는 직접 빌드 한 바이너리로 동작 검증을 권장합니다.
인증: 환경변수
CI 머신에서 브라우저 OAuth는 못 돌리니, PAK(Personal API Key) 를 발급해 환경변수로 제공:
bash
export LOGI_API_KEY=lpa_pat_xxxxxxxxxxxxx
export LOGI_API_URL=https://api.1pass.dev
logi whoami # → 자동으로 PAK 인증PAK 발급은 start.1pass.dev/settings/api-keys 에서.
GitHub Actions 예시
yaml
# .github/workflows/rotate-secret.yml
name: Rotate logi secret monthly
on:
schedule:
- cron: "0 0 1 * *" # 매달 1일 00:00 UTC
workflow_dispatch:
jobs:
rotate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install logi CLI
run: |
# 현재는 Ruby gem 으로 배포. 스크립트 설치는 추후 추가 예정.
gem install logi-cli
- name: Rotate
env:
LOGI_API_KEY: ${{ secrets.LOGI_API_KEY }}
run: |
# rotate-secret 출력에서 client_secret 추출 (현재 --json 미지원)
NEW_SECRET=$(logi apps rotate-secret ${{ vars.LOGI_APP_ID }} | awk '/client_secret:/ {print $2}')
echo "::add-mask::$NEW_SECRET"
gh secret set OAUTH_CLIENT_SECRET --body "$NEW_SECRET" --repo my-org/my-app
env:
GH_TOKEN: ${{ secrets.GH_PAT }}secret 회전 자동화
권장 주기:
- 월 1회 — 일반 프로덕션 앱
- 주 1회 — 결제·민감 정보 다루는 앱
- 즉시 — 노출 의심 발생 시
GitHub Actions 매트릭스로 여러 앱을 한 번에 돌리는 패턴:
yaml
strategy:
matrix:
app: [my-web, my-mobile-bff, my-admin]
steps:
- run: logi apps rotate-secret ${{ matrix.app }}환경변수 레퍼런스
| 변수 | 기본값 | 설명 |
|---|---|---|
LOGI_API_KEY | (없음) | PAK. 있으면 credentials 파일 무시 |
LOGI_API_URL | https://api.1pass.dev | 자체 호스팅 시 변경 |
LOGI_PORTAL_URL | https://start.1pass.dev | 자체 호스팅 시 변경 |
LOGI_CONFIG_PATH | ~/.config/logi/credentials.json | 다른 경로로 이동 |
LOGI_OUTPUT | (TTY: human / 그 외: json) | json / human 강제 지정 가능 |
종료 코드
Thor.exit_on_failure? 기반으로 동작합니다. 성공 시 0, 실패 시 1. 세분화된 에러 코드(인증/권한/네트워크 분리)는 향후 추가 예정.
PAK 마스킹
PAK 는 whoami 출력 등에서 prefix 18자만 표시됩니다.