Skip to content

YunaBraska/github-workflow-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub Workflow Plugin

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

Build Version Downloads

Development Is Active Again

After a long pause, this plugin is back in active development. The project now has a plain Java/Gradle setup, a much larger editor test suite, refreshed release automation, and compatibility checks for current JetBrains IDE builds.

Contributors are still welcome. The difference now: the floor is sturdier, the lights are on, and the CI is expected to complain before users do.


Why Choose GitHub Workflow Plugin?

Say goodbye to tedious trial and error! Experience seamless GitHub workflow management like never before. Create pipelines at the speed of thought with this JetBrains plugin that extends support for GitHub Actions and Workflows. See Screenshots

Key Features

  • 🌈 Autocomplete & Syntax Highlighting: Write workflow YAML files with confidence. Autocomplete suggestions and clear syntax highlighting will make your code look and feel pristine.
  • πŸš€ Repository Access: Integrate with your private GitHub repositories for those secret projects you're working on.
  • 🏒 Self-hosted GitHub: Resolve metadata from public GitHub and GitHub Enterprise accounts already configured in JetBrains settings, without storing plaintext tokens in this plugin.
  • 🧹 Cache Controls: Refresh, inspect, export, import, or clear resolved action/workflow metadata from Find Action, Tools > GitHub Workflow, or Settings > Tools > GitHub Workflow.
  • ▢️ Workflow Runs: Create a GitHub Workflow Run Configuration from workflow_dispatch, default to the current branch, provide inputs, follow job progress in a Run tool-window tree, inspect selected job logs, and stop remote runs through the IDE or the workflow_dispatch gutter action. Job nodes use test-result style status icons and color warnings/errors in logs. GitHub log groups render as named blocks with stable 0001 | line numbers, run: command lines, and stripped ANSI noise.
  • ⬆️ Action Updates: Resolved major-version action refs such as actions/checkout@v3 can offer a quick fix when newer cached refs such as v4 are available.
  • πŸ—ΊοΈ Local Path Resolution: Navigate effortlessly with one-click access to local paths.
  • βœ… Validation Engine: Validates linked local actions and workflows, but hey, you can turn this off too.
  • πŸ›‘οΈ Security: We respect your privacy! The plugin doesn't use or store your personal data; it only accesses remote actions and workflows when necessary.
  • 🧩 Extensive Schema Support: Covers Depentabot, Actions, Workflows, Founding, Issue Config, Issue Forms, and Workflow Templates for comprehensive project management.

Getting Started

  • Installation: Download the plugin from JetBrains Marketplace.
  • Configuration: Add GitHub or GitHub Enterprise accounts via File > Settings > Version Control > GitHub. The plugin does not add a second server settings screen.
  • Cache: Use Find Action (Shift twice) for Refresh Action Cache, Clear Action Cache, or Restore Action Warnings. IDEs with the classic Tools menu also show these under Tools > GitHub Workflow. For review/delete, import/export, plugin cache size, and language override, use Settings > Tools > GitHub Workflow.
  • Workflow Runs: Add GitHub accounts in File > Settings > Version Control > GitHub, then use the gutter play action on workflow_dispatch or create a GitHub Workflow Run Configuration. GitHub jobs appear in one Run tree with selected-node log output. Context-created runs default to the checked-out Git branch and print clickable workflow/job URLs where GitHub exposes them. The gutter play action is shown only when the workflow file belongs to a resolvable GitHub repository. Runs try matching IDE accounts first, then other IDE GitHub accounts, then GITHUB_TOKEN, GH_TOKEN, GITHUB_PAT, then anonymous access. An optional token environment variable can still be set explicitly for custom setups. GitHub log timestamps, groups, command markers, and ANSI color codes are compacted before display.
  • Usage: Enjoy autocomplete, syntax highlighting, and much more as you code GitHub or Gitea Workflows and Actions.

Local Development

The project uses the Gradle wrapper and Java 25. No manual JetBrains JDK path is needed; the IntelliJ Platform Gradle Plugin downloads the IDE, bundled plugins, verifier, and test runtime.

  1. Install Java 25 and make it available as java.
  2. Run ./gradlew test for the regression suite, including the Docker-backed Gitea smoke test.
  3. Run ./gradlew check verifyPlugin buildPlugin before publishing or opening a release PR.

Gitea smoke test controls:

./gradlew test --tests com.github.yunabraska.githubworkflow.git.GiteaDockerIntegrationTest --rerun-tasks
GITEA_DOCKER_TEST=false ./gradlew test

That starts the official rootless Gitea Docker image, seeds a tiny repository, and checks action plus .gitea/workflows metadata through the same remote resolver. Set GITEA_DOCKER_TEST=false to skip it locally, or override the image with GITEA_IMAGE when testing another Gitea release. If docker is not on the Gradle process PATH, set GITEA_DOCKER_BIN, DOCKER_BIN, or DOCKER_CLI to the Docker executable; the test also tries command -v docker, which docker, where docker, and common Docker Desktop/Homebrew locations.

Release Automation

One workflow handles tagging, packaging, GitHub Packages, Marketplace publishing, changelog notes, and GitHub releases. It intentionally uses one job and one cache because the IntelliJ build/test setup can eat roughly 10 GB; repeating that across jobs is how CI becomes a very expensive space heater.

Flow:

  1. Branch pushes and PRs run tests and build the plugin ZIP.
  2. A merge to main, or a manual workflow run, switches the same job into release mode.
  3. The job computes a plain date tag such as 2026.5.29 and updates pluginVersion.
  4. It creates the matching CHANGELOG.md section from ## [Unreleased] when needed.
  5. It runs check, Plugin Verifier, and buildPlugin.
  6. It publishes the ZIP to GitHub Packages, then uploads the same ZIP to JetBrains Marketplace.
  7. Only after publishing succeeds, it pushes the release commit and tag, then creates or updates the GitHub release.
  8. A successful non-PR run saves the current cache and prunes older GitHub Actions caches.

PUBLISH_TOKEN is required for Marketplace upload. RELEASE_TOKEN is optional; without it, the workflow uses GITHUB_TOKEN for the release commit, tag, and GitHub release. MARKETPLACE_CHANNEL is optional and empty means the stable channel.

For manual IDE testing, run ./gradlew runIde. The default target tracks the latest stable IntelliJ IDEA platform that the Gradle tooling can resolve (platformVersion in gradle.properties). The first run downloads IDE artifacts and can take a while. The task also repairs stale custom color-scheme references in the generated sandbox only, so a missing local theme is less likely to kick the test IDE back into light-mode betrayal. This is annoying, but at least it is predictable. Progress.

Dependencies

This plugin depends on:

  • GitHub API integration
  • YAML parser

Unsupported Products

There is no way to increase the product support until the dependencies are compatible with these products.

Maintainer

Yuna Morgenstern, your GitHub Jedi. GitHub Profile

Dive in and level up your GitHub game! 🌟

Project Checklist

Learning List

  • Create Tests
  • Refactor remaining custom editor UI into smaller JetBrains-native pieces where it reduces gutter noise, disposal risk, or maintenance cost.
  • Auto Complete Uses with local action files
  • Auto Complete Uses with cached/current workflow refs
  • Auto Complete Uses field with Tags & Branches
  • Link local action/workflow files aka find usages
  • implement CMD+B
  • Create a new IntelliJ Platform Plugin Template project.
  • Get familiar with the template documentation.
  • Adjust the pluginGroup, plugin ID.
  • Adjust the plugin description in README (see Tips)
  • Review the Legal Agreements.
  • Publish a plugin manually for the first time.
  • Set the 21396-github-workflow in the above README badges.
  • Confirm the Plugin Signing related secrets.
  • Confirm the Deployment Token.
  • Watch IntelliJ Platform Gradle Plugin and template releases during maintenance rounds.

Plugin based on the IntelliJ Platform Plugin Template.

About

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

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages