Skip to content

bump: release v1.1.0#8

Open
shawntz wants to merge 185 commits intomainfrom
staging
Open

bump: release v1.1.0#8
shawntz wants to merge 185 commits intomainfrom
staging

Conversation

@shawntz
Copy link
Copy Markdown
Owner

@shawntz shawntz commented Dec 13, 2025

Description

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)

Related Issues

Closes #

How Has This Been Tested?

  • Unit tests
  • Integration tests
  • Manual testing

Test environment:

  • OS:
  • Go version:

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Security Considerations

  • This PR does not introduce any security concerns
  • I have considered the security implications and addressed them

Screenshots (if applicable)

dependabot bot and others added 9 commits December 7, 2025 22:39
Bumps the go_modules group with 1 update in the / directory: [golang.org/x/oauth2](https://github.com/golang/oauth2).


Updates `golang.org/x/oauth2` from 0.20.0 to 0.27.0
- [Commits](golang/oauth2@v0.20.0...v0.27.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.27.0
  dependency-type: direct:production
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the go_modules group with 1 update in the / directory: [github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose).


Updates `github.com/go-jose/go-jose/v4` from 4.0.1 to 4.0.5
- [Release notes](https://github.com/go-jose/go-jose/releases)
- [Commits](go-jose/go-jose@v4.0.1...v4.0.5)

---
updated-dependencies:
- dependency-name: github.com/go-jose/go-jose/v4
  dependency-version: 4.0.5
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the go_modules group with 1 update in the / directory: [golang.org/x/crypto](https://github.com/golang/crypto).


Updates `golang.org/x/crypto` from 0.23.0 to 0.45.0
- [Commits](golang/crypto@v0.23.0...v0.45.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: direct:production
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Implemented SSH key revocation for personal GitHub connections, including removal from ssh-agent, GitHub, and local files. Updated menu item text and tooltips to distinguish between certificate and key revocation, and ensured UI status updates after key actions.
…85326579b

chore: bump golang.org/x/oauth2 from 0.20.0 to 0.27.0 in the go_modules group across 1 directory
@shawntz shawntz self-assigned this Dec 13, 2025
Copilot AI review requested due to automatic review settings December 13, 2025 01:35
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the project version to v1.1.0 by updating the Go toolchain version and upgrading a key dependency. The changes prepare the codebase for using newer Go language features and updated OAuth2 library functionality.

  • Updates Go toolchain from 1.22 to 1.23.0
  • Upgrades golang.org/x/oauth2 from v0.20.0 to v0.27.0
  • Updates go.sum checksums to reflect the dependency changes

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.

File Description
go.mod Updates Go version directive to 1.23.0 and golang.org/x/oauth2 to v0.27.0
go.sum Updates checksums for golang.org/x/oauth2 v0.27.0 to match the dependency upgrade

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

go.mod Outdated
module github.com/shawntz/cassh

go 1.22
go 1.23.0
Copy link

Copilot AI Dec 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Go version directive should not include the patch version. According to Go module conventions, the version should be specified as go 1.23 rather than go 1.23.0. Go toolchain versions are specified as major.minor only in go.mod files.

Suggested change
go 1.23.0
go 1.23

Copilot uses AI. Check for mistakes.
chore: bump github.com/go-jose/go-jose/v4 from 4.0.1 to 4.0.5 in the go_modules group across 1 directory
chore: bump golang.org/x/crypto from 0.23.0 to 0.45.0 in the go_modules group across 1 directory
Copilot AI review requested due to automatic review settings December 13, 2025 01:42
fix: correct personal SSH key PEM encoding
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

shawntz and others added 8 commits December 12, 2025 17:44
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…31551

chore: add claude code GitHub actions workflows
Bumps the go_modules group with 3 updates in the / directory: [golang.org/x/crypto](https://github.com/golang/crypto), [golang.org/x/oauth2](https://github.com/golang/oauth2) and [github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose).


Updates `golang.org/x/crypto` from 0.23.0 to 0.45.0
- [Commits](golang/crypto@v0.23.0...v0.45.0)

Updates `golang.org/x/oauth2` from 0.20.0 to 0.27.0
- [Commits](golang/oauth2@v0.20.0...v0.27.0)

Updates `github.com/go-jose/go-jose/v4` from 4.0.1 to 4.0.5
- [Release notes](https://github.com/go-jose/go-jose/releases)
- [Commits](go-jose/go-jose@v4.0.1...v4.0.5)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: direct:production
  dependency-group: go_modules
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.27.0
  dependency-type: direct:production
  dependency-group: go_modules
- dependency-name: github.com/go-jose/go-jose/v4
  dependency-version: 4.0.5
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
…n permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…n permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…n permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…n permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Potential fix for code scanning alert no. 5: Workflow does not contain permissions
shawntz and others added 15 commits December 20, 2025 16:16
…361-adc9-a7cba3b0d07d

Add token validation to GitLab NewClient constructor
…cation function calls

Co-authored-by: shawntz <5200266+shawntz@users.noreply.github.com>
Co-authored-by: shawntz <5200266+shawntz@users.noreply.github.com>
Make update check interval dynamically reload from config
…5f3-b59e-b0786e2211bd

Fix race conditions in update checker goroutines
…aec-9cd3-2c5887f6add2

Handle io.ReadAll errors in GitLab client error paths
…e91-9be8-09ae53eb513b

Handle io.ReadAll errors in GitLab client error paths
…c47-bced-a42be8309a2e

Wire up MigrateDeprecatedFields to LoadUserConfig
…c25-8209-ebf1f113a75a

Sanitize GitLab API error messages to prevent sensitive data exposure
@shawntz
Copy link
Copy Markdown
Owner Author

shawntz commented Jan 1, 2026

fizzy

Copilot AI review requested due to automatic review settings January 11, 2026 08:51
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 22 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +183 to +194
lastCheckTime := time.Unix(cfg.User.LastUpdateCheckTime, 0)
checkIntervalDays := cfg.User.UpdateCheckIntervalDays
cfgMutex.RUnlock()

if !updateCheckEnabled {
log.Printf("Update checks disabled by user")
return false
}

// Check if we should check for updates based on interval
cfgMutex.RLock()
lastCheckTime := time.Unix(cfg.User.LastUpdateCheckTime, 0)
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The variable lastCheckTime is declared twice in this function. The first declaration on line 183 is shadowed by the second declaration on line 194, making the first one effectively unused.

Copilot uses AI. Check for mistakes.
if err := config.SaveUserConfig(userCfg); err != nil {
log.Printf("Failed to save config after periodic update check: %v", err)
}
cfgMutex.Unlock()
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mutex lock is acquired but never released. The cfgMutex.Lock() on line 352 is followed by an immediate cfgMutex.Unlock() on line 352 without any code in between, and then there's unreachable code after. This appears to be a copy-paste error.

Copilot uses AI. Check for mistakes.
}
sendNativeNotification("Update Dismissed", fmt.Sprintf("You can check for updates again from the menu.\n\nDismissed version: v%s", currentLatestVersion))
}
cfgMutex.Unlock()
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mutex acquired but never released. The function acquires cfgMutex.Lock() on line 479 but then releases it on line 500 after the function returns, making line 500 unreachable.

Suggested change
cfgMutex.Unlock()

Copilot uses AI. Check for mistakes.
Comment on lines +193 to +195
cfgMutex.RLock()
lastCheckTime := time.Unix(cfg.User.LastUpdateCheckTime, 0)
cfgMutex.RUnlock()
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This variable is declared but never used in the function. The parameter dismissedVersion from the RLock is read but cfgMutex.RLock() is called again without unlocking, leading to a potential deadlock.

Copilot uses AI. Check for mistakes.

var (
cfg *config.MergedConfig
cfgMutex sync.RWMutex // Protects concurrent access to cfg.User
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cfgMutex variable is declared twice in this file - once in the global scope (line 55) and once in updater.go (line 52). This will cause compilation errors or unexpected behavior due to shadowing.

Suggested change
cfgMutex sync.RWMutex // Protects concurrent access to cfg.User

Copilot uses AI. Check for mistakes.
Comment on lines +483 to +491

// Verify login extension still uses the username
loginValue, ok := cert.Extensions["login@gitlab.com"]
if !ok {
t.Error("Missing GitLab login extension: login@gitlab.com")
}
if loginValue != "gitlabuser" {
t.Errorf("Login extension = %q, want %q", loginValue, "gitlabuser")
}
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test code contains unreachable statements and logic errors. Lines 484-491 are unreachable because the closing brace on line 482 ends the function, and the test logic appears to be duplicated or incorrectly structured.

Suggested change
// Verify login extension still uses the username
loginValue, ok := cert.Extensions["login@gitlab.com"]
if !ok {
t.Error("Missing GitLab login extension: login@gitlab.com")
}
if loginValue != "gitlabuser" {
t.Errorf("Login extension = %q, want %q", loginValue, "gitlabuser")
}
}

Copilot uses AI. Check for mistakes.
Comment on lines +235 to +236
configMutex.RLock()
dismissedVersion := cfg.User.DismissedUpdateVersion
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The variable configMutex is used in this file but is declared as cfgMutex in the global scope. Either the variable name is inconsistent or this is shadowing the global variable. This should use cfgMutex to match the global declaration.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants