From f5e669e61bde5de6d88bfa689c19a9653f783bea Mon Sep 17 00:00:00 2001 From: Hugo Alliaume Date: Tue, 6 Aug 2024 08:34:13 +0200 Subject: [PATCH] feat(biomejs-binary): add support for "latest_stable" and "latest_nightly", deprecate null --- src/BiomeJsBinary.php | 38 +- src/DependencyInjection/BiomeJsExtension.php | 10 +- tests/BiomeJsBinaryTest.php | 61 +- tests/github-biomejs-releases.json | 8560 ++++++++++++++++++ 4 files changed, 8654 insertions(+), 15 deletions(-) create mode 100644 tests/github-biomejs-releases.json diff --git a/src/BiomeJsBinary.php b/src/BiomeJsBinary.php index 57ae372..bc2a369 100644 --- a/src/BiomeJsBinary.php +++ b/src/BiomeJsBinary.php @@ -18,12 +18,22 @@ final class BiomeJsBinary implements BiomeJsBinaryInterface private HttpClientInterface $httpClient; private ?string $cachedVersion = null; + public const LATEST_STABLE_VERSION = 'latest_stable'; + public const LATEST_NIGHTLY_VERSION = 'latest_nightly'; + + /** + * @param string|self::LATEST_STABLE_VERSION|self::LATEST_NIGHTLY_VERSION|null $binaryVersion + */ public function __construct( private readonly string $cwd, private readonly string $binaryDownloadDir, private readonly ?string $binaryVersion, ?HttpClientInterface $httpClient = null, ) { + if (null === $this->binaryVersion) { + trigger_deprecation('kocal/biome-js-bundle', '1.1', 'Not explicitly specifying a Biome.js CLI version is deprecated, use "latest_stable", "latest_nightly", or an explicit version (e.g.: "v1.8.3") instead.'); + } + $this->httpClient = $httpClient ?? HttpClient::create(); } @@ -95,17 +105,39 @@ private function downloadExecutable(): void private function getVersion(): string { - return $this->cachedVersion ??= $this->binaryVersion ?? $this->getLatestVersion(); + if (null !== $this->cachedVersion) { + return $this->cachedVersion; + } + + if (null === $this->binaryVersion || self::LATEST_STABLE_VERSION === $this->binaryVersion || self::LATEST_NIGHTLY_VERSION === $this->binaryVersion) { + return $this->cachedVersion = $this->getLatestVersion(); + } + + return $this->cachedVersion = $this->binaryVersion; } private function getLatestVersion(): string { + $useStable = null === $this->binaryVersion || 'latest_stable' === $this->binaryVersion; + $useNightly = 'latest_nightly' === $this->binaryVersion; + try { $response = $this->httpClient->request('GET', 'https://api.github.com/repos/biomejs/biome/releases'); + foreach ($response->toArray() as $release) { - if (str_starts_with($release['tag_name'], 'cli/')) { - return str_replace('cli/', '', $release['tag_name']); + if (!str_starts_with($release['tag_name'], 'cli/')) { + continue; + } + + if ($useStable && true === $release['prerelease']) { + continue; + } + + if ($useNightly && false === $release['prerelease']) { + continue; } + + return str_replace('cli/', '', $release['tag_name']); } throw new \Exception('Unable to find the latest Biome.js CLI release.'); diff --git a/src/DependencyInjection/BiomeJsExtension.php b/src/DependencyInjection/BiomeJsExtension.php index 269cc05..65f9c78 100644 --- a/src/DependencyInjection/BiomeJsExtension.php +++ b/src/DependencyInjection/BiomeJsExtension.php @@ -46,9 +46,13 @@ public function getConfigTreeBuilder(): TreeBuilder $rootNode ->children() ->scalarNode('binary_version') - ->info('Biome.js CLI version to download - null means the latest version') - ->example('v1.7.3') - ->defaultNull() + ->info('Biome.js CLI version to download, can be either a specific version, "latest_stable" or "latest_nightly".') + ->example([ + 'v1.7.3', + 'latest_stable', + 'latest_nightly', + ]) + ->defaultValue('latest_stable') ->end() ->end(); diff --git a/tests/BiomeJsBinaryTest.php b/tests/BiomeJsBinaryTest.php index d90aa7f..fcd549b 100644 --- a/tests/BiomeJsBinaryTest.php +++ b/tests/BiomeJsBinaryTest.php @@ -5,14 +5,61 @@ namespace Kocal\BiomeJsBundle\Tests; use Kocal\BiomeJsBundle\BiomeJsBinary; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\HttpClient\MockHttpClient; +use Symfony\Component\HttpClient\Response\JsonMockResponse; use Symfony\Component\HttpClient\Response\MockResponse; +use Symfony\Contracts\HttpClient\HttpClientInterface; final class BiomeJsBinaryTest extends TestCase { - public function testBinaryIsDownloadedIfNotExists(): void + private HttpClientInterface $httpClient; + + protected function setUp(): void + { + $this->httpClient = new MockHttpClient(function (string $method, string $url, array $options) { + // Mock GitHub API, the releases must contain multiples stable versions and nightly versions, + // and also not-CLI releases (e.g.: js-api). + if ('GET' === $method && 'https://api.github.com/repos/biomejs/biome/releases' === $url) { + return new JsonMockResponse( + json_decode( + file_get_contents(__DIR__ . '/github-biomejs-releases.json') ?: throw new \RuntimeException('Cannot read file "github-biomejs-releases.json".'), + associative: true, + flags: JSON_THROW_ON_ERROR + ) + ); + } + + if ('GET' === $method && str_starts_with($url, 'https://github.com/biomejs/biome/releases/download/cli')) { + $binaryName = BiomeJsBinary::getBinaryName(); + + return match ($url) { + 'https://github.com/biomejs/biome/releases/download/cli/v1.8.1/' . $binaryName => new MockResponse('fake-binary-content v1.8.1'), + 'https://github.com/biomejs/biome/releases/download/cli/v1.8.3/' . $binaryName => new MockResponse('fake-binary-content v1.8.3'), + 'https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/' . $binaryName => new MockResponse('fake-binary-content v1.8.4-nightly.bd1d0c6'), + default => new MockResponse('Not Found', ['http_code' => 404]), + }; + } + + return new MockResponse('Not Found', ['http_code' => 404]); + }); + } + + /** + * @return iterable + */ + public static function provideBinaryIsDownloadedIfNotExists(): iterable + { + yield 'specific version' => ['passedVersion' => 'v1.8.1', 'expectedVersion' => 'v1.8.1']; + yield 'latest stable version' => ['passedVersion' => null, 'expectedVersion' => 'v1.8.3']; + yield 'latest stable version (explicit)' => ['passedVersion' => 'latest_stable', 'expectedVersion' => 'v1.8.3']; + yield 'latest nightly version' => ['passedVersion' => 'latest_nightly', 'expectedVersion' => 'v1.8.4-nightly.bd1d0c6']; + } + + #[DataProvider('provideBinaryIsDownloadedIfNotExists')] + public function testBinaryIsDownloadedIfNotExists(?string $passedVersion, string $expectedVersion): void { $binaryDownloadDir = __DIR__ . '/fixtures/var/download'; $fs = new Filesystem(); @@ -21,24 +68,20 @@ public function testBinaryIsDownloadedIfNotExists(): void } $fs->mkdir($binaryDownloadDir); - $client = new MockHttpClient([ - new MockResponse('fake binary contents'), - ]); - $binary = new BiomeJsBinary( __DIR__, $binaryDownloadDir, - 'fake-version', - $client + $passedVersion, + $this->httpClient, ); $process = $binary->createProcess(['check', '--apply', '*.{js,ts}']); - self::assertFileExists($binaryDownloadDir . '/fake-version/' . BiomeJsBinary::getBinaryName()); + self::assertFileExists($binaryDownloadDir . '/' . $expectedVersion . '/' . BiomeJsBinary::getBinaryName()); // Windows doesn't wrap arguments in quotes $expectedTemplate = '\\' === \DIRECTORY_SEPARATOR ? '"%s" check --apply *.{js,ts}' : "'%s' 'check' '--apply' '*.{js,ts}'"; self::assertSame( - sprintf($expectedTemplate, $binaryDownloadDir . '/fake-version/' . BiomeJsBinary::getBinaryName()), + sprintf($expectedTemplate, $binaryDownloadDir . '/' . $expectedVersion . '/' . BiomeJsBinary::getBinaryName()), $process->getCommandLine() ); } diff --git a/tests/github-biomejs-releases.json b/tests/github-biomejs-releases.json new file mode 100644 index 0000000..e2817de --- /dev/null +++ b/tests/github-biomejs-releases.json @@ -0,0 +1,8560 @@ +[ + { + "url": "https://api.github.com/repos/biomejs/biome/releases/168598917", + "assets_url": "https://api.github.com/repos/biomejs/biome/releases/168598917/assets", + "upload_url": "https://uploads.github.com/repos/biomejs/biome/releases/168598917/assets{?name,label}", + "html_url": "https://github.com/biomejs/biome/releases/tag/cli/v1.8.4-nightly.bd1d0c6", + "id": 168598917, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKAiibM4KDJ2F", + "tag_name": "cli/v1.8.4-nightly.bd1d0c6", + "target_commitish": "main", + "name": "CLI v1.8.4-nightly.bd1d0c6", + "draft": false, + "prerelease": true, + "created_at": "2024-08-02T19:52:37Z", + "published_at": "2024-08-04T10:20:26Z", + "assets": [ + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797989", + "id": 183797989, + "node_id": "RA_kwDOKAiibM4K9Ijl", + "name": "biome-darwin-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 22618312, + "download_count": 6, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:29Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-darwin-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797988", + "id": 183797988, + "node_id": "RA_kwDOKAiibM4K9Ijk", + "name": "biome-darwin-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 24319296, + "download_count": 3, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:28Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-darwin-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797987", + "id": 183797987, + "node_id": "RA_kwDOKAiibM4K9Ijj", + "name": "biome-linux-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 24374352, + "download_count": 1, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:28Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-linux-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797983", + "id": 183797983, + "node_id": "RA_kwDOKAiibM4K9Ijf", + "name": "biome-linux-arm64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 21628752, + "download_count": 0, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:28Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-linux-arm64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797986", + "id": 183797986, + "node_id": "RA_kwDOKAiibM4K9Iji", + "name": "biome-linux-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 27639080, + "download_count": 72, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:28Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-linux-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797985", + "id": 183797985, + "node_id": "RA_kwDOKAiibM4K9Ijh", + "name": "biome-linux-x64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 26765696, + "download_count": 0, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:29Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-linux-x64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797982", + "id": 183797982, + "node_id": "RA_kwDOKAiibM4K9Ije", + "name": "biome-win32-arm64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 26183680, + "download_count": 0, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:28Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-win32-arm64.exe" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/183797984", + "id": 183797984, + "node_id": "RA_kwDOKAiibM4K9Ijg", + "name": "biome-win32-x64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 31070720, + "download_count": 2, + "created_at": "2024-08-04T10:20:27Z", + "updated_at": "2024-08-04T10:20:28Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.bd1d0c6/biome-win32-x64.exe" + } + ], + "tarball_url": "https://api.github.com/repos/biomejs/biome/tarball/cli/v1.8.4-nightly.bd1d0c6", + "zipball_url": "https://api.github.com/repos/biomejs/biome/zipball/cli/v1.8.4-nightly.bd1d0c6", + "body": "### Analyzer\r\n\r\n#### Enhancements\r\n\r\n- Implement [css suppression action](https://github.com/biomejs/biome/issues/3278). Contributed by @togami2864\r\n- Add support of comments in `turbo.json`. Contributed by @Netail\r\n\r\n### CLI\r\n\r\n#### New features\r\n\r\n- Add `--graphql-linter-enabled` option, to control whether the linter should be enabled or not for GraphQL files. Contributed by @ematipico\r\n- The option `--max-diagnostics` now accept a `none` value, which lifts the limit of diagnostics shown. Contributed by @ematipico\r\n\r\n#### Enhancements\r\n\r\n- When a `--reporter` is provided, and it's different from the default one, the value provided by via `--max-diagnostics` is ignored and **the limit is lifted**. Contributed by @ematipico\r\n\r\n- `biome init` now generates a new config file with more options set.\r\n This change intends to improve discoverability of the options and to set the more commonly used options to their default values.\r\n Contributed by Conaclos\r\n\r\n#### Bug fixes\r\n\r\n- `biome lint --write` now takes `--only` and `--skip` into account ([#3470](https://github.com/biomejs/biome/issues/3470)). Contributed by Conaclos\r\n\r\n### Configuration\r\n\r\n- Add support for loading configuration from `.editorconfig` files ([#1724](https://github.com/biomejs/biome/issues/1724)). Contributed by @dyc3\r\n Configuration supplied in `.editorconfig` will be overridden by the configuration in `biome.json`. Support is disabled by default and can be enabled by adding the following to your formatter configuration in `biome.json`:\r\n ```json\r\n {\r\n \"formatter\": {\r\n \"useEditorconfig\": true\r\n }\r\n }\r\n ```\r\n\r\n### Formatter\r\n\r\n#### Enhancements\r\n\r\n- Add parentheses for nullcoalescing in ternaries.\r\n\r\n This change aligns on [Prettier 3.3.3](https://github.com/prettier/prettier/blob/main/CHANGELOG.md#333).\r\n This adds clarity to operator precedence.\r\n\r\n ```diff\r\n - foo ? bar ?? foo : baz;\r\n + foo ? (bar ?? foo) : baz;\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n#### Bug fixes\r\n\r\n- Keep the parentheses around `infer` declarations in type unions and type intersections ([#3419](https://github.com/biomejs/biome/issues/3419)). Contributed by @Conaclos\r\n\r\n- Keep parentheses around a `yield` expression inside a type assertion.\r\n\r\n Previously, Biome removed parentheses around some expressions that require them inside a type assertion.\r\n For example, in the following code, Biome now preserves the parentheses.\r\n\r\n ```ts\r\n function* f() {\r\n return (yield 0);\r\n }\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n- Remove parentheses around expressions that don't need them inside a decorator.\r\n\r\n Biome now matches Prettier in the following cases:\r\n\r\n ```diff\r\n class {\r\n - @(decorator)\r\n + @decorator\r\n method() {}\r\n },\r\n class {\r\n - @(decorator())\r\n + @decorator()\r\n method() {}\r\n },\r\n class {\r\n @(decorator?.())\r\n method() {}\r\n },\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n- Keep parentheses around objects preceded with a `@satisfies` comment.\r\n\r\n In the following example, parentheses are no longer removed.\r\n\r\n ```ts\r\n export const PROPS = /** @satisfies {Record} */ ({\r\n prop: 0,\r\n });\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n### Linter\r\n\r\n#### New features\r\n\r\n- Add support for GraphQL linting. Contributed by @ematipico\r\n- Add [nursery/noDynamicNamespaceImportAccess](https://biomejs.dev/linter/no-dynamic-namespace-import-access/). Contributed by @minht11\r\n- [noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/) no longer reports a direct reference to an enum member ([#2974](https://github.com/biomejs/biome/issues/2974)).\r\n\r\n In the following code, the `A` reference is no longer reported as an undeclared variable.\r\n\r\n ```ts\r\n enum E {\r\n A = 1,\r\n B = A << 1,\r\n }\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n- Add [nursery/noIrregularWhitespace](https://biomejs.dev/linter/rules/no-irregular-whitespace). Contributed by @michellocana\r\n- Implement `noIrreguluarWhitespace` for CSS. Contributed by @DerTimonius\r\n- Add [nursery/useTrimStartEnd](https://biomejs.dev/linter/rules/use-trim-start-end/). Contributed by @chansuke\r\n\r\n#### Enhancements\r\n\r\n- [noInvalidUseBeforeDeclaration](https://biomejs.dev/linter/rules/no-invalid-use-before-declaration) now reports direct use of an enum member before its declaration.\r\n\r\n In the following code, `A` is reported as use before its declaration.\r\n\r\n ```ts\r\n enum E {\r\n B = A << 1,\r\n A = 1,\r\n }\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n- [useFilenamingConvention](https://biomejs.dev/linter/rules/use-filenaming-convention) now supports [unicase](https://en.wikipedia.org/wiki/Unicase) letters.\r\n\r\n [unicase](https://en.wikipedia.org/wiki/Unicase) letters have a single case: they are neither uppercase nor lowercase.\r\n Biome now accepts filenames in unicase.\r\n For example, the filename `안녕하세요` is now accepted.\r\n\r\n We still reject a name that mixes unicase characters with lowercase or uppercase characters.\r\n For example, the filename `A안녕하세요` is rejected.\r\n\r\n This change also fixes [#3353](https://github.com/biomejs/biome/issues/3353).\r\n Filenames consisting only of numbers are now accepted.\r\n\r\n Contributed by @Conaclos\r\n\r\n- [useFilenamingConvention](https://biomejs.dev/linter/rules/use-filenaming-convention) now supports Next.js/Nuxt/Astro dynamic routes ([#3465](https://github.com/biomejs/biome/issues/3465)).\r\n\r\n [Next.js](https://nextjs.org/docs/pages/building-your-application/routing/dynamic-routes#catch-all-segments), [SolidStart](https://docs.solidjs.com/solid-start/building-your-application/routing#renaming-index), [Nuxt](https://nuxt.com/docs/guide/directory-structure/server#catch-all-route), and [Astro](https://docs.astro.build/en/guides/routing/#rest-parameters) support dynamic routes such as `[...slug].js` and `[[...slug]].js`.\r\n\r\n Biome now recognizes this syntax. `slug` must contain only alphanumeric characters.\r\n\r\n Contributed by @Conaclos\r\n\r\n- [useExportType](https://biomejs.dev/linter/rules/use-export-type/) no longer report empty `export` ([#3535](https://github.com/biomejs/biome/issues/3535)).\r\n\r\n An empty `export {}` allows you to force TypeScript to consider a file with no imports and exports as an EcmaScript module.\r\n While `export type {}` is valid, it is more common to use `export {}`.\r\n Users may find it confusing that the linter asks them to convert it to `export type {}`.\r\n Also, a bundler should be able to remove `export {}` as well as `export type {}`.\r\n So it is not so useful to report `export {}`.\r\n\r\n Contributed by @Conaclos\r\n\r\n- [noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/) now checks TypeScript declaration files.\r\n\r\n This allows to report a type that is unused because it isn't exported.\r\n Global declarations files (declarations files without exports and imports) are still ignored.\r\n\r\n Contributed by @Conaclos\r\n\r\n#### Bug fixes\r\n\r\n- Don't request alt text for elements hidden from assistive technologies ([#3316](https://github.com/biomejs/biome/issues/3316)). Contributed by @robintown\r\n- Fix [[#3149](https://github.com/biomejs/biome/issues/3149)] crashes that occurred when applying the `noUselessFragments` unsafe fixes in certain scenarios. Contributed by @unvalley\r\n- `noExcessiveNestedTestSuites`: Fix another edge case where the rule would alert on heavily nested zod schemas. Contributed by @dyc3\r\n\r\n- `noExtraNonNullAssertion` no longer reports a single non-null assertion enclosed in parentheses ([#3352](https://github.com/biomejs/biome/issues/3352)). Contributed by @Conaclos\r\n\r\n- `useAdjacentOverloadSignatures` no longer reports a `#private` class member and a public class member that share the same name ([#3309](https://github.com/biomejs/biome/issues/3309)).\r\n\r\n The following code is no longer reported:\r\n\r\n ```js\r\n class C {\r\n #f() {}\r\n g() {}\r\n f() {}\r\n }\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n- [useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/) now accepts applying custom convention on abstract classes. Contributed by @Conaclos\r\n\r\n- [useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/) no longer suggests an empty fix when a name doesn't match strict Pascal case ([#3561](https://github.com/biomejs/biome/issues/3561)).\r\n\r\n Previously the following code led `useNamingConvention` to suggest an empty fix.\r\n The rule no longer provides a fix for this case.\r\n\r\n ```ts\r\n type AAb = any\r\n ```\r\n\r\n Contributed by @Conaclos\r\n\r\n- [useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/) no longer provides fixes for global TypeScript declaration files.\r\n\r\n Global TypeScript declaration files have no epxorts and no imports.\r\n All the declared types are available in all files of the project.\r\n Thus, it is not safe to propose renaming only in the declaration file.\r\n\r\n Contributed by @Conaclos\r\n\r\n### Parser\r\n\r\n#### Bug fixes\r\n\r\n- Fix [#3287](https://github.com/biomejs/biome/issues/3287) nested selectors with pseudo-classes. Contributed by @denbezrukov\r\n- Fix [#3349](https://github.com/biomejs/biome/issues/3349) allow CSS multiple ampersand support. Contributed by @denbezrukov\r\n```css\r\n.class {\r\n && {\r\n color: red;\r\n }\r\n}\r\n```\r\n- Fix [#3410](https://github.com/biomejs/biome/issues/3410) by correctly parsing break statements containing keywords.\r\n ```js\r\n out: while (true) {\r\n break out;\r\n }\r\n ```\r\n Contributed by @ah-yu\r\n\r\n\r\n\r\n\r\n\r\n## What's Changed\r\n### Other changes\r\n* fix(codegen): create output directory if it doesn't exist by @dyc3 in https://github.com/biomejs/biome/pull/3389\r\n* refactor(codegen): generate most functions on `LanguageKind` with a macro by @dyc3 in https://github.com/biomejs/biome/pull/3380\r\n* chore(grit): add auto-wrap + integrate with `search` command by @arendjr in https://github.com/biomejs/biome/pull/3288\r\n* refactor(formatter_test): refactor `TestFormatLanguage` trait by @ah-yu in https://github.com/biomejs/biome/pull/3395\r\n* feat(css_parser): introduce grit metavariable by @ah-yu in https://github.com/biomejs/biome/pull/3340\r\n* feat(lint): add rule `useStrictMode` by @ematipico in https://github.com/biomejs/biome/pull/3370\r\n* refactor(js_semantic): use range start to identify the declaration in read/write by @Conaclos in https://github.com/biomejs/biome/pull/3404\r\n* chore(grit): add Grit testing infrastructure by @arendjr in https://github.com/biomejs/biome/pull/3406\r\n* refactor(js_semantic): wrap scope id for niche optimization and clarity by @Conaclos in https://github.com/biomejs/biome/pull/3408\r\n* refactor(js_analyze): improve restricted regex error meesages by @Conaclos in https://github.com/biomejs/biome/pull/3412\r\n* refactor(js_semantic): minor changes by @Conaclos in https://github.com/biomejs/biome/pull/3416\r\n* fix: fix typo in URL for noEvolvingTypes rule in diagnostics categories by @ynishimura in https://github.com/biomejs/biome/pull/3413\r\n* fix(grit): correct calculation of line and column numbers by @arendjr in https://github.com/biomejs/biome/pull/3409\r\n* fix(deserialize): unescape JSON strings by @Conaclos in https://github.com/biomejs/biome/pull/3414\r\n* refactor(js_semantic): reduce semantic data size and make some cleanup by @Conaclos in https://github.com/biomejs/biome/pull/3417\r\n* fix(biome-css-parser): incorrect option name in hint when using `:global` in CSS module by @shulaoda in https://github.com/biomejs/biome/pull/3420\r\n* docs(js_semantic): update docs and comments by @Conaclos in https://github.com/biomejs/biome/pull/3421\r\n* feat(yaml): more comprehensive grammar by @dyc3 in https://github.com/biomejs/biome/pull/3400\r\n* fix(css_parser): fix Parser is no longer progressing #3284 by @denbezrukov in https://github.com/biomejs/biome/pull/3433\r\n* fix(deps): update dependency prettier to v3.3.3 by @renovate in https://github.com/biomejs/biome/pull/3436\r\n* chore(deps): update github-actions by @renovate in https://github.com/biomejs/biome/pull/3435\r\n* chore(deps): update dependency dprint to v0.47.2 by @renovate in https://github.com/biomejs/biome/pull/3434\r\n* chore(deps): update dependency eslint to v9.7.0 by @renovate in https://github.com/biomejs/biome/pull/3437\r\n* ci: add script to correctly update packages during the release by @ematipico in https://github.com/biomejs/biome/pull/3423\r\n* feat(lint): add `useConsistentCurlyBraces` by @dyc3 in https://github.com/biomejs/biome/pull/3182\r\n* feat(lint/noStaticElementInteractions): add rule by @ryo-ebata in https://github.com/biomejs/biome/pull/2981\r\n* chore: tidy-up licenses by @ematipico in https://github.com/biomejs/biome/pull/3438\r\n* feat(graphql_parser): separate binding and reference nodes by @vohoanglong0107 in https://github.com/biomejs/biome/pull/3427\r\n* fix(grit): fix matching array types by @arendjr in https://github.com/biomejs/biome/pull/3445\r\n* fix(grit): match object literal by @arendjr in https://github.com/biomejs/biome/pull/3447\r\n* fix(grit): leaf node normalization by @arendjr in https://github.com/biomejs/biome/pull/3448\r\n* refactor: replace `biome_rowan::*` type into biome type by @chansuke in https://github.com/biomejs/biome/pull/3431\r\n* chore: add new bronze sponsor by @ematipico in https://github.com/biomejs/biome/pull/3449\r\n* chore(grit): compact snapshot range by @arendjr in https://github.com/biomejs/biome/pull/3455\r\n* fix(lint/useConsistentCurlyBraces): specify correct language type by @chansuke in https://github.com/biomejs/biome/pull/3452\r\n* chore: fix rules check snippet to emit an error code by @ematipico in https://github.com/biomejs/biome/pull/3458\r\n* fix(js_analyze): handle shorthand property renaming by @Conaclos in https://github.com/biomejs/biome/pull/3454\r\n* fix(lint/useHookAtTopLevel): don't flag jest function calls that look like hooks by @dyc3 in https://github.com/biomejs/biome/pull/3415\r\n* fix(grit): improved diagnostics by @arendjr in https://github.com/biomejs/biome/pull/3456\r\n* chore: update pnpm and remove workaround by @SuperchupuDev in https://github.com/biomejs/biome/pull/3467\r\n* feat: noValueAtRule css lint rule by @rishabh3112 in https://github.com/biomejs/biome/pull/3293\r\n* refactor(core): register syntax rules via visitor by @ematipico in https://github.com/biomejs/biome/pull/3471\r\n* feat(graphql_semantic): build semantic model from AST by @vohoanglong0107 in https://github.com/biomejs/biome/pull/3378\r\n* chore: add myself as maintainer by @dyc3 in https://github.com/biomejs/biome/pull/3480\r\n* chore(deps): update rust crate lazy_static to 1.5.0 by @renovate in https://github.com/biomejs/biome/pull/3490\r\n* chore(deps): update rust crate bitflags to 2.6.0 by @renovate in https://github.com/biomejs/biome/pull/3489\r\n* chore(deps): update pnpm to v9.6.0 by @renovate in https://github.com/biomejs/biome/pull/3488\r\n* chore(deps): update softprops/action-gh-release action to v2.0.8 by @renovate in https://github.com/biomejs/biome/pull/3487\r\n* chore(deps): update rust crate tokio to 1.38.1 by @renovate in https://github.com/biomejs/biome/pull/3486\r\n* chore(deps): update @biomejs packages by @renovate in https://github.com/biomejs/biome/pull/3485\r\n* fix: noCommentText does not work when any other text is a child(#3298) by @ryo-ebata in https://github.com/biomejs/biome/pull/3446\r\n* refactor(core): register rules using visitor pattern by @ematipico in https://github.com/biomejs/biome/pull/3483\r\n* chore(deps): update dependency typescript to v5.5.4 by @renovate in https://github.com/biomejs/biome/pull/3502\r\n* chore(deps): update docker/login-action action to v3.3.0 by @renovate in https://github.com/biomejs/biome/pull/3503\r\n* chore(deps): update pnpm/action-setup action to v4 by @renovate in https://github.com/biomejs/biome/pull/3505\r\n* fix(js_formater): strip useless quotes by @suxin2017 in https://github.com/biomejs/biome/pull/3492\r\n* chore(deps): update rust crate similar to 2.6.0 by @renovate in https://github.com/biomejs/biome/pull/3504\r\n* chore(deps): update rust crate dashmap to 5.5.3 by @renovate in https://github.com/biomejs/biome/pull/3507\r\n* chore(deps): update rust crate ignore to 0.4.22 by @renovate in https://github.com/biomejs/biome/pull/3508\r\n* chore(deps): update rust crate bpaf to 0.9.12 by @renovate in https://github.com/biomejs/biome/pull/3506\r\n* chore(js_formatter): update prettier compat reports by @Conaclos in https://github.com/biomejs/biome/pull/3514\r\n* chore: add silver sponsor by @ematipico in https://github.com/biomejs/biome/pull/3517\r\n* chore: new bronze sponsor by @ematipico in https://github.com/biomejs/biome/pull/3519\r\n* refactor: consistently use `cast`, `cast_ref` and `try_cast` by @Conaclos in https://github.com/biomejs/biome/pull/3520\r\n* refactor: remove try_cast_node by @Conaclos in https://github.com/biomejs/biome/pull/3521\r\n* refactor(js_formatter): reduce copy by taking ownership in `needs_parentheses_with_parent` by @Conaclos in https://github.com/biomejs/biome/pull/3526\r\n* docs: update contributing guidelines according to previous changes by @YuriyBl in https://github.com/biomejs/biome/pull/3527\r\n* refactor(js_formatter): remove `NeedsParentheses::needs_parentheses_aith_parent` by @Conaclos in https://github.com/biomejs/biome/pull/3528\r\n* refactor(biome_deserialize): use `enumflags2` by @RiESAEX in https://github.com/biomejs/biome/pull/3529\r\n* chore(deps): update rust crate serde_json to 1.0.121 by @renovate in https://github.com/biomejs/biome/pull/3539\r\n* chore(deps): update dependency eslint to v9.8.0 by @renovate in https://github.com/biomejs/biome/pull/3540\r\n* chore(deps): update codspeedhq/action action to v2.4.4 by @renovate in https://github.com/biomejs/biome/pull/3538\r\n* chore(deps): update @biomejs packages by @renovate in https://github.com/biomejs/biome/pull/3537\r\n* fix(formatter): prevent line break when comment follows end of attributes, irrespective of bracketSameLine value by @satojin219 in https://github.com/biomejs/biome/pull/3534\r\n* refactor(js_formatter): move `NeedsParentheses` trait to `biome_js_syntax` by @Conaclos in https://github.com/biomejs/biome/pull/3541\r\n* fix(js_formatter): add parens to match Prettier by @Conaclos in https://github.com/biomejs/biome/pull/3552\r\n* chore(js_formatter): ignore files with only bogus nodes for generating prettier compat reports by @Conaclos in https://github.com/biomejs/biome/pull/3553\r\n* feat(js_parser): support metavariables by @arendjr in https://github.com/biomejs/biome/pull/3548\r\n* fix(js_formatter): normalize keys then check if quotes are needed by @Conaclos in https://github.com/biomejs/biome/pull/3558\r\n* chore: config Dockerfile.benchmark in gitattributes by @o-az in https://github.com/biomejs/biome/pull/3516\r\n* refactor(formatter): improve string normalization by @Conaclos in https://github.com/biomejs/biome/pull/3564\r\n* fix(cli): apply offsets for htmlish js file sources by @dyc3 in https://github.com/biomejs/biome/pull/3494\r\n* feat(grit): implement variable matching by @arendjr in https://github.com/biomejs/biome/pull/3575\r\n\r\n## New Contributors\r\n* @ynishimura made their first contribution in https://github.com/biomejs/biome/pull/3413\r\n* @shulaoda made their first contribution in https://github.com/biomejs/biome/pull/3420\r\n* @ryo-ebata made their first contribution in https://github.com/biomejs/biome/pull/2981\r\n* @rishabh3112 made their first contribution in https://github.com/biomejs/biome/pull/3293\r\n* @YuriyBl made their first contribution in https://github.com/biomejs/biome/pull/3527\r\n* @RiESAEX made their first contribution in https://github.com/biomejs/biome/pull/3529\r\n* @satojin219 made their first contribution in https://github.com/biomejs/biome/pull/3534\r\n* @o-az made their first contribution in https://github.com/biomejs/biome/pull/3516\r\n\r\n**Full Changelog**: https://github.com/biomejs/biome/compare/cli/v1.8.4-nightly.a579bf7...cli/v1.8.4-nightly.bd1d0c6", + "reactions": { + "url": "https://api.github.com/repos/biomejs/biome/releases/168598917/reactions", + "total_count": 11, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 11, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 27 + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/164463040", + "assets_url": "https://api.github.com/repos/biomejs/biome/releases/164463040/assets", + "upload_url": "https://uploads.github.com/repos/biomejs/biome/releases/164463040/assets{?name,label}", + "html_url": "https://github.com/biomejs/biome/releases/tag/cli/v1.8.4-nightly.a579bf7", + "id": 164463040, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKAiibM4JzYHA", + "tag_name": "cli/v1.8.4-nightly.a579bf7", + "target_commitish": "main", + "name": "CLI v1.8.4-nightly.a579bf7", + "draft": false, + "prerelease": true, + "created_at": "2024-07-08T17:41:39Z", + "published_at": "2024-07-08T18:10:17Z", + "assets": [ + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395801", + "id": 178395801, + "node_id": "RA_kwDOKAiibM4KohqZ", + "name": "biome-darwin-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 21559768, + "download_count": 20, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:18Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-darwin-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395802", + "id": 178395802, + "node_id": "RA_kwDOKAiibM4Kohqa", + "name": "biome-darwin-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 23211176, + "download_count": 5, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:19Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-darwin-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395803", + "id": 178395803, + "node_id": "RA_kwDOKAiibM4Kohqb", + "name": "biome-linux-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 23231504, + "download_count": 133, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:19Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-linux-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395799", + "id": 178395799, + "node_id": "RA_kwDOKAiibM4KohqX", + "name": "biome-linux-arm64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 20608776, + "download_count": 1, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:18Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-linux-arm64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395797", + "id": 178395797, + "node_id": "RA_kwDOKAiibM4KohqV", + "name": "biome-linux-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 26442984, + "download_count": 118, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:19Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-linux-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395798", + "id": 178395798, + "node_id": "RA_kwDOKAiibM4KohqW", + "name": "biome-linux-x64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 25594144, + "download_count": 2, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:18Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-linux-x64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395800", + "id": 178395800, + "node_id": "RA_kwDOKAiibM4KohqY", + "name": "biome-win32-arm64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 24925696, + "download_count": 2, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:18Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-win32-arm64.exe" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/178395796", + "id": 178395796, + "node_id": "RA_kwDOKAiibM4KohqU", + "name": "biome-win32-x64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 29784064, + "download_count": 28, + "created_at": "2024-07-08T18:10:18Z", + "updated_at": "2024-07-08T18:10:19Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.4-nightly.a579bf7/biome-win32-x64.exe" + } + ], + "tarball_url": "https://api.github.com/repos/biomejs/biome/tarball/cli/v1.8.4-nightly.a579bf7", + "zipball_url": "https://api.github.com/repos/biomejs/biome/zipball/cli/v1.8.4-nightly.a579bf7", + "body": "\n### Analyzer\n\n#### Enhancements\n\n- Implement [css suppression action](https://github.com/biomejs/biome/issues/3278). Contributed by @togami2864\n- Add support of comments in `turbo.json`. Contributed by @Netail\n\n### CLI\n\n#### New features\n\n- Add `--graphql-linter-enabled` option, to control whether the linter should enabled or not for GraphQL files. Contributed by @ematipico\n\n### Configuration\n\n- Add support for loading configuration from `.editorconfig` files ([#1724](https://github.com/biomejs/biome/issues/1724)). Contributed by @dyc3\n Configuration supplied in `.editorconfig` will be overridden by the configuration in `biome.json`. Support is disabled by default and can be enabled by adding the following to your formatter configuration in `biome.json`:\n ```json\n {\n \"formatter\": {\n \"useEditorconfig\": true\n }\n }\n ```\n\n### Editors\n\n### Formatter\n\n### JavaScript APIs\n\n### Linter\n\n#### Enhancements\n\n- [noInvalidUseBeforeDeclaration](https://biomejs.dev/linter/rules/no-invalid-use-before-declaration) now reports direct use of an enum member before its declaration.\n\n In the following code, `A` is reported as use before its declaration.\n\n ```ts\n enum E {\n B = A << 1,\n A = 1,\n }\n ```\n\n Contributed by @Conaclos\n\n- [useFilenamingConvention](https://biomejs.dev/linter/rules/use-filenaming-convention) now supports [unicase](https://en.wikipedia.org/wiki/Unicase) letters.\n\n [unicase](https://en.wikipedia.org/wiki/Unicase) letters have a single case: they are neither uppercase nor lowercase.\n Biome now accepts filenames in unicase.\n For example, the filename `안녕하세요` is now accepted.\n\n We still reject a name that mixes unicase characters with lowercase or uppercase characters.\n For example, the filename `A안녕하세요` is rejected.\n\n This change also fixes [#3353](https://github.com/biomejs/biome/issues/3353).\n Filenames consisting only of numbers are now accepted.\n\n Contributed by @Conaclos\n\n#### New features\n\n- Add support for GraphQL linting. Contributed by @ematipico\n\n#### Bug fixes\n\n- Don't request alt text for elements hidden from assistive technologies ([#3316](https://github.com/biomejs/biome/issues/3316)). Contributed by @robintown\n- Fix [[#3149](https://github.com/biomejs/biome/issues/3149)] crashes that occurred when applying the `noUselessFragments` unsafe fixes in certain scenarios. Contributed by @unvalley\n- `noExcessiveNestedTestSuites`: Fix another edge case where the rule would alert on heavily nested zod schemas. Contributed by @dyc3\n\n#### New rules\n\n- Add [nursery/noDynamicNamespaceImportAccess](https://biomejs.dev/linter/no-dynamic-namespace-import-access/). Contributed by @minht11\n\n\n- [noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/) n longer report a direct reference to an enum member ([#2974](https://github.com/biomejs/biome/issues/2974)).\n\n In the following code, the `A` reference is no longer reported as an undeclared variable.\n\n ```ts\n enum E {\n A = 1,\n B = A << 1,\n }\n ```\n\n Contributed by @Conaclos\n\n### Parser\n\n#### Bug fixes\n\n- Fix [#3287](https://github.com/biomejs/biome/issues/3287) nested selectors with pseudo-classes. Contributed by @denbezrukov\n- Fix [#3349](https://github.com/biomejs/biome/issues/3349) allow CSS multiple ampersand support. Contributed by @denbezrukov\n```css\n.class {\n && {\n color: red;\n }\n}\n```\n\n\n\n\n\n## What's Changed\n### Other changes\n* feat(graphql_formatter): bootstrap GraphQL formatter by @denbezrukov in https://github.com/biomejs/biome/pull/3255\n* fix(graphql_parser): parse object value in list by @vohoanglong0107 in https://github.com/biomejs/biome/pull/3315\n* feat(graphql_formatter): implement BracketSpacing option by @denbezrukov in https://github.com/biomejs/biome/pull/3310\n* feat(graphql_formatter): format interfaces with comments by @denbezrukov in https://github.com/biomejs/biome/pull/3322\n* chore: fix typo in diagnostic comment by @polyomino24 in https://github.com/biomejs/biome/pull/3321\n* feat(graphql_formatter): format StringValue #3319 by @denbezrukov in https://github.com/biomejs/biome/pull/3320\n* fix(deps): update rust crates by @renovate in https://github.com/biomejs/biome/pull/3328\n* chore(deps): update rust crate serde_json to 1.0.119 by @renovate in https://github.com/biomejs/biome/pull/3327\n* chore(deps): update @biomejs packages by @renovate in https://github.com/biomejs/biome/pull/3326\n* fix(deps): update dependency prettier to v3.3.2 by @renovate in https://github.com/biomejs/biome/pull/3329\n* chore(deps): update dependency dprint to v0.47.0 by @renovate in https://github.com/biomejs/biome/pull/3267\n* chore(deps): update pnpm to v9 by @renovate in https://github.com/biomejs/biome/pull/3331\n* feat(analyzer): expose a method to retrieve a service on demand by @ematipico in https://github.com/biomejs/biome/pull/3286\n* feat(editorconfig): reenable editorconfig support, add cli flag to disable it by @dyc3 in https://github.com/biomejs/biome/pull/3246\n* fix(bench): better tracking for graphql benches by @ematipico in https://github.com/biomejs/biome/pull/3159\n* chore: translate README.md to Hindi by @harshrathod50 in https://github.com/biomejs/biome/pull/3332\n* chore(deps): update github-actions by @renovate in https://github.com/biomejs/biome/pull/3269\n* chore: revert some change in the READMEs by @ematipico in https://github.com/biomejs/biome/pull/3335\n* docs(governance): fix Discord link by @Conaclos in https://github.com/biomejs/biome/pull/3336\n* feat(analyzer): update internal infra to account different rules by @ematipico in https://github.com/biomejs/biome/pull/3275\n* test(editorconfig): additional tests for editorconfig support by @dyc3 in https://github.com/biomejs/biome/pull/3219\n* chore(deps): update rust crate proc-macro2 to 1.0.86 by @renovate in https://github.com/biomejs/biome/pull/3268\n* chore(graphql_formatter): performance tests by @denbezrukov in https://github.com/biomejs/biome/pull/3323\n* feat: support eslint config .eslintrc on migrate by @ArvinQi in https://github.com/biomejs/biome/pull/3342\n* refactor(js_semantic): use u32 for scope id by @Conaclos in https://github.com/biomejs/biome/pull/3358\n* feat(graphql_analyze): noDuplicatedFields by @vohoanglong0107 in https://github.com/biomejs/biome/pull/3308\n* chore(deps): update rust crate serde_json to 1.0.120 by @renovate in https://github.com/biomejs/biome/pull/3376\n* chore(deps): update rust crate serde to 1.0.204 - autoclosed by @renovate in https://github.com/biomejs/biome/pull/3375\n* chore(deps): update github-actions by @renovate in https://github.com/biomejs/biome/pull/3374\n* fix(deps): update rust crates by @renovate in https://github.com/biomejs/biome/pull/3377\n* chore(deps): update @biomejs packages by @renovate in https://github.com/biomejs/biome/pull/3371\n* chore(deps): update dependency dprint to v0.47.1 by @renovate in https://github.com/biomejs/biome/pull/3372\n* ci: update GraphQL cli snapshot by @Conaclos in https://github.com/biomejs/biome/pull/3381\n* ci(repository_dispatch): fix action by @Conaclos in https://github.com/biomejs/biome/pull/3384\n* refactor(js_semantic): use trimmed range to identify scopes and bindings by @Conaclos in https://github.com/biomejs/biome/pull/3385\n* refactor(codegen): call kind src function instead by @dyc3 in https://github.com/biomejs/biome/pull/3382\n* refactor(js_semantic): separate binding and scope nodes by @Conaclos in https://github.com/biomejs/biome/pull/3387\n* refactor(js_semantic): remove dead code by @Conaclos in https://github.com/biomejs/biome/pull/3388\n* ci: update macos image by @ematipico in https://github.com/biomejs/biome/pull/3390\n\n## New Contributors\n* @polyomino24 made their first contribution in https://github.com/biomejs/biome/pull/3321\n* @drdaemos made their first contribution in https://github.com/biomejs/biome/pull/3274\n* @harshrathod50 made their first contribution in https://github.com/biomejs/biome/pull/3332\n* @robintown made their first contribution in https://github.com/biomejs/biome/pull/3324\n* @ArvinQi made their first contribution in https://github.com/biomejs/biome/pull/3342\n\n**Full Changelog**: https://github.com/biomejs/biome/compare/cli/v1.8.3...cli/v1.8.4-nightly.a579bf7", + "reactions": { + "url": "https://api.github.com/repos/biomejs/biome/releases/164463040/reactions", + "total_count": 19, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 10, + "confused": 0, + "heart": 9, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 16 + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/162795860", + "assets_url": "https://api.github.com/repos/biomejs/biome/releases/162795860/assets", + "upload_url": "https://uploads.github.com/repos/biomejs/biome/releases/162795860/assets{?name,label}", + "html_url": "https://github.com/biomejs/biome/releases/tag/cli/v1.8.3", + "id": 162795860, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKAiibM4JtBFU", + "tag_name": "cli/v1.8.3", + "target_commitish": "main", + "name": "CLI v1.8.3", + "draft": false, + "prerelease": false, + "created_at": "2024-06-27T13:38:51Z", + "published_at": "2024-06-27T14:35:07Z", + "assets": [ + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293353", + "id": 176293353, + "node_id": "RA_kwDOKAiibM4KggXp", + "name": "biome-darwin-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 21123864, + "download_count": 6596, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:08Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-darwin-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293354", + "id": 176293354, + "node_id": "RA_kwDOKAiibM4KggXq", + "name": "biome-darwin-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 22746176, + "download_count": 2094, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:09Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-darwin-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293355", + "id": 176293355, + "node_id": "RA_kwDOKAiibM4KggXr", + "name": "biome-linux-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 22723424, + "download_count": 1299, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:09Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-linux-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293360", + "id": 176293360, + "node_id": "RA_kwDOKAiibM4KggXw", + "name": "biome-linux-arm64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 20162144, + "download_count": 561, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:08Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-linux-arm64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293356", + "id": 176293356, + "node_id": "RA_kwDOKAiibM4KggXs", + "name": "biome-linux-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 25865256, + "download_count": 91328, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:09Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-linux-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293357", + "id": 176293357, + "node_id": "RA_kwDOKAiibM4KggXt", + "name": "biome-linux-x64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 24995968, + "download_count": 8513, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:09Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-linux-x64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293358", + "id": 176293358, + "node_id": "RA_kwDOKAiibM4KggXu", + "name": "biome-win32-arm64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 24244736, + "download_count": 587, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:08Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-win32-arm64.exe" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/176293359", + "id": 176293359, + "node_id": "RA_kwDOKAiibM4KggXv", + "name": "biome-win32-x64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 29007360, + "download_count": 7630, + "created_at": "2024-06-27T14:35:07Z", + "updated_at": "2024-06-27T14:35:09Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.3/biome-win32-x64.exe" + } + ], + "tarball_url": "https://api.github.com/repos/biomejs/biome/tarball/cli/v1.8.3", + "zipball_url": "https://api.github.com/repos/biomejs/biome/zipball/cli/v1.8.3", + "body": "\n### CLI\n\n#### Bug fixes\n\n- Fix [#3104](https://github.com/biomejs/biome/issues/3104) by suppressing node warnings when using `biome migrate`. Contributed by @SuperchupuDev\n\n- Force colors to be off when using the GitHub reporter to properly create annotations in GitHub actions ([#3148](https://github.com/biomejs/biome/issues/3148)). Contributed by @Sec-ant\n\n### Parser\n\n#### Bug fixes\n\n- Implement [CSS unicode range](https://github.com/biomejs/biome/pull/3251). Contributed by @denbezrukov\n\n### Formatter\n\n#### Bug fixes\n\n- Fix [#3184](https://github.com/biomejs/biome/issues/3184) CSS formatter converts custom identifiers to lowercase. Contributed by @denbezrukov\n- Fix [#3256](https://github.com/biomejs/biome/issues/3256) constant crashes when editing css files #3256. Contributed by @denbezrukov\n\n### Linter\n\n#### New features\n\n- Add `nursery/useDeprecatedReason` rule. Contributed by @vohoanglong0107.\n- Add [nursery/noExportedImports](https://biomejs.dev/linter/rules/no-exported-imports/). Contributed by @Conaclos\n\n#### Bug fixes\n\n- `useConsistentArrayType` and `useShorthandArrayType` now ignore `Array` in the `extends` and `implements` clauses. Fix [#3247](https://github.com/biomejs/biome/issues/3247). Contributed by @Conaclos\n- Fixes [#3066](https://github.com/biomejs/biome/issues/3066) by taking into account the dependencies declared in the `package.json`. Contributed by @ematipico\n- The code action of the `useArrowFunction` rule now preserves a trailing comma when there is only a single type parameter in the arrow function and JSX is enabled. Fixes [#3292](https://github.com/biomejs/biome/issues/3292). Contributed by @Sec-ant\n\n#### Enhancements\n- Enhance tailwind sorting lint rule [#1274](https://github.com/biomejs/biome/issues/1274) with variant support.\n\n Every preconfigured variant is assigned a `weight` that concurs on establishing the output sorting order.\n Since nesting variants on the same utility class is possible, the resulting `weight` is the Bitwise XOR of all the variants weight for that class.\n Dynamic variants (e.g. `has-[.custom-class]`, `group-[:checked]`) are also supported and they take the `weight` of their base variant name the custom value attached (e.g. `has-[.custom-class]` takes `has` weight).\n Arbitrary variants (e.g. `[&nth-child(2)]`) don't have a weight assigned and they are placed after every known variant.\n Classes with the same amount of arbitrary variants follow lexicographical order. The class that has the highest number of nested arbitrary variants is placed last.\n Screen variants (e.g. `sm:`, `max-md:`, `min-lg:`) are not supported yet.\n\n Contributed by @lutaok\n\n\n\n\n\n## What's Changed\n### Other changes\n* feat(workspace): adds GraphQL parsing capabilities via feature by @ematipico in https://github.com/biomejs/biome/pull/3238\n* feat(editorconfig): expand unknown globs into known globs by @dyc3 in https://github.com/biomejs/biome/pull/3218\n* chore(core): implement `pull_diagnostics` for graphql by @ematipico in https://github.com/biomejs/biome/pull/3248\n* chore(linter): add a rule source of `noUnknownProperty` by @togami2864 in https://github.com/biomejs/biome/pull/3252\n* feat: tailwind variant sorting by @lutaok in https://github.com/biomejs/biome/pull/3208\n* test(parse/json): add test for bug where overrides erroneously override special parsing options by @dyc3 in https://github.com/biomejs/biome/pull/3260\n* docs(analyzer): improve contributing guide for rules with multiple signals by @minht11 in https://github.com/biomejs/biome/pull/3245\n* chore(lint): initialise `biome_graphql_analyze` by @ematipico in https://github.com/biomejs/biome/pull/3276\n* chore(deps): update @biomejs packages by @renovate in https://github.com/biomejs/biome/pull/3266\n* docs(useNamingConvention): add examples and improve explanations by @Conaclos in https://github.com/biomejs/biome/pull/3277\n* refactor(parse/json): change fields in `JsonParserSettings` to `Option` by @dyc3 in https://github.com/biomejs/biome/pull/3272\n* feat(search-output-formatter): initialize search output formatter by @BackupMiles in https://github.com/biomejs/biome/pull/3258\n* chore(grit): implement node-like compilers + fixes by @arendjr in https://github.com/biomejs/biome/pull/3253\n* feat: enable linting for graphql by @ematipico in https://github.com/biomejs/biome/pull/3295\n* refactor(parse/css): change fields in `CssParserSettings` to `Option` by @dyc3 in https://github.com/biomejs/biome/pull/3273\n* refactor: add variables to format strings directly by @hamirmahal in https://github.com/biomejs/biome/pull/3299\n* chore: update codegen to include GraphQL by @ematipico in https://github.com/biomejs/biome/pull/3301\n\n## New Contributors\n* @BackupMiles made their first contribution in https://github.com/biomejs/biome/pull/3258\n* @hamirmahal made their first contribution in https://github.com/biomejs/biome/pull/3299\n\n**Full Changelog**: https://github.com/biomejs/biome/compare/cli/v1.8.2...cli/v1.8.3", + "reactions": { + "url": "https://api.github.com/repos/biomejs/biome/releases/162795860/reactions", + "total_count": 6, + "+1": 3, + "-1": 0, + "laugh": 0, + "hooray": 3, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 15 + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/161449642", + "assets_url": "https://api.github.com/repos/biomejs/biome/releases/161449642/assets", + "upload_url": "https://uploads.github.com/repos/biomejs/biome/releases/161449642/assets{?name,label}", + "html_url": "https://github.com/biomejs/biome/releases/tag/cli/v1.8.2", + "id": 161449642, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKAiibM4Jn4aq", + "tag_name": "cli/v1.8.2", + "target_commitish": "main", + "name": "CLI v1.8.2", + "draft": false, + "prerelease": false, + "created_at": "2024-06-20T10:11:15Z", + "published_at": "2024-06-20T10:38:30Z", + "assets": [ + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894435", + "id": 174894435, + "node_id": "RA_kwDOKAiibM4KbK1j", + "name": "biome-darwin-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 20594104, + "download_count": 1901, + "created_at": "2024-06-20T10:38:30Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-darwin-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894436", + "id": 174894436, + "node_id": "RA_kwDOKAiibM4KbK1k", + "name": "biome-darwin-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 22220568, + "download_count": 659, + "created_at": "2024-06-20T10:38:30Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-darwin-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894434", + "id": 174894434, + "node_id": "RA_kwDOKAiibM4KbK1i", + "name": "biome-linux-arm64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 22235904, + "download_count": 341, + "created_at": "2024-06-20T10:38:30Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-linux-arm64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894437", + "id": 174894437, + "node_id": "RA_kwDOKAiibM4KbK1l", + "name": "biome-linux-arm64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 19629568, + "download_count": 219, + "created_at": "2024-06-20T10:38:31Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-linux-arm64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894439", + "id": 174894439, + "node_id": "RA_kwDOKAiibM4KbK1n", + "name": "biome-linux-x64", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 25295816, + "download_count": 17723, + "created_at": "2024-06-20T10:38:31Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-linux-x64" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894441", + "id": 174894441, + "node_id": "RA_kwDOKAiibM4KbK1p", + "name": "biome-linux-x64-musl", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 24418336, + "download_count": 2021, + "created_at": "2024-06-20T10:38:31Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-linux-x64-musl" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894438", + "id": 174894438, + "node_id": "RA_kwDOKAiibM4KbK1m", + "name": "biome-win32-arm64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 23716352, + "download_count": 282, + "created_at": "2024-06-20T10:38:31Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-win32-arm64.exe" + }, + { + "url": "https://api.github.com/repos/biomejs/biome/releases/assets/174894442", + "id": 174894442, + "node_id": "RA_kwDOKAiibM4KbK1q", + "name": "biome-win32-x64.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 28316672, + "download_count": 2246, + "created_at": "2024-06-20T10:38:31Z", + "updated_at": "2024-06-20T10:38:31Z", + "browser_download_url": "https://github.com/biomejs/biome/releases/download/cli/v1.8.2/biome-win32-x64.exe" + } + ], + "tarball_url": "https://api.github.com/repos/biomejs/biome/tarball/cli/v1.8.2", + "zipball_url": "https://api.github.com/repos/biomejs/biome/zipball/cli/v1.8.2", + "body": "\n### CLI\n\n#### Bug fixes\n\n- Fix [#3201](https://github.com/biomejs/biome/issues/3201) by correctly injecting the source code of the file when printing the diagnostics. Contributed by @ematipico\n- Fix [#3179](https://github.com/biomejs/biome/issues/3179) where comma separators are not correctly removed after running `biome migrate` and thus choke the parser. Contributed by @Sec-ant\n- Fix [#3232](https://github.com/biomejs/biome/issues/3232) by correctly using the colors set by the user. Contributed by @ematipico\n#### Enhancement\n\n- Reword the reporter message `No fixes needed` to `No fixes applied`.\n\n The former message is misleading when there're still errors or warnings in the files that should be taken care of manually. For example:\n\n ```block\n Checked 2 files in