-
Notifications
You must be signed in to change notification settings - Fork 7
build: add public mise toolchain and Jules environment #1188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
+200
−1
Closed
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| [env] | ||
| DEVSY_GIT_AUTHOR_NAME = "Devsy Agent" | ||
| DEVSY_GIT_AUTHOR_EMAIL = "skevetter@pm.me" | ||
| DEVSY_GIT_SIGNING_PRIVATE_KEY = { age = { value = "<INSERT_CIPHERTEXT_HERE>" } } | ||
|
|
||
| [tasks."setup:jules"] | ||
| depends = [ | ||
| "setup", | ||
| "setup:jules:git-signing", | ||
| "setup:jules:validate", | ||
| ] | ||
|
|
||
| [tasks."setup:jules:git-signing"] | ||
| run = ''' | ||
| set -euo pipefail | ||
|
|
||
| # materialize key outside repo | ||
| SIGNING_DIR="$HOME/.local/share/devsy/signing" | ||
| SIGNING_PRIVATE_KEY="$SIGNING_DIR/devsy-agent-signing" | ||
| SIGNING_PUBLIC_KEY="$SIGNING_DIR/devsy-agent-signing.pub" | ||
|
|
||
| mkdir -p "$SIGNING_DIR" | ||
| chmod 700 "$SIGNING_DIR" | ||
|
|
||
| echo "$DEVSY_GIT_SIGNING_PRIVATE_KEY" > "$SIGNING_PRIVATE_KEY" | ||
| chmod 600 "$SIGNING_PRIVATE_KEY" | ||
|
|
||
| # Ensure public key is present. ssh-keygen -y derives it from the private key. | ||
| ssh-keygen -y -f "$SIGNING_PRIVATE_KEY" > "$SIGNING_PUBLIC_KEY" | ||
|
|
||
| # configure SSH commit signing | ||
| git config --global gpg.format ssh | ||
| git config --global user.signingkey "$SIGNING_PUBLIC_KEY" | ||
| git config --global commit.gpgsign true | ||
| git config --global tag.gpgsign true | ||
| git config --global user.name "$DEVSY_GIT_AUTHOR_NAME" | ||
| git config --global user.email "$DEVSY_GIT_AUTHOR_EMAIL" | ||
| ''' | ||
|
|
||
| [tasks."setup:jules:validate"] | ||
| run = ''' | ||
| set -euo pipefail | ||
|
|
||
| # validate Git configuration | ||
| test "$(git config --global --get gpg.format)" = "ssh" | ||
| test "$(git config --global --get commit.gpgsign)" = "true" | ||
| test -n "$(git config --global --get user.signingkey)" | ||
| test -n "$(git config --global --get user.name)" | ||
| test -n "$(git config --global --get user.email)" | ||
|
|
||
| # create disposable real signed commit | ||
| tmp="$(mktemp -d)" | ||
| trap 'rm -rf "$tmp"' EXIT | ||
|
|
||
| git -C "$tmp" init | ||
| git -C "$tmp" config user.name "$DEVSY_GIT_AUTHOR_NAME" | ||
| git -C "$tmp" config user.email "$DEVSY_GIT_AUTHOR_EMAIL" | ||
| git -C "$tmp" config gpg.format ssh | ||
| git -C "$tmp" config user.signingkey "$HOME/.local/share/devsy/signing/devsy-agent-signing.pub" | ||
| git -C "$tmp" config commit.gpgsign true | ||
|
|
||
| touch "$tmp/README" | ||
| git -C "$tmp" add README | ||
| git -C "$tmp" commit -m "test: verify agent signing" | ||
| ''' |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| [settings] | ||
| lockfile = true | ||
| lockfile_platforms = ["linux-x64"] | ||
|
|
||
| [tool_config] | ||
| locked = true | ||
|
|
||
| [tools] | ||
| go = "1.26.5" | ||
| node = "24" | ||
| task = "3.53.1" | ||
| golangci-lint = "2.12.2" | ||
| prek = "0.5.2" | ||
| protoc = "36.1" | ||
| gh = "2.100.0" | ||
|
|
||
| [tasks.setup] | ||
| depends = [ | ||
| "setup:dependencies", | ||
| "setup:hooks", | ||
| "setup:validate", | ||
| ] | ||
|
|
||
| [tasks."setup:dependencies"] | ||
| run = ''' | ||
| go mod download | ||
| npm ci | ||
| (cd desktop && npm ci) | ||
| ''' | ||
|
|
||
| [tasks."setup:hooks"] | ||
| run = ''' | ||
| prek install | ||
| ''' | ||
|
|
||
| [tasks."setup:validate"] | ||
| run = ''' | ||
| go version | ||
| node --version | ||
| task --version | ||
| golangci-lint --version | ||
| prek --version | ||
| protoc --version | ||
| gh --version | ||
| ''' | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: devsy-org/devsy
Length of output: 23965
🏁 Script executed:
Repository: devsy-org/devsy
Length of output: 20127
🏁 Script executed:
Repository: devsy-org/devsy
Length of output: 11657
🌐 Web query:
site:mise.jdx.dev/dev-tools/mise-lock.html lockfile_platforms locked install platform missing lock entry💡 Result:
The error message regarding a missing lock entry during a locked install typically occurs when using tools like mise, which maintain a lockfile to ensure reproducible environment installations [1]. When the locked setting is enabled, the tool enforces that all necessary versions, checksums, and artifact URLs for the current platform are pre-resolved and present in the lockfile [1]. If a tool or platform variant is missing from the lockfile, the installation will fail to prevent non-deterministic behavior [1]. To resolve this, you must populate the lockfile with the required platform-specific metadata [1]. You can do this by running the lock generation command provided by the tool, such as: mise lock # Generates URLs for all platforms [1] mise lock --platform # Generates URLs for specific platforms [1] By running these commands, you update the lockfile to include the missing entries for your current or target platform, allowing the locked install to proceed successfully [1].
Citations:
🏁 Script executed:
Repository: devsy-org/devsy
Length of output: 7700
Add lock entries for all supported platforms.
The repository supports Linux, macOS, and Windows in its documentation and CI matrices.
mise.tomlandmise.lockcontain entries only forlinux-x64. Withtool_config.locked = true,mise install --lockedcan fail on macOS or Windows beforemise run setupstarts. Add the supported platform IDs and regeneratemise.lock.🤖 Prompt for AI Agents