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

Function DeleteRepository

internal/database/repo.go:1643–1760  ·  view source on GitHub ↗

DeleteRepository deletes a repository for a user or organization.

(ownerID, repoID int64)

Source from the content-addressed store, hash-verified

1641
1642// DeleteRepository deletes a repository for a user or organization.
1643func DeleteRepository(ownerID, repoID int64) error {
1644 repo := &Repository{ID: repoID, OwnerID: ownerID}
1645 has, err := x.Get(repo)
1646 if err != nil {
1647 return err
1648 } else if !has {
1649 return ErrRepoNotExist{args: map[string]any{"ownerID": ownerID, "repoID": repoID}}
1650 }
1651
1652 // In case is a organization.
1653 org, err := Handle.Users().GetByID(context.TODO(), ownerID)
1654 if err != nil {
1655 return err
1656 }
1657 if org.IsOrganization() {
1658 if err = org.GetTeams(); err != nil {
1659 return err
1660 }
1661 }
1662
1663 sess := x.NewSession()
1664 defer sess.Close()
1665 if err = sess.Begin(); err != nil {
1666 return err
1667 }
1668
1669 if org.IsOrganization() {
1670 for _, t := range org.Teams {
1671 if !t.hasRepository(sess, repoID) {
1672 continue
1673 } else if err = t.removeRepository(sess, repo, false); err != nil {
1674 return err
1675 }
1676 }
1677 }
1678
1679 if err = deleteBeans(sess,
1680 &Repository{ID: repoID},
1681 &Access{RepoID: repo.ID},
1682 &Action{RepoID: repo.ID},
1683 &Watch{RepoID: repoID},
1684 &Star{RepoID: repoID},
1685 &Mirror{RepoID: repoID},
1686 &IssueUser{RepoID: repoID},
1687 &Milestone{RepoID: repoID},
1688 &Release{RepoID: repoID},
1689 &Collaboration{RepoID: repoID},
1690 &PullRequest{BaseRepoID: repoID},
1691 &ProtectBranch{RepoID: repoID},
1692 &ProtectBranchWhitelist{RepoID: repoID},
1693 &Webhook{RepoID: repoID},
1694 &HookTask{RepoID: repoID},
1695 &LFSObject{RepoID: repoID},
1696 ); err != nil {
1697 return errors.Newf("deleteBeans: %v", err)
1698 }
1699
1700 // Delete comments and attachments.

Callers 8

CreatePostFunction · 0.92
MigratePostFunction · 0.92
SettingsPostFunction · 0.92
CreateUserRepoFunction · 0.92
MigrateFunction · 0.92
DeleteFunction · 0.92
DeleteRepoFunction · 0.92

Calls 15

RepoPathMethod · 0.95
DeleteWikiMethod · 0.95
deleteBeansFunction · 0.85
appendFunction · 0.85
RemoveAllWithNoticeFunction · 0.85
UsersMethod · 0.80
IsOrganizationMethod · 0.80
GetTeamsMethod · 0.80
hasRepositoryMethod · 0.80
removeRepositoryMethod · 0.80
WhereMethod · 0.80
DeleteMethod · 0.80

Tested by

no test coverage detected