-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Add API to get/edit wiki #17278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Add API to get/edit wiki #17278
Changes from 10 commits
Commits
Show all changes
63 commits
Select commit
Hold shift + click to select a range
878481b
Add API to get/edit wiki
qwerty287 7981a21
Add swagger docs, various improvements
qwerty287 48db90e
fmt
qwerty287 30a2377
Fix lint and rm comment
qwerty287 1312d58
Add page parameter
qwerty287 7f5b4ef
Add pagination to pages
qwerty287 ba25936
Merge branch 'main' into wiki-api
qwerty287 58fb2f6
Add tests
qwerty287 06bb4cf
fmt
qwerty287 c908b69
Update func names
qwerty287 d3ef69c
Update error handling
qwerty287 53f82fa
Update type name
qwerty287 8600b87
Fix lint
qwerty287 ceabfd7
Don't delete Home
qwerty287 23f6475
Update func name
qwerty287 77e42d5
Update routers/api/v1/repo/wiki.go
qwerty287 cfa6303
Remove unnecessary check
qwerty287 63ea38e
Fix lint
qwerty287 8d568a4
Use English strings
qwerty287 bfbe3ac
Update integrations/api_wiki_test.go
qwerty287 65d1951
Update func and test names
qwerty287 3027d3f
Remove unsed check and avoid duplicated error reports
qwerty287 fc8443a
Improve error handling
qwerty287 1ea3fe1
Return after error
qwerty287 eefb617
Document 404 error
qwerty287 b0ef969
Update swagger
qwerty287 fd76be3
Fix lint
qwerty287 adbaf41
Merge branch 'main' into wiki-api
qwerty287 7d04627
Apply suggestions from code review
qwerty287 f9455bc
Document file encoding
qwerty287 e642b2b
fmt
qwerty287 21e9e70
Merge branch 'main' into wiki-api
qwerty287 0e1e979
Merge branch 'main' into wiki-api
qwerty287 40962d6
Merge branch 'main' into wiki-api
qwerty287 9a1590c
Merge branch 'main' into wiki-api
qwerty287 f26b52b
Merge branch 'main' into wiki-api
qwerty287 ecc7ba6
Apply suggestions
qwerty287 34c6d71
Use convert
qwerty287 3b50c27
Merge branch 'main' into wiki-api
qwerty287 be93b48
Fix integration test
qwerty287 952beef
simplify permissions
noerw 3b5d5ff
unify duplicate key Title/Name
noerw 89bbcfa
improve types & return UTC timestamps
noerw 546a565
improve types pt.2
noerw f88605b
WikiPage.Content is base64 encoded
noerw cafbea4
simplify error handling in wikiContentsByName()
noerw 490a168
update swagger
noerw ab649d4
fix & DRY findWikiRepoCommit() error handling
noerw afd51f4
Merge branch 'main' into wiki-api
qwerty287 40e399f
rename Content -> ContentBase64
noerw d84e39d
Merge branch 'main' into wiki-api
6543 804458c
Merge branch 'main' into wiki-api
qwerty287 3a82d12
Merge pull request #1 from noerw/wiki-api
qwerty287 c67eff3
Merge branch 'main' into wiki-api
qwerty287 933697d
Fix test
qwerty287 2ac6b9a
Merge branch 'main' into wiki-api
qwerty287 75922f7
Fix tests
qwerty287 daf8ee0
Update var name
qwerty287 7105721
suburl -> sub_url
qwerty287 d78f2d8
Merge branch 'main' into wiki-api
qwerty287 1de0d03
Merge branch 'main' into wiki-api
qwerty287 d141619
Merge branch 'main' into wiki-api
zeripath 6425a28
Merge branch 'main' into wiki-api
wxiaoguang File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,6 +5,7 @@ | |
| package integrations | ||
|
|
||
| import ( | ||
| "encoding/base64" | ||
| "fmt" | ||
| "net/http" | ||
| "testing" | ||
|
|
@@ -29,33 +30,34 @@ func TestAPIGetWikiPage(t *testing.T) { | |
|
|
||
| assert.Equal(t, &api.WikiPage{ | ||
| WikiPageMetaData: &api.WikiPageMetaData{ | ||
| Name: "Home", | ||
| Title: "Home", | ||
| HTMLURL: "http://localhost:3003/user2/repo1/wiki/Home", | ||
| SubURL: "Home", | ||
| Updated: "2017-11-26T20:31:18-08:00", | ||
| }, | ||
| Title: "", | ||
| Content: "# Home page\n\nThis is the home page!\n", | ||
| CommitCount: 1, | ||
| LastCommit: &api.WikiCommit{ | ||
| ID: "2c54faec6c45d31c1abfaecdab471eac6633738a", | ||
| Author: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| LastCommit: &api.WikiCommit{ | ||
| ID: "2c54faec6c45d31c1abfaecdab471eac6633738a", | ||
| Author: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2017-11-27T04:31:18Z", | ||
| }, | ||
| Date: "2017-11-26T20:31:18-08:00", | ||
| }, | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2017-11-27T04:31:18Z", | ||
| }, | ||
| Date: "2017-11-26T20:31:18-08:00", | ||
| Message: "Add Home.md\n", | ||
| }, | ||
| Message: "Add Home.md\n", | ||
| }, | ||
| Sidebar: "", | ||
| Footer: "", | ||
| ContentBase64: base64.RawStdEncoding.EncodeToString( | ||
| []byte("# Home page\n\nThis is the home page!\n"), | ||
| ), | ||
| CommitCount: 1, | ||
| Sidebar: "", | ||
| Footer: "", | ||
| }, page) | ||
| } | ||
|
|
||
|
|
@@ -75,24 +77,96 @@ func TestAPIListWikiPages(t *testing.T) { | |
|
|
||
| dummymeta := []*api.WikiPageMetaData{ | ||
| { | ||
| Name: "Home", | ||
| Title: "Home", | ||
| HTMLURL: "http://localhost:3003/user2/repo1/wiki/Home", | ||
| SubURL: "Home", | ||
| Updated: "2017-11-26T20:31:18-08:00", | ||
| LastCommit: &api.WikiCommit{ | ||
| ID: "2c54faec6c45d31c1abfaecdab471eac6633738a", | ||
| Author: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2017-11-27T04:31:18Z", | ||
| }, | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2017-11-27T04:31:18Z", | ||
| }, | ||
| Message: "Add Home.md\n", | ||
| }, | ||
| }, | ||
| { | ||
| Name: "Page With Image", | ||
| Title: "Page With Image", | ||
| HTMLURL: "http://localhost:3003/user2/repo1/wiki/Page-With-Image", | ||
| SubURL: "Page-With-Image", | ||
| Updated: "2019-01-24T20:41:55-05:00", | ||
| LastCommit: &api.WikiCommit{ | ||
| ID: "0cf15c3f66ec8384480ed9c3cf87c9e97fbb0ec3", | ||
| Author: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Gabriel Silva Simões", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2019-01-25T01:41:55Z", | ||
| }, | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Gabriel Silva Simões", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2019-01-25T01:41:55Z", | ||
| }, | ||
| Message: "Add jpeg.jpg and page with image\n", | ||
| }, | ||
| }, | ||
| { | ||
| Name: "Page With Spaced Name", | ||
| Title: "Page With Spaced Name", | ||
| HTMLURL: "http://localhost:3003/user2/repo1/wiki/Page-With-Spaced-Name", | ||
| SubURL: "Page-With-Spaced-Name", | ||
| Updated: "2019-01-24T20:39:51-05:00", | ||
| LastCommit: &api.WikiCommit{ | ||
| ID: "c10d10b7e655b3dab1f53176db57c8219a5488d6", | ||
| Author: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Gabriel Silva Simões", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2019-01-25T01:39:51Z", | ||
| }, | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Gabriel Silva Simões", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2019-01-25T01:39:51Z", | ||
| }, | ||
| Message: "Add page with spaced name\n", | ||
| }, | ||
| }, | ||
| { | ||
| Name: "Unescaped File", | ||
| Title: "Unescaped File", | ||
| HTMLURL: "http://localhost:3003/user2/repo1/wiki/Unescaped-File", | ||
| SubURL: "Unescaped-File", | ||
| Updated: "2021-07-19T18:42:46+02:00", | ||
| LastCommit: &api.WikiCommit{ | ||
| ID: "0dca5bd9b5d7ef937710e056f575e86c0184ba85", | ||
| Author: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "6543", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2021-07-19T16:42:46Z", | ||
| }, | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "6543", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2021-07-19T16:42:46Z", | ||
| }, | ||
| Message: "add unescaped file\n", | ||
| }, | ||
| }, | ||
| } | ||
|
|
||
|
|
@@ -112,9 +186,9 @@ func TestAPINewWikiPage(t *testing.T) { | |
| urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/new?token=%s", username, "repo1", token) | ||
|
|
||
| req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateWikiPageOptions{ | ||
| Title: title, | ||
| Content: "Wiki page content for API unit tests", | ||
| Message: "", | ||
| Title: title, | ||
| ContentBase64: base64.StdEncoding.EncodeToString([]byte("Wiki page content for API unit tests")), | ||
| Message: "", | ||
| }) | ||
| session.MakeRequest(t, req, http.StatusCreated) | ||
| } | ||
|
|
@@ -129,9 +203,9 @@ func TestAPIEditWikiPage(t *testing.T) { | |
| urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/page/Page-With-Spaced-Name?token=%s", username, "repo1", token) | ||
|
|
||
| req := NewRequestWithJSON(t, "PATCH", urlStr, &api.CreateWikiPageOptions{ | ||
| Title: "edited title", | ||
| Content: "Edited wiki page content for API unit tests", | ||
| Message: "", | ||
| Title: "edited title", | ||
| ContentBase64: base64.StdEncoding.EncodeToString([]byte("Edited wiki page content for API unit tests")), | ||
| Message: "", | ||
| }) | ||
| session.MakeRequest(t, req, http.StatusOK) | ||
| } | ||
|
|
@@ -158,14 +232,14 @@ func TestAPIListPageRevisions(t *testing.T) { | |
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2017-11-26T20:31:18-08:00", | ||
| Date: "2017-11-27T04:31:18Z", | ||
| }, | ||
| Committer: &api.CommitUser{ | ||
| Identity: api.Identity{ | ||
| Name: "Ethan Koenig", | ||
| Email: "[email protected]", | ||
| }, | ||
| Date: "2017-11-26T20:31:18-08:00", | ||
| Date: "2017-11-27T04:31:18Z", | ||
| }, | ||
| Message: "Add Home.md\n", | ||
| }, | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.