diff --git a/.dev.env b/.dev.env index 8de6e3c..39e6b91 100644 --- a/.dev.env +++ b/.dev.env @@ -2,7 +2,7 @@ INPUT_NPM-PACKAGES=sailpoint-api-client # GitHub repositories -INPUT_GITHUB-REPOSITORIES=sailpoint-oss/sailpoint-cli +INPUT_GITHUB-REPOSITORIES=sailpoint-oss/sailpoint-cli,sailpoint-oss/api-specs # PyPI packages INPUT_PYPI-PACKAGES=sailpoint diff --git a/Test-Readme.md b/Test-Readme.md index f799055..844ddaf 100644 --- a/Test-Readme.md +++ b/Test-Readme.md @@ -1,7 +1,7 @@ # Usage Statistics -Last updated: 8/14/2025, 9:53:13 PM +Last updated: 8/26/2025, 4:22:11 PM Below are stats from artifacts tracked across NPM, GitHub, PyPI and PowerShell. @@ -9,8 +9,8 @@ Below are stats from artifacts tracked across NPM, GitHub, PyPI and PowerShell. | Package | Downloads | Monthly Downloads | Weekly Downloads | Daily Downloads | | --- | --- | --- | --- | --- | -| sailpoint-api-client | 16,740 | 1,308 | 272 | 39 | -| **Total** | **16,740** | **1,308** | **272** | **39** | | | | | +| sailpoint-api-client | 17,075 | 1,113 | 218 | 11 | +| **Total** | **17,075** | **1,113** | **218** | **11** | | | | | ![./charts/npm/sailpoint-api-client-new-downloads-by-month.svg](./charts/npm/sailpoint-api-client-new-downloads-by-month.svg) ![./charts/npm/sailpoint-api-client-cumulative-downloads.svg](./charts/npm/sailpoint-api-client-cumulative-downloads.svg) @@ -19,31 +19,79 @@ Below are stats from artifacts tracked across NPM, GitHub, PyPI and PowerShell. | Repository | Stars | Forks | Watchers | Open Issues | Closed Issues | Total Issues | Release Downloads | Releases | Latest Release | Language | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| sailpoint-oss/sailpoint-cli | 35 | 24 | 35 | 0 | 0 | 0 | 0 | 0 | N/A | Go | -| **Total** | **35** | **24** | **35** | **0** | **0** | **0** | **0** | **0** | | | +| sailpoint-oss/sailpoint-cli | 36 | 24 | 9 | 5 | 35 | 40 | 10,192 | 31 | 2.2.5 | Go | +| sailpoint-oss/api-specs | 14 | 21 | 7 | 20 | 8 | 28 | 191 | 8 | v2025.08.26-1635 | JavaScript | +| **Total** | **50** | **45** | **16** | **25** | **43** | **68** | **10,383** | **39** | | | #### Repository Details: **sailpoint-oss/sailpoint-cli**: +- Last Activity: 4 days ago +- Repository Age: 1,132 days +- Release Count: 31 +- Total Release Downloads: 10,192 +- Latest Release: 2.2.5 +- Latest Release Downloads: 920 +- Views: 383 +- Unique Visitors: 146 +- Clones: 73 +- Top Assets (by downloads): + - sail_windows_amd64_msi: 2,412 + - sail_macos_arm64_tar.gz: 1,519 + - sail_windows_amd64_zip: 1,206 + - sail_linux_amd64_deb: 991 + - sail_windows_386_zip: 789 +- OS Breakdown: + - windows: 5,075 + - linux: 2,768 + - macos: 2,151 +- Arch Breakdown: + - amd64: 5,717 + - arm64: 2,487 + - 386: 1,179 + - armv6: 313 + - i386: 37 +- Format Breakdown: + - tar.gz: 2,906 + - zip: 2,663 + - msi: 2,412 + - deb: 1,437 + - rpm: 576 + +**sailpoint-oss/api-specs**: - Last Activity: 0 days ago -- Repository Age: 0 days -- Release Count: 0 -- Total Release Downloads: 0 -- Latest Release: N/A -- Latest Release Downloads: 0 -- Views: 0 -- Unique Visitors: 0 -- Clones: 0 +- Repository Age: 1,090 days +- Release Count: 8 +- Total Release Downloads: 191 +- Latest Release: v2025.08.26-1635 +- Latest Release Downloads: 24 +- Views: 178 +- Unique Visitors: 34 +- Clones: 248 +- Top Assets (by downloads): + - deref.sailpoint: 191 +- Format Breakdown: + - yaml: 97 + - json: 94 +![./charts/github/sailpoint-oss-sailpoint-cli-release-downloads.svg](./charts/github/sailpoint-oss-sailpoint-cli-release-downloads.svg) +![./charts/github/sailpoint-oss-sailpoint-cli-cumulative-release-downloads.svg](./charts/github/sailpoint-oss-sailpoint-cli-cumulative-release-downloads.svg) +![./charts/github/sailpoint-oss-sailpoint-cli-trend-os.svg](./charts/github/sailpoint-oss-sailpoint-cli-trend-os.svg) +![./charts/github/sailpoint-oss-sailpoint-cli-trend-arch.svg](./charts/github/sailpoint-oss-sailpoint-cli-trend-arch.svg) +![./charts/github/sailpoint-oss-sailpoint-cli-trend-format.svg](./charts/github/sailpoint-oss-sailpoint-cli-trend-format.svg) +![./charts/github/sailpoint-oss-api-specs-release-downloads.svg](./charts/github/sailpoint-oss-api-specs-release-downloads.svg) +![./charts/github/sailpoint-oss-api-specs-cumulative-release-downloads.svg](./charts/github/sailpoint-oss-api-specs-cumulative-release-downloads.svg) +![./charts/github/sailpoint-oss-api-specs-trend-format.svg](./charts/github/sailpoint-oss-api-specs-trend-format.svg) +![./charts/github/sailpoint-oss-api-specs-trend-version.svg](./charts/github/sailpoint-oss-api-specs-trend-version.svg) ### PyPI (Python): | Package | Total Downloads | Monthly Downloads | Weekly Downloads | Daily Downloads | Version | | --- | --- | --- | --- | --- | --- | -| sailpoint | 21,614 | 10,108 | 2,894 | 468 | 1.3.8 | -| **Total** | **21,614** | **10,108** | **2,894** | **468** | | | +| sailpoint | 21,184 | 9,193 | 2,511 | 469 | 1.3.8 | +| **Total** | **21,184** | **9,193** | **2,511** | **469** | | | #### Package Details: @@ -54,13 +102,13 @@ Below are stats from artifacts tracked across NPM, GitHub, PyPI and PowerShell. - Popular installer: pip - Releases: 29 - OS Usage Breakdown - - other: 1782 - - Darwin: 67 + - other: 1629 + - Darwin: 52 - Windows: 87 - - Linux: 9570 + - Linux: 9477 - Python Version Breakdown - python2: 1 - - python3: 9690 + - python3: 9575 ![./charts/pypi/sailpoint-pypi-overall.svg](./charts/pypi/sailpoint-pypi-overall.svg) @@ -73,53 +121,53 @@ Below are stats from artifacts tracked across NPM, GitHub, PyPI and PowerShell. | Module | Total Downloads | Latest Version | Version Downloads | Versions | Last Updated | | --- | --- | --- | --- | --- | --- | -| PSSailPoint | 20,447 | 1.6.6 | 111 | 32 | 8/14/2025 | -| PSSailpoint.V3 | 11,721 | 1.6.6 | 111 | 19 | 8/14/2025 | -| PSSailpoint.Beta | 12,049 | 1.6.6 | 110 | 19 | 8/14/2025 | -| PSSailpoint.V2024 | 11,716 | 1.6.6 | 106 | 19 | 8/14/2025 | -| PSSailpoint.V2025 | 1,009 | 1.6.6 | 102 | 8 | 8/14/2025 | -| **Total** | **56,942** | | | **97** | | +| PSSailPoint | 20,572 | 1.6.6 | 187 | 32 | 8/26/2025 | +| PSSailpoint.V3 | 11,813 | 1.6.6 | 203 | 19 | 8/26/2025 | +| PSSailpoint.Beta | 12,135 | 1.6.6 | 196 | 19 | 8/26/2025 | +| PSSailpoint.V2024 | 11,807 | 1.6.6 | 197 | 19 | 8/26/2025 | +| PSSailpoint.V2025 | 1,099 | 1.6.6 | 190 | 8 | 8/26/2025 | +| **Total** | **57,426** | | | **97** | | #### PowerShell Module Details: **PSSailPoint**: -- Total Downloads: 20,447 +- Total Downloads: 20,572 - Latest Version: 1.6.6 -- Latest Version Downloads: 111 +- Latest Version Downloads: 187 - Version Count: 32 -- Last Updated: 8/14/2025 +- Last Updated: 8/26/2025 - Package Size: 13618 KB **PSSailpoint.V3**: -- Total Downloads: 11,721 +- Total Downloads: 11,813 - Latest Version: 1.6.6 -- Latest Version Downloads: 111 +- Latest Version Downloads: 203 - Version Count: 19 -- Last Updated: 8/14/2025 +- Last Updated: 8/26/2025 - Package Size: 1023 KB **PSSailpoint.Beta**: -- Total Downloads: 12,049 +- Total Downloads: 12,135 - Latest Version: 1.6.6 -- Latest Version Downloads: 110 +- Latest Version Downloads: 196 - Version Count: 19 -- Last Updated: 8/14/2025 +- Last Updated: 8/26/2025 - Package Size: 1526 KB **PSSailpoint.V2024**: -- Total Downloads: 11,716 +- Total Downloads: 11,807 - Latest Version: 1.6.6 -- Latest Version Downloads: 106 +- Latest Version Downloads: 197 - Version Count: 19 -- Last Updated: 8/14/2025 +- Last Updated: 8/26/2025 - Package Size: 1881 KB **PSSailpoint.V2025**: -- Total Downloads: 1,009 +- Total Downloads: 1,099 - Latest Version: 1.6.6 -- Latest Version Downloads: 102 +- Latest Version Downloads: 190 - Version Count: 8 -- Last Updated: 8/14/2025 +- Last Updated: 8/26/2025 - Package Size: 1923 KB diff --git a/charts/github/sailpoint-oss-api-specs-cumulative-release-downloads.svg b/charts/github/sailpoint-oss-api-specs-cumulative-release-downloads.svg new file mode 100644 index 0000000..195298c --- /dev/null +++ b/charts/github/sailpoint-oss-api-specs-cumulative-release-downloads.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-api-specs-release-downloads.svg b/charts/github/sailpoint-oss-api-specs-release-downloads.svg new file mode 100644 index 0000000..75c700a --- /dev/null +++ b/charts/github/sailpoint-oss-api-specs-release-downloads.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-api-specs-trend-format.svg b/charts/github/sailpoint-oss-api-specs-trend-format.svg new file mode 100644 index 0000000..3f57b91 --- /dev/null +++ b/charts/github/sailpoint-oss-api-specs-trend-format.svg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-api-specs-trend-version.svg b/charts/github/sailpoint-oss-api-specs-trend-version.svg new file mode 100644 index 0000000..3550cfc --- /dev/null +++ b/charts/github/sailpoint-oss-api-specs-trend-version.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-sailpoint-cli-cumulative-release-downloads.svg b/charts/github/sailpoint-oss-sailpoint-cli-cumulative-release-downloads.svg index 50177d4..6ebc3fe 100644 --- a/charts/github/sailpoint-oss-sailpoint-cli-cumulative-release-downloads.svg +++ b/charts/github/sailpoint-oss-sailpoint-cli-cumulative-release-downloads.svg @@ -188,31 +188,31 @@ - + - + - + - + - + @@ -327,13 +327,13 @@ - + - + @@ -369,37 +369,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-sailpoint-cli-release-downloads.svg b/charts/github/sailpoint-oss-sailpoint-cli-release-downloads.svg index 396c6ea..a340780 100644 --- a/charts/github/sailpoint-oss-sailpoint-cli-release-downloads.svg +++ b/charts/github/sailpoint-oss-sailpoint-cli-release-downloads.svg @@ -194,31 +194,31 @@ - + - + - + - + - + @@ -440,39 +440,39 @@ - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + @@ -510,11 +510,11 @@ - + - - + + @@ -524,11 +524,11 @@ - + - - + + @@ -538,17 +538,17 @@ - + - - + + - + - - + + diff --git a/charts/github/sailpoint-oss-sailpoint-cli-top-release-downloads.svg b/charts/github/sailpoint-oss-sailpoint-cli-top-release-downloads.svg deleted file mode 100644 index 05adec9..0000000 --- a/charts/github/sailpoint-oss-sailpoint-cli-top-release-downloads.svg +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/charts/github/sailpoint-oss-sailpoint-cli-trend-arch.svg b/charts/github/sailpoint-oss-sailpoint-cli-trend-arch.svg new file mode 100644 index 0000000..1a66d27 --- /dev/null +++ b/charts/github/sailpoint-oss-sailpoint-cli-trend-arch.svg @@ -0,0 +1,757 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-sailpoint-cli-trend-format.svg b/charts/github/sailpoint-oss-sailpoint-cli-trend-format.svg new file mode 100644 index 0000000..9e4b484 --- /dev/null +++ b/charts/github/sailpoint-oss-sailpoint-cli-trend-format.svg @@ -0,0 +1,809 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/github/sailpoint-oss-sailpoint-cli-trend-os.svg b/charts/github/sailpoint-oss-sailpoint-cli-trend-os.svg new file mode 100644 index 0000000..7053f1e --- /dev/null +++ b/charts/github/sailpoint-oss-sailpoint-cli-trend-os.svg @@ -0,0 +1,589 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/npm/sailpoint-api-client-cumulative-downloads.svg b/charts/npm/sailpoint-api-client-cumulative-downloads.svg index c473e0f..7e1481f 100644 --- a/charts/npm/sailpoint-api-client-cumulative-downloads.svg +++ b/charts/npm/sailpoint-api-client-cumulative-downloads.svg @@ -350,13 +350,13 @@ - + - + @@ -422,7 +422,7 @@ - - + + diff --git a/charts/npm/sailpoint-api-client-new-downloads-by-month.svg b/charts/npm/sailpoint-api-client-new-downloads-by-month.svg index 922a63d..58d6581 100644 --- a/charts/npm/sailpoint-api-client-new-downloads-by-month.svg +++ b/charts/npm/sailpoint-api-client-new-downloads-by-month.svg @@ -350,13 +350,13 @@ - + - + @@ -422,7 +422,7 @@ - - + + diff --git a/charts/powershell/powershell-combined-downloads.svg b/charts/powershell/powershell-combined-downloads.svg index aa4b2c5..6230a45 100644 --- a/charts/powershell/powershell-combined-downloads.svg +++ b/charts/powershell/powershell-combined-downloads.svg @@ -115,374 +115,374 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + @@ -509,8 +509,8 @@ - - + + @@ -675,7 +675,7 @@ - - + + diff --git a/charts/powershell/powershell-cumulative-downloads.svg b/charts/powershell/powershell-cumulative-downloads.svg index 1fb986e..2f3f968 100644 --- a/charts/powershell/powershell-cumulative-downloads.svg +++ b/charts/powershell/powershell-cumulative-downloads.svg @@ -127,410 +127,410 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + @@ -557,173 +557,173 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/pypi/sailpoint-pypi-installer.svg b/charts/pypi/sailpoint-pypi-installer.svg index 902e57b..a7b04f6 100644 --- a/charts/pypi/sailpoint-pypi-installer.svg +++ b/charts/pypi/sailpoint-pypi-installer.svg @@ -1,1093 +1,1067 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - + - - + + - + - + - + - + - + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/pypi/sailpoint-pypi-overall.svg b/charts/pypi/sailpoint-pypi-overall.svg index 4f11e7c..4ce29b7 100644 --- a/charts/pypi/sailpoint-pypi-overall.svg +++ b/charts/pypi/sailpoint-pypi-overall.svg @@ -1,509 +1,489 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/pypi/sailpoint-pypi-python-major-totals.svg b/charts/pypi/sailpoint-pypi-python-major-totals.svg deleted file mode 100644 index 72b97f8..0000000 --- a/charts/pypi/sailpoint-pypi-python-major-totals.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/charts/pypi/sailpoint-pypi-python-major.svg b/charts/pypi/sailpoint-pypi-python-major.svg index 96afde0..e613838 100644 --- a/charts/pypi/sailpoint-pypi-python-major.svg +++ b/charts/pypi/sailpoint-pypi-python-major.svg @@ -1,505 +1,493 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/pypi/sailpoint-pypi-python-minor-totals.svg b/charts/pypi/sailpoint-pypi-python-minor-totals.svg deleted file mode 100644 index 033ff2a..0000000 --- a/charts/pypi/sailpoint-pypi-python-minor-totals.svg +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/charts/pypi/sailpoint-pypi-python-minor.svg b/charts/pypi/sailpoint-pypi-python-minor.svg index 608dbc0..4159da3 100644 --- a/charts/pypi/sailpoint-pypi-python-minor.svg +++ b/charts/pypi/sailpoint-pypi-python-minor.svg @@ -1,1093 +1,985 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - + - - + + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - - - - - - - - - - - - - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/pypi/sailpoint-pypi-system-totals.svg b/charts/pypi/sailpoint-pypi-system-totals.svg deleted file mode 100644 index 3f3bb47..0000000 --- a/charts/pypi/sailpoint-pypi-system-totals.svg +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/charts/pypi/sailpoint-pypi-system.svg b/charts/pypi/sailpoint-pypi-system.svg index eec2f0e..f2f3adc 100644 --- a/charts/pypi/sailpoint-pypi-system.svg +++ b/charts/pypi/sailpoint-pypi-system.svg @@ -1,673 +1,657 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - + - - + + - + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..fb84b27 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +onlyBuiltDependencies: + - skia-canvas diff --git a/src/collectors/github.ts b/src/collectors/github.ts index 771fbda..a78d521 100644 --- a/src/collectors/github.ts +++ b/src/collectors/github.ts @@ -11,6 +11,130 @@ const PlatformSettings = { name: 'GitHub', } +export interface ParsedAsset { + project: string; + os: string; + arch: string; + format: string; + variant: string; + version: string; + original: string; +} + +const OS_MAP: Record = { + linux: 'linux', + darwin: 'macos', + mac: 'macos', + macos: 'macos', + windows: 'windows', + win: 'windows', + freebsd: 'freebsd', +}; + +const ARCHES = ['amd64', 'x64', 'arm64', 'armv6', '386', 'i386'] as const; +const FORMATS = ['zip','tar.gz','tar.bz2','tar.xz','deb','rpm','msi','exe','txt','yaml','yml','json'] as const; +const VARIANTS = ['docs','installer'] as const; + +export function parseReleaseAsset(filename: string): ParsedAsset { + const original = filename; + + let project = ''; + let os = ''; + let arch = ''; + let format = ''; + let variant = ''; + let version = ''; + + // Extract format (extension) + const extRegex = new RegExp(`\\.(${FORMATS.join('|')})$`, 'i'); + const extMatch = filename.match(extRegex); + format = extMatch ? extMatch[1].toLowerCase() : ''; + + // Remove extension and normalize separators + const nameWithoutExt = filename.replace(extRegex, '').replace(/[_-]/g, '.'); + + const parts = nameWithoutExt.split('.'); + + // API / special variants detection + const apiIndex = parts.findIndex(p => p.toLowerCase() === 'api' || p.toLowerCase() === 'nerm' || p.toLowerCase() === 'beta'); + if (apiIndex >= 0) { + project = parts.slice(0, apiIndex).join('.'); + let varMatch = parts.slice(apiIndex).join(' '); + // Recognize versions for API specs: nerm, nerm v2025, v3, v2024, v2025, beta + const nermMatch = varMatch.match(/nerm(?:\s+v\d{4})?/i); + const vDigitMatch = varMatch.match(/v\d{1,4}\b/i); + const betaMatch = varMatch.match(/\bbeta\b/i); + const semverMatch = varMatch.match(/\d+\.\d+(?:\.\d+)?/); + if (nermMatch) { + version = nermMatch[0]; + } else if (vDigitMatch) { + version = vDigitMatch[0]; + } else if (betaMatch) { + version = 'beta'; + } else if (semverMatch) { + version = semverMatch[0]; + } + // Do not set OS to 'api' – leave blank for API specs + os = ''; + arch = ''; + return { project, os, arch, format, variant, version, original }; + } + + // Version detection + for (const part of parts) { + const semverMatch = part.match(/^v?(\d+\.\d+(\.\d+)?)$/); + if (semverMatch) { + version = semverMatch[1]; + break; + } + } + + // OS detection + for (const part of parts) { + const lower = part.toLowerCase(); + if (OS_MAP[lower]) os = OS_MAP[lower]; + } + + // Arch detection + for (const part of parts) { + const lower = part.toLowerCase(); + if ((ARCHES as readonly string[]).includes(lower)) arch = lower === 'x64' ? 'amd64' : lower; + } + + // Variant detection + for (const part of parts) { + const lower = part.toLowerCase(); + if ((VARIANTS as readonly string[]).includes(lower)) variant = lower; + } + + // Project is first part if not already set + if (!project) project = parts[0]; + + return { project, os, arch, format, variant, version, original }; +} + +// Build a grouping key from parsed asset parts, excluding version and +// collapsing YAML/JSON specs to the same group by omitting the format. +function buildParsedAssetKey(parsed: ParsedAsset): string { + const parts: string[] = []; + const project = parsed.project?.toLowerCase().trim(); + const os = parsed.os?.toLowerCase().trim(); + const arch = parsed.arch?.toLowerCase().trim(); + let variant = (parsed.variant || '').toLowerCase(); + if (parsed.version) { + variant = variant.replace(parsed.version.toLowerCase(), '').replace(/[._-]+$/g, '').trim(); + } + if (project) parts.push(project); + if (os) parts.push(os); + if (arch) parts.push(arch); + if (variant) parts.push(variant); + const fmt = (parsed.format || '').toLowerCase(); + if (fmt && fmt !== 'yaml' && fmt !== 'yml' && fmt !== 'json') { + parts.push(fmt); + } + return parts.join('_'); +} + // GraphQL query for basic repository data (without releases) const REPOSITORY_BASIC_QUERY = ` query RepositoryBasicData($owner: String!, $name: String!) { @@ -91,36 +215,17 @@ interface GraphQLRepositoryBasicResponse { homepageUrl: string | null; stargazerCount: number; forkCount: number; - watchers: { - totalCount: number; - }; - openIssues: { - totalCount: number; - }; - closedIssues: { - totalCount: number; - }; - primaryLanguage: { - name: string; - } | null; + watchers: { totalCount: number }; + openIssues: { totalCount: number }; + closedIssues: { totalCount: number }; + primaryLanguage: { name: string } | null; diskUsage: number; createdAt: string; updatedAt: string; pushedAt: string; - defaultBranchRef: { - name: string; - } | null; - repositoryTopics: { - nodes: Array<{ - topic: { - name: string; - }; - }>; - }; - licenseInfo: { - name: string; - spdxId: string; - } | null; + defaultBranchRef: { name: string } | null; + repositoryTopics: { nodes: Array<{ topic: { name: string } }> }; + licenseInfo: { name: string; spdxId: string } | null; } | null; } @@ -149,219 +254,275 @@ interface GraphQLReleasesResponse { } | null; } +export async function collectGithub(repository: string): Promise { + try { + const [owner, repo] = repository.split('/'); - export async function collectGithub(repository: string): Promise { + if (!owner || !repo) { + throw new Error(`Invalid repository format: ${repository}. Expected "owner/repo"`); + } + + // Initialize Octokit for REST API calls + const token = core.getInput('github-token'); + const octokit = new Octokit({ + auth: token, + userAgent: 'usage-statistics-tracker' + }); + + if (!token) { + console.warn('No GitHub token provided. Using unauthenticated requests (rate limited).'); + } + + // Step 1: Fetch basic repository data using GraphQL + let graphqlData: any = null; try { - const [owner, repo] = repository.split('/'); - - if (!owner || !repo) { - throw new Error(`Invalid repository format: ${repository}. Expected "owner/repo"`); - } - - // Initialize Octokit for REST API calls - const token = core.getInput('github-token'); - const octokit = new Octokit({ - auth: token, - userAgent: 'usage-statistics-tracker' + const graphqlClient = graphql.defaults({ + headers: { authorization: token ? `token ${token}` : undefined }, }); - - if (!token) { - console.warn('No GitHub token provided. Using unauthenticated requests (rate limited).'); + + const basicResponse = await graphqlClient(REPOSITORY_BASIC_QUERY, { + owner, + name: repo + }); + + if (basicResponse.repository) { + graphqlData = basicResponse.repository; } - - // Step 1: Fetch basic repository data using GraphQL - let graphqlData: any = null; - - try { - const graphqlClient = graphql.defaults({ - headers: { - authorization: token ? `token ${token}` : undefined, - }, - }); - - // Fetch basic repository data (without releases) - const basicResponse = await graphqlClient(REPOSITORY_BASIC_QUERY, { - owner, - name: repo - }); - - if (basicResponse.repository) { - graphqlData = basicResponse.repository; - } - } catch (error) { - console.warn(`Could not fetch GitHub GraphQL basic data for ${repository}:`, error); - } - - // Step 2: Fetch releases data separately using GraphQL - let totalReleaseDownloads = 0; - let latestReleaseDownloads = 0; - let releaseCount = 0; - let downloadRange = []; - let latestRelease = null; - - try { - const graphqlClient = graphql.defaults({ - headers: { - authorization: token ? `token ${token}` : undefined, - }, - }); - - // Fetch releases data - const releasesResponse = await graphqlClient(RELEASES_QUERY, { - owner, - name: repo, - first: 100 - }); - - if (releasesResponse.repository?.releases?.nodes) { - const releases = releasesResponse.repository.releases.nodes.filter(Boolean); - releaseCount = releases.length; - - for (const release of releases) { - let releaseDownloads = 0; - if (release?.releaseAssets?.nodes) { - for (const asset of release.releaseAssets.nodes) { - if (asset) { - releaseDownloads += asset.downloadCount || 0; + } catch (error) { + console.warn(`Could not fetch GitHub GraphQL basic data for ${repository}:`, error); + } + + // Step 2: Fetch releases data + let totalReleaseDownloads = 0; + let latestReleaseDownloads = 0; + let releaseCount = 0; + let downloadRange = []; + let latestRelease = null; + let assetTotalsByName: Record = {}; + let assetReleaseSeries: Record> = {}; + let assetAttributesByKey: Record = {}; + // Additional breakdowns derived from parsed assets + let assetTotalsByParsedKey: Record = {}; + let totalsByOs: Record = {}; + let totalsByArch: Record = {}; + let totalsByFormat: Record = {}; + let totalsByVariant: Record = {}; + // Per-dimension per-release series for accurate trend charts + let attributeReleaseSeries: Record<'os'|'arch'|'format'|'variant'|'version', Record>> = { + os: {}, + arch: {}, + format: {}, + variant: {}, + version: {}, + }; + + try { + const graphqlClient = graphql.defaults({ + headers: { authorization: token ? `token ${token}` : undefined }, + }); + + const releasesResponse = await graphqlClient(RELEASES_QUERY, { + owner, + name: repo, + first: 100 + }); + + if (releasesResponse.repository?.releases?.nodes) { + const releases = releasesResponse.repository.releases.nodes.filter(Boolean); + releaseCount = releases.length; + + for (const release of releases) { + let releaseDownloads = 0; + if (release?.releaseAssets?.nodes) { + for (const asset of release.releaseAssets.nodes) { + if (asset) { + releaseDownloads += asset.downloadCount || 0; + const rawAssetName = asset.name; + const parsed = parseReleaseAsset(rawAssetName); + const parsedKey = buildParsedAssetKey(parsed); + const assetKey = parsedKey || rawAssetName.toLowerCase(); + const assetDownloads = asset.downloadCount || 0; + + // Skip checksum assets entirely + if (parsed.variant && parsed.variant.toLowerCase().includes('checksum')) { + continue; } + + assetTotalsByName[assetKey] = (assetTotalsByName[assetKey] || 0) + assetDownloads; + assetTotalsByParsedKey[parsedKey] = (assetTotalsByParsedKey[parsedKey] || 0) + assetDownloads; + + // Persist attribute mapping for charting by dimensions + if (!assetAttributesByKey[assetKey]) { + assetAttributesByKey[assetKey] = { + project: parsed.project || undefined, + os: parsed.os || undefined, + arch: parsed.arch || undefined, + format: parsed.format || undefined, + variant: parsed.variant || undefined, + version: parsed.version || undefined, + }; + } + + if (parsed.os) totalsByOs[parsed.os] = (totalsByOs[parsed.os] || 0) + assetDownloads; + if (parsed.arch) totalsByArch[parsed.arch] = (totalsByArch[parsed.arch] || 0) + assetDownloads; + if (parsed.format) totalsByFormat[parsed.format] = (totalsByFormat[parsed.format] || 0) + assetDownloads; + if (parsed.variant) totalsByVariant[parsed.variant] = (totalsByVariant[parsed.variant] || 0) + assetDownloads; + + // Build per-dimension series over releases + const tag = release.tagName; + if (parsed.os) { + if (!attributeReleaseSeries.os[parsed.os]) attributeReleaseSeries.os[parsed.os] = {}; + attributeReleaseSeries.os[parsed.os][tag] = (attributeReleaseSeries.os[parsed.os][tag] || 0) + assetDownloads; + } + if (parsed.arch) { + if (!attributeReleaseSeries.arch[parsed.arch]) attributeReleaseSeries.arch[parsed.arch] = {}; + attributeReleaseSeries.arch[parsed.arch][tag] = (attributeReleaseSeries.arch[parsed.arch][tag] || 0) + assetDownloads; + } + if (parsed.format) { + if (!attributeReleaseSeries.format[parsed.format]) attributeReleaseSeries.format[parsed.format] = {}; + attributeReleaseSeries.format[parsed.format][tag] = (attributeReleaseSeries.format[parsed.format][tag] || 0) + assetDownloads; + } + if (parsed.variant) { + if (!attributeReleaseSeries.variant[parsed.variant]) attributeReleaseSeries.variant[parsed.variant] = {}; + attributeReleaseSeries.variant[parsed.variant][tag] = (attributeReleaseSeries.variant[parsed.variant][tag] || 0) + assetDownloads; + } + if (parsed.version) { + const versionKey = parsed.version.toLowerCase(); + if (!attributeReleaseSeries.version[versionKey]) attributeReleaseSeries.version[versionKey] = {}; + attributeReleaseSeries.version[versionKey][tag] = (attributeReleaseSeries.version[versionKey][tag] || 0) + assetDownloads; + } + + const day = release?.publishedAt || release?.createdAt; + if (!assetReleaseSeries[assetKey]) { + assetReleaseSeries[assetKey] = []; + } + assetReleaseSeries[assetKey].push({ + tagName: release.tagName, + day: day || '', + downloads: assetDownloads, + }); } } - totalReleaseDownloads += releaseDownloads; - - // Latest release is the first one in the list - if (release && release === releases[0]) { - latestReleaseDownloads = releaseDownloads; - latestRelease = release.tagName; - } - - // Add to download range with proper date format for charts - if (release?.publishedAt) { - downloadRange.push({ - day: release.publishedAt, - downloads: releaseDownloads, - tagName: release.tagName - }); - } + } + totalReleaseDownloads += releaseDownloads; + + if (release && release === releases[0]) { + latestReleaseDownloads = releaseDownloads; + latestRelease = release.tagName; + } + + if (release?.publishedAt) { + downloadRange.push({ + day: release.publishedAt, + downloads: releaseDownloads, + tagName: release.tagName + }); } } - } catch (error) { - console.warn(`Could not fetch GitHub GraphQL releases data for ${repository}:`, error); } - - // Fallback to REST API if GraphQL fails or for additional data - let restData: any = null; - - try { - const { data: repoData } = await octokit.repos.get({ - owner, - repo - }); - restData = repoData; - } catch (error) { - console.warn(`Could not fetch GitHub REST data for ${repository}:`, error); - } - - // Use the best available data (GraphQL preferred, REST as fallback) - const finalData = graphqlData || restData; - - if (!finalData) { - throw new Error('Could not fetch repository data from either GraphQL or REST API'); - } - - // Get traffic statistics using REST API (requires authentication) - let viewsCount = 0; - let uniqueVisitors = 0; - let clonesCount = 0; - - if (token) { - try { - // Get views data - const { data: viewsData } = await octokit.repos.getViews({ - owner, - repo - }); - - if (viewsData) { - viewsCount = viewsData.count || 0; - uniqueVisitors = viewsData.uniques || 0; - } - - // Get clones data - const { data: clonesData } = await octokit.repos.getClones({ - owner, - repo - }); - - if (clonesData) { - clonesCount = clonesData.count || 0; - } - } catch (error) { - console.warn(`Could not fetch GitHub traffic data for ${repository}:`, error); - } - } - - // Calculate repository age - let repositoryAge = 0; - if (finalData.createdAt) { - const created = new Date(finalData.createdAt); - const now = new Date(); - repositoryAge = Math.floor((now.getTime() - created.getTime()) / (1000 * 60 * 60 * 24)); // days - } - - // Calculate activity metrics - let lastActivity = 0; - if (finalData.pushedAt) { - const pushed = new Date(finalData.pushedAt); - const now = new Date(); - lastActivity = Math.floor((now.getTime() - pushed.getTime()) / (1000 * 60 * 60 * 24)); // days - } - - return { - platform: PlatformSettings.name, - name: repository, - timestamp: new Date().toISOString(), - metrics: { - stars: finalData.stargazerCount || finalData.stargazers_count || 0, - forks: finalData.forkCount || finalData.forks_count || 0, - watchers: finalData.watchers?.totalCount || finalData.watchers_count || 0, - totalIssues: finalData.openIssues?.totalCount + finalData.closedIssues?.totalCount || 0, - openIssues: finalData.openIssues?.totalCount || 0, - closedIssues: finalData.closedIssues?.totalCount || 0, - language: finalData.primaryLanguage?.name || finalData.language || null, - size: finalData.diskUsage || finalData.size || null, - repositoryAge, - lastActivity, - releaseCount, - totalReleaseDownloads, - latestReleaseDownloads, - viewsCount, - uniqueVisitors, - latestRelease, - clonesCount, - topics: finalData.repositoryTopics?.nodes?.length || finalData.topics?.length || 0, - license: finalData.licenseInfo?.name || finalData.license?.name || null, - defaultBranch: finalData.defaultBranchRef?.name || finalData.default_branch || null, - downloadsTotal: totalReleaseDownloads || 0, - downloadRange, - } - }; } catch (error) { - return { - platform: PlatformSettings.name, - name: repository, - timestamp: new Date().toISOString(), - metrics: {}, - error: error instanceof Error ? error.message : String(error) - }; + console.warn(`Could not fetch GitHub GraphQL releases data for ${repository}:`, error); } - } - - export async function collectGithubBatch(repositories: string[]): Promise { - const results: Promise[] = []; - - for (const repo of repositories) { - results.push(collectGithub(repo)); + + // Fallback REST API call + let restData: any = null; + try { + const { data: repoData } = await octokit.repos.get({ owner, repo }); + restData = repoData; + } catch (error) { + console.warn(`Could not fetch GitHub REST data for ${repository}:`, error); } - - return Promise.all(results); + + const finalData = graphqlData || restData; + if (!finalData) throw new Error('Could not fetch repository data from either GraphQL or REST API'); + + // Repo traffic stats + let viewsCount = 0; + let uniqueVisitors = 0; + let clonesCount = 0; + if (token) { + try { + const { data: viewsData } = await octokit.repos.getViews({ owner, repo }); + if (viewsData) { + viewsCount = viewsData.count || 0; + uniqueVisitors = viewsData.uniques || 0; + } + const { data: clonesData } = await octokit.repos.getClones({ owner, repo }); + if (clonesData) { + clonesCount = clonesData.count || 0; + } + } catch (error) { + console.warn(`Could not fetch GitHub traffic data for ${repository}:`, error); + } + } + + // Repository age and last activity + let repositoryAge = 0; + if (finalData.createdAt) { + const created = new Date(finalData.createdAt); + const now = new Date(); + repositoryAge = Math.floor((now.getTime() - created.getTime()) / (1000 * 60 * 60 * 24)); + } + let lastActivity = 0; + if (finalData.pushedAt) { + const pushed = new Date(finalData.pushedAt); + const now = new Date(); + lastActivity = Math.floor((now.getTime() - pushed.getTime()) / (1000 * 60 * 60 * 24)); + } + + return { + platform: PlatformSettings.name, + name: repository, + timestamp: new Date().toISOString(), + metrics: { + stars: finalData.stargazerCount || finalData.stargazers_count || 0, + forks: finalData.forkCount || finalData.forks_count || 0, + watchers: finalData.watchers?.totalCount || finalData.watchers_count || 0, + totalIssues: finalData.openIssues?.totalCount + finalData.closedIssues?.totalCount || 0, + openIssues: finalData.openIssues?.totalCount || 0, + closedIssues: finalData.closedIssues?.totalCount || 0, + language: finalData.primaryLanguage?.name || finalData.language || null, + size: finalData.diskUsage || finalData.size || null, + repositoryAge, + lastActivity, + releaseCount, + totalReleaseDownloads, + latestReleaseDownloads, + viewsCount, + uniqueVisitors, + latestRelease, + clonesCount, + topics: finalData.repositoryTopics?.nodes?.length || finalData.topics?.length || 0, + license: finalData.licenseInfo?.name || finalData.license?.name || null, + defaultBranch: finalData.defaultBranchRef?.name || finalData.default_branch || null, + downloadsTotal: totalReleaseDownloads || 0, + downloadRange, + assetTotalsByName, + assetReleaseSeries, + assetTotalsByParsedKey, + totalsByOs, + totalsByArch, + totalsByFormat, + totalsByVariant, + attributeReleaseSeries, + assetAttributesByKey, + } + }; + } catch (error) { + return { + platform: PlatformSettings.name, + name: repository, + timestamp: new Date().toISOString(), + metrics: {}, + error: error instanceof Error ? error.message : String(error) + }; } +} + +export async function collectGithubBatch(repositories: string[]): Promise { + const results: Promise[] = []; + for (const repo of repositories) { + results.push(collectGithub(repo)); + } + return Promise.all(results); +} diff --git a/src/summaries/github.ts b/src/summaries/github.ts index d754195..c55b2b9 100644 --- a/src/summaries/github.ts +++ b/src/summaries/github.ts @@ -13,24 +13,28 @@ Chart.register(...registerables); */ function safeSemverCompare(a: string, b: string): number { try { - // Clean and validate versions const cleanA = a.trim(); const cleanB = b.trim(); - - // Check if versions are valid semver if (!semver.valid(cleanA) || !semver.valid(cleanB)) { - // Fall back to string comparison for invalid semver return cleanA.localeCompare(cleanB); } - return semver.compare(cleanA, cleanB); - } catch (error) { - console.warn(`Semver comparison failed for "${a}" vs "${b}":`, error); - // Fall back to string comparison + } catch { return a.trim().localeCompare(b.trim()); } } +/** + * Prettify a normalized asset key for charts/summaries + * Example: "sail|linux|amd64|yaml" -> "Sail / Linux / Amd64 / Yaml" + */ +function formatAssetLabel(key: string): string { + return key + .split("|") + .map(part => part.charAt(0).toUpperCase() + part.slice(1)) + .join(" / "); +} + export function formatGitHubSummary(summary: string, platformMetrics: MetricResult[]): string { let totalStars = 0 let totalForks = 0 @@ -75,7 +79,7 @@ export function formatGitHubSummary(summary: string, platformMetrics: MetricResu export async function addRepoDetails(summary: string, metrics: MetricResult[]) { summary += `#### Repository Details:\n\n` - + for (const metric of metrics) { summary += `**${metric.name}**:\n` summary += `- Last Activity: ${metric.metrics?.lastActivity?.toLocaleString() || 0} days ago\n` @@ -87,6 +91,44 @@ export async function addRepoDetails(summary: string, metrics: MetricResult[]) { summary += `- Views: ${metric.metrics?.viewsCount?.toLocaleString() || 0}\n` summary += `- Unique Visitors: ${metric.metrics?.uniqueVisitors?.toLocaleString() || 0}\n` summary += `- Clones: ${metric.metrics?.clonesCount?.toLocaleString() || 0}\n` + // Include top assets using parsed grouping keys for better aggregation + const assetTotalsByParsedKey: Record | undefined = metric.metrics?.assetTotalsByParsedKey + if (assetTotalsByParsedKey && Object.keys(assetTotalsByParsedKey).length > 0) { + const topAssets = Object.entries(assetTotalsByParsedKey) + .sort((a, b) => b[1] - a[1]) + .slice(0, 5) + if (topAssets.length > 0) { + summary += `- Top Assets (by downloads):\n` + for (const [assetName, count] of topAssets) { + summary += ` - ${assetName}: ${count.toLocaleString()}\n` + } + } + } + // OS/Arch/Format/Variant breakdowns + const totalsByOs: Record | undefined = metric.metrics?.totalsByOs + const totalsByArch: Record | undefined = metric.metrics?.totalsByArch + const totalsByFormat: Record | undefined = metric.metrics?.totalsByFormat + const totalsByVariant: Record | undefined = metric.metrics?.totalsByVariant + if (totalsByOs && Object.keys(totalsByOs).length > 0) { + const ordered = Object.entries(totalsByOs).sort((a,b)=>b[1]-a[1]).slice(0,5) + summary += `- OS Breakdown:\n` + for (const [k,v] of ordered) summary += ` - ${k}: ${v.toLocaleString()}\n` + } + if (totalsByArch && Object.keys(totalsByArch).length > 0) { + const ordered = Object.entries(totalsByArch).sort((a,b)=>b[1]-a[1]).slice(0,5) + summary += `- Arch Breakdown:\n` + for (const [k,v] of ordered) summary += ` - ${k}: ${v.toLocaleString()}\n` + } + if (totalsByFormat && Object.keys(totalsByFormat).length > 0) { + const ordered = Object.entries(totalsByFormat).sort((a,b)=>b[1]-a[1]).slice(0,5) + summary += `- Format Breakdown:\n` + for (const [k,v] of ordered) summary += ` - ${k}: ${v.toLocaleString()}\n` + } + if (totalsByVariant && Object.keys(totalsByVariant).length > 0) { + const ordered = Object.entries(totalsByVariant).sort((a,b)=>b[1]-a[1]).slice(0,5) + summary += `- Variant Breakdown:\n` + for (const [k,v] of ordered) summary += ` - ${k}: ${v.toLocaleString()}\n` + } summary += `\n` } @@ -110,8 +152,11 @@ export async function createGitHubReleaseChart(platformMetrics: MetricResult[], svgOutputPathList.push(svgOutputPath) const svgOutputPathCumulative = await createCumulativeDownloadsChart(metric, outputPath) svgOutputPathList.push(svgOutputPathCumulative) - const svgOutputPathReleases = await createReleaseDownloadsChart(metric, outputPath) - svgOutputPathList.push(svgOutputPathReleases) + // Create trend charts by dimensions if parsed attributes exist + if (metric.metrics?.assetReleaseSeries && metric.metrics?.assetAttributesByKey) { + const trends = await createParsedAttributeTrendCharts(metric, outputPath) + svgOutputPathList.push(...trends) + } } } @@ -120,226 +165,209 @@ export async function createGitHubReleaseChart(platformMetrics: MetricResult[], function groupByReleaseCumulative(releaseRange: { day: string, downloads: number, tagName?: string }[]){ const releases: Record = {} - for (const release of releaseRange.sort((a, b) => { - return safeSemverCompare(a.tagName || '0.0.0', b.tagName || '0.0.0') - })) { - if (!release.tagName) { - continue - } + for (const release of releaseRange.sort((a: { tagName?: string }, b: { tagName?: string }) => safeSemverCompare(a.tagName || '0.0.0', b.tagName || '0.0.0'))) { + if (!release.tagName) continue if (!releases[release.tagName]) { - releases[release.tagName] = {downloads: release.downloads, tagName: release.tagName || ''} + releases[release.tagName] = {downloads: release.downloads, tagName: release.tagName} } else { releases[release.tagName].downloads += release.downloads } } - let cumulativeDownloads = 0 - - for (const release of Object.keys(releases).sort((a, b) => { - return safeSemverCompare(a, b) - })) { + for (const release of Object.keys(releases).sort((a: string, b: string) => safeSemverCompare(a, b))) { cumulativeDownloads += releases[release].downloads releases[release].downloads = cumulativeDownloads } - return releases } export async function createDownloadsPerReleaseChart(metric: MetricResult, outputPath: string): Promise { const downloadsRange = metric.metrics?.downloadRange || [] const svgOutputPath = `${outputPath}/${metric.name.replace('/', '-')}-release-downloads.svg` - - const sortedReleases = downloadsRange.sort((a: { tagName?: string }, b: { tagName?: string }) => { - return safeSemverCompare(a.tagName || '0.0.0', b.tagName || '0.0.0') - }) - + const sortedReleases = downloadsRange.sort((a: { tagName?: string }, b: { tagName?: string }) => safeSemverCompare(a.tagName || '0.0.0', b.tagName || '0.0.0')) const canvas = new Canvas(1000, 800); - const chart = new Chart( - canvas as any, - { - type: 'bar', - data: { - labels: sortedReleases.map((release: { tagName?: string }) => release.tagName), - datasets: [{ - label: `${metric.name} Release Downloads`, - data: sortedReleases.map((release: { downloads: number }) => release.downloads), - backgroundColor: 'rgba(54, 162, 235, 0.8)', - borderColor: 'rgba(54, 162, 235, 1)', - borderWidth: 1, - }] + const chart = new Chart(canvas as any, { + type: 'bar', + data: { + labels: sortedReleases.map((r: { tagName?: string }) => r.tagName), + datasets: [{ + label: `${metric.name} Release Downloads`, + data: sortedReleases.map((r: { downloads: number }) => r.downloads), + backgroundColor: 'rgba(54, 162, 235, 0.8)', + borderColor: 'rgba(54, 162, 235, 1)', + borderWidth: 1, + }] + }, + options: { + responsive: true, + plugins: { + title: { display: true, text: `${metric.name} - Release Downloads`, font: { size: 16 } }, + legend: { display: true } }, - options: { - responsive: true, - plugins: { - title: { - display: true, - text: `${metric.name} - Release Downloads`, - font: { - size: 16 - } - }, - legend: { - display: true - } - }, - scales: { - x: { - title: { - display: true, - text: 'Release' - } - }, - y: { - title: { - display: true, - text: 'Downloads' - }, - beginAtZero: true - } - } + scales: { + x: { title: { display: true, text: 'Release' } }, + y: { title: { display: true, text: 'Downloads' }, beginAtZero: true } } } - ); + }); const svgBuffer = await canvas.toBuffer('svg', { matte: 'white' }); writeFileSync(svgOutputPath, svgBuffer); chart.destroy(); - return svgOutputPath } export async function createCumulativeDownloadsChart(metric: MetricResult, outputPath: string): Promise { const downloadsRange = metric.metrics?.downloadRange || [] const svgOutputPath = `${outputPath}/${metric.name.replace('/', '-')}-cumulative-release-downloads.svg` - const groupedDownloads = groupByReleaseCumulative(downloadsRange) - - // Sort months chronologically - const semVerSortedReleases = Object.keys(groupedDownloads).sort((a, b) => { - return safeSemverCompare(a, b) - }) - + const semVerSortedReleases = Object.keys(groupedDownloads).sort((a: string, b: string) => safeSemverCompare(a, b)) const canvas = new Canvas(1000, 800); - const chart = new Chart( - canvas as any, - { - type: 'line', - data: { - labels: semVerSortedReleases, - datasets: [{ - label: `${metric.name} Cumulative Downloads`, - data: semVerSortedReleases.map(release => groupedDownloads[release].downloads), - backgroundColor: 'rgba(75, 192, 192, 0.2)', - borderColor: 'rgba(75, 192, 192, 1)', - borderWidth: 3, - fill: true, - tension: 0.1 - }] + const chart = new Chart(canvas as any, { + type: 'line', + data: { + labels: semVerSortedReleases, + datasets: [{ + label: `${metric.name} Cumulative Downloads`, + data: semVerSortedReleases.map((release: string) => groupedDownloads[release].downloads), + backgroundColor: 'rgba(75, 192, 192, 0.2)', + borderColor: 'rgba(75, 192, 192, 1)', + borderWidth: 3, + fill: true, + tension: 0.1 + }] + }, + options: { + responsive: true, + plugins: { + title: { display: true, text: `${metric.name} - Cumulative Release Downloads`, font: { size: 16 } }, + legend: { display: true } }, - options: { - responsive: true, - plugins: { - title: { - display: true, - text: `${metric.name} - Cumulative Release Downloads`, - font: { - size: 16 - } - }, - legend: { - display: true - } - }, - scales: { - x: { - title: { - display: true, - text: 'Release' - } - }, - y: { - title: { - display: true, - text: 'Downloads' - }, - beginAtZero: true - } - } + scales: { + x: { title: { display: true, text: 'Release' } }, + y: { title: { display: true, text: 'Downloads' }, beginAtZero: true } } } - ); + }); const svgBuffer = await canvas.toBuffer('svg', { matte: 'white' }); writeFileSync(svgOutputPath, svgBuffer); chart.destroy(); - return svgOutputPath } -export async function createReleaseDownloadsChart(metric: MetricResult, outputPath: string): Promise { - const downloadsRange = metric.metrics?.downloadRange || [] - const svgOutputPath = `${outputPath}/${metric.name.replace('/', '-')}-top-release-downloads.svg` +export async function createParsedAttributeTrendCharts(metric: MetricResult, outputPath: string): Promise { + const outputPaths: string[] = [] + const attrSeries: Record<'os'|'arch'|'format'|'variant'|'version', Record>> = metric.metrics?.attributeReleaseSeries || { os: {}, arch: {}, format: {}, variant: {}, version: {} } - // Sort releases by date (newest first for display) - const sortedReleases = downloadsRange - .filter((release: { tagName?: string; downloads: number; day: string }) => release.tagName && release.downloads > 0) - .sort((a: { downloads: number }, b: { downloads: number }) => b.downloads - a.downloads) - .slice(0, 10) // Show top 10 releases - .sort((a: { tagName?: string }, b: { tagName?: string }) => safeSemverCompare(a.tagName || '0.0.0', b.tagName || '0.0.0')) + type Dim = 'os' | 'arch' | 'format' | 'variant' | 'version' + const dims: Dim[] = ['os', 'arch', 'format', 'variant', 'version'] - if (sortedReleases.length === 0) { - // Return empty chart if no releases - return svgOutputPath - } + for (const dim of dims) { + const groups = attrSeries[dim] || {} + const groupNames = Object.keys(groups) + if (groupNames.length === 0) continue - const canvas = new Canvas(1200, 800); - const chart = new Chart( - canvas as any, - { - type: 'bar', - data: { - labels: sortedReleases.map((release: { tagName?: string }) => release.tagName), - datasets: [{ - label: `${metric.name} Release Downloads`, - data: sortedReleases.map((release: { downloads: number }) => release.downloads), - backgroundColor: 'rgba(255, 99, 132, 0.8)', - borderColor: 'rgba(255, 99, 132, 1)', - borderWidth: 1, - }] - }, + // Build union of release tags for this dim + const allReleaseTags = Array.from(new Set(groupNames.flatMap(name => Object.keys(groups[name])))) + .sort((a: string, b: string) => safeSemverCompare(a || '0.0.0', b || '0.0.0')) + + const svgOutputPath = `${outputPath}/${metric.name.replace('/', '-')}-trend-${dim}.svg` + const datasets = groupNames.map((name, idx) => { + const colorHue = (idx * 53) % 360 + const borderColor = `hsl(${colorHue}, 70%, 45%)` + const backgroundColor = `hsla(${colorHue}, 70%, 45%, 0.2)` + const byTag = groups[name] + return { + label: name, + data: allReleaseTags.map(tag => byTag[tag] || 0), + borderColor, + backgroundColor, + borderWidth: 2, + fill: false, + tension: 0.1 + } + }) + + const canvas = new Canvas(1200, 800); + const chart = new Chart(canvas as any, { + type: 'line', + data: { labels: allReleaseTags, datasets }, options: { responsive: true, plugins: { - title: { - display: true, - text: `${metric.name} - Top Release Downloads`, - font: { - size: 16 - } - }, - legend: { - display: true - } + title: { display: true, text: `${metric.name} - ${dim.toUpperCase()} Download Trends`, font: { size: 16 } }, + legend: { display: true } }, scales: { - x: { - title: { - display: true, - text: 'Release Tag' - } - }, + x: { title: { display: true, text: 'Release Tag' } }, y: { - title: { - display: true, - text: 'Downloads' - }, - beginAtZero: true + title: { display: true, text: 'Downloads' }, + beginAtZero: true, + ticks: { precision: 0 }, + suggestedMin: 0, + suggestedMax: Math.max( + 10, + ...datasets.map((ds: any) => Math.max(...(ds.data as number[]))) + ) } } } + }) + const svgBuffer = await canvas.toBuffer('svg', { matte: 'white' }); + writeFileSync(svgOutputPath, svgBuffer); + chart.destroy(); + outputPaths.push(svgOutputPath) + } + + return outputPaths +} + +export async function createAssetDownloadsAcrossReleasesChart(metric: MetricResult, outputPath: string): Promise { + const assetSeries = metric.metrics?.assetReleaseSeries || {} + const svgOutputPath = `${outputPath}/${metric.name.replace('/', '-')}-asset-downloads-over-releases.svg` + const assetNames = Object.keys(assetSeries) + if (assetNames.length === 0) return svgOutputPath + const allReleaseTagsSet = new Set() + for (const name of assetNames) { + for (const point of assetSeries[name]) { + allReleaseTagsSet.add(point.tagName) } - ); + } + const allReleaseTags = Array.from(allReleaseTagsSet).sort((a, b) => safeSemverCompare(a || '0.0.0', b || '0.0.0')) + const datasets = assetNames.map((name, idx) => { + const points = assetSeries[name] + const byTag: Record = {} + for (const p of points) { + byTag[p.tagName] = (byTag[p.tagName] || 0) + (p.downloads || 0) + } + const colorHue = (idx * 53) % 360 + return { + label: formatAssetLabel(name), + data: allReleaseTags.map(tag => byTag[tag] || 0), + borderColor: `hsl(${colorHue}, 70%, 45%)`, + backgroundColor: `hsla(${colorHue}, 70%, 45%, 0.2)`, + borderWidth: 2, + fill: false, + tension: 0.1 + } + }) + const canvas = new Canvas(1200, 800); + const chart = new Chart(canvas as any, { + type: 'line', + data: { labels: allReleaseTags, datasets }, + options: { + responsive: true, + plugins: { + title: { display: true, text: `${metric.name} - Asset Downloads Across Releases`, font: { size: 16 } }, + legend: { display: true } + }, + scales: { + x: { title: { display: true, text: 'Release Tag' } }, + y: { title: { display: true, text: 'Downloads' }, beginAtZero: true } + } + } + }); const svgBuffer = await canvas.toBuffer('svg', { matte: 'white' }); writeFileSync(svgOutputPath, svgBuffer); chart.destroy(); - return svgOutputPath } diff --git a/src/utils.ts b/src/utils.ts index d05b979..e0c5f88 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,8 +1,6 @@ import * as core from '@actions/core'; import { CategoryScale, Chart, LinearScale, LineController, LineElement, PointElement, BarController, BarElement } from 'chart.js'; import { readFile, writeFile } from 'fs/promises'; -import { writeFileSync } from 'node:fs'; -import { Canvas } from 'skia-canvas'; import type { MetricResult } from "./collectors/types.js"; import { addRepoDetails, formatGitHubSummary } from './summaries/github.js'; import { addNpmDetails, formatNpmSummary } from './summaries/npm.js'; diff --git a/stats.json b/stats.json index f25b862..fcfca9c 100644 --- a/stats.json +++ b/stats.json @@ -2,12 +2,12 @@ { "platform": "NPM", "name": "sailpoint-api-client", - "timestamp": "2025-08-15T02:53:11.849Z", + "timestamp": "2025-08-26T21:22:09.254Z", "metrics": { - "downloadsTotal": 16740, - "downloadsMonthly": 1308, - "downloadsWeekly": 272, - "downloadsDaily": 39, + "downloadsTotal": 17075, + "downloadsMonthly": 1113, + "downloadsWeekly": 218, + "downloadsDaily": 11, "downloadsRange": [ { "downloads": 0, @@ -3598,12 +3598,56 @@ "day": "2025-08-13" }, { - "downloads": 0, + "downloads": 22, "day": "2025-08-14" }, { - "downloads": 0, + "downloads": 24, "day": "2025-08-15" + }, + { + "downloads": 17, + "day": "2025-08-16" + }, + { + "downloads": 23, + "day": "2025-08-17" + }, + { + "downloads": 31, + "day": "2025-08-18" + }, + { + "downloads": 31, + "day": "2025-08-19" + }, + { + "downloads": 77, + "day": "2025-08-20" + }, + { + "downloads": 56, + "day": "2025-08-21" + }, + { + "downloads": 11, + "day": "2025-08-22" + }, + { + "downloads": 21, + "day": "2025-08-23" + }, + { + "downloads": 11, + "day": "2025-08-24" + }, + { + "downloads": 11, + "day": "2025-08-25" + }, + { + "downloads": 0, + "day": "2025-08-26" } ] } @@ -3611,41 +3655,3728 @@ { "platform": "GitHub", "name": "sailpoint-oss/sailpoint-cli", - "timestamp": "2025-08-15T02:53:11.260Z", + "timestamp": "2025-08-26T21:22:11.321Z", "metrics": { - "stars": 35, + "stars": 36, "forks": 24, - "watchers": 35, - "totalIssues": 0, - "openIssues": 0, - "closedIssues": 0, + "watchers": 9, + "totalIssues": 40, + "openIssues": 5, + "closedIssues": 35, "language": "Go", - "size": 89031, - "repositoryAge": 0, - "lastActivity": 0, - "releaseCount": 0, - "totalReleaseDownloads": 0, - "latestReleaseDownloads": 0, - "viewsCount": 0, - "uniqueVisitors": 0, - "latestRelease": null, - "clonesCount": 0, + "size": 89057, + "repositoryAge": 1132, + "lastActivity": 4, + "releaseCount": 31, + "totalReleaseDownloads": 10192, + "latestReleaseDownloads": 920, + "viewsCount": 383, + "uniqueVisitors": 146, + "latestRelease": "2.2.5", + "clonesCount": 73, "topics": 6, "license": "MIT License", "defaultBranch": "main", - "downloadsTotal": 0, - "downloadRange": [] + "downloadsTotal": 10192, + "downloadRange": [ + { + "day": "2022-08-19T20:12:00Z", + "downloads": 67, + "tagName": "0.0.2" + }, + { + "day": "2022-10-20T18:13:15Z", + "downloads": 57, + "tagName": "0.1.2" + }, + { + "day": "2022-10-27T15:50:59Z", + "downloads": 46, + "tagName": "0.2.1" + }, + { + "day": "2022-11-09T13:33:03Z", + "downloads": 68, + "tagName": "0.2.2" + }, + { + "day": "2023-01-06T14:50:24Z", + "downloads": 33, + "tagName": "0.3.0" + }, + { + "day": "2023-01-06T15:27:28Z", + "downloads": 43, + "tagName": "0.3.1" + }, + { + "day": "2023-01-06T15:37:38Z", + "downloads": 44, + "tagName": "0.3.2" + }, + { + "day": "2023-01-06T16:22:01Z", + "downloads": 68, + "tagName": "0.4.0" + }, + { + "day": "2023-02-07T19:08:48Z", + "downloads": 61, + "tagName": "0.4.1" + }, + { + "day": "2023-02-27T19:31:53Z", + "downloads": 131, + "tagName": "0.5.0" + }, + { + "day": "2023-03-13T14:35:02Z", + "downloads": 72, + "tagName": "0.5.1" + }, + { + "day": "2023-03-21T19:41:09Z", + "downloads": 157, + "tagName": "1.0.0" + }, + { + "day": "2023-04-13T19:45:17Z", + "downloads": 0, + "tagName": "1.1.0" + }, + { + "day": "2023-04-14T21:41:23Z", + "downloads": 136, + "tagName": "1.1.16" + }, + { + "day": "2023-04-14T21:57:54Z", + "downloads": 632, + "tagName": "1.2.0" + }, + { + "day": "2023-09-28T15:32:02Z", + "downloads": 234, + "tagName": "2.0" + }, + { + "day": "2023-10-05T02:29:23Z", + "downloads": 243, + "tagName": "2.0.1" + }, + { + "day": "2023-10-11T20:58:03Z", + "downloads": 346, + "tagName": "2.0.2" + }, + { + "day": "2023-11-16T17:17:14Z", + "downloads": 507, + "tagName": "2.0.3" + }, + { + "day": "2024-01-29T15:09:32Z", + "downloads": 459, + "tagName": "2.0.4" + }, + { + "day": "2024-03-13T17:46:06Z", + "downloads": 783, + "tagName": "2.1.4" + }, + { + "day": "2024-05-15T15:32:09Z", + "downloads": 1271, + "tagName": "2.1.5" + }, + { + "day": "2024-09-16T16:47:46Z", + "downloads": 187, + "tagName": "2.1.6" + }, + { + "day": "2024-10-01T15:24:59Z", + "downloads": 149, + "tagName": "2.1.7" + }, + { + "day": "2024-10-10T12:47:09Z", + "downloads": 670, + "tagName": "2.1.8" + }, + { + "day": "2024-11-14T00:58:21Z", + "downloads": 1509, + "tagName": "2.1.9" + }, + { + "day": "2025-04-02T19:24:30Z", + "downloads": 325, + "tagName": "2.1.10" + }, + { + "day": "2025-04-16T16:25:17Z", + "downloads": 116, + "tagName": "2.2.2" + }, + { + "day": "2025-04-21T10:31:57Z", + "downloads": 439, + "tagName": "2.2.3" + }, + { + "day": "2025-05-14T15:28:58Z", + "downloads": 419, + "tagName": "2.2.4" + }, + { + "day": "2025-06-03T14:37:59Z", + "downloads": 920, + "tagName": "2.2.5" + } + ], + "assetTotalsByName": { + "sail_macos_arm64_tar.gz": 1519, + "sail_linux_i386_tar.gz": 13, + "sail_linux_armv6_tar.gz": 92, + "sail_linux_tar.gz": 35, + "sail_linux_arm64_tar.gz": 179, + "sail_windows_386_zip": 789, + "sail_windows_arm64_zip": 413, + "sail_macos_tar.gz": 49, + "sail_linux_386_deb": 154, + "sail_linux_arm64_deb": 186, + "sail_linux_amd64_deb": 991, + "sail_linux_armv6_deb": 106, + "sail_linux_386_rpm": 126, + "sail_linux_armv6_rpm": 115, + "sail_linux_amd64_rpm": 219, + "sail_linux_arm64_rpm": 116, + "sail_txt": 183, + "sail_windows_amd64_zip": 1206, + "sail_windows_amd64_msi": 2412, + "sail_windows_i386_zip": 24, + "sail_windows_zip": 177, + "sail_macos_amd64_tar.gz": 536, + "sail_linux_386_tar.gz": 110, + "sail_linux_amd64_tar.gz": 272, + "sailpoint_macos_amd64_tar.gz": 6, + "sailpoint_windows_arm64_zip": 6, + "sailpoint_macos_arm64_tar.gz": 6, + "sailpoint_linux_amd64_tar.gz": 7, + "sailpoint_linux_arm64_tar.gz": 6, + "sailpoint_windows_amd64_zip": 10, + "sailpoint_txt": 5, + "connector_windows_arm64_zip": 17, + "connector_macos_amd64_tar.gz": 17, + "connector_macos_arm64_tar.gz": 18, + "connector_linux_amd64_tar.gz": 20, + "connector_linux_arm64_tar.gz": 21, + "connector_windows_amd64_zip": 21, + "connector_txt": 10 + }, + "assetReleaseSeries": { + "sail_macos_arm64_tar.gz": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 173 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 46 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 71 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 19 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 41 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 234 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 112 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 19 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 27 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 172 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 144 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 60 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 76 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 52 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 22 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 23 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 106 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 28 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 10 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 23 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 9 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 19 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 7 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 6 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 5 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 8 + } + ], + "sail_linux_i386_tar.gz": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 6 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 2 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 2 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + } + ], + "sail_linux_armv6_tar.gz": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 3 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 2 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 3 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 4 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 4 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 6 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 5 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 6 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 8 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 8 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 8 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 7 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_tar.gz": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 11 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 5 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 9 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 10 + } + ], + "sail_linux_arm64_tar.gz": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 10 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 3 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 2 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 2 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 13 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 6 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 5 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 9 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 7 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 7 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 9 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 9 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 9 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 9 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 6 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 8 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 6 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 10 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 6 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 6 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 6 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 6 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 5 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 6 + } + ], + "sail_windows_386_zip": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 311 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 77 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 12 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 101 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 33 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 8 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 9 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 59 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 53 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 25 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 18 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 24 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 11 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 9 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 32 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_windows_arm64_zip": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 9 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 9 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 55 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 14 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 79 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 16 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 5 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 7 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 31 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 23 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 14 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 12 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 20 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 11 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 8 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 16 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 17 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 7 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 10 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 6 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 6 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 7 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 6 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 5 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 9 + } + ], + "sail_macos_tar.gz": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 19 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 10 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 17 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + } + ], + "sail_linux_386_deb": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 10 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 6 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 4 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 18 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 6 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 5 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 17 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 9 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 14 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 9 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 10 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 8 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 11 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 10 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_arm64_deb": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 14 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 3 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 27 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 4 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 6 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 15 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 8 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 18 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 15 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 14 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 10 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 10 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 8 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 8 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 8 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 8 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_amd64_deb": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 77 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 99 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 36 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 5 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 41 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 132 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 72 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 9 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 11 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 260 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 85 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 29 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 17 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 15 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 33 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 33 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 27 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 10 + } + ], + "sail_linux_armv6_deb": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 4 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 11 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 2 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 4 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 4 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 6 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 6 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 6 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 9 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 9 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 10 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 7 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_386_rpm": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 4 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 6 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 4 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 5 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 10 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 6 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 11 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 10 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 10 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 9 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 8 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 9 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 10 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_armv6_rpm": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 4 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 2 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 2 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 5 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 3 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 5 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 5 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 5 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 26 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 10 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 8 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 9 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 7 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_amd64_rpm": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 40 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 18 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 21 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 4 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 6 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 10 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 7 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 5 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 14 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 21 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 17 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 11 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 9 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 8 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 10 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_arm64_rpm": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 10 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 3 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 2 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 5 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 5 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 7 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 6 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 12 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 9 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 12 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 8 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 8 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 8 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_txt": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 11 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 7 + }, + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 12 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 3 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 18 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 8 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 0 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 1 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 11 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 11 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 7 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 9 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 9 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 7 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 7 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 13 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 4 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 6 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 2 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 6 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 4 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 4 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 4 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 4 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 2 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 9 + } + ], + "sail_windows_amd64_zip": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 38 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 20 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 25 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 409 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 50 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 11 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 12 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 136 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 51 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 34 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 50 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 97 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 14 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 14 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 61 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 9 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 59 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 14 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 27 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 19 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 12 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 7 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 9 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 7 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 21 + } + ], + "sail_windows_amd64_msi": [ + { + "tagName": "2.2.5", + "day": "2025-06-03T14:37:59Z", + "downloads": 166 + }, + { + "tagName": "2.2.4", + "day": "2025-05-14T15:28:58Z", + "downloads": 90 + }, + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 126 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 355 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 277 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 50 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 52 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 418 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 279 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 121 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 187 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 55 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 24 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 203 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 9 + } + ], + "sail_windows_i386_zip": [ + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 15 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 9 + } + ], + "sail_windows_zip": [ + { + "tagName": "2.2.3", + "day": "2025-04-21T10:31:57Z", + "downloads": 155 + }, + { + "tagName": "2.2.2", + "day": "2025-04-16T16:25:17Z", + "downloads": 22 + } + ], + "sail_macos_amd64_tar.gz": [ + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 11 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 65 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 36 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 11 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 8 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 44 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 35 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 41 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 30 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 31 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 8 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 15 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 78 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 27 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 11 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 30 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 10 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 13 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 7 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 6 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 4 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 8 + } + ], + "sail_linux_386_tar.gz": [ + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 4 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 12 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 7 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 4 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 9 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 4 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 7 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 11 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 7 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 8 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 15 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 11 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + } + ], + "sail_linux_amd64_tar.gz": [ + { + "tagName": "2.1.10", + "day": "2025-04-02T19:24:30Z", + "downloads": 15 + }, + { + "tagName": "2.1.9", + "day": "2024-11-14T00:58:21Z", + "downloads": 22 + }, + { + "tagName": "2.1.8", + "day": "2024-10-10T12:47:09Z", + "downloads": 8 + }, + { + "tagName": "2.1.7", + "day": "2024-10-01T15:24:59Z", + "downloads": 3 + }, + { + "tagName": "2.1.6", + "day": "2024-09-16T16:47:46Z", + "downloads": 4 + }, + { + "tagName": "2.1.5", + "day": "2024-05-15T15:32:09Z", + "downloads": 41 + }, + { + "tagName": "2.1.4", + "day": "2024-03-13T17:46:06Z", + "downloads": 15 + }, + { + "tagName": "2.0.4", + "day": "2024-01-29T15:09:32Z", + "downloads": 13 + }, + { + "tagName": "2.0.3", + "day": "2023-11-16T17:17:14Z", + "downloads": 13 + }, + { + "tagName": "2.0.2", + "day": "2023-10-11T20:58:03Z", + "downloads": 10 + }, + { + "tagName": "2.0.1", + "day": "2023-10-05T02:29:23Z", + "downloads": 8 + }, + { + "tagName": "2.0", + "day": "2023-09-28T15:32:02Z", + "downloads": 6 + }, + { + "tagName": "1.2.0", + "day": "2023-04-14T21:57:54Z", + "downloads": 9 + }, + { + "tagName": "1.1.16", + "day": "2023-04-14T21:41:23Z", + "downloads": 7 + }, + { + "tagName": "1.0.0", + "day": "2023-03-21T19:41:09Z", + "downloads": 12 + }, + { + "tagName": "0.5.1", + "day": "2023-03-13T14:35:02Z", + "downloads": 22 + }, + { + "tagName": "0.5.0", + "day": "2023-02-27T19:31:53Z", + "downloads": 25 + }, + { + "tagName": "0.4.1", + "day": "2023-02-07T19:08:48Z", + "downloads": 7 + }, + { + "tagName": "0.4.0", + "day": "2023-01-06T16:22:01Z", + "downloads": 8 + }, + { + "tagName": "0.3.2", + "day": "2023-01-06T15:37:38Z", + "downloads": 6 + }, + { + "tagName": "0.3.1", + "day": "2023-01-06T15:27:28Z", + "downloads": 6 + }, + { + "tagName": "0.3.0", + "day": "2023-01-06T14:50:24Z", + "downloads": 5 + }, + { + "tagName": "0.2.2", + "day": "2022-11-09T13:33:03Z", + "downloads": 7 + } + ], + "sailpoint_macos_amd64_tar.gz": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 6 + } + ], + "sailpoint_windows_arm64_zip": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 6 + } + ], + "sailpoint_macos_arm64_tar.gz": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 6 + } + ], + "sailpoint_linux_amd64_tar.gz": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 7 + } + ], + "sailpoint_linux_arm64_tar.gz": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 6 + } + ], + "sailpoint_windows_amd64_zip": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 10 + } + ], + "sailpoint_txt": [ + { + "tagName": "0.2.1", + "day": "2022-10-27T15:50:59Z", + "downloads": 5 + } + ], + "connector_windows_arm64_zip": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 8 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 9 + } + ], + "connector_macos_amd64_tar.gz": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 8 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 9 + } + ], + "connector_macos_arm64_tar.gz": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 9 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 9 + } + ], + "connector_linux_amd64_tar.gz": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 10 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 10 + } + ], + "connector_linux_arm64_tar.gz": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 9 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 12 + } + ], + "connector_windows_amd64_zip": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 8 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 13 + } + ], + "connector_txt": [ + { + "tagName": "0.1.2", + "day": "2022-10-20T18:13:15Z", + "downloads": 5 + }, + { + "tagName": "0.0.2", + "day": "2022-08-19T20:12:00Z", + "downloads": 5 + } + ] + }, + "assetTotalsByParsedKey": { + "sail_macos_arm64_tar.gz": 1519, + "sail_linux_i386_tar.gz": 13, + "sail_linux_armv6_tar.gz": 92, + "sail_linux_tar.gz": 35, + "sail_linux_arm64_tar.gz": 179, + "sail_windows_386_zip": 789, + "sail_windows_arm64_zip": 413, + "sail_macos_tar.gz": 49, + "sail_linux_386_deb": 154, + "sail_linux_arm64_deb": 186, + "sail_linux_amd64_deb": 991, + "sail_linux_armv6_deb": 106, + "sail_linux_386_rpm": 126, + "sail_linux_armv6_rpm": 115, + "sail_linux_amd64_rpm": 219, + "sail_linux_arm64_rpm": 116, + "sail_txt": 183, + "sail_windows_amd64_zip": 1206, + "sail_windows_amd64_msi": 2412, + "sail_windows_i386_zip": 24, + "sail_windows_zip": 177, + "sail_macos_amd64_tar.gz": 536, + "sail_linux_386_tar.gz": 110, + "sail_linux_amd64_tar.gz": 272, + "sailpoint_macos_amd64_tar.gz": 6, + "sailpoint_windows_arm64_zip": 6, + "sailpoint_macos_arm64_tar.gz": 6, + "sailpoint_linux_amd64_tar.gz": 7, + "sailpoint_linux_arm64_tar.gz": 6, + "sailpoint_windows_amd64_zip": 10, + "sailpoint_txt": 5, + "connector_windows_arm64_zip": 17, + "connector_macos_amd64_tar.gz": 17, + "connector_macos_arm64_tar.gz": 18, + "connector_linux_amd64_tar.gz": 20, + "connector_linux_arm64_tar.gz": 21, + "connector_windows_amd64_zip": 21, + "connector_txt": 10 + }, + "totalsByOs": { + "macos": 2151, + "linux": 2768, + "windows": 5075 + }, + "totalsByArch": { + "386": 1179, + "arm64": 2487, + "i386": 37, + "armv6": 313, + "amd64": 5717 + }, + "totalsByFormat": { + "tar.gz": 2906, + "zip": 2663, + "deb": 1437, + "rpm": 576, + "txt": 198, + "msi": 2412 + }, + "totalsByVariant": {}, + "attributeReleaseSeries": { + "os": { + "macos": { + "2.2.5": 192, + "2.2.4": 56, + "2.2.3": 88, + "2.2.2": 22, + "2.1.10": 52, + "2.1.9": 299, + "2.1.8": 148, + "2.1.7": 30, + "2.1.6": 35, + "2.1.5": 216, + "2.1.4": 179, + "2.0.4": 101, + "2.0.3": 106, + "2.0.2": 83, + "2.0.1": 30, + "2.0": 38, + "1.2.0": 184, + "1.1.16": 14, + "1.0.0": 55, + "0.5.1": 21, + "0.5.0": 53, + "0.4.1": 19, + "0.4.0": 32, + "0.3.2": 14, + "0.3.1": 12, + "0.3.0": 9, + "0.2.2": 16, + "0.2.1": 12, + "0.1.2": 17, + "0.0.2": 18 + }, + "linux": { + "2.2.5": 193, + "2.2.4": 160, + "2.2.3": 114, + "2.2.2": 46, + "2.1.10": 102, + "2.1.9": 248, + "2.1.8": 138, + "2.1.7": 45, + "2.1.6": 71, + "2.1.5": 400, + "2.1.4": 187, + "2.0.4": 157, + "2.0.3": 125, + "2.0.2": 113, + "2.0.1": 115, + "2.0": 134, + "1.2.0": 123, + "1.1.16": 86, + "1.0.0": 20, + "0.5.1": 28, + "0.5.0": 35, + "0.4.1": 13, + "0.4.0": 14, + "0.3.2": 12, + "0.3.1": 12, + "0.3.0": 10, + "0.2.2": 13, + "0.2.1": 13, + "0.1.2": 19, + "0.0.2": 22 + }, + "windows": { + "2.2.5": 524, + "2.2.4": 196, + "2.2.3": 225, + "2.2.2": 45, + "2.1.10": 167, + "2.1.9": 944, + "2.1.8": 376, + "2.1.7": 74, + "2.1.6": 80, + "2.1.5": 644, + "2.1.4": 406, + "2.0.4": 194, + "2.0.3": 267, + "2.0.2": 141, + "2.0.1": 91, + "2.0": 55, + "1.2.0": 312, + "1.1.16": 32, + "1.0.0": 76, + "0.5.1": 21, + "0.5.0": 37, + "0.4.1": 25, + "0.4.0": 18, + "0.3.2": 14, + "0.3.1": 15, + "0.3.0": 12, + "0.2.2": 30, + "0.2.1": 16, + "0.1.2": 16, + "0.0.2": 22 + } + }, + "arch": { + "386": { + "2.2.5": 325, + "2.2.4": 89, + "2.2.3": 8, + "2.2.2": 6, + "2.1.10": 25, + "2.1.9": 141, + "2.1.8": 52, + "2.1.7": 18, + "2.1.6": 22, + "2.1.5": 96, + "2.1.4": 76, + "2.0.4": 56, + "2.0.3": 47, + "2.0.2": 49, + "2.0.1": 34, + "2.0": 44, + "1.2.0": 63, + "1.1.16": 28 + }, + "arm64": { + "2.2.5": 216, + "2.2.4": 64, + "2.2.3": 157, + "2.2.2": 42, + "2.1.10": 59, + "2.1.9": 346, + "2.1.8": 147, + "2.1.7": 33, + "2.1.6": 61, + "2.1.5": 234, + "2.1.4": 194, + "2.0.4": 103, + "2.0.3": 116, + "2.0.2": 101, + "2.0.1": 56, + "2.0": 56, + "1.2.0": 147, + "1.1.16": 34, + "1.0.0": 53, + "0.5.1": 23, + "0.5.0": 43, + "0.4.1": 21, + "0.4.0": 31, + "0.3.2": 20, + "0.3.1": 18, + "0.3.0": 15, + "0.2.2": 23, + "0.2.1": 18, + "0.1.2": 26, + "0.0.2": 30 + }, + "i386": { + "2.2.5": 6, + "2.2.4": 2, + "2.2.3": 17, + "2.2.2": 12 + }, + "armv6": { + "2.2.5": 11, + "2.2.4": 15, + "2.2.3": 7, + "2.2.2": 9, + "2.1.10": 13, + "2.1.9": 11, + "2.1.8": 13, + "2.1.7": 9, + "2.1.6": 12, + "2.1.5": 17, + "2.1.4": 16, + "2.0.4": 38, + "2.0.3": 27, + "2.0.2": 25, + "2.0.1": 21, + "2.0": 27, + "1.2.0": 21, + "1.1.16": 21 + }, + "amd64": { + "2.2.5": 321, + "2.2.4": 227, + "2.2.3": 57, + "2.2.2": 9, + "2.1.10": 224, + "2.1.9": 993, + "2.1.8": 450, + "2.1.7": 89, + "2.1.6": 91, + "2.1.5": 913, + "2.1.4": 486, + "2.0.4": 255, + "2.0.3": 308, + "2.0.2": 162, + "2.0.1": 125, + "2.0": 100, + "1.2.0": 388, + "1.1.16": 49, + "1.0.0": 98, + "0.5.1": 47, + "0.5.0": 82, + "0.4.1": 36, + "0.4.0": 33, + "0.3.2": 20, + "0.3.1": 21, + "0.3.0": 16, + "0.2.2": 36, + "0.2.1": 23, + "0.1.2": 26, + "0.0.2": 32 + } + }, + "format": { + "tar.gz": { + "2.2.5": 222, + "2.2.4": 68, + "2.2.3": 104, + "2.2.2": 40, + "2.1.10": 79, + "2.1.9": 350, + "2.1.8": 173, + "2.1.7": 43, + "2.1.6": 52, + "2.1.5": 281, + "2.1.4": 210, + "2.0.4": 134, + "2.0.3": 147, + "2.0.2": 117, + "2.0.1": 60, + "2.0": 76, + "1.2.0": 220, + "1.1.16": 41, + "1.0.0": 75, + "0.5.1": 49, + "0.5.0": 88, + "0.4.1": 32, + "0.4.0": 46, + "0.3.2": 26, + "0.3.1": 24, + "0.3.0": 19, + "0.2.2": 29, + "0.2.1": 25, + "0.1.2": 36, + "0.0.2": 40 + }, + "zip": { + "2.2.5": 358, + "2.2.4": 106, + "2.2.3": 225, + "2.2.2": 45, + "2.1.10": 41, + "2.1.9": 589, + "2.1.8": 99, + "2.1.7": 24, + "2.1.6": 28, + "2.1.5": 226, + "2.1.4": 127, + "2.0.4": 73, + "2.0.3": 80, + "2.0.2": 141, + "2.0.1": 36, + "2.0": 31, + "1.2.0": 109, + "1.1.16": 23, + "1.0.0": 76, + "0.5.1": 21, + "0.5.0": 37, + "0.4.1": 25, + "0.4.0": 18, + "0.3.2": 14, + "0.3.1": 15, + "0.3.0": 12, + "0.2.2": 30, + "0.2.1": 16, + "0.1.2": 16, + "0.0.2": 22 + }, + "deb": { + "2.2.5": 105, + "2.2.4": 119, + "2.2.3": 69, + "2.2.2": 15, + "2.1.10": 55, + "2.1.9": 169, + "2.1.8": 90, + "2.1.7": 18, + "2.1.6": 38, + "2.1.5": 298, + "2.1.4": 114, + "2.0.4": 59, + "2.0.3": 45, + "2.0.2": 42, + "2.0.1": 56, + "2.0": 62, + "1.2.0": 52, + "1.1.16": 31 + }, + "rpm": { + "2.2.5": 58, + "2.2.4": 29, + "2.2.3": 29, + "2.2.2": 13, + "2.1.10": 20, + "2.1.9": 28, + "2.1.8": 23, + "2.1.7": 14, + "2.1.6": 16, + "2.1.5": 37, + "2.1.4": 42, + "2.0.4": 65, + "2.0.3": 39, + "2.0.2": 37, + "2.0.1": 29, + "2.0": 34, + "1.2.0": 35, + "1.1.16": 28 + }, + "txt": { + "2.2.5": 11, + "2.2.4": 7, + "2.2.3": 12, + "2.2.2": 3, + "2.1.10": 4, + "2.1.9": 18, + "2.1.8": 8, + "2.1.7": 0, + "2.1.6": 1, + "2.1.5": 11, + "2.1.4": 11, + "2.0.4": 7, + "2.0.3": 9, + "2.0.2": 9, + "2.0.1": 7, + "2.0": 7, + "1.2.0": 13, + "1.1.16": 4, + "1.0.0": 6, + "0.5.1": 2, + "0.5.0": 6, + "0.4.1": 4, + "0.4.0": 4, + "0.3.2": 4, + "0.3.1": 4, + "0.3.0": 2, + "0.2.2": 9, + "0.2.1": 5, + "0.1.2": 5, + "0.0.2": 5 + }, + "msi": { + "2.2.5": 166, + "2.2.4": 90, + "2.1.10": 126, + "2.1.9": 355, + "2.1.8": 277, + "2.1.7": 50, + "2.1.6": 52, + "2.1.5": 418, + "2.1.4": 279, + "2.0.4": 121, + "2.0.3": 187, + "2.0.1": 55, + "2.0": 24, + "1.2.0": 203, + "1.1.16": 9 + } + }, + "variant": {}, + "version": {} + }, + "assetAttributesByKey": { + "sail_macos_arm64_tar.gz": { + "project": "sail", + "os": "macos", + "arch": "arm64", + "format": "tar.gz" + }, + "sail_linux_i386_tar.gz": { + "project": "sail", + "os": "linux", + "arch": "i386", + "format": "tar.gz" + }, + "sail_linux_armv6_tar.gz": { + "project": "sail", + "os": "linux", + "arch": "armv6", + "format": "tar.gz" + }, + "sail_linux_tar.gz": { + "project": "sail", + "os": "linux", + "format": "tar.gz" + }, + "sail_linux_arm64_tar.gz": { + "project": "sail", + "os": "linux", + "arch": "arm64", + "format": "tar.gz" + }, + "sail_windows_386_zip": { + "project": "sail", + "os": "windows", + "arch": "386", + "format": "zip" + }, + "sail_windows_arm64_zip": { + "project": "sail", + "os": "windows", + "arch": "arm64", + "format": "zip" + }, + "sail_macos_tar.gz": { + "project": "sail", + "os": "macos", + "format": "tar.gz" + }, + "sail_linux_386_deb": { + "project": "sail", + "os": "linux", + "arch": "386", + "format": "deb" + }, + "sail_linux_arm64_deb": { + "project": "sail", + "os": "linux", + "arch": "arm64", + "format": "deb" + }, + "sail_linux_amd64_deb": { + "project": "sail", + "os": "linux", + "arch": "amd64", + "format": "deb" + }, + "sail_linux_armv6_deb": { + "project": "sail", + "os": "linux", + "arch": "armv6", + "format": "deb" + }, + "sail_linux_386_rpm": { + "project": "sail", + "os": "linux", + "arch": "386", + "format": "rpm" + }, + "sail_linux_armv6_rpm": { + "project": "sail", + "os": "linux", + "arch": "armv6", + "format": "rpm" + }, + "sail_linux_amd64_rpm": { + "project": "sail", + "os": "linux", + "arch": "amd64", + "format": "rpm" + }, + "sail_linux_arm64_rpm": { + "project": "sail", + "os": "linux", + "arch": "arm64", + "format": "rpm" + }, + "sail_txt": { + "project": "sail", + "format": "txt" + }, + "sail_windows_amd64_zip": { + "project": "sail", + "os": "windows", + "arch": "amd64", + "format": "zip" + }, + "sail_windows_amd64_msi": { + "project": "sail", + "os": "windows", + "arch": "amd64", + "format": "msi" + }, + "sail_windows_i386_zip": { + "project": "sail", + "os": "windows", + "arch": "i386", + "format": "zip" + }, + "sail_windows_zip": { + "project": "sail", + "os": "windows", + "format": "zip" + }, + "sail_macos_amd64_tar.gz": { + "project": "sail", + "os": "macos", + "arch": "amd64", + "format": "tar.gz" + }, + "sail_linux_386_tar.gz": { + "project": "sail", + "os": "linux", + "arch": "386", + "format": "tar.gz" + }, + "sail_linux_amd64_tar.gz": { + "project": "sail", + "os": "linux", + "arch": "amd64", + "format": "tar.gz" + }, + "sailpoint_macos_amd64_tar.gz": { + "project": "sailpoint", + "os": "macos", + "arch": "amd64", + "format": "tar.gz" + }, + "sailpoint_windows_arm64_zip": { + "project": "sailpoint", + "os": "windows", + "arch": "arm64", + "format": "zip" + }, + "sailpoint_macos_arm64_tar.gz": { + "project": "sailpoint", + "os": "macos", + "arch": "arm64", + "format": "tar.gz" + }, + "sailpoint_linux_amd64_tar.gz": { + "project": "sailpoint", + "os": "linux", + "arch": "amd64", + "format": "tar.gz" + }, + "sailpoint_linux_arm64_tar.gz": { + "project": "sailpoint", + "os": "linux", + "arch": "arm64", + "format": "tar.gz" + }, + "sailpoint_windows_amd64_zip": { + "project": "sailpoint", + "os": "windows", + "arch": "amd64", + "format": "zip" + }, + "sailpoint_txt": { + "project": "sailpoint", + "format": "txt" + }, + "connector_windows_arm64_zip": { + "project": "connector", + "os": "windows", + "arch": "arm64", + "format": "zip" + }, + "connector_macos_amd64_tar.gz": { + "project": "connector", + "os": "macos", + "arch": "amd64", + "format": "tar.gz" + }, + "connector_macos_arm64_tar.gz": { + "project": "connector", + "os": "macos", + "arch": "arm64", + "format": "tar.gz" + }, + "connector_linux_amd64_tar.gz": { + "project": "connector", + "os": "linux", + "arch": "amd64", + "format": "tar.gz" + }, + "connector_linux_arm64_tar.gz": { + "project": "connector", + "os": "linux", + "arch": "arm64", + "format": "tar.gz" + }, + "connector_windows_amd64_zip": { + "project": "connector", + "os": "windows", + "arch": "amd64", + "format": "zip" + }, + "connector_txt": { + "project": "connector", + "format": "txt" + } + } + } + }, + { + "platform": "GitHub", + "name": "sailpoint-oss/api-specs", + "timestamp": "2025-08-26T21:22:10.609Z", + "metrics": { + "stars": 14, + "forks": 21, + "watchers": 7, + "totalIssues": 28, + "openIssues": 20, + "closedIssues": 8, + "language": "JavaScript", + "size": 411147, + "repositoryAge": 1090, + "lastActivity": 0, + "releaseCount": 8, + "totalReleaseDownloads": 191, + "latestReleaseDownloads": 24, + "viewsCount": 178, + "uniqueVisitors": 34, + "latestRelease": "v2025.08.26-1635", + "clonesCount": 248, + "topics": 1, + "license": "MIT License", + "defaultBranch": "main", + "downloadsTotal": 191, + "downloadRange": [ + { + "day": "2025-08-25T17:01:08Z", + "downloads": 18, + "tagName": "v2025.08.25-1701" + }, + { + "day": "2025-08-25T18:04:57Z", + "downloads": 28, + "tagName": "v2025.08.25-1804" + }, + { + "day": "2025-08-25T18:17:19Z", + "downloads": 24, + "tagName": "v2025.08.25-1817" + }, + { + "day": "2025-08-25T18:22:21Z", + "downloads": 24, + "tagName": "v2025.08.25-1822" + }, + { + "day": "2025-08-25T18:28:41Z", + "downloads": 24, + "tagName": "v2025.08.25-1828" + }, + { + "day": "2025-08-26T02:37:20Z", + "downloads": 24, + "tagName": "v2025.08.26-0237" + }, + { + "day": "2025-08-26T13:57:37Z", + "downloads": 25, + "tagName": "v2025.08.26-1357" + }, + { + "day": "2025-08-26T16:35:07Z", + "downloads": 24, + "tagName": "v2025.08.26-1635" + } + ], + "assetTotalsByName": { + "deref.sailpoint": 191 + }, + "assetReleaseSeries": { + "deref.sailpoint": [ + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1635", + "day": "2025-08-26T16:35:07Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-1357", + "day": "2025-08-26T13:57:37Z", + "downloads": 3 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.26-0237", + "day": "2025-08-26T02:37:20Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1828", + "day": "2025-08-25T18:28:41Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1822", + "day": "2025-08-25T18:22:21Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1817", + "day": "2025-08-25T18:17:19Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 4 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 4 + }, + { + "tagName": "v2025.08.25-1804", + "day": "2025-08-25T18:04:57Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + }, + { + "tagName": "v2025.08.25-1701", + "day": "2025-08-25T17:01:08Z", + "downloads": 2 + } + ] + }, + "assetTotalsByParsedKey": { + "deref.sailpoint": 191 + }, + "totalsByOs": {}, + "totalsByArch": {}, + "totalsByFormat": { + "json": 94, + "yaml": 97 + }, + "totalsByVariant": {}, + "attributeReleaseSeries": { + "os": {}, + "arch": {}, + "format": { + "json": { + "v2025.08.26-1635": 12, + "v2025.08.26-1357": 12, + "v2025.08.26-0237": 12, + "v2025.08.25-1828": 12, + "v2025.08.25-1822": 12, + "v2025.08.25-1817": 12, + "v2025.08.25-1804": 14, + "v2025.08.25-1701": 8 + }, + "yaml": { + "v2025.08.26-1635": 12, + "v2025.08.26-1357": 13, + "v2025.08.26-0237": 12, + "v2025.08.25-1828": 12, + "v2025.08.25-1822": 12, + "v2025.08.25-1817": 12, + "v2025.08.25-1804": 14, + "v2025.08.25-1701": 10 + } + }, + "variant": {}, + "version": { + "beta": { + "v2025.08.26-1635": 4, + "v2025.08.26-1357": 4, + "v2025.08.26-0237": 4, + "v2025.08.25-1828": 4, + "v2025.08.25-1822": 4, + "v2025.08.25-1817": 4, + "v2025.08.25-1804": 6, + "v2025.08.25-1701": 4 + }, + "nerm v2025": { + "v2025.08.26-1635": 4, + "v2025.08.26-1357": 4, + "v2025.08.26-0237": 4, + "v2025.08.25-1828": 4, + "v2025.08.25-1822": 4, + "v2025.08.25-1817": 4, + "v2025.08.25-1804": 4 + }, + "nerm": { + "v2025.08.26-1635": 4, + "v2025.08.26-1357": 4, + "v2025.08.26-0237": 4, + "v2025.08.25-1828": 4, + "v2025.08.25-1822": 4, + "v2025.08.25-1817": 4, + "v2025.08.25-1804": 4, + "v2025.08.25-1701": 2 + }, + "v2024": { + "v2025.08.26-1635": 4, + "v2025.08.26-1357": 4, + "v2025.08.26-0237": 4, + "v2025.08.25-1828": 4, + "v2025.08.25-1822": 4, + "v2025.08.25-1817": 4, + "v2025.08.25-1804": 4, + "v2025.08.25-1701": 4 + }, + "v2025": { + "v2025.08.26-1635": 4, + "v2025.08.26-1357": 4, + "v2025.08.26-0237": 4, + "v2025.08.25-1828": 4, + "v2025.08.25-1822": 4, + "v2025.08.25-1817": 4, + "v2025.08.25-1804": 4, + "v2025.08.25-1701": 4 + }, + "v3": { + "v2025.08.26-1635": 4, + "v2025.08.26-1357": 5, + "v2025.08.26-0237": 4, + "v2025.08.25-1828": 4, + "v2025.08.25-1822": 4, + "v2025.08.25-1817": 4, + "v2025.08.25-1804": 6, + "v2025.08.25-1701": 4 + } + } + }, + "assetAttributesByKey": { + "deref.sailpoint": { + "project": "deref.sailpoint", + "format": "json", + "version": "beta" + } + } } }, { "platform": "PyPI", "name": "sailpoint", - "timestamp": "2025-08-15T02:53:11.237Z", + "timestamp": "2025-08-26T21:22:08.851Z", "metrics": { - "downloadsTotal": 21614, - "downloadsMonthly": 10108, - "downloadsWeekly": 2894, - "downloadsDaily": 468, + "downloadsTotal": 21184, + "downloadsMonthly": 9193, + "downloadsWeekly": 2511, + "downloadsDaily": 469, "version": "1.3.8", "latestReleaseDate": "2025-07-29", "description": "The SailPoint API SDK for Python", @@ -3659,50 +7390,10 @@ "day": "2025-07-16T00:00:00.000Z", "downloads": 336 }, - { - "day": "2025-07-17T00:00:00.000Z", - "downloads": 371 - }, - { - "day": "2025-07-18T00:00:00.000Z", - "downloads": 332 - }, - { - "day": "2025-07-19T00:00:00.000Z", - "downloads": 263 - }, - { - "day": "2025-07-20T00:00:00.000Z", - "downloads": 248 - }, - { - "day": "2025-07-21T00:00:00.000Z", - "downloads": 305 - }, - { - "day": "2025-07-22T00:00:00.000Z", - "downloads": 378 - }, - { - "day": "2025-07-23T00:00:00.000Z", - "downloads": 371 - }, { "day": "2025-07-24T00:00:00.000Z", "downloads": 410 }, - { - "day": "2025-07-25T00:00:00.000Z", - "downloads": 320 - }, - { - "day": "2025-07-26T00:00:00.000Z", - "downloads": 273 - }, - { - "day": "2025-07-27T00:00:00.000Z", - "downloads": 272 - }, { "day": "2025-07-28T00:00:00.000Z", "downloads": 347 @@ -3772,8 +7463,44 @@ "downloads": 356 }, { - "day": "2025-08-14T00:00:00.000Z", - "downloads": 468 + "day": "2025-08-15T00:00:00.000Z", + "downloads": 372 + }, + { + "day": "2025-08-16T00:00:00.000Z", + "downloads": 275 + }, + { + "day": "2025-08-17T00:00:00.000Z", + "downloads": 274 + }, + { + "day": "2025-08-18T00:00:00.000Z", + "downloads": 365 + }, + { + "day": "2025-08-19T00:00:00.000Z", + "downloads": 370 + }, + { + "day": "2025-08-20T00:00:00.000Z", + "downloads": 341 + }, + { + "day": "2025-08-22T00:00:00.000Z", + "downloads": 350 + }, + { + "day": "2025-08-23T00:00:00.000Z", + "downloads": 313 + }, + { + "day": "2025-08-24T00:00:00.000Z", + "downloads": 303 + }, + { + "day": "2025-08-25T00:00:00.000Z", + "downloads": 469 } ], "overallSeries": [ @@ -3782,61 +7509,11 @@ "category": "without_mirrors", "downloads": 336 }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 371 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 332 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 263 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 248 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 305 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 378 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 371 - }, { "date": "2025-07-24T00:00:00.000Z", "category": "without_mirrors", "downloads": 410 }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 320 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 273 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "without_mirrors", - "downloads": 272 - }, { "date": "2025-07-28T00:00:00.000Z", "category": "without_mirrors", @@ -3923,9 +7600,54 @@ "downloads": 356 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", "category": "without_mirrors", - "downloads": 468 + "downloads": 372 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 275 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 274 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 365 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 370 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 341 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 350 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 313 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 303 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "without_mirrors", + "downloads": 469 } ], "pythonMajorSeries": [ @@ -3934,41 +7656,6 @@ "category": "3", "downloads": 287 }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "3", - "downloads": 363 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "3", - "downloads": 325 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "3", - "downloads": 248 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "3", - "downloads": 248 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "3", - "downloads": 304 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "3", - "downloads": 374 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "3", - "downloads": 333 - }, { "date": "2025-07-24T00:00:00.000Z", "category": "2", @@ -3979,21 +7666,6 @@ "category": "3", "downloads": 350 }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3", - "downloads": 306 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "3", - "downloads": 266 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "3", - "downloads": 268 - }, { "date": "2025-07-28T00:00:00.000Z", "category": "3", @@ -4080,12 +7752,67 @@ "downloads": 352 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", "category": "3", - "downloads": 467 + "downloads": 372 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "3", + "downloads": 275 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "3", + "downloads": 272 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "3", + "downloads": 344 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3", + "downloads": 362 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3", + "downloads": 331 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3", + "downloads": 350 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "3", + "downloads": 313 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "3", + "downloads": 302 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "3", + "downloads": 466 } ], "pythonMinorSeries": [ + { + "date": "2025-07-16T00:00:00.000Z", + "category": "3.8", + "downloads": 1 + }, + { + "date": "2025-07-16T00:00:00.000Z", + "category": "3.13", + "downloads": 54 + }, { "date": "2025-07-16T00:00:00.000Z", "category": "3.7", @@ -4096,11 +7823,6 @@ "category": "3.11", "downloads": 102 }, - { - "date": "2025-07-16T00:00:00.000Z", - "category": "3.10", - "downloads": 118 - }, { "date": "2025-07-16T00:00:00.000Z", "category": "3.12", @@ -4108,199 +7830,29 @@ }, { "date": "2025-07-16T00:00:00.000Z", + "category": "3.10", + "downloads": 118 + }, + { + "date": "2025-07-24T00:00:00.000Z", + "category": "3.12", + "downloads": 46 + }, + { + "date": "2025-07-24T00:00:00.000Z", "category": "3.8", - "downloads": 1 - }, - { - "date": "2025-07-16T00:00:00.000Z", - "category": "3.13", - "downloads": 54 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "3.12", - "downloads": 68 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "3.13", - "downloads": 54 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "3.10", - "downloads": 132 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "3.11", - "downloads": 108 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "3.12", "downloads": 2 }, { - "date": "2025-07-18T00:00:00.000Z", - "category": "3.13", - "downloads": 54 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "3.7", - "downloads": 2 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "3.9", - "downloads": 3 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "3.10", - "downloads": 140 - }, - { - "date": "2025-07-18T00:00:00.000Z", + "date": "2025-07-24T00:00:00.000Z", "category": "3.11", - "downloads": 124 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "3.11", - "downloads": 72 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "3.10", - "downloads": 120 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "3.13", - "downloads": 54 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "3.6", - "downloads": 1 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "3.13", - "downloads": 52 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "3.10", - "downloads": 121 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "3.11", - "downloads": 74 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "3.11", - "downloads": 106 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "3.13", - "downloads": 54 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "3.12", - "downloads": 11 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "3.10", - "downloads": 132 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "3.10", - "downloads": 150 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "3.13", - "downloads": 60 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "3.12", - "downloads": 79 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "3.11", - "downloads": 84 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "3.10", - "downloads": 139 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "3.12", - "downloads": 54 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "3.13", - "downloads": 63 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "3.11", - "downloads": 76 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "3.7", - "downloads": 1 + "downloads": 88 }, { "date": "2025-07-24T00:00:00.000Z", "category": "3.10", "downloads": 149 }, - { - "date": "2025-07-24T00:00:00.000Z", - "category": "3.8", - "downloads": 2 - }, { "date": "2025-07-24T00:00:00.000Z", "category": "2.7", @@ -4316,101 +7868,21 @@ "category": "3.13", "downloads": 59 }, - { - "date": "2025-07-24T00:00:00.000Z", - "category": "3.11", - "downloads": 88 - }, - { - "date": "2025-07-24T00:00:00.000Z", - "category": "3.12", - "downloads": 46 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3.9", - "downloads": 1 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3.11", - "downloads": 78 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3.12", - "downloads": 26 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3.13", - "downloads": 57 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "3.10", - "downloads": 143 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "3.10", - "downloads": 142 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "3.11", - "downloads": 72 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "3.13", - "downloads": 51 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "3.11", - "downloads": 72 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "3.10", - "downloads": 143 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "3.13", - "downloads": 52 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, { "date": "2025-07-28T00:00:00.000Z", - "category": "3.10", - "downloads": 142 - }, - { - "date": "2025-07-28T00:00:00.000Z", - "category": "3.11", - "downloads": 74 + "category": "3.12", + "downloads": 54 }, { "date": "2025-07-28T00:00:00.000Z", "category": "3.13", "downloads": 67 }, + { + "date": "2025-07-28T00:00:00.000Z", + "category": "3.10", + "downloads": 142 + }, { "date": "2025-07-28T00:00:00.000Z", "category": "3.7", @@ -4418,14 +7890,24 @@ }, { "date": "2025-07-28T00:00:00.000Z", - "category": "3.12", - "downloads": 54 + "category": "3.11", + "downloads": 74 + }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "3.8", + "downloads": 1 }, { "date": "2025-07-29T00:00:00.000Z", "category": "3.12", "downloads": 30 }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "3.7", + "downloads": 5 + }, { "date": "2025-07-29T00:00:00.000Z", "category": "3.13", @@ -4441,16 +7923,6 @@ "category": "3.10", "downloads": 150 }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "3.7", - "downloads": 5 - }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "3.8", - "downloads": 1 - }, { "date": "2025-07-30T00:00:00.000Z", "category": "3.11", @@ -4463,8 +7935,8 @@ }, { "date": "2025-07-30T00:00:00.000Z", - "category": "3.10", - "downloads": 140 + "category": "3.7", + "downloads": 2 }, { "date": "2025-07-30T00:00:00.000Z", @@ -4473,18 +7945,8 @@ }, { "date": "2025-07-30T00:00:00.000Z", - "category": "3.7", - "downloads": 2 - }, - { - "date": "2025-07-31T00:00:00.000Z", - "category": "3.7", - "downloads": 2 - }, - { - "date": "2025-07-31T00:00:00.000Z", "category": "3.10", - "downloads": 152 + "downloads": 140 }, { "date": "2025-07-31T00:00:00.000Z", @@ -4493,14 +7955,24 @@ }, { "date": "2025-07-31T00:00:00.000Z", - "category": "3.13", - "downloads": 55 + "category": "3.7", + "downloads": 2 }, { "date": "2025-07-31T00:00:00.000Z", "category": "3.12", "downloads": 62 }, + { + "date": "2025-07-31T00:00:00.000Z", + "category": "3.13", + "downloads": 55 + }, + { + "date": "2025-07-31T00:00:00.000Z", + "category": "3.10", + "downloads": 152 + }, { "date": "2025-08-01T00:00:00.000Z", "category": "3.13", @@ -4511,55 +7983,45 @@ "category": "3.12", "downloads": 78 }, - { - "date": "2025-08-01T00:00:00.000Z", - "category": "3.11", - "downloads": 80 - }, { "date": "2025-08-01T00:00:00.000Z", "category": "3.10", "downloads": 145 }, - { - "date": "2025-08-01T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, { "date": "2025-08-01T00:00:00.000Z", "category": "3.9", "downloads": 1 }, { - "date": "2025-08-02T00:00:00.000Z", + "date": "2025-08-01T00:00:00.000Z", "category": "3.7", - "downloads": 3 + "downloads": 1 }, { - "date": "2025-08-02T00:00:00.000Z", - "category": "3.10", - "downloads": 142 + "date": "2025-08-01T00:00:00.000Z", + "category": "3.11", + "downloads": 80 }, { "date": "2025-08-02T00:00:00.000Z", "category": "3.11", "downloads": 72 }, + { + "date": "2025-08-02T00:00:00.000Z", + "category": "3.10", + "downloads": 142 + }, { "date": "2025-08-02T00:00:00.000Z", "category": "3.13", "downloads": 53 }, { - "date": "2025-08-03T00:00:00.000Z", - "category": "3.11", - "downloads": 74 - }, - { - "date": "2025-08-03T00:00:00.000Z", + "date": "2025-08-02T00:00:00.000Z", "category": "3.7", - "downloads": 1 + "downloads": 3 }, { "date": "2025-08-03T00:00:00.000Z", @@ -4571,10 +8033,20 @@ "category": "3.13", "downloads": 52 }, + { + "date": "2025-08-03T00:00:00.000Z", + "category": "3.11", + "downloads": 74 + }, + { + "date": "2025-08-03T00:00:00.000Z", + "category": "3.7", + "downloads": 1 + }, { "date": "2025-08-04T00:00:00.000Z", - "category": "3.13", - "downloads": 53 + "category": "3.9", + "downloads": 2 }, { "date": "2025-08-04T00:00:00.000Z", @@ -4593,13 +8065,8 @@ }, { "date": "2025-08-04T00:00:00.000Z", - "category": "3.9", - "downloads": 2 - }, - { - "date": "2025-08-04T00:00:00.000Z", - "category": "3.11", - "downloads": 72 + "category": "3.13", + "downloads": 53 }, { "date": "2025-08-04T00:00:00.000Z", @@ -4607,9 +8074,9 @@ "downloads": 54 }, { - "date": "2025-08-05T00:00:00.000Z", - "category": "3.9", - "downloads": 1 + "date": "2025-08-04T00:00:00.000Z", + "category": "3.11", + "downloads": 72 }, { "date": "2025-08-05T00:00:00.000Z", @@ -4618,13 +8085,13 @@ }, { "date": "2025-08-05T00:00:00.000Z", - "category": "3.13", - "downloads": 59 + "category": "3.9", + "downloads": 1 }, { "date": "2025-08-05T00:00:00.000Z", - "category": "3.11", - "downloads": 78 + "category": "3.7", + "downloads": 3 }, { "date": "2025-08-05T00:00:00.000Z", @@ -4633,13 +8100,13 @@ }, { "date": "2025-08-05T00:00:00.000Z", - "category": "3.7", - "downloads": 3 + "category": "3.11", + "downloads": 78 }, { - "date": "2025-08-06T00:00:00.000Z", + "date": "2025-08-05T00:00:00.000Z", "category": "3.13", - "downloads": 57 + "downloads": 59 }, { "date": "2025-08-06T00:00:00.000Z", @@ -4648,8 +8115,13 @@ }, { "date": "2025-08-06T00:00:00.000Z", - "category": "3.8", - "downloads": 8 + "category": "3.10", + "downloads": 139 + }, + { + "date": "2025-08-06T00:00:00.000Z", + "category": "3.13", + "downloads": 57 }, { "date": "2025-08-06T00:00:00.000Z", @@ -4663,24 +8135,19 @@ }, { "date": "2025-08-06T00:00:00.000Z", - "category": "3.10", - "downloads": 139 - }, - { - "date": "2025-08-07T00:00:00.000Z", - "category": "3.7", - "downloads": 4 - }, - { - "date": "2025-08-07T00:00:00.000Z", - "category": "3.10", - "downloads": 136 + "category": "3.8", + "downloads": 8 }, { "date": "2025-08-07T00:00:00.000Z", "category": "3.12", "downloads": 72 }, + { + "date": "2025-08-07T00:00:00.000Z", + "category": "3.11", + "downloads": 74 + }, { "date": "2025-08-07T00:00:00.000Z", "category": "3.13", @@ -4688,13 +8155,13 @@ }, { "date": "2025-08-07T00:00:00.000Z", - "category": "3.11", - "downloads": 74 + "category": "3.10", + "downloads": 136 }, { - "date": "2025-08-08T00:00:00.000Z", - "category": "3.10", - "downloads": 145 + "date": "2025-08-07T00:00:00.000Z", + "category": "3.7", + "downloads": 4 }, { "date": "2025-08-08T00:00:00.000Z", @@ -4703,13 +8170,8 @@ }, { "date": "2025-08-08T00:00:00.000Z", - "category": "3.13", - "downloads": 99 - }, - { - "date": "2025-08-08T00:00:00.000Z", - "category": "3.12", - "downloads": 41 + "category": "3.10", + "downloads": 145 }, { "date": "2025-08-08T00:00:00.000Z", @@ -4722,9 +8184,14 @@ "downloads": 1 }, { - "date": "2025-08-09T00:00:00.000Z", + "date": "2025-08-08T00:00:00.000Z", "category": "3.12", - "downloads": 3 + "downloads": 41 + }, + { + "date": "2025-08-08T00:00:00.000Z", + "category": "3.13", + "downloads": 99 }, { "date": "2025-08-09T00:00:00.000Z", @@ -4736,6 +8203,11 @@ "category": "3.7", "downloads": 2 }, + { + "date": "2025-08-09T00:00:00.000Z", + "category": "3.13", + "downloads": 53 + }, { "date": "2025-08-09T00:00:00.000Z", "category": "3.10", @@ -4743,13 +8215,8 @@ }, { "date": "2025-08-09T00:00:00.000Z", - "category": "3.13", - "downloads": 53 - }, - { - "date": "2025-08-10T00:00:00.000Z", - "category": "3.7", - "downloads": 2 + "category": "3.12", + "downloads": 3 }, { "date": "2025-08-10T00:00:00.000Z", @@ -4767,24 +8234,9 @@ "downloads": 145 }, { - "date": "2025-08-11T00:00:00.000Z", - "category": "3.12", - "downloads": 53 - }, - { - "date": "2025-08-11T00:00:00.000Z", - "category": "3.13", - "downloads": 51 - }, - { - "date": "2025-08-11T00:00:00.000Z", - "category": "3.9", - "downloads": 8 - }, - { - "date": "2025-08-11T00:00:00.000Z", - "category": "3.11", - "downloads": 73 + "date": "2025-08-10T00:00:00.000Z", + "category": "3.7", + "downloads": 2 }, { "date": "2025-08-11T00:00:00.000Z", @@ -4796,11 +8248,46 @@ "category": "3.10", "downloads": 151 }, + { + "date": "2025-08-11T00:00:00.000Z", + "category": "3.11", + "downloads": 73 + }, + { + "date": "2025-08-11T00:00:00.000Z", + "category": "3.9", + "downloads": 8 + }, + { + "date": "2025-08-11T00:00:00.000Z", + "category": "3.12", + "downloads": 53 + }, + { + "date": "2025-08-11T00:00:00.000Z", + "category": "3.13", + "downloads": 51 + }, + { + "date": "2025-08-12T00:00:00.000Z", + "category": "3.13", + "downloads": 59 + }, { "date": "2025-08-12T00:00:00.000Z", "category": "3.12", "downloads": 150 }, + { + "date": "2025-08-12T00:00:00.000Z", + "category": "3.8", + "downloads": 1 + }, + { + "date": "2025-08-12T00:00:00.000Z", + "category": "3.7", + "downloads": 1 + }, { "date": "2025-08-12T00:00:00.000Z", "category": "3.11", @@ -4811,21 +8298,6 @@ "category": "3.10", "downloads": 132 }, - { - "date": "2025-08-12T00:00:00.000Z", - "category": "3.13", - "downloads": 59 - }, - { - "date": "2025-08-12T00:00:00.000Z", - "category": "3.7", - "downloads": 1 - }, - { - "date": "2025-08-12T00:00:00.000Z", - "category": "3.8", - "downloads": 1 - }, { "date": "2025-08-13T00:00:00.000Z", "category": "3.13", @@ -4852,171 +8324,286 @@ "downloads": 3 }, { - "date": "2025-08-14T00:00:00.000Z", - "category": "3.12", - "downloads": 191 - }, - { - "date": "2025-08-14T00:00:00.000Z", - "category": "3.10", - "downloads": 143 - }, - { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", "category": "3.13", - "downloads": 55 + "downloads": 53 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", "category": "3.11", "downloads": 72 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", + "category": "3.10", + "downloads": 158 + }, + { + "date": "2025-08-15T00:00:00.000Z", + "category": "3.9", + "downloads": 2 + }, + { + "date": "2025-08-15T00:00:00.000Z", "category": "3.7", "downloads": 3 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", + "category": "3.12", + "downloads": 84 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "3.10", + "downloads": 143 + }, + { + "date": "2025-08-16T00:00:00.000Z", "category": "3.9", + "downloads": 1 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "3.13", + "downloads": 51 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "3.7", "downloads": 3 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "3.11", + "downloads": 77 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "3.7", + "downloads": 4 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "3.11", + "downloads": 72 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "3.13", + "downloads": 51 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "3.10", + "downloads": 145 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "3.12", + "downloads": 60 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "3.13", + "downloads": 66 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "3.11", + "downloads": 72 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "3.7", + "downloads": 1 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "3.10", + "downloads": 145 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3.7", + "downloads": 3 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3.10", + "downloads": 151 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3.11", + "downloads": 76 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3.13", + "downloads": 95 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3.9", + "downloads": 4 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "3.12", + "downloads": 33 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.10", + "downloads": 163 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.11", + "downloads": 85 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.7", + "downloads": 4 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.9", + "downloads": 1 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.13", + "downloads": 55 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.8", + "downloads": 2 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "3.12", + "downloads": 21 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3.11", + "downloads": 82 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3.7", + "downloads": 3 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3.10", + "downloads": 181 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3.13", + "downloads": 71 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3.9", + "downloads": 1 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "3.12", + "downloads": 12 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "3.7", + "downloads": 3 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "3.13", + "downloads": 57 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "3.11", + "downloads": 72 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "3.10", + "downloads": 181 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "3.10", + "downloads": 181 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "3.13", + "downloads": 49 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "3.11", + "downloads": 72 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "3.13", + "downloads": 50 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "3.12", + "downloads": 156 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "3.7", + "downloads": 4 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "3.10", + "downloads": 183 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "3.11", + "downloads": 73 } ], "systemSeries": [ - { - "date": "2025-07-16T00:00:00.000Z", - "category": "other", - "downloads": 78 - }, - { - "date": "2025-07-16T00:00:00.000Z", - "category": "Windows", - "downloads": 7 - }, { "date": "2025-07-16T00:00:00.000Z", "category": "Linux", "downloads": 281 }, + { + "date": "2025-07-16T00:00:00.000Z", + "category": "other", + "downloads": 78 + }, { "date": "2025-07-16T00:00:00.000Z", "category": "Darwin", "downloads": 2 }, { - "date": "2025-07-17T00:00:00.000Z", + "date": "2025-07-16T00:00:00.000Z", "category": "Windows", - "downloads": 4 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "Linux", - "downloads": 365 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "other", - "downloads": 21 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "other", - "downloads": 55 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "Linux", - "downloads": 316 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "Darwin", - "downloads": 5 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "Windows", - "downloads": 4 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "Linux", - "downloads": 244 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "other", - "downloads": 96 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "Darwin", - "downloads": 4 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "Windows", - "downloads": 2 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "Linux", - "downloads": 246 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "Darwin", - "downloads": 2 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "Linux", - "downloads": 303 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "other", - "downloads": 8 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "other", - "downloads": 6 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "Darwin", - "downloads": 4 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "Linux", - "downloads": 370 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "Windows", - "downloads": 2 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "Linux", - "downloads": 331 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "other", - "downloads": 38 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "Darwin", - "downloads": 2 + "downloads": 7 }, { "date": "2025-07-24T00:00:00.000Z", - "category": "Darwin", - "downloads": 5 + "category": "Linux", + "downloads": 341 }, { "date": "2025-07-24T00:00:00.000Z", @@ -5025,89 +8612,44 @@ }, { "date": "2025-07-24T00:00:00.000Z", - "category": "Windows", - "downloads": 8 - }, - { - "date": "2025-07-24T00:00:00.000Z", - "category": "Linux", - "downloads": 341 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "Windows", - "downloads": 4 - }, - { - "date": "2025-07-25T00:00:00.000Z", "category": "Darwin", "downloads": 5 }, { - "date": "2025-07-25T00:00:00.000Z", - "category": "other", - "downloads": 66 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "Linux", - "downloads": 297 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "Linux", - "downloads": 266 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "other", - "downloads": 79 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "other", - "downloads": 16 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "Linux", - "downloads": 266 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "Windows", - "downloads": 2 - }, - { - "date": "2025-07-28T00:00:00.000Z", + "date": "2025-07-24T00:00:00.000Z", "category": "Windows", "downloads": 8 }, - { - "date": "2025-07-28T00:00:00.000Z", - "category": "other", - "downloads": 24 - }, { "date": "2025-07-28T00:00:00.000Z", "category": "Linux", "downloads": 328 }, + { + "date": "2025-07-28T00:00:00.000Z", + "category": "other", + "downloads": 24 + }, + { + "date": "2025-07-28T00:00:00.000Z", + "category": "Windows", + "downloads": 8 + }, { "date": "2025-07-28T00:00:00.000Z", "category": "Darwin", "downloads": 2 }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "Darwin", + "downloads": 4 + }, { "date": "2025-07-29T00:00:00.000Z", "category": "other", "downloads": 148 }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "Linux", - "downloads": 314 - }, { "date": "2025-07-29T00:00:00.000Z", "category": "Windows", @@ -5115,13 +8657,8 @@ }, { "date": "2025-07-29T00:00:00.000Z", - "category": "Darwin", - "downloads": 4 - }, - { - "date": "2025-07-30T00:00:00.000Z", - "category": "Darwin", - "downloads": 2 + "category": "Linux", + "downloads": 314 }, { "date": "2025-07-30T00:00:00.000Z", @@ -5135,34 +8672,39 @@ }, { "date": "2025-07-30T00:00:00.000Z", - "category": "other", - "downloads": 76 + "category": "Darwin", + "downloads": 2 }, { - "date": "2025-07-31T00:00:00.000Z", - "category": "Windows", - "downloads": 2 + "date": "2025-07-30T00:00:00.000Z", + "category": "other", + "downloads": 76 }, { "date": "2025-07-31T00:00:00.000Z", "category": "other", "downloads": 10 }, + { + "date": "2025-07-31T00:00:00.000Z", + "category": "Windows", + "downloads": 2 + }, { "date": "2025-07-31T00:00:00.000Z", "category": "Linux", "downloads": 345 }, + { + "date": "2025-08-01T00:00:00.000Z", + "category": "Windows", + "downloads": 2 + }, { "date": "2025-08-01T00:00:00.000Z", "category": "other", "downloads": 88 }, - { - "date": "2025-08-01T00:00:00.000Z", - "category": "Darwin", - "downloads": 6 - }, { "date": "2025-08-01T00:00:00.000Z", "category": "Linux", @@ -5170,28 +8712,28 @@ }, { "date": "2025-08-01T00:00:00.000Z", - "category": "Windows", - "downloads": 2 + "category": "Darwin", + "downloads": 6 }, { "date": "2025-08-02T00:00:00.000Z", "category": "Linux", "downloads": 268 }, - { - "date": "2025-08-02T00:00:00.000Z", - "category": "Darwin", - "downloads": 2 - }, { "date": "2025-08-02T00:00:00.000Z", "category": "other", "downloads": 75 }, + { + "date": "2025-08-02T00:00:00.000Z", + "category": "Darwin", + "downloads": 2 + }, { "date": "2025-08-03T00:00:00.000Z", - "category": "Windows", - "downloads": 4 + "category": "other", + "downloads": 31 }, { "date": "2025-08-03T00:00:00.000Z", @@ -5200,53 +8742,53 @@ }, { "date": "2025-08-03T00:00:00.000Z", - "category": "other", - "downloads": 31 - }, - { - "date": "2025-08-04T00:00:00.000Z", - "category": "Darwin", - "downloads": 4 - }, - { - "date": "2025-08-04T00:00:00.000Z", "category": "Windows", - "downloads": 6 + "downloads": 4 }, { "date": "2025-08-04T00:00:00.000Z", "category": "other", "downloads": 35 }, + { + "date": "2025-08-04T00:00:00.000Z", + "category": "Windows", + "downloads": 6 + }, { "date": "2025-08-04T00:00:00.000Z", "category": "Linux", "downloads": 313 }, { - "date": "2025-08-05T00:00:00.000Z", - "category": "Linux", - "downloads": 272 + "date": "2025-08-04T00:00:00.000Z", + "category": "Darwin", + "downloads": 4 }, { "date": "2025-08-05T00:00:00.000Z", "category": "Windows", "downloads": 6 }, - { - "date": "2025-08-05T00:00:00.000Z", - "category": "Darwin", - "downloads": 5 - }, { "date": "2025-08-05T00:00:00.000Z", "category": "other", "downloads": 23 }, { - "date": "2025-08-06T00:00:00.000Z", + "date": "2025-08-05T00:00:00.000Z", "category": "Linux", - "downloads": 295 + "downloads": 272 + }, + { + "date": "2025-08-05T00:00:00.000Z", + "category": "Darwin", + "downloads": 5 + }, + { + "date": "2025-08-06T00:00:00.000Z", + "category": "Darwin", + "downloads": 2 }, { "date": "2025-08-06T00:00:00.000Z", @@ -5260,13 +8802,8 @@ }, { "date": "2025-08-06T00:00:00.000Z", - "category": "Darwin", - "downloads": 2 - }, - { - "date": "2025-08-07T00:00:00.000Z", - "category": "Darwin", - "downloads": 2 + "category": "Linux", + "downloads": 295 }, { "date": "2025-08-07T00:00:00.000Z", @@ -5278,6 +8815,11 @@ "category": "other", "downloads": 50 }, + { + "date": "2025-08-07T00:00:00.000Z", + "category": "Darwin", + "downloads": 2 + }, { "date": "2025-08-08T00:00:00.000Z", "category": "Linux", @@ -5303,20 +8845,15 @@ "category": "Linux", "downloads": 278 }, - { - "date": "2025-08-10T00:00:00.000Z", - "category": "other", - "downloads": 14 - }, { "date": "2025-08-10T00:00:00.000Z", "category": "Linux", "downloads": 271 }, { - "date": "2025-08-11T00:00:00.000Z", + "date": "2025-08-10T00:00:00.000Z", "category": "other", - "downloads": 64 + "downloads": 14 }, { "date": "2025-08-11T00:00:00.000Z", @@ -5324,15 +8861,20 @@ "downloads": 339 }, { - "date": "2025-08-12T00:00:00.000Z", - "category": "Linux", - "downloads": 420 + "date": "2025-08-11T00:00:00.000Z", + "category": "other", + "downloads": 64 }, { "date": "2025-08-12T00:00:00.000Z", "category": "other", "downloads": 124 }, + { + "date": "2025-08-12T00:00:00.000Z", + "category": "Linux", + "downloads": 420 + }, { "date": "2025-08-12T00:00:00.000Z", "category": "Windows", @@ -5359,19 +8901,154 @@ "downloads": 4 }, { - "date": "2025-08-14T00:00:00.000Z", - "category": "Linux", - "downloads": 464 - }, - { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", "category": "other", - "downloads": 19 + "downloads": 70 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", + "category": "Linux", + "downloads": 370 + }, + { + "date": "2025-08-15T00:00:00.000Z", "category": "Darwin", + "downloads": 2 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "other", + "downloads": 2 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "Linux", + "downloads": 272 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "Windows", + "downloads": 2 + }, + { + "date": "2025-08-16T00:00:00.000Z", + "category": "Darwin", + "downloads": 1 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "other", + "downloads": 2 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "Linux", + "downloads": 272 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "Linux", + "downloads": 350 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "other", + "downloads": 24 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "other", + "downloads": 5 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "Darwin", + "downloads": 4 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "Windows", + "downloads": 4 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "Linux", + "downloads": 358 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "Windows", + "downloads": 2 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "other", + "downloads": 9 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "Linux", + "downloads": 333 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "other", + "downloads": 32 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "Linux", + "downloads": 342 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "Darwin", + "downloads": 1 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "Windows", + "downloads": 7 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "other", + "downloads": 12 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "Linux", + "downloads": 313 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "other", + "downloads": 30 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "Linux", + "downloads": 302 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "Darwin", + "downloads": 2 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "Windows", "downloads": 3 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "Linux", + "downloads": 463 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "other", + "downloads": 65 } ], "installerSeries": [ @@ -5380,26 +9057,21 @@ "category": "unknown", "downloads": 8 }, - { - "date": "2025-07-16T00:00:00.000Z", - "category": "pip", - "downloads": 283 - }, { "date": "2025-07-16T00:00:00.000Z", "category": "bandersnatch", "downloads": 24 }, - { - "date": "2025-07-16T00:00:00.000Z", - "category": "poetry", - "downloads": 3 - }, { "date": "2025-07-16T00:00:00.000Z", "category": "Browser", "downloads": 44 }, + { + "date": "2025-07-16T00:00:00.000Z", + "category": "poetry", + "downloads": 3 + }, { "date": "2025-07-16T00:00:00.000Z", "category": "requests", @@ -5416,139 +9088,9 @@ "downloads": 4 }, { - "date": "2025-07-17T00:00:00.000Z", - "category": "unknown", - "downloads": 17 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 2 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "Browser", - "downloads": 2 - }, - { - "date": "2025-07-17T00:00:00.000Z", - "category": "poetry", - "downloads": 6 - }, - { - "date": "2025-07-17T00:00:00.000Z", + "date": "2025-07-16T00:00:00.000Z", "category": "pip", - "downloads": 363 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 14 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "unknown", - "downloads": 34 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "pip", - "downloads": 325 - }, - { - "date": "2025-07-18T00:00:00.000Z", - "category": "requests", - "downloads": 7 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "Browser", - "downloads": 14 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 80 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "requests", - "downloads": 1 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "unknown", - "downloads": 1 - }, - { - "date": "2025-07-19T00:00:00.000Z", - "category": "pip", - "downloads": 248 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "uv", - "downloads": 2 - }, - { - "date": "2025-07-20T00:00:00.000Z", - "category": "pip", - "downloads": 246 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 8 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "poetry", - "downloads": 1 - }, - { - "date": "2025-07-21T00:00:00.000Z", - "category": "pip", - "downloads": 304 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 4 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "pip", - "downloads": 370 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "Browser", - "downloads": 2 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "uv", - "downloads": 4 - }, - { - "date": "2025-07-22T00:00:00.000Z", - "category": "poetry", - "downloads": 2 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "Browser", - "downloads": 38 - }, - { - "date": "2025-07-23T00:00:00.000Z", - "category": "pip", - "downloads": 333 - }, - { - "date": "2025-07-24T00:00:00.000Z", - "category": "unknown", - "downloads": 47 + "downloads": 283 }, { "date": "2025-07-24T00:00:00.000Z", @@ -5557,19 +9099,19 @@ }, { "date": "2025-07-24T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 174 - }, - { - "date": "2025-07-24T00:00:00.000Z", - "category": "poetry", - "downloads": 4 + "category": "unknown", + "downloads": 47 }, { "date": "2025-07-24T00:00:00.000Z", "category": "pip", "downloads": 350 }, + { + "date": "2025-07-24T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 174 + }, { "date": "2025-07-24T00:00:00.000Z", "category": "Nexus", @@ -5577,139 +9119,99 @@ }, { "date": "2025-07-24T00:00:00.000Z", - "category": "requests", - "downloads": 27 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 36 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "requests", - "downloads": 3 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "unknown", - "downloads": 16 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "pip", - "downloads": 306 - }, - { - "date": "2025-07-25T00:00:00.000Z", - "category": "Browser", - "downloads": 11 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "Browser", - "downloads": 7 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "unknown", - "downloads": 2 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "pip", - "downloads": 266 - }, - { - "date": "2025-07-26T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 70 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 12 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "pip", - "downloads": 268 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "Nexus", - "downloads": 1 - }, - { - "date": "2025-07-27T00:00:00.000Z", - "category": "Browser", - "downloads": 3 - }, - { - "date": "2025-07-28T00:00:00.000Z", - "category": "requests", - "downloads": 8 - }, - { - "date": "2025-07-28T00:00:00.000Z", - "category": "uv", + "category": "poetry", "downloads": 4 }, { - "date": "2025-07-28T00:00:00.000Z", - "category": "Browser", - "downloads": 1 + "date": "2025-07-24T00:00:00.000Z", + "category": "requests", + "downloads": 27 }, { "date": "2025-07-28T00:00:00.000Z", "category": "bandersnatch", "downloads": 14 }, + { + "date": "2025-07-28T00:00:00.000Z", + "category": "Browser", + "downloads": 1 + }, + { + "date": "2025-07-28T00:00:00.000Z", + "category": "requests", + "downloads": 8 + }, { "date": "2025-07-28T00:00:00.000Z", "category": "unknown", "downloads": 1 }, + { + "date": "2025-07-28T00:00:00.000Z", + "category": "uv", + "downloads": 4 + }, { "date": "2025-07-28T00:00:00.000Z", "category": "pip", "downloads": 334 }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "unknown", - "downloads": 65 - }, { "date": "2025-07-29T00:00:00.000Z", "category": "Browser", "downloads": 36 }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "poetry", - "downloads": 7 - }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "pip", - "downloads": 317 - }, - { - "date": "2025-07-29T00:00:00.000Z", - "category": "Nexus", - "downloads": 1 - }, { "date": "2025-07-29T00:00:00.000Z", "category": "requests", "downloads": 23 }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "unknown", + "downloads": 65 + }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "pip", + "downloads": 317 + }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "poetry", + "downloads": 7 + }, { "date": "2025-07-29T00:00:00.000Z", "category": "bandersnatch", "downloads": 23 }, + { + "date": "2025-07-29T00:00:00.000Z", + "category": "Nexus", + "downloads": 1 + }, + { + "date": "2025-07-30T00:00:00.000Z", + "category": "requests", + "downloads": 4 + }, + { + "date": "2025-07-30T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 45 + }, + { + "date": "2025-07-30T00:00:00.000Z", + "category": "uv", + "downloads": 2 + }, + { + "date": "2025-07-30T00:00:00.000Z", + "category": "poetry", + "downloads": 3 + }, { "date": "2025-07-30T00:00:00.000Z", "category": "pip", @@ -5720,36 +9222,11 @@ "category": "unknown", "downloads": 16 }, - { - "date": "2025-07-30T00:00:00.000Z", - "category": "requests", - "downloads": 4 - }, - { - "date": "2025-07-30T00:00:00.000Z", - "category": "poetry", - "downloads": 3 - }, { "date": "2025-07-30T00:00:00.000Z", "category": "Browser", "downloads": 11 }, - { - "date": "2025-07-30T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 45 - }, - { - "date": "2025-07-30T00:00:00.000Z", - "category": "uv", - "downloads": 2 - }, - { - "date": "2025-07-31T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 4 - }, { "date": "2025-07-31T00:00:00.000Z", "category": "pip", @@ -5757,14 +9234,19 @@ }, { "date": "2025-07-31T00:00:00.000Z", - "category": "unknown", - "downloads": 5 + "category": "bandersnatch", + "downloads": 4 }, { "date": "2025-07-31T00:00:00.000Z", "category": "Browser", "downloads": 1 }, + { + "date": "2025-07-31T00:00:00.000Z", + "category": "unknown", + "downloads": 5 + }, { "date": "2025-08-01T00:00:00.000Z", "category": "uv", @@ -5777,8 +9259,8 @@ }, { "date": "2025-08-01T00:00:00.000Z", - "category": "unknown", - "downloads": 3 + "category": "bandersnatch", + "downloads": 66 }, { "date": "2025-08-01T00:00:00.000Z", @@ -5787,14 +9269,19 @@ }, { "date": "2025-08-01T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 66 + "category": "unknown", + "downloads": 3 }, { "date": "2025-08-01T00:00:00.000Z", "category": "Artifactory", "downloads": 4 }, + { + "date": "2025-08-02T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 64 + }, { "date": "2025-08-02T00:00:00.000Z", "category": "unknown", @@ -5807,8 +9294,8 @@ }, { "date": "2025-08-02T00:00:00.000Z", - "category": "Browser", - "downloads": 7 + "category": "uv", + "downloads": 2 }, { "date": "2025-08-02T00:00:00.000Z", @@ -5817,24 +9304,19 @@ }, { "date": "2025-08-02T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 64 + "category": "Browser", + "downloads": 7 }, { - "date": "2025-08-02T00:00:00.000Z", - "category": "uv", - "downloads": 2 + "date": "2025-08-03T00:00:00.000Z", + "category": "pip", + "downloads": 268 }, { "date": "2025-08-03T00:00:00.000Z", "category": "Browser", "downloads": 24 }, - { - "date": "2025-08-03T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 6 - }, { "date": "2025-08-03T00:00:00.000Z", "category": "unknown", @@ -5842,8 +9324,8 @@ }, { "date": "2025-08-03T00:00:00.000Z", - "category": "pip", - "downloads": 268 + "category": "bandersnatch", + "downloads": 6 }, { "date": "2025-08-04T00:00:00.000Z", @@ -5855,15 +9337,20 @@ "category": "pip", "downloads": 323 }, + { + "date": "2025-08-04T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 4 + }, { "date": "2025-08-04T00:00:00.000Z", "category": "unknown", "downloads": 30 }, { - "date": "2025-08-04T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 4 + "date": "2025-08-05T00:00:00.000Z", + "category": "unknown", + "downloads": 1 }, { "date": "2025-08-05T00:00:00.000Z", @@ -5875,31 +9362,36 @@ "category": "pip", "downloads": 281 }, - { - "date": "2025-08-05T00:00:00.000Z", - "category": "unknown", - "downloads": 1 - }, { "date": "2025-08-05T00:00:00.000Z", "category": "uv", "downloads": 2 }, - { - "date": "2025-08-06T00:00:00.000Z", - "category": "unknown", - "downloads": 10 - }, { "date": "2025-08-06T00:00:00.000Z", "category": "bandersnatch", "downloads": 122 }, + { + "date": "2025-08-06T00:00:00.000Z", + "category": "unknown", + "downloads": 10 + }, { "date": "2025-08-06T00:00:00.000Z", "category": "pip", "downloads": 305 }, + { + "date": "2025-08-07T00:00:00.000Z", + "category": "unknown", + "downloads": 6 + }, + { + "date": "2025-08-07T00:00:00.000Z", + "category": "uv", + "downloads": 2 + }, { "date": "2025-08-07T00:00:00.000Z", "category": "poetry", @@ -5907,8 +9399,8 @@ }, { "date": "2025-08-07T00:00:00.000Z", - "category": "uv", - "downloads": 2 + "category": "Browser", + "downloads": 42 }, { "date": "2025-08-07T00:00:00.000Z", @@ -5920,16 +9412,6 @@ "category": "bandersnatch", "downloads": 2 }, - { - "date": "2025-08-07T00:00:00.000Z", - "category": "Browser", - "downloads": 42 - }, - { - "date": "2025-08-07T00:00:00.000Z", - "category": "unknown", - "downloads": 6 - }, { "date": "2025-08-08T00:00:00.000Z", "category": "pip", @@ -5940,6 +9422,11 @@ "category": "Browser", "downloads": 2 }, + { + "date": "2025-08-09T00:00:00.000Z", + "category": "pip", + "downloads": 278 + }, { "date": "2025-08-09T00:00:00.000Z", "category": "bandersnatch", @@ -5951,9 +9438,9 @@ "downloads": 2 }, { - "date": "2025-08-09T00:00:00.000Z", - "category": "pip", - "downloads": 278 + "date": "2025-08-10T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 10 }, { "date": "2025-08-10T00:00:00.000Z", @@ -5962,8 +9449,8 @@ }, { "date": "2025-08-10T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 10 + "category": "pip", + "downloads": 271 }, { "date": "2025-08-10T00:00:00.000Z", @@ -5975,16 +9462,6 @@ "category": "requests", "downloads": 2 }, - { - "date": "2025-08-10T00:00:00.000Z", - "category": "pip", - "downloads": 271 - }, - { - "date": "2025-08-11T00:00:00.000Z", - "category": "bandersnatch", - "downloads": 62 - }, { "date": "2025-08-11T00:00:00.000Z", "category": "Browser", @@ -5995,31 +9472,46 @@ "category": "pip", "downloads": 339 }, + { + "date": "2025-08-11T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 62 + }, { "date": "2025-08-12T00:00:00.000Z", "category": "unknown", "downloads": 1 }, - { - "date": "2025-08-12T00:00:00.000Z", - "category": "pip", - "downloads": 421 - }, - { - "date": "2025-08-12T00:00:00.000Z", - "category": "Browser", - "downloads": 5 - }, { "date": "2025-08-12T00:00:00.000Z", "category": "poetry", "downloads": 3 }, + { + "date": "2025-08-12T00:00:00.000Z", + "category": "Browser", + "downloads": 5 + }, + { + "date": "2025-08-12T00:00:00.000Z", + "category": "pip", + "downloads": 421 + }, { "date": "2025-08-12T00:00:00.000Z", "category": "bandersnatch", "downloads": 118 }, + { + "date": "2025-08-13T00:00:00.000Z", + "category": "Nexus", + "downloads": 1 + }, + { + "date": "2025-08-13T00:00:00.000Z", + "category": "unknown", + "downloads": 1 + }, { "date": "2025-08-13T00:00:00.000Z", "category": "bandersnatch", @@ -6041,34 +9533,179 @@ "downloads": 352 }, { - "date": "2025-08-13T00:00:00.000Z", - "category": "unknown", - "downloads": 1 + "date": "2025-08-15T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 70 }, { - "date": "2025-08-13T00:00:00.000Z", - "category": "Nexus", - "downloads": 1 - }, - { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-15T00:00:00.000Z", "category": "pip", - "downloads": 467 + "downloads": 372 }, { - "date": "2025-08-14T00:00:00.000Z", - "category": "Browser", - "downloads": 1 - }, - { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-16T00:00:00.000Z", "category": "unknown", "downloads": 2 }, { - "date": "2025-08-14T00:00:00.000Z", + "date": "2025-08-16T00:00:00.000Z", + "category": "pip", + "downloads": 275 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "pip", + "downloads": 272 + }, + { + "date": "2025-08-17T00:00:00.000Z", + "category": "Browser", + "downloads": 2 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "Nexus", + "downloads": 1 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "pip", + "downloads": 344 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "Artifactory", + "downloads": 1 + }, + { + "date": "2025-08-18T00:00:00.000Z", "category": "bandersnatch", - "downloads": 16 + "downloads": 8 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "Browser", + "downloads": 14 + }, + { + "date": "2025-08-18T00:00:00.000Z", + "category": "poetry", + "downloads": 6 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "pip", + "downloads": 362 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "poetry", + "downloads": 4 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "unknown", + "downloads": 1 + }, + { + "date": "2025-08-19T00:00:00.000Z", + "category": "Browser", + "downloads": 4 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "pip", + "downloads": 331 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "unknown", + "downloads": 3 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "Nexus", + "downloads": 1 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "poetry", + "downloads": 4 + }, + { + "date": "2025-08-20T00:00:00.000Z", + "category": "Browser", + "downloads": 5 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "pip", + "downloads": 350 + }, + { + "date": "2025-08-22T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 32 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "unknown", + "downloads": 6 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "pip", + "downloads": 313 + }, + { + "date": "2025-08-23T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 6 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "unknown", + "downloads": 29 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "pip", + "downloads": 302 + }, + { + "date": "2025-08-24T00:00:00.000Z", + "category": "Browser", + "downloads": 1 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "unknown", + "downloads": 1 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "bandersnatch", + "downloads": 58 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "Artifactory", + "downloads": 5 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "poetry", + "downloads": 2 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "pip", + "downloads": 466 + }, + { + "date": "2025-08-25T00:00:00.000Z", + "category": "Nexus", + "downloads": 1 } ], "popularSystem": "Linux", @@ -6080,17 +9717,7 @@ "title": "sailpoint — Overall downloads (with/without mirrors)", "labels": [ "2025-07-16", - "2025-07-17", - "2025-07-18", - "2025-07-19", - "2025-07-20", - "2025-07-21", - "2025-07-22", - "2025-07-23", "2025-07-24", - "2025-07-25", - "2025-07-26", - "2025-07-27", "2025-07-28", "2025-07-29", "2025-07-30", @@ -6108,24 +9735,23 @@ "2025-08-11", "2025-08-12", "2025-08-13", - "2025-08-14" + "2025-08-15", + "2025-08-16", + "2025-08-17", + "2025-08-18", + "2025-08-19", + "2025-08-20", + "2025-08-22", + "2025-08-23", + "2025-08-24", + "2025-08-25" ], "datasets": [ { "label": "without_mirrors", "data": [ 336, - 371, - 332, - 263, - 248, - 305, - 378, - 371, 410, - 320, - 273, - 272, 347, 384, 400, @@ -6143,7 +9769,16 @@ 341, 429, 356, - 468 + 372, + 275, + 274, + 365, + 370, + 341, + 350, + 313, + 303, + 469 ], "borderColor": "#2563eb", "backgroundColor": "#2563eb33", @@ -6153,17 +9788,7 @@ "label": "with_mirrors", "data": [ 368, - 390, - 380, - 344, - 248, - 313, - 382, - 371, 631, - 372, - 345, - 284, 362, 472, 461, @@ -6181,7 +9806,16 @@ 403, 548, 415, - 486 + 442, + 277, + 274, + 374, + 371, + 344, + 382, + 325, + 332, + 533 ], "borderColor": "#16a34a", "backgroundColor": "#16a34a33", @@ -6196,17 +9830,7 @@ "title": "sailpoint — Downloads by Python major version", "labels": [ "2025-07-16", - "2025-07-17", - "2025-07-18", - "2025-07-19", - "2025-07-20", - "2025-07-21", - "2025-07-22", - "2025-07-23", "2025-07-24", - "2025-07-25", - "2025-07-26", - "2025-07-27", "2025-07-28", "2025-07-29", "2025-07-30", @@ -6224,24 +9848,23 @@ "2025-08-11", "2025-08-12", "2025-08-13", - "2025-08-14" + "2025-08-15", + "2025-08-16", + "2025-08-17", + "2025-08-18", + "2025-08-19", + "2025-08-20", + "2025-08-22", + "2025-08-23", + "2025-08-24", + "2025-08-25" ], "datasets": [ { "label": "3", "data": [ 287, - 363, - 325, - 248, - 248, - 304, - 374, - 333, 350, - 306, - 266, - 268, 338, 318, 382, @@ -6259,22 +9882,24 @@ 339, 421, 352, - 467 + 372, + 275, + 272, + 344, + 362, + 331, + 350, + 313, + 302, + 466 ], - "borderColor": "#16a34a", - "backgroundColor": "#16a34a33", + "borderColor": "#2563eb", + "backgroundColor": "#2563eb33", "fill": true }, { "label": "2", "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, 0, 1, 0, @@ -6297,6 +9922,12 @@ 0, 0, 0, + 0, + 0, + 0, + 0, + 0, + 0, 0 ], "borderColor": "#dc2626", @@ -6312,17 +9943,7 @@ "title": "sailpoint — Downloads by Python minor version", "labels": [ "2025-07-16", - "2025-07-17", - "2025-07-18", - "2025-07-19", - "2025-07-20", - "2025-07-21", - "2025-07-22", - "2025-07-23", "2025-07-24", - "2025-07-25", - "2025-07-26", - "2025-07-27", "2025-07-28", "2025-07-29", "2025-07-30", @@ -6340,177 +9961,24 @@ "2025-08-11", "2025-08-12", "2025-08-13", - "2025-08-14" + "2025-08-15", + "2025-08-16", + "2025-08-17", + "2025-08-18", + "2025-08-19", + "2025-08-20", + "2025-08-22", + "2025-08-23", + "2025-08-24", + "2025-08-25" ], "datasets": [ - { - "label": "3.7", - "data": [ - 2, - 1, - 2, - 1, - 1, - 1, - 1, - 1, - 6, - 1, - 1, - 1, - 1, - 5, - 2, - 2, - 1, - 3, - 1, - 3, - 3, - 0, - 4, - 1, - 2, - 2, - 3, - 1, - 3, - 3 - ], - "borderColor": "#2563eb", - "backgroundColor": "#2563eb33", - "fill": true - }, - { - "label": "3.11", - "data": [ - 102, - 108, - 124, - 72, - 74, - 106, - 84, - 76, - 88, - 78, - 72, - 72, - 74, - 80, - 75, - 76, - 80, - 72, - 74, - 72, - 78, - 80, - 74, - 72, - 75, - 72, - 73, - 78, - 72, - 72 - ], - "borderColor": "#16a34a", - "backgroundColor": "#16a34a33", - "fill": true - }, - { - "label": "3.10", - "data": [ - 118, - 132, - 140, - 120, - 121, - 132, - 150, - 139, - 149, - 143, - 142, - 143, - 142, - 150, - 140, - 152, - 145, - 142, - 141, - 137, - 135, - 139, - 136, - 145, - 145, - 145, - 151, - 132, - 133, - 143 - ], - "borderColor": "#dc2626", - "backgroundColor": "#dc262633", - "fill": true - }, - { - "label": "3.12", - "data": [ - 10, - 68, - 2, - 0, - 0, - 11, - 79, - 54, - 46, - 26, - 0, - 0, - 54, - 30, - 104, - 62, - 78, - 0, - 0, - 54, - 7, - 19, - 72, - 41, - 3, - 0, - 53, - 150, - 81, - 191 - ], - "borderColor": "#7c3aed", - "backgroundColor": "#7c3aed33", - "fill": true - }, { "label": "3.8", "data": [ 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, 2, 0, - 0, - 0, - 0, 1, 0, 0, @@ -6527,27 +9995,26 @@ 0, 1, 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, 0 ], - "borderColor": "#ea580c", - "backgroundColor": "#ea580c33", + "borderColor": "#2563eb", + "backgroundColor": "#2563eb33", "fill": true }, { "label": "3.13", "data": [ 54, - 54, - 54, - 54, - 52, - 54, - 60, - 63, 59, - 57, - 51, - 52, 67, 52, 61, @@ -6565,25 +10032,209 @@ 51, 59, 63, - 55 + 53, + 51, + 51, + 66, + 95, + 55, + 71, + 57, + 49, + 50 ], - "borderColor": "#ca8a04", - "backgroundColor": "#ca8a0433", + "borderColor": "#16a34a", + "backgroundColor": "#16a34a33", + "fill": true + }, + { + "label": "3.7", + "data": [ + 2, + 6, + 1, + 5, + 2, + 2, + 1, + 3, + 1, + 3, + 3, + 0, + 4, + 1, + 2, + 2, + 3, + 1, + 3, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 3, + 0, + 4 + ], + "borderColor": "#dc2626", + "backgroundColor": "#dc262633", + "fill": true + }, + { + "label": "3.11", + "data": [ + 102, + 88, + 74, + 80, + 75, + 76, + 80, + 72, + 74, + 72, + 78, + 80, + 74, + 72, + 75, + 72, + 73, + 78, + 72, + 72, + 77, + 72, + 72, + 76, + 85, + 82, + 72, + 72, + 73 + ], + "borderColor": "#7c3aed", + "backgroundColor": "#7c3aed33", + "fill": true + }, + { + "label": "3.12", + "data": [ + 10, + 46, + 54, + 30, + 104, + 62, + 78, + 0, + 0, + 54, + 7, + 19, + 72, + 41, + 3, + 0, + 53, + 150, + 81, + 84, + 0, + 0, + 60, + 33, + 21, + 12, + 0, + 0, + 156 + ], + "borderColor": "#ea580c", + "backgroundColor": "#ea580c33", + "fill": true + }, + { + "label": "3.10", + "data": [ + 118, + 149, + 142, + 150, + 140, + 152, + 145, + 142, + 141, + 137, + 135, + 139, + 136, + 145, + 145, + 145, + 151, + 132, + 133, + 158, + 143, + 145, + 145, + 151, + 163, + 181, + 181, + 181, + 183 + ], + "borderColor": "#0891b2", + "backgroundColor": "#0891b233", + "fill": true + }, + { + "label": "2.7", + "data": [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "borderColor": "#4b5563", + "backgroundColor": "#4b556333", "fill": true }, { "label": "3.9", "data": [ - 0, - 0, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 1, 0, 0, 0, @@ -6603,42 +10254,13 @@ 8, 0, 0, - 3 - ], - "borderColor": "#4b5563", - "backgroundColor": "#4b556333", - "fill": true - }, - { - "label": "3.6", - "data": [ - 0, - 0, - 0, + 2, 1, 0, 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 4, + 1, + 1, 0, 0, 0 @@ -6646,44 +10268,6 @@ "borderColor": "#2563eb", "backgroundColor": "#2563eb33", "fill": true - }, - { - "label": "2.7", - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "borderColor": "#16a34a", - "backgroundColor": "#16a34a33", - "fill": true } ] }, @@ -6694,17 +10278,7 @@ "title": "sailpoint — Downloads by operating system", "labels": [ "2025-07-16", - "2025-07-17", - "2025-07-18", - "2025-07-19", - "2025-07-20", - "2025-07-21", - "2025-07-22", - "2025-07-23", "2025-07-24", - "2025-07-25", - "2025-07-26", - "2025-07-27", "2025-07-28", "2025-07-29", "2025-07-30", @@ -6722,100 +10296,23 @@ "2025-08-11", "2025-08-12", "2025-08-13", - "2025-08-14" + "2025-08-15", + "2025-08-16", + "2025-08-17", + "2025-08-18", + "2025-08-19", + "2025-08-20", + "2025-08-22", + "2025-08-23", + "2025-08-24", + "2025-08-25" ], "datasets": [ - { - "label": "other", - "data": [ - 78, - 21, - 55, - 96, - 0, - 8, - 6, - 38, - 277, - 66, - 79, - 16, - 24, - 148, - 76, - 10, - 88, - 75, - 31, - 35, - 23, - 132, - 50, - 2, - 66, - 14, - 64, - 124, - 61, - 19 - ], - "borderColor": "#2563eb", - "backgroundColor": "#2563eb33", - "fill": true - }, - { - "label": "Windows", - "data": [ - 7, - 4, - 4, - 0, - 2, - 0, - 2, - 0, - 8, - 4, - 0, - 2, - 8, - 6, - 6, - 2, - 2, - 0, - 4, - 6, - 6, - 8, - 0, - 0, - 0, - 0, - 0, - 2, - 4, - 0 - ], - "borderColor": "#16a34a", - "backgroundColor": "#16a34a33", - "fill": true - }, { "label": "Linux", "data": [ 281, - 365, - 316, - 244, - 246, - 303, - 370, - 331, 341, - 297, - 266, - 266, 328, 314, 377, @@ -6833,27 +10330,63 @@ 339, 420, 350, - 464 + 370, + 272, + 272, + 350, + 358, + 333, + 342, + 313, + 302, + 463 ], - "borderColor": "#dc2626", - "backgroundColor": "#dc262633", + "borderColor": "#2563eb", + "backgroundColor": "#2563eb33", + "fill": true + }, + { + "label": "other", + "data": [ + 78, + 277, + 24, + 148, + 76, + 10, + 88, + 75, + 31, + 35, + 23, + 132, + 50, + 2, + 66, + 14, + 64, + 124, + 61, + 70, + 2, + 2, + 24, + 5, + 9, + 32, + 12, + 30, + 65 + ], + "borderColor": "#16a34a", + "backgroundColor": "#16a34a33", "fill": true }, { "label": "Darwin", "data": [ 2, - 0, 5, - 4, - 0, - 2, - 4, - 2, - 5, - 5, - 0, - 0, 2, 4, 2, @@ -6871,6 +10404,52 @@ 0, 2, 0, + 2, + 1, + 0, + 0, + 4, + 0, + 1, + 0, + 0, + 2 + ], + "borderColor": "#dc2626", + "backgroundColor": "#dc262633", + "fill": true + }, + { + "label": "Windows", + "data": [ + 7, + 8, + 8, + 6, + 6, + 2, + 2, + 0, + 4, + 6, + 6, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 4, + 0, + 2, + 0, + 0, + 4, + 2, + 7, + 0, + 0, 3 ], "borderColor": "#7c3aed", @@ -6886,17 +10465,7 @@ "title": "sailpoint — Downloads by installer", "labels": [ "2025-07-16", - "2025-07-17", - "2025-07-18", - "2025-07-19", - "2025-07-20", - "2025-07-21", - "2025-07-22", - "2025-07-23", "2025-07-24", - "2025-07-25", - "2025-07-26", - "2025-07-27", "2025-07-28", "2025-07-29", "2025-07-30", @@ -6914,24 +10483,23 @@ "2025-08-11", "2025-08-12", "2025-08-13", - "2025-08-14" + "2025-08-15", + "2025-08-16", + "2025-08-17", + "2025-08-18", + "2025-08-19", + "2025-08-20", + "2025-08-22", + "2025-08-23", + "2025-08-24", + "2025-08-25" ], "datasets": [ { "label": "unknown", "data": [ 8, - 17, - 34, - 1, - 0, - 0, - 0, - 0, 47, - 16, - 2, - 0, 1, 65, 16, @@ -6949,65 +10517,26 @@ 0, 1, 1, - 2 + 0, + 2, + 0, + 0, + 1, + 3, + 0, + 6, + 29, + 1 ], "borderColor": "#2563eb", "backgroundColor": "#2563eb33", "fill": true }, - { - "label": "pip", - "data": [ - 283, - 363, - 325, - 248, - 246, - 304, - 370, - 333, - 350, - 306, - 266, - 268, - 334, - 317, - 380, - 347, - 353, - 268, - 268, - 323, - 281, - 305, - 337, - 359, - 278, - 271, - 339, - 421, - 352, - 467 - ], - "borderColor": "#16a34a", - "backgroundColor": "#16a34a33", - "fill": true - }, { "label": "bandersnatch", "data": [ 24, - 2, - 14, - 80, - 0, - 8, - 4, - 0, 174, - 36, - 70, - 12, 14, 23, 45, @@ -7025,65 +10554,26 @@ 62, 118, 58, - 16 - ], - "borderColor": "#dc2626", - "backgroundColor": "#dc262633", - "fill": true - }, - { - "label": "poetry", - "data": [ - 3, + 70, + 0, + 0, + 8, + 0, + 0, + 32, 6, 0, - 0, - 0, - 1, - 2, - 0, - 4, - 0, - 0, - 0, - 0, - 7, - 3, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4, - 0, - 0, - 0, - 0, - 3, - 2, - 0 + 58 ], - "borderColor": "#7c3aed", - "backgroundColor": "#7c3aed33", + "borderColor": "#16a34a", + "backgroundColor": "#16a34a33", "fill": true }, { "label": "Browser", "data": [ 44, - 2, - 0, - 14, - 0, - 0, - 2, - 38, 28, - 11, - 7, - 3, 1, 36, 11, @@ -7101,27 +10591,63 @@ 2, 5, 0, - 1 + 0, + 0, + 2, + 14, + 4, + 5, + 0, + 0, + 1, + 0 ], - "borderColor": "#ea580c", - "backgroundColor": "#ea580c33", + "borderColor": "#dc2626", + "backgroundColor": "#dc262633", + "fill": true + }, + { + "label": "poetry", + "data": [ + 3, + 4, + 0, + 7, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 3, + 2, + 0, + 0, + 0, + 6, + 4, + 4, + 0, + 0, + 0, + 2 + ], + "borderColor": "#7c3aed", + "backgroundColor": "#7c3aed33", "fill": true }, { "label": "requests", "data": [ 1, - 0, - 7, - 1, - 0, - 0, - 0, - 0, 27, - 3, - 0, - 0, 8, 23, 4, @@ -7139,26 +10665,25 @@ 0, 0, 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 0 ], - "borderColor": "#0891b2", - "backgroundColor": "#0891b233", + "borderColor": "#ea580c", + "backgroundColor": "#ea580c33", "fill": true }, { "label": "Nexus", "data": [ 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, 1, 0, 1, @@ -7177,10 +10702,19 @@ 0, 0, 1, - 0 + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 1 ], - "borderColor": "#ca8a04", - "backgroundColor": "#ca8a0433", + "borderColor": "#0891b2", + "backgroundColor": "#0891b233", "fill": true }, { @@ -7188,16 +10722,6 @@ "data": [ 4, 0, - 0, - 0, - 2, - 0, - 4, - 0, - 0, - 0, - 0, - 0, 4, 0, 2, @@ -7215,8 +10739,54 @@ 0, 0, 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, 0 ], + "borderColor": "#ca8a04", + "backgroundColor": "#ca8a0433", + "fill": true + }, + { + "label": "pip", + "data": [ + 283, + 350, + 334, + 317, + 380, + 347, + 353, + 268, + 268, + 323, + 281, + 305, + 337, + 359, + 278, + 271, + 339, + 421, + 352, + 372, + 275, + 272, + 344, + 362, + 331, + 350, + 313, + 302, + 466 + ], "borderColor": "#4b5563", "backgroundColor": "#4b556333", "fill": true @@ -7224,16 +10794,6 @@ { "label": "Artifactory", "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, 0, 0, 0, @@ -7253,7 +10813,16 @@ 0, 0, 0, - 0 + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 5 ], "borderColor": "#2563eb", "backgroundColor": "#2563eb33", @@ -7263,37 +10832,36 @@ }, "pythonVersionBreakdown": { "python2": 1, - "python3": 9690 + "python3": 9575 }, "pythonMinorBreakdown": { - "python3.7": 59, - "python3.13": 1711, - "python3.6": 1, - "python3.11": 2405, - "python3.12": 1295, - "python3.10": 4182, - "python3.8": 16, + "python3.11": 2220, + "python3.10": 4308, + "python3.8": 18, "python2.7": 1, - "python3.9": 21 + "python3.9": 23, + "python3.7": 73, + "python3.13": 1703, + "python3.12": 1230 }, "systemBreakdown": { - "other": 1782, - "Darwin": 67, + "other": 1629, + "Darwin": 52, "Windows": 87, - "Linux": 9570 + "Linux": 9477 } } }, { "platform": "PowerShell", "name": "PSSailPoint", - "timestamp": "2025-08-15T02:53:13.602Z", + "timestamp": "2025-08-26T21:22:10.609Z", "metrics": { - "downloadsTotal": 20447, + "downloadsTotal": 20572, "downloadsRange": [ { "day": "2025-07-29T20:00:10.787Z", - "downloads": 111, + "downloads": 187, "version": "1.6.6" }, { @@ -7383,7 +10951,7 @@ }, { "day": "2024-07-15T17:48:38.457Z", - "downloads": 2712, + "downloads": 2761, "version": "1.3.2" }, { @@ -7452,11 +11020,11 @@ "version": "1.0.0" } ], - "latestVersionDownloads": 111, + "latestVersionDownloads": 187, "latestVersion": "1.6.6", "latestVersionDate": "2025-07-29T20:00:10.787Z", "versionCount": 32, - "lastUpdated": "2025-08-15T01:50:00.340Z", + "lastUpdated": "2025-08-27T01:30:00.297Z", "authors": "Sailpoint Developer Relations", "description": "PSSailpoint - the PowerShell module for IdentityNow", "packageSize": 13944563, @@ -7467,13 +11035,13 @@ { "platform": "PowerShell", "name": "PSSailpoint.V3", - "timestamp": "2025-08-15T02:53:11.575Z", + "timestamp": "2025-08-26T21:22:08.416Z", "metrics": { - "downloadsTotal": 11721, + "downloadsTotal": 11813, "downloadsRange": [ { "day": "2025-07-29T19:56:06.410Z", - "downloads": 111, + "downloads": 203, "version": "1.6.6" }, { @@ -7567,11 +11135,11 @@ "version": "1.4.3" } ], - "latestVersionDownloads": 111, + "latestVersionDownloads": 203, "latestVersion": "1.6.6", "latestVersionDate": "2025-07-29T19:56:06.410Z", "versionCount": 19, - "lastUpdated": "2025-08-15T01:50:00.340Z", + "lastUpdated": "2025-08-27T01:30:00.297Z", "authors": "OpenAPI Generator Team", "description": "PSSailpoint.V3 - the PowerShell module for Identity Security Cloud V3 API", "packageSize": 1047127, @@ -7582,13 +11150,13 @@ { "platform": "PowerShell", "name": "PSSailpoint.Beta", - "timestamp": "2025-08-15T02:53:11.842Z", + "timestamp": "2025-08-26T21:22:08.845Z", "metrics": { - "downloadsTotal": 12049, + "downloadsTotal": 12135, "downloadsRange": [ { "day": "2025-07-29T19:55:41.073Z", - "downloads": 110, + "downloads": 196, "version": "1.6.6" }, { @@ -7682,11 +11250,11 @@ "version": "1.4.3" } ], - "latestVersionDownloads": 110, + "latestVersionDownloads": 196, "latestVersion": "1.6.6", "latestVersionDate": "2025-07-29T19:55:41.073Z", "versionCount": 19, - "lastUpdated": "2025-08-15T01:50:00.340Z", + "lastUpdated": "2025-08-27T01:30:00.297Z", "authors": "OpenAPI Generator Team", "description": "PSSailpoint.Beta - the PowerShell module for Identity Security Cloud Beta API", "packageSize": 1562121, @@ -7697,13 +11265,13 @@ { "platform": "PowerShell", "name": "PSSailpoint.V2024", - "timestamp": "2025-08-15T02:53:12.152Z", + "timestamp": "2025-08-26T21:22:09.253Z", "metrics": { - "downloadsTotal": 11716, + "downloadsTotal": 11807, "downloadsRange": [ { "day": "2025-07-29T19:56:45.697Z", - "downloads": 106, + "downloads": 197, "version": "1.6.6" }, { @@ -7797,11 +11365,11 @@ "version": "1.4.3" } ], - "latestVersionDownloads": 106, + "latestVersionDownloads": 197, "latestVersion": "1.6.6", "latestVersionDate": "2025-07-29T19:56:45.697Z", "versionCount": 19, - "lastUpdated": "2025-08-15T01:50:00.340Z", + "lastUpdated": "2025-08-27T01:30:00.297Z", "authors": "OpenAPI Generator Team", "description": "PSSailpoint.V2024 - the PowerShell module for Identity Security Cloud V2024 API", "packageSize": 1926341, @@ -7812,18 +11380,18 @@ { "platform": "PowerShell", "name": "PSSailpoint.V2025", - "timestamp": "2025-08-15T02:53:11.414Z", + "timestamp": "2025-08-26T21:22:08.565Z", "metrics": { - "downloadsTotal": 1009, + "downloadsTotal": 1099, "downloadsRange": [ { "day": "2025-07-29T19:57:25.877Z", - "downloads": 102, + "downloads": 190, "version": "1.6.6" }, { "day": "2025-07-14T18:52:50.380Z", - "downloads": 93, + "downloads": 95, "version": "1.6.5" }, { @@ -7857,11 +11425,11 @@ "version": "1.5.0" } ], - "latestVersionDownloads": 102, + "latestVersionDownloads": 190, "latestVersion": "1.6.6", "latestVersionDate": "2025-07-29T19:57:25.877Z", "versionCount": 8, - "lastUpdated": "2025-08-15T01:50:00.340Z", + "lastUpdated": "2025-08-27T01:30:00.297Z", "authors": "OpenAPI Generator Team", "description": "PSSailpoint.V2025 - the PowerShell module for Identity Security Cloud V2025 API", "packageSize": 1968958,