verify pgp signature for a specific package only once

This commit is contained in:
2022-01-18 13:41:12 +01:00
parent 2dfdac8468
commit 907add4e07
11 changed files with 304 additions and 13 deletions

View File

@@ -45,6 +45,8 @@ type DbPackage struct {
Lto dbpackage.Lto `json:"lto,omitempty"`
// LastVersionBuild holds the value of the "last_version_build" field.
LastVersionBuild string `json:"last_version_build,omitempty"`
// LastVerified holds the value of the "last_verified" field.
LastVerified time.Time `json:"last_verified,omitempty"`
}
// scanValues returns the types for scanning values from sql.Rows.
@@ -58,7 +60,7 @@ func (*DbPackage) scanValues(columns []string) ([]interface{}, error) {
values[i] = new(sql.NullInt64)
case dbpackage.FieldPkgbase, dbpackage.FieldStatus, dbpackage.FieldSkipReason, dbpackage.FieldRepository, dbpackage.FieldMarch, dbpackage.FieldVersion, dbpackage.FieldRepoVersion, dbpackage.FieldHash, dbpackage.FieldLto, dbpackage.FieldLastVersionBuild:
values[i] = new(sql.NullString)
case dbpackage.FieldBuildTimeStart, dbpackage.FieldBuildTimeEnd, dbpackage.FieldUpdated:
case dbpackage.FieldBuildTimeStart, dbpackage.FieldBuildTimeEnd, dbpackage.FieldUpdated, dbpackage.FieldLastVerified:
values[i] = new(sql.NullTime)
default:
return nil, fmt.Errorf("unexpected column %q for type DbPackage", columns[i])
@@ -167,6 +169,12 @@ func (dp *DbPackage) assignValues(columns []string, values []interface{}) error
} else if value.Valid {
dp.LastVersionBuild = value.String
}
case dbpackage.FieldLastVerified:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field last_verified", values[i])
} else if value.Valid {
dp.LastVerified = value.Time
}
}
}
return nil
@@ -223,6 +231,8 @@ func (dp *DbPackage) String() string {
builder.WriteString(fmt.Sprintf("%v", dp.Lto))
builder.WriteString(", last_version_build=")
builder.WriteString(dp.LastVersionBuild)
builder.WriteString(", last_verified=")
builder.WriteString(dp.LastVerified.Format(time.ANSIC))
builder.WriteByte(')')
return builder.String()
}

View File

@@ -39,6 +39,8 @@ const (
FieldLto = "lto"
// FieldLastVersionBuild holds the string denoting the last_version_build field in the database.
FieldLastVersionBuild = "last_version_build"
// FieldLastVerified holds the string denoting the last_verified field in the database.
FieldLastVerified = "last_verified"
// Table holds the table name of the dbpackage in the database.
Table = "db_packages"
)
@@ -60,6 +62,7 @@ var Columns = []string{
FieldHash,
FieldLto,
FieldLastVersionBuild,
FieldLastVerified,
}
// ValidColumn reports if the column name is valid (part of the table columns).

View File

@@ -162,6 +162,13 @@ func LastVersionBuild(v string) predicate.DbPackage {
})
}
// LastVerified applies equality check predicate on the "last_verified" field. It's identical to LastVerifiedEQ.
func LastVerified(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldLastVerified), v))
})
}
// PkgbaseEQ applies the EQ predicate on the "pkgbase" field.
func PkgbaseEQ(v string) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
@@ -1465,6 +1472,96 @@ func LastVersionBuildContainsFold(v string) predicate.DbPackage {
})
}
// LastVerifiedEQ applies the EQ predicate on the "last_verified" field.
func LastVerifiedEQ(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldLastVerified), v))
})
}
// LastVerifiedNEQ applies the NEQ predicate on the "last_verified" field.
func LastVerifiedNEQ(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.NEQ(s.C(FieldLastVerified), v))
})
}
// LastVerifiedIn applies the In predicate on the "last_verified" field.
func LastVerifiedIn(vs ...time.Time) predicate.DbPackage {
v := make([]interface{}, len(vs))
for i := range v {
v[i] = vs[i]
}
return predicate.DbPackage(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy.
if len(v) == 0 {
s.Where(sql.False())
return
}
s.Where(sql.In(s.C(FieldLastVerified), v...))
})
}
// LastVerifiedNotIn applies the NotIn predicate on the "last_verified" field.
func LastVerifiedNotIn(vs ...time.Time) predicate.DbPackage {
v := make([]interface{}, len(vs))
for i := range v {
v[i] = vs[i]
}
return predicate.DbPackage(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy.
if len(v) == 0 {
s.Where(sql.False())
return
}
s.Where(sql.NotIn(s.C(FieldLastVerified), v...))
})
}
// LastVerifiedGT applies the GT predicate on the "last_verified" field.
func LastVerifiedGT(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.GT(s.C(FieldLastVerified), v))
})
}
// LastVerifiedGTE applies the GTE predicate on the "last_verified" field.
func LastVerifiedGTE(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.GTE(s.C(FieldLastVerified), v))
})
}
// LastVerifiedLT applies the LT predicate on the "last_verified" field.
func LastVerifiedLT(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.LT(s.C(FieldLastVerified), v))
})
}
// LastVerifiedLTE applies the LTE predicate on the "last_verified" field.
func LastVerifiedLTE(v time.Time) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.LTE(s.C(FieldLastVerified), v))
})
}
// LastVerifiedIsNil applies the IsNil predicate on the "last_verified" field.
func LastVerifiedIsNil() predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.IsNull(s.C(FieldLastVerified)))
})
}
// LastVerifiedNotNil applies the NotNil predicate on the "last_verified" field.
func LastVerifiedNotNil() predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {
s.Where(sql.NotNull(s.C(FieldLastVerified)))
})
}
// And groups predicates with the AND operator between them.
func And(predicates ...predicate.DbPackage) predicate.DbPackage {
return predicate.DbPackage(func(s *sql.Selector) {

View File

@@ -184,6 +184,20 @@ func (dpc *DbPackageCreate) SetNillableLastVersionBuild(s *string) *DbPackageCre
return dpc
}
// SetLastVerified sets the "last_verified" field.
func (dpc *DbPackageCreate) SetLastVerified(t time.Time) *DbPackageCreate {
dpc.mutation.SetLastVerified(t)
return dpc
}
// SetNillableLastVerified sets the "last_verified" field if the given value is not nil.
func (dpc *DbPackageCreate) SetNillableLastVerified(t *time.Time) *DbPackageCreate {
if t != nil {
dpc.SetLastVerified(*t)
}
return dpc
}
// Mutation returns the DbPackageMutation object of the builder.
func (dpc *DbPackageCreate) Mutation() *DbPackageMutation {
return dpc.mutation
@@ -440,6 +454,14 @@ func (dpc *DbPackageCreate) createSpec() (*DbPackage, *sqlgraph.CreateSpec) {
})
_node.LastVersionBuild = value
}
if value, ok := dpc.mutation.LastVerified(); ok {
_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
Type: field.TypeTime,
Value: value,
Column: dbpackage.FieldLastVerified,
})
_node.LastVerified = value
}
return _node, _spec
}

View File

@@ -245,6 +245,26 @@ func (dpu *DbPackageUpdate) ClearLastVersionBuild() *DbPackageUpdate {
return dpu
}
// SetLastVerified sets the "last_verified" field.
func (dpu *DbPackageUpdate) SetLastVerified(t time.Time) *DbPackageUpdate {
dpu.mutation.SetLastVerified(t)
return dpu
}
// SetNillableLastVerified sets the "last_verified" field if the given value is not nil.
func (dpu *DbPackageUpdate) SetNillableLastVerified(t *time.Time) *DbPackageUpdate {
if t != nil {
dpu.SetLastVerified(*t)
}
return dpu
}
// ClearLastVerified clears the value of the "last_verified" field.
func (dpu *DbPackageUpdate) ClearLastVerified() *DbPackageUpdate {
dpu.mutation.ClearLastVerified()
return dpu
}
// Mutation returns the DbPackageMutation object of the builder.
func (dpu *DbPackageUpdate) Mutation() *DbPackageMutation {
return dpu.mutation
@@ -498,6 +518,19 @@ func (dpu *DbPackageUpdate) sqlSave(ctx context.Context) (n int, err error) {
Column: dbpackage.FieldLastVersionBuild,
})
}
if value, ok := dpu.mutation.LastVerified(); ok {
_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
Type: field.TypeTime,
Value: value,
Column: dbpackage.FieldLastVerified,
})
}
if dpu.mutation.LastVerifiedCleared() {
_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
Type: field.TypeTime,
Column: dbpackage.FieldLastVerified,
})
}
if n, err = sqlgraph.UpdateNodes(ctx, dpu.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{dbpackage.Label}
@@ -735,6 +768,26 @@ func (dpuo *DbPackageUpdateOne) ClearLastVersionBuild() *DbPackageUpdateOne {
return dpuo
}
// SetLastVerified sets the "last_verified" field.
func (dpuo *DbPackageUpdateOne) SetLastVerified(t time.Time) *DbPackageUpdateOne {
dpuo.mutation.SetLastVerified(t)
return dpuo
}
// SetNillableLastVerified sets the "last_verified" field if the given value is not nil.
func (dpuo *DbPackageUpdateOne) SetNillableLastVerified(t *time.Time) *DbPackageUpdateOne {
if t != nil {
dpuo.SetLastVerified(*t)
}
return dpuo
}
// ClearLastVerified clears the value of the "last_verified" field.
func (dpuo *DbPackageUpdateOne) ClearLastVerified() *DbPackageUpdateOne {
dpuo.mutation.ClearLastVerified()
return dpuo
}
// Mutation returns the DbPackageMutation object of the builder.
func (dpuo *DbPackageUpdateOne) Mutation() *DbPackageMutation {
return dpuo.mutation
@@ -1012,6 +1065,19 @@ func (dpuo *DbPackageUpdateOne) sqlSave(ctx context.Context) (_node *DbPackage,
Column: dbpackage.FieldLastVersionBuild,
})
}
if value, ok := dpuo.mutation.LastVerified(); ok {
_spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{
Type: field.TypeTime,
Value: value,
Column: dbpackage.FieldLastVerified,
})
}
if dpuo.mutation.LastVerifiedCleared() {
_spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{
Type: field.TypeTime,
Column: dbpackage.FieldLastVerified,
})
}
_node = &DbPackage{config: dpuo.config}
_spec.Assign = _node.assignValues
_spec.ScanValues = _node.scanValues

View File

@@ -25,6 +25,7 @@ var (
{Name: "hash", Type: field.TypeString, Nullable: true},
{Name: "lto", Type: field.TypeEnum, Nullable: true, Enums: []string{"enabled", "unknown", "disabled", "auto_disabled"}, Default: "unknown"},
{Name: "last_version_build", Type: field.TypeString, Nullable: true},
{Name: "last_verified", Type: field.TypeTime, Nullable: true},
}
// DbPackagesTable holds the schema information for the "db_packages" table.
DbPackagesTable = &schema.Table{

View File

@@ -46,6 +46,7 @@ type DbPackageMutation struct {
hash *string
lto *dbpackage.Lto
last_version_build *string
last_verified *time.Time
clearedFields map[string]struct{}
done bool
oldValue func(context.Context) (*DbPackage, error)
@@ -778,6 +779,55 @@ func (m *DbPackageMutation) ResetLastVersionBuild() {
delete(m.clearedFields, dbpackage.FieldLastVersionBuild)
}
// SetLastVerified sets the "last_verified" field.
func (m *DbPackageMutation) SetLastVerified(t time.Time) {
m.last_verified = &t
}
// LastVerified returns the value of the "last_verified" field in the mutation.
func (m *DbPackageMutation) LastVerified() (r time.Time, exists bool) {
v := m.last_verified
if v == nil {
return
}
return *v, true
}
// OldLastVerified returns the old "last_verified" field's value of the DbPackage entity.
// If the DbPackage object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *DbPackageMutation) OldLastVerified(ctx context.Context) (v time.Time, err error) {
if !m.op.Is(OpUpdateOne) {
return v, fmt.Errorf("OldLastVerified is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, fmt.Errorf("OldLastVerified requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldLastVerified: %w", err)
}
return oldValue.LastVerified, nil
}
// ClearLastVerified clears the value of the "last_verified" field.
func (m *DbPackageMutation) ClearLastVerified() {
m.last_verified = nil
m.clearedFields[dbpackage.FieldLastVerified] = struct{}{}
}
// LastVerifiedCleared returns if the "last_verified" field was cleared in this mutation.
func (m *DbPackageMutation) LastVerifiedCleared() bool {
_, ok := m.clearedFields[dbpackage.FieldLastVerified]
return ok
}
// ResetLastVerified resets all changes to the "last_verified" field.
func (m *DbPackageMutation) ResetLastVerified() {
m.last_verified = nil
delete(m.clearedFields, dbpackage.FieldLastVerified)
}
// Where appends a list predicates to the DbPackageMutation builder.
func (m *DbPackageMutation) Where(ps ...predicate.DbPackage) {
m.predicates = append(m.predicates, ps...)
@@ -797,7 +847,7 @@ func (m *DbPackageMutation) Type() string {
// order to get all numeric fields that were incremented/decremented, call
// AddedFields().
func (m *DbPackageMutation) Fields() []string {
fields := make([]string, 0, 14)
fields := make([]string, 0, 15)
if m.pkgbase != nil {
fields = append(fields, dbpackage.FieldPkgbase)
}
@@ -840,6 +890,9 @@ func (m *DbPackageMutation) Fields() []string {
if m.last_version_build != nil {
fields = append(fields, dbpackage.FieldLastVersionBuild)
}
if m.last_verified != nil {
fields = append(fields, dbpackage.FieldLastVerified)
}
return fields
}
@@ -876,6 +929,8 @@ func (m *DbPackageMutation) Field(name string) (ent.Value, bool) {
return m.Lto()
case dbpackage.FieldLastVersionBuild:
return m.LastVersionBuild()
case dbpackage.FieldLastVerified:
return m.LastVerified()
}
return nil, false
}
@@ -913,6 +968,8 @@ func (m *DbPackageMutation) OldField(ctx context.Context, name string) (ent.Valu
return m.OldLto(ctx)
case dbpackage.FieldLastVersionBuild:
return m.OldLastVersionBuild(ctx)
case dbpackage.FieldLastVerified:
return m.OldLastVerified(ctx)
}
return nil, fmt.Errorf("unknown DbPackage field %s", name)
}
@@ -1020,6 +1077,13 @@ func (m *DbPackageMutation) SetField(name string, value ent.Value) error {
}
m.SetLastVersionBuild(v)
return nil
case dbpackage.FieldLastVerified:
v, ok := value.(time.Time)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetLastVerified(v)
return nil
}
return fmt.Errorf("unknown DbPackage field %s", name)
}
@@ -1083,6 +1147,9 @@ func (m *DbPackageMutation) ClearedFields() []string {
if m.FieldCleared(dbpackage.FieldLastVersionBuild) {
fields = append(fields, dbpackage.FieldLastVersionBuild)
}
if m.FieldCleared(dbpackage.FieldLastVerified) {
fields = append(fields, dbpackage.FieldLastVerified)
}
return fields
}
@@ -1130,6 +1197,9 @@ func (m *DbPackageMutation) ClearField(name string) error {
case dbpackage.FieldLastVersionBuild:
m.ClearLastVersionBuild()
return nil
case dbpackage.FieldLastVerified:
m.ClearLastVerified()
return nil
}
return fmt.Errorf("unknown DbPackage nullable field %s", name)
}
@@ -1180,6 +1250,9 @@ func (m *DbPackageMutation) ResetField(name string) error {
case dbpackage.FieldLastVersionBuild:
m.ResetLastVersionBuild()
return nil
case dbpackage.FieldLastVerified:
m.ResetLastVerified()
return nil
}
return fmt.Errorf("unknown DbPackage field %s", name)
}

View File

@@ -27,6 +27,7 @@ func (DbPackage) Fields() []ent.Field {
field.String("hash").Optional(),
field.Enum("lto").Values("enabled", "unknown", "disabled", "auto_disabled").Default("unknown").Optional(),
field.String("last_version_build").Optional(),
field.Time("last_verified").Optional(),
}
}