MCPcopy Create free account
hub / github.com/OpenCSGs/csghub-server / Create

Method Create

component/model.go:162–268  ·  view source on GitHub ↗
(ctx context.Context, req *types.CreateModelReq)

Source from the content-addressed store, hash-verified

160}
161
162func (c *ModelComponent) Create(ctx context.Context, req *types.CreateModelReq) (*types.Model, error) {
163 var (
164 nickname string
165 tags []types.RepoTag
166 )
167 user, err := c.user.FindByUsername(ctx, req.Username)
168 if err != nil {
169 return nil, errors.New("user does not exist")
170 }
171
172 if req.Nickname != "" {
173 nickname = req.Nickname
174 } else {
175 nickname = req.Name
176 }
177
178 if req.DefaultBranch == "" {
179 req.DefaultBranch = "main"
180 }
181 req.Nickname = nickname
182 req.RepoType = types.ModelRepo
183 req.Readme = generateReadmeData(req.License)
184 _, dbRepo, err := c.CreateRepo(ctx, req.CreateRepoReq)
185 if err != nil {
186 return nil, err
187 }
188
189 dbModel := database.Model{
190 Repository: dbRepo,
191 RepositoryID: dbRepo.ID,
192 BaseModel: req.BaseModel,
193 }
194
195 model, err := c.ms.Create(ctx, dbModel)
196 if err != nil {
197 return nil, fmt.Errorf("failed to create database model, cause: %w", err)
198 }
199
200 // Create README.md file
201 err = c.git.CreateRepoFile(buildCreateFileReq(&types.CreateFileParams{
202 Username: user.Username,
203 Email: user.Email,
204 Message: initCommitMessage,
205 Branch: req.DefaultBranch,
206 Content: req.Readme,
207 NewBranch: req.DefaultBranch,
208 Namespace: req.Namespace,
209 Name: req.Name,
210 FilePath: readmeFileName,
211 }, types.ModelRepo))
212 if err != nil {
213 return nil, fmt.Errorf("failed to create README.md file, cause: %w", err)
214 }
215
216 // Create .gitattributes file
217 err = c.git.CreateRepoFile(buildCreateFileReq(&types.CreateFileParams{
218 Username: user.Username,
219 Email: user.Email,

Callers

nothing calls this directly

Calls 6

BuildCloneInfoFunction · 0.92
generateReadmeDataFunction · 0.85
buildCreateFileReqFunction · 0.85
FindByUsernameMethod · 0.80
CreateRepoMethod · 0.65
CreateRepoFileMethod · 0.65

Tested by

no test coverage detected