MCPcopy Create free account
hub / github.com/gogs/gogs / UpdateRelease

Function UpdateRelease

internal/database/release.go:305–342  ·  view source on GitHub ↗

UpdateRelease updates information of a release.

(doer *User, gitRepo *git.Repository, r *Release, isPublish bool, uuids []string)

Source from the content-addressed store, hash-verified

303
304// UpdateRelease updates information of a release.
305func UpdateRelease(doer *User, gitRepo *git.Repository, r *Release, isPublish bool, uuids []string) (err error) {
306 if err = createTag(gitRepo, r); err != nil {
307 return errors.Newf("createTag: %v", err)
308 }
309
310 r.PublisherID = doer.ID
311
312 sess := x.NewSession()
313 defer sess.Close()
314 if err = sess.Begin(); err != nil {
315 return err
316 }
317 if _, err = sess.ID(r.ID).AllCols().Update(r); err != nil {
318 return errors.Newf("Update: %v", err)
319 }
320
321 // Unlink all current attachments and link back later if still valid
322 if _, err = sess.Exec("UPDATE attachment SET release_id = 0 WHERE release_id = ?", r.ID); err != nil {
323 return errors.Newf("unlink current attachments: %v", err)
324 }
325
326 if len(uuids) > 0 {
327 if _, err = sess.In("uuid", uuids).Cols("release_id").Update(&Attachment{ReleaseID: r.ID}); err != nil {
328 return errors.Newf("link attachments: %v", err)
329 }
330 }
331
332 if err = sess.Commit(); err != nil {
333 return errors.Newf("commit: %v", err)
334 }
335
336 if !isPublish {
337 return nil
338 }
339 r.Publisher = doer
340 r.preparePublishWebhooks()
341 return nil
342}
343
344// DeleteReleaseOfRepoByID deletes a release and corresponding Git tag by given ID.
345func DeleteReleaseOfRepoByID(repoID, id int64) error {

Callers 1

EditReleasePostFunction · 0.92

Calls 6

createTagFunction · 0.85
ExecMethod · 0.80
InMethod · 0.80
UpdateMethod · 0.65
IDMethod · 0.65

Tested by

no test coverage detected