{"id":15700528,"url":"https://github.com/fornever/intellij-updater","last_synced_at":"2026-03-09T05:32:31.468Z","repository":{"id":249893937,"uuid":"832867307","full_name":"ForNeVeR/intellij-updater","owner":"ForNeVeR","description":"A GitHub Action to auto-update IntelliJ Platform version for IntelliJ-based IDE plugins","archived":false,"fork":false,"pushed_at":"2026-03-07T21:35:29.000Z","size":143,"stargazers_count":8,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-08T02:56:16.024Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ForNeVeR.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-23T22:15:34.000Z","updated_at":"2026-03-07T21:35:19.000Z","dependencies_parsed_at":"2024-10-24T05:22:08.165Z","dependency_job_id":"9f6209d9-1625-45f3-ab32-42b8a12d490b","html_url":"https://github.com/ForNeVeR/intellij-updater","commit_stats":{"total_commits":114,"total_committers":2,"mean_commits":57.0,"dds":"0.14035087719298245","last_synced_commit":"c7a3a2f52588415b078d99c3953552799931a3f6"},"previous_names":["fornever/intellij-updater"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/ForNeVeR/intellij-updater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2Fintellij-updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2Fintellij-updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2Fintellij-updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2Fintellij-updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ForNeVeR","download_url":"https://codeload.github.com/ForNeVeR/intellij-updater/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ForNeVeR%2Fintellij-updater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30283915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T19:49:34.333Z","updated_at":"2026-03-09T05:32:31.452Z","avatar_url":"https://github.com/ForNeVeR.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2024-2025 Friedrich von Never \u003cfriedrich@fornever.me\u003e\n\nSPDX-License-Identifier: MIT\n--\u003e\n\nintellij-updater [![Status Aquana][status-aquana]][andivionian-status-classifier]\n================\nThis is a small tool that will help you to manage IntelliJ-based IDE version update in a plugin repository.\n\nMissing a feature? Report to [the issues][issues].\n\nWant to contribute? Check out [the contributing guide][docs.contributing].\n\nUsage\n-----\n### Example\nSee a live example [in AvaloniaRider repository][example.avalonia-rider].\n\nAdd a following file, `intellij-updater.json`, to your repository:\n```json\n{\n    \"updates\": [{\n        \"file\": \"gradle/libs.versions.toml\",\n        \"field\": \"riderSdk\",\n        \"kind\": \"rider\",\n        \"versionFlavor\": \"release\",\n        \"versionConstraint\": \"latestWave\",\n        \"order\": \"oldest\"\n    }, {\n        \"file\": \"gradle/libs.versions.toml\",\n        \"field\": \"riderSdkPreview\",\n        \"kind\": \"rider\",\n        \"versionFlavor\": \"eap\"\n    }, {\n        \"file\": \"gradle/libs.versions.toml\",\n        \"field\": \"intellijVersion\",\n        \"kind\": \"intellij-idea\",\n        \"versionFlavor\": \"release\",\n        \"versionConstraint\": \"latestWave\"\n    }, {\n        \"file\": \"gradle.properties\",\n        \"field\": \"untilBuildVersion\",\n        \"kind\": \"rider\",\n        \"versionFlavor\": \"release\",\n        \"augmentation\": \"nextMajor\"\n    }],\n    \"prBodyPrefix\": \"## Maintainer Note\\n\u003e [!WARNING]\\n\u003e This PR will not trigger CI by default. Please **close it and reopen manually** to trigger the CI.\\n\u003e\\n\u003e Unfortunately, this is a consequence of the current GitHub Action security model (by default, PRs created automatically aren't allowed to trigger other automation).\"\n}\n```\n\nAnd then start it periodically on CI and make it generate a PR using any PR-generating action you like, e.g.:\n```yaml\nname: \"Dependency Checker\"\non:\n  schedule:\n    - cron: '0 0 * * *' # Every day\n  push:\n    branches:\n      - main\n  pull_request:\n    branches:\n      - main\n  workflow_dispatch:\n\njobs:\n  main:\n    permissions:\n      contents: write\n      pull-requests: write\n\n    runs-on: ubuntu-22.04\n    timeout-minutes: 15\n    steps:\n      - name: \"Check out the sources\"\n        uses: actions/checkout@v4\n\n      - id: update\n        uses: ForNeVeR/intellij-updater@v1\n        name: \"Update the dependency versions\"\n        with:\n          config-file: ./intellij-updater.json # the default\n\n      - if: steps.update.outputs.has-changes == 'true' \u0026\u0026 (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')\n        name: \"Create a PR\"\n        uses: peter-evans/create-pull-request@v6\n        with:\n          branch: ${{ steps.update.outputs.branch-name }}\n          author: \"Automation \u003cyour@email\u003e\"\n          commit-message: ${{ steps.update.outputs.commit-message }}\n          title: ${{ steps.update.outputs.pr-title }}\n          body-path: ${{ steps.update.outputs.pr-body-path }}\n```\n\nThis will perform the following operation every day:\n1. Check the latest versions of Rider available in the JetBrains Maven repository.\n2. Update the `riderSdk` to the oldest stable Rider version from the latest wave (e.g., if 2024.1, 2024.2.0 and 2024.2.1 are available, it will pick 2024.2.0) and `riderSdkPreview` to the latest EAP Rider version in the `config.toml` file.\n3. Update the `untilBuildVersion` to the _next major Rider wave_ in the `gradle.properties` file (e.g. if the current in 2024.2 aka 242, then it will be updated to `243.*`, for your plugin to be auto-compatible with the next version).\n4. Create a PR with the changes (if started manually or by schedule; otherwise, a \"dry run\" is performed, where the action checks the validity of the current configuration).\n\n\u003e [!NOTE]\n\u003e The `prBodyPrefix` value in this example is added to the pull request title. In this example, we are adding a note for the maintainer to bootstrap the CI manually, because this is one of the current recommendations from the [create-pull-request][] action. This is not inherently required by this action: follow the recommendation of the PR-creating action of your choice.\n\n### Configuration\nThe action itself accepts only one optional parameter: `config-file`. If not passed, it will default to `./intellij-updater.json`.\n\nThe configuration file spec:\n```json\n{\n    \"updates\": [\n        {\n            \"file\": \"File path relative to this config file's parent directory. Accepts .toml or Java .properties files.\",\n            \"field\": \"Field in the configuration file. Only field name, no sections or structure. Action includes an extremely simple parser for supported file formats and doesn't support any kind of disambiguation in case there are several identically-named properties.\",\n            \"kind\": \"kotlin | rd-gen | intellij-idea-community | intellij-idea | rider\",\n            \"versionFlavor\": \"release | eap | nightly\",\n            \"versionConstraint\": \"\u003c=SomeValidVersion | latestWave (optional)\",\n            \"order\": \"oldest | newest (optional)\",\n            \"augmentation\": \"optional field, might contain 'nextMajor'\"\n        }\n    ],\n    \"prBodyPrefix\": \"optional string\"\n}\n```\n\nA `kind` of `kotlin` will update the corresponding field to the correct Kotlin version used by a particular IDE version, see [this table][intellij.kotlin] for details.\nA `kind` of `rd-gen` will update to the corresponding version of [rd-gen][rd].\n\nThe `intellij-idea-community` kind targets the Community Edition (artifact: `ideaIC`, no longer available since 2025.3), while `intellij-idea` targets [the Unified distribution][idea-unified] (artifact: `idea`) introduced in 2025.3 release.\n\nA more detailed description of the `versionFlavor` field:\n- `release` takes the latest _stable_ IDE version released (no EAP, no preview, no snapshot);\n- `nightly` takes the latest possible version, no questions asked;\n- `eap` takes the latest _numbered_ EAP version, meaning it won't take `231-EAP-SNAPSHOT` from IntelliJ (because these are not numbered).\n\nThe point of this is to have a tested PR each time a new EAP IDE version is released, to avoid silent snapshot updates breaking compilation and tests.\n\n`versionConstraint` is eiter `\u003c=SomeValidVersion` (e.g. `\u003c=2024.1.3`) or `latestWave`. The first one will update the field to the latest version that is less or equal to the specified one. The second one will filter the values to only contain the latest wave (e.g. `2024.2` or `242`), automatically switcting to the new one if it is available.\n\n`order` (`newest` by default) allows to choose either the newest or the oldest version from the list.\n\nThe order in which the filters are work: say, we have a list of versions on the JetBrains CDN. Then,\n1. The `versionFlavor` filter is applied.\n2. If `versionConstraint` is `latestWave`, then it is created based on the filtered version list, to choose the latest wave among the flavor-filtered ones.\n3. The `versionConstraint` is applied.\n4. A version is chosen from the filtered list based on the `order`.\n5. If `augmentation` is present, it is applied to the chosen version.\n\n### Parameters\nAction's output parameters are documented in [the action file itself][action-yml], check the `outputs` section.\n\n\n### Notes\nPlease note that this action installs .NET SDK during its execution. It's recommended to isolate it from other build steps in your CI.\n\nDocumentation\n-------------\n- [Changelog][docs.changelog]\n- [Contributor Guide][docs.contributing]\n- [Maintainer Guid][docs.maintaining]\n\nLicense\n-------\nThe project is distributed under the terms of [the MIT license][docs.license]\n(unless a particular file states otherwise).\n\nThe license indication in the project's sources is compliant with the [REUSE specification v3.3][reuse.spec].\n\n[action-yml]: action.yml\n[andivionian-status-classifier]: https://andivionian.fornever.me/v1/#status-aquana-\n[create-pull-request]: https://github.com/peter-evans/create-pull-request\n[docs.changelog]: CHANGELOG.md\n[docs.contributing]: CONTRIBUTING.md\n[docs.license]: LICENSE.md\n[docs.maintaining]: MAINTAINING.md\n[example.avalonia-rider]: https://github.com/ForNeVeR/AvaloniaRider/blob/HEAD/.github/workflows/dependencies.yml\n[idea-unified]: https://blog.jetbrains.com/idea/2025/12/intellij-idea-unified-release/\n[intellij.kotlin]: https://plugins.jetbrains.com/docs/intellij/using-kotlin.html#kotlin-standard-library\n[issues]: https://github.com/ForNeVeR/intellij-updater/issues\n[rd]: https://github.com/JetBrains/rd/\n[reuse.spec]: https://reuse.software/spec-3.3/\n[status-aquana]: https://img.shields.io/badge/status-aquana-yellowgreen.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffornever%2Fintellij-updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffornever%2Fintellij-updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffornever%2Fintellij-updater/lists"}