예전에는 여러 서비스에서 GitHub 계정으로 로그인하는 기능을 선호했지만, 이제는 덜 매력적으로 느껴짐. Tailscale은 OIDC 신원 제공자를 지원하므로 Codeberg와 내 도메인의 WebFinger를 이용해 로그인하도록 설정함
자체 도메인의 이메일 [email protected]으로 로그인하려면 https://example.com/.well-known/webfinger에 subject가 acct:[email protected]이고 OpenID Connect 발급자 href가 https://codeberg.org인 JSON 파일을 둠
Codeberg 설정에서는 리디렉션 URI가 https://login.tailscale.com/a/oauth_response인 OAuth2 애플리케이션을 만든 뒤, 발급된 Client ID와 Client Secret을 Tailscale에 입력하면 됨. 앞으로 crates.io도 비슷한 방식을 제공할 듯함
최근 crates.io의 개선 폭이 이렇게 큰 줄 몰랐음. 평소에는 lib.rs부터 찾았지만 곧 습관이 바뀔지도 모르며, 가장 마음에 드는 변화는 Ferris임
이 개선 중 얼마나 많은 부분이 에이전트 도입 덕분인지 궁금함
Ferris의 눈 변화는 물리적으로 말이 잘 되지 않음. 검은 눈의 흰 부분은 정반사 하이라이트인데, 마우스 커서가 광원이라면 눈이 커서를 따라가는 표현이라고 하기도 어려움
의존성을 감사할 때는 먼저 ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/를 ~/cargosrc로 심볼릭 링크해 Cargo가 내려받은 파일에 쉽게 접근하도록 함
감사할 의존성마다 Git 저장소를 복제해 대상 버전을 체크아웃하고, 추적 중인 파일을 로컬에서 삭제한 뒤 rust-analyzer 프로세스에 SIGSTOP을 보냄. 프로젝트의 Cargo.toml에 의존성을 추가하고 cargo fetch를 실행한 다음, 내려받은 $dependency-$version 디렉터리 내용을 복제한 저장소로 복사해 커밋하고 Git 이력 뷰어로 차이를 검토함
검토를 마치면 Cargo.lock의 의존성·버전·해시 조합을 스크립트로 신뢰할 수 있는 데이터베이스에 저장해 같은 버전을 다시 확인하지 않음. 절차가 복잡해 보여도 대부분 자동화해 둬서 웹 UI보다 효율적이며, Cargo가 명령줄에서 이런 검토 절차를 지원하면 좋겠음. cargo-crev 같은 도구보다 검토 자체를 돕는 플러그인이 있는지도 궁금함
프런트엔드가 매니페스트만 가져온 뒤 각 파일을 HTTP 범위 요청으로 필요할 때 불러오는 구현은 여기에 있으며, 브라우저 내장 DecompressionStream을 사용함