Skip to content

Commit 6acef7a

Browse files
authored
chore: define project version deleted (#2374)
Signed-off-by: Miguel Martinez <[email protected]>
1 parent 268316d commit 6acef7a

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

app/controlplane/pkg/auditor/events/project.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
var (
3030
_ auditor.LogEntry = (*ProjectCreated)(nil)
3131
_ auditor.LogEntry = (*ProjectVersionCreated)(nil)
32+
_ auditor.LogEntry = (*ProjectVersionDeleted)(nil)
3233
_ auditor.LogEntry = (*ProjectMembershipAdded)(nil)
3334
_ auditor.LogEntry = (*ProjectMembershipRemoved)(nil)
3435
_ auditor.LogEntry = (*ProjectMemberRoleUpdated)(nil)
@@ -38,6 +39,7 @@ const (
3839
ProjectType auditor.TargetType = "Project"
3940
ProjectCreatedActionType string = "ProjectCreated"
4041
ProjectVersionCreatedActionType string = "ProjectVersionCreated"
42+
ProjectVersionDeletedActionType string = "ProjectVersionDeleted"
4143
ProjectMembershipAddedActionType string = "ProjectMembershipAdded"
4244
ProjectMembershipRemovedActionType string = "ProjectMembershipRemoved"
4345
ProjectMemberRoleUpdatedType string = "ProjectMemberRoleUpdated"
@@ -122,6 +124,38 @@ func (p *ProjectVersionCreated) Description() string {
122124
return fmt.Sprintf("%s has created %s version '%s' for project '%s'", auditor.GetActorIdentifier(), releaseType, p.Version, p.ProjectName)
123125
}
124126

127+
// ProjectVersionDeleted represents the deletion of a project version
128+
type ProjectVersionDeleted struct {
129+
*ProjectBase
130+
VersionID *uuid.UUID `json:"version_id,omitempty"`
131+
Version string `json:"version,omitempty"`
132+
Prerelease bool `json:"prerelease"`
133+
}
134+
135+
func (p *ProjectVersionDeleted) ActionType() string {
136+
return ProjectVersionDeletedActionType
137+
}
138+
139+
func (p *ProjectVersionDeleted) ActionInfo() (json.RawMessage, error) {
140+
if _, err := p.ProjectBase.ActionInfo(); err != nil {
141+
return nil, err
142+
}
143+
144+
if p.VersionID == nil || p.Version == "" {
145+
return nil, errors.New("version id and version are required")
146+
}
147+
148+
return json.Marshal(&p)
149+
}
150+
151+
func (p *ProjectVersionDeleted) Description() string {
152+
releaseType := "release"
153+
if p.Prerelease {
154+
releaseType = "prerelease"
155+
}
156+
return fmt.Sprintf("%s has deleted %s version '%s' for project '%s'", auditor.GetActorIdentifier(), releaseType, p.Version, p.ProjectName)
157+
}
158+
125159
// Helper function to make role names more user-friendly
126160
func prettyRole(role string) string {
127161
// Convert the role to a prettier format

0 commit comments

Comments
 (0)