Skip to content

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_URLhttps://api.1pass.dev자체 호스팅 시 변경
LOGI_CONFIG_PATH~/.config/logi/credentials다른 경로로 이동
LOGI_DISABLE_UPDATE_CHECK01로 두면 업데이트 알림 끔
LOGI_OUTPUT(TTY: human / 그 외: json)강제 지정 가능

종료 코드

코드의미
0성공
1일반 에러
2인증 실패 (PAK 만료/무효)
3권한 부족 (developer 역할이 admin 작업 시도 등)
4네트워크 오류

디버깅

bash
LOGI_DEBUG=1 logi apps list   # 모든 HTTP 요청·응답 로그

PAK는 prefix 8자만 출력됩니다.

다음

MIT License · Identity가 제품의 신뢰를 만듭니다.