Lightweight and easily self-hostable Git forge. git.poy.ooo
git-forge selfhosting homebrew
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041package db
import ( "farga/db/types"
"gorm.io/gorm" "gorm.io/gorm/clause")
// creates an issue in a given repofunc (db *DB) NewIssue(issue *types.Issue) error { return db.Transaction(func(tx *gorm.DB) error { var repo types.Repo
// Lock the repo row. if err := tx. Clauses(clause.Locking{Strength: "UPDATE"}). First(&repo, "id = ?", issue.RepoID).Error; err != nil { return err }
issue.IssueID = repo.NextIssueID repo.NextIssueID++
if err := tx.Save(&repo).Error; err != nil { return err }
return tx.Create(issue).Error })}
// gets an issue from a repo, given the issue's ID.func (db *DB) GetIssue(issueID uint) (types.Issue, error) { issue := types.Issue{ IssueID: issueID, } err := db.Preload(clause.Associations).First(&issue).Error return issue, err}