Git Product home page Git Product logo

ansible-vault-editor-idea-plugin's Introduction

Ansible Vault Editor IntelliJ Plugin

Build Latest EAP Compatibility Known Vulnerabilities

JetBrains plugin JetBrains plugin rating

Ansible Vault Editor is an IntelliJ IDEA plugin that helps you edit Ansible® Vaults, preventing accidental push of decrypted confidential data

Encrypted file intention Password dialog Editor dialog

Features

Usage

  1. Open any empty or existing yml vault file
  2. Press Alt+Enter -> Modify Vault on existing vault or select Tools -> Ansible Vault Editor
  3. Type password for this vault
  4. Edit vault content in opened Vault editor
  5. Apply your changes

Buy me a coffee

ansible-vault-editor-idea-plugin's People

Contributors

chriscarini avatar dependabot[bot] avatar github-actions[bot] avatar maximusfox avatar mordekasg avatar sadv1r avatar sokomishalov 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ansible-vault-editor-idea-plugin's Issues

Please support PyCharm 2021.3

Currently the plugin is unsupported in PyCharm 2021.3

Please make sure support is available for the new versions.

Get password from environment var and encrypt an unencrypted file

Great plugin!

Would be nice if you could get the password from the standard environment variable so not asking it each time

Also would be nice to be able to encrypt a non encrypted file,.

As far as I can see, you can unencrypt and re encrypt and already encrypted by not when the encryption hasn't been run once..

Add support for Vault Id

Ansible Vault offers the possibility with 1.2 version to specify the vault-id-label.
With vault-id-label, it is also possible to store password for the specify vault-id-label and so decrypt vault if the vault-id-label's password is store

I am very hype by your plugin and I can implements this feature.

Add work with multiple vault format version

Hi!

I have a problem with encrypted my vault files because plugin doesn't work with vault format version 1.2 and additional string, for example:

Screenshot 2020-11-02 at 00 56 14

Please, add able to work with vault format version 1.2 and work with additional strings how example above.

StringIndexOutOfBoundsException when encrypting a password

Hi,

I'm getting the below error when I try to encrypt a simple password.

Steps to reproduce:

  1. Create an empty yml file.
  2. Tools > Ansible Vault Editor.
  3. Provide password for decryption.
  4. Write test password and hit Encrypt and replace.

The plugin worked before updating to Intellij 2020.2 and the plugin to 1.8.

2021-01-11 12:54:59,443 [8143499] ERROR - llij.ide.plugins.PluginManager - begin 0, end -1, length 0 java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 0 at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319) at java.base/java.lang.String.substring(String.java:1874) at ru.sadv1r.idea.plugin.ansible.vault.editor.FileVault.getVaultId(FileVault.kt:42) at ru.sadv1r.idea.plugin.ansible.vault.editor.Vault.setEncryptedData(Vault.kt:14) at ru.sadv1r.idea.plugin.ansible.vault.editor.ui.VaultEditorDialog.doOKAction(VaultEditorDialog.kt:51) at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1896) at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1849) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6652) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345) at java.desktop/java.awt.Component.processEvent(Component.java:6417) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:976) at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:911) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:840) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:454) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:773) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:453) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:822) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:507) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) at java.desktop/java.awt.Dialog.show(Dialog.java:1063) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:694) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:435) at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1715) at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1674) at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1688) at ru.sadv1r.idea.plugin.ansible.vault.editor.ui.VaultPasswordDialog.doOKAction(VaultPasswordDialog.kt:71) at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1896) at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1849) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6652) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345) at java.desktop/java.awt.Component.processEvent(Component.java:6417) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:976) at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:911) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:840) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:454) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:762) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:453) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:822) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:507) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) at java.desktop/java.awt.Dialog.show(Dialog.java:1063) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:694) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:435) at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1715) at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1674) at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1688) at ru.sadv1r.idea.plugin.ansible.vault.editor.VaultModifyAction.actionPerformed(VaultModifyAction.kt:24) at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:281) at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:310) at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:286) at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77) at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:299) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:110) at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:95) at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:110) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:401) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369) at java.desktop/com.apple.laf.ScreenMenuItemCheckbox.itemStateChanged(ScreenMenuItemCheckbox.java:198) at java.desktop/java.awt.CheckboxMenuItem.processItemEvent(CheckboxMenuItem.java:396) at java.desktop/java.awt.CheckboxMenuItem.processEvent(CheckboxMenuItem.java:364) at java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:375) at java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:363) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:976) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:843) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:454) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:773) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:453) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:822) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:507) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 2021-01-11 12:54:59,444 [8143500] ERROR - llij.ide.plugins.PluginManager - IntelliJ IDEA 2020.3.1 Build #IC-203.6682.168 2021-01-11 12:54:59,444 [8143500] ERROR - llij.ide.plugins.PluginManager - JDK: 11.0.9.1; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 2021-01-11 12:54:59,445 [8143501] ERROR - llij.ide.plugins.PluginManager - OS: Mac OS X 2021-01-11 12:54:59,445 [8143501] ERROR - llij.ide.plugins.PluginManager - Plugin to blame: Ansible Vault Editor version: 1.8 2021-01-11 12:54:59,445 [8143501] ERROR - llij.ide.plugins.PluginManager - Last Action: ru.sadv1r.idea.plugin.ansible.vault.editor.VaultModifyAction

Thanks for looking into it!

Intention actions not appearing

Hi, I can't get the encrypt YAML property intention actions (also modifying an existing one). What am I doing wrong? I'm on macOS Ventura running the latest PHPStorm version and the latest plugin version. Also, I'm using an Apple Silicon CPU with ansible-vault installed via Homebrew, the executable PATH is /opt/homebrew/bin/ansible-vault.

image

image

Thank you for the support!

Plugin breaks with IntelliJ build IU-213.5744.223

Plugin error: Plugin 'Ansible Vault Editor' (version '1.15') is not compatible with the current version of the IDE, because it requires build 212.* or older but the current build is IU-213.5744.223

Edited vault missing new line at end of the file (causing linting errors)

One of our developers reported that they were getting yamllint new-line-at-end-of-file validation errors

https://yamllint.readthedocs.io/en/stable/rules.html?highlight=new-line-at-end-of-file#module-yamllint.rules.new_line_at_end_of_file

Our temporary solution was to stop linting the vault.yml files by updating the project .yamllint configuration with the following entry:

ignore:
  vault.yml

However I figured I would report the issue here in case the missing \n was an oversight.

Not compatible with latest build of PyCharm

Attempted to use plugin but PyCharm reports this error:

Plugin error: Plugin 'Ansible Vault Editor' (version '1.14') is not compatible with the current version of the IDE, because it requires build 211.* or older but the current build is PY-212.4535.11

Preserve newline at end of file

I need a newline at the end of the plaintext of my vault file. The plugin removes this newline every time I edit the vault, so I need to remember to manually re-add it, which is error-prone. Ideally, opening a vault and saving it without changing anything should keep the file exactly the same.

ANSIBLE_VAULT_PASSWORD_FILE does not work as expected

According to resolved issue #90 and the PR #94
the plugin looks password in file as plaintext value.

But password can be also specified as a script:

ansible-playbook site.yml --vault-password-file ~/.your_vault_password_file

where ~/.your_vault_password_file can be executable and looks like one of the examples:

#!/bin/sh
echo "vault_password_here"
#!/usr/bin/pass PASSWORD/STORE/ANSIBLE/VAULT/PATH
#!/bin/sh
aws ssm get-parameter --name ..... 
#!/bin/python
print("vault_password_here")

it would be good to add additional check the permissions of the file,
and if it's executable, get the password from stdout.

Add Support for IntelliJ IDEA 2022.3

In IntelliJ IDEA 2022.3 (Ultimate Edition)
Build #IU-223.7571.182, built on November 29, 2022

the plugin is no longer working. The icon on the side is no longer there.

So something seems to be needed to support the latest version if IntelliJ.

decrypt() should gracefully handle empty 'encrypted' string parameter

PyCharm reports errors in Ansible Vault Editor 1.7 such as:

	at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
	at java.base/java.lang.String.substring(String.java:1874)
	at ru.sadv1r.ansible.vault.VaultHandler.decrypt(VaultHandler.java:44)
	at ru.sadv1r.idea.plugin.ansible.vault.editor.FileVault.getDecryptedData(FileVault.kt:26)
	at ru.sadv1r.idea.plugin.ansible.vault.editor.ui.VaultPasswordDialog.getDecryptedOrEmpty(VaultPasswordDialog.kt:85)
	at ru.sadv1r.idea.plugin.ansible.vault.editor.ui.VaultPasswordDialog.doOKAction(VaultPasswordDialog.kt:62)
	at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1881)
...

This will happen when adding an empty file.yml, setting basic contents like 'abc: 123' and then attempting Tools -> Ansible Vault Editor -> <supply password and decrypt>

The decrypt() method in VaultHandler.java should gracefully handle the case where encrypted.indexOf(LINE_BREAK); returns -1, instead of throwing an exception up to Pycharm

final String infoLinePart = encrypted.substring(0, firstLineBreakIndex);

De/Encrypt ansible-vault files when using "Resolve Conflicts"

First of all thank you for your great plugin! It really makes handling of ansible vault files in PHPStorm very easy.

I also use the new feature by passing a vault password via the ANSIBLE_VAULT_PASSWORD_FILE environment variable, which works great.

But nevertheless there is one thing I miss so far. Maybe you know the problem, when merging 2 ansible vault files, it is hard to detect the differences. Normally if a merge conflict appears I use the "Resolve Conflicts" Feature of PHPStorm:

ui

Now, when I open this screen for a merge conflict Ansible-Vault file, everything (of course) is encrypted.

conflict

So my question is:

Would it be possible, when for example ANSIBLE_VAULT_PASSWORD_FILE is set and the vault files can be decrypted sucessfully with it to display it decrypted? And after solving the conflict the resulting file of course needs to be encrypted again.

ANSIBLE_VAULT_PASSWORD_FILE is ignored

Hello there,

I'm using the plugin on a Mac with the environment variable set in my .zshrc. De-/encryption on the command line with the ansivle-vault binary works using the env variable.
Sadly the plugin asks me everytime for the password instead of looking it up in the file set in the env variable. I don't get where the problem is. Tried it with a text file contain the cleartext passwords as well as a shell script echoing the password.

Password encrypt issues.

Hi,

I have the ENV variable set and it appears that decrypting an already encrypted file - works great.

BUT a new file and I choose to encrypt it and it always asks for the password.

If I enter the password and choose NOT TO SAVE it ...

then decrypt it after - it works.

Thanks.

Usage of deprecated API `ActionUpdateThread.OLD_EDT`

Ansible Vault Editor plugin 1.2.1.

Error from PyCharm 2024.1 yesterday:

com.intellij.diagnostic.PluginException: `ActionUpdateThread.OLD_EDT` is deprecated and going to be removed soon. 'ru.sadv1r.idea.plugin.ansible.vault.editor.action.FileEncryptAction' must override `getActionUpdateThread` and chose EDT or BGT. See ActionUpdateThread javadoc. [Plugin: ru.sadv1r.ansible-vault-editor-idea-plugin]
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:90)
	at com.intellij.diagnostic.PluginException.reportDeprecatedUsage(PluginException.java:125)
	at com.intellij.openapi.actionSystem.ActionUpdateThreadAware.getActionUpdateThread(ActionUpdateThreadAware.java:21)
	at com.intellij.openapi.actionSystem.AnAction.getActionUpdateThread(AnAction.java:199)

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.