Coder Social home page Coder Social logo

yunabraska / github-workflow-plugin Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 9.0 3.56 MB

Your Ultimate Wingman for GitHub Workflows and Actions! ๐Ÿš€

Home Page: https://github.com/YunaBraska/github-workflow-plugin

License: Apache License 2.0

Java 100.00%

github-workflow-plugin's Introduction

YunaBraska's GitHub stats

github-workflow-plugin's People

Contributors

actions-user avatar fornever avatar siketyan avatar yunabraska avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

github-workflow-plugin's Issues

Allow usage without GitHub token

What happened?
update to 2.2.7 causes login popup to appear multiple times (7 times to be more specific) when I try to reference an action (uses: <the action>). This makes it very difficult to add a step that uses an action.

I have to disable the plugin to avoid getting that login popup.

How can we reproduce the issue?

  • Don't login or add a GitHub token
  • add a step that uses an action

Operating System
Ubuntu

Project Version
2.2.7

Expected behavior
Be able to use the plugin without getting that popup every time. Just accept the fact that i choose not to add a token and remember that choice. (Its an Organization user and need to check the policy)

Screenshots
image

sub-actions sometimes fail to be detected

Truncated workflow example:

      - name: Initialize CodeQL
        uses: github/codeql-action/init@v2
        with:
          languages: python, javascript

      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v2

The issue is sporadic and temporary, but sometimes, the first variant github/codeql-action/init is detected, while github/codeql-action/analyze needs to be first interacted with before it is fully navigable. Moreover it should report as github/codeql-action/init, but instead it is reported as simply github/codeql-action

Got this stack during plugin update today

java.lang.Throwable: Assertion failed: Network must not be accessed in EDT or inside read action, because this may take considerable amount of time, and write actions will be blocked during that time so user won't be able to perform tasks in the IDE
	at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:465)
	at com.intellij.util.io.HttpRequests.process(HttpRequests.java:497)
	at com.intellij.util.io.HttpRequests$RequestBuilderImpl.connect(HttpRequests.java:335)
	at org.jetbrains.plugins.github.api.GithubApiRequestExecutor$Base.execute(GithubApiRequestExecutor.kt:92)
	at org.jetbrains.plugins.github.api.GithubApiRequestExecutor$WithTokenAuth.execute(GithubApiRequestExecutor.kt:65)
	at org.jetbrains.plugins.github.api.GithubApiRequestExecutor.execute(GithubApiRequestExecutor.kt:46)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadFromGitHub(GitHubWorkflowUtils.java:229)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.lambda$downloadFileFromGitHub$9(GitHubWorkflowUtils.java:219)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Collections$2.tryAdvance(Collections.java:4853)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadFileFromGitHub(GitHubWorkflowUtils.java:223)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.lambda$downloadContent$11(GitHubWorkflowUtils.java:259)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadContent(GitHubWorkflowUtils.java:259)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadAction(GitHubWorkflowUtils.java:206)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.setActionParameters(GitHubAction.java:142)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.<init>(GitHubAction.java:134)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.getGitHubAction(GitHubAction.java:48)
	at com.github.yunabraska.githubworkflow.model.WorkflowContext.lambda$init$23(WorkflowContext.java:179)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
	at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
	at com.github.yunabraska.githubworkflow.model.WorkflowContext.lambda$init$24(WorkflowContext.java:151)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at com.github.yunabraska.githubworkflow.model.WorkflowContext.init(WorkflowContext.java:151)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationListeners.lambda$asyncInitWorkflowFile$2(ApplicationListeners.java:58)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:895)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationListeners.asyncInitWorkflowFile(ApplicationListeners.java:52)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationListeners.execute(ApplicationListeners.java:44)
	at com.intellij.ide.startup.impl.StartupManagerImpl$Companion$addActivityEpListener$1$extensionAdded$1.invokeSuspend(StartupManagerImpl.kt:87)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

IDE action to update Action

On some projects, dependabot might not be set because it gets too noisy. It would be nice if this plugin could provide suggestions for updating actions if they are in v?\d+ regex format.

In run-ui-tests.yml

Description

Nullpointer exception.

Steps to Reproduce

I attached my workflow file

# GitHub Actions Workflow for launching UI tests on Linux, Windows, and Mac in the following steps:
# - prepare and launch IDE with your plugin and robot-server plugin, which is needed to interact with UI
# - wait for IDE to start
# - run UI tests with separate Gradle task
#
# Please check https://github.com/JetBrains/intellij-ui-test-robot for information about UI tests with IntelliJ Platform
#
# Workflow is triggered manually.

name: Run UI Tests
on:
  workflow_dispatch:
  push:
    branches:
      - main

jobs:

  testUI:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - os: ubuntu-latest
            runIde: |
              export DISPLAY=:99.0
              Xvfb -ac :99 -screen 0 1920x1080x16 &
              gradle runIdeForUiTests &
          #          - os: windows-latest
          #            runIde: start gradlew.bat runIdeForUiTests
          - os: macos-latest
            runIde: ./gradlew runIdeForUiTests &

    steps:

      # Check out current repository
      - name: Fetch Sources
        uses: actions/checkout@v3


      # Setup Java environment for the next steps
      - name: Setup Java
        uses: actions/[email protected]
        with:
          distribution: zulu
          java-version: 17

      # Setup Gradle
      - name: Setup Gradle
        uses: gradle/[email protected]


      - name: Set SSH
        uses: webfactory/[email protected]
        with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

      - name: Set Git user
        run: |
          git config --global user.name "Jonathan Gafner"
          git config --global user.email "[email protected]"

      # Run IDEA prepared for UI testing
      - name: Run IDE
        run: ${{ matrix.runIde }}

      # Wait for IDEA to be started
      - name: Health Check
        uses: jtalk/url-health-check-action@v3
        with:
          url: http://127.0.0.1:8082
          max-attempts: 15
          retry-delay: 30s

      # Run tests
      - name: Tests
        env:
          AZD_TOKEN: ${{ secrets.AZD_TOKEN }}
        run: ./gradlew check -PrunUiTests=true

      # Collect Tests Result of failed tests
      - name: Collect Tests Result
        if: ${{ always() }}
        uses: actions/upload-artifact@v3
        with:
          name: tests-result-${{ matrix.os }}
          path: ${{ github.workspace }}/build/reports

      - name: Save Coverage Report
        uses: actions/upload-artifact@v3
        with:
          name: coverage-${{ matrix.os }}
          path: ${{ github.workspace }}/build/reports/kover/report.xml

  aggregateCoverage:
    needs: testUI
    runs-on: ubuntu-latest
    steps:
      # Download coverage reports from each OS run
      - name: Download Coverage from Ubuntu
        uses: actions/download-artifact@v3
        with:
          name: coverage-ubuntu-latest
          path: coverage-reports/ubuntu-latest/

      # Uncomment if you add windows to the matrix in the future
      # - name: Download Coverage from Windows
      #   uses: actions/download-artifact@v3
      #   with:
      #     name: coverage-windows-latest
      #     path: coverage-reports/windows-latest/

      - name: Download Coverage from MacOS
        uses: actions/download-artifact@v3
        with:
          name: coverage-macos-latest
          path: coverage-reports/macos-latest/

      # Upload all coverage reports to codecov
      - name: Upload Aggregate Code Coverage Report
        uses: codecov/codecov-action@v3
        with:
          directory: coverage-reports/
          flags: integration
        env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}


Message

*** exception class was changed or removed

Runtime Information

Plugin version : 2.2.2
IDE: IntelliJ IDEA 2023.2 (IU-232.8660.185)
OS: macOS 13.4.1

Stacktrace

  In file: file:///Users/jonathangafner/IdeaProjects/azd4/.github/workflows/run-ui-tests.yml
  
  java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$annotate$23(HighlightAnnotator.java:90)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.annotate(HighlightAnnotator.java:54)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:130)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:107)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:360)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$7(GeneralHighlightingPass.java:291)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:320)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$8(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:92)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:286)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:234)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:95)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:390)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:77)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:24)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:386)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:377)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:376)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:352)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:201)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:207)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:350)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:185)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Intellij autocomplete is not working even after the latest plugin update

What happened?
Screenshot 2023-08-20 at 4 20 30 PM

Env

IntelliJ IDEA 2023.2.1 RC 
MacOS (arm64): 13.5 Ventura
Plugin Version:  2.2.4

Error

2023-08-20 16:15:37,449 [ 497850]   INFO - #c.i.o.p.u.AbstractProgressIndicatorBase - This progress indicator (Resolving actionactions/download-artifact 222224481: running=true; canceled=false; task=com.github.yunabraska.githubworkflow.listeners.ApplicationStartup$1@3e7fb61) is indeterminate, this may lead to visual inconsistency. Please call setIndeterminate(false) before you start progress. class com.intellij.openapi.progress.impl.BackgroundableProcessIndicator
java.lang.IllegalStateException
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.setFraction(AbstractProgressIndicatorBase.java:197)
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorExBase.setFraction(AbstractProgressIndicatorExBase.java:110)
	at com.intellij.openapi.progress.util.ProgressWindow.setFraction(ProgressWindow.java:319)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationStartup$1.run(ApplicationStartup.java:110)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:428)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:115)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:478)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:251)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:251)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$18(ProgressRunner.java:465)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$19(ProgressRunner.java:477)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-08-20 16:15:37,450 [ 497851]   INFO - #c.i.o.p.u.AbstractProgressIndicatorBase - This progress indicator (Resolving actionmikepenz/release-changelog-builder-action 1983487906: running=true; canceled=false; task=com.github.yunabraska.githubworkflow.listeners.ApplicationStartup$1@6830d54b) is indeterminate, this may lead to visual inconsistency. Please call setIndeterminate(false) before you start progress. class com.intellij.openapi.progress.impl.BackgroundableProcessIndicator
java.lang.IllegalStateException
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.setFraction(AbstractProgressIndicatorBase.java:197)
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorExBase.setFraction(AbstractProgressIndicatorExBase.java:110)
	at com.intellij.openapi.progress.util.ProgressWindow.setFraction(ProgressWindow.java:319)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationStartup$1.run(ApplicationStartup.java:110)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:428)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:115)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:478)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:251)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:251)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$18(ProgressRunner.java:465)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$19(ProgressRunner.java:477)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-08-20 16:15:37,450 [ 497851]   INFO - #c.i.o.p.u.AbstractProgressIndicatorBase - This progress indicator (Resolving actionsoftprops/action-gh-release 421225304: running=true; canceled=false; task=com.github.yunabraska.githubworkflow.listeners.ApplicationStartup$1@692b6594) is indeterminate, this may lead to visual inconsistency. Please call setIndeterminate(false) before you start progress. class com.intellij.openapi.progress.impl.BackgroundableProcessIndicator
java.lang.IllegalStateException

java.lang.Throwable: Failed to read file [/var/folders/d8/_fsb_h0j1qz_s5rkwb2cfhsw0000gn/T/ide_github_workflow_plugin/_checkout_actions_checkout__v3_checkout_schema.json] message [/var/folders/d8/_fsb_h0j1qz_s5rkwb2cfhsw0000gn/T/ide_github_workflow_plugin/_checkout_actions_checkout__v3_checkout_schema.json]

Description

Steps to Reproduce

Please provide code sample if applicable

Message

Runtime Information

Plugin version : 2.2.6
IDE: IntelliJ IDEA 2023.2 (IU-232.8660.185)
OS: macOS 13.3.1

Stacktrace

java.lang.Throwable: Failed to read file [/var/folders/d8/_fsb_h0j1qz_s5rkwb2cfhsw0000gn/T/ide_github_workflow_plugin/_checkout_actions_checkout__v3_checkout_schema.json] message [/var/folders/d8/_fsb_h0j1qz_s5rkwb2cfhsw0000gn/T/ide_github_workflow_plugin/_checkout_actions_checkout__v3_checkout_schema.json]
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:370)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.readFileAsync(GitHubWorkflowUtils.java:291)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadContent(GitHubWorkflowUtils.java:265)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadAction(GitHubWorkflowUtils.java:206)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.setActionParameters(GitHubAction.java:214)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.resolve(GitHubAction.java:184)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationStartup$1.run(ApplicationStartup.java:114)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:428)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:115)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:478)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:251)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:251)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$18(ProgressRunner.java:465)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$19(ProgressRunner.java:477)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)

How to associate a .yml files with this extension?

How does one tell the intellij that a .yml file is a github actions workflow, and to apply the syntax checking and autocompletion provided by this plugin?

Doesn't appear to change anithing after this plugin is loaded.

What did you tried already?
Um, nothing and I'm all out of ideas?

Operating System

OSX

Project Version

1.0.1

java.nio.file.InvalidPathException: Illegal char <"> at index 1: {"sessionId":"2080387763","projectHash":"7ce5a137","ranges":[{"exclusiveRef":"An-overview-of-the-days-showing","inclusiveRef":"origin/An-overview-of-the-days-showing"}],"roots":[{"path":"C:/Users/Najam/OneDrive - Kรธbenhavns Erhvervsakademi/KEA/KinoXp"}]}

Description

Steps to Reproduce

Please provide code sample if applicable

Message

Runtime Information

Plugin version : 3.0.1
IDE: IntelliJ IDEA 2023.2.2 (IU-232.9921.47)
OS: Windows 11.0

Stacktrace

java.nio.file.InvalidPathException: Illegal char <"> at index 1: {"sessionId":"2080387763","projectHash":"7ce5a137","ranges":[{"exclusiveRef":"An-overview-of-the-days-showing","inclusiveRef":"origin/An-overview-of-the-days-showing"}],"roots":[{"path":"C:/Users/Najam/OneDrive - Kรธbenhavns Erhvervsakademi/KEA/KinoXp"}]}
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:177)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
	at java.base/java.nio.file.Path.of(Path.java:147)
	at java.base/java.nio.file.Paths.get(Paths.java:69)
	at com.github.yunabraska.githubworkflow.model.schema.DependabotSchemaProvider.lambda$isAvailable$0(DependabotSchemaProvider.java:28)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.github.yunabraska.githubworkflow.model.schema.DependabotSchemaProvider.isAvailable(DependabotSchemaProvider.java:28)
	at com.github.yunabraska.githubworkflow.services.FileIconProvider.lambda$getIcon$0(FileIconProvider.java:22)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:1002)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:632)
	at com.github.yunabraska.githubworkflow.services.FileIconProvider.getIcon(FileIconProvider.java:22)
	at com.intellij.util.PsiIconUtil.getProvidersIcon(PsiIconUtil.java:21)
	at com.intellij.ide.FileIconPatcherImpl.getIcon(FileIconPatcherImpl.java:37)
	at com.intellij.util.IconUtil.getProviderIcon(IconUtil.kt:226)
	at com.intellij.util.IconUtil.computeFileIconImpl(IconUtil.kt:167)
	at com.intellij.util.IconUtil.computeFileIcon(IconUtil.kt:159)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters$doUpdateFileIcon$icon$1.invoke(EditorsSplitters.kt:392)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters$doUpdateFileIcon$icon$1.invoke(EditorsSplitters.kt:391)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:105)
	at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:14)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:41)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:39)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:37)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:248)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:34)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:76)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:63)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:14)
	at com.intellij.openapi.application.rw.InternalReadAction$readLoop$1.invokeSuspend(InternalReadAction.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

Support for matrix.os

What do you want to achieve?

I Installed Github Workflow 3.2.1. Seems like syntax highlighting is not working with GH workflow yaml file.
ใ‚นใ‚ฏใƒชใƒผใƒณใ‚ทใƒงใƒƒใƒˆ 2023-11-21 16 21 16

Can you advise what can be wrong? Maybe I repeated picking up different json schema in the editor setting at the bottom and it breaks something?

What did you try already?
Hi, I'm on IntelliJ IDEA 2023.3 Beta on macOS 14.1.1
Install the plugin
Open a test project https://github.com/mhorioka/fizzbuzz_github_actions

java.nio.file.InvalidPathException: Illegal char <<> at index 0: <36ba1c43-b8f1-4f54-ace0-cef443d1e8f0>/etc/php/8.1/apache2/php.ini

Description

Steps to Reproduce

Please provide code sample if applicable

Message

Runtime Information

Plugin version : 3.1.0
IDE: PhpStorm 2023.2.3 (PS-232.10072.32)
OS: Windows 10.0

Stacktrace

java.nio.file.InvalidPathException: Illegal char <<> at index 0: <36ba1c43-b8f1-4f54-ace0-cef443d1e8f0>/etc/php/8.1/apache2/php.ini
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:177)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
	at java.base/java.nio.file.Path.of(Path.java:147)
	at java.base/java.nio.file.Paths.get(Paths.java:69)
	at com.github.yunabraska.githubworkflow.model.GitHubSchemaProvider.lambda$isAvailable$1(GitHubSchemaProvider.java:49)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.github.yunabraska.githubworkflow.model.GitHubSchemaProvider.isAvailable(GitHubSchemaProvider.java:49)
	at com.github.yunabraska.githubworkflow.services.FileIconProvider.lambda$getIcon$0(FileIconProvider.java:29)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.tryAdvance(AbstractList.java:706)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at com.github.yunabraska.githubworkflow.services.FileIconProvider.lambda$getIcon$2(FileIconProvider.java:31)
	at java.base/java.util.Optional.flatMap(Optional.java:289)
	at com.github.yunabraska.githubworkflow.services.FileIconProvider.getIcon(FileIconProvider.java:26)
	at com.intellij.util.PsiIconUtil.getProvidersIcon(PsiIconUtil.java:21)
	at com.intellij.ide.FileIconPatcherImpl.getIcon(FileIconPatcherImpl.java:37)
	at com.intellij.util.IconUtil.getProviderIcon(IconUtil.kt:226)
	at com.intellij.util.IconUtil.computeFileIconImpl(IconUtil.kt:167)
	at com.intellij.util.IconUtil.computeFileIcon(IconUtil.kt:159)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters$doUpdateFileIcon$icon$1.invoke(EditorsSplitters.kt:392)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters$doUpdateFileIcon$icon$1.invoke(EditorsSplitters.kt:391)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:105)
	at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:14)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:41)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:39)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:37)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:248)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:34)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:76)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:63)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:14)
	at com.intellij.openapi.application.rw.InternalReadAction$readLoop$1.invokeSuspend(InternalReadAction.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

Possibility to ignore output variable validation for certain actions

Is your feature request related to a problem? Please describe.
I'm using the dotenv-action, which makes properties available as step outputs. Because the plugin's meta-data can't have information on the used properties, this plugin cannot correctly validate the actions output.

Describe the solution you'd like
I want to be able to disable output variable validation for specific actions so that I don't get any false positives.

Describe alternatives you've considered
None so far

Operating System

N/A

Project Version

N/A

Allow developing composite actions within its own repository

Description

I'm currently developing a lot of composite actions which should be used across a variety of repositories.
This plugin however is currently only activated whenever the yml file resides in .github/workflows/*.yml

Background

You can push a composite action into its own repository and reference it like this

      - name: Do stuff with composite action
        uses: Owner/repo@branch
        with:
           input1: 'thing'
           input2: 'otherThing'

which means Im pushing repositories like this:

$ ls -a
.  ..  action.yml  .git   .gitignore  .idea
$ tree
.
โ””โ”€โ”€ action.yml

1 directory, 1 file

Request

This Plugin should recognize the existence of a compsite action

Unhandled exception in [CoroutineName(com.github.yunabraska.githubworkflow.services.ProjectStartup), StandaloneCoroutine{Cancelling}@356f15cb, Dispatchers.Default]

Description

Hi I just opened 3 Projects and this error was then reported by IntelliJ. I don't know much more sry.

Steps to Reproduce

Please provide code sample if applicable

Message

*** exception class was changed or removed

Runtime Information

Plugin version : 3.0.0
IDE: IntelliJ IDEA 2023.2.2 (IU-232.9921.47)
OS: Windows 10.0

Stacktrace

  Unhandled exception in [CoroutineName(com.github.yunabraska.githubworkflow.services.ProjectStartup), StandaloneCoroutine{Cancelling}@356f15cb, Dispatchers.Default]
  
  java.lang.StringIndexOutOfBoundsException: begin 83, end 79, length 93
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4606)
at java.base/java.lang.String.substring(String.java:2709)
at com.github.yunabraska.githubworkflow.model.GitHubAction.createGithubAction(GitHubAction.java:87)
at com.github.yunabraska.githubworkflow.services.GitHubActionCache.lambda$get$3(GitHubActionCache.java:84)
at java.base/java.util.Optional.orElseGet(Optional.java:364)
at com.github.yunabraska.githubworkflow.services.GitHubActionCache.get(GitHubActionCache.java:83)
at com.github.yunabraska.githubworkflow.services.GitHubActionCache.lambda$getAction$16(GitHubActionCache.java:172)
at java.base/java.util.Optional.map(Optional.java:260)
at com.github.yunabraska.githubworkflow.services.GitHubActionCache.getAction(GitHubActionCache.java:172)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at com.github.yunabraska.githubworkflow.services.ProjectStartup.lambda$asyncInitAllActions$7(ProjectStartup.java:98)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.github.yunabraska.githubworkflow.services.ProjectStartup.lambda$asyncInitAllActions$8(ProjectStartup.java:98)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:895)
at com.github.yunabraska.githubworkflow.services.ProjectStartup.asyncInitAllActions(ProjectStartup.java:95)
at com.github.yunabraska.githubworkflow.services.ProjectStartup.asyncInitAllActionsAfterInit(ProjectStartup.java:85)
at com.github.yunabraska.githubworkflow.services.ProjectStartup.execute(ProjectStartup.java:51)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1$1.invokeSuspend(StartupManagerImpl.kt:534)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1$1.invoke(StartupManagerImpl.kt)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1$1.invoke(StartupManagerImpl.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:532)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineName(com.github.yunabraska.githubworkflow.services.ProjectStartup), StandaloneCoroutine{Cancelled}@356f15cb, Dispatchers.Default]

java.lang.RuntimeException: Cannot invoke (class=FileFocusListener, method=selectionChanged, topic=FileEditorManagerListener)

Description

Steps to Reproduce

Please provide code sample if applicable

Message

Runtime Information

Plugin version : 2.2.2
IDE: WebStorm 2023.2 (WS-232.8660.143)
OS: Windows 10.0

Stacktrace

java.lang.RuntimeException: Cannot invoke (class=FileFocusListener, method=selectionChanged, topic=FileEditorManagerListener)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:676)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:422)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:401)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:460)
	at jdk.proxy2/jdk.proxy2.$Proxy60.selectionChanged(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.fireSelectionChanged(FileEditorManagerImpl.kt:1661)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.access$fireSelectionChanged(FileEditorManagerImpl.kt:121)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1$1.invoke(FileEditorManagerImpl.kt:236)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1$1.invoke(FileEditorManagerImpl.kt:234)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:248)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:199)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1.invokeSuspend(FileEditorManagerImpl.kt:234)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at com.intellij.openapi.application.impl.DispatchedRunnable.run(DispatchedRunnable.kt:43)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:208)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:190)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
	at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:478)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:121)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:789)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:740)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:734)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:759)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:685)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:589)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:992)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:992)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.nio.file.InvalidPathException: Illegal char <?> at index 32: /What's New in Material Theme UI?
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:177)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
	at java.base/java.nio.file.Path.of(Path.java:147)
	at java.base/java.nio.file.Paths.get(Paths.java:69)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationStartup.asyncInitWorkflowFile(ApplicationStartup.java:64)
	at com.github.yunabraska.githubworkflow.listeners.FileFocusListener.selectionChanged(FileFocusListener.java:20)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:699)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:659)
	... 52 more

Variables/Outputs used in `fromJson` are marked as unused

What happened?
A clear and concise description of what the bug is.

How can we reproduce the issue?
Steps to reproduce the behavior:

name: Reproduce Issue

on:
  workflow_dispatch: 

jobs:
  list-folders:
    runs-on: ubuntu-latest
    outputs: 
      folders: ${{ steps.list.outputs.folders }}
    steps:
      - name: List folders
        id: list
        uses: kmanimaran/list-folder-action@v4
        with:
          path: ./Games
          
  update-all:
    runs-on: ubuntu-latest
    needs: list-folders
    strategy: 
      matrix:
        folder: ${{ fromJson(needs.list-folders.outputs.games) }}

The folders output of the list-folders task is greyed out with reason: 'unused'.

Relevant log output

N/A

Operating System

Pop!_OS 22.04

Plugin Version

v3.2.1

IDE Name and Version

Rider 2023.2.3

Expected behavior
The folders output of the list-folders task should not be greyed out.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

Workflow stored in private repository no longer works

What happened?
Recently, within the last three days, this plug-in reports incorrect parameters for included workflows. Previously it did not report any errors. Nothing has changed in either the parent or included workflows.
I have my private repo authenticated in Rider, no changes there.

I'm not sure whether the Rider 2023.2.2 release or the 3.0.0 release of this extension broke this functionality as they came out the same day.

Relevant log output
Unsure how to get logs

Operating System
Ubuntu

Plugin Version
3.0.0

IDE Name and Version
Rider 2023.2.2

Example of parent file include (see the position of the # ERROR SQUIGGLES ON THE BELOW comment):

  test:
    uses: user/repo/.github/workflows/sub-dotnet-test-simple.yaml@master
    permissions:
      contents: read
      packages: read
    with:
      # ERROR SQUIGGLES ON THE BELOW
      TEST_PROJECT: 'MyProj.Tests'

example of user/repo/.github/workflows/sub-dotnet-test-simple.yaml@master:

name: .NET Simple Test

on:
  workflow_call:
    inputs:
      TEST_PROJECT:
        required: true
        type: string

[Project] Refactor / Memory Leak

Links

Description

Custom wrappers and static variables can lead to memory leaks.
Most of the wrappers doesn't make sense any more and are just helpers for development.

Acceptance Criteria

  • Exchange WorkflowContext, YamlElement, YamlElementHelper with the default PsiElement's which can also store information in its own cache

Technical Info

  • Psi Elements can cache information, no need to create wrappers

Steps with no `uses` clause aren't recognized

What happened?
There's a problem with recognition of step ids that aren't declaring any using clauses.

How can we reproduce the issue?
For example, see this config:

name: Release
on:
  push:
    tags:
      - '*'

jobs:
  docker-push:
    runs-on: 'ubuntu-20.04'
    steps:
      - name: Read version from ref
        id: version
        shell: pwsh
        run: echo "version=$(./Scripts/Get-Version.ps1 -RefName $env:GITHUB_REF)" >> $env:GITHUB_OUTPUT

      - name: Build and push Docker image
        uses: docker/build-push-action@v4
        with:
          push: true
          tags: test:v${{ steps.version.outputs.version }}

It will say that version is undefined, while it is defined by a previous step, id: version
image

(I do understand that it's impossible to derive what outputs such a step would have, though.)

Relevant log output

N/A

Operating System

Windows 11

Project Version

2.2.7

Expected behavior
The plugin should properly recognize the steps with no uses clause

java.lang.Throwable: Slow operations are prohibited on EDT. See SlowOperations.assertSlowOperationsAreAllowed javadoc.

Description

Steps to Reproduce

Please provide code sample if applicable

Message

Runtime Information

Plugin version : 3.1.0
IDE: RustRover 2023.3 EAP (RR-233.8264.22)
OS: macOS 14.0

Stacktrace

java.lang.Throwable: Slow operations are prohibited on EDT. See SlowOperations.assertSlowOperationsAreAllowed javadoc.
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:376)
	at com.intellij.util.SlowOperations.assertSlowOperationsAreAllowed(SlowOperations.java:95)
	at com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexDataImpl.ensureIsUpToDate(WorkspaceFileIndexDataImpl.kt:130)
	at com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexDataImpl.getFileInfo(WorkspaceFileIndexDataImpl.kt:75)
	at com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexImpl.getFileInfo(WorkspaceFileIndexImpl.kt:247)
	at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.isUnderIgnored(ProjectFileIndexImpl.java:73)
	at com.intellij.openapi.roots.impl.ProjectFileIndexFacade.isUnderIgnored(ProjectFileIndexFacade.java:71)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.isExcludedOrIgnored(FileManagerImpl.java:418)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.findDirectoryImpl(FileManagerImpl.java:404)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.findDirectory(FileManagerImpl.java:397)
	at com.intellij.psi.impl.PsiManagerImpl.findDirectory(PsiManagerImpl.java:173)
	at com.intellij.psi.AbstractFileViewProvider.shouldCreatePsi(AbstractFileViewProvider.java:89)
	at com.intellij.psi.SingleRootFileViewProvider.createFile(SingleRootFileViewProvider.java:144)
	at com.intellij.psi.SingleRootFileViewProvider.getPsiInner(SingleRootFileViewProvider.java:101)
	at com.intellij.psi.AbstractFileViewProvider.getPsi(AbstractFileViewProvider.java:185)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.areViewProvidersEquivalent(FileManagerImpl.java:534)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.shouldResurrect(FileManagerImpl.java:631)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.evaluateValidity(FileManagerImpl.java:599)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.findCachedViewProvider(FileManagerImpl.java:223)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.findViewProvider(FileManagerImpl.java:180)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.findFile(FileManagerImpl.java:358)
	at com.intellij.psi.impl.PsiManagerImpl.findFile(PsiManagerImpl.java:161)
	at com.github.yunabraska.githubworkflow.services.ProjectStartup.lambda$asyncInitAllActions$3(ProjectStartup.java:96)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.github.yunabraska.githubworkflow.services.ProjectStartup.lambda$asyncInitAllActions$8(ProjectStartup.java:96)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:881)
	at com.github.yunabraska.githubworkflow.services.ProjectStartup.asyncInitAllActions(ProjectStartup.java:95)
	at com.github.yunabraska.githubworkflow.services.ProjectStartup.lambda$asyncInitAllActionsAfterInit$2(ProjectStartup.java:87)
	at com.intellij.openapi.project.SmartModeScheduler.doRun(SmartModeScheduler.kt:138)
	at com.intellij.openapi.project.SmartModeScheduler.runAllWhileSmart(SmartModeScheduler.kt:130)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:846)
	at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:466)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:75)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:67)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWithImplicitRead(ApplicationImpl.java:1433)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:124)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:44)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:687)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$12(IdeEventQueue.kt:588)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithoutImplicitRead(RwLockHolder.kt:44)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:588)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:71)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:354)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:353)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:793)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:353)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1006)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1006)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:348)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:851)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:390)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Support local actions (without token?)

What happened?
actions in same repository (not pushed to GitHub) are not found and requests for a GitHub token. So no plugin support during development. Did not add token yet, but it should work without. All local and GH public files are accessible without token.

How can we reproduce the issue?
Add an action in same repository and don't add token. Reference that action in an other action or workflow in same repository.

Expected behavior
Pick up the action because there is no Github access required as the file is not pushed yet.

Screenshots
image

Additional context
Plugin seems to be completely broken if no GH token is provided. This is not expected behavior.

Cannot resolve step-id in job outputs

What happened?
When defining a job output based on a step output the following error is shown:
image

How can we reproduce the issue?
Steps to reproduce the behavior:

  1. Just create a workflow file and paste this as content:
name: Generate next Build Number

on:
  workflow_call:
    inputs:
      concurrency-suffix:
        type: string
        default: ''
    outputs:
      build_number:
        description: 'The generated build number'
        value: ${{ jobs.build_number.outputs.build_number }}

jobs:
  build_number:
    name: Generate next Build Number
    runs-on: ubuntu-latest
    concurrency: generate_build_number-${{ inputs.concurrency-suffix }}
    outputs:
      build_number: ${{ steps.buildnumber.outputs.build_number }}
    permissions:
      contents: write
    steps:
      - id: buildnumber
        name: Generate Build Number
        uses: onyxmueller/build-tag-number@v1
        with:
          token: ${{ secrets.github_token }}

Relevant log output
I don't know if this exception is the cause of this, but I also have the following exception in the internal IDE-Errors dialog:

In file: file://C:/project/.github/workflows/job_build_number.yml

java.lang.NullPointerException
at java.base/java.util.HashMap.merge(HashMap.java:1355)
at java.base/java.util.stream.Collectors.lambda$toMap$68(Collectors.java:1673)
at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at com.github.yunabraska.githubworkflow.model.CompletionItem.lambda$listSteps$5(CompletionItem.java:63)
at java.base/java.util.Optional.map(Optional.java:260)
at com.github.yunabraska.githubworkflow.model.CompletionItem.listSteps(CompletionItem.java:60)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$processBracketItems$35(HighlightAnnotator.java:246)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.ifEnoughItems(HighlightAnnotator.java:396)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.processBracketItems(HighlightAnnotator.java:245)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$annotate$24(HighlightAnnotator.java:134)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.annotate(HighlightAnnotator.java:65)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:130)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:107)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:360)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$7(GeneralHighlightingPass.java:291)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:320)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$8(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:92)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:286)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:234)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:95)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:390)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:77)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:24)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:386)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:377)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:376)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:352)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:201)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:207)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:350)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:190)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Operating System

Windows 10

Project Version

2.2.7
image

Expected behavior
The step should be resolved by its id.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

In file: file:///home/dmitrii/CODE/Java/Neoflex/Credit/.github/workflows/tests.yaml

Description

Steps to Reproduce

Please provide code sample if applicable

Message

*** exception class was changed or removed

Runtime Information

Plugin version : 2.2.7
IDE: IntelliJ IDEA 2023.2.2 (IU-232.9921.47)
OS: Linux 6.2.0-32-generic

Stacktrace

  In file: file:///home/dmitrii/CODE/Java/Neoflex/Credit/.github/workflows/tests.yaml
  
  java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$annotate$24(HighlightAnnotator.java:101)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.annotate(HighlightAnnotator.java:65)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:130)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:107)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:360)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$7(GeneralHighlightingPass.java:291)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:320)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$8(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:92)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:286)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:234)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:95)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:390)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:77)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:24)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:386)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:377)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:376)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:352)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:201)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:207)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:350)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:190)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

URL too long

What happened?
My WebStorm crashed for (I think) unrelated reasons. Upon reopening, there was a red bell at the bottom-right, and I clicked it. I've clicked "Report and clear" without really reading the thing, so I can't tell you much about that.

Anyway, my Chrome opened about 15 pages, all of which pointed to a "URL too long" GitHub page. Here's one URL that I've saved.

Runtime Information

Plugin version : 3.1.0
IDE: WebStorm 2023.2.4 (WS-232.10203.14)
OS: Linux 6.2.0-36-generic

Stacktrace

com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: PSI and index do not match.
Please report the problem to JetBrains with the files attached
 file=JSFile:StorageApi.ts, file.class=class com.intellij.lang.javascript.psi.impl.JSFileImpl, file.lang=Language: TypeScript, modStamp=1
 tree consistent
 stub debugInfo=created in getStubTree(), with AST = false; with backReference
 viewProvider=com.intellij.lang.javascript.JSFileViewProviderFactory$JSFileViewProvider{vFile=file:///home/lazar/elements-web/src/sdk/src/apis/StorageApi.ts, vFileId=665542, content=VirtualFileContent{size=147305}, eventSystemEnabled=true}
 viewProvider stamp: 0; file stamp: 0; file modCount: 1700581347986; file length: 147305
 doc saved: true; doc stamp: 0; doc size: 147305; committed: true
indexing info: indexing timestamp = 1700581330785, binary = false, byte size = 149645, char size = 149645
ref: 50cf572587cf
latestIndexedStub=null
	at com.intellij.psi.stubs.StubTreeLoader$StubTreeAndIndexUnmatchCoarseException.doCreateCompleteException(StubTreeLoader.java:203)
	at com.intellij.psi.stubs.StubTreeLoader$StubTreeAndIndexUnmatchCoarseException.lambda$createCompleteException$0(StubTreeLoader.java:178)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:230)
	at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:64)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:230)
	at com.intellij.psi.stubs.StubTreeLoader$StubTreeAndIndexUnmatchCoarseException.createCompleteException(StubTreeLoader.java:177)
	at com.intellij.psi.impl.source.PsiFileImpl.loadTreeElement(PsiFileImpl.java:228)
	at com.intellij.psi.impl.source.PsiFileImpl.calcTreeElement(PsiFileImpl.java:727)
	at com.intellij.psi.impl.source.PsiFileImpl.getChildren(PsiFileImpl.java:732)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:290)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:282)
	at com.github.yunabraska.githubworkflow.helper.PsiElementChangeListener.lambda$childrenChanged$3(PsiElementChangeListener.java:33)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.github.yunabraska.githubworkflow.helper.PsiElementChangeListener.childrenChanged(PsiElementChangeListener.java:33)
	at com.intellij.psi.impl.PsiManagerImpl.notifyPsiTreeChangeListener(PsiManagerImpl.java:407)
	at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:350)
	at com.intellij.psi.impl.PsiManagerImpl.childrenChanged(PsiManagerImpl.java

It's up to you if you want to dedicate this issue to the "too long" part or the actual problem part. I really have no idea what happened and nothing was really disrupted in my workflow. I didn't even have a single yaml file open at the time.

Relevant log output
Uuuh see URL?

Operating System
Ubuntu 22.04

Plugin Version
3.1.0, update to 3.2.1 pending (not installed -- will do now)

IDE Name and Version
WebStorm 2023.2.4
Build #WS-232.10203.14, built on October 25, 2023

UI freeze when opening a repo with large amount of JS files

What happened?
I've opened a project https://github.com/codingteam/emulsion in JetBrains Rider 2023.3 EAP4 and encountered a UI freeze caused by the plugin.

How can we reproduce the issue?

  1. Clone https://github.com/codingteam/emulsion
  2. I assume you'll have to either build the project or call npm install at least, to get node_modules with huge number of dependencies (which is normal for a frontend project).
  3. Open it in Rider
  4. See the UI freeze on startup

It became fine after several minutes.

Relevant log output
I was able to call jstack on a stuck Rider instance to see this:

"AWT-EventQueue-0" #103 prio=6 os_prio=0 cpu=30906.25ms elapsed=167.28s tid=0x0000026b99264610 nid=0x2edc runnable  [0x000000917dffb000]
   java.lang.Thread.State: RUNNABLE
	at com.intellij.psi.impl.source.tree.CompositeElement.countChildren(CompositeElement.java:427)
	at com.intellij.psi.impl.source.tree.CompositeElement.getChildrenAsPsiElements(CompositeElement.java:390)
	at com.intellij.psi.impl.source.tree.CompositePsiElement.getChildren(CompositePsiElement.java:45)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:290)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:291)
	at com.github.yunabraska.githubworkflow.helper.PsiElementHelper.getAllElements(PsiElementHelper.java:282)
	at com.github.yunabraska.githubworkflow.helper.PsiElementChangeListener.lambda$childrenChanged$3(PsiElementChangeListener.java:33)
	at com.github.yunabraska.githubworkflow.helper.PsiElementChangeListener$$Lambda$6511/0x0000000802644f50.apply(Unknown Source)
	at java.util.Optional.map([email protected]/Optional.java:260)
	at com.github.yunabraska.githubworkflow.helper.PsiElementChangeListener.childrenChanged(PsiElementChangeListener.java:33)
	at com.intellij.psi.impl.PsiManagerImpl.notifyPsiTreeChangeListener(PsiManagerImpl.java:414)
	at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:357)
	at com.intellij.psi.impl.PsiManagerImpl.childrenChanged(PsiManagerImpl.java:306)
	at com.intellij.psi.impl.file.impl.FileManagerImpl.forceReload(FileManagerImpl.java:140)
	at com.intellij.psi.impl.file.impl.PsiVFSListener.propertyChanged(PsiVFSListener.java:345)
	at com.intellij.psi.impl.file.impl.PsiVFSListener.fireForGrouped(PsiVFSListener.java:783)
	at com.intellij.psi.impl.file.impl.PsiVFSListener$$Lambda$4327/0x0000000801edc508.accept(Unknown Source)
	at one.util.streamex.CollapseSpliterator.lambda$forEachRemaining$0(CollapseSpliterator.java:133)
	at one.util.streamex.CollapseSpliterator$$Lambda$4328/0x0000000801edc760.accept(Unknown Source)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining([email protected]/ArrayList.java:1625)
	at one.util.streamex.CollapseSpliterator.forEachRemaining(CollapseSpliterator.java:129)
	at one.util.streamex.AbstractStreamEx.forEach(AbstractStreamEx.java:352)
	at com.intellij.psi.impl.file.impl.PsiVFSListener.groupAndFire(PsiVFSListener.java:757)
	at com.intellij.psi.impl.file.impl.PsiVFSListener.after(PsiVFSListener.java:747)
	at com.intellij.psi.impl.file.impl.PsiVFSListener$1.after(PsiVFSListener.java:142)
	at java.lang.invoke.LambdaForm$DMH/0x0000000800800000.invokeInterface([email protected]/LambdaForm$DMH)
	at java.lang.invoke.LambdaForm$MH/0x0000000800a8c800.invoke([email protected]/LambdaForm$MH)
	at java.lang.invoke.LambdaForm$MH/0x00000008007ea400.invokeExact_MT([email protected]/LambdaForm$MH)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:699)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:663)
	at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:491)
	at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:279)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:448)
	at jdk.proxy2.$Proxy155.after(jdk.proxy2/Unknown Source)
	at com.intellij.util.FileContentUtilCore.lambda$reparseFiles$0(FileContentUtilCore.java:47)
	at com.intellij.util.FileContentUtilCore$$Lambda$6503/0x000000080297d7b8.run(Unknown Source)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:989)
	at com.intellij.util.FileContentUtilCore.reparseFiles(FileContentUtilCore.java:35)
	at com.intellij.util.FileContentUtil.reparseFiles(FileContentUtil.java:21)
	at com.intellij.database.psi.DbPsiFacadeImpl.reparseDependentFiles(DbPsiFacadeImpl.java:154)
	at com.intellij.database.psi.DbPsiFacadeImpl.onLanguagesChanged(DbPsiFacadeImpl.java:130)
	at com.intellij.database.psi.DbPsiFacadeImpl.clearCachesImpl(DbPsiFacadeImpl.java:100)
	at com.intellij.database.psi.DbPsiFacadeImpl$1.lambda$clearCaches$0(DbPsiFacadeImpl.java:63)
	at com.intellij.database.psi.DbPsiFacadeImpl$1$$Lambda$5822/0x000000080281f708.run(Unknown Source)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:857)
	at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:477)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:75)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:67)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWithImplicitRead(ApplicationImpl.java:1444)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:124)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:44)
	at com.intellij.openapi.application.impl.FlushQueue$$Lambda$436/0x00000008005197b0.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(java.desktop/InvocationEvent.java:318)
	at java.awt.EventQueue.dispatchEventImpl(java.desktop/EventQueue.java:792)
	at java.awt.EventQueue$3.run(java.desktop/EventQueue.java:739)
	at java.awt.EventQueue$3.run(java.desktop/EventQueue.java:733)
	at java.security.AccessController.executePrivileged([email protected]/AccessController.java:776)
	at java.security.AccessController.doPrivileged([email protected]/AccessController.java:399)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege([email protected]/ProtectionDomain.java:86)
	at java.awt.EventQueue.dispatchEvent(java.desktop/EventQueue.java:761)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:695)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$12(IdeEventQueue.kt:589)
	at com.intellij.ide.IdeEventQueue$$Lambda$879/0x0000000800b97348.run(Unknown Source)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithoutImplicitRead(RwLockHolder.kt:44)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:72)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:355)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:354)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:793)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:354)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1014)
	at com.intellij.ide.IdeEventQueueKt$$Lambda$878/0x0000000800b94710.run(Unknown Source)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1014)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue$$Lambda$875/0x0000000800b8ca00.run(Unknown Source)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:862)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:391)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop/EventDispatchThread.java:207)
	at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop/EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop/EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(java.desktop/EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(java.desktop/EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(java.desktop/EventDispatchThread.java:92)

Operating System
Windows 11

Plugin Version
3.1.0

IDE Name and Version
JetBrains Rider 2023.3 EAP4

Expected behavior
The plugin should not perform file operations on the event dispatch thread, and should fall back to the background thread for this operation. Perhaps, an interruptible background read action would be more appropriate in this particular case.

Screenshots
Nope.

Additional context
Sadly, I'm not an expert on PSI structure in JetBrains IDEs (even though I am knowledgeable at some areas of IntelliJ plugin development), so I cannot tell from the top of my head what's the 100% correct approach to this. But perhaps I can help after studying more code of this plugin.

UI unresponsive on start due to GitHubSchemaProvider.getSchemaFile

What happened?
When I open a project the UI is unresponsive for a noticeable amount of time.

How can we reproduce the issue?
Steps to reproduce the behavior:

  1. Open GHA project

Relevant log output

log excerpt

2023-10-11 11:58:50,088 [   2631]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/dependabot-2.0]
2023-10-11 11:58:50,796 [   3339]   INFO - #c.i.u.i.UnindexedFilesScanner - Scanning completed for jubilant-goggles. Number of scanned files: 19105; Number of files for indexing: 6 took 1585ms; general responsiveness: 1/1 sluggish; EDT responsiveness: ok
2023-10-11 11:58:50,796 [   3339]   INFO - #c.i.u.i.UnindexedFilesScanner - 10408fc5: marking roots for initial VFS refresh
2023-10-11 11:58:50,800 [   3343]   INFO - #c.i.u.i.UnindexedFilesScanner - 10408fc5: starting initial VFS refresh
2023-10-11 11:58:50,803 [   3346]   INFO - #c.i.u.i.UnindexedFilesScanner - 10408fc5: initial VFS refresh finished 2 ms
2023-10-11 11:58:50,809 [   3352]   INFO - #c.i.o.p.MergingQueueGuiExecutor - Task finished: UnindexedFilesScanner[jubilant-goggles]
2023-10-11 11:58:55,624 [   8167]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-action]
2023-10-11 11:58:58,471 [  11014]   WARN - #c.i.o.p.i.ProjectFrameAllocator - Cannot load project in 10 seconds:
...
2023-10-11 11:58:58,681 [  11224]   INFO - #c.i.w.i.i.j.s.JpsGlobalModelSynchronizerImpl - Loading global entities from files
2023-10-11 11:59:00,886 [  13429]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-funding]
2023-10-11 11:59:06,092 [  18635]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-workflow]
2023-10-11 11:59:11,360 [  23903]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-discussion]
2023-10-11 11:59:16,626 [  29169]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-issue-forms]
2023-10-11 11:59:21,886 [  34429]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-issue-config]
2023-10-11 11:59:27,163 [  39706]   INFO - #com.github.yunabraska.githubworkflow.helper.GitHubWorkflowHelper - Download [https://json.schemastore.org/github-workflow-template-properties]
2023-10-11 11:59:32,490 [  45033]   WARN - #c.i.d.PerformanceWatcherImpl - UI was frozen for 41680ms, details saved to /Users/daniel.kimsey/Library/Logs/JetBrains/GoLand2023.2/threadDumps-freeze-20231011-115855-GO-232.9921.53-Unsafe.park-41sec

Thread dumps show multiple threads all BLOCKED attempting to pull the Schema from schemastore.org, with one in WAITING:

"DefaultDispatcher-worker-32" prio=0 tid=0x0 nid=0x0 waiting on condition
     java.lang.Thread.State: WAITING
 on java.util.concurrent.FutureTask@460373
        at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
        at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
        at [email protected]/java.util.concurrent.FutureTask.awaitDone(FutureTask.java:447)
        at [email protected]/java.util.concurrent.FutureTask.get(FutureTask.java:190)
        at com.github.yunabraska.githubworkflow.helper.FileDownloader.downloadContent(FileDownloader.java:62)
        at com.github.yunabraska.githubworkflow.services.GitHubActionCache.lambda$getSchema$6(GitHubActionCache.java:104)
        at com.github.yunabraska.githubworkflow.services.GitHubActionCache$$Lambda$2879/0x0000000801316240.get(Unknown Source)
        at [email protected]/java.util.Optional.or(Optional.java:313)
        at com.github.yunabraska.githubworkflow.services.GitHubActionCache.getSchema(GitHubActionCache.java:104)
        at com.github.yunabraska.githubworkflow.services.GitHubActionCache.getSchema(GitHubActionCache.java:116)
        at com.github.yunabraska.githubworkflow.model.GitHubSchemaProvider.lambda$getSchemaFile$1(GitHubSchemaProvider.java:55)
        at com.github.yunabraska.githubworkflow.model.GitHubSchemaProvider$$Lambda$2863/0x0000000801314998.get(Unknown Source)
        at [email protected]/java.util.Optional.orElseGet(Optional.java:364)
        at com.github.yunabraska.githubworkflow.model.GitHubSchemaProvider.getSchemaFile(GitHubSchemaProvider.java:54)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.getSchemaForProvider(JsonSchemaServiceImpl.java:595)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl$MyState.createFileProviderMap(JsonSchemaServiceImpl.java:569)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl$MyState.lambda$new$0(JsonSchemaServiceImpl.java:518)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl$MyState$$Lambda$2444/0x00000008013c2540.invoke(Unknown Source)
        at com.intellij.util.concurrency.SynchronizedClearableLazy._get_value_$lambda$1$lambda$0(SynchronizedClearableLazy.kt:41)
        at com.intellij.util.concurrency.SynchronizedClearableLazy$$Lambda$28/0x0000000800115d58.apply(Unknown Source)
        at [email protected]/java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:210)
        at com.intellij.util.concurrency.SynchronizedClearableLazy.getValue(SynchronizedClearableLazy.kt:40)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.getProvidersForFile(JsonSchemaServiceImpl.java:251)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.getSchemasForFile(JsonSchemaServiceImpl.java:184)
        at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.getSchemaFilesForFile(JsonSchemaServiceImpl.java:154)
        at com.jetbrains.jsonSchema.widget.JsonSchemaStatusWidget.doGetWidgetState(JsonSchemaStatusWidget.java:215)
        at com.jetbrains.jsonSchema.widget.JsonSchemaStatusWidget.calcWidgetState(JsonSchemaStatusWidget.java:206)
        at com.jetbrains.jsonSchema.widget.JsonSchemaStatusWidget.getWidgetState(JsonSchemaStatusWidget.java:155)
        at com.intellij.openapi.wm.impl.status.EditorBasedStatusBarPopup$doUpdate$state$1.invoke(EditorBasedStatusBarPopup.kt:148)
        at com.intellij.openapi.wm.impl.status.EditorBasedStatusBarPopup$doUpdate$state$1.invoke(EditorBasedStatusBarPopup.kt:147)
        at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:105)
        at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:14)
        at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:95)
        at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$2.invoke(InternalReadAction.kt:94)
        at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1$lambda$0(cancellableReadAction.kt:41)
        at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1$$Lambda$1386/0x0000000800d20e38.run(Unknown Source)
        at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
        at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke$lambda$1(cancellableReadAction.kt:39)
        at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1$$Lambda$1385/0x0000000800d20bf0.run(Unknown Source)
        at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
        at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
        at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$1.invoke(cancellableReadAction.kt:37)
        at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:248)
        at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:34)
        at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:94)
        at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:76)
        at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:63)
        at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:14)
        at com.intellij.openapi.application.rw.InternalReadAction$readLoop$1.invokeSuspend(InternalReadAction.kt)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

Operating System

OS X, Apple M1 Pro

Plugin Version

3.0.3

IDE Name and Version

GoLand 2023.2.2

Expected behavior
UI should not be unresponsive.

Screenshots
None.

Additional context
This is a new install of the plugin.

schemastore.org appears to be having an outage right now. Requests are 502ing (GoLand's own built-in polling) or long response time.

Aside, I am using a custom GH Action/Workflow Schema to provide syntax highlighting, will these imported schemas break that once they are able to be pulled?

In file: file:///Users/carloseduardosx/projects/abbvie/alle-gha-workflows/.github/workflows/deploy-dev.yml

Description

Steps to Reproduce

Please provide code sample if applicable

Message

*** exception class was changed or removed

Runtime Information

Plugin version : 2.2.7
IDE: WebStorm 2023.2.1 (WS-232.9559.58)
OS: macOS 13.4.1

Stacktrace

  In file: file:///Users/carloseduardosx/projects/abbvie/alle-gha-workflows/.github/workflows/deploy-dev.yml
  
  java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$annotate$24(HighlightAnnotator.java:101)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.annotate(HighlightAnnotator.java:65)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:130)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:107)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:360)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$7(GeneralHighlightingPass.java:291)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:320)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$8(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:92)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:286)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:234)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:95)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:390)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:77)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:24)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:386)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:377)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:376)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:352)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:201)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:207)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:350)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:190)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

In file: .github/workflows/terraform-cfg-deployment.yml

Description

Steps to Reproduce

Please provide code sample if applicable

Message

*** exception class was changed or removed

Runtime Information

Plugin version : 2.2.7
IDE: IntelliJ IDEA 2023.2.3 (IU-232.10072.27)
OS: Linux 5.15.0-70-generic

Stacktrace

  In file: .github/workflows/terraform-cfg-deployment.yml
  
  java.lang.NullPointerException
at java.base/java.util.HashMap.merge(HashMap.java:1355)
at java.base/java.util.stream.Collectors.lambda$toMap$68(Collectors.java:1673)
at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at com.github.yunabraska.githubworkflow.model.CompletionItem.lambda$listSteps$5(CompletionItem.java:63)
at java.base/java.util.Optional.map(Optional.java:260)
at com.github.yunabraska.githubworkflow.model.CompletionItem.listSteps(CompletionItem.java:60)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$processBracketItems$35(HighlightAnnotator.java:246)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.ifEnoughItems(HighlightAnnotator.java:396)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.processBracketItems(HighlightAnnotator.java:245)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.lambda$annotate$24(HighlightAnnotator.java:134)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.github.yunabraska.githubworkflow.highlights.HighlightAnnotator.annotate(HighlightAnnotator.java:65)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:130)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:107)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:360)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$7(GeneralHighlightingPass.java:299)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:320)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$8(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:92)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:323)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:286)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:234)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:95)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:57)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:390)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:77)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:24)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:386)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:377)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:376)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:352)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:201)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:207)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:350)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:190)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Assertion failed: Network must not be accessed in EDT or inside read action

How can we reproduce the issue?
Open GH workflow.yml file

Relevant log output

java.lang.Throwable: Assertion failed: Network must not be accessed in EDT or inside read action, because this may take considerable amount of time, and write actions will be blocked during that time so user won't be able to perform tasks in the IDE
	at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:258)
	at com.intellij.util.io.HttpRequests.process(HttpRequests.java:497)
	at com.intellij.util.io.HttpRequests$RequestBuilderImpl.connect(HttpRequests.java:335)
	at org.jetbrains.plugins.github.api.GithubApiRequestExecutor$Base.execute(GithubApiRequestExecutor.kt:92)
	at org.jetbrains.plugins.github.api.GithubApiRequestExecutor$WithTokenAuth.execute(GithubApiRequestExecutor.kt:65)
	at org.jetbrains.plugins.github.api.GithubApiRequestExecutor.execute(GithubApiRequestExecutor.kt:46)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadFromGitHub(GitHubWorkflowUtils.java:229)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.lambda$downloadFileFromGitHub$9(GitHubWorkflowUtils.java:219)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Collections$2.tryAdvance(Collections.java:4853)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadFileFromGitHub(GitHubWorkflowUtils.java:223)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.lambda$downloadContent$11(GitHubWorkflowUtils.java:259)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadContent(GitHubWorkflowUtils.java:259)
	at com.github.yunabraska.githubworkflow.completion.GitHubWorkflowUtils.downloadAction(GitHubWorkflowUtils.java:206)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.setActionParameters(GitHubAction.java:142)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.<init>(GitHubAction.java:134)
	at com.github.yunabraska.githubworkflow.model.GitHubAction.getGitHubAction(GitHubAction.java:48)
	at com.github.yunabraska.githubworkflow.model.WorkflowContext.lambda$init$23(WorkflowContext.java:179)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
	at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
	at com.github.yunabraska.githubworkflow.model.WorkflowContext.lambda$init$24(WorkflowContext.java:151)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at com.github.yunabraska.githubworkflow.model.WorkflowContext.init(WorkflowContext.java:151)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationListeners.lambda$asyncInitWorkflowFile$2(ApplicationListeners.java:58)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863)
	at com.github.yunabraska.githubworkflow.listeners.ApplicationListeners.asyncInitWorkflowFile(ApplicationListeners.java:52)
	at com.github.yunabraska.githubworkflow.listeners.FileFocusListener.selectionChanged(FileFocusListener.java:20)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:680)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:640)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:415)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:384)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:448)
	at jdk.proxy7/jdk.proxy7.$Proxy198.needRefresh(Unknown Source)
	at stardust.project.HelpSolution$1.selectionChanged(HelpSolution.java:195)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:680)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:640)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:415)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:394)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:454)
	at jdk.proxy2/jdk.proxy2.$Proxy72.selectionChanged(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.fireSelectionChanged(FileEditorManagerImpl.kt:1637)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.access$fireSelectionChanged(FileEditorManagerImpl.kt:119)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1.invokeSuspend(FileEditorManagerImpl.kt:223)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at com.intellij.openapi.application.impl.DispatchedRunnable.run(DispatchedRunnable.kt:35)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:829)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:454)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:122)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:667)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:571)
	at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1444)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:571)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:995)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:995)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:829)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Environment
com.github.yunabraska.githubworkflowplugin (2.0.2)

IntelliJ IDEA 2023.1.5 (Community Edition)
Build #IC-231.9392.1, built on July 25, 2023
Runtime version: 17.0.7+10-b829.16 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 13.5
GC: G1 Young Generation, G1 Old Generation
Memory: 4000M
Cores: 20
Metal Rendering is ON
Registry:
debugger.new.tool.window.layout=true
ide.experimental.ui=true
writerside.preview.rebuild.delay=1000

Non-Bundled Plugins:
com.intellij.grazie.pro (0.3.241)
com.github.yunabraska.githubworkflowplugin (2.0.2)
org.jetbrains.idea.grammar (2022.3.2)
org.jetbrains.kotlin (231-1.9.0-release-358-IJ8770.65)
com.jetbrains.sdk.tool (0.59-dev)
com.jetbrains.writerside (2023.06.3869)
com.intellij.mermaid (0.0.13-231)

Kotlin: 231-1.9.0-release-358-IJ8770.65

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.