Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
Blame · Line-by-line history

CONTRIBUTING.md

Each line is annotated with the commit that last touched it. Click any SHA to jump to that commit and see the surrounding change.

CONTRIBUTING.mdBlame82 lines · 1 contributor
1ab8aceClaude1# Contributing — Gluecron JetBrains plugin
2
3## Prerequisites
4
5- **JDK 17** (Temurin / Zulu / Oracle — any will do).
6- The IntelliJ Platform Gradle Plugin downloads its own IDE distribution
7 during the build, so you don't need to install IntelliJ separately.
8- **Gradle is NOT pinned in this repo** — use the wrapper that gradle
9 generates for you, or invoke an installed `gradle` from the JetBrains
10 Toolbox / SDKMan. The dev container intentionally does not preinstall it.
11
12## Build the plugin .zip
13
14```bash
15cd editor-extensions/jetbrains
16./gradlew buildPlugin
17```
18
19Output lands at:
20
21```
22build/distributions/gluecron-jetbrains-0.1.0.zip
23```
24
25Drop the zip into IDEA via **Settings → Plugins → ⚙ → Install Plugin from
26Disk…** to test locally.
27
28## Run the plugin in a sandbox IDE
29
30```bash
31./gradlew runIde
32```
33
34Spins up an IntelliJ IDEA Community sandbox with the plugin pre-installed.
35Useful for clicking through the actions without restarting your daily IDE.
36
37## Publish to the JetBrains Marketplace
38
39```bash
40# 1. Get a publish token from https://plugins.jetbrains.com/author/me/tokens
41export JETBRAINS_MARKETPLACE_TOKEN=...
42
43# 2. Optional — push to a non-default channel ("eap" / "nightly" / etc.)
44export JETBRAINS_PUBLISH_CHANNEL=default
45
46# 3. Build + upload
47./gradlew publishPlugin
48```
49
50`publishPlugin` re-runs `buildPlugin`, signs nothing extra (the marketplace
51takes unsigned plugins), and uploads via the documented REST API.
52
53## Source layout
54
55```
56editor-extensions/jetbrains/
57 build.gradle.kts ← IntelliJ Platform plugin + ktor + serialization
58 settings.gradle.kts
59 gradle.properties
60 src/main/kotlin/com/gluecron/plugin/
61 GluecronPlugin.kt ← post-startup activity / constants
62 auth/AuthService.kt ← PasswordSafe-backed PAT storage
63 api/GluecronClient.kt ← ktor HTTP client for /api/v2
64 git/RepoResolver.kt ← git remote → owner/repo
65 actions/ ← all menu actions
66 toolwindow/GluecronToolWindow.kt
67 src/main/resources/
68 META-INF/plugin.xml
69 META-INF/pluginIcon.svg ← marketplace icon
70 icons/toolWindowIcon.svg
71 icons/commitMessageIcon.svg
72```
73
74## Code style
75
76- Kotlin official style (matches `kotlin.code.style=official` in
77 `gradle.properties`).
78- Keep new actions narrow: one file each, with a doc-block explaining
79 what menu they live in and why.
80- Don't add new server endpoints from here — talk to the existing
81 `/api/v2/*` surface so the VS Code, CLI, and JetBrains extensions
82 stay in sync.