Closed2
Dependabot で Yarn v4 の yarn.lock がパースできるか確認した
この記事を書いている2023年11月21日の時点で、 Dependabot のヘルプページ には Yarn v4 に対応とは書かれていない。
Yarn v3 の yarn.lock のメタデータは
__metadata:
version: 6
cacheKey: 8
で、 Yarn v4 では
__metadata:
version: 8
cacheKey: 10
となっている。バージョンが異なるのでパースできないかもしれない。以下のパーサのコードを読んでみたがいまいち分からないので、パーサクラスを動かして確認することにした。
手元に Dependabot の環境を作る。
git clone git@github.com:dependabot/dependabot-core.git
cd dependabot-core
bundle install
cd npm_and_yarn/helpers
npm install
で、パーサクラスを動かすスクリプトを書く。
require 'pathname'
require 'dependabot'
require 'dependabot/npm_and_yarn'
yarn_lock_path = Pathname(ARGV[0])
Dir.chdir(yarn_lock_path.dirname)
f = Dependabot::DependencyFile.new(name: 'yarn.lock', content: File.read('yarn.lock'))
y = Dependabot::NpmAndYarn::FileParser::YarnLock.new(f)
pp y.parsed
で、パース結果を見る。 Yarn v3 でも v4 でも yarn.lock をパースできることを確認した。
このスクラップは2023/11/21にクローズされました