ソースを参照

Merge pull request #45 from achilleas-k/fail-missing-datacite

LGTM
Michael Sonntag 6 年 前
コミット
dd2cf3eefe
4 ファイル変更20 行追加14 行削除
  1. 6 1
      cmd/web.go
  2. 0 0
      pkg/bindata/bindata.go
  3. 8 5
      routes/doi.go
  4. 6 8
      routes/repo/editor.go

+ 6 - 1
cmd/web.go

@@ -569,6 +569,9 @@ func runWeb(c *cli.Context) error {
 		m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
 		m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
 			Post(bindIgnErr(form.NewIssue{}), repo.CompareAndPullRequestPost)
 			Post(bindIgnErr(form.NewIssue{}), repo.CompareAndPullRequestPost)
 
 
+		if _, err := bindata.Asset("conf/datacite/datacite.yml"); err != nil {
+			log.Fatal(2, "%v", err)
+		}
 		m.Group("", func() {
 		m.Group("", func() {
 			m.Combo("/_edit/*").Get(repo.EditFile).
 			m.Combo("/_edit/*").Get(repo.EditFile).
 				Post(bindIgnErr(form.EditRepoFile{}), repo.EditFilePost)
 				Post(bindIgnErr(form.EditRepoFile{}), repo.EditFilePost)
@@ -577,7 +580,9 @@ func runWeb(c *cli.Context) error {
 			m.Post("/_preview/*", bindIgnErr(form.EditPreviewDiff{}), repo.DiffPreviewPost)
 			m.Post("/_preview/*", bindIgnErr(form.EditPreviewDiff{}), repo.DiffPreviewPost)
 			m.Combo("/_delete/*").Get(repo.DeleteFile).
 			m.Combo("/_delete/*").Get(repo.DeleteFile).
 				Post(bindIgnErr(form.DeleteRepoFile{}), repo.DeleteFilePost)
 				Post(bindIgnErr(form.DeleteRepoFile{}), repo.DeleteFilePost)
-			m.Combo("/_add/*").Get(repo.AddFile).Post(bindIgnErr(form.EditRepoFile{}), repo.NewFilePost)
+			// GIN: Add datacite.yml file through the repo web interface
+
+			m.Combo("/_add/*").Get(repo.CreateDatacite).Post(bindIgnErr(form.EditRepoFile{}), repo.NewFilePost)
 			m.Group("", func() {
 			m.Group("", func() {
 				m.Combo("/_upload/*").Get(repo.UploadFile).
 				m.Combo("/_upload/*").Get(repo.UploadFile).
 					Post(bindIgnErr(form.UploadRepoFile{}), repo.UploadFilePost)
 					Post(bindIgnErr(form.UploadRepoFile{}), repo.UploadFilePost)

ファイルの差分が大きいため隠しています
+ 0 - 0
pkg/bindata/bindata.go


+ 8 - 5
routes/doi.go

@@ -19,8 +19,11 @@ func RequestDOI(c *context.Context) {
 		c.Status(http.StatusUnauthorized)
 		c.Status(http.StatusUnauthorized)
 		return
 		return
 	}
 	}
-	token := c.GetCookie(setting.SessionConfig.CookieName)
-	token, err := encrypt([]byte(setting.DOI.Key), token)
+
+	repo := c.Repo.Repository.FullName()
+	username := c.User.Name
+	// verification := c.GetCookie(setting.SessionConfig.CookieName)
+	verification, err := encrypt([]byte(setting.DOI.Key), repo+username)
 	if err != nil {
 	if err != nil {
 		log.Error(2, "Could not encrypt secret key: %s", err)
 		log.Error(2, "Could not encrypt secret key: %s", err)
 		c.Status(http.StatusInternalServerError)
 		c.Status(http.StatusInternalServerError)
@@ -32,9 +35,9 @@ func RequestDOI(c *context.Context) {
 	}
 	}
 
 
 	params := url.Values{}
 	params := url.Values{}
-	params.Add("repo", c.Repo.Repository.FullName())
-	params.Add("user", c.User.Name)
-	params.Add("token", token)
+	params.Add("repo", repo)
+	params.Add("user", username)
+	params.Add("verification", verification)
 	doiurl.RawQuery = params.Encode()
 	doiurl.RawQuery = params.Encode()
 	target, _ := url.PathUnescape(doiurl.String())
 	target, _ := url.PathUnescape(doiurl.String())
 	log.Trace(target)
 	log.Trace(target)

+ 6 - 8
routes/repo/editor.go

@@ -583,25 +583,23 @@ func RemoveUploadFileFromServer(c *context.Context, f form.RemoveUploadFile) {
 	c.Status(204)
 	c.Status(204)
 }
 }
 
 
-func AddFile(c *context.Context) {
-	link := strings.Split(c.Link, "/")
-	name := link[len(link)-1]
+func CreateDatacite(c *context.Context) {
+	dcname := path.Join("conf/datacite/datacite.yml")
 	treeNames, treePaths := getParentTreeFields(c.Repo.TreePath)
 	treeNames, treePaths := getParentTreeFields(c.Repo.TreePath)
 
 
 	c.PageIs("Edit")
 	c.PageIs("Edit")
 	c.RequireHighlightJS()
 	c.RequireHighlightJS()
 	c.RequireSimpleMDE()
 	c.RequireSimpleMDE()
 
 
-	c.Data["IsJSON"] = markup.IsJSON(name)
-	c.Data["IsYAML"] = markup.IsYAML(name)
-	relName := path.Join("conf", "datacite", name)
-	data, _ := bindata.Asset(relName)
+	c.Data["IsYAML"] = true
+	// safe to ignore error since we check for the asseet at startup
+	data, _ := bindata.Asset(dcname)
 	c.Data["FileContent"] = string(data)
 	c.Data["FileContent"] = string(data)
 	c.Data["ParentTreePath"] = path.Dir(c.Repo.TreePath)
 	c.Data["ParentTreePath"] = path.Dir(c.Repo.TreePath)
 	c.Data["TreeNames"] = treeNames
 	c.Data["TreeNames"] = treeNames
 	c.Data["TreePaths"] = treePaths
 	c.Data["TreePaths"] = treePaths
 	c.Data["BranchLink"] = c.Repo.RepoLink + "/src/" + c.Repo.BranchName
 	c.Data["BranchLink"] = c.Repo.RepoLink + "/src/" + c.Repo.BranchName
-	c.Data["commit_summary"] = ""
+	c.Data["commit_summary"] = "Add information for publishing with DataCite"
 	c.Data["commit_message"] = ""
 	c.Data["commit_message"] = ""
 	c.Data["commit_choice"] = "direct"
 	c.Data["commit_choice"] = "direct"
 	c.Data["new_branch_name"] = ""
 	c.Data["new_branch_name"] = ""

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません