-
Notifications
You must be signed in to change notification settings - Fork 10
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
bug fixes in robot account in ground control and fixing unauthorized error while pulling the images #69
Conversation
…error while pulling the images
WalkthroughThe pull request introduces several enhancements across multiple components of the system, focusing on registry configuration, ground control functionality, and state management. Key changes include updating the remote registry URL configuration, adding a new method to retrieve projects for a group, improving robot account permission handling during satellite registration, and refining the state replication process. The modifications aim to improve configuration flexibility, error handling, and system integration. Changes
Sequence DiagramsequenceDiagram
participant Client
participant GroundControl
participant Database
participant RobotAccount
Client->>GroundControl: Register Satellite
GroundControl->>Database: Fetch Group Projects
Database-->>GroundControl: Return Projects
GroundControl->>RobotAccount: Grant Project Permissions
GroundControl-->>Client: Satellite Registration Confirmation
Poem
Tip CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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.
Actionable comments posted: 3
🧹 Nitpick comments (1)
ground-control/internal/database/groups.sql.go (1)
98-119
: Consider removing redundant rows.Close() call.The implementation looks good with proper error handling and resource cleanup. However, there's a redundant
rows.Close()
call at line 112 since it's already handled by thedefer rows.Close()
at line 103.- if err := rows.Close(); err != nil { - return nil, err - }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
cmd/root.go
(3 hunks)config.json
(1 hunks)ground-control/internal/database/groups.sql.go
(1 hunks)ground-control/internal/server/handlers.go
(3 hunks)ground-control/sql/queries/groups.sql
(1 hunks)internal/state/state_process.go
(1 hunks)internal/utils/utils.go
(0 hunks)
💤 Files with no reviewable changes (1)
- internal/utils/utils.go
🔇 Additional comments (4)
cmd/root.go (1)
100-106
: LGTM: Improved registry configuration handling.
The changes properly handle the Zot registry configuration by reading from the specified path and setting up the remote registry URL. The error handling is comprehensive.
internal/state/state_process.go (1)
332-332
: LGTM: Proper reinitialization of Replicator with updated credentials.
This change ensures that the Replicator uses the latest authentication configuration, which should resolve unauthorized errors when pulling images.
ground-control/internal/server/handlers.go (2)
165-167
: LGTM: Improved error message clarity.
The error messages are now more consistent and clearer, with proper grammar and formatting.
Also applies to: 187-187
329-345
: Verify the robot account permissions implementation.
The changes add proper permission handling for robot accounts, but we should verify:
- The GetProjectsOfGroup query implementation
- The UpdateRobotProjects function's behavior with the project list
✅ Verification successful
Based on the gathered information, I can now provide a final response about the robot account permissions implementation:
Robot account permissions implementation is properly structured and secure
The implementation shows a well-designed flow for managing robot account permissions:
- GetProjectsOfGroup correctly retrieves projects from the database using a proper SQL query
- UpdateRobotProjects implementation:
- Properly validates and converts the robot ID
- Automatically includes "satellite" project access for state artifacts
- Generates appropriate read/pull permissions via GenRobotPerms
- Updates permissions through Harbor's API with proper error handling
- Error handling is comprehensive at all levels with appropriate rollbacks and status codes
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify the implementation of GetProjectsOfGroup and UpdateRobotProjects
# Check the SQL query implementation
ast-grep --pattern 'func (q *Queries) GetProjectsOfGroup'
# Check the UpdateRobotProjects implementation
ast-grep --pattern 'func UpdateRobotProjects'
Length of output: 107
Script:
#!/bin/bash
# Let's try a broader search using ripgrep to find these functions and their implementations
# Search for GetProjectsOfGroup
rg -A 10 "GetProjectsOfGroup"
# Search for UpdateRobotProjects
rg -A 10 "UpdateRobotProjects"
# Also search for SQL queries related to projects and groups
rg "SELECT.*FROM.*projects.*groups" -A 5
Length of output: 6437
Script:
#!/bin/bash
# Let's get more context about the UpdateRobotProjects implementation
rg -A 20 "func UpdateRobotProjects"
# Also check for Harbor robot account related code
rg -A 10 "GetRobotAccount"
# And check the robot permissions structure
rg "type.*Robot" -A 10
Length of output: 7664
Script:
#!/bin/bash
# Let's check the Harbor permission generation and update implementation
rg -A 10 "GenRobotPerms"
rg -A 10 "UpdateRobotAccount"
# Also check for any permission-related models or structures
rg "type.*Permission" -A 10
Length of output: 6117
Summary by CodeRabbit
New Features
Bug Fixes
Chores