CI/CD에서 사용
GitHub Actions, GitLab CI, Jenkins 등에서 logi를 자동화합니다.
인증: 환경변수
CI 머신에서 브라우저 OAuth는 못 돌리니, PAK(Personal API Key) 를 발급해 환경변수로 제공:
bash
export LOGI_TOKEN=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: |
curl -fsSL https://1pass.dev/install/cli.sh | bash
echo "$HOME/.logi/bin" >> $GITHUB_PATH
- name: Rotate
env:
LOGI_TOKEN: ${{ secrets.LOGI_TOKEN }}
run: |
NEW_SECRET=$(logi apps rotate-secret ${{ vars.LOGI_APP_ID }} --json | jq -r .client_secret)
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_TOKEN | (없음) | PAK. 있으면 credentials 파일 무시 |
LOGI_API_URL | https://api.1pass.dev | 자체 호스팅 시 변경 |
LOGI_CONFIG_PATH | ~/.config/logi/credentials | 다른 경로로 이동 |
LOGI_DISABLE_UPDATE_CHECK | 0 | 1로 두면 업데이트 알림 끔 |
LOGI_OUTPUT | (TTY: human / 그 외: json) | 강제 지정 가능 |
종료 코드
| 코드 | 의미 |
|---|---|
0 | 성공 |
1 | 일반 에러 |
2 | 인증 실패 (PAK 만료/무효) |
3 | 권한 부족 (developer 역할이 admin 작업 시도 등) |
4 | 네트워크 오류 |
디버깅
bash
LOGI_DEBUG=1 logi apps list # 모든 HTTP 요청·응답 로그PAK는 prefix 8자만 출력됩니다.