mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	* Feature - #5960 - API Endpoint for Repo Editing * Revert from merge * Adds integration testing * Updates to integration tests * Revert changes * Update year in file header * Misspell fix * XORM = test * XORM = test * revert XORM = file * Makes RepoUnit.ID be pk and autoincr * Fix to units * revert header * Remove print statement * Adds other responses * Improves swagger for creating repo * Fixes import order * Better Unit Type does not exist error * Adds editable repo properties to the response repo structure * Fix to api_repo_edit_test.go * Fixes repo test * Changes per review * Fixes typo and standardizes comments in the EditRepoOption struct for swagger * Fixes typo and standardizes comments in the EditRepoOption struct for swagger * Actually can unarchive through the API * Unlike delete, user doesn't have to be the owner of the org, just admin to the repo * Fix to swagger comments for field name change * Update to swagger docs * Update swagger * Changes allow_pull_requests to has_pull_requests
This commit is contained in:
		
				
					committed by
					
						
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							cdd10f145b
						
					
				
				
					commit
					1831b3b571
				
			@@ -162,8 +162,8 @@ func CreateOrganization(org, owner *User) (err error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// insert units for team
 | 
			
		||||
	var units = make([]TeamUnit, 0, len(allRepUnitTypes))
 | 
			
		||||
	for _, tp := range allRepUnitTypes {
 | 
			
		||||
	var units = make([]TeamUnit, 0, len(AllRepoUnitTypes))
 | 
			
		||||
	for _, tp := range AllRepoUnitTypes {
 | 
			
		||||
		units = append(units, TeamUnit{
 | 
			
		||||
			OrgID:  org.ID,
 | 
			
		||||
			TeamID: t.ID,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										111
									
								
								models/repo.go
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								models/repo.go
									
									
									
									
									
								
							@@ -274,32 +274,64 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool)
 | 
			
		||||
			parent = repo.BaseRepo.innerAPIFormat(e, mode, true)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	hasIssues := false
 | 
			
		||||
	if _, err := repo.getUnit(e, UnitTypeIssues); err == nil {
 | 
			
		||||
		hasIssues = true
 | 
			
		||||
	}
 | 
			
		||||
	hasWiki := false
 | 
			
		||||
	if _, err := repo.getUnit(e, UnitTypeWiki); err == nil {
 | 
			
		||||
		hasWiki = true
 | 
			
		||||
	}
 | 
			
		||||
	hasPullRequests := false
 | 
			
		||||
	ignoreWhitespaceConflicts := false
 | 
			
		||||
	allowMerge := false
 | 
			
		||||
	allowRebase := false
 | 
			
		||||
	allowRebaseMerge := false
 | 
			
		||||
	allowSquash := false
 | 
			
		||||
	if unit, err := repo.getUnit(e, UnitTypePullRequests); err == nil {
 | 
			
		||||
		config := unit.PullRequestsConfig()
 | 
			
		||||
		hasPullRequests = true
 | 
			
		||||
		ignoreWhitespaceConflicts = config.IgnoreWhitespaceConflicts
 | 
			
		||||
		allowMerge = config.AllowMerge
 | 
			
		||||
		allowRebase = config.AllowRebase
 | 
			
		||||
		allowRebaseMerge = config.AllowRebaseMerge
 | 
			
		||||
		allowSquash = config.AllowSquash
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &api.Repository{
 | 
			
		||||
		ID:            repo.ID,
 | 
			
		||||
		Owner:         repo.Owner.APIFormat(),
 | 
			
		||||
		Name:          repo.Name,
 | 
			
		||||
		FullName:      repo.FullName(),
 | 
			
		||||
		Description:   repo.Description,
 | 
			
		||||
		Private:       repo.IsPrivate,
 | 
			
		||||
		Empty:         repo.IsEmpty,
 | 
			
		||||
		Archived:      repo.IsArchived,
 | 
			
		||||
		Size:          int(repo.Size / 1024),
 | 
			
		||||
		Fork:          repo.IsFork,
 | 
			
		||||
		Parent:        parent,
 | 
			
		||||
		Mirror:        repo.IsMirror,
 | 
			
		||||
		HTMLURL:       repo.HTMLURL(),
 | 
			
		||||
		SSHURL:        cloneLink.SSH,
 | 
			
		||||
		CloneURL:      cloneLink.HTTPS,
 | 
			
		||||
		Website:       repo.Website,
 | 
			
		||||
		Stars:         repo.NumStars,
 | 
			
		||||
		Forks:         repo.NumForks,
 | 
			
		||||
		Watchers:      repo.NumWatches,
 | 
			
		||||
		OpenIssues:    repo.NumOpenIssues,
 | 
			
		||||
		DefaultBranch: repo.DefaultBranch,
 | 
			
		||||
		Created:       repo.CreatedUnix.AsTime(),
 | 
			
		||||
		Updated:       repo.UpdatedUnix.AsTime(),
 | 
			
		||||
		Permissions:   permission,
 | 
			
		||||
		AvatarURL:     repo.AvatarLink(),
 | 
			
		||||
		ID:                        repo.ID,
 | 
			
		||||
		Owner:                     repo.Owner.APIFormat(),
 | 
			
		||||
		Name:                      repo.Name,
 | 
			
		||||
		FullName:                  repo.FullName(),
 | 
			
		||||
		Description:               repo.Description,
 | 
			
		||||
		Private:                   repo.IsPrivate,
 | 
			
		||||
		Empty:                     repo.IsEmpty,
 | 
			
		||||
		Archived:                  repo.IsArchived,
 | 
			
		||||
		Size:                      int(repo.Size / 1024),
 | 
			
		||||
		Fork:                      repo.IsFork,
 | 
			
		||||
		Parent:                    parent,
 | 
			
		||||
		Mirror:                    repo.IsMirror,
 | 
			
		||||
		HTMLURL:                   repo.HTMLURL(),
 | 
			
		||||
		SSHURL:                    cloneLink.SSH,
 | 
			
		||||
		CloneURL:                  cloneLink.HTTPS,
 | 
			
		||||
		Website:                   repo.Website,
 | 
			
		||||
		Stars:                     repo.NumStars,
 | 
			
		||||
		Forks:                     repo.NumForks,
 | 
			
		||||
		Watchers:                  repo.NumWatches,
 | 
			
		||||
		OpenIssues:                repo.NumOpenIssues,
 | 
			
		||||
		DefaultBranch:             repo.DefaultBranch,
 | 
			
		||||
		Created:                   repo.CreatedUnix.AsTime(),
 | 
			
		||||
		Updated:                   repo.UpdatedUnix.AsTime(),
 | 
			
		||||
		Permissions:               permission,
 | 
			
		||||
		HasIssues:                 hasIssues,
 | 
			
		||||
		HasWiki:                   hasWiki,
 | 
			
		||||
		HasPullRequests:           hasPullRequests,
 | 
			
		||||
		IgnoreWhitespaceConflicts: ignoreWhitespaceConflicts,
 | 
			
		||||
		AllowMerge:                allowMerge,
 | 
			
		||||
		AllowRebase:               allowRebase,
 | 
			
		||||
		AllowRebaseMerge:          allowRebaseMerge,
 | 
			
		||||
		AllowSquash:               allowSquash,
 | 
			
		||||
		AvatarURL:                 repo.AvatarLink(),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -346,10 +378,20 @@ func (repo *Repository) UnitEnabled(tp UnitType) bool {
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// ErrUnitNotExist organization does not exist
 | 
			
		||||
	ErrUnitNotExist = errors.New("Unit does not exist")
 | 
			
		||||
)
 | 
			
		||||
// ErrUnitTypeNotExist represents a "UnitTypeNotExist" kind of error.
 | 
			
		||||
type ErrUnitTypeNotExist struct {
 | 
			
		||||
	UT UnitType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsErrUnitTypeNotExist checks if an error is a ErrUnitNotExist.
 | 
			
		||||
func IsErrUnitTypeNotExist(err error) bool {
 | 
			
		||||
	_, ok := err.(ErrUnitTypeNotExist)
 | 
			
		||||
	return ok
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (err ErrUnitTypeNotExist) Error() string {
 | 
			
		||||
	return fmt.Sprintf("Unit type does not exist: %s", err.UT.String())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MustGetUnit always returns a RepoUnit object
 | 
			
		||||
func (repo *Repository) MustGetUnit(tp UnitType) *RepoUnit {
 | 
			
		||||
@@ -373,6 +415,11 @@ func (repo *Repository) MustGetUnit(tp UnitType) *RepoUnit {
 | 
			
		||||
			Type:   tp,
 | 
			
		||||
			Config: new(PullRequestsConfig),
 | 
			
		||||
		}
 | 
			
		||||
	} else if tp == UnitTypeIssues {
 | 
			
		||||
		return &RepoUnit{
 | 
			
		||||
			Type:   tp,
 | 
			
		||||
			Config: new(IssuesConfig),
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return &RepoUnit{
 | 
			
		||||
		Type:   tp,
 | 
			
		||||
@@ -394,7 +441,7 @@ func (repo *Repository) getUnit(e Engine, tp UnitType) (*RepoUnit, error) {
 | 
			
		||||
			return unit, nil
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil, ErrUnitNotExist
 | 
			
		||||
	return nil, ErrUnitTypeNotExist{tp}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (repo *Repository) getOwner(e Engine) (err error) {
 | 
			
		||||
@@ -1232,8 +1279,8 @@ func createRepository(e *xorm.Session, doer, u *User, repo *Repository) (err err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// insert units for repo
 | 
			
		||||
	var units = make([]RepoUnit, 0, len(defaultRepoUnits))
 | 
			
		||||
	for _, tp := range defaultRepoUnits {
 | 
			
		||||
	var units = make([]RepoUnit, 0, len(DefaultRepoUnits))
 | 
			
		||||
	for _, tp := range DefaultRepoUnits {
 | 
			
		||||
		if tp == UnitTypeIssues {
 | 
			
		||||
			units = append(units, RepoUnit{
 | 
			
		||||
				RepoID: repo.ID,
 | 
			
		||||
 
 | 
			
		||||
@@ -58,8 +58,8 @@ func (u UnitType) ColorFormat(s fmt.State) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// allRepUnitTypes contains all the unit types
 | 
			
		||||
	allRepUnitTypes = []UnitType{
 | 
			
		||||
	// AllRepoUnitTypes contains all the unit types
 | 
			
		||||
	AllRepoUnitTypes = []UnitType{
 | 
			
		||||
		UnitTypeCode,
 | 
			
		||||
		UnitTypeIssues,
 | 
			
		||||
		UnitTypePullRequests,
 | 
			
		||||
@@ -69,8 +69,8 @@ var (
 | 
			
		||||
		UnitTypeExternalTracker,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// defaultRepoUnits contains the default unit types
 | 
			
		||||
	defaultRepoUnits = []UnitType{
 | 
			
		||||
	// DefaultRepoUnits contains the default unit types
 | 
			
		||||
	DefaultRepoUnits = []UnitType{
 | 
			
		||||
		UnitTypeCode,
 | 
			
		||||
		UnitTypeIssues,
 | 
			
		||||
		UnitTypePullRequests,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user