Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
f11c047
Update dependency gradle to v9.3.1
xdev-renovate Jan 30, 2026
2856c9e
Update pmdVersion to v7.21.0
xdev-renovate Jan 31, 2026
b1c7134
Update checkstyleVersion to v13.1.0
xdev-renovate Feb 1, 2026
966e304
Merge pull request #217 from xdev-software/renovate/pmdversion
AB-xdev Feb 4, 2026
f61dd29
Merge pull request #218 from xdev-software/renovate/checkstyleversion
AB-xdev Feb 4, 2026
4c697bf
Merge pull request #216 from xdev-software/renovate/gradle-9.x
AB-xdev Feb 4, 2026
78e6f92
Updat to PMD 7.21.0
AB-xdev Feb 4, 2026
76cf223
Disallow classes ending with Helper or Util
AB-xdev Feb 20, 2026
838f350
Avoid using Optional#get
AB-xdev Feb 23, 2026
c98c664
Merge branch 'master' into update-from-template-xdev-software/java-se…
xdev-gh-bot Feb 24, 2026
2e8873d
Merge branch 'master' into update-from-template-xdev-software/java-te…
xdev-gh-bot Feb 24, 2026
3230662
Update dependency org.junit:junit-bom to v6.0.3
xdev-renovate Feb 25, 2026
bd6498d
Update lycheeverse/lychee-action digest to 8646ba3
xdev-renovate Feb 26, 2026
757d542
Update lycheeverse/lychee-action digest to 8646ba3
xdev-renovate Feb 26, 2026
cd40625
Update actions/upload-artifact action to v7
xdev-renovate Feb 27, 2026
3116e68
Update pmdVersion to v7.22.0
xdev-renovate Feb 28, 2026
cbaa815
Update checkstyleVersion to v13.3.0
xdev-renovate Mar 1, 2026
949db22
Merge pull request #224 from xdev-software/renovate/pmdversion
AB-xdev Mar 2, 2026
1492887
Merge pull request #220 from xdev-software/renovate/org.junit-junit-b…
AB-xdev Mar 2, 2026
d0dc4f8
Merge pull request #219 from xdev-software/renovate/checkstyleversion
AB-xdev Mar 2, 2026
64c30dd
Merge pull request #223 from xdev-software/renovate/actions-upload-ar…
AB-xdev Mar 2, 2026
d0c193a
Merge pull request #222 from xdev-software/renovate/lycheeverse-lyche…
AB-xdev Mar 2, 2026
a06462c
Merge pull request #12 from xdev-software/renovate/lycheeverse-lychee…
AB-xdev Mar 2, 2026
6f9b5b3
Create report-gha-workflow-security-problems.yml
AB-xdev Mar 2, 2026
1fa1c4e
Merge branch 'master' into update-from-template-xdev-software/base-te…
xdev-gh-bot Mar 2, 2026
7c7d532
Merge branch 'master' into update-from-template-xdev-software/java-te…
xdev-gh-bot Mar 2, 2026
84e1242
Enforce use of PMD plugin
AB-xdev Mar 9, 2026
f32e848
Merge branch 'master' into update-from-template-xdev-software/java-se…
xdev-gh-bot Mar 9, 2026
8e6f1fc
Merge branch 'master' into update-from-template-xdev-software/java-te…
xdev-gh-bot Mar 9, 2026
01ff018
Update dependency gradle to v9.4.0
xdev-renovate Mar 10, 2026
bee4af5
Update plugin org.jetbrains.intellij.platform to v2.12.0
xdev-renovate Mar 10, 2026
70e24ea
Merge pull request #226 from xdev-software/renovate/gradle-9.x
AB-xdev Mar 12, 2026
69b7f30
Merge pull request #227 from xdev-software/renovate/org.jetbrains.int…
AB-xdev Mar 12, 2026
cccfcc4
Update shogo82148/actions-create-release digest to 6a39603
xdev-renovate Mar 15, 2026
dfef879
Update plugin org.jetbrains.intellij.platform to v2.13.1
xdev-renovate Mar 15, 2026
0ae3a4b
Update dependency gradle to v9.4.1
xdev-renovate Mar 20, 2026
1499d96
Merge pull request #231 from xdev-software/renovate/gradle-9.x
AB-xdev Mar 25, 2026
3e56de9
Merge pull request #229 from xdev-software/renovate/org.jetbrains.int…
AB-xdev Mar 25, 2026
1ea2cd5
Merge pull request #230 from xdev-software/renovate/shogo82148-action…
AB-xdev Mar 25, 2026
a9c5127
Remove deprcated/removed extension that has no effect
AB-xdev Mar 25, 2026
b353001
Correctly calculate cache
AB-xdev Mar 25, 2026
e34364e
Update pmdVersion to v7.23.0
xdev-renovate Mar 28, 2026
488f6de
Update checkstyleVersion to v13.4.0
xdev-renovate Mar 30, 2026
225c79b
Prepare for new templating system
AB-xdev Mar 30, 2026
fdda8ee
Merge branch 'master' into update-from-template-xdev-software/base-te…
xdev-gh-bot Mar 30, 2026
fcf8b93
Update upstream.yml
AB-xdev Mar 30, 2026
e60abb7
Merge branch 'master' into update-from-template-xdev-software/java-te…
xdev-gh-bot Mar 30, 2026
3e30eeb
Create upstream.yml
AB-xdev Mar 30, 2026
c48f108
Update upstream.yml
AB-xdev Mar 30, 2026
1d3adaf
Merge pull request #233 from xdev-software/renovate/checkstyleversion
AB-xdev Mar 30, 2026
609a9b4
Merge pull request #232 from xdev-software/renovate/pmdversion
AB-xdev Mar 30, 2026
6e3a25f
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Mar 31, 2026
c77767c
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Mar 31, 2026
c0e52bd
Delete update-from-template.yml
AB-xdev Mar 31, 2026
324bd20
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Mar 31, 2026
bdc83f7
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Mar 31, 2026
bce7932
Merge branch 'develop' into update-from-template-merged
xdev-gh-bot Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@
<property name="format" value="^(?!(.*(Map|List|Set))$).+$"/>
<property name="tokens" value="PARAMETER_DEF, VARIABLE_DEF, PATTERN_VARIABLE_DEF, RECORD_COMPONENT_DEF, LAMBDA"/>
</module>
<!-- Name classes correctly and don't use generic name for everything -->
<module name="IllegalIdentifierName">
<property name="format" value="^(?!(.*(Helper|Util))$).+$"/>
<property name="tokens" value=" CLASS_DEF"/>
</module>
<module name="IllegalImport"/>
<module name="InterfaceIsType"/>
<module name="JavadocStyle">
Expand Down
32 changes: 31 additions & 1 deletion .config/pmd/java/ruleset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,6 @@
<rule ref="category/java/errorprone.xml/CollectionTypeMismatch"/>
<rule ref="category/java/errorprone.xml/ComparisonWithNaN"/>
<rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly"/>
<rule ref="category/java/errorprone.xml/DontImportSun"/>
<rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices"/>
<rule ref="category/java/errorprone.xml/EqualsNull"/>
<rule ref="category/java/errorprone.xml/IdempotentOperations"/>
Expand All @@ -164,6 +163,7 @@
<rule ref="category/java/errorprone.xml/SingletonClassReturningNewInstance"/>
<rule ref="category/java/errorprone.xml/UnconditionalIfStatement"/>
<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange"/>
<rule ref="category/java/errorprone.xml/UnsupportedJdkApiUsage"/>
<rule ref="category/java/errorprone.xml/UselessPureMethodCall"/>


Expand Down Expand Up @@ -208,6 +208,36 @@
<rule ref="category/java/security.xml"/>


<rule name="AvoidOptionalGet"
language="java"
message="Avoid using Optional#get"
class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"
externalInfoUrl="https://stackoverflow.com/a/49159955">
<description>
`Optional#get` can be interpreted as a getter by developers, however this is not the case as it throws an exception when empty.

It should be replaced by
* doing a mapping directly using `.map` or `.ifPresent`
* using the preferred `.orElseThrow`, `.orElse` or `.or` methods

Java Developer Brian Goetz also writes regarding this topic:

> Java 8 was a huge improvement to the platform, but one of the few mistakes we made was the naming of `Optional.get()`, because the name just invites people to call it without calling `isPresent()`, undermining the whole point of using `Optional` in the first place.
>
> During the Java 9 time frame, we proposed to deprecate `Optional.get()`, but the public response to that was ... let's say cold. As a smaller step, we introduced `orElseThrow()` in 10 (see [JDK-8140281](https://bugs.openjdk.java.net/browse/JDK-8140281)) as a more transparently named synonym for the current pernicious behavior of `get()`. IDEs warn on unconditional use of `get()`, but not on `orElseThrow()`, which is a step forward in teaching people to code better. The question is, in a sense, a "glass half empty" view of the current situation; `get()` is still problematic.
</description>
<priority>3</priority>
<properties>
<property name="xpath">
<value>
<![CDATA[
//MethodCall[pmd-java:matchesSig('java.util.Optional#get()')]
]]>
</value>
</property>
</properties>
</rule>

<rule name="AvoidStringBuilderOrBuffer"
language="java"
message="StringBuilder/StringBuffer should not be used"
Expand Down
2 changes: 2 additions & 0 deletions .config/topo/upstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- url: https://github.com/xdev-software/intellij-plugin-template.git
branch: master
2 changes: 1 addition & 1 deletion .github/workflows/broken-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2
with:
fail: false # Don't fail on broken links, create an issue instead

Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/check-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ jobs:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-build-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
key: ${{ runner.os }}-gradle-build-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-build-

- name: Build
run: ./gradlew build buildPlugin --info --stacktrace

- name: Try upload test reports when failure occurs
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure()
with:
name: test-reports-${{ matrix.java }}
Expand All @@ -75,7 +75,7 @@ jobs:
fi

- name: Upload plugin files
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: plugin-files-java-${{ matrix.java }}
path: build/distributions/*.zip
Expand Down Expand Up @@ -104,7 +104,7 @@ jobs:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-checkstyle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
key: ${{ runner.os }}-gradle-checkstyle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-checkstyle-

Expand Down Expand Up @@ -137,13 +137,13 @@ jobs:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-pmd-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
key: ${{ runner.os }}-gradle-pmd-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-pmd-

- name: Upload report
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: pmd-report
if-no-files-found: ignore
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/check-ide-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-ide-compatibility-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
key: ${{ runner.os }}-gradle-ide-compatibility-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-ide-compatibility-

Expand All @@ -64,7 +64,7 @@ jobs:
run: ./gradlew verifyPlugin --info --stacktrace

- name: Upload report
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: ${{ always() }}
with:
name: plugin-verifier-reports
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-build-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
key: ${{ runner.os }}-gradle-build-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-build-

Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:

- name: Create Release
id: create_release
uses: shogo82148/actions-create-release@559c27ce7eb834825e2b55927c64f6d1bd1db716 # v1
uses: shogo82148/actions-create-release@6a396031bc74c57403da1018fec74d24c6aa03cd # v1
with:
tag_name: v${{ steps.version.outputs.release }}
release_name: v${{ steps.version.outputs.release }}
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
run: ./gradlew publishPlugin --info --stacktrace

- name: Upload plugin files
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: plugin-files
path: build/distributions/*
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/report-gha-workflow-security-problems.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Report workflow security problems

on:
workflow_dispatch:
push:
branches: [ develop ]
paths:
- '.github/workflows/**'

permissions:
issues: write

jobs:
prt:
runs-on: ubuntu-latest
timeout-minutes: 15
# Only run this in our repos (Prevent notification spam by forks)
if: ${{ github.repository_owner == 'xdev-software' }}
steps:
- uses: actions/checkout@v6

- name: Check
id: check
run: |
grep -l 'pull_request_target:' --exclude report-gha-workflow-security-problems.yml *.yml > reported.txt && exit 1 || exit 0
working-directory: .github/workflows

- name: Find already existing issue
id: find-issue
if: ${{ !cancelled() }}
run: |
echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title "Incorrectly configure GHA workflow (prt)"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ github.token }}

- name: Close issue if everything is fine
if: ${{ success() && steps.find-issue.outputs.number != '' }}
run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }}
env:
GH_TOKEN: ${{ github.token }}

- name: Create report
if: ${{ failure() && steps.check.conclusion == 'failure' }}
run: |
echo 'Detected usage of `pull_request_target`. This event is dangerous and MUST NOT BE USED AT ALL COST!' > reported.md
echo '' >> reported.md
echo '/cc @xdev-software/gha-workflow-security' >> reported.md
echo '' >> reported.md
echo '```' >> reported.md
cat .github/workflows/reported.txt >> reported.md
echo '```' >> reported.md
cat reported.md

- name: Create Issue From File
if: ${{ failure() && steps.check.conclusion == 'failure' }}
uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 # v6
with:
issue-number: ${{ steps.find-issue.outputs.number }}
title: 'Incorrectly configure GHA workflow (prt)'
content-filepath: ./reported.md
labels: bug, automated
2 changes: 1 addition & 1 deletion .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
run: ./gradlew publishPlugin --info --stacktrace

- name: Upload plugin files
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: plugin-files-java-${{ matrix.java }}
path: build/distributions/*
Expand Down
Loading
Loading